@@ -77,7 +77,8 @@ class DielectronCut : public TNamed
7777 kTPConly = 3 ,
7878 kTOFif = 4 ,
7979 kPIDML = 5 ,
80- kTPChadrejORTOFreq_woTOFif = 6
80+ kTPChadrejORTOFreq_woTOFif = 6 ,
81+ kTPChadrejORTOFreqLowB = 7 ,
8182 };
8283
8384 template <typename T = int , typename TPair>
@@ -261,6 +262,9 @@ class DielectronCut : public TNamed
261262 case static_cast <int >(PIDSchemes::kTPChadrejORTOFreq ):
262263 return PassTPChadrej (track) || PassTOFreq (track);
263264
265+ case static_cast <int >(PIDSchemes::kTPChadrejORTOFreqLowB ):
266+ return PassTPChadrej (track) || PassTOFreqLowB (track);
267+
264268 case static_cast <int >(PIDSchemes::kTPConly ):
265269 return PassTPConly (track);
266270
@@ -281,6 +285,17 @@ class DielectronCut : public TNamed
281285 }
282286 }
283287
288+ template <typename T>
289+ bool PassTOFreqLowB (T const & track) const
290+ {
291+ bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < mMaxTPCNsigmaEl ;
292+ bool is_pi_excluded_TPC = (track.tpcInnerParam () < mMinPinForPionRejectionTPC && track.tpcInnerParam () < mMaxPinForPionRejectionTPC ) ? (track.tpcNSigmaPi () < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi ()) : true ;
293+ bool is_el_included_TOF = (mMinTOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < mMaxTOFNsigmaEl ) && (track.hasTOF () && track.tofChi2 () < mMaxChi2TOF );
294+ bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p () && track.p () < mMaxP_ITSNsigmaKa ) ? (track.itsNSigmaKa () < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa ()) : true ;
295+ bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p () && track.p () < mMaxP_ITSNsigmaPr ) ? (track.itsNSigmaPr () < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr ()) : true ;
296+ return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
297+ }
298+
284299 template <typename T>
285300 bool PassTOFreq (T const & track) const
286301 {
@@ -445,7 +460,7 @@ class DielectronCut : public TNamed
445460 void SetPRangeForITSNsigmaPr (float min, float max);
446461
447462 void SetMaxPinMuonTPConly (float max);
448- void SetMaxPinForPionRejectionTPC ( float max);
463+ void SetPinRangeForPionRejectionTPC ( float min, float max);
449464 void RequireITSibAny (bool flag);
450465 void RequireITSib1st (bool flag);
451466
@@ -487,16 +502,16 @@ class DielectronCut : public TNamed
487502 float mMinTrackPhi {0 .f }, mMaxTrackPhi {2 .f * M_PI}; // range in phi
488503
489504 // track quality cuts
490- int mMinNClustersTPC {0 }; // min number of TPC clusters
491- int mMinNCrossedRowsTPC {0 }; // min number of crossed rows in TPC
492- float mMinChi2PerClusterTPC {-1e10f}, mMaxChi2PerClusterTPC {1e10f}; // max tpc fit chi2 per TPC cluster
493- float mMinNCrossedRowsOverFindableClustersTPC {0 .f }; // min ratio crossed rows / findable clusters
494- float mMaxFracSharedClustersTPC {999 .f }; // max ratio shared clusters / clusters in TPC
495- float mMinRelDiffPin {-1e10f}, mMaxRelDiffPin {1e10f}; // max relative difference between p at TPC inner wall and p at PV
496- int mMinNClustersITS {0 }, mMaxNClustersITS {7 }; // range in number of ITS clusters
497- float mMinChi2PerClusterITS {-1e10f}, mMaxChi2PerClusterITS {1e10f}; // max its fit chi2 per ITS cluster
498- float mMaxPinMuonTPConly {0 .2f }; // max pin cut for muon ID with TPConly
499- float mMaxPinForPionRejectionTPC {1e10f}; // max pin for pion rejection in TPC
505+ int mMinNClustersTPC {0 }; // min number of TPC clusters
506+ int mMinNCrossedRowsTPC {0 }; // min number of crossed rows in TPC
507+ float mMinChi2PerClusterTPC {-1e10f}, mMaxChi2PerClusterTPC {1e10f}; // max tpc fit chi2 per TPC cluster
508+ float mMinNCrossedRowsOverFindableClustersTPC {0 .f }; // min ratio crossed rows / findable clusters
509+ float mMaxFracSharedClustersTPC {999 .f }; // max ratio shared clusters / clusters in TPC
510+ float mMinRelDiffPin {-1e10f}, mMaxRelDiffPin {1e10f}; // max relative difference between p at TPC inner wall and p at PV
511+ int mMinNClustersITS {0 }, mMaxNClustersITS {7 }; // range in number of ITS clusters
512+ float mMinChi2PerClusterITS {-1e10f}, mMaxChi2PerClusterITS {1e10f}; // max its fit chi2 per ITS cluster
513+ float mMaxPinMuonTPConly {0 .2f }; // max pin cut for muon ID with TPConly
514+ float mMinPinForPionRejectionTPC { 0 . f }, mMaxPinForPionRejectionTPC {1e10f}; // pin range for pion rejection in TPC
500515 bool mRequireITSibAny {true };
501516 bool mRequireITSib1st {false };
502517 float mMinChi2TOF {-1e10f}, mMaxChi2TOF {1e10f}; // max tof chi2 per
0 commit comments