@@ -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 );
0 commit comments