Skip to content

Commit 75540b2

Browse files
dsekihatalibuild
andauthored
[PWGEM/Dilepton] mv prefilterDielectron.cxx under TableProducer (#16731)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 4c30ac2 commit 75540b2

9 files changed

Lines changed: 63 additions & 87 deletions

File tree

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,21 +153,21 @@ class DielectronCut : public TNamed
153153
}
154154

155155
float deta = v1.Eta() - v2.Eta();
156-
float dphi = v1.Phi() - v2.Phi();
156+
float dphi = RecoDecay::constrainAngle(v1.Phi(), 0, 1U) - RecoDecay::constrainAngle(v2.Phi(), 0, 1U);
157157
dphi = RecoDecay::constrainAngle(dphi, -M_PI, 1U); // -pi - +pi
158158
if (mApplydEtadPhi && std::pow(deta / mMinDeltaEta, 2) + std::pow(dphi / mMinDeltaPhi, 2) < 1.f) {
159159
return false;
160160
}
161161

162-
float phiPosition1 = t1.phi() + std::asin(t1.sign() * -0.30282 * (mBz * 0.1) * mRefR / (2.f * t1.pt()));
163-
float phiPosition2 = t2.phi() + std::asin(t2.sign() * -0.30282 * (mBz * 0.1) * mRefR / (2.f * t2.pt()));
164-
phiPosition1 = RecoDecay::constrainAngle(phiPosition1, 0, 1U); // 0-2pi
165-
phiPosition2 = RecoDecay::constrainAngle(phiPosition2, 0, 1U); // 0-2pi
166-
float dphiPosition = phiPosition1 - phiPosition2;
167-
dphiPosition = RecoDecay::constrainAngle(dphiPosition, -M_PI, 1U); // -pi - +pi
168-
if (mApplydEtadPhiPosition && std::pow(deta / mMinDeltaEta, 2) + std::pow(dphiPosition / mMinDeltaPhi, 2) < 1.f) {
169-
return false;
170-
}
162+
// float phiPosition1 = t1.phi() + std::asin(t1.sign() * -0.30282 * (mBz * 0.1) * mRefR / (2.f * t1.pt()));
163+
// float phiPosition2 = t2.phi() + std::asin(t2.sign() * -0.30282 * (mBz * 0.1) * mRefR / (2.f * t2.pt()));
164+
// phiPosition1 = RecoDecay::constrainAngle(phiPosition1, 0, 1U); // 0-2pi
165+
// phiPosition2 = RecoDecay::constrainAngle(phiPosition2, 0, 1U); // 0-2pi
166+
// float dphiPosition = phiPosition1 - phiPosition2;
167+
// dphiPosition = RecoDecay::constrainAngle(dphiPosition, -M_PI, 1U); // -pi - +pi
168+
// if (mApplydEtadPhiPosition && std::pow(deta / mMinDeltaEta, 2) + std::pow(dphiPosition / mMinDeltaPhi, 2) < 1.f) {
169+
// return false;
170+
// }
171171

