Skip to content

Commit 08176b1

Browse files
authored
[PWGEM/Dilepton] add ITS n sigma Ka, Pr exclusion (#9277)
1 parent d632a38 commit 08176b1

File tree

8 files changed

+219
-55
lines changed

8 files changed

+219
-55
lines changed

PWGEM/Dilepton/Core/DielectronCut.cxx

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,52 @@ void DielectronCut::SetTOFNsigmaPrRange(float min, float max)
274274
mMaxTOFNsigmaPr = max;
275275
LOG(info) << "Dielectron Cut, set TOF n sigma Pr range: " << mMinTOFNsigmaPr << " - " << mMaxTOFNsigmaPr;
276276
}
277+
278+
void DielectronCut::SetITSNsigmaElRange(float min, float max)
279+
{
280+
mMinITSNsigmaEl = min;
281+
mMaxITSNsigmaEl = max;
282+
LOG(info) << "Dielectron Cut, set ITS n sigma El range: " << mMinITSNsigmaEl << " - " << mMaxITSNsigmaEl;
283+
}
284+
void DielectronCut::SetITSNsigmaMuRange(float min, float max)
285+
{
286+
mMinITSNsigmaMu = min;
287+
mMaxITSNsigmaMu = max;
288+
LOG(info) << "Dielectron Cut, set ITS n sigma Mu range: " << mMinITSNsigmaMu << " - " << mMaxITSNsigmaMu;
289+
}
290+
void DielectronCut::SetITSNsigmaPiRange(float min, float max)
291+
{
292+
mMinITSNsigmaPi = min;
293+
mMaxITSNsigmaPi = max;
294+
LOG(info) << "Dielectron Cut, set ITS n sigma Pi range: " << mMinITSNsigmaPi << " - " << mMaxITSNsigmaPi;
295+
}
296+
void DielectronCut::SetITSNsigmaKaRange(float min, float max)
297+
{
298+
mMinITSNsigmaKa = min;
299+
mMaxITSNsigmaKa = max;
300+
LOG(info) << "Dielectron Cut, set ITS n sigma Ka range: " << mMinITSNsigmaKa << " - " << mMaxITSNsigmaKa;
301+
}
302+
void DielectronCut::SetITSNsigmaPrRange(float min, float max)
303+
{
304+
mMinITSNsigmaPr = min;
305+
mMaxITSNsigmaPr = max;
306+
LOG(info) << "Dielectron Cut, set ITS n sigma Pr range: " << mMinITSNsigmaPr << " - " << mMaxITSNsigmaPr;
307+
}
308+
309+
void DielectronCut::SetPRangeForITSNsigmaKa(float min, float max)
310+
{
311+
mMinP_ITSNsigmaKa = min;
312+
mMaxP_ITSNsigmaKa = max;
313+
LOG(info) << "Dielectron Cut, set p range for ITS n sigma Ka: " << mMinP_ITSNsigmaKa << " - " << mMaxP_ITSNsigmaKa;
314+
}
315+
316+
void DielectronCut::SetPRangeForITSNsigmaPr(float min, float max)
317+
{
318+
mMinP_ITSNsigmaPr = min;
319+
mMaxP_ITSNsigmaPr = max;
320+
LOG(info) << "Dielectron Cut, set p range for ITS n sigma Pr: " << mMinP_ITSNsigmaPr << " - " << mMaxP_ITSNsigmaPr;
321+
}
322+
277323
void DielectronCut::SetMaxPinMuonTPConly(float max)
278324
{
279325
mMaxPinMuonTPConly = max;

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,6 @@ class DielectronCut : public TNamed
5959
kTPCFracSharedClusters,
6060
kRelDiffPin,
6161
kTPCChi2NDF,
62-
kTPCNsigmaEl,
63-
kTPCNsigmaMu,
64-
kTPCNsigmaPi,
65-
kTPCNsigmaKa,
66-
kTPCNsigmaPr,
67-
kTOFNsigmaEl,
68-
kTOFNsigmaMu,
69-
kTOFNsigmaPi,
70-
kTOFNsigmaKa,
71-
kTOFNsigmaPr,
7262
kDCA3Dsigma,
7363
kDCAxy,
7464
kDCAz,
@@ -297,7 +287,9 @@ class DielectronCut : public TNamed
297287
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
298288
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
299289
bool is_el_included_TOF = (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl) && (track.hasTOF() && track.tofChi2() < mMaxChi2TOF);
300-
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
290+
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
291+
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
292+
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
301293
}
302294

