@@ -128,11 +128,11 @@ struct TreeCreatorElectronMLDDA {
128128 Configurable<float > downscaling_kaon{" downscaling_kaon" , 1.1 , " down scaling factor to store kaon" };
129129 Configurable<float > downscaling_proton{" downscaling_proton" , 0.005 , " down scaling factor to store proton" };
130130
131- Configurable<float > max_pin_for_downscaling_electron_primary{ " max_pin_for_downscaling_electron_primary " , 0.0 , " max pin to apply down scaling factor to store primary electron for validation" };
132- Configurable<float > max_pin_for_downscaling_electron{ " max_pin_for_downscaling_electron " , 2.0 , " max pin to apply down scaling factor to store electron" };
133- Configurable<float > max_pin_for_downscaling_pion{ " max_pin_for_downscaling_pion " , 2.0 , " max pin to apply down scaling factor to store pion" };
134- Configurable<float > max_pin_for_downscaling_kaon{ " max_pin_for_downscaling_kaon " , 0.0 , " max pin to apply down scaling factor to store kaon" };
135- Configurable<float > max_pin_for_downscaling_proton{ " max_pin_for_downscaling_proton " , 2.0 , " max pin to apply down scaling factor to store proton" };
131+ Configurable<float > max_p_for_downscaling_electron_primary{ " max_p_for_downscaling_electron_primary " , 0.0 , " max p to apply down scaling factor to store primary electron for validation" };
132+ Configurable<float > max_p_for_downscaling_electron{ " max_p_for_downscaling_electron " , 2.0 , " max p to apply down scaling factor to store electron" };
133+ Configurable<float > max_p_for_downscaling_pion{ " max_p_for_downscaling_pion " , 2.0 , " max p to apply down scaling factor to store pion" };
134+ Configurable<float > max_p_for_downscaling_kaon{ " max_p_for_downscaling_kaon " , 0.0 , " max p to apply down scaling factor to store kaon" };
135+ Configurable<float > max_p_for_downscaling_proton{ " max_p_for_downscaling_proton " , 2.0 , " max p to apply down scaling factor to store proton" };
136136 Configurable<bool > store_ele_band_only{" store_ele_band_only" , false , " flag to store tracks around electron band only to reduce output size" };
137137
138138 struct : ConfigurableGroup {
@@ -583,17 +583,41 @@ struct TreeCreatorElectronMLDDA {
583583 if (store_ele_band_only && !isElectron (track)) {
584584 return ;
585585 }
586+ mDcaInfoCov .set (999 , 999 , 999 , 999 , 999 );
587+ auto trackParCov = getTrackParCov (track);
588+ // trackParCov.setPID(track.pidForTracking());
589+ trackParCov.setPID (o2::track::PID::Electron); // This is for eID in the end!
590+ mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
591+ mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
592+ o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
593+ float dcaXY = mDcaInfoCov .getY ();
594+ float dcaZ = mDcaInfoCov .getZ ();
586595
587- if (std::find (stored_trackIds.begin (), stored_trackIds.end (), track.globalIndex ()) == stored_trackIds.end ()) {
588- mDcaInfoCov .set (999 , 999 , 999 , 999 , 999 );
589- auto trackParCov = getTrackParCov (track);
590- trackParCov.setPID (track.pidForTracking ());
591- mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
592- mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
593- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
594- float dcaXY = mDcaInfoCov .getY ();
595- float dcaZ = mDcaInfoCov .getZ ();
596+ if (tracktype == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary )) {
597+ if (dist01 (engine) > downscaling_electron_primary && trackParCov.getP () < max_p_for_downscaling_electron_primary) {
598+ return ;
599+ }
600+ } else { // secondary
601+ if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron )) {
602+ if (dist01 (engine) > downscaling_electron && trackParCov.getP () < max_p_for_downscaling_electron) {
603+ return ;
604+ }
605+ } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion )) {
606+ if (dist01 (engine) > downscaling_pion && trackParCov.getP () < max_p_for_downscaling_pion) {
607+ return ;
608+ }
609+ } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kKaon )) {
610+ if (dist01 (engine) > downscaling_kaon && trackParCov.getP () < max_p_for_downscaling_kaon) {
611+ return ;
612+ }
613+ } else if (pidlabel == static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton )) {
614+ if (dist01 (engine) > downscaling_proton && trackParCov.getP () < max_p_for_downscaling_proton) {
615+ return ;
616+ }
617+ }
618+ }
596619
620+ if (std::find (stored_trackIds.begin (), stored_trackIds.end (), track.globalIndex ()) == stored_trackIds.end ()) {
597621 emprimarytracks (collision.numContrib (), collision.trackOccupancyInTimeRange (), collision.ft0cOccupancyInTimeRange (),
598622 trackParCov.getPt (), trackParCov.getEta (), trackParCov.getPhi () > 0 .f ? trackParCov.getPhi () : trackParCov.getPhi () + 2 * M_PI, trackParCov.getTgl (), track.sign (),
599623 dcaXY, dcaZ, trackParCov.getSigmaY2 (), trackParCov.getSigmaZ2 (), trackParCov.getSigmaZY (),
@@ -758,30 +782,22 @@ struct TreeCreatorElectronMLDDA {
758782 registry.fill (HIST (" V0/hTOFbeta_P_Pi" ), neg.tpcInnerParam (), neg.beta ());
759783 registry.fill (HIST (" V0/hTPCdEdx_P_Pi" ), pos.tpcInnerParam (), pos.tpcSignal ());
760784 registry.fill (HIST (" V0/hTOFbeta_P_Pi" ), pos.tpcInnerParam (), pos.beta ());
761- if (dist01 (engine) < downscaling_pion || pos.tpcInnerParam () > max_pin_for_downscaling_pion) {
762- fillTrackTable (collision, pos, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
763- }
764- if (dist01 (engine) < downscaling_pion || neg.tpcInnerParam () > max_pin_for_downscaling_pion) {
765- fillTrackTable (collision, neg, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
766- }
785+ fillTrackTable (collision, pos, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
786+ fillTrackTable (collision, neg, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kPion ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
767787 }
768788 }
769789 if (isProton (pos) && isPionTight (neg)) {
770790 registry.fill (HIST (" V0/hMassLambda" ), v0.mLambda ());
771791 if (v0cuts.cfg_min_mass_lambda < v0.mLambda () && v0.mLambda () < v0cuts.cfg_max_mass_lambda ) {
772- if (dist01 (engine) < downscaling_proton || pos.tpcInnerParam () > max_pin_for_downscaling_proton) {
773- fillTrackTable (collision, pos, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
774- }
792+ fillTrackTable (collision, pos, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
775793 registry.fill (HIST (" V0/hTPCdEdx_P_Pr" ), pos.tpcInnerParam (), pos.tpcSignal ());
776794 registry.fill (HIST (" V0/hTOFbeta_P_Pr" ), pos.tpcInnerParam (), pos.beta ());
777795 }
778796 }
779797 if (isPionTight (pos) && isProton (neg)) {
780798 registry.fill (HIST (" V0/hMassAntiLambda" ), v0.mAntiLambda ());
781799 if (v0cuts.cfg_min_mass_lambda < v0.mAntiLambda () && v0.mAntiLambda () < v0cuts.cfg_max_mass_lambda ) {
782- if (dist01 (engine) < downscaling_proton || neg.tpcInnerParam () > max_pin_for_downscaling_proton) {
783- fillTrackTable (collision, neg, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
784- }
800+ fillTrackTable (collision, neg, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kProton ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
785801 registry.fill (HIST (" V0/hTPCdEdx_P_Pr" ), neg.tpcInnerParam (), neg.tpcSignal ());
786802 registry.fill (HIST (" V0/hTOFbeta_P_Pr" ), neg.tpcInnerParam (), neg.beta ());
787803 }
@@ -791,12 +807,8 @@ struct TreeCreatorElectronMLDDA {
791807 registry.fill (HIST (" V0/hXY_Gamma" ), v0.x (), v0.y ());
792808 registry.fill (HIST (" V0/hMassGamma_Rxy" ), v0.v0radius (), v0.mGamma ());
793809 if ((v0cuts.cfg_min_mass_photon < v0.mGamma () && v0.mGamma () < v0cuts.cfg_max_mass_photon )) {
794- if (dist01 (engine) < downscaling_electron || pos.tpcInnerParam () > max_pin_for_downscaling_electron) {
795- fillTrackTable (collision, pos, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
796- }
797- if (dist01 (engine) < downscaling_electron || neg.tpcInnerParam () > max_pin_for_downscaling_electron) {
798- fillTrackTable (collision, neg, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
799- }
810+ fillTrackTable (collision, pos, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
811+ fillTrackTable (collision, neg, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
800812 registry.fill (HIST (" V0/hTPCdEdx_P_El" ), neg.tpcInnerParam (), neg.tpcSignal ());
801813 registry.fill (HIST (" V0/hTOFbeta_P_El" ), neg.tpcInnerParam (), neg.beta ());
802814 registry.fill (HIST (" V0/hTPCdEdx_P_El" ), pos.tpcInnerParam (), pos.tpcSignal ());
@@ -883,9 +895,7 @@ struct TreeCreatorElectronMLDDA {
883895 if (cascadecuts.cfg_min_mass_Omega < cascade.mOmega () && cascade.mOmega () < cascadecuts.cfg_max_mass_Omega ) { // select Omega candidates
884896 registry.fill (HIST (" V0/hTPCdEdx_P_Ka" ), bachelor.tpcInnerParam (), bachelor.tpcSignal ());
885897 registry.fill (HIST (" V0/hTOFbeta_P_Ka" ), bachelor.tpcInnerParam (), bachelor.beta ());
886- if (dist01 (engine) < downscaling_kaon || bachelor.tpcInnerParam () > max_pin_for_downscaling_kaon) {
887- fillTrackTable (collision, bachelor, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kKaon ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary ), false );
888- }
898+ fillTrackTable (collision, bachelor, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kKaon ), static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::Track_Type::kSecondary ), false );
889899 }
890900 }
891901 } // end of cascade loop
@@ -927,14 +937,10 @@ struct TreeCreatorElectronMLDDA {
927937
928938 if ((dalitzcuts.cfg_min_mass_ee < v12.M () && v12.M () < dalitzcuts.cfg_max_mass_ee ) && (dalitzcuts.cfg_min_phiv_ee < phiv && phiv < dalitzcuts.cfg_max_phiv_ee )) { // ee from pi0 dalitz decay is found.
929939 if (isElectronTight (pos) && isElectron (neg)) {
930- if (dist01 (engine) < downscaling_electron_primary || neg.tpcInnerParam () > max_pin_for_downscaling_electron_primary) {
931- fillTrackTable (collision, neg, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary ), true ); // primary electron candidates
932- }
940+ fillTrackTable (collision, neg, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary ), true ); // primary electron candidates
933941 }
934942 if (isElectron (pos) && isElectronTight (neg)) {
935- if (dist01 (engine) < downscaling_electron_primary || pos.tpcInnerParam () > max_pin_for_downscaling_electron_primary) {
936- fillTrackTable (collision, pos, static_cast <int >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary ), true ); // primary electron candidates
937- }
943+ fillTrackTable (collision, pos, static_cast <uint8_t >(o2::aod::pwgem::dilepton::ml::PID_Label::kElectron ), static_cast <int >(o2::aod::pwgem::dilepton::ml::Track_Type::kPrimary ), true ); // primary electron candidates
938944 }
939945 }
940946 } // end of ULS pair loop
0 commit comments