Skip to content

Commit 0574397

Browse files
authored
fixes of headers
1 parent 0c5d342 commit 0574397

1 file changed

Lines changed: 44 additions & 39 deletions

File tree

‎DPG/Tasks/AOTEvent/macros/plotBcOccupancyQa.C‎

Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
/// \author Igor Altsybeev <Igor.Altsybeev@cern.ch>
2121

2222
#include <TCanvas.h>
23+
#include <TColor.h>
2324
#include <TDirectory.h>
2425
#include <TFile.h>
2526
#include <TH1.h>
@@ -30,24 +31,28 @@
3031
#include <TString.h>
3132
#include <TStyle.h>
3233

34+
#include <Rtypes.h>
35+
3336
#include <algorithm>
37+
#include <array>
3438
#include <cstdio>
3539
#include <memory>
36-
#include <string>
3740
#include <vector>
3841

3942
namespace bcoccqa
4043
{
41-
TDirectory* gDir = nullptr;
42-
4344
// histogram from the task directory (or from one of its subdirectories), detached from the file
4445
template <typename T>
45-
T* getHist(const char* name)
46+
T* getHist(TDirectory* dir, const char* name)
4647
{
47-
TObject* obj = gDir->Get(name);
48+
TObject* obj = dir->Get(name);
4849
if (!obj) {
49-
for (TObject* key : *gDir->GetListOfKeys()) {
50-
if (auto* sub = dynamic_cast<TDirectory*>(static_cast<TKey*>(key)->ReadObj())) {
50+
for (TObject* key : *dir->GetListOfKeys()) {
51+
auto* tkey = dynamic_cast<TKey*>(key);
52+
if (!tkey) {
53+
continue;
54+
}
55+
if (auto* sub = dynamic_cast<TDirectory*>(tkey->ReadObj())) {
5156
obj = sub->Get(name);
5257
if (obj) {
5358
break;
@@ -69,9 +74,9 @@ T* getHist(const char* name)
6974
}
7075

7176
// fraction of BCs per bin: numerator / denominator (binomial errors)
72-
TH1D* makeRatio(const TH1* num, const TH1* den, const char* name, const char* title)
77+
TH1* makeRatio(const TH1* num, const TH1* den, const char* name, const char* title)
7378
{
74-
auto* r = static_cast<TH1D*>(num->Clone(name));
79+
auto* r = dynamic_cast<TH1*>(num->Clone(name));
7580
r->SetTitle(title);
7681
r->Divide(num, den, 1., 1., "B");
7782
r->SetStats(false);
@@ -95,7 +100,7 @@ double upperEdgeOfFilledRange(const TH1* h)
95100
void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char* outPdf = "bcOccupancyQa.pdf", const char* dirName = "bc-occupancy-qa-task", const char* outRoot = "")
96101
{
97102
using namespace bcoccqa;
98-
TH1::AddDirectory(kFALSE);
103+
TH1::AddDirectory(false);
99104
gStyle->SetOptStat(0);
100105
gStyle->SetPalette(kViridis);
101106

@@ -104,34 +109,34 @@ void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char
104109
std::printf("cannot open %s\n", fileName);
105110
return;
106111
}
107-
gDir = f->GetDirectory(dirName);
108-
if (!gDir) {
112+
TDirectory* dir = f->GetDirectory(dirName);
113+
if (!dir) {
109114
std::printf("directory %s not found in %s\n", dirName, fileName);
110115
return;
111116
}
112117

113-
auto* hBcCounter = getHist<TH1>("hBcCounter");
114-
auto* hNumCollsInBC = getHist<TH1>("hNumCollsInBC");
115-
auto* hNumCollsInRof = getHist<TH1>("hNumCollsInRof");
116-
auto* hNumCollsInRofVsInBC = getHist<TH2>("hNumCollsInRofVsInBC");
117-
auto* hNumCollsInRofUpcMode = getHist<TH1>("hNumCollsInRofUpcMode");
118-
auto* hBcInTF = getHist<TH1>("hBcInTF");
119-
auto* hBcInTFDefined = getHist<TH1>("hBcInTFOccupancyDefined");
120-
auto* hOccTracks = getHist<TH1>("hOccupancyByTracks");
121-
auto* hOccFT0C = getHist<TH1>("hOccupancyByFT0C");
122-
auto* hOccTracksVsFT0C = getHist<TH2>("hOccupancyByTracksVsFT0C");
123-
auto* hMedianTime = getHist<TH1>("hMedianTime");
124-
auto* pOccVsBcInTF = getHist<TProfile>("pOccupancyByTracksVsBcInTF");
125-
auto* pOccVsBcInOrbit = getHist<TProfile>("pOccupancyByTracksVsBcInOrbit");
126-
auto* hFlags = getHist<TH1>("hOccupancyFlags");
127-
auto* hFlagsVsOcc = getHist<TH2>("hOccupancyFlagsVsOccupancyByTracks");
128-
auto* hBcIndexCheck = getHist<TH1>("hBcIndexCheck");
118+
auto* hBcCounter = getHist<TH1>(dir, "hBcCounter");
119+
auto* hNumCollsInBC = getHist<TH1>(dir, "hNumCollsInBC");
120+
auto* hNumCollsInRof = getHist<TH1>(dir, "hNumCollsInRof");
121+
auto* hNumCollsInRofVsInBC = getHist<TH2>(dir, "hNumCollsInRofVsInBC");
122+
auto* hNumCollsInRofUpcMode = getHist<TH1>(dir, "hNumCollsInRofUpcMode");
123+
auto* hBcInTF = getHist<TH1>(dir, "hBcInTF");
124+
auto* hBcInTFDefined = getHist<TH1>(dir, "hBcInTFOccupancyDefined");
125+
auto* hOccTracks = getHist<TH1>(dir, "hOccupancyByTracks");
126+
auto* hOccFT0C = getHist<TH1>(dir, "hOccupancyByFT0C");
127+
auto* hOccTracksVsFT0C = getHist<TH2>(dir, "hOccupancyByTracksVsFT0C");
128+
auto* hMedianTime = getHist<TH1>(dir, "hMedianTime");
129+
auto* pOccVsBcInTF = getHist<TProfile>(dir, "pOccupancyByTracksVsBcInTF");
130+
auto* pOccVsBcInOrbit = getHist<TProfile>(dir, "pOccupancyByTracksVsBcInOrbit");
131+
auto* hFlags = getHist<TH1>(dir, "hOccupancyFlags");
132+
auto* hFlagsVsOcc = getHist<TH2>(dir, "hOccupancyFlagsVsOccupancyByTracks");
133+
auto* hBcIndexCheck = getHist<TH1>(dir, "hBcIndexCheck");
129134
// aod::BcOccs, and its comparison with aod::BcOccsAll
130-
auto* hBcOccsCounter = getHist<TH1>("BcOccs/hBcCounter");
131-
auto* hBcOccsOccTracks = getHist<TH1>("BcOccs/hOccupancyByTracks");
132-
auto* hBcOccsOccTracksVsFT0C = getHist<TH2>("BcOccs/hOccupancyByTracksVsFT0C");
133-
auto* hBcOccsFlags = getHist<TH1>("BcOccs/hOccupancyFlags");
134-
auto* hBcOccsVsBcOccsAll = getHist<TH1>("BcOccsVsBcOccsAll/hCheck");
135+
auto* hBcOccsCounter = getHist<TH1>(dir, "BcOccs/hBcCounter");
136+
auto* hBcOccsOccTracks = getHist<TH1>(dir, "BcOccs/hOccupancyByTracks");
137+
auto* hBcOccsOccTracksVsFT0C = getHist<TH2>(dir, "BcOccs/hOccupancyByTracksVsFT0C");
138+
auto* hBcOccsFlags = getHist<TH1>(dir, "BcOccs/hOccupancyFlags");
139+
auto* hBcOccsVsBcOccsAll = getHist<TH1>(dir, "BcOccsVsBcOccsAll/hCheck");
135140

136141
// ### summary
137142
std::printf("\n=== BC occupancy QA: %s ===\n", fileName);
@@ -272,7 +277,7 @@ void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char
272277
c = newPage("cOccupancyFlags", "occupancy flags", 1200, 550, 2, 1);
273278
if (hFlags && hFlags->GetBinContent(1) > 0) {
274279
c->cd(1)->SetBottomMargin(0.3);
275-
auto* hFlagsFrac = static_cast<TH1*>(hFlags->Clone("hFlagsFrac"));
280+
auto* hFlagsFrac = dynamic_cast<TH1*>(hFlags->Clone("hFlagsFrac"));
276281
hFlagsFrac->Scale(1. / hFlags->GetBinContent(1));
277282
hFlagsFrac->SetTitle("fraction of BCs passing each flag;;fraction of BCs");
278283
hFlagsFrac->GetXaxis()->LabelsOption("v");
@@ -284,13 +289,13 @@ void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char
284289
if (hFlagsVsOcc) {
285290
// fraction of BCs passing each flag vs occupancy
286291
c->cd(2);
287-
TLegend* leg = new TLegend(0.45, 0.6, 0.89, 0.89);
292+
auto* leg = new TLegend(0.45, 0.6, 0.89, 0.89);
288293
TH1D* hAll = hFlagsVsOcc->ProjectionY("hFlagsAll", 1, 1);
289-
const int colors[] = {kRed + 1, kOrange + 7, kGreen + 2, kAzure + 2, kBlue + 2, kMagenta + 1, kBlack};
294+
const std::array<int, 7> colors = {kRed + 1, kOrange + 7, kGreen + 2, kAzure + 2, kBlue + 2, kMagenta + 1, kBlack};
290295
bool first = true;
291296
for (int i = 2; i <= hFlagsVsOcc->GetNbinsX(); i++) {
292297
TH1D* hPass = hFlagsVsOcc->ProjectionY(Form("hFlagPass%d", i), i, i);
293-
TH1D* hFrac = makeRatio(hPass, hAll, Form("hFracVsOccupancy_%s", hFlagsVsOcc->GetXaxis()->GetBinLabel(i)), "fraction of BCs passing the flags vs occupancy;occupancy by ITS tracks;fraction of BCs");
298+
TH1* hFrac = makeRatio(hPass, hAll, Form("hFracVsOccupancy_%s", hFlagsVsOcc->GetXaxis()->GetBinLabel(i)), "fraction of BCs passing the flags vs occupancy;occupancy by ITS tracks;fraction of BCs");
294299
hFrac->SetLineColor(colors[(i - 2) % 7]);
295300
hFrac->SetMarkerColor(colors[(i - 2) % 7]);
296301
hFrac->SetMarkerStyle(20);
@@ -310,7 +315,7 @@ void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char
310315
c = newPage("cBcPosition", "BC position in the TF and in the orbit", 1200, 800, 1, 3);
311316
if (hBcInTF && hBcInTFDefined) {
312317
c->cd(1);
313-
TH1D* hFracDefined = makeRatio(hBcInTFDefined, hBcInTF, "hFracDefined", "fraction of BCs with calculated occupancy;BC in TF;fraction");
318+
TH1* hFracDefined = makeRatio(hBcInTFDefined, hBcInTF, "hFracDefined", "fraction of BCs with calculated occupancy;BC in TF;fraction");
314319
hFracDefined->SetMinimum(0.);
315320
hFracDefined->SetMaximum(1.1);
316321
hFracDefined->Draw("hist");
@@ -336,7 +341,7 @@ void plotBcOccupancyQa(const char* fileName = "AnalysisResults.root", const char
336341
}
337342
if (hBcOccsFlags && hBcOccsFlags->GetBinContent(1) > 0) {
338343
c->cd(2)->SetBottomMargin(0.3);
339-
auto* hFlagsFracBcOccs = static_cast<TH1*>(hBcOccsFlags->Clone("BcOccs_hFlagsFrac"));
344+
auto* hFlagsFracBcOccs = dynamic_cast<TH1*>(hBcOccsFlags->Clone("BcOccs_hFlagsFrac"));
340345
hFlagsFracBcOccs->Scale(1. / hBcOccsFlags->GetBinContent(1));
341346
hFlagsFracBcOccs->SetTitle("BcOccs: fraction of BCs passing each flag;;fraction of BCs");
342347
hFlagsFracBcOccs->GetXaxis()->LabelsOption("v");

0 commit comments

Comments
 (0)