Skip to content

Commit 0004878

Browse files
[PWGDQ] Adding Single muon Correlators (#9805)
1 parent 1beb204 commit 0004878

File tree

4 files changed

+144
-2
lines changed

4 files changed

+144
-2
lines changed

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,8 +1273,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
12731273
hm->AddHistogram(histClass, "centrFT0C_Corr2Corr4REF_ev", "", true, 100, 0.0, 100.0, VarManager::kCentFT0C, 250, -1.0, 1.0, VarManager::kCORR2CORR4REF, VarManager::kM11M1111REFoverMp);
12741274
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M11REFoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM11REFoverMp);
12751275
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M1111REFoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM1111REFoverMp);
1276-
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M01POIoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM11REFoverMp);
1277-
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M0111POIoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM1111REFoverMp);
1276+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M01POIoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM01POIoverMp);
1277+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M0111POIoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM0111POIoverMp);
12781278
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M11M1111REFoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM11M1111REFoverMp);
12791279
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M01M0111overMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM01M0111overMp);
12801280
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M11M0111overMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM11M0111overMp);
@@ -1289,6 +1289,21 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
12891289
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFCorr4POI", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFCORR4POI, VarManager::kM11M0111overMp);
12901290
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFCorr2POI", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFCORR2POI, VarManager::kM11M01overMp);
12911291
}
1292+
if (subGroupStr.Contains("singlecumulant")) {
1293+
int var[4] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C};
1294+
int bins[4] = {250, 60, 6, 18};
1295+
double minBins[4] = {0.0, 0.0, 2.5, 0.0};
1296+
double maxBins[4] = {5.0, 30.0, 4.0, 90.0};
1297+
hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var, bins, minBins, maxBins, 0, -1, kTRUE);
1298+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFminus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFbydimuons, VarManager::kM11REFoverMpminus);
1299+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4REFminus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4REFbydimuons, VarManager::kM1111REFoverMpminus);
1300+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFplus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFbydimuons, VarManager::kM11REFoverMpplus);
1301+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4REFplus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4REFbydimuons, VarManager::kM1111REFoverMpplus);
1302+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2POIminus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2POIminus, VarManager::kM01POIoverMpminus);
1303+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4POIminus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4POIminus, VarManager::kM0111POIoverMpminus);
1304+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2POIplus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2POIplus, VarManager::kM01POIoverMpplus);
1305+
hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4POIplus", "", true, -1, -1, -1, -1, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4POIplus, VarManager::kM0111POIoverMpplus);
1306+
}
12921307
if (subGroupStr.Contains("res-flow-dimuon")) {
12931308
int varV2[6] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kR2SP_AB, VarManager::kR2EP_AB};
12941309
// int varV3[6] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kR3SP, VarManager::kR3EP}; // removed temporarily