172172
return true;
173173
}

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ struct DileptonMC {
260260
// configuration for PID ML
261261
o2::framework::Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
262262
o2::framework::Configurable<std::vector<std::string>> onnxPathsCCDB{"onnxPathsCCDB", std::vector<std::string>{"path"}, "Paths of models on CCDB"};
263-
o2::framework::Configurable<std::vector<double>> binsMl{"binsMl", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 20.f}, "Bin limits for ML application"};
264-
o2::framework::Configurable<std::vector<double>> cutsMl{"cutsMl", std::vector<double>{0.98, 0.98, 0.9, 0.9, 0.95, 0.95, 0.8, 0.8}, "ML cuts per bin"};
263+
o2::framework::Configurable<std::vector<double>> binsMLPID{"binsMLPID", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 4.0, 20.f}, "Bin limits for ML application"};
264+
o2::framework::Configurable<std::vector<double>> cutsMLPID{"cutsMLPID", std::vector<double>{0.97, 0.97, 0.97, 0.8, 0.95, 0.95, 0.8, 0.8, 0.8}, "ML cuts per bin"};
265265
o2::framework::Configurable<std::vector<std::string>> namesInputFeatures{"namesInputFeatures", std::vector<std::string>{"feature"}, "Names of ML model input features"};
266266
o2::framework::Configurable<std::string> nameBinningFeature{"nameBinningFeature", "pt", "Names of ML model binning feature"};
267267
o2::framework::Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB. Exceptions: > 0 for the specific timestamp, 0 gets the run dependent timestamp"};
@@ -771,14 +771,14 @@ struct DileptonMC {
771771

772772
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
773773
std::vector<float> binsML{};
774-
binsML.reserve(dielectroncuts.binsMl.value.size());
775-
for (size_t i = 0; i < dielectroncuts.binsMl.value.size(); i++) {
776-
binsML.emplace_back(dielectroncuts.binsMl.value[i]);
774+
binsML.reserve(dielectroncuts.binsMLPID.value.size());
775+
for (size_t i = 0; i < dielectroncuts.binsMLPID.value.size(); i++) {
776+
binsML.emplace_back(dielectroncuts.binsMLPID.value[i]);
777777
}
778778
std::vector<float> thresholdsML{};
779-
thresholdsML.reserve(dielectroncuts.cutsMl.value.size());
780-
for (size_t i = 0; i < dielectroncuts.cutsMl.value.size(); i++) {
781-
thresholdsML.emplace_back(dielectroncuts.cutsMl.value[i]);
779+
thresholdsML.reserve(dielectroncuts.cutsMLPID.value.size());
780+
for (size_t i = 0; i < dielectroncuts.cutsMLPID.value.size(); i++) {
781+
thresholdsML.emplace_back(dielectroncuts.cutsMLPID.value[i]);
782782
}
783783
fDielectronCut.SetMLThresholds(binsML, thresholdsML);
784784
} // end of PID ML

PWGEM/Dilepton/Core/DileptonSV.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ struct DileptonSV {
205205
o2::framework::Configurable<float> cfg_max_pair_y{"cfg_max_pair_y", +0.8, "max pair rapidity"};
206206
o2::framework::Configurable<float> cfg_min_pair_dca3d{"cfg_min_pair_dca3d", 0.0, "min pair dca3d in sigma"};
207207
o2::framework::Configurable<float> cfg_max_pair_dca3d{"cfg_max_pair_dca3d", 1e+10, "max pair dca3d in sigma"};
208-
o2::framework::Configurable<bool> cfg_apply_phiv{"cfg_apply_phiv", true, "flag to apply phiv cut"};
208+
o2::framework::Configurable<bool> cfg_apply_phiv{"cfg_apply_phiv", false, "flag to apply phiv cut"};
209209
o2::framework::Configurable<float> cfg_phiv_slope{"cfg_phiv_slope", 0.0185, "slope for m vs. phiv"};
210210
o2::framework::Configurable<float> cfg_phiv_intercept{"cfg_phiv_intercept", -0.0280, "intercept for m vs. phiv"};
211211
o2::framework::Configurable<float> cfg_min_phiv{"cfg_min_phiv", 0.0, "min phiv (constant)"};
@@ -272,8 +272,8 @@ struct DileptonSV {
272272
// configuration for PID ML
273273
// o2::framework::Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
274274
// o2::framework::Configurable<std::vector<std::string>> onnxPathsCCDB{"onnxPathsCCDB", std::vector<std::string>{"path"}, "Paths of models on CCDB"};
275-
o2::framework::Configurable<std::vector<double>> binsMLPID{"binsMLPID", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 20.f}, "Bin limits for ML application"};
276-
o2::framework::Configurable<std::vector<double>> cutsMLPID{"cutsMLPID", std::vector<double>{0.97, 0.97, 0.97, 0.8, 0.95, 0.95, 0.8, 0.8}, "ML cuts per bin"};
275+
o2::framework::Configurable<std::vector<double>> binsMLPID{"binsMLPID", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 4.0, 20.f}, "Bin limits for ML application"};
276+
o2::framework::Configurable<std::vector<double>> cutsMLPID{"cutsMLPID", std::vector<double>{0.97, 0.97, 0.97, 0.8, 0.95, 0.95, 0.8, 0.8, 0.8}, "ML cuts per bin"};
277277
// o2::framework::Configurable<std::vector<std::string>> namesInputFeatures{"namesInputFeatures", std::vector<std::string>{"feature"}, "Names of ML model input features"};
278278
// o2::framework::Configurable<std::string> nameBinningFeature{"nameBinningFeature", "pt", "Names of ML model binning feature"};
279279
// o2::framework::Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB. Exceptions: > 0 for the specific timestamp, 0 gets the run dependent timestamp"};

PWGEM/Dilepton/Core/DileptonSVMC.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,8 @@ struct DileptonSVMC {
263263
// configuration for PID ML
264264
o2::framework::Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
265265
o2::framework::Configurable<std::vector<std::string>> onnxPathsCCDB{"onnxPathsCCDB", std::vector<std::string>{"path"}, "Paths of models on CCDB"};
266-
o2::framework::Configurable<std::vector<double>> binsMl{"binsMl", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 20.f}, "Bin limits for ML application"};
267-
o2::framework::Configurable<std::vector<double>> cutsMl{"cutsMl", std::vector<double>{0.98, 0.98, 0.9, 0.9, 0.95, 0.95, 0.8, 0.8}, "ML cuts per bin"};
266+
o2::framework::Configurable<std::vector<double>> binsMLPID{"binsMLPID", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 4.0, 20.f}, "Bin limits for ML application"};
267+
o2::framework::Configurable<std::vector<double>> cutsMLPID{"cutsMLPID", std::vector<double>{0.97, 0.97, 0.97, 0.8, 0.95, 0.95, 0.8, 0.8, 0.8}, "ML cuts per bin"};
268268
o2::framework::Configurable<std::vector<std::string>> namesInputFeatures{"namesInputFeatures", std::vector<std::string>{"feature"}, "Names of ML model input features"};
269269
o2::framework::Configurable<std::string> nameBinningFeature{"nameBinningFeature", "pt", "Names of ML model binning feature"};
270270
o2::framework::Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB. Exceptions: > 0 for the specific timestamp, 0 gets the run dependent timestamp"};
@@ -809,14 +809,14 @@ struct DileptonSVMC {
809809

810810
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
811811
std::vector<float> binsML{};
812-
binsML.reserve(dielectroncuts.binsMl.value.size());
813-
for (size_t i = 0; i < dielectroncuts.binsMl.value.size(); i++) {
814-
binsML.emplace_back(dielectroncuts.binsMl.value[i]);
812+
binsML.reserve(dielectroncuts.binsMLPID.value.size());
813+
for (size_t i = 0; i < dielectroncuts.binsMLPID.value.size(); i++) {
814+
binsML.emplace_back(dielectroncuts.binsMLPID.value[i]);
815815
}
816816
std::vector<float> thresholdsML{};
817-
thresholdsML.reserve(dielectroncuts.cutsMl.value.size());
818-
for (size_t i = 0; i < dielectroncuts.cutsMl.value.size(); i++) {
819-
thresholdsML.emplace_back(dielectroncuts.cutsMl.value[i]);
817+
thresholdsML.reserve(dielectroncuts.cutsMLPID.value.size());
818+
for (size_t i = 0; i < dielectroncuts.cutsMLPID.value.size(); i++) {
819+
thresholdsML.emplace_back(dielectroncuts.cutsMLPID.value[i]);
820820
}
821821
fDielectronCut.SetMLThresholds(binsML, thresholdsML);
822822
} // end of PID ML

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,8 @@ struct SingleTrackQC {
193193
// configuration for PID ML
194194
// o2::framework::Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
195195
// o2::framework::Configurable<std::vector<std::string>> onnxPathsCCDB{"onnxPathsCCDB", std::vector<std::string>{"path"}, "Paths of models on CCDB"};
196-
o2::framework::Configurable<std::vector<double>> binsMl{"binsMl", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 4.0, 20.f}, "Bin limits for ML application"};
197-
o2::framework::Configurable<std::vector<double>> cutsMl{"cutsMl", std::vector<double>{0.98, 0.98, 0.9, 0.9, 0.95, 0.95, 0.8, 0.8, 0.8}, "ML cuts per bin"};
196+
o2::framework::Configurable<std::vector<double>> binsMLPID{"binsMLPID", std::vector<double>{0.1, 0.15, 0.2, 0.25, 0.4, 0.8, 1.6, 2.0, 4.0, 20.f}, "Bin limits for ML application"};
197+
o2::framework::Configurable<std::vector<double>> cutsMLPID{"cutsMLPID", std::vector<double>{0.97, 0.97, 0.97, 0.8, 0.95, 0.95, 0.8, 0.8, 0.8}, "ML cuts per bin"};
198198
// o2::framework::Configurable<std::vector<std::string>> namesInputFeatures{"namesInputFeatures", std::vector<std::string>{"feature"}, "Names of ML model input features"};
199199
// o2::framework::Configurable<std::string> nameBinningFeature{"nameBinningFeature", "pt", "Names of ML model binning feature"};
200200
// o2::framework::Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB. Exceptions: > 0 for the specific timestamp, 0 gets the run dependent timestamp"};
@@ -276,7 +276,6 @@ struct SingleTrackQC {
276276

277277
// track info
278278
fRegistry.add("Track/positive/hs", "rec. single electron", o2::framework::HistType::kTHnSparseD, {axis_pt, axis_eta, axis_phi, axis_dca3D, axis_dcaXY, axis_dcaZ}, true);
279-
fRegistry.add("Track/positive/hPhiPosition", Form("phi position at r_{xy} = %3.2f m", dielectroncuts.cfgRefR.value), o2::framework::HistType::kTH1F, {axis_phiposition}, false);
280279
fRegistry.add("Track/positive/hQoverPt", "q/pT;q/p_{T} (GeV/c)^{-1}", o2::framework::HistType::kTH1F, {{4000, -20, 20}}, false);
281280
fRegistry.add("Track/positive/hDCAxyz", "DCA xy vs. z;DCA_{xy} (cm);DCA_{z} (cm)", o2::framework::HistType::kTH2F, {{200, -1.0f, 1.0f}, {200, -1.f, 1.f}}, false);
282281
fRegistry.add("Track/positive/hDCAxyzSigma", "DCA xy vs. z;DCA_{xy} (#sigma);DCA_{z} (#sigma)", o2::framework::HistType::kTH2F, {{400, -20.0f, 20.0f}, {400, -20.0f, 20.0f}}, false);
@@ -291,7 +290,7 @@ struct SingleTrackQC {
291290
fRegistry.add("Track/positive/hTPCNcls2Nf", "TPC Ncls/Nfindable;TPC N_{cls}/N_{cls}^{findable}", o2::framework::HistType::kTH1F, {{200, 0, 2}}, false);
292291
fRegistry.add("Track/positive/hTPCNclsShared", "TPC Ncls shared/Ncls;p_{T} (GeV/c);N_{cls}^{shared}/N_{cls} in TPC", o2::framework::HistType::kTH2F, {{1000, 0, 10}, {100, 0, 1}}, false);
293292
fRegistry.add("Track/positive/hNclsITS", "number of ITS clusters;ITS N_{cls}", o2::framework::HistType::kTH1F, {{8, -0.5, 7.5}}, false);
294-
fRegistry.add("Track/positive/hChi2ITS", "chi2/number of ITS clusters;ITS #chi^{2}/N_{cls}", o2::framework::HistType::kTH1F, {{100, 0, 10}}, false);
293+
fRegistry.add("Track/positive/hChi2ITS", "chi2/number of ITS clusters;ITS #chi^{2}/N_{cls}", o2::framework::HistType::kTH1F, {{400, 0, 40}}, false);
295294
fRegistry.add("Track/positive/hITSClusterMap", "ITS cluster map", o2::framework::HistType::kTH1F, {{128, -0.5, 127.5}}, false);
296295
fRegistry.add("Track/positive/hChi2TOF", "TOF Chi2;p_{pv} (GeV/c);TOF #chi^{2}", o2::framework::HistType::kTH2F, {{1000, 0, 10}, {100, 0, 10}}, false);
297296

@@ -509,14 +508,14 @@ struct SingleTrackQC {
509508

510509
if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
511510
std::vector<float> binsML{};
512-
binsML.reserve(dielectroncuts.binsMl.value.size());
513-
for (size_t i = 0; i < dielectroncuts.binsMl.value.size(); i++) {
514-
binsML.emplace_back(dielectroncuts.binsMl.value[i]);
511+
binsML.reserve(dielectroncuts.binsMLPID.value.size());
512+
for (size_t i = 0; i < dielectroncuts.binsMLPID.value.size(); i++) {
513+
binsML.emplace_back(dielectroncuts.binsMLPID.value[i]);
515514
}
516515
std::vector<float> thresholdsML{};
517-
thresholdsML.reserve(dielectroncuts.cutsMl.value.size());
518-
for (size_t i = 0; i < dielectroncuts.cutsMl.value.size(); i++) {
519-
thresholdsML.emplace_back(dielectroncuts.cutsMl.value[i]);
516+
thresholdsML.reserve(dielectroncuts.cutsMLPID.value.size());
517+
for (size_t i = 0; i < dielectroncuts.cutsMLPID.value.size(); i++) {
518+
thresholdsML.emplace_back(dielectroncuts.cutsMLPID.value[i]);
520519
}
521520
fDielectronCut.SetMLThresholds(binsML, thresholdsML);
522521
} // end of PID ML
@@ -557,12 +556,9 @@ struct SingleTrackQC {
557556
float dca3D = o2::aod::pwgem::dilepton::utils::emtrackutil::dca3DinSigma(track);
558557
float dcaXY = o2::aod::pwgem::dilepton::utils::emtrackutil::dcaXYinSigma(track);
559558
float dcaZ = o2::aod::pwgem::dilepton::utils::emtrackutil::dcaZinSigma(track);
560-
float phiPosition = track.phi() + std::asin(-0.30282 * track.sign() * (d_bz * 0.1) * dielectroncuts.cfgRefR / (2.f * track.pt()));
561-
o2::math_utils::bringTo02Pi(phiPosition);
562559

563560
if (track.sign() > 0) {
564561
fRegistry.fill(HIST("Track/positive/hs"), track.pt(), track.eta(), track.phi(), dca3D, dcaXY, dcaZ, weight);
565-
fRegistry.fill(HIST("Track/positive/hPhiPosition"), phiPosition);
566562
fRegistry.fill(HIST("Track/positive/hQoverPt"), track.sign() / track.pt());
567563
fRegistry.fill(HIST("Track/positive/hDCAxyz"), track.dcaXY(), track.dcaZ());
568564
fRegistry.fill(HIST("Track/positive/hDCAxyzSigma"), dcaXY, dcaZ);
@@ -602,7 +598,6 @@ struct SingleTrackQC {
602598
// fRegistry.fill(HIST("Track/positive/hTOFNsigmaPr"), track.p(), track.tofNSigmaPr());
603599
} else {
604600
fRegistry.fill(HIST("Track/negative/hs"), track.pt(), track.eta(), track.phi(), dca3D, dcaXY, dcaZ, weight);
605-
fRegistry.fill(HIST("Track/negative/hPhiPosition"), phiPosition);
606601
fRegistry.fill(HIST("Track/negative/hQoverPt"), track.sign() / track.pt());
607602
fRegistry.fill(HIST("Track/negative/hDCAxyz"), track.dcaXY(), track.dcaZ());
608603
fRegistry.fill(HIST("Track/negative/hDCAxyzSigma"), dcaXY, dcaZ);

0 commit comments

Comments
 (0)