303295
template <typename T>
@@ -309,14 +301,18 @@ class DielectronCut : public TNamed
309301
bool is_ka_excluded_TPC = track.tpcNSigmaKa() < mMinTPCNsigmaKa || mMaxTPCNsigmaKa < track.tpcNSigmaKa();
310302
bool is_pr_excluded_TPC = track.tpcNSigmaPr() < mMinTPCNsigmaPr || mMaxTPCNsigmaPr < track.tpcNSigmaPr();
311303
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
312-
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC && is_el_included_TOF;
304+
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
305+
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
306+
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
313307
}
314308

315309
template <typename T>
316310
bool PassTPConly(T const& track) const
317311
{
318312
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
319-
return is_el_included_TPC;
313+
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
314+
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
315+
return is_el_included_TPC && is_ka_excluded_ITS && is_pr_excluded_ITS;
320316
}
321317

322318
template <typename T>
@@ -327,7 +323,9 @@ class DielectronCut : public TNamed
327323
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
328324
bool is_ka_excluded_TPC = track.tpcNSigmaKa() < mMinTPCNsigmaKa || mMaxTPCNsigmaKa < track.tpcNSigmaKa();
329325
bool is_pr_excluded_TPC = track.tpcNSigmaPr() < mMinTPCNsigmaPr || mMaxTPCNsigmaPr < track.tpcNSigmaPr();
330-
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC;
326+
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
327+
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
328+
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC && is_ka_excluded_ITS && is_pr_excluded_ITS;
331329
}
332330

333331
template <typename T>
@@ -336,7 +334,9 @@ class DielectronCut : public TNamed
336334
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
337335
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
338336
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
339-
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
337+
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
338+
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
339+
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
340340
}
341341

342342
template <typename T>
@@ -425,16 +425,25 @@ class DielectronCut : public TNamed
425425
void SetMinPinTOF(float min);
426426
void SetMuonExclusionTPC(bool flag);
427427
void SetTOFbetaRange(float min, float max);
428-
void SetTPCNsigmaElRange(float min = -1e+10, float max = 1e+10);
429-
void SetTPCNsigmaMuRange(float min = -1e+10, float max = 1e+10);
430-
void SetTPCNsigmaPiRange(float min = -1e+10, float max = 1e+10);
431-
void SetTPCNsigmaKaRange(float min = -1e+10, float max = 1e+10);
432-
void SetTPCNsigmaPrRange(float min = -1e+10, float max = 1e+10);
433-
void SetTOFNsigmaElRange(float min = -1e+10, float max = 1e+10);
434-
void SetTOFNsigmaMuRange(float min = -1e+10, float max = 1e+10);
435-
void SetTOFNsigmaPiRange(float min = -1e+10, float max = 1e+10);
436-
void SetTOFNsigmaKaRange(float min = -1e+10, float max = 1e+10);
437-
void SetTOFNsigmaPrRange(float min = -1e+10, float max = 1e+10);
428+
void SetTPCNsigmaElRange(float min, float max);
429+
void SetTPCNsigmaMuRange(float min, float max);
430+
void SetTPCNsigmaPiRange(float min, float max);
431+
void SetTPCNsigmaKaRange(float min, float max);
432+
void SetTPCNsigmaPrRange(float min, float max);
433+
void SetTOFNsigmaElRange(float min, float max);
434+
void SetTOFNsigmaMuRange(float min, float max);
435+
void SetTOFNsigmaPiRange(float min, float max);
436+
void SetTOFNsigmaKaRange(float min, float max);
437+
void SetTOFNsigmaPrRange(float min, float max);
438+
void SetITSNsigmaElRange(float min, float max);
439+
void SetITSNsigmaMuRange(float min, float max);
440+
void SetITSNsigmaPiRange(float min, float max);
441+
void SetITSNsigmaKaRange(float min, float max);
442+
void SetITSNsigmaPrRange(float min, float max);
443+
444+
void SetPRangeForITSNsigmaKa(float min, float max);
445+
void SetPRangeForITSNsigmaPr(float min, float max);
446+
438447
void SetMaxPinMuonTPConly(float max);
439448
void SetMaxPinForPionRejectionTPC(float max);
440449
void RequireITSibAny(bool flag);
@@ -518,6 +527,15 @@ class DielectronCut : public TNamed
518527
float mMinTOFNsigmaPi{-1e+10}, mMaxTOFNsigmaPi{+1e+10};
519528
float mMinTOFNsigmaKa{-1e+10}, mMaxTOFNsigmaKa{+1e+10};
520529
float mMinTOFNsigmaPr{-1e+10}, mMaxTOFNsigmaPr{+1e+10};
530+
531+
float mMinITSNsigmaEl{-1e+10}, mMaxITSNsigmaEl{+1e+10};
532+
float mMinITSNsigmaMu{-1e+10}, mMaxITSNsigmaMu{+1e+10};
533+
float mMinITSNsigmaPi{-1e+10}, mMaxITSNsigmaPi{+1e+10};
534+
float mMinITSNsigmaKa{-1e+10}, mMaxITSNsigmaKa{+1e+10};
535+
float mMinITSNsigmaPr{-1e+10}, mMaxITSNsigmaPr{+1e+10};
536+
float mMinP_ITSNsigmaKa{0.0}, mMaxP_ITSNsigmaKa{0.0};
537+
float mMinP_ITSNsigmaPr{0.0}, mMaxP_ITSNsigmaPr{0.0};
538+
521539
o2::analysis::MlResponseDielectronSingleTrack<float>* mPIDMlResponse{nullptr};
522540

