Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions PWGDQ/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1273,8 +1273,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
hm->AddHistogram(histClass, "centrFT0C_Corr2Corr4REF_ev", "", true, 100, 0.0, 100.0, VarManager::kCentFT0C, 250, -1.0, 1.0, VarManager::kCORR2CORR4REF, VarManager::kM11M1111REFoverMp);
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);
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);
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);
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);
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);
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);
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);
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);
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);
Expand All @@ -1289,6 +1289,21 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
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);
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);
}
if (subGroupStr.Contains("singlecumulant")) {
int var[4] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C};
int bins[4] = {250, 60, 6, 18};
double minBins[4] = {0.0, 0.0, 2.5, 0.0};
double maxBins[4] = {5.0, 30.0, 4.0, 90.0};
hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var, bins, minBins, maxBins, 0, -1, kTRUE);
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);
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);
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);
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);
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);
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);
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);
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);
}
if (subGroupStr.Contains("res-flow-dimuon")) {
int varV2[6] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kR2SP_AB, VarManager::kR2EP_AB};
// int varV3[6] = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kR3SP, VarManager::kR3EP}; // removed temporarily
Expand Down
61 changes: 61 additions & 0 deletions PWGDQ/Core/VarManager.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -845,6 +845,48 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kCORR2POIMp] = "";
fgVariableNames[kCORR4POIMp] = "<4'> M_{p} ";
fgVariableUnits[kCORR4POIMp] = "";
fgVariableNames[kMultMuons] = "Multiplicity muons";
fgVariableUnits[kMultMuons] = "";
fgVariableNames[kMultAntiMuons] = "Multiplicity anti-muons";
fgVariableUnits[kMultAntiMuons] = "";
fgVariableNames[kM01POIplus] = "M_{01}_{POI}^{+} ";
fgVariableUnits[kM01POIplus] = "";
fgVariableNames[kM0111POIplus] = "M^{'}_{0111}^{POI+} ";
fgVariableUnits[kM0111POIplus] = "";
fgVariableNames[kM01POIminus] = "M_{01}_{POI}^{-} ";
fgVariableUnits[kM01POIminus] = "";
fgVariableNames[kM0111POIminus] = "M^{'}_{0111}^{POI-} ";
fgVariableUnits[kM0111POIminus] = "";
fgVariableNames[kM01POIoverMpminus] = "M_{01}_{POI}^{-} / M_{p} ";
fgVariableUnits[kM01POIoverMpminus] = "";
fgVariableNames[kM01POIoverMpplus] = "M_{01}_{POI}^{+} / M_{p} ";
fgVariableUnits[kM01POIoverMpplus] = "";
fgVariableNames[kM01POIoverMpmoins] = "M_{01}_{POI}^{-} / M_{p} ";
fgVariableUnits[kM01POIoverMpmoins] = "";
fgVariableNames[kM01POIoverMpplus] = "M_{01}_{POI}^{+} / M_{p} ";
fgVariableUnits[kM01POIoverMpplus] = "";
fgVariableNames[kM01POIoverMpmoins] = "M_{01}_{POI}^{-} / M_{p} ";
fgVariableUnits[kM01POIoverMpmoins] = "";
fgVariableNames[kM0111POIoverMpminus] = "M^{'}_{0111}^{POI-} / M_{p} ";
fgVariableUnits[kM0111POIoverMpminus] = "";
fgVariableNames[kM0111POIoverMpplus] = "M^{'}_{0111}^{POI+} / M_{p} ";
fgVariableUnits[kM0111POIoverMpplus] = "";
fgVariableNames[kCORR2POIplus] = "<2>_{POI}^{+} ";
fgVariableUnits[kCORR2POIplus] = "";
fgVariableNames[kCORR2POIminus] = "<2>_{POI}^{-} ";
fgVariableUnits[kCORR2POIminus] = "";
fgVariableNames[kCORR4POIplus] = "<4>_{POI}^{+} ";
fgVariableUnits[kCORR4POIplus] = "";
fgVariableNames[kCORR4POIminus] = "<4>_{POI}^{-} ";
fgVariableUnits[kCORR4POIminus] = "";
fgVariableNames[kM11REFoverMpminus] = "M^{-}_{11}^{REF}/M^{-}_{p} ";
fgVariableUnits[kM11REFoverMpminus] = "";
fgVariableNames[kM11REFoverMpplus] = "M^{+}_{11}^{REF}/M^{+}_{p} ";
fgVariableUnits[kM11REFoverMpplus] = "";
fgVariableNames[kM1111REFoverMpplus] = "M^{+}_{1111}^{REF}/M^{+}_{p} ";
fgVariableUnits[kM1111REFoverMpplus] = "";
fgVariableNames[kM1111REFoverMpminus] = "M^{-}_{1111}^{REF}/M^{-}_{p} ";
fgVariableUnits[kM1111REFoverMpminus] = "";
fgVariableNames[kCos2DeltaPhi] = "cos 2(#varphi-#Psi_{2}^{A}) ";
fgVariableUnits[kCos2DeltaPhi] = "";
fgVariableNames[kCos3DeltaPhi] = "cos 3(#varphi-#Psi_{3}^{A}) ";
Expand Down Expand Up @@ -1481,6 +1523,25 @@ void VarManager::SetDefaultVarNames()
fgVarNamesMap["kM0111POI"] = kM0111POI;
fgVarNamesMap["kCORR2REF"] = kCORR2REF;
fgVarNamesMap["kCORR2REFbydimuons"] = kCORR2REFbydimuons;
fgVarNamesMap["kMultAntiMuons"] = kMultAntiMuons;
fgVarNamesMap["kMultMuons"] = kMultMuons;
fgVarNamesMap["kM01POIplus"] = kM01POIplus;
fgVarNamesMap["kM0111POIplus"] = kM0111POIplus;
fgVarNamesMap["kM01POIminus"] = kM01POIminus;
fgVarNamesMap["kM0111POIminus"] = kM0111POIminus;
fgVarNamesMap["kM01POIoverMpminus"] = kM01POIoverMpminus;
fgVarNamesMap["kM01POIoverMpplus"] = kM01POIoverMpplus;
fgVarNamesMap["kM01POIoverMpmoins"] = kM01POIoverMpmoins;
fgVarNamesMap["kM0111POIoverMpminus"] = kM0111POIoverMpminus;
fgVarNamesMap["kM0111POIoverMpplus"] = kM0111POIoverMpplus;
fgVarNamesMap["kCORR2POIplus"] = kCORR2POIplus;
fgVarNamesMap["kCORR2POIminus"] = kCORR2POIminus;
fgVarNamesMap["kCORR4POIplus"] = kCORR4POIplus;
fgVarNamesMap["kCORR4POIminus"] = kCORR4POIminus;
fgVarNamesMap["kM11REFoverMpminus"] = kM11REFoverMpminus;
fgVarNamesMap["kM11REFoverMpplus"] = kM11REFoverMpplus;
fgVarNamesMap["kM1111REFoverMpplus"] = kM1111REFoverMpplus;
fgVarNamesMap["kM1111REFoverMpminus"] = kM1111REFoverMpminus;
fgVarNamesMap["kCORR2REFetagap"] = kCORR2REFetagap;
fgVarNamesMap["kCORR2POI"] = kCORR2POI;
fgVarNamesMap["kCORR2POICORR4POI"] = kCORR2POICORR4POI;
Expand Down
50 changes: 50 additions & 0 deletions PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ class VarManager : public TObject
kMultZNC,
kMultTracklets,
kMultDimuons,
kMultAntiMuons,
kMultMuons,
kMultNTracksHasITS,
kMultNTracksHasTPC,
kMultNTracksHasTOF,
Expand Down Expand Up @@ -688,6 +690,23 @@ class VarManager : public TObject
kM0111POIoverMp,
kCORR2POIMp,
kCORR4POIMp,
kM01POIplus,
kM0111POIplus,
kM01POIminus,
kM0111POIminus,
kM01POIoverMpminus,
kM01POIoverMpplus,
kM01POIoverMpmoins,
kM0111POIoverMpminus,
kM0111POIoverMpplus,
kCORR2POIplus,
kCORR2POIminus,
kCORR4POIplus,
kCORR4POIminus,
kM11REFoverMpplus,
kM1111REFoverMpplus,
kM11REFoverMpminus,
kM1111REFoverMpminus,
Comment on lines +693 to +709

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should add these as well in the fgVarNamesMap, otherwise they will not be available via JSON configurables

