Skip to content

Commit 6165550

Browse files
authored
PWGEM/Dilepton: merge dielectron and dimuon into dilepton task (#7016)
1 parent 15ddc4c commit 6165550

17 files changed

Lines changed: 2312 additions & 3725 deletions
Lines changed: 466 additions & 252 deletions
Large diffs are not rendered by default.
Lines changed: 453 additions & 241 deletions
Large diffs are not rendered by default.

PWGEM/Dilepton/Core/PhotonHBT.h

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,13 @@ struct PhotonHBT {
197197
Configurable<bool> enableOptimizations{"enableOptimizations", false, "Enables the ONNX extended model-optimization: sessionOptions.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED)"};
198198
} dielectroncuts;
199199

200+
struct : ConfigurableGroup {
201+
std::string prefix = "ggpaircut_group";
202+
Configurable<bool> applydR{"applydR", false, "apply deta-dphi cut to avoid track splitting/merging"};
203+
Configurable<float> cfgMinDeltaEta{"cfgMinDeltaEta", 0.f, "min. delta-eta between 2 photons"};
204+
Configurable<float> cfgMinDeltaPhi{"cfgMinDeltaPhi", 0.f, "min. delta-phi between 2 photons"};
205+
} ggpaircuts;
206+
200207
~PhotonHBT()
201208
{
202209
delete emh1;
@@ -306,13 +313,14 @@ struct PhotonHBT {
306313
const AxisSpec axis_kt{ConfKtBins, "k_{T} (GeV/c)"};
307314

308315
const AxisSpec axis_qinv{30, 0.0, +0.3, "q_{inv} (GeV/c)"};
309-
const AxisSpec axis_qabs_lcms{30, 0.0, +0.3, "|q|^{LCMS} (GeV/c)"};
316+
const AxisSpec axis_qabs_lcms{30, 0.0, +0.3, "|#bf{q}|^{LCMS} (GeV/c)"};
310317
const AxisSpec axis_qout{60, -0.3, +0.3, "q_{out} (GeV/c)"}; // qout does not change between LAB and LCMS frame
311318
const AxisSpec axis_qside{60, -0.3, +0.3, "q_{side} (GeV/c)"}; // qside does not change between LAB and LCMS frame
312319
const AxisSpec axis_qlong{60, -0.3, +0.3, "q_{long} (GeV/c)"};
313320

314321
fRegistry.add("Pair/same/hs_1d", "diphoton correlation 1D", kTHnSparseD, {axis_kt, axis_qinv, axis_qabs_lcms}, true);
315322
fRegistry.add("Pair/same/hs_3d", "diphoton correlation 3D LCMS", kTHnSparseD, {axis_kt, axis_qout, axis_qside, axis_qlong}, true);
323+
fRegistry.add("Pair/same/hDeltaEtaDeltaPhi", "diphoton distance in #eta-#varphi plane;#Delta#varphi (rad);#Delta#eta", kTH2D, {{200, -0.1, +0.1}, {200, -0.1, 0.1}}, false);
316324
fRegistry.addClone("Pair/same/", "Pair/mix/");
317325
}
318326

@@ -497,6 +505,10 @@ struct PhotonHBT {
497505
// float qabs_lcms_tmp = q12_lcms.P();
498506
// LOGF(info, "qabs_lcms = %f, qabs_lcms_tmp = %f", qabs_lcms, qabs_lcms_tmp);
499507

508+
float deta = v1.Eta() - v2.Eta();
509+
float dphi = v1.Phi() - v2.Phi();
510+
o2::math_utils::bringToPMPi(dphi);
511+
fRegistry.fill(HIST("Pair/") + HIST(event_pair_types[ev_id]) + HIST("hDeltaEtaDeltaPhi"), dphi, deta);
500512
fRegistry.fill(HIST("Pair/") + HIST(event_pair_types[ev_id]) + HIST("hs_1d"), kt, qinv, qabs_lcms);
501513
fRegistry.fill(HIST("Pair/") + HIST(event_pair_types[ev_id]) + HIST("hs_3d"), kt, qout_lcms, qside_lcms, qlong_lcms);
502514
}
@@ -576,6 +588,12 @@ struct PhotonHBT {
576588

577589
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), 0.);
578590
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), 0.);
591+
float deta = v1.Eta() - v2.Eta();
592+
float dphi = v1.Phi() - v2.Phi();
593+
o2::math_utils::bringToPMPi(dphi);
594+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
595+
continue;
596+
}
579597
fillPairHistogram<0>(collision, v1, v2);
580598
ndiphoton++;
581599