PWGDQ/Core/VarManager.cxx

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,48 @@ void VarManager::SetDefaultVarNames()
845845
fgVariableUnits[kCORR2POIMp] = "";
846846
fgVariableNames[kCORR4POIMp] = "<4'> M_{p} ";
847847
fgVariableUnits[kCORR4POIMp] = "";
848+
fgVariableNames[kMultMuons] = "Multiplicity muons";
849+
fgVariableUnits[kMultMuons] = "";
850+
fgVariableNames[kMultAntiMuons] = "Multiplicity anti-muons";
851+
fgVariableUnits[kMultAntiMuons] = "";
852+
fgVariableNames[kM01POIplus] = "M_{01}_{POI}^{+} ";
853+
fgVariableUnits[kM01POIplus] = "";
854+
fgVariableNames[kM0111POIplus] = "M^{'}_{0111}^{POI+} ";
855+
fgVariableUnits[kM0111POIplus] = "";
856+
fgVariableNames[kM01POIminus] = "M_{01}_{POI}^{-} ";
857+
fgVariableUnits[kM01POIminus] = "";
858+
fgVariableNames[kM0111POIminus] = "M^{'}_{0111}^{POI-} ";
859+
fgVariableUnits[kM0111POIminus] = "";
860+
fgVariableNames[kM01POIoverMpminus] = "M_{01}_{POI}^{-} / M_{p} ";
861+
fgVariableUnits[kM01POIoverMpminus] = "";
862+
fgVariableNames[kM01POIoverMpplus] = "M_{01}_{POI}^{+} / M_{p} ";
863+
fgVariableUnits[kM01POIoverMpplus] = "";
864+
fgVariableNames[kM01POIoverMpmoins] = "M_{01}_{POI}^{-} / M_{p} ";
865+
fgVariableUnits[kM01POIoverMpmoins] = "";
866+
fgVariableNames[kM01POIoverMpplus] = "M_{01}_{POI}^{+} / M_{p} ";
867+
fgVariableUnits[kM01POIoverMpplus] = "";
868+
fgVariableNames[kM01POIoverMpmoins] = "M_{01}_{POI}^{-} / M_{p} ";
869+
fgVariableUnits[kM01POIoverMpmoins] = "";
870+
fgVariableNames[kM0111POIoverMpminus] = "M^{'}_{0111}^{POI-} / M_{p} ";
871+
fgVariableUnits[kM0111POIoverMpminus] = "";
872+
fgVariableNames[kM0111POIoverMpplus] = "M^{'}_{0111}^{POI+} / M_{p} ";
873+
fgVariableUnits[kM0111POIoverMpplus] = "";
874+
fgVariableNames[kCORR2POIplus] = "<2>_{POI}^{+} ";
875+
fgVariableUnits[kCORR2POIplus] = "";
876+
fgVariableNames[kCORR2POIminus] = "<2>_{POI}^{-} ";
877+
fgVariableUnits[kCORR2POIminus] = "";
878+
fgVariableNames[kCORR4POIplus] = "<4>_{POI}^{+} ";
879+
fgVariableUnits[kCORR4POIplus] = "";
880+
fgVariableNames[kCORR4POIminus] = "<4>_{POI}^{-} ";
881+
fgVariableUnits[kCORR4POIminus] = "";
882+
fgVariableNames[kM11REFoverMpminus] = "M^{-}_{11}^{REF}/M^{-}_{p} ";
883+
fgVariableUnits[kM11REFoverMpminus] = "";
884+
fgVariableNames[kM11REFoverMpplus] = "M^{+}_{11}^{REF}/M^{+}_{p} ";
885+
fgVariableUnits[kM11REFoverMpplus] = "";
886+
fgVariableNames[kM1111REFoverMpplus] = "M^{+}_{1111}^{REF}/M^{+}_{p} ";
887+
fgVariableUnits[kM1111REFoverMpplus] = "";
888+
fgVariableNames[kM1111REFoverMpminus] = "M^{-}_{1111}^{REF}/M^{-}_{p} ";
889+
fgVariableUnits[kM1111REFoverMpminus] = "";
848890
fgVariableNames[kCos2DeltaPhi] = "cos 2(#varphi-#Psi_{2}^{A}) ";
849891
fgVariableUnits[kCos2DeltaPhi] = "";
850892
fgVariableNames[kCos3DeltaPhi] = "cos 3(#varphi-#Psi_{3}^{A}) ";
@@ -1481,6 +1523,25 @@ void VarManager::SetDefaultVarNames()
14811523
fgVarNamesMap["kM0111POI"] = kM0111POI;
14821524
fgVarNamesMap["kCORR2REF"] = kCORR2REF;
14831525
fgVarNamesMap["kCORR2REFbydimuons"] = kCORR2REFbydimuons;
1526+
fgVarNamesMap["kMultAntiMuons"] = kMultAntiMuons;
1527+
fgVarNamesMap["kMultMuons"] = kMultMuons;
1528+
fgVarNamesMap["kM01POIplus"] = kM01POIplus;
1529+
fgVarNamesMap["kM0111POIplus"] = kM0111POIplus;
1530+
fgVarNamesMap["kM01POIminus"] = kM01POIminus;
1531+
fgVarNamesMap["kM0111POIminus"] = kM0111POIminus;
1532+
fgVarNamesMap["kM01POIoverMpminus"] = kM01POIoverMpminus;
1533+
fgVarNamesMap["kM01POIoverMpplus"] = kM01POIoverMpplus;
1534+
fgVarNamesMap["kM01POIoverMpmoins"] = kM01POIoverMpmoins;
1535+
fgVarNamesMap["kM0111POIoverMpminus"] = kM0111POIoverMpminus;
1536+
fgVarNamesMap["kM0111POIoverMpplus"] = kM0111POIoverMpplus;
1537+
fgVarNamesMap["kCORR2POIplus"] = kCORR2POIplus;
1538+
fgVarNamesMap["kCORR2POIminus"] = kCORR2POIminus;
1539+
fgVarNamesMap["kCORR4POIplus"] = kCORR4POIplus;
1540+
fgVarNamesMap["kCORR4POIminus"] = kCORR4POIminus;
1541+
fgVarNamesMap["kM11REFoverMpminus"] = kM11REFoverMpminus;
1542+
fgVarNamesMap["kM11REFoverMpplus"] = kM11REFoverMpplus;
1543+
fgVarNamesMap["kM1111REFoverMpplus"] = kM1111REFoverMpplus;
1544+
fgVarNamesMap["kM1111REFoverMpminus"] = kM1111REFoverMpminus;
14841545
fgVarNamesMap["kCORR2REFetagap"] = kCORR2REFetagap;
14851546
fgVarNamesMap["kCORR2POI"] = kCORR2POI;
14861547
fgVarNamesMap["kCORR2POICORR4POI"] = kCORR2POICORR4POI;

