Skip to content

Commit 2e07a40

Browse files
authored
[PWGEM/Dilepton] add possibility to use abs in dileptonPolarization.cxx (#13996)
1 parent f00cca4 commit 2e07a40

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

PWGEM/Dilepton/Tasks/dileptonPolarization.cxx

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ struct DileptonPolarization {
7878
ConfigurableAxis ConfEPBins{"ConfEPBins", {1, -M_PI / 2, +M_PI / 2}, "Mixing bins - event plane angle"};
7979
ConfigurableAxis ConfOccupancyBins{"ConfOccupancyBins", {VARIABLE_WIDTH, -1, 1e+10}, "Mixing bins - occupancy"};
8080
Configurable<int> cfgPolarizationFrame{"cfgPolarizationFrame", 0, "frame of polarization. 0:CS, 1:HX, else:FATAL"};
81+
Configurable<bool> cfgUseAbs{"cfgUseAbs", false, "flag to use absolute value for cos_theta and phi"}; // this is to increase statistics per bin.
8182

8283
ConfigurableAxis ConfMllBins{"ConfMllBins", {VARIABLE_WIDTH, 0.00, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.70, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.90, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.00, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.75, 2.80, 2.85, 2.90, 2.95, 3.00, 3.05, 3.10, 3.15, 3.20, 3.25, 3.30, 3.35, 3.40, 3.45, 3.50, 3.55, 3.60, 3.65, 3.70, 3.75, 3.80, 3.85, 3.90, 3.95, 4.00, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.00, 8.10, 8.20, 8.30, 8.40, 8.50, 8.60, 8.70, 8.80, 8.90, 9.00, 9.10, 9.20, 9.30, 9.40, 9.50, 9.60, 9.70, 9.80, 9.90, 10.00, 10.10, 10.20, 10.30, 10.40, 10.50, 10.60, 10.70, 10.80, 10.90, 11.00, 11.1, 11.2, 11.3, 11.4, 11.50, 11.6, 11.7, 11.8, 11.9, 12.0}, "mll bins for output histograms"};
8384
ConfigurableAxis ConfPtllBins{"ConfPtllBins", {VARIABLE_WIDTH, 0.00, 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50, 5.00, 6.00, 7.00, 8.00, 9.00, 10.00}, "pTll bins for output histograms"};
@@ -175,6 +176,8 @@ struct DileptonPolarization {
175176
} else if (cfgPairType.value == static_cast<int>(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDimuon)) {
176177
leptonM1 = o2::constants::physics::MassMuon;
177178
leptonM2 = o2::constants::physics::MassMuon;
179+
} else {
180+
LOG(fatal) << "Please select either dielectron or dimuon";
178181
}
179182

180183
if (ConfVtxBins.value[0] == VARIABLE_WIDTH) {
@@ -488,6 +491,11 @@ struct DileptonPolarization {
488491
o2::math_utils::bringToPMPi(phiPol);
489492
float quadmom = (3.f * std::pow(cos_thetaPol, 2) - 1.f) / 2.f;
490493

494+
if (cfgUseAbs) {
495+
cos_thetaPol = std::fabs(cos_thetaPol);
496+
phiPol = std::fabs(phiPol);
497+
}
498+
491499
if (dilepton.sign1() * dilepton.sign2() < 0) { // ULS
492500
fRegistry.fill(HIST("Pair/") + HIST(event_pair_types[ev_id]) + HIST("uls/hs"), v12.M(), v12.Pt(), pair_dca, v12.Rapidity(), cos_thetaPol, phiPol, quadmom, weight);
493501
} else if (dilepton.sign1() > 0 && dilepton.sign2() > 0) { // LS++
@@ -711,14 +719,18 @@ struct DileptonPolarization {
711719
auto empair2 = std::get<4>(pair2);
712720
auto arrM = std::array<float, 4>{static_cast<float>(empair2.px()), static_cast<float>(empair2.py()), static_cast<float>(empair2.pz()), static_cast<float>(empair2.mass())};
713721

714-
float cos_thetaPol = 999, phiPol = 999.f;
722+
float cos_thetaPol = 999.f, phiPol = 999.f;
715723
if (cfgPolarizationFrame == 0) {
716724
o2::aod::pwgem::dilepton::utils::pairutil::getAngleCS(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
717725
} else if (cfgPolarizationFrame == 1) {
718726
o2::aod::pwgem::dilepton::utils::pairutil::getAngleHX(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
719727
}
720728
o2::math_utils::bringToPMPi(phiPol);
721729
float quadmom = (3.f * std::pow(cos_thetaPol, 2) - 1.f) / 2.f;
730+
if (cfgUseAbs) {
731+
cos_thetaPol = std::fabs(cos_thetaPol);
732+
phiPol = std::fabs(phiPol);
733+
}
722734
fRegistry.fill(HIST("Pair/mix/uls/hs"), empair1.mass(), empair1.pt(), empair1.getPairDCA(), empair1.rapidity(), cos_thetaPol, phiPol, quadmom, weight);
723735
}
724736
} // end of ULS
@@ -760,14 +772,18 @@ struct DileptonPolarization {
760772
auto empair2 = std::get<4>(pair2);
761773
auto arrM = std::array<float, 4>{static_cast<float>(empair2.px()), static_cast<float>(empair2.py()), static_cast<float>(empair2.pz()), static_cast<float>(empair2.mass())};
762774

763-
float cos_thetaPol = 999, phiPol = 999.f;
775+
float cos_thetaPol = 999.f, phiPol = 999.f;
764776
if (cfgPolarizationFrame == 0) {
765777
o2::aod::pwgem::dilepton::utils::pairutil::getAngleCS(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
766778
} else if (cfgPolarizationFrame == 1) {
767779
o2::aod::pwgem::dilepton::utils::pairutil::getAngleHX(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
768780
}
769781
o2::math_utils::bringToPMPi(phiPol);
770782
float quadmom = (3.f * std::pow(cos_thetaPol, 2) - 1.f) / 2.f;
783+
if (cfgUseAbs) {
784+
cos_thetaPol = std::fabs(cos_thetaPol);
785+
phiPol = std::fabs(phiPol);
786+
}
771787
fRegistry.fill(HIST("Pair/mix/lspp/hs"), empair1.mass(), empair1.pt(), empair1.getPairDCA(), empair1.rapidity(), cos_thetaPol, phiPol, quadmom, weight);
772788
}
773789
} // end of LS++
@@ -809,14 +825,18 @@ struct DileptonPolarization {
809825
auto empair2 = std::get<4>(pair2);
810826
auto arrM = std::array<float, 4>{static_cast<float>(empair2.px()), static_cast<float>(empair2.py()), static_cast<float>(empair2.pz()), static_cast<float>(empair2.mass())};
811827

812-
float cos_thetaPol = 999, phiPol = 999.f;
828+
float cos_thetaPol = 999.f, phiPol = 999.f;
813829
if (cfgPolarizationFrame == 0) {
814830
o2::aod::pwgem::dilepton::utils::pairutil::getAngleCS(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
815831
} else if (cfgPolarizationFrame == 1) {
816832
o2::aod::pwgem::dilepton::utils::pairutil::getAngleHX(arrM, arrD, beamE1, beamE2, beamP1, beamP2, cos_thetaPol, phiPol);
817833
}
818834
o2::math_utils::bringToPMPi(phiPol);
819835
float quadmom = (3.f * std::pow(cos_thetaPol, 2) - 1.f) / 2.f;
836+
if (cfgUseAbs) {
837+
cos_thetaPol = std::fabs(cos_thetaPol);
838+
phiPol = std::fabs(phiPol);
839+
}
820840
fRegistry.fill(HIST("Pair/mix/lsmm/hs"), empair1.mass(), empair1.pt(), empair1.getPairDCA(), empair1.rapidity(), cos_thetaPol, phiPol, quadmom, weight);
821841
}
822842
} // end of LS--

0 commit comments

Comments
 (0)