diff --git a/PWGDQ/Core/HistogramManager.cxx b/PWGDQ/Core/HistogramManager.cxx index ae062e371e3..a933ef354fd 100644 --- a/PWGDQ/Core/HistogramManager.cxx +++ b/PWGDQ/Core/HistogramManager.cxx @@ -14,45 +14,42 @@ #include #include +#include #include #include #include #include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include #include #include #include +#include +#include #include -#include #include #include +#include #include -using namespace std; - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include //_______________________________________________________________________________ HistogramManager::HistogramManager() : TNamed("", ""), fMainList(nullptr), fNVars(0), fUsedVars(nullptr), - fVariablesMap(), fUseDefaultVariableNames(false), - fBinsAllocated(0), - fVariableNames(nullptr), - fVariableUnits(nullptr) + fBinsAllocated(0) { // // Constructor @@ -61,27 +58,25 @@ HistogramManager::HistogramManager() : TNamed("", ""), //_______________________________________________________________________________ HistogramManager::HistogramManager(const char* name, const char* title, const int maxNVars) : TNamed(name, title), - fMainList(), + fMainList(new THashList), fNVars(maxNVars), - fUsedVars(), - fVariablesMap(), + fUsedVars(new bool[maxNVars]), + fUseDefaultVariableNames(kFALSE), - fBinsAllocated(0), - fVariableNames(), - fVariableUnits() + fBinsAllocated(0) { // // Constructor // - fMainList = new THashList; + fMainList->SetOwner(kTRUE); fMainList->SetName(name); - fUsedVars = new bool[maxNVars]; + for (int i = 0; i < maxNVars; ++i) { fUsedVars[i] = false; } - fVariableNames = new TString[maxNVars]; - fVariableUnits = new TString[maxNVars]; + fVariableNames.resize(maxNVars); + fVariableUnits.resize(maxNVars); } //_______________________________________________________________________________ @@ -100,9 +95,11 @@ void HistogramManager::SetDefaultVarNames(TString* vars, TString* units) // // Set default variable names // + std::span varNames{vars, static_cast(fNVars)}; + std::span varUnits{units, static_cast(fNVars)}; for (int i = 0; i < fNVars; ++i) { - fVariableNames[i] = vars[i]; - fVariableUnits[i] = units[i]; + fVariableNames[i] = varNames[i]; + fVariableUnits[i] = varUnits[i]; } }; @@ -139,7 +136,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // TODO: replace the cout warning messages with LOG (same for all the other functions) // get the list to which the histogram should be added - auto* hList = reinterpret_cast(fMainList->FindObject(histClass)); + auto* hList = dynamic_cast(fMainList->FindObject(histClass)); if (!hList) { LOG(warn) << "HistogramManager::AddHistogram(): Histogram list " << histClass << " not found!"; LOG(warn) << " Histogram not created"; @@ -207,9 +204,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += nXbins + 2; // TODO: possibly make the call of Sumw2() optional for all histograms h->Sumw2(); - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -229,7 +226,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // if requested, build the profile using the profile widths instead of stat errors // TODO: make this option more transparent to the user ? if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } else { if (!isdouble) { @@ -240,9 +239,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2); h->Sumw2(); } - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -251,13 +250,13 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co MakeAxisLabels(h->GetXaxis(), xLabels); } - if (fVariableNames[varY][0]) { + if (fVariableNames[varY][0] != 0) { h->GetYaxis()->SetTitle(Form("%s %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } - if (fVariableNames[varY][0] && isProfile) { + if ((fVariableNames[varY][0] != 0) && isProfile) { h->GetYaxis()->SetTitle(Form("<%s> %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } if (arr->At(2)) { h->GetYaxis()->SetTitle(arr->At(2)->GetName()); @@ -276,14 +275,18 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2) * (nZbins + 2); h->Sumw2(); if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } else { // TProfile2D h = new TProfile2D(hname, (arr->At(0) ? arr->At(0)->GetName() : ""), nXbins, xmin, xmax, nYbins, ymin, ymax); fBinsAllocated += (nXbins + 2) * (nYbins + 2); h->Sumw2(); if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } } else { // TH3F @@ -295,9 +298,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2) * (nZbins + 2); h->Sumw2(); } - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -305,9 +308,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co if (xLabels[0] != '\0') { MakeAxisLabels(h->GetXaxis(), xLabels); } - if (fVariableNames[varY][0]) { + if (fVariableNames[varY][0] != 0) { h->GetYaxis()->SetTitle(Form("%s %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } if (arr->At(2)) { h->GetYaxis()->SetTitle(arr->At(2)->GetName()); @@ -315,13 +318,13 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co if (yLabels[0] != '\0') { MakeAxisLabels(h->GetYaxis(), yLabels); } - if (fVariableNames[varZ][0]) { + if (fVariableNames[varZ][0] != 0) { h->GetZaxis()->SetTitle(Form("%s %s", fVariableNames[varZ].Data(), - (fVariableUnits[varZ][0] ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); + ((fVariableUnits[varZ][0] != 0) ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); } - if (fVariableNames[varZ][0] && isProfile && varT < 0) { // for TProfile2D + if ((fVariableNames[varZ][0] != 0) && isProfile && varT < 0) { // for TProfile2D h->GetZaxis()->SetTitle(Form("<%s> %s", fVariableNames[varZ].Data(), - (fVariableUnits[varZ][0] ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); + ((fVariableUnits[varZ][0] != 0) ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); } if (arr->At(3)) { h->GetZaxis()->SetTitle(arr->At(3)->GetName()); @@ -332,6 +335,11 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co h->SetDirectory(nullptr); hList->Add(h); break; + + default: + LOG(warn) << "HistogramManager::AddHistogram(): Unsupported dimension " << dimension + << " for histogram " << hname; + return; } // end switch } @@ -348,7 +356,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // // get the list to which the histogram should be added - auto* hList = reinterpret_cast(fMainList->FindObject(histClass)); + auto* hList = dynamic_cast(fMainList->FindObject(histClass)); if (!hList) { LOG(warn) << "HistogramManager::AddHistogram(): Histogram list " << histClass << " not found!"; LOG(warn) << " Histogram not created"; @@ -415,9 +423,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co } fBinsAllocated += nXbins + 2; h->Sumw2(); - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -435,7 +443,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += nXbins + 2; h->Sumw2(); if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } else { if (!isdouble) { @@ -446,9 +456,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2); h->Sumw2(); } - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -456,13 +466,13 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co if (xLabels[0] != '\0') { MakeAxisLabels(h->GetXaxis(), xLabels); } - if (fVariableNames[varY][0]) { + if (fVariableNames[varY][0] != 0) { h->GetYaxis()->SetTitle(Form("%s %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } - if (fVariableNames[varY][0] && isProfile) { + if ((fVariableNames[varY][0] != 0) && isProfile) { h->GetYaxis()->SetTitle(Form("<%s> %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } if (arr->At(2)) { @@ -482,14 +492,18 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2) * (nZbins + 2); h->Sumw2(); if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } else { h = new TProfile2D(hname, (arr->At(0) ? arr->At(0)->GetName() : ""), nXbins, xbins, nYbins, ybins); fBinsAllocated += (nXbins + 2) * (nYbins + 2); h->Sumw2(); if (titleStr.Contains("--s--")) { - (reinterpret_cast(h))->BuildOptions(0., 0., "s"); + if (auto* profile = dynamic_cast(h)) { + profile->BuildOptions(0., 0., "s"); + } } } } else { @@ -501,9 +515,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co fBinsAllocated += (nXbins + 2) * (nYbins + 2) * (nZbins + 2); h->Sumw2(); } - if (fVariableNames[varX][0]) { + if (fVariableNames[varX][0] != 0) { h->GetXaxis()->SetTitle(Form("%s %s", fVariableNames[varX].Data(), - (fVariableUnits[varX][0] ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); + ((fVariableUnits[varX][0] != 0) ? Form("(%s)", fVariableUnits[varX].Data()) : ""))); } if (arr->At(1)) { h->GetXaxis()->SetTitle(arr->At(1)->GetName()); @@ -511,9 +525,9 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co if (xLabels[0] != '\0') { MakeAxisLabels(h->GetXaxis(), xLabels); } - if (fVariableNames[varY][0]) { + if (fVariableNames[varY][0] != 0) { h->GetYaxis()->SetTitle(Form("%s %s", fVariableNames[varY].Data(), - (fVariableUnits[varY][0] ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); + ((fVariableUnits[varY][0] != 0) ? Form("(%s)", fVariableUnits[varY].Data()) : ""))); } if (arr->At(2)) { h->GetYaxis()->SetTitle(arr->At(2)->GetName()); @@ -521,13 +535,13 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co if (yLabels[0] != '\0') { MakeAxisLabels(h->GetYaxis(), yLabels); } - if (fVariableNames[varZ][0]) { + if (fVariableNames[varZ][0] != 0) { h->GetZaxis()->SetTitle(Form("%s %s", fVariableNames[varZ].Data(), - (fVariableUnits[varZ][0] ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); + ((fVariableUnits[varZ][0] != 0) ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); } - if (fVariableNames[varZ][0] && isProfile && varT < 0) { // TProfile2D + if ((fVariableNames[varZ][0] != 0) && isProfile && varT < 0) { // TProfile2D h->GetZaxis()->SetTitle(Form("<%s> %s", fVariableNames[varZ].Data(), - (fVariableUnits[varZ][0] ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); + ((fVariableUnits[varZ][0] != 0) ? Form("(%s)", fVariableUnits[varZ].Data()) : ""))); } if (arr->At(3)) { @@ -538,6 +552,11 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co } hList->Add(h); break; + + default: + LOG(warn) << "HistogramManager::AddHistogram(): Unsupported dimension " << dimension + << " for histogram " << hname; + return; } // end switch(dimension) } @@ -551,7 +570,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // // get the list to which the histogram should be added - auto* hList = reinterpret_cast(fMainList->FindObject(histClass)); + auto* hList = dynamic_cast(fMainList->FindObject(histClass)); if (!hList) { LOG(warn) << "HistogramManager::AddHistogram(): Histogram list " << histClass << " not found!"; LOG(warn) << " Histogram not created"; @@ -607,34 +626,43 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co } h->Sumw2(); + std::span axisLabels{}; + if (axLabels) { + axisLabels = std::span{axLabels, static_cast(nDimensions)}; + } + // configure the THn histogram and count the allocated bins for (int idim = 0; idim < nDimensions; ++idim) { nbins *= (nBins[idim] + 2); TAxis* axis = h->GetAxis(idim); - if (fVariableNames[vars[idim]][0]) { + if (fVariableNames[vars[idim]][0] != 0) { axis->SetTitle(Form("%s %s", fVariableNames[vars[idim]].Data(), - (fVariableUnits[vars[idim]][0] ? Form("(%s)", fVariableUnits[vars[idim]].Data()) : ""))); + ((fVariableUnits[vars[idim]][0] != 0) ? Form("(%s)", fVariableUnits[vars[idim]].Data()) : ""))); } if (arr->At(1 + idim)) { axis->SetTitle(arr->At(1 + idim)->GetName()); } - if (axLabels && !axLabels[idim].IsNull()) { - MakeAxisLabels(axis, axLabels[idim].Data()); + if (!axisLabels.empty() && !axisLabels[idim].IsNull()) { + MakeAxisLabels(axis, axisLabels[idim].Data()); } fUsedVars[vars[idim]] = kTRUE; } if (!isdouble) { if (useSparse) { - hList->Add(reinterpret_cast(h)); - } else { - hList->Add(reinterpret_cast(h)); + if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); + } + } else if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); } } else { if (useSparse) { - hList->Add(reinterpret_cast(h)); - } else { - hList->Add(reinterpret_cast(h)); + if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); + } + } else if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); } } @@ -651,7 +679,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // // get the list to which the histogram should be added - auto* hList = reinterpret_cast(fMainList->FindObject(histClass)); + auto* hList = dynamic_cast(fMainList->FindObject(histClass)); if (!hList) { LOG(warn) << "HistogramManager::AddHistogram(): Histogram list " << histClass << " not found!"; LOG(warn) << " Histogram not created"; @@ -687,10 +715,13 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co auto* xmin = new double[nDimensions]; auto* xmax = new double[nDimensions]; int* nBins = new int[nDimensions]; + std::span limits{binLimits, static_cast(nDimensions)}; for (int idim = 0; idim < nDimensions; ++idim) { - nBins[idim] = binLimits[idim].GetSize() - 1; - xmin[idim] = binLimits[idim][0]; - xmax[idim] = binLimits[idim][nBins[idim]]; + const TArrayD& dimLimits = limits[idim]; + const double* dimBins = dimLimits.GetArray(); + nBins[idim] = dimLimits.GetSize() - 1; + xmin[idim] = dimBins[0]; + xmax[idim] = dimBins[nBins[idim]]; } // initialize the THn with equal spaced bins @@ -711,51 +742,60 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co // rebin the axes according to the user requested binning for (int idim = 0; idim < nDimensions; ++idim) { TAxis* axis = h->GetAxis(idim); - axis->Set(nBins[idim], binLimits[idim].GetArray()); + axis->Set(nBins[idim], limits[idim].GetArray()); } h->Sumw2(); + std::span axisLabels{}; + if (axLabels) { + axisLabels = std::span{axLabels, static_cast(nDimensions)}; + } + uint32_t bins = 1; for (int idim = 0; idim < nDimensions; ++idim) { bins *= (nBins[idim] + 2); TAxis* axis = h->GetAxis(idim); - if (fVariableNames[vars[idim]][0]) { + if (fVariableNames[vars[idim]][0] != 0) { axis->SetTitle(Form("%s %s", fVariableNames[vars[idim]].Data(), - (fVariableUnits[vars[idim]][0] ? Form("(%s)", fVariableUnits[vars[idim]].Data()) : ""))); + ((fVariableUnits[vars[idim]][0] != 0) ? Form("(%s)", fVariableUnits[vars[idim]].Data()) : ""))); } if (arr->At(1 + idim)) { axis->SetTitle(arr->At(1 + idim)->GetName()); } - if (axLabels && !axLabels[idim].IsNull()) { - MakeAxisLabels(axis, axLabels[idim].Data()); + if (!axisLabels.empty() && !axisLabels[idim].IsNull()) { + MakeAxisLabels(axis, axisLabels[idim].Data()); } fUsedVars[vars[idim]] = kTRUE; } if (!isdouble) { if (useSparse) { - hList->Add(reinterpret_cast(h)); - } else { - hList->Add(reinterpret_cast(h)); + if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); + } + } else if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); } } else { if (useSparse) { - hList->Add(reinterpret_cast(h)); - } else { - hList->Add(reinterpret_cast(h)); + if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); + } + } else if (auto* hn = dynamic_cast(h)) { + hList->Add(hn); } } fBinsAllocated += bins; } //__________________________________________________________________ -void HistogramManager::FillHistClass(const char* className, Float_t* values) +void HistogramManager::FillHistClass(const char* className, float* values) { // // fill a class of histograms // // get the needed histogram list - auto* hList = reinterpret_cast(fMainList->FindObject(className)); + auto* hList = dynamic_cast(fMainList->FindObject(className)); if (!hList) { // TODO: add some meaningfull error message /*LOG(warn) << "HistogramManager::FillHistClass(): Histogram list " << className << " not found!"; @@ -769,14 +809,14 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values) TIter next(hList); TObject* h = nullptr; - bool isProfile; - bool isTHn; + bool isProfile = false; + bool isTHn = false; int dimension = 0; bool isSparse = kFALSE; bool isFillLabelx = kFALSE; // TODO: At the moment, maximum 20 dimensions are foreseen for the THn histograms. We should make this more dynamic // But maybe its better to have it like to avoid dynamically allocating this array in the histogram loop - double fillValues[20] = {0.0}; + std::array fillValues{}; int varX = -1, varY = -1, varZ = -1, varT = -1, varW = -1; // loop over the histogram and std::list @@ -784,12 +824,14 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values) for (auto varIter = varList.begin(); varIter != varList.end(); varIter++) { h = next(); // get the histogram // decode information from the vector of indices - isProfile = ((*varIter)[0] == 1 ? true : false); - isTHn = ((*varIter)[1] > 0 ? true : false); + isProfile = ((*varIter)[0] == 1); + isTHn = ((*varIter)[1] > 0); if (isTHn) { dimension = (*varIter)[1]; + } else if (auto* h1 = dynamic_cast(h)) { + dimension = h1->GetDimension(); } else { - dimension = (reinterpret_cast(h))->GetDimension(); + continue; } // get the various variable indices @@ -803,77 +845,101 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values) varY = (*varIter)[4]; varZ = (*varIter)[5]; varT = (*varIter)[6]; - isFillLabelx = ((*varIter)[7] == 1 ? true : false); + isFillLabelx = ((*varIter)[7] == 1); } if (!isTHn) { switch (dimension) { case 1: if (isProfile) { + auto* profile = dynamic_cast(h); + if (!profile) { + break; + } if (varW > kNothing) { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), values[varY], values[varW]); + profile->Fill(Form("%d", static_cast(values[varX])), values[varY], values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varW]); + profile->Fill(values[varX], values[varY], values[varW]); } } else { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), values[varY]); + profile->Fill(Form("%d", static_cast(values[varX])), values[varY]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY]); + profile->Fill(values[varX], values[varY]); } } } else { + auto* h1 = dynamic_cast(h); + if (!h1) { + break; + } if (varW > kNothing) { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), values[varW]); + h1->Fill(Form("%d", static_cast(values[varX])), values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varW]); + h1->Fill(values[varX], values[varW]); } } else { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), 1.); + h1->Fill(Form("%d", static_cast(values[varX])), 1.); } else { - (reinterpret_cast(h))->Fill(values[varX]); + h1->Fill(values[varX]); } } } break; case 2: if (isProfile) { + auto* profile = dynamic_cast(h); + if (!profile) { + break; + } if (varW > kNothing) { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ], values[varW]); + profile->Fill(values[varX], values[varY], values[varZ], values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ]); + profile->Fill(values[varX], values[varY], values[varZ]); } } else { + auto* h2 = dynamic_cast(h); + if (!h2) { + break; + } if (varW > kNothing) { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), values[varY], values[varW]); + h2->Fill(Form("%d", static_cast(values[varX])), values[varY], values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varW]); + h2->Fill(values[varX], values[varY], values[varW]); } } else { if (isFillLabelx) { - (reinterpret_cast(h))->Fill(Form("%d", static_cast(values[varX])), values[varY], 1.); + h2->Fill(Form("%d", static_cast(values[varX])), values[varY], 1.); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY]); + h2->Fill(values[varX], values[varY]); } } } break; case 3: if (isProfile) { + auto* profile = dynamic_cast(h); + if (!profile) { + break; + } if (varW > kNothing) { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ], values[varT], values[varW]); + profile->Fill(values[varX], values[varY], values[varZ], values[varT], values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ], values[varT]); + profile->Fill(values[varX], values[varY], values[varZ], values[varT]); } } else { + auto* h3 = dynamic_cast(h); + if (!h3) { + break; + } if (varW > kNothing) { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ], values[varW]); + h3->Fill(values[varX], values[varY], values[varZ], values[varW]); } else { - (reinterpret_cast(h))->Fill(values[varX], values[varY], values[varZ]); + h3->Fill(values[varX], values[varY], values[varZ]); } } break; @@ -885,15 +951,19 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values) } else { if (varW > kNothing) { if (isSparse) { - (reinterpret_cast(h))->Fill(fillValues, values[varW]); - } else { - (reinterpret_cast(h))->Fill(fillValues, values[varW]); + if (auto* hn = dynamic_cast(h)) { + hn->Fill(fillValues.data(), values[varW]); + } + } else if (auto* hn = dynamic_cast(h)) { + hn->Fill(fillValues.data(), values[varW]); } } else { if (isSparse) { - (reinterpret_cast(h))->Fill(fillValues); - } else { - (reinterpret_cast(h))->Fill(fillValues); + if (auto* hn = dynamic_cast(h)) { + hn->Fill(fillValues.data()); + } + } else if (auto* hn = dynamic_cast(h)) { + hn->Fill(fillValues.data()); } } } // end else @@ -922,14 +992,17 @@ void HistogramManager::Print(Option_t*) const // // Print the defined histograms // - cout << "###################################################################" << endl; - cout << "HistogramManager:: " << fMainList->GetName() << endl; + LOG(info) << "###################################################################"; + LOG(info) << "HistogramManager:: " << fMainList->GetName(); for (int i = 0; i < fMainList->GetEntries(); ++i) { - auto* list = reinterpret_cast(fMainList->At(i)); - cout << "************** List " << list->GetName() << endl; - for (int j = 0; j < list->GetEntries(); ++j) { - TObject* obj = list->At(j); - cout << obj->GetName() << ": " << obj->IsA()->GetName() << endl; + auto* histList = dynamic_cast(fMainList->At(i)); + if (!histList) { + continue; + } + LOG(info) << "************** List " << histList->GetName(); + for (int j = 0; j < histList->GetEntries(); ++j) { + TObject* obj = histList->At(j); + LOG(info) << obj->GetName() << ": " << obj->IsA()->GetName(); } } } diff --git a/PWGDQ/Core/HistogramManager.h b/PWGDQ/Core/HistogramManager.h index ec8781ea66a..dacf5ad0411 100644 --- a/PWGDQ/Core/HistogramManager.h +++ b/PWGDQ/Core/HistogramManager.h @@ -46,9 +46,7 @@ class HistogramManager : public TNamed void SetMainHistogramList(THashList* list) { - if (fMainList) { - delete fMainList; - } + delete fMainList; fMainList = list; } @@ -91,11 +89,11 @@ class HistogramManager : public TNamed void SetUseDefaultVariableNames(bool flag) { fUseDefaultVariableNames = flag; } void SetDefaultVarNames(TString* vars, TString* units); - const bool* GetUsedVars() const { return fUsedVars; } + [[nodiscard]] const bool* GetUsedVars() const { return fUsedVars; } THashList* GetMainHistogramList() { return fMainList; } // get a histogram list - uint64_t GetAllocatedBins() const { return fBinsAllocated; } + [[nodiscard]] uint64_t GetAllocatedBins() const { return fBinsAllocated; } void Print(Option_t*) const override; private: @@ -108,8 +106,8 @@ class HistogramManager : public TNamed // various bool fUseDefaultVariableNames; //! toggle the usage of default variable names and units uint64_t fBinsAllocated; //! number of allocated bins - TString* fVariableNames; //! variable names - TString* fVariableUnits; //! variable units + std::vector fVariableNames; //! variable names + std::vector fVariableUnits; //! variable units void MakeAxisLabels(TAxis* ax, const char* labels); diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index 4ede101a91d..06501f78aaf 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -28,7 +28,6 @@ #include -#include #include #include #include @@ -299,8 +298,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {500, 500, 18}; std::array minBins = {-10, -10, 0}; std::array maxBins = {10, 10, 90}; - hm->AddHistogram(histClass, "Q1ZNAX_Q1ZNAY_CentFT0C", "", 3, varZNA.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Q1ZNCX_Q1ZNCY_CentFT0C", "", 3, varZNC.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Q1ZNAX_Q1ZNAY_CentFT0C", "", 3, varZNA.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Q1ZNCX_Q1ZNCY_CentFT0C", "", 3, varZNC.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); hm->AddHistogram(histClass, "IntercalibZNA_CentFT0C", "", false, 18, 0.0, 90.0, VarManager::kCentFT0C, 500, -50.0, 50.0, VarManager::KIntercalibZNA); hm->AddHistogram(histClass, "IntercalibZNC_CentFT0C", "", false, 18, 0.0, 90.0, VarManager::kCentFT0C, 500, -50.0, 50.0, VarManager::KIntercalibZNC); @@ -744,7 +743,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h if (subGroupStr.Contains("tpcpid")) { if (subGroupStr.Contains("tpcpid_fine")) { // fine binning for pIN: steps in 10 MeV/c from 0 to 1 GeV/c and 100 MeV/c up to 10 GeV/c - std::array pIN_bins; + std::array pIN_bins{}; for (int i = 0; i <= 200; i++) { pIN_bins[i] = 0.01 * i; } @@ -753,13 +752,13 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } int nbins_pIN = static_cast(pIN_bins.size()) - 1; - std::array TPCdEdx_bins; + std::array TPCdEdx_bins{}; for (int i = 0; i <= 200; i++) { TPCdEdx_bins[i] = i; } int nbins_TPCdEdx = static_cast(TPCdEdx_bins.size()) - 1; - std::array nSigma_bins; + std::array nSigma_bins{}; for (int i = 0; i <= 100; i++) { nSigma_bins[i] = -5. + 0.1 * i; } @@ -822,7 +821,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h if (subGroupStr.Contains("postcalib")) { const int kNvarsPID = 4; const int kTPCnsigmaNbins = 70; - std::array tpcNsigmaBinLims; + std::array tpcNsigmaBinLims{}; for (int i = 0; i <= kTPCnsigmaNbins; ++i) { tpcNsigmaBinLims[i] = -7.0 + 0.2 * i; } @@ -834,7 +833,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array etaBinLimsI = {-0.9, -0.7, -0.5, -0.3, -0.1, 0.1, 0.3, 0.5, 0.7, 0.9}; const int kTPCnClusterbins = 16; - std::array tpcNclusterBinLims; + std::array tpcNclusterBinLims{}; for (int i = 0; i <= kTPCnClusterbins; ++i) { tpcNclusterBinLims[i] = 10 * i; } @@ -882,7 +881,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h if (subGroupStr.Contains("tofpid")) { if (subGroupStr.Contains("tofpid_fine")) { // fine binning for pIN: steps in 10 MeV/c from 0 to 1 GeV/c and 100 MeV/c up to 10 GeV/c - std::array pIN_bins; + std::array pIN_bins{}; for (int i = 0; i <= 200; i++) { pIN_bins[i] = 0.01 * i; } @@ -891,13 +890,13 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } int nbins_pIN = static_cast(pIN_bins.size()) - 1; - std::array TOFbeta_bins; + std::array TOFbeta_bins{}; for (int i = 0; i <= 240; i++) { TOFbeta_bins[i] = 0.005 * i; } int nbins_TOFbeta = static_cast(TOFbeta_bins.size()) - 1; - std::array nSigma_bins; + std::array nSigma_bins{}; for (int i = 0; i <= 100; i++) { nSigma_bins[i] = -5. + 0.1 * i; } @@ -919,7 +918,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h if (subGroupStr.Contains("pidcorre")) { const int kNvarsPID = 3; const int kNbins_pIN = 169; - std::array pIN_bins; + std::array pIN_bins{}; for (int i = 0; i <= 140; i++) { pIN_bins[i] = 0.01 * i + 0.1; } @@ -931,7 +930,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } const int kNbins_pINmore = 135; - std::array pIN_binsmore; + std::array pIN_binsmore{}; for (int i = 0; i <= 120; i++) { pIN_binsmore[i] = 0.01 * i + 0.3; } @@ -945,31 +944,31 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h pIN_binsmore[135] = 10.; const int kNbins_nSigma = 100; - std::array nSigma_bins; + std::array nSigma_bins{}; for (int i = 0; i <= kNbins_nSigma; i++) { nSigma_bins[i] = -5. + 0.1 * i; } const int kNbins_nSigmamore = 50; - std::array nSigma_binsmore; + std::array nSigma_binsmore{}; for (int i = 0; i <= kNbins_nSigmamore; i++) { nSigma_binsmore[i] = -5. + 0.2 * i; } const int kNbins_nSigmagrob = 24; - std::array nSigma_binsgrob; + std::array nSigma_binsgrob{}; for (int i = 0; i <= kNbins_nSigmagrob; i++) { nSigma_binsgrob[i] = -6. + 0.5 * i; } const int kNbins_TOFbeta = 120; - std::array TOFbeta_bins; + std::array TOFbeta_bins{}; for (int i = 0; i <= kNbins_TOFbeta; i++) { TOFbeta_bins[i] = 0.01 * i; } const int kNbins_TPCdEdx = 140; - std::array TPCdEdx_bins; + std::array TPCdEdx_bins{}; for (int i = 0; i <= kNbins_TPCdEdx; i++) { TPCdEdx_bins[i] = i + 20; } @@ -1148,7 +1147,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "tpcNSigmaPi_tofNSigmaPi", "", false, 200, -10., 10., VarManager::kTPCnSigmaPi, 200, -10., 10., VarManager::kTOFnSigmaPi); } if (subGroupStr.Contains("singlemucumulant")) { - std::array PtBinEdges; // 0-30GeV/c + std::array PtBinEdges{}; // 0-30GeV/c for (int i = 0; i < 67; i++) { if (i <= 39) { PtBinEdges[i] = i / 10.; @@ -1157,7 +1156,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } } - std::array CentBinEdges; // 0-90% + std::array CentBinEdges{}; // 0-90% for (int i = 0; i < 19; i++) { CentBinEdges[i] = i * 5; } @@ -1204,8 +1203,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {20, 20, 20, 20}; std::array xmin = {0., -1., 0., 0.}; std::array xmax = {20., 1., 2. * o2::constants::math::PI, 2. * o2::constants::math::PI}; - hm->AddHistogram(histClass, "Pt_cosThetaHE_phiHE_phiTildeHE", "", 4, varspTHE.data(), bins.data(), xmin.data(), xmax.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Pt_cosThetaCS_phiCS_phiTildeCS", "", 4, varspTCS.data(), bins.data(), xmin.data(), xmax.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Pt_cosThetaHE_phiHE_phiTildeHE", "", 4, varspTHE.data(), bins.data(), xmin.data(), xmax.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Pt_cosThetaCS_phiCS_phiTildeCS", "", 4, varspTCS.data(), bins.data(), xmin.data(), xmax.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("pbpb")) { hm->AddHistogram(histClass, "CosThetaStarRandom", "", false, 100, -1.0, 1.0, VarManager::kCosThetaStarRandom); @@ -1251,7 +1250,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } if (groupStr.CompareTo("energy-correlator-gen") == 0) { - std::array coschiBins; + std::array coschiBins{}; for (int i = 0; i < 26; i++) { coschiBins[i] = -1.0 + 2.0 * TMath::Power(0.04 * i, 2.0); } @@ -1265,9 +1264,9 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {50, 20, 20, 1000}; std::array xmin = {2., 0., -1., -0.5}; std::array xmax = {4., 20., 1., 0.5}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_Tauxy", "", 4, varspTHE.data(), bins.data(), xmin.data(), xmax.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_Tauxy", "", 4, varspTCS.data(), bins.data(), xmin.data(), xmax.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_Pt_cosThetaRM_Tauxy", "", 4, varspTRM.data(), bins.data(), xmin.data(), xmax.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_Tauxy", "", 4, varspTHE.data(), bins.data(), xmin.data(), xmax.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_Tauxy", "", 4, varspTCS.data(), bins.data(), xmin.data(), xmax.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaRM_Tauxy", "", 4, varspTRM.data(), bins.data(), xmin.data(), xmax.data(), nullptr, -1, kFALSE); } if (groupStr.CompareTo("pair") == 0) { if (subGroupStr.Contains("cepf")) { @@ -1316,11 +1315,11 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Mass_HighRange", "", false, 375, 0.0, 15.0, VarManager::kMass); hm->AddHistogram(histClass, "Pt", "", false, 2000, 0.0, 20., VarManager::kPt); hm->AddHistogram(histClass, "Mass_Pt", "", false, 500, 0.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt); - std::array massBins; + std::array massBins{}; for (int i = 0; i < 76; i++) { massBins[i] = 1.5 + i * 0.04; } - std::array ptBins; + std::array ptBins{}; for (int i = 0; i <= 50; i++) { ptBins[i] = i * 0.01; } @@ -1351,18 +1350,18 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h 4.0, 5.0, 6.5, 8.0, 10.0, 12.0, 15.0, 20.0, 30.0, 40.0, 60.0, 80.0, 100.0}; - std::array massBins; + std::array alice3MassBins{}; for (int i = 0; i < 501; i++) { - massBins[i] = 0.01 * (i); + alice3MassBins[i] = 0.01 * (i); } - hm->AddHistogram(histClass, "Mass_PtLong", "", false, 500, massBins.data(), VarManager::kMass, 20, pTBins.data(), VarManager::kPt); + hm->AddHistogram(histClass, "Mass_PtLong", "", false, 500, alice3MassBins.data(), VarManager::kMass, 20, pTBins.data(), VarManager::kPt); } if (subGroupStr.Contains("dielectron-polarization-he-pbpb")) { std::array varsHEpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaHE, VarManager::kPhiHE}; std::array binspT = {100, 30, 10, 10, 10}; std::array xminpT = {2., 0., 0, -1., 0.0}; std::array xmaxpT = {4.5, 3., 100, 1., 6.28}; - hm->AddHistogram(histClass, "Dielectron_Mass_Pt_Cent_cosThetaHE", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Dielectron_Mass_Pt_Cent_cosThetaHE", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dielectron-polarization-cs-pbpb")) { @@ -1370,7 +1369,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binspT = {100, 30, 10, 10, 10}; std::array xminpT = {2.0, 0., 0, -1., 0.0}; std::array xmaxpT = {4.5, 3., 100, 1., 6.28}; - hm->AddHistogram(histClass, "Dielectron_Mass_Pt_Cent_cosThetaCS", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Dielectron_Mass_Pt_Cent_cosThetaCS", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("polarization")) { if (subGroupStr.Contains("helicity")) { @@ -1416,36 +1415,35 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins_DeltaPhi = {50, 20, 20, 9, 10}; std::array minBins_DeltaPhi = {2.0, 0.0, -1., 0.0, 0}; std::array maxBins_DeltaPhi = {4.0, 2.0, 1.0, 90.0, 3.14}; - TString labels[5] = {"kMass", "kPt", "kRapidity", "kCentFT0C", "kA2EP"}; if (subGroupStr.Contains("tpc")) { std::array varA2_TPC_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_TPC}; std::array varA2_TPC_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_TPC}; std::array varDeltaPhi_TPC_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_TPC}; std::array varDeltaPhi_TPC_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_TPC}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_TPC", "", 5, varA2_TPC_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_TPC", "", 5, varA2_TPC_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_TPC", "", 5, varDeltaPhi_TPC_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_TPC", "", 5, varDeltaPhi_TPC_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_TPC", "", 5, varA2_TPC_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_TPC", "", 5, varA2_TPC_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_TPC", "", 5, varDeltaPhi_TPC_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_TPC", "", 5, varDeltaPhi_TPC_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); } if (subGroupStr.Contains("ft0c")) { std::array varA2_FT0C_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_FT0C}; std::array varA2_FT0C_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_FT0C}; std::array varDeltaPhi_FT0C_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_FT0C}; std::array varDeltaPhi_FT0C_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_FT0C}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0C", "", 5, varA2_FT0C_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0C", "", 5, varA2_FT0C_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0C", "", 5, varDeltaPhi_FT0C_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0C", "", 5, varDeltaPhi_FT0C_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0C", "", 5, varA2_FT0C_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0C", "", 5, varA2_FT0C_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0C", "", 5, varDeltaPhi_FT0C_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0C", "", 5, varDeltaPhi_FT0C_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); } if (subGroupStr.Contains("ft0a")) { std::array varA2_FT0A_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_PP_FT0A}; std::array varA2_FT0A_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kA2EP_RP_FT0A}; std::array varDeltaPhi_FT0A_PP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiPP_FT0A}; std::array varDeltaPhi_FT0A_RP = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kDeltaPhiRP_FT0A}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0A", "", 5, varA2_FT0A_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0A", "", 5, varA2_FT0A_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0A", "", 5, varDeltaPhi_FT0A_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0A", "", 5, varDeltaPhi_FT0A_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2PP_FT0A", "", 5, varA2_FT0A_PP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_A2RP_FT0A", "", 5, varA2_FT0A_RP.data(), bins_A2.data(), minBins_A2.data(), maxBins_A2.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiPP_FT0A", "", 5, varDeltaPhi_FT0A_PP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_DeltaPhiRP_FT0A", "", 5, varDeltaPhi_FT0A_RP.data(), bins_DeltaPhi.data(), minBins_DeltaPhi.data(), maxBins_DeltaPhi.data(), nullptr, -1, kTRUE); } } if (subGroupStr.Contains("upsilon")) { @@ -1484,7 +1482,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binspT = {50, 10, 20, 1000}; std::array xminpT = {2., 0., -1., -0.5}; std::array xmaxpT = {4., 20., 1., 0.5}; - hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("tauxy-midy-pol-rand")) { @@ -1493,7 +1491,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binspT = {50, 10, 20, 1000}; std::array xminpT = {2., 0., -1., -0.5}; std::array xmaxpT = {4., 20., 1., 0.5}; - hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaRand", "", 4, varspTRand.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaRand", "", 4, varspTRand.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("tauxy-midy-pol-cs")) { @@ -1502,7 +1500,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binspT = {50, 10, 20, 1000}; std::array xminpT = {2., 0., -1., -0.5}; std::array xmaxpT = {4., 20., 1., 0.5}; - hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Tauxy_Mass_Pt_CosthetaCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("kalman-filter")) { @@ -1563,7 +1561,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array PtBinLims = {1., 2., 3., 4., 5., 6., 7., 8., 9., 12., 20.}; const int kTauNBins = 500; - std::array TauBinLims; + std::array TauBinLims{}; for (int i = 0; i <= kTauNBins; ++i) { TauBinLims[i] = -0.3 + (0.0015 * i); } @@ -1597,14 +1595,14 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binsKine = {250, 120, 60}; std::array xminKine = {0.0, 0.0, 2.5}; std::array xmaxKine = {5.0, 30.0, 4.0}; - hm->AddHistogram(histClass, "Mass_Pt_Rapidity", "", 3, varsKine.data(), binsKine.data(), xminKine.data(), xmaxKine.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Rapidity", "", 3, varsKine.data(), binsKine.data(), xminKine.data(), xmaxKine.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-high-mass-multi-diff")) { std::array varsKine = {VarManager::kMass, VarManager::kPt, VarManager::kRap}; std::array binsKine = {250, 120, 60}; std::array xminKine = {7.0, 0.0, 2.5}; std::array xmaxKine = {12.0, 30.0, 4.0}; - hm->AddHistogram(histClass, "Mass_Pt_Rapidity", "", 3, varsKine.data(), binsKine.data(), xminKine.data(), xmaxKine.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Rapidity", "", 3, varsKine.data(), binsKine.data(), xminKine.data(), xmaxKine.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-centr")) { hm->AddHistogram(histClass, "Mass_CentFT0C", "", false, 750, 0.0, 15.0, VarManager::kMass, 100, 0., 100., VarManager::kCentFT0C); @@ -1625,12 +1623,12 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "U2Q2_CentFT0C_ev2", "mass vs. centrality vs. U2Q2_event2", false, 125, 0.0, 5.0, VarManager::kMass, 9, 0.0, 90.0, VarManager::kCentFT0C, 100, -10.0, 10.0, VarManager::kU2Q2Ev2); } if (subGroupStr.Contains("metest")) { - std::array MassBinEdges; // 0-5GeV/c2 + std::array MassBinEdges{}; // 0-5GeV/c2 for (int i = 0; i < 251; i++) { MassBinEdges[i] = i * 0.02; } - std::array PtBinEdges; // 0-20GeV/c + std::array PtBinEdges{}; // 0-20GeV/c for (int i = 0; i < 49; i++) { if (i <= 9) { PtBinEdges[i] = i / 10.; @@ -1639,7 +1637,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } } - std::array CentBinEdges; // 0-90% + std::array CentBinEdges{}; // 0-90% for (int i = 0; i < 19; i++) { CentBinEdges[i] = i * 5; } @@ -1660,12 +1658,12 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Mass_Pt_CentFT0C_V24ME", "Mass_Pt_CentFT0C_V24ME", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 90, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kV24ME, VarManager::kWV24ME); } if (subGroupStr.Contains("cumulantme1")) { - std::array MassBinEdges; // 0-5GeV/c2 + std::array MassBinEdges{}; // 0-5GeV/c2 for (int i = 0; i < 251; i++) { MassBinEdges[i] = i * 0.02; } - std::array PtBinEdges; // 0-30GeV/c + std::array PtBinEdges{}; // 0-30GeV/c for (int i = 0; i < 67; i++) { if (i <= 39) { PtBinEdges[i] = i / 10.; @@ -1674,7 +1672,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } } - std::array CentBinEdges; // 0-90% + std::array CentBinEdges{}; // 0-90% for (int i = 0; i < 19; i++) { CentBinEdges[i] = i * 5; } @@ -1696,21 +1694,21 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binspT = {100, 40, 20, 20}; std::array xminpT = {1., 0., -1., -3.14}; std::array xmaxpT = {5., 20., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_phiHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_phiHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-cs")) { std::array varspTCS = {VarManager::kMass, VarManager::kPt, VarManager::kCosThetaCS, VarManager::kPhiCS}; std::array binspT = {100, 40, 20, 20}; std::array xminpT = {1., 0., -1., -3.14}; std::array xmaxpT = {5., 20., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_phiCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_phiCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-pp")) { std::array varspTPP = {VarManager::kMass, VarManager::kPt, VarManager::kCosThetaPP, VarManager::kPhiPP}; std::array binspT = {100, 40, 20, 20}; std::array xminpT = {1., 0., -1., -3.14}; std::array xmaxpT = {5., 20., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaPP_phiPP", "", 4, varspTPP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaPP_phiPP", "", 4, varspTPP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-lowmass-pp")) { std::array varspTPP = {VarManager::kMass, VarManager::kPt, VarManager::kCosThetaPP, VarManager::kPhiPP}; @@ -1721,22 +1719,22 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array xmaxpT = {1.5, 20., 1., +3.14}; std::array xminy = {0.2, 2.5, -1., -3.14}; std::array xmaxy = {1.5, 4.0, 1., +3.14}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaPP_phiPP", "", 4, varspTPP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_y_cosThetaPP_phiPP", "", 4, varsrapPP.data(), binsy.data(), xminy.data(), xmaxy.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaPP_phiPP", "", 4, varspTPP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_y_cosThetaPP_phiPP", "", 4, varsrapPP.data(), binsy.data(), xminy.data(), xmaxy.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("upsilon-polarization-he")) { std::array varspTHE = {VarManager::kMass, VarManager::kPt, VarManager::kCosThetaHE, VarManager::kPhiHE}; std::array binspT = {100, 20, 20, 20}; std::array xminpT = {1., 0., -1., 0.}; std::array xmaxpT = {15., 20., 1., 2. * o2::constants::math::PI}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_phiHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaHE_phiHE", "", 4, varspTHE.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("upsilon-polarization-cs")) { std::array varspTCS = {VarManager::kMass, VarManager::kPt, VarManager::kCosThetaCS, VarManager::kPhiCS}; std::array binspT = {100, 20, 20, 20}; std::array xminpT = {1., 0., -1., 0.}; std::array xmaxpT = {15., 20., 1., 2. * o2::constants::math::PI}; - hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_phiCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_cosThetaCS_phiCS", "", 4, varspTCS.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-vp")) { std::array varspTVP = {VarManager::kMass, VarManager::kPt, VarManager::kCosPhiVP, VarManager::kPhiVP}; @@ -1747,71 +1745,71 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array xmaxpT = {5., 20., 1., +3.14}; std::array xminy = {1., 2.5, -1., 0.}; std::array xmaxy = {5., 4.0, 1., +3.14}; - hm->AddHistogram(histClass, "Mass_Pt_phiVP", "", 4, varspTVP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_y_phiVP", "", 4, varsrapVP.data(), binsy.data(), xminy.data(), xmaxy.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_phiVP", "", 4, varspTVP.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_y_phiVP", "", 4, varsrapVP.data(), binsy.data(), xminy.data(), xmaxy.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-rap")) { std::array vars = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kRap}; std::array binspT = {300, 200, 10, 6}; std::array xminpT = {2., 0., 0, 2.5}; std::array xmaxpT = {8., 20., 100, 4.0}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_Rap", "", 4, vars.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_Rap", "", 4, vars.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-he-pbpb")) { std::array varsHEpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaHE, VarManager::kPhiHE}; std::array binspT = {150, 30, 10, 10, 10}; std::array xminpT = {2., 0., 0, -1., -3.14}; std::array xmaxpT = {5., 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-lowmass-he-pbpb")) { std::array varsHEpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaHE, VarManager::kPhiHE}; std::array binspT = {200, 30, 10, 10, 10}; std::array xminpT = {0.2, 0., 0, -1., -3.14}; std::array xmaxpT = {1.2, 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE_lowmass", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE_lowmass", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-cs-pbpb")) { std::array varsCSpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaCS, VarManager::kPhiCS}; std::array binspT = {150, 30, 10, 10, 10}; std::array xminpT = {2., 0., 0, -1., -3.14}; std::array xmaxpT = {5., 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-lowmass-cs-pbpb")) { std::array varsCSpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaCS, VarManager::kPhiCS}; std::array binspT = {200, 30, 10, 10, 10}; std::array xminpT = {0.2, 0., 0, -1., -3.14}; std::array xmaxpT = {1.2, 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS_lowmass", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS_lowmass", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-vp-pbpb")) { std::array varsVPpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosPhiVP, VarManager::kPhiVP}; std::array binspT = {150, 30, 10, 24, 24}; std::array xminpT = {2., 0., 0, -1., 0.}; std::array xmaxpT = {5., 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_phiVP", "", 5, varsVPpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_phiVP", "", 5, varsVPpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-polarization-lowmass-vp-pbpb")) { std::array varsVPpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosPhiVP, VarManager::kPhiVP}; std::array binspT = {200, 30, 10, 24, 24}; std::array xminpT = {0.2, 0., 0, -1., 0.}; std::array xmaxpT = {1.2, 3., 100, 1., 3.14}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_phiVP_lowmass", "", 5, varsVPpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_phiVP_lowmass", "", 5, varsVPpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-rap-polarization-he-pbpb")) { std::array varsHEpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaHE, VarManager::kRap}; std::array binspT = {150, 30, 10, 10, 6}; std::array xminpT = {2., 0., 0, -1., 2.5}; std::array xmaxpT = {5., 3., 100, 1., 4.0}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE_Rap", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaHE_Rap", "", 5, varsHEpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-rap-polarization-cs-pbpb")) { std::array varsCSpbpb = {VarManager::kMass, VarManager::kPt, VarManager::kCentFT0C, VarManager::kCosThetaCS, VarManager::kRap}; std::array binspT = {150, 30, 10, 10, 6}; std::array xminpT = {2., 0., 0, -1., 2.5}; std::array xmaxpT = {5., 3., 100, 1., 4.0}; - hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS_Rap", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_Pt_Cent_cosThetaCS_Rap", "", 5, varsCSpbpb.data(), binspT.data(), xminpT.data(), xmaxpT.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-midmult-polarization-he")) { std::array varsITSTPCMulHE = {VarManager::kMass, VarManager::kMultNTracksITSTPC, VarManager::kCosThetaHE, VarManager::kPhiHE}; @@ -1819,8 +1817,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binsMul = {100, 20, 20, 20}; std::array xminMul = {1., 0., -1., -3.14}; std::array xmaxMul = {5., 120., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_ITSTPCMult_cosThetaHE_phiHE", "", 4, varsITSTPCMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_ITSMult_cosThetaHE_phiHE", "", 4, varsITSMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_ITSTPCMult_cosThetaHE_phiHE", "", 4, varsITSTPCMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_ITSMult_cosThetaHE_phiHE", "", 4, varsITSMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-midmult-polarization-cs")) { std::array varsITSTPCMulCS = {VarManager::kMass, VarManager::kMultNTracksITSTPC, VarManager::kCosThetaCS, VarManager::kPhiCS}; @@ -1828,8 +1826,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binsMul = {100, 20, 20, 20}; std::array xminMul = {1., 0., -1., -3.14}; std::array xmaxMul = {5., 120., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_ITSTPCMult_cosThetaCS_phiCS", "", 4, varsITSTPCMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_ITSMult_cosThetaCS_phiCS", "", 4, varsITSMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_ITSTPCMult_cosThetaCS_phiCS", "", 4, varsITSTPCMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_ITSMult_cosThetaCS_phiCS", "", 4, varsITSMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-fwdmult-polarization-he")) { std::array varsFT0AMulHE = {VarManager::kMass, VarManager::kMultFT0A, VarManager::kCosThetaHE, VarManager::kPhiHE}; @@ -1837,8 +1835,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binsMul = {100, 20, 20, 20}; std::array xminMul = {1., 0., -1., -3.14}; std::array xmaxMul = {5., 3000., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_FT0AMult_cosThetaHE_phiHE", "", 4, varsFT0AMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_FV0AMult_cosThetaHE_phiHE", "", 4, varsFV0AMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_FT0AMult_cosThetaHE_phiHE", "", 4, varsFT0AMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_FV0AMult_cosThetaHE_phiHE", "", 4, varsFV0AMulHE.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("dimuon-fwdmult-polarization-cs")) { std::array varsFT0AMulCS = {VarManager::kMass, VarManager::kMultFT0A, VarManager::kCosThetaCS, VarManager::kPhiCS}; @@ -1846,8 +1844,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array binsMul = {100, 20, 20, 20}; std::array xminMul = {1., 0., -1., -3.14}; std::array xmaxMul = {5., 3000., 1., +3.14}; - hm->AddHistogram(histClass, "Mass_FT0AMult_cosThetaCS_phiCS", "", 4, varsFT0AMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); - hm->AddHistogram(histClass, "Mass_FV0AMult_cosThetaCS_phiCS", "", 4, varsFV0AMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), 0, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_FT0AMult_cosThetaCS_phiCS", "", 4, varsFT0AMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); + hm->AddHistogram(histClass, "Mass_FV0AMult_cosThetaCS_phiCS", "", 4, varsFV0AMulCS.data(), binsMul.data(), xminMul.data(), xmaxMul.data(), nullptr, -1, kFALSE); } if (subGroupStr.Contains("vertexing-forward")) { hm->AddHistogram(histClass, "Lxyz", "", false, 100, 0.0, 10.0, VarManager::kVertexingLxyz); @@ -1885,8 +1883,8 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {250, 60, 6, 18, 200, 40}; std::array minBins = {0.0, 0.0, 2.5, 0.0, -10.0, -2.0}; std::array maxBins = {5.0, 30.0, 4.0, 90.0, 10.0, 2.0}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2POS", "", 6, varV2POS.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2NEG", "", 6, varV2NEG.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2POS", "", 6, varV2POS.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2NEG", "", 6, varV2NEG.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); } if (subGroupStr.Contains("flow-dimuon-high-mass")) { std::array varV2 = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kU2Q2, VarManager::kCos2DeltaPhi}; @@ -1894,7 +1892,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {50, 30, 6, 18, 200, 40}; std::array minBins = {7.0, 0.0, 2.5, 0.0, -10.0, -2.0}; std::array maxBins = {12.0, 30.0, 4.0, 90.0, 10.0, 2.0}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); } if (subGroupStr.Contains("flow-dimuon")) { std::array varV2 = {VarManager::kMass, VarManager::kPt, VarManager::kRap, VarManager::kCentFT0C, VarManager::kU2Q2, VarManager::kCos2DeltaPhi}; @@ -1903,16 +1901,16 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {250, 60, 6, 18, 200, 40}; std::array minBins = {0.0, 0.0, 2.5, 0.0, -10.0, -2.0}; std::array maxBins = {5.0, 30.0, 4.0, 90.0, 10.0, 2.0}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); // hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_V3", "", 6, varV3.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); // removed temporarily } if (subGroupStr.Contains("flow-ccdb")) { - std::array MassBinEdges; // 0-5GeV/c2 + std::array MassBinEdges{}; // 0-5GeV/c2 for (int i = 0; i < 251; i++) { MassBinEdges[i] = i * 0.02; } - std::array PtBinEdges; // 0-20GeV/c + std::array PtBinEdges{}; // 0-20GeV/c for (int i = 0; i < 49; i++) { if (i <= 9) { PtBinEdges[i] = i / 10.; @@ -1921,7 +1919,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } } - std::array CentBinEdges; // 0-90% + std::array CentBinEdges{}; // 0-90% for (int i = 0; i < 19; i++) { CentBinEdges[i] = i * 5; } @@ -1948,7 +1946,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h 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); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_M11M01REFoverMp", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kM11M01overMp); - hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REF", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFbydimuons, VarManager::kM11REFoverMp); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4REF", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4REFbydimuons, VarManager::kM1111REFoverMp); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2POI", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2POI, VarManager::kM01POIoverMp); @@ -1963,7 +1961,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {250, 60, 6, 18}; std::array minBins = {0.0, 0.0, 2.5, 0.0}; std::array maxBins = {5.0, 30.0, 4.0, 90.0}; - hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REF", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2REFbydimuons, VarManager::kM11REFoverMp); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4REF", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR4REFbydimuons, VarManager::kM1111REFoverMp); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2POI", "", true, 250, 0.0, 5.0, VarManager::kMass, 60, 0.0, 30.0, VarManager::kPt, 18, 0.0, 90.0, VarManager::kCentFT0C, "", "", "", VarManager::kCORR2POI, VarManager::kM01POIoverMp); @@ -1986,7 +1984,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {250, 60, 6, 18}; std::array minBins = {0.0, 0.0, 2.5, 0.0}; std::array maxBins = {5.0, 30.0, 4.0, 90.0}; - hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_Rapidity_CentFT0C", "", 4, var.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFminus", "", true, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, 0, 0.0, 1.0, VarManager::kCORR2REFbydimuons, "", "", "", VarManager::kNothing, VarManager::kM11REFoverMpminus); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4REFminus", "", true, 60, 0.0, 30.0, VarManager::kPt2, 18, 0.0, 90.0, VarManager::kCentFT0C, 0, 0.0, 1.0, VarManager::kCORR4REFbydimuons, "", "", "", VarManager::kNothing, VarManager::kM1111REFoverMpminus); hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr2REFplus", "", true, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, 0, 0.0, 1.0, VarManager::kCORR2REFbydimuons, "", "", "", VarManager::kNothing, VarManager::kM11REFoverMpplus); @@ -1997,7 +1995,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_Corr4POIplus", "", true, 60, 0.0, 30.0, VarManager::kPt1, 18, 0.0, 90.0, VarManager::kCentFT0C, 0, 0.0, 1.0, VarManager::kCORR4POIplus, "", "", "", VarManager::kNothing, VarManager::kM0111POIoverMpplus); } if (subGroupStr.Contains("singlecumulant2")) { - std::array PtBinEdges; // 0-30GeV/c + std::array PtBinEdges{}; // 0-30GeV/c for (int i = 0; i < 67; i++) { if (i <= 39) { PtBinEdges[i] = i / 10.; @@ -2005,7 +2003,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h PtBinEdges[i] = (i - 40) * 1. + 4.; } } - std::array CentBinEdges; // 0-90% + std::array CentBinEdges{}; // 0-90% for (int i = 0; i < 19; i++) { CentBinEdges[i] = i * 5; } @@ -2025,7 +2023,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h std::array bins = {125, 60, 6, 18, 200, 40}; std::array minBins = {0.0, 0.0, 2.5, 0.0, -10.0, -2.0}; std::array maxBins = {5.0, 30.0, 4.0, 90.0, 10.0, 2.0}; - hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_R2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); + hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_R2", "", 6, varV2.data(), bins.data(), minBins.data(), maxBins.data(), nullptr, -1, kTRUE); // hm->AddHistogram(histClass, "Mass_Pt_centrFT0C_R3", "", 6, varV3.data(), bins.data(), minBins.data(), maxBins.data(), 0, -1, kTRUE); // removed temporarily } if (subGroupStr.Contains("z-boson")) { @@ -2079,7 +2077,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // every 10 MeV from 0 to 0.2 GeV/c2 // every 100 MeV from 0.2 to 1. GeV/c2 // every 500 GeV from 1 to 5 GeV/c2 - std::array mee_bins; + std::array mee_bins{}; for (int i = 0; i <= 20; i++) { mee_bins[i] = 0.01 * i; } @@ -2093,7 +2091,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // binning for ptee at large scales: // every 0.2 GeV/c from 0 to 10 GeV/c - std::array ptee_bins; + std::array ptee_bins{}; for (int i = 0; i <= 50; i++) { ptee_bins[i] = 0.2 * i; } @@ -2101,9 +2099,10 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // binning for phiv: // steps of size pi/100 - std::array phiv_bins; - for (int i = 0; i <= 100; i++) + std::array phiv_bins{}; + for (int i = 0; i <= 100; i++) { phiv_bins[i] = o2::constants::math::PI / 100. * i; + } int nbins_phiv = static_cast(phiv_bins.size()) - 1; // 3D histo @@ -2127,7 +2126,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // every 50 MeV from 1.1 to 2.7 GeV/c2 // every 10 MeV from 2.7 to 3.2 GeV/c2 // every 50 MeV from 3.2 to 12 GeV/c2 - std::array mee_bins; + std::array mee_bins{}; for (int i = 0; i <= 110; i++) { mee_bins[i] = 0.01 * i; } @@ -2145,7 +2144,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // binning for ptee at large scales: // every 0.1 GeV/c from 0 to 10 GeV/c // every 0.5 GeV/c from 10 to 30 GeV/c - std::array ptee_bins; + std::array ptee_bins{}; for (int i = 0; i <= 100; i++) { ptee_bins[i] = 0.1 * i; } @@ -2158,7 +2157,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h // every 0.1 sigma from 0 to 5 sigma // every 0.5 sigma from 5 to 10 sigma // every 1.0 sigma from 10 to 40 sigma - std::array dca_bins; + std::array dca_bins{}; for (int i = 0; i <= 50; i++) { dca_bins[i] = 0.1 * i; } @@ -2251,7 +2250,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h const int kNvarsTripletCuts = 4; const int kInvMassNbins = 100; - std::array InvMassBinLims; + std::array InvMassBinLims{}; for (int i = 0; i <= kInvMassNbins; ++i) { InvMassBinLims[i] = 4.0 + 0.02 * i; } @@ -2279,13 +2278,13 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h } if (subGroupStr.Contains("dilepton-hadron-array-correlation")) { const int kInvMassBins = 500; - std::array InvMassBinLims; + std::array InvMassBinLims{}; for (int i = 0; i <= kInvMassBins; i++) { InvMassBinLims[i] = 0 + i * 0.01; } const int kDelEtaBins = 20; - std::array DelEtaBinLims; + std::array DelEtaBinLims{}; for (int i = 0; i <= kDelEtaBins; i++) { DelEtaBinLims[i] = -2 + i * 0.2; } @@ -2313,7 +2312,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Delta_Mass_DstarD0region", "", false, 50, 0.14, 0.16, VarManager::kDeltaMass); } if (subGroupStr.Contains("energy-correlator")) { - std::array coschiBins; + std::array coschiBins{}; for (int i = 0; i < 26; i++) { coschiBins[i] = -1.0 + 2.0 * TMath::Power(0.04 * i, 2.0); } @@ -2527,7 +2526,7 @@ bool o2::aod::dqhistograms::ValidateJSONHistogram(T hist) LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]"; return false; } - for (auto& v : hist->FindMember("histClass")->value.GetArray()) { + for (const auto& v : hist->FindMember("histClass")->value.GetArray()) { if (!v.IsString()) { LOG(fatal) << "histClass field should be an array of strings, e.g. [class1, class2]"; return false; @@ -2602,11 +2601,10 @@ bool o2::aod::dqhistograms::ValidateJSONHistogram(T hist) if (!hist->HasMember("nBins")) { LOG(fatal) << "Missing nBins field for histogram"; return false; - } else { - if (!hist->FindMember("nBins")->value.IsArray()) { - LOG(fatal) << "nBins field should be an array"; - return false; - } + } + if (!hist->FindMember("nBins")->value.IsArray()) { + LOG(fatal) << "nBins field should be an array"; + return false; } } if (hist->HasMember("axLabels") && !hist->FindMember("axLabels")->value.IsArray()) { @@ -2661,7 +2659,7 @@ bool o2::aod::dqhistograms::ValidateJSONHistogram(T hist) if (!isTHn) { TString varX = hist->FindMember("varX")->value.GetString(); - if (VarManager::fgVarNamesMap.find(varX) == VarManager::fgVarNamesMap.end()) { + if (!VarManager::fgVarNamesMap.contains(varX)) { LOG(fatal) << "Bad varX variable (" << hist->FindMember("varX")->value.GetString() << ") specified for histogram"; return false; } @@ -2683,7 +2681,7 @@ bool o2::aod::dqhistograms::ValidateJSONHistogram(T hist) } } if (isTHn) { - for (auto& v : hist->FindMember("vars")->value.GetArray()) { + for (const auto& v : hist->FindMember("vars")->value.GetArray()) { if (VarManager::fgVarNamesMap.find(v.GetString()) == VarManager::fgVarNamesMap.end()) { LOG(fatal) << "Bad variable in vars (" << v.GetString() << ") specified for histogram"; return false; @@ -2746,7 +2744,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch // create an array of strings to store the different histogram classes std::vector histClasses; - for (auto& v : hist.FindMember("histClass")->value.GetArray()) { + for (const auto& v : hist.FindMember("histClass")->value.GetArray()) { histClasses.push_back(v.GetString()); } const char* title = hist.FindMember("title")->value.GetString(); @@ -2757,7 +2755,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch int* vars = new int[nDimensions]; int iDim = 0; - for (auto& v : hist.FindMember("vars")->value.GetArray()) { + for (const auto& v : hist.FindMember("vars")->value.GetArray()) { LOG(debug) << "iDim " << iDim << ": " << v.GetString(); vars[iDim++] = VarManager::fgVarNamesMap[v.GetString()]; } @@ -2765,45 +2763,46 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch int* nBins = nullptr; double* xmin = nullptr; double* xmax = nullptr; - TArrayD* binLimits = nullptr; + std::vector binLimitsVec; if (isConstantBinning) { nBins = new int[nDimensions]; xmin = new double[nDimensions]; xmax = new double[nDimensions]; - int iDim = 0; - for (auto& v : hist.FindMember("nBins")->value.GetArray()) { + iDim = 0; + for (const auto& v : hist.FindMember("nBins")->value.GetArray()) { nBins[iDim++] = v.GetInt(); LOG(debug) << "nBins " << iDim << ": " << nBins[iDim - 1]; } iDim = 0; - for (auto& v : hist.FindMember("xmin")->value.GetArray()) { + for (const auto& v : hist.FindMember("xmin")->value.GetArray()) { xmin[iDim++] = v.GetDouble(); LOG(debug) << "xmin " << iDim << ": " << xmin[iDim - 1]; } iDim = 0; - for (auto& v : hist.FindMember("xmax")->value.GetArray()) { + for (const auto& v : hist.FindMember("xmax")->value.GetArray()) { xmax[iDim++] = v.GetDouble(); LOG(debug) << "xmax " << iDim << ": " << xmax[iDim - 1]; } } else { - int iDim = 0; - binLimits = new TArrayD[nDimensions]; - for (auto& v : hist.FindMember("binLimits")->value.GetArray()) { - double* lims = new double[v.GetArray().Size()]; + iDim = 0; + binLimitsVec.resize(nDimensions); + for (const auto& v : hist.FindMember("binLimits")->value.GetArray()) { + auto* lims = new double[v.GetArray().Size()]; int iElem = 0; - for (auto& lim : v.GetArray()) { + for (const auto& lim : v.GetArray()) { lims[iElem++] = lim.GetDouble(); } - binLimits[iDim++] = TArrayD(v.GetArray().Size(), lims); + binLimitsVec[iDim++] = TArrayD(v.GetArray().Size(), lims); + delete[] lims; } } - TString* axLabels = nullptr; + std::vector axLabelsVec; if (hist.HasMember("axLabels")) { - axLabels = new TString[hist.FindMember("axLabels")->value.GetArray().Size()]; - int iDim = 0; - for (auto& v : hist.FindMember("axLabels")->value.GetArray()) { - axLabels[iDim++] = v.GetString(); + axLabelsVec.resize(hist.FindMember("axLabels")->value.GetArray().Size()); + iDim = 0; + for (const auto& v : hist.FindMember("axLabels")->value.GetArray()) { + axLabelsVec[iDim++] = v.GetString(); } } @@ -2812,15 +2811,24 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch bool isDouble = (hist.HasMember("isDouble") ? hist.FindMember("isDouble")->value.GetBool() : false); if (isConstantBinning) { - for (auto histClass : histClasses) { - hm->AddHistogram(histClass, histName, title, nDimensions, vars, nBins, xmin, xmax, axLabels, varW, useSparse, isDouble); + for (const auto& histClass : histClasses) { + hm->AddHistogram(histClass, histName, title, nDimensions, vars, nBins, xmin, xmax, + axLabelsVec.empty() ? nullptr : axLabelsVec.data(), varW, useSparse, isDouble); } } else { - for (auto histClass : histClasses) { - hm->AddHistogram(histClass, histName, title, nDimensions, vars, binLimits, axLabels, varW, useSparse, isDouble); + for (const auto& histClass : histClasses) { + hm->AddHistogram(histClass, histName, title, nDimensions, vars, binLimitsVec.data(), + axLabelsVec.empty() ? nullptr : axLabelsVec.data(), varW, useSparse, isDouble); } } + delete[] vars; + if (isConstantBinning) { + delete[] nBins; + delete[] xmin; + delete[] xmax; + } + } else { // TH1, TH2 or TH3 LOG(debug) << "is TH1, TH2 or TH3 "; @@ -2843,7 +2851,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch std::vector xbinsVec; if (hist.HasMember("xbins")) { LOG(debug) << "xbins: "; - for (auto& v : hist.FindMember("xbins")->value.GetArray()) { + for (const auto& v : hist.FindMember("xbins")->value.GetArray()) { xbinsVec.push_back(v.GetDouble()); LOG(debug) << v.GetDouble(); } @@ -2864,7 +2872,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch std::vector ybinsVec; if (hist.HasMember("ybins")) { LOG(debug) << "ybins: "; - for (auto& v : hist.FindMember("ybins")->value.GetArray()) { + for (const auto& v : hist.FindMember("ybins")->value.GetArray()) { ybinsVec.push_back(v.GetDouble()); LOG(debug) << v.GetDouble(); } @@ -2885,7 +2893,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch std::vector zbinsVec; if (hist.HasMember("zbins")) { LOG(debug) << "zbins: "; - for (auto& v : hist.FindMember("zbins")->value.GetArray()) { + for (const auto& v : hist.FindMember("zbins")->value.GetArray()) { zbinsVec.push_back(v.GetDouble()); LOG(debug) << v.GetDouble(); } @@ -2913,7 +2921,7 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch LOG(debug) << "isFillLabelx: " << isFillLabelx; if (isConstantBinning) { - for (auto histClass : histClasses) { + for (const auto& histClass : histClasses) { hm->AddHistogram(histClass, histName, title, isProfile, nXbins, xmin, xmax, VarManager::fgVarNamesMap[varX], nYbins, ymin, ymax, VarManager::fgVarNamesMap[varY], @@ -2922,13 +2930,10 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch VarManager::fgVarNamesMap[varT], VarManager::fgVarNamesMap[varW], isdouble, isFillLabelx); } } else { - int xBinsSize = xbinsVec.size(); - if (xBinsSize != (nXbins + 1)) { + if (static_cast(xbinsVec.size()) != (nXbins + 1)) { LOG(fatal) << "Histogram not properly defined in the JSON file. Wrong x binning for histogram"; continue; } - double* xbins = new double[xbinsVec.size()]; - std::copy(xbinsVec.begin(), xbinsVec.end(), xbins); double* ybins = nullptr; if (isTH2 || isTH3) { @@ -2936,22 +2941,20 @@ void o2::aod::dqhistograms::AddHistogramsFromJSON(HistogramManager* hm, const ch LOG(fatal) << "Histogram not properly defined in the JSON file. Wrong y binning for histogram"; continue; } - ybins = new double[ybinsVec.size()]; - std::copy(ybinsVec.begin(), ybinsVec.end(), ybins); + ybins = ybinsVec.data(); } double* zbins = nullptr; if (isTH3) { - if (static_cast(zbinsVec.size()) != (nZbins + 1)) { + if (static_cast(zbinsVec.size()) != (nZbins + 1)) { LOG(fatal) << "Histogram not properly defined in the JSON file. Wrong z binning for histogram"; continue; } - zbins = new double[zbinsVec.size()]; - std::copy(zbinsVec.begin(), zbinsVec.end(), zbins); + zbins = zbinsVec.data(); } - for (auto histClass : histClasses) { + for (const auto& histClass : histClasses) { hm->AddHistogram(histClass, histName, title, isProfile, - nXbins, xbins, VarManager::fgVarNamesMap[varX], + nXbins, xbinsVec.data(), VarManager::fgVarNamesMap[varX], nYbins, ybins, VarManager::fgVarNamesMap[varY], nZbins, zbins, VarManager::fgVarNamesMap[varZ], xLabels, yLabels, zLabels,