PWGDQ/Core/VarManager.h

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ class VarManager : public TObject
230230
kMultZNC,
231231
kMultTracklets,
232232
kMultDimuons,
233+
kMultAntiMuons,
234+
kMultMuons,
233235
kMultNTracksHasITS,
234236
kMultNTracksHasTPC,
235237
kMultNTracksHasTOF,
@@ -688,6 +690,23 @@ class VarManager : public TObject
688690
kM0111POIoverMp,
689691
kCORR2POIMp,
690692
kCORR4POIMp,
693+
kM01POIplus,
694+
kM0111POIplus,
695+
kM01POIminus,
696+
kM0111POIminus,
697+
kM01POIoverMpminus,
698+
kM01POIoverMpplus,
699+
kM01POIoverMpmoins,
700+
kM0111POIoverMpminus,
701+
kM0111POIoverMpplus,
702+
kCORR2POIplus,
703+
kCORR2POIminus,
704+
kCORR4POIplus,
705+
kCORR4POIminus,
706+
kM11REFoverMpplus,
707+
kM1111REFoverMpplus,
708+
kM11REFoverMpminus,
709+
kM1111REFoverMpminus,
691710
kR2SP,
692711
kR2EP,
693712
kPsi2A,
@@ -4331,6 +4350,8 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
43314350
ROOT::Math::PtEtaPhiMVector v1(t1.pt(), t1.eta(), t1.phi(), m1);
43324351
ROOT::Math::PtEtaPhiMVector v2(t2.pt(), t2.eta(), t2.phi(), m2);
43334352
ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
4353+
values[kPt1] = t1.pt();
4354+
values[kPt2] = t2.pt();
43344355

