1 static const Int_t nCentralityBins = 9;
2 TString strCentrality[nCentralityBins] = {"0-5","5-10","10-20",
3 "20-30","30-40","40-50",
4 "50-60","60-70","70-80"};
5 TString strCentralityBinsLabel[nCentralityBins] = {"Centrality: 0-5%",
13 "Centrality: 70-80%"};
15 //void drawCorrection(const char* filenameEffCont = "AnalysisResults_HIJING.root"){
17 void drawCorrection(const char* filenameEffCont = "mergedAnalysisResults_proofPbPb_128.root"){
19 gStyle->SetOptTitle(1);
20 gStyle->SetOptStat(0);
21 //gSystem->Load("libANALYSIS");
22 //gSystem->Load("libANALYSISalice");
23 Int_t markerStyle = 20;
24 Int_t markerColor = 1;
27 //_______________________________________________________________//
29 TFile *f = TFile::Open(filenameEffCont);
31 Printf("File not found!!!");
35 //_______________________________________________________________//
36 //Get the TDirectoryFile
37 TDirectoryFile *dirEffCont = dynamic_cast<TDirectoryFile *>(f->Get("PWGCFEbyE.outputBalanceFunctionEffContAnalysis"));
39 Printf("TDirectoryFile not found!!!");
43 //_______________________________________________________________//
44 TList *listEffCont[nCentralityBins];
50 TH3D* h1d[nCentralityBins];
51 TH3D* h1n[nCentralityBins];
52 TH3D* h2d[nCentralityBins];
53 TH3D* h2n[nCentralityBins];
54 TH3F* h3d[nCentralityBins];
55 TH3F* h4d[nCentralityBins];
56 TH3F* fHistCorrectionPlus[nCentralityBins];
57 TH3F* fHistCorrectionMinus[nCentralityBins];
59 TCanvas *correctionMatrix[nCentralityBins];
62 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
63 Printf("================Centrality: %s================", strCentrality[iBin].Data());
65 listName = "listEffContBF_V0M_"; listName += strCentrality[iBin].Data(); listName +="_10";
66 listName1 = "listQA_V0M_"; listName1 += strCentrality[iBin].Data(); listName1 +="_10";
67 listEffCont[iBin] = dynamic_cast<TList *>(dirEffCont->Get(listName.Data()));
68 listEffCont[iBin]->ls();
70 //____________Efficiency Plus
72 h1d[iBin] = dynamic_cast<TH3D*>(listEffCont[iBin]->FindObject("fHistGeneratedEtaPtPhiPlus"));
74 h1n[iBin] = dynamic_cast<TH3D*>(listEffCont[iBin]->FindObject("fHistSurvivedEtaPtPhiPlus"));
76 h1n[iBin]->Divide(h1d[iBin]);
77 //h1d->GetYaxis()->SetTitleOffset(1.5);
78 //h1d->SetTitle("Efficiency (+)");
79 //h1d->SetName("fHistEfficiencyPlus");
82 //____________Efficiency Minus
84 h2d[iBin] = dynamic_cast<TH3D*>(listEffCont[iBin]->FindObject("fHistGeneratedEtaPtPhiMinus"));
86 h2n[iBin] = dynamic_cast<TH3D*>(listEffCont[iBin]->FindObject("fHistSurvivedEtaPtPhiMinus"));
88 h2n[iBin]->Divide(h2d[iBin]);
89 //h2d->GetYaxis()->SetTitleOffset(1.5);
90 //h2d->SetTitle("Efficiency (-)");
91 //h2d->SetName("fHistEfficiencyMinus");
94 //__________Contamination
96 h4d[iBin] = dynamic_cast<TH3F*>(listEffCont[iBin]->FindObject("fHistContaminationPrimaries"));
97 h4d[iBin]->SetName("fHistContaminationPrimaries");
100 h3d[iBin] = dynamic_cast<TH3F*>(listEffCont[iBin]->FindObject("fHistContaminationSecondaries"));
101 h3d[iBin]->SetName("fHistContaminationSecondaries");
104 h4d[iBin]->Add(h3d[iBin]);
105 h3d[iBin]->Divide(h4d[iBin]);
106 //h3d->GetYaxis()->SetTitleOffset(2.0);
107 //h3d->GetXaxis()->SetTitleOffset(1.5);
108 //h3d->SetTitle("Contamination Secondaries");
111 //_____________________________________________________________
114 Int_t binsX = h3d[0]->GetNbinsX();
115 Int_t binsY = h3d[0]->GetNbinsY();
116 Int_t binsZ = h3d[0]->GetNbinsZ();
118 for (Int_t iHistBinsX = 1; iHistBinsX <binsX+1 ; iHistBinsX++) {
119 for (Int_t iHistBinsY = 1; iHistBinsY <binsY+1 ; iHistBinsY++) {
120 for (Int_t iHistBinsZ = 1; iHistBinsZ <binsZ+1 ; iHistBinsZ++) {
121 h3d[iBin]->SetBinContent(iHistBinsX,iHistBinsY,iHistBinsZ,1 - h3d[iBin]->GetBinContent(iHistBinsX,iHistBinsY,iHistBinsZ));
126 correctionMatrix[iBin] = new TCanvas(canvasName.Data(),canvasName.Data(),0,0+iBin*50,1400,1000);
127 correctionMatrix[iBin]->Divide(2,1);
129 //Correction Maps Plus
130 histName = "fHistCorrectionPlus";
131 histName += strCentrality[iBin].Data();
132 correctionMatrix[iBin]->cd(1);
133 fHistCorrectionPlus[iBin] = dynamic_cast<TH3F *>(h3d[iBin]->Clone());
134 fHistCorrectionPlus[iBin]->Divide(h1n[iBin]);
135 fHistCorrectionPlus[iBin]->SetName(histName.Data());
136 fHistCorrectionPlus[iBin]->GetYaxis()->SetTitleOffset(2.0);
137 fHistCorrectionPlus[iBin]->GetXaxis()->SetTitleOffset(1.5);
138 fHistCorrectionPlus[iBin]->GetZaxis()->SetTitleOffset(2.0);
139 fHistCorrectionPlus[iBin]->SetTitle("Correction Plus");
140 fHistCorrectionPlus[iBin]->DrawCopy("");
142 //Correction Maps Minus
143 histName1 = "fHistCorrectionMinus";
144 histName1 += strCentrality[iBin].Data();
145 correctionMatrix[iBin]->cd(2);
146 fHistCorrectionMinus[iBin] = dynamic_cast<TH3F *>(h3d[iBin]->Clone());
147 fHistCorrectionMinus[iBin]->Divide(h2n[iBin]);
148 fHistCorrectionMinus[iBin]->SetName(histName1.Data());
149 fHistCorrectionMinus[iBin]->GetYaxis()->SetTitleOffset(2.0);
150 fHistCorrectionMinus[iBin]->GetXaxis()->SetTitleOffset(1.5);
151 fHistCorrectionMinus[iBin]->GetZaxis()->SetTitleOffset(2.0);
152 fHistCorrectionMinus[iBin]->SetTitle("Correction Minus");
153 fHistCorrectionMinus[iBin]->DrawCopy("");
156 //____________________________________________________________
158 TFile *fCorrectionMaps = TFile::Open("CorrectionMaps.root",
161 for(Int_t iBin = 0; iBin < nCentralityBins; iBin++) {
162 fHistCorrectionPlus[iBin]->Write();
163 fHistCorrectionMinus[iBin]->Write();
165 fCorrectionMaps->Close();