3 #if !defined(__CINT__) || defined(__MAKECINT__)
5 #include "AliPWG0Helper.h"
6 #include "dNdEtaAnalysis.h"
7 #include "AlidNdEtaCorrection.h"
19 void SetRanges(TAxis* axis)
21 if (strcmp(axis->GetTitle(), "#eta") == 0)
22 axis->SetRangeUser(-1.7999, 1.7999);
23 if (strcmp(axis->GetTitle(), "p_{T} [GeV/c]") == 0)
24 axis->SetRangeUser(0, 9.9999);
25 if (strcmp(axis->GetTitle(), "vtx z [cm]") == 0)
26 axis->SetRangeUser(-15, 14.9999);
27 if (strcmp(axis->GetTitle(), "Ntracks") == 0)
28 axis->SetRangeUser(0, 99.9999);
31 void SetRanges(TH1* hist)
33 SetRanges(hist->GetXaxis());
34 SetRanges(hist->GetYaxis());
35 SetRanges(hist->GetZaxis());
38 void Prepare3DPlot(TH3* hist)
40 hist->GetXaxis()->SetTitleOffset(1.5);
41 hist->GetYaxis()->SetTitleOffset(1.5);
42 hist->GetZaxis()->SetTitleOffset(1.5);
44 hist->SetStats(kFALSE);
47 void Prepare2DPlot(TH2* hist)
49 hist->SetStats(kFALSE);
50 hist->GetYaxis()->SetTitleOffset(1.4);
55 void Prepare1DPlot(TH1* hist)
57 hist->SetLineWidth(2);
58 hist->SetStats(kFALSE);
65 gPad->Range(0, 0, 1, 1);
66 gPad->SetLeftMargin(0.15);
67 //gPad->SetRightMargin(0.05);
68 //gPad->SetTopMargin(0.13);
69 //gPad->SetBottomMargin(0.1);
77 gPad->Range(0, 0, 1, 1);
78 gPad->SetRightMargin(0.15);
79 gPad->SetLeftMargin(0.12);
87 TFile* file = TFile::Open("systematics.root");
89 TH3F* secondaries = dynamic_cast<TH3F*> (file->Get("fSecondaries"));
92 printf("Could not read histogram\n");
96 for (Int_t ptBin=1; ptBin<=secondaries->GetNbinsZ(); ptBin++)
97 //for (Int_t ptBin = 1; ptBin<=2; ptBin++)
99 TGraph* graph = new TGraph;
101 graph->SetTitle(Form("%f < p_{T} < %f", secondaries->GetZaxis()->GetBinLowEdge(ptBin), secondaries->GetZaxis()->GetBinUpEdge(ptBin)));
103 for (Int_t cBin=1; cBin<=secondaries->GetNbinsY(); ++cBin)
105 if (secondaries->GetBinContent(0, cBin, ptBin) > 0)
106 printf("WARNING: Underflow bin not empty!");
107 if (secondaries->GetBinContent(secondaries->GetNbinsX()+1, cBin, ptBin) > 0)
108 printf("WARNING: Overflow bin not empty!");
112 for (Int_t nBin=1; nBin<=secondaries->GetNbinsX(); ++nBin)
114 //printf("%f %f\n", secondaries->GetXaxis()->GetBinCenter(nBin), secondaries->GetBinContent(nBin, cBin, ptBin));
115 sum += secondaries->GetXaxis()->GetBinCenter(nBin) * secondaries->GetBinContent(nBin, cBin, ptBin);
116 count += secondaries->GetBinContent(nBin, cBin, ptBin);
119 printf("%f %f\n", sum, count);
122 graph->SetPoint(graph->GetN(), secondaries->GetYaxis()->GetBinCenter(cBin), sum / count);
126 graph->SetMarkerStyle(21);
134 gSystem->Load("libPWG0base");
136 AlidNdEtaCorrection* fdNdEtaCorrection[4];
138 TFile::Open("systematics.root");
140 for (Int_t i=0; i<4; ++i)
143 name.Form("correction_%d", i);
144 fdNdEtaCorrection[i] = new AlidNdEtaCorrection(name, name);
145 fdNdEtaCorrection[i]->LoadHistograms("systematics.root", name);
148 //fdNdEtaCorrection[0]->GetTrack2ParticleCorrection()->GetMeasuredHistogram()->Scale(2);
149 //fdNdEtaCorrection[0]->GetTrack2ParticleCorrection()->GetGeneratedHistogram()->Scale(2);
151 AlidNdEtaCorrection* finalCorrection = new AlidNdEtaCorrection("dndeta_correction", "dndeta_correction");
153 TList* collection = new TList;
155 for (Int_t i=0; i<4; ++i)
156 collection->Add(fdNdEtaCorrection[i]);
158 finalCorrection->Merge(collection);
162 finalCorrection->Finish();
164 TFile* file = TFile::Open("temp.root", "RECREATE");
165 finalCorrection->SaveHistograms();
169 gROOT->ProcessLine(".L drawPlots.C");
170 Track2Particle1D("temp.root");
173 void drawSystematics()