43354356
// TODO: provide different computations for vn
43364357
// Compute the scalar product UQ using Q-vector from A, for second and third harmonic
@@ -4409,6 +4430,35 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
44094430
values[kM01M0111overMp] = values[kMultDimuons] > 0 && !(std::isnan(values[kM01POI]) || std::isinf(values[kM01POI]) || std::isnan(values[kM0111POI]) || std::isinf(values[kM0111POI]) || std::isnan(values[kCORR2POI]) || std::isinf(values[kCORR2POI]) || std::isnan(values[kCORR4POI]) || std::isinf(values[kCORR4POI])) ? (values[kM01POI] * values[kM0111POI]) / values[kMultDimuons] : 0;
44104431
values[kM11M0111overMp] = values[kMultDimuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kM0111POI]) || std::isinf(values[kM0111POI]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kCORR4POI]) || std::isinf(values[kCORR4POI])) ? (values[kM11REF] * values[kM0111POI]) / values[kMultDimuons] : 0;
44114432
values[kM11M01overMp] = values[kMultDimuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kM01POI]) || std::isinf(values[kM01POI]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kCORR2POI]) || std::isinf(values[kCORR2POI])) ? (values[kM11REF] * values[kM01POI]) / values[kMultDimuons] : 0;
4433+
4434+
complex<double> P2plus(TMath::Cos(2 * v1.Phi()), TMath::Sin(2 * v1.Phi()));
4435+
complex<double> P2minus(TMath::Cos(2 * v2.Phi()), TMath::Sin(2 * v2.Phi()));
4436+
values[kM11REFoverMpplus] = values[kMultAntiMuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kM1111REF]) || std::isinf(values[kM1111REF]) || std::isnan(values[kCORR4REF]) || std::isinf(values[kCORR4REF])) ? values[kM11REF] / values[kMultAntiMuons] : 0;
4437+
values[kM1111REFoverMpplus] = values[kMultAntiMuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kM1111REF]) || std::isinf(values[kM1111REF]) || std::isnan(values[kCORR4REF]) || std::isinf(values[kCORR4REF])) ? values[kM1111REF] / values[kMultAntiMuons] : 0;
4438+
values[kM11REFoverMpminus] = values[kMultMuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kM1111REF]) || std::isinf(values[kM1111REF]) || std::isnan(values[kCORR4REF]) || std::isinf(values[kCORR4REF])) ? values[kM11REF] / values[kMultMuons] : 0;
4439+
values[kM1111REFoverMpminus] = values[kMultMuons] > 0 && !(std::isnan(values[kM11REF]) || std::isinf(values[kM11REF]) || std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) || std::isnan(values[kM1111REF]) || std::isinf(values[kM1111REF]) || std::isnan(values[kCORR4REF]) || std::isinf(values[kCORR4REF])) ? values[kM1111REF] / values[kMultMuons] : 0;
4440+
values[kCORR2POIplus] = (P2plus * conj(Q21)).real() / values[kM01POI];
4441+
values[kCORR2POIminus] = (P2minus * conj(Q21)).real() / values[kM01POI];
4442+
values[kM01POIplus] = values[kMultAntiMuons] * values[kS11A];
4443+
values[kM0111POIplus] = values[kMultAntiMuons] * (values[kS31A] - 3. * values[kS11A] * values[kS12A] + 2. * values[kS13A]);
4444+
values[kCORR2POIplus] = (P2plus * conj(Q21)).real() / values[kM01POIplus];
4445+
values[kCORR4POIplus] = (P2plus * Q21 * conj(Q21) * conj(Q21) - P2plus * Q21 * conj(Q42) - 2. * values[kS12A] * P2plus * conj(Q21) + 2. * P2plus * conj(Q23)).real() / values[kM0111POIplus];
4446+
values[kM01POIminus] = values[kMultMuons] * values[kS11A];
4447+
values[kM0111POIminus] = values[kMultMuons] * (values[kS31A] - 3. * values[kS11A] * values[kS12A] + 2. * values[kS13A]);
4448+
values[kCORR2POIminus] = (P2minus * conj(Q21)).real() / values[kM01POIminus];
4449+
values[kCORR4POIminus] = (P2minus * Q21 * conj(Q21) * conj(Q21) - P2minus * Q21 * conj(Q42) - 2. * values[kS12A] * P2minus * conj(Q21) + 2. * P2minus * conj(Q23)).real() / values[kM0111POIminus];
4450+
values[kM01POIplus] = std::isnan(values[kM01POIplus]) || std::isinf(values[kM01POIplus]) || std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) ? 0 : values[kM01POIplus];
4451+
values[kM0111POIplus] = std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) ? 0 : values[kM0111POIplus];
4452+
values[kCORR2POIplus] = std::isnan(values[kM01POIplus]) || std::isinf(values[kM01POIplus]) || std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) ? 0 : values[kCORR2POIplus];
4453+
values[kCORR4POIplus] = std::isnan(values[kM01POIplus]) || std::isinf(values[kM01POIplus]) || std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) ? 0 : values[kCORR4POIplus];
4454+
values[kM01POIminus] = std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) ? 0 : values[kM01POIminus];
4455+
values[kM0111POIminus] = std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) ? 0 : values[kM0111POIminus];
4456+
values[kCORR2POIminus] = std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) ? 0 : values[kCORR2POIminus];
4457+
values[kCORR4POIminus] = std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) ? 0 : values[kCORR4POIminus];
4458+
values[kM01POIoverMpminus] = values[kMultMuons] > 0 && !(std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) || std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus])) ? values[kM01POIminus] / values[kMultMuons] : 0;
4459+
values[kM0111POIoverMpminus] = values[kMultMuons] > 0 && !(std::isnan(values[kM0111POIminus]) || std::isinf(values[kM0111POIminus]) || std::isnan(values[kCORR4POIminus]) || std::isinf(values[kCORR4POIminus]) || std::isnan(values[kM01POIminus]) || std::isinf(values[kM01POIminus]) || std::isnan(values[kCORR2POIminus]) || std::isinf(values[kCORR2POIminus])) ? values[kM0111POIminus] / values[kMultMuons] : 0;
4460+
values[kM01POIoverMpplus] = values[kMultAntiMuons] > 0 && !(std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) || std::isnan(values[kM01POIplus]) || std::isinf(values[kM01POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus])) ? values[kM01POIplus] / values[kMultAntiMuons] : 0;
4461+
values[kM0111POIoverMpplus] = values[kMultMuons] > 0 && !(std::isnan(values[kM0111POIplus]) || std::isinf(values[kM0111POIplus]) || std::isnan(values[kCORR4POIplus]) || std::isinf(values[kCORR4POIplus]) || std::isnan(values[kM01POIplus]) || std::isinf(values[kM01POIplus]) || std::isnan(values[kCORR2POIplus]) || std::isinf(values[kCORR2POIplus])) ? values[kM0111POIplus] / values[kMultAntiMuons] : 0;
44124462
}
44134463

