@@ -62,7 +62,7 @@ using MyCollision = MyCollisions::iterator;
6262using MyMCCollisions = soa::Join<aod::EMMCEvents, aod::BinnedGenPts>;
6363using MyMCCollision = MyMCCollisions::iterator;
6464
65- using MyV0Photons = soa::Join<aod::V0PhotonsKF, aod::V0KFEMEventIds>;
65+ using MyV0Photons = soa::Filtered<soa:: Join<aod::V0PhotonsKF, aod::V0KFEMEventIds, aod::V0PhotonsKFPrefilterBitDerived> >;
6666using MyV0Photon = MyV0Photons::iterator;
6767
6868using MyEMCClusters = soa::Join<aod::SkimEMCClusters, aod::EMEMCClusterMCLabels, aod::EMCEMEventIds>;
@@ -74,7 +74,7 @@ using MyPHOSCluster = MyEMCClusters::iterator;
7474using MyMCV0Legs = soa::Join<aod::V0Legs, aod::V0LegMCLabels>;
7575using MyMCV0Leg = MyMCV0Legs::iterator;
7676
77- using MyMCElectrons = soa::Join<aod::EMPrimaryElectronsFromDalitz, aod::EMPrimaryElectronEMEventIds, aod::EMPrimaryElectronMCLabels>;
77+ using MyMCElectrons = soa::Filtered<soa:: Join<aod::EMPrimaryElectronsFromDalitz, aod::EMPrimaryElectronEMEventIds, aod::EMPrimaryElectronsPrefilterBitDerived, aod:: EMPrimaryElectronMCLabels> >;
7878using MyMCElectron = MyMCElectrons::iterator;
7979
8080template <PairType pairtype, typename ... Types>
@@ -120,6 +120,8 @@ struct Pi0EtaToGammaGammaMC {
120120 Configurable<bool > cfg_require_v0_with_tpconly{" cfg_require_v0_with_tpconly" , false , " flag to select V0s with TPConly tracks" };
121121 Configurable<bool > cfg_require_v0_on_wwire_ib{" cfg_require_v0_on_wwire_ib" , false , " flag to select V0s on W wires ITSib" };
122122 Configurable<float > cfg_min_pt_v0{" cfg_min_pt_v0" , 0.1 , " min pT for v0 photons at PV" };
123+ Configurable<float > cfg_max_pt_v0{" cfg_max_pt_v0" , 1e+10 , " max pT for v0 photons at PV" };
124+ Configurable<float > cfg_min_eta_v0{" cfg_min_eta_v0" , -0.8 , " min eta for v0 photons at PV" };
123125 Configurable<float > cfg_max_eta_v0{" cfg_max_eta_v0" , 0.8 , " max eta for v0 photons at PV" };
124126 Configurable<float > cfg_min_v0radius{" cfg_min_v0radius" , 4.0 , " min v0 radius" };
125127 Configurable<float > cfg_max_v0radius{" cfg_max_v0radius" , 90.0 , " max v0 radius" };
@@ -130,6 +132,7 @@ struct Pi0EtaToGammaGammaMC {
130132 Configurable<float > cfg_max_chi2kf{" cfg_max_chi2kf" , 1e+10 , " max chi2/ndf with KF" };
131133 Configurable<bool > cfg_require_v0_with_correct_xz{" cfg_require_v0_with_correct_xz" , true , " flag to select V0s with correct xz" };
132134 Configurable<bool > cfg_reject_v0_on_itsib{" cfg_reject_v0_on_itsib" , true , " flag to reject V0s on ITSib" };
135+ Configurable<bool > cfg_apply_cuts_from_prefilter_derived{" cfg_apply_cuts_from_prefilter_derived" , false , " flag to apply prefilter to V0" };
133136
134137 Configurable<int > cfg_min_ncluster_tpc{" cfg_min_ncluster_tpc" , 10 , " min ncluster tpc" };
135138 Configurable<int > cfg_min_ncrossedrows{" cfg_min_ncrossedrows" , 40 , " min ncrossed rows" };
@@ -147,7 +150,6 @@ struct Pi0EtaToGammaGammaMC {
147150 Configurable<float > cfg_min_mass{" cfg_min_mass" , 0.0 , " min mass" };
148151 Configurable<float > cfg_max_mass{" cfg_max_mass" , 0.1 , " max mass" };
149152 Configurable<bool > cfg_apply_phiv{" cfg_apply_phiv" , true , " flag to apply phiv cut" };
150- Configurable<bool > cfg_apply_pf{" cfg_apply_pf" , false , " flag to apply phiv prefilter" };
151153 Configurable<bool > cfg_require_itsib_any{" cfg_require_itsib_any" , false , " flag to require ITS ib any hits" };
152154 Configurable<bool > cfg_require_itsib_1st{" cfg_require_itsib_1st" , true , " flag to require ITS ib 1st hit" };
153155 Configurable<float > cfg_phiv_slope{" cfg_phiv_slope" , 0.0185 , " slope for m vs. phiv" };
@@ -160,10 +162,11 @@ struct Pi0EtaToGammaGammaMC {
160162 Configurable<int > cfg_min_ncrossedrows{" cfg_min_ncrossedrows" , 70 , " min ncrossed rows" };
161163 Configurable<float > cfg_max_chi2tpc{" cfg_max_chi2tpc" , 4.0 , " max chi2/NclsTPC" };
162164 Configurable<float > cfg_max_chi2its{" cfg_max_chi2its" , 5.0 , " max chi2/NclsITS" };
163- Configurable<float > cfg_max_dcaxy{" cfg_max_dcaxy" , 1.0 , " max dca XY for single track in cm" };
164- Configurable<float > cfg_max_dcaz{" cfg_max_dcaz" , 1.0 , " max dca Z for single track in cm" };
165+ Configurable<float > cfg_max_dcaxy{" cfg_max_dcaxy" , 0.05 , " max dca XY for single track in cm" };
166+ Configurable<float > cfg_max_dcaz{" cfg_max_dcaz" , 0.05 , " max dca Z for single track in cm" };
167+ Configurable<bool > cfg_apply_cuts_from_prefilter_derived{" cfg_apply_cuts_from_prefilter_derived" , false , " flag to apply prefilter to electron" };
165168
166- Configurable<int > cfg_pid_scheme{" cfg_pid_scheme" , static_cast <int >(DalitzEECut::PIDSchemes::kTPConly ), " pid scheme [kTPConly : 0]" };
169+ Configurable<int > cfg_pid_scheme{" cfg_pid_scheme" , static_cast <int >(DalitzEECut::PIDSchemes::kTOFif ), " pid scheme [kTOFif : 0, kTPConly : 1 ]" };
167170 Configurable<float > cfg_min_TPCNsigmaEl{" cfg_min_TPCNsigmaEl" , -2.0 , " min. TPC n sigma for electron inclusion" };
168171 Configurable<float > cfg_max_TPCNsigmaEl{" cfg_max_TPCNsigmaEl" , +3.0 , " max. TPC n sigma for electron inclusion" };
169172 Configurable<float > cfg_min_TPCNsigmaPi{" cfg_min_TPCNsigmaPi" , -3.0 , " min. TPC n sigma for pion exclusion" };
@@ -302,8 +305,8 @@ struct Pi0EtaToGammaGammaMC {
302305 fV0PhotonCut = V0PhotonCut (" fV0PhotonCut" , " fV0PhotonCut" );
303306
304307 // for v0
305- fV0PhotonCut .SetV0PtRange (pcmcuts.cfg_min_pt_v0 , 1e10f );
306- fV0PhotonCut .SetV0EtaRange (- pcmcuts.cfg_max_eta_v0 , + pcmcuts.cfg_max_eta_v0 );
308+ fV0PhotonCut .SetV0PtRange (pcmcuts.cfg_min_pt_v0 , pcmcuts. cfg_max_pt_v0 );
309+ fV0PhotonCut .SetV0EtaRange (pcmcuts.cfg_min_eta_v0 , pcmcuts.cfg_max_eta_v0 );
307310 fV0PhotonCut .SetMinCosPA (pcmcuts.cfg_min_cospa );
308311 fV0PhotonCut .SetMaxPCA (pcmcuts.cfg_max_pca );
309312 fV0PhotonCut .SetMaxChi2KF (pcmcuts.cfg_max_chi2kf );
@@ -697,6 +700,9 @@ struct Pi0EtaToGammaGammaMC {
697700 Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
698701 using FilteredMyCollisions = soa::Filtered<MyCollisions>;
699702
703+ Filter prefilter_pcm = ifnode(pcmcuts.cfg_apply_cuts_from_prefilter_derived.node(), o2::aod::v0photonkf::pfbderived == static_cast <uint16_t >(0 ), true );
704+ Filter prefilter_primaryelectron = ifnode(dileptoncuts.cfg_apply_cuts_from_prefilter_derived.node(), o2::aod::emprimaryelectron::pfbderived == static_cast <uint16_t >(0 ), true );
705+
700706 void processAnalysis (FilteredMyCollisions const & collisions, MyMCCollisions const & mccollisions, aod::EMMCParticles const & mcparticles, Types const &... args)
701707 {
702708 if constexpr (pairtype == PairType::kPCMPCM ) {
0 commit comments