kR2SP,
kR2EP,
kPsi2A,
Expand Down Expand Up @@ -4331,6 +4350,8 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
ROOT::Math::PtEtaPhiMVector v1(t1.pt(), t1.eta(), t1.phi(), m1);
ROOT::Math::PtEtaPhiMVector v2(t2.pt(), t2.eta(), t2.phi(), m2);
ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
values[kPt1] = t1.pt();
values[kPt2] = t2.pt();

// TODO: provide different computations for vn
// Compute the scalar product UQ using Q-vector from A, for second and third harmonic
Expand Down Expand Up @@ -4409,6 +4430,35 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
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;
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;
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;

complex<double> P2plus(TMath::Cos(2 * v1.Phi()), TMath::Sin(2 * v1.Phi()));
complex<double> P2minus(TMath::Cos(2 * v2.Phi()), TMath::Sin(2 * v2.Phi()));
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;
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;
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;
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;
values[kCORR2POIplus] = (P2plus * conj(Q21)).real() / values[kM01POI];
values[kCORR2POIminus] = (P2minus * conj(Q21)).real() / values[kM01POI];
values[kM01POIplus] = values[kMultAntiMuons] * values[kS11A];
values[kM0111POIplus] = values[kMultAntiMuons] * (values[kS31A] - 3. * values[kS11A] * values[kS12A] + 2. * values[kS13A]);
values[kCORR2POIplus] = (P2plus * conj(Q21)).real() / values[kM01POIplus];
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];
values[kM01POIminus] = values[kMultMuons] * values[kS11A];
values[kM0111POIminus] = values[kMultMuons] * (values[kS31A] - 3. * values[kS11A] * values[kS12A] + 2. * values[kS13A]);
values[kCORR2POIminus] = (P2minus * conj(Q21)).real() / values[kM01POIminus];
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];
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];
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];
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];
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];
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];
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];
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];
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];
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;
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;
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;
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;
}

ROOT::Math::PtEtaPhiMVector v1_vp(v1.Pt(), v1.Eta(), v1.Phi() - Psi2B, v1.M());
Expand Down
16 changes: 16 additions & 0 deletions PWGDQ/Tasks/tableReader.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1233,6 +1233,20 @@ struct AnalysisSameEventPairing {
if (fConfigMultDimuons.value) {

uint32_t mult_dimuons = 0;
uint32_t mult_antimuons = 0;
uint32_t mult_muons = 0;

for (auto& t : tracks1) {
if constexpr (TPairType == VarManager::kDecayToMuMu) {
if (static_cast<uint32_t>(t.isMuonSelected()) & fTwoMuonFilterMask) {
if (t.sign() < 0) {
mult_muons++;
} else {
mult_antimuons++;
}
}
}
}

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

VarManager::fgValues[VarManager::kMultDimuons] = mult_dimuons;
VarManager::fgValues[VarManager::kMultMuons] = mult_muons;
VarManager::fgValues[VarManager::kMultAntiMuons] = mult_antimuons;
}

if (fConfigFlowReso) {
Expand Down