@@ -140,6 +140,12 @@ struct createTTP {
140140
141141 Configurable<float > min_TPCNsigmaEl{" min_TPCNsigmaEl" , -2 , " min. TPC n sigma for electron inclusion" };
142142 Configurable<float > max_TPCNsigmaEl{" max_TPCNsigmaEl" , +3 , " max. TPC n sigma for electron inclusion" };
143+ Configurable<float > min_TPCNsigmaPi{" min_TPCNsigmaPi" , -1e+10 , " min n sigma pi in TPC for exclusion" };
144+ Configurable<float > max_TPCNsigmaPi{" max_TPCNsigmaPi" , +3 , " max n sigma pi in TPC for exclusion" };
145+ Configurable<float > min_TPCNsigmaKa{" min_TPCNsigmaKa" , -3 , " min n sigma ka in TPC for exclusion" };
146+ Configurable<float > max_TPCNsigmaKa{" max_TPCNsigmaKa" , +3 , " max n sigma ka in TPC for exclusion" };
147+ Configurable<float > min_TPCNsigmaPr{" min_TPCNsigmaPr" , -3 , " min n sigma pr in TPC for exclusion" };
148+ Configurable<float > max_TPCNsigmaPr{" max_TPCNsigmaPr" , +3 , " max n sigma pr in TPC for exclusion" };
143149 Configurable<float > min_TOFNsigmaEl{" min_TOFNsigmaEl" , -3 , " min. TOF n sigma for electron inclusion" };
144150 Configurable<float > max_TOFNsigmaEl{" max_TOFNsigmaEl" , +3 , " max. TOF n sigma for electron inclusion" };
145151 } tagCut;
@@ -395,9 +401,18 @@ struct createTTP {
395401 template <typename TTrack>
396402 bool isTagElectron (TTrack const & track)
397403 {
398- bool is_El_TPC = tagCut.min_TPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < tagCut.max_TPCNsigmaEl ;
399- bool is_El_TOF = tagCut.min_TOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tagCut.max_TOFNsigmaEl ;
400- return is_El_TPC && is_El_TOF;
404+ bool is_OK_El_TPC = tagCut.min_TPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < tagCut.max_TPCNsigmaEl ;
405+ bool is_OK_El_TOFreq = tagCut.min_TOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tagCut.max_TOFNsigmaEl ;
406+
407+ bool is_OK_Pi_TPC = !(tagCut.min_TPCNsigmaPi < track.tpcNSigmaPi () && track.tpcNSigmaPi () < tagCut.max_TPCNsigmaPi );
408+ bool is_OK_Ka_TPC = !(tagCut.min_TPCNsigmaKa < track.tpcNSigmaKa () && track.tpcNSigmaKa () < tagCut.max_TPCNsigmaKa );
409+ bool is_OK_Pr_TPC = !(tagCut.min_TPCNsigmaPr < track.tpcNSigmaPr () && track.tpcNSigmaPr () < tagCut.max_TPCNsigmaPr );
410+ bool is_OK_El_TOFif = track.hasTOF () ? tagCut.min_TOFNsigmaEl < track.tofNSigmaEl () && track.tofNSigmaEl () < tagCut.max_TOFNsigmaEl : true ;
411+
412+ bool isTOFreq = is_OK_El_TPC && is_OK_Pi_TPC && is_OK_El_TOFreq;
413+ bool isTPC_had_rej = is_OK_El_TPC && is_OK_Pi_TPC && is_OK_Ka_TPC && is_OK_Pr_TPC && is_OK_El_TOFif;
414+
415+ return isTOFreq || isTPC_had_rej;
401416 }
402417
403418 template <typename TTrack>
@@ -492,7 +507,7 @@ struct createTTP {
492507 using MyBCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels>;
493508 using MyCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
494509 using MyTracks = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU,
495- aod::pidTPCFullEl, /* aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,*/
510+ aod::pidTPCFullEl, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
496511 aod::pidTOFFullEl /* , aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr, aod::pidTOFbeta*/ >;
497512
498513 Filter collisionFilter_zvtx = eventCut.cfgZvtxMin < o2::aod::collision::posZ && o2::aod::collision::posZ < eventCut.cfgZvtxMax;
0 commit comments