44144464
ROOT::Math::PtEtaPhiMVector v1_vp(v1.Pt(), v1.Eta(), v1.Phi() - Psi2B, v1.M());

PWGDQ/Tasks/tableReader.cxx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,6 +1233,20 @@ struct AnalysisSameEventPairing {
12331233
if (fConfigMultDimuons.value) {
12341234

12351235
uint32_t mult_dimuons = 0;
1236+
uint32_t mult_antimuons = 0;
1237+
uint32_t mult_muons = 0;
1238+
1239+
for (auto& t : tracks1) {
1240+
if constexpr (TPairType == VarManager::kDecayToMuMu) {
1241+
if (static_cast<uint32_t>(t.isMuonSelected()) & fTwoMuonFilterMask) {
1242+
if (t.sign() < 0) {
1243+
mult_muons++;
1244+
} else {
1245+
mult_antimuons++;
1246+
}
1247+
}
1248+
}
1249+
}
12361250

12371251
for (auto& [t1, t2] : combinations(tracks1, tracks2)) {
12381252
if constexpr (TPairType == VarManager::kDecayToMuMu) {
@@ -1245,6 +1259,8 @@ struct AnalysisSameEventPairing {
12451259
}
12461260

12471261
VarManager::fgValues[VarManager::kMultDimuons] = mult_dimuons;
1262+
VarManager::fgValues[VarManager::kMultMuons] = mult_muons;
1263+
VarManager::fgValues[VarManager::kMultAntiMuons] = mult_antimuons;
12481264
}
12491265

12501266
if (fConfigFlowReso) {

0 commit comments

Comments
 (0)