523541
ClassDef(DielectronCut, 1);

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,14 @@ struct Dilepton {
220220
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
221221
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
222222
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
223+
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
224+
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
225+
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
226+
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
227+
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
228+
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
229+
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
230+
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
223231
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
224232

225233
// configuration for PID ML
@@ -681,6 +689,10 @@ struct Dilepton {
681689
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
682690
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
683691
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
692+
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
693+
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
694+
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
695+
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);
684696

685697
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
686698
static constexpr int nClassesMl = 2;

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,14 @@ struct DileptonMC {
201201
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
202202
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
203203
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
204+
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
205+
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
206+
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
207+
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
208+
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
209+
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
210+
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
211+
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
204212
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
205213

206214
// configuration for PID ML
@@ -258,10 +266,10 @@ struct DileptonMC {
258266

259267
struct : ConfigurableGroup {
260268
std::string prefix = "mctrackcut_group";
261-
Configurable<float> min_mcPt{"min_mcPt", 0.1, "min. MC pT"};
262-
Configurable<float> max_mcPt{"max_mcPt", 1e+10, "max. MC pT"};
263-
Configurable<float> min_mcEta{"min_mcEta", -0.8, "max. MC eta"};
264-
Configurable<float> max_mcEta{"max_mcEta", +0.8, "max. MC eta"};
269+
Configurable<float> min_mcPt{"min_mcPt", 0.1, "min. MC pT for generated single lepton"};
270+
Configurable<float> max_mcPt{"max_mcPt", 1e+10, "max. MC pT for generated single lepton"};
271+
Configurable<float> min_mcEta{"min_mcEta", -0.8, "max. MC eta for generated single lepton"};
272+
Configurable<float> max_mcEta{"max_mcEta", +0.8, "max. MC eta for generated single lepton"};
265273
} mctrackcuts;
266274

267275
HistogramRegistry fRegistry{"output", {}, OutputObjHandlingPolicy::AnalysisObject, false, false};
@@ -588,6 +596,10 @@ struct DileptonMC {
588596
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
589597
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
590598
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
599+
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
600+
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
601+
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
602+
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);
591603

592604
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
593605
static constexpr int nClassesMl = 2;

PWGEM/Dilepton/Core/PhotonHBT.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,14 @@ struct PhotonHBT {
226226
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
227227
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
228228
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 0.5, "max. pin for pion rejection in TPC"};
229+
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
230+
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
231+
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
232+
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
233+
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
234+
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
235+
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
236+
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
229237
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
230238

231239
// configuration for PID ML
@@ -588,6 +596,10 @@ struct PhotonHBT {
588596
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
589597
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
590598
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
599+
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
600+
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
601+
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
602+
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);
591603

592604
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
593605
static constexpr int nClassesMl = 2;

0 commit comments

Comments
 (0)