@@ -651,6 +669,12 @@ struct PhotonHBT {
651669

652670
std::pair pair_tmp = std::make_pair(std::make_pair(pos1.trackId(), ele1.trackId()), std::make_pair(pos2.trackId(), ele2.trackId()));
653671
if (std::find(used_pairs_per_collision.begin(), used_pairs_per_collision.end(), pair_tmp) == used_pairs_per_collision.end()) {
672+
float deta = v1_ee.Eta() - v2_ee.Eta();
673+
float dphi = v1_ee.Phi() - v2_ee.Phi();
674+
o2::math_utils::bringToPMPi(dphi);
675+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
676+
continue;
677+
}
654678
fillPairHistogram<0>(collision, v1_ee, v2_ee);
655679
used_pairs_per_collision.emplace_back(std::make_pair(pair_tmp.first, pair_tmp.second));
656680
used_pairs_per_collision.emplace_back(std::make_pair(pair_tmp.second, pair_tmp.first));
@@ -716,6 +740,12 @@ struct PhotonHBT {
716740
ROOT::Math::PtEtaPhiMVector v_pos2(pos2.pt(), pos2.eta(), pos2.phi(), o2::constants::physics::MassElectron);
717741
ROOT::Math::PtEtaPhiMVector v_ele2(ele2.pt(), ele2.eta(), ele2.phi(), o2::constants::physics::MassElectron);
718742
ROOT::Math::PtEtaPhiMVector v2_ee = v_pos2 + v_ele2;
743+
float deta = v1_gamma.Eta() - v2_ee.Eta();
744+
float dphi = v1_gamma.Phi() - v2_ee.Phi();
745+
o2::math_utils::bringToPMPi(dphi);
746+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
747+
continue;
748+
}
719749
fillPairHistogram<0>(collision, v1_gamma, v2_ee);
720750
ndiphoton++;
721751
std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
@@ -762,6 +792,12 @@ struct PhotonHBT {
762792
for (auto& g2 : photons1_from_event_pool) {
763793
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), 0.);
764794
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), 0.);
795+
float deta = v1.Eta() - v2.Eta();
796+
float dphi = v1.Phi() - v2.Phi();
797+
o2::math_utils::bringToPMPi(dphi);
798+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
799+
continue;
800+
}
765801
fillPairHistogram<1>(collision, v1, v2);
766802
}
767803
}
@@ -782,6 +818,12 @@ struct PhotonHBT {
782818
for (auto& g2 : photons1_from_event_pool) {
783819
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), g1.mass());
784820
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), g2.mass());
821+
float deta = v1.Eta() - v2.Eta();
822+
float dphi = v1.Phi() - v2.Phi();
823+
o2::math_utils::bringToPMPi(dphi);
824+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
825+
continue;
826+
}
785827
fillPairHistogram<1>(collision, v1, v2);
786828
}
787829
}
@@ -802,6 +844,12 @@ struct PhotonHBT {
802844
for (auto& g2 : photons2_from_event_pool) { // dielectron
803845
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), 0.0); // keep v1 for PCM
804846
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), g2.mass());
847+
float deta = v1.Eta() - v2.Eta();
848+
float dphi = v1.Phi() - v2.Phi();
849+
o2::math_utils::bringToPMPi(dphi);
850+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
851+
continue;
852+
}
805853
fillPairHistogram<1>(collision, v1, v2);
806854
}
807855
}
@@ -822,6 +870,12 @@ struct PhotonHBT {
822870
for (auto& g2 : photons1_from_event_pool) { // PCM
823871
ROOT::Math::PtEtaPhiMVector v1(g2.pt(), g2.eta(), g2.phi(), 0.0); // keep v1 for PCM
824872
ROOT::Math::PtEtaPhiMVector v2(g1.pt(), g1.eta(), g1.phi(), g1.mass());
873+
float deta = v1.Eta() - v2.Eta();
874+
float dphi = v1.Phi() - v2.Phi();
875+
o2::math_utils::bringToPMPi(dphi);
876+
if (ggpaircuts.applydR && std::pow(deta / ggpaircuts.cfgMinDeltaEta, 2) + std::pow(dphi / ggpaircuts.cfgMinDeltaPhi, 2) < 1.f) {
877+
continue;
878+
}
825879
fillPairHistogram<1>(collision, v1, v2);
826880
}
827881
}

0 commit comments

Comments
 (0)