@@ -119,10 +119,15 @@ struct TreeCreatorElectronMLDDA {
119119 Configurable<double > d_bz_input{" d_bz_input" , -999 , " bz field, -999 is automatic" };
120120 Configurable<int > useMatCorrType{" useMatCorrType" , 2 , " 0: none, 1: TGeo, 2: LUT" };
121121
122- Configurable<float > downscaling_electron{" downscaling_electron" , 0.01 , " down scaling factor to store electron" };
123- Configurable<float > downscaling_pion{" downscaling_pion" , 0.01 , " down scaling factor to store pion" };
124- Configurable<float > downscaling_kaon{" downscaling_kaon" , 1.1 , " down scaling factor to store kaon" };
125- Configurable<float > downscaling_proton{" downscaling_proton" , 0.01 , " down scaling factor to store proton" };
122+ Configurable<float > downscaling_electron_highP{" downscaling_electron_highP" , 1.1 , " down scaling factor to store electron at high p" };
123+ Configurable<float > downscaling_pion_highP{" downscaling_pion_highP" , 1.1 , " down scaling factor to store pion at high p" };
124+ Configurable<float > downscaling_kaon_highP{" downscaling_kaon_highP" , 1.1 , " down scaling factor to store kaon at high p" };
125+ Configurable<float > downscaling_proton_highP{" downscaling_proton_highP" , 1.1 , " down scaling factor to store proton at high p" };
126+
127+ Configurable<float > downscaling_electron_lowP{" downscaling_electron_lowP" , 0.01 , " down scaling factor to store electron at low p" };
128+ Configurable<float > downscaling_pion_lowP{" downscaling_pion_lowP" , 0.01 , " down scaling factor to store pion at low p" };
129+ Configurable<float > downscaling_kaon_lowP{" downscaling_kaon_lowP" , 1.1 , " down scaling factor to store kaon at low p" };
130+ Configurable<float > downscaling_proton_lowP{" downscaling_proton_lowP" , 0.01 , " down scaling factor to store proton at low p" };
126131
127132 Configurable<float > max_p_for_downscaling_electron{" max_p_for_downscaling_electron" , 2.0 , " max p to apply down scaling factor to store electron" };
128133 Configurable<float > max_p_for_downscaling_pion{" max_p_for_downscaling_pion" , 2.0 , " max p to apply down scaling factor to store pion" };
@@ -588,20 +593,44 @@ struct TreeCreatorElectronMLDDA {
588593 // float dcaZ = mDcaInfoCov.getZ();
589594
590595 if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron )) {
591- if (dist01 (engine) > downscaling_electron && trackParCov.getP () < max_p_for_downscaling_electron) {
592- return ;
596+ if (trackParCov.getP () < max_p_for_downscaling_electron) {
597+ if (dist01 (engine) > downscaling_electron_lowP) {
598+ return ;
599+ }
600+ } else {
601+ if (dist01 (engine) > downscaling_electron_highP) {
602+ return ;
603+ }
593604 }
594605 } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion )) {
595- if (dist01 (engine) > downscaling_pion && trackParCov.getP () < max_p_for_downscaling_pion) {
596- return ;
606+ if (trackParCov.getP () < max_p_for_downscaling_pion) {
607+ if (dist01 (engine) > downscaling_pion_lowP) {
608+ return ;
609+ }
610+ } else {
611+ if (dist01 (engine) > downscaling_pion_highP) {
612+ return ;
613+ }
597614 }
598615 } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kKaon )) {
599- if (dist01 (engine) > downscaling_kaon && trackParCov.getP () < max_p_for_downscaling_kaon) {
600- return ;
616+ if (trackParCov.getP () < max_p_for_downscaling_kaon) {
617+ if (dist01 (engine) > downscaling_kaon_lowP) {
618+ return ;
619+ }
620+ } else {
621+ if (dist01 (engine) > downscaling_kaon_highP) {
622+ return ;
623+ }
601624 }
602625 } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton )) {
603- if (dist01 (engine) > downscaling_proton && trackParCov.getP () < max_p_for_downscaling_proton) {
604- return ;
626+ if (trackParCov.getP () < max_p_for_downscaling_proton) {
627+ if (dist01 (engine) > downscaling_proton_lowP) {
628+ return ;
629+ }
630+ } else {
631+ if (dist01 (engine) > downscaling_proton_highP) {
632+ return ;
633+ }
605634 }
606635 }
607636
@@ -700,10 +729,10 @@ struct TreeCreatorElectronMLDDA {
700729 }
701730
702731 // ! type of V0. 0: built solely for cascades (does not pass standard V0 cuts), 1: standard 2, 3: photon-like with TPC-only use. Regular analysis should always use type 1.
703- Filter v0Filter = o2::aod::v0data::v0Type == uint8_t (1 ) && o2::aod::v0data::v0cosPA > v0cuts.cfg_min_cospa.value && o2::aod::v0data::dcaV0daughters<v0cuts.cfg_max_dcadau.value && nabs(o2::aod::v0data::dcanegtopv)> v0cuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::v0data::dcanegtopv) > v0cuts.cfg_min_dcaxy_v0leg;
732+ Filter v0Filter = o2::aod::v0data::v0Type == uint8_t (1 ) && o2::aod::v0data::v0cosPA > v0cuts.cfg_min_cospa&& o2::aod::v0data::dcaV0daughters<v0cuts.cfg_max_dcadau && nabs(o2::aod::v0data::dcanegtopv)> v0cuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::v0data::dcanegtopv) > v0cuts.cfg_min_dcaxy_v0leg;
704733 using filteredV0s = soa::Filtered<aod::V0Datas>;
705734
706- Filter cascadeFilter = o2::aod::cascdata::dcacascdaughters < cascadecuts.cfg_max_dcadau.value && nabs(o2::aod::cascdata::dcanegtopv) > cascadecuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::cascdata::dcanegtopv) > cascadecuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::cascdata::dcabachtopv) > cascadecuts.cfg_min_dcaxy_bachelor;
735+ Filter cascadeFilter = o2::aod::cascdata::dcacascdaughters < cascadecuts.cfg_max_dcadau && nabs(o2::aod::cascdata::dcanegtopv) > cascadecuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::cascdata::dcanegtopv) > cascadecuts.cfg_min_dcaxy_v0leg&& nabs(o2::aod::cascdata::dcabachtopv) > cascadecuts.cfg_min_dcaxy_bachelor;
707736 using filteredCascades = soa::Filtered<aod::CascDatas>;
708737
709738 Filter collisionFilter_track_occupancy = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
0 commit comments