Skip to content

Commit 8fb6e00

Browse files
authored
[PWGEM/Dilepton] change from max pin to max p (#11828)
1 parent 18c3470 commit 8fb6e00

File tree

1 file changed

+47
-41
lines changed

1 file changed

+47
-41
lines changed

PWGEM/Dilepton/TableProducer/treeCreatorElectronMLDDA.cxx

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)