@@ -126,10 +126,18 @@ struct skimmerPrimaryElectronQC {
126126 Configurable<float > maxchi2its{" maxchi2its" , 5.0 , " max. chi2/NclsITS" };
127127 Configurable<float > dca_xy_max{" dca_xy_max" , 0.2 , " max DCAxy in cm" };
128128 Configurable<float > dca_z_max{" dca_z_max" , 0.2 , " max DCAz in cm" };
129- Configurable<float > minTPCNsigmaEl{" minTPCNsigmaEl" , -2.0 , " min. TPC n sigma for electron inclusion" }; // Don't change.
130- Configurable<float > maxTPCNsigmaEl{" maxTPCNsigmaEl" , +2.0 , " max. TPC n sigma for electron inclusion" }; // Don't change.
131- Configurable<float > minTOFNsigmaEl{" minTOFNsigmaEl" , -2.0 , " min. TOF n sigma for electron inclusion" }; // Don't change.
132- Configurable<float > maxTOFNsigmaEl{" maxTOFNsigmaEl" , +2.0 , " max. TOF n sigma for electron inclusion" }; // Don't change.
129+ Configurable<float > minTPCNsigmaEl{" minTPCNsigmaEl" , -2.0 , " min. TPC n sigma for electron inclusion" };
130+ Configurable<float > maxTPCNsigmaEl{" maxTPCNsigmaEl" , +2.0 , " max. TPC n sigma for electron inclusion" };
131+ Configurable<float > minTOFNsigmaEl{" minTOFNsigmaEl" , -2.0 , " min. TOF n sigma for electron inclusion" };
132+ Configurable<float > maxTOFNsigmaEl{" maxTOFNsigmaEl" , +2.0 , " max. TOF n sigma for electron inclusion" };
133+
134+ Configurable<float > maxTPCNsigmaPi{" maxTPCNsigmaPi" , 2.5 , " max. TPC n sigma for pion exclusion" };
135+ Configurable<float > minTPCNsigmaPi{" minTPCNsigmaPi" , -1e+10 , " min. TPC n sigma for pion exclusion" };
136+ Configurable<float > maxTPCNsigmaKa{" maxTPCNsigmaKa" , 2.5 , " max. TPC n sigma for kaon exclusion" };
137+ Configurable<float > minTPCNsigmaKa{" minTPCNsigmaKa" , -2.5 , " min. TPC n sigma for kaon exclusion" };
138+ Configurable<float > maxTPCNsigmaPr{" maxTPCNsigmaPr" , 2.5 , " max. TPC n sigma for proton exclusion" };
139+ Configurable<float > minTPCNsigmaPr{" minTPCNsigmaPr" , -2.5 , " min. TPC n sigma for proton exclusion" };
140+ Configurable<bool > requireTOF{" requireTOF" , true , " require TOF hit" };
133141 } tighttrackcut;
134142
135143 Configurable<bool > storeOnlyTrueElectronMC{" storeOnlyTrueElectronMC" , false , " Flag to store only true electron in MC" };
@@ -467,9 +475,19 @@ struct skimmerPrimaryElectronQC {
467475 template <typename TTrack>
468476 bool isElectronTight (TTrack const & track)
469477 {
470- bool is_El_TPC = tighttrackcut.minTPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < tighttrackcut.maxTPCNsigmaEl ;
471- bool is_El_TOF = tighttrackcut.minTOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tighttrackcut.maxTOFNsigmaEl ;
472- return is_El_TPC && is_El_TOF;
478+ if (tighttrackcut.requireTOF ) {
479+ bool is_El_TPC = tighttrackcut.minTPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < tighttrackcut.maxTPCNsigmaEl ;
480+ bool is_El_TOF = tighttrackcut.minTOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tighttrackcut.maxTOFNsigmaEl ;
481+ return is_El_TPC && is_El_TOF;
482+ } else { // TPC hadron band rejection OR TOFreq
483+ bool is_el_included_TPC = tighttrackcut.minTPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < tighttrackcut.maxTPCNsigmaEl ;
484+ bool is_el_included_TOF = track.hasTOF () ? tighttrackcut.minTOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tighttrackcut.maxTOFNsigmaEl : true ;
485+ bool is_pi_excluded_TPC = !(tighttrackcut.minTPCNsigmaPi < track.tpcNSigmaPi () && track.tpcNSigmaPi () < tighttrackcut.maxTPCNsigmaPi );
486+ bool is_ka_excluded_TPC = !(tighttrackcut.minTPCNsigmaKa < track.tpcNSigmaKa () && track.tpcNSigmaKa () < tighttrackcut.maxTPCNsigmaKa );
487+ bool is_pr_excluded_TPC = !(tighttrackcut.minTPCNsigmaPr < track.tpcNSigmaPr () && track.tpcNSigmaPr () < tighttrackcut.maxTPCNsigmaPr );
488+ bool is_el_included_TOFreq = tighttrackcut.minTOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tighttrackcut.maxTOFNsigmaEl ;
489+ return (is_el_included_TPC && is_el_included_TOF && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC) || (is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOFreq);
490+ }
473491 }
474492
475493 template <bool isMC, typename TCollision, typename TTrack>
0 commit comments