]>
Commit | Line | Data |
---|---|---|
02475213 | 1 | #if !defined(__CINT__) || defined(__MAKECINT__) |
2 | #include <TFile.h> | |
3 | #include <TH1F.h> | |
4 | #include <TH2F.h> | |
5 | #include <TH3D.h> | |
6 | #include <Riostream.h> | |
7 | #include <TCanvas.h> | |
8 | #include <TGraphErrors.h> | |
9 | #include <TGrid.h> | |
10 | #include <TFileMerger.h> | |
11 | #include <TMultiGraph.h> | |
12 | #include <TROOT.h> | |
13 | #include <TString.h> | |
14 | #include <TStyle.h> | |
15 | #include <TLegend.h> | |
16 | #include <TGridCollection.h> | |
17 | #include <TROOT.h> | |
18 | #include <TGridResult.h> | |
19 | #include <TClonesArray.h> | |
20 | #include <TObjString.h> | |
21 | #include <stdio.h> | |
22 | #include <fstream> | |
23 | #include <iostream> | |
24 | #include "AliEMCALGeometry.h" | |
25 | #endif | |
26 | using namespace std; | |
27 | ||
28 | ||
29 | ||
30 | // Macro to do some EMCAL QA plots (from QA outputs (QAresults.root) of the QA train (AliAnaCalorimeterQA task) ) | |
31 | // | |
32 | // | |
33 | // 1. macro needs AliEMCALGeometry to compute maps | |
34 | ||
35 | // 2. this macro makes the QA plots for | |
36 | // - period or single runs | |
37 | // | |
38 | // 3. to use it you should have the | |
39 | //- QAresults.root files in period/pass/runnumber.root | |
40 | //- and if you are running in period mode a runlist.txt | |
41 | // file in the same directory: period/pass/runlist.txt | |
42 | // were runlist is the list of the runs you want to check | |
43 | // | |
44 | // 4. To save the plots you must create prior tu usig the macro in the | |
45 | // period/pass/ directory as many subdirectories as number of runs | |
46 | // with the name runnumber | |
47 | // all gif files will be saved in those subdirectories | |
48 | // | |
49 | // | |
50 | // 5. The trigger corresponds to the name of the output directory in the root | |
51 | // file so | |
52 | // "EMC7" for EMC triggers and "default" for AnyInt (Minbias) | |
53 | // | |
54 | // Authors: Alexis Mas, M. Germain SUBATECH, | |
55 | ||
56 | ||
57 | void QAplots(TString fCalorimeter = "EMCAL", TString period = "LHC11h", TString pass = "pass1_HLT", TString trigger= "default"){ | |
58 | ||
59 | FILE * pFile; | |
60 | TString file = ""; | |
61 | if (trigger=="default") file = "/scratch/alicehp2/germain/QA/"+period+"/"+ pass + "/runlistMB.txt" ; | |
62 | else file = "/scratch/alicehp2/germain/QA/"+period+"/"+ pass + "/runlistEMC.txt" ; | |
63 | ||
64 | pFile = fopen(file.Data(), "r"); //open the text file where include the run list and correct run index | |
65 | ||
66 | cout << " fcalo: " << fCalorimeter << "; period: " << period << "; pass: " << pass << " trigger "<<trigger<< endl; | |
67 | ||
68 | Int_t p; | |
69 | Int_t q; | |
70 | Int_t ncols; | |
71 | Int_t nlines = 0 ; | |
72 | Int_t RunId[500] ; | |
73 | ||
74 | Double_t x[500] ; | |
75 | Double_t xrun[500] ; | |
76 | ||
77 | while (1){ | |
78 | ncols = fscanf(pFile,"%d %d ",&p,&q); | |
79 | if (ncols< 0) break; | |
80 | x[nlines]=p; | |
81 | RunId[nlines]=q; | |
82 | xrun[nlines]=1.*q; | |
83 | nlines++; | |
84 | } | |
85 | fclose(pFile); | |
86 | ||
87 | const Int_t nRun = nlines ; | |
88 | TString base ; | |
89 | for(Int_t i = 0 ; i < nRun ; i++) { | |
90 | base = "/scratch/alicehp2/germain/QA/"; | |
91 | base += period ; | |
92 | base += "/"; | |
93 | base += pass ; | |
94 | base += "/"; | |
95 | base += RunId[i] ; | |
96 | TString infile ; | |
97 | infile = base + ".root" ; | |
98 | TFile *f = TFile::Open(infile); | |
99 | DrawOccupancy(RunId[i],period,pass,trigger,f); | |
100 | DrawRun(RunId[i],period,pass,trigger,f); | |
101 | f->Close(); | |
102 | } | |
103 | } | |
104 | ||
105 | void QAplots(Int_t run, TString period ="LHC11h", TString pass="pass1_HLT", TString trigger= "default"){ | |
106 | TString base ; | |
107 | base = "/scratch/alicehp2/germain/QA/"; | |
108 | base += period ; | |
109 | base += "/"; | |
110 | base += pass ; | |
111 | base += "/"; | |
112 | base += run ; | |
113 | TString infile ; | |
114 | infile = base + ".root" ; | |
115 | TFile *f = TFile::Open(infile); | |
116 | DrawOccupancy(run,period,pass,trigger,f); | |
117 | DrawRun(run,period,pass,trigger,f); | |
118 | f->Close(); | |
119 | } | |
120 | ||
121 | void DrawOccupancy(Int_t run , TString period ="LHC11h", TString pass="pass1_HLT", TString trigger= "default", TFile *f =0x0){ | |
122 | TH2D *hEnergyMap = new TH2D("hEnergyMap","",96,-48,48,120,-0,120); | |
123 | TH2D *hOccupancyMap = new TH2D("hOccupancyMap","",96,-48,48,120,-0,120); | |
124 | TH2D *hEnergyMapReal = new TH2D("hEnergyMapReal","",96,-48,48,120,-0,120); | |
125 | TH2D *hOccupancyMapReal = new TH2D("hOccupancyMapReal","",96,-48,48,120,-0,120); | |
126 | hEnergyMapReal->SetXTitle("eta (bin)"); | |
127 | hEnergyMapReal->SetYTitle("phi (bin)"); | |
128 | hEnergyMapReal->SetZTitle("E(GeV)/event"); | |
129 | hEnergyMapReal->GetZaxis()->SetLabelSize(0.02); | |
130 | hOccupancyMapReal->SetXTitle("eta (bin)"); | |
131 | hOccupancyMapReal->SetZTitle("entries/evt"); | |
132 | hOccupancyMapReal->GetZaxis()->SetLabelSize(0.02); | |
133 | hOccupancyMapReal->SetXTitle("eta (bin)"); | |
134 | hEnergyMap->SetXTitle("eta (bin)"); | |
135 | hEnergyMap->SetYTitle("phi (bin)"); | |
136 | hOccupancyMap->SetXTitle("eta (bin)"); | |
137 | hOccupancyMap->SetYTitle("phi (bin)"); | |
138 | ||
139 | gStyle->SetPalette(1); | |
140 | gStyle->SetOptStat(0); | |
141 | ||
142 | AliEMCALGeometry *geom = new AliEMCALGeometry("EMCAL_COMPLETEv1","EMCAL"); | |
143 | Int_t nSupMod, nModule, nIphi, nIeta, nModulo, iRCU; | |
144 | Int_t iphi, ieta,jj,kk; | |
145 | Int_t icol, irow; | |
146 | Int_t bineta, binphi; | |
147 | Int_t realbineta, realbinphi; | |
148 | TVector3 vg, gg; | |
149 | Double_t eta, phi, glob[3]; | |
150 | ||
151 | ||
152 | //LHC11d | |
153 | //Int_t mask[224] = {74, 147, 152, 189, 191, 198, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 324, 491, 759, 917, 949, 1376, 1386, 1429, 1487, 1490, 1519, 1967, 2014, 2015, 2112, 2114, 2115, 2116, 2118, 2119, 2120, 2123, 2124, 2125, 2158, 2159, 2326, 2332, 2333, 2350, 2351, 2436, 2448, 2506, 2518, 2534, 2540, 2590, 2640, 2793, 2805, 2815, 2828, 2830, 2869, 2878, 2880, 2881, 2891, 2926, 2985, 3022, 3024, 3070, 3135, 3169, 3263, 3503, 4366, 4560, 4623, 6093, 6331, 6481, 7089, 7113, 7190, 7246, 7425, 7495, 7874,8358, 8811, 9024, 9269, 9302, 9387, 9696, 9697, 9698, 9699, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9710, 9711, 9748, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9815, 9819, 9824, 9828, 9829, 9830, 9831, 9832, 9834, 9835, 9836, 9837, 9838, 9839, 9850, 9872, 9874, 9875, 9877, 9878, 9879, 9881, 9882, 9883, 9888, 9890, 9891, 9894, 9896, 9897, 9898, 9899, 9902, 9927, 9938, 9939, 9942, 9943, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 10035, 10073, 10084, 10085, 10086, 10090, 10093, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10718, 10723, 10728, 10771, 10831, 11042, 11043, 11090, 11363, 22222222}; | |
154 | ||
155 | ||
156 | //LHC11e | |
157 | //Int_t mask[174] = {74, 152, 167, 191, 759, 1059, 1175, 1204, 1288, 1376, 1382, 1386, 1519, 1967, 1968, 2026, 2047, 2112, 2114, 2115, 2116, 2118, 2119, 2120, 2123, 2124, 2125, 2210, 2339, 2350, 2391, 2506, 2540, 2793, 2828, 2869, 2891, 2985, 3135, 3503, 4377, 4817, 5600, 5601, 5602, 5603, 5612, 5613, 5614, 5615, 5648, 5649, 5650, 5651, 5660, 5661, 5662, 5663, 5836, 6104, 6331, 6481, 7089, 7371, 7375, 7425, 7572, 7874, 8358, 9269, 9302, 9389, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9750, 9758, 9792, 9793, 9794, 9795, 9798, 9800, 9801, 9803, 9804, 9815, 9819, 9824, 9825, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9838, 9872, 9874, 9875, 9878, 9882, 9883, 9889, 9890, 9891, 9892, 9893, 9894, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9927, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9945, 9947, 9948, 9949, 9950, 9951, 10086, 10112, 10113, 10114, 10115, 10116, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10134, 10135, 10138, 10143, 10718, 10723, 10771, 11042, 11091, 11363, 2222222}; | |
158 | ||
159 | //LHC11f | |
160 | // Int_t mask[134] = {74, 152, 167, 759, 1204, 1267, 1288, 1376, 1382, 1386, 1424, 1519, 1967, 2026, 2047, 2112, 2114, 2115, 2116, 2118, 2119, 2120, 2123, 2124, 2125, 2506, 2540, 2793, 2828, 2869, 2891, 2985, 3135, 3503, 3785, 4817, 6104, 6331, 6481, 7371, 7375, 7425, 7572, 7874, 8218, 8220, 8222, 9269, 9282, 9302, 9455, 9698, 9699, 9700, 9701, 9702, 9703, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9748, 9758, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9803, 9804, 9805,9815, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9838, 9850, 9875, 9891, 9898, 9900, 9927, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9947, 9948, 9949, 9950, 9951, 10112, 10113, 10114, 10115, 10116, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10138, 10143, 10363, 10718, 10723, 11091, 11363, 2222222}; | |
161 | ||
162 | //NO MASK | |
163 | Int_t mask[1] = {2222222}; | |
164 | ||
165 | TH2F *hCellAmplitude; | |
166 | TH1F *hNEvents; | |
167 | Int_t Events; | |
168 | Int_t n=0; | |
169 | TString base = "/scratch/alicehp2/germain/QA/"; | |
170 | base += period ; | |
171 | base += "/"; | |
172 | base += pass ; | |
173 | base += "/"; | |
174 | base += run ; | |
175 | base += "/"; | |
176 | base += trigger; | |
177 | // TString infile ; | |
178 | //infile = base + ".root" ; | |
179 | //*f = TFile::Open(infile); | |
180 | TString direct = "CaloQA_"; | |
181 | direct += trigger; | |
182 | TDirectoryFile *dir = (TDirectoryFile *)f->Get(direct); | |
183 | TList *outputList = (TList*)dir->Get(direct); | |
184 | ||
185 | hNEvents =(TH1F *)outputList->FindObject("hNEvents"); | |
186 | Events = hNEvents->GetEntries(); | |
187 | hCellAmplitude =(TH2F *)outputList->FindObject("EMCAL_hAmpId"); | |
188 | //hCellAmplitude->Draw(); | |
189 | //TH2 *hCellAmplitude = (TH2*) gFile->Get("hCellAmplitude"); | |
190 | Double_t numb =0 ; | |
191 | Double_t Eth=0; | |
192 | Eth = 5.; | |
193 | if ( trigger=="EMC7") Eth=20.; | |
194 | ||
195 | ||
196 | for(Int_t i = 0; i < 11520 ; i++){ | |
197 | Double_t Esum = 0; | |
198 | Double_t Nsum = 0; | |
199 | Double_t EsumH = 0; | |
200 | Double_t NsumH = 0; | |
201 | Double_t Ratio = 0; | |
202 | ||
203 | for (Int_t j = 1; j <= hCellAmplitude->GetNbinsX(); j++) { | |
204 | Double_t E = hCellAmplitude->GetXaxis()->GetBinCenter(j); | |
205 | Double_t N = hCellAmplitude->GetBinContent(j, i+1); | |
206 | ||
207 | if (E < 0.07) continue; | |
208 | // if (E > 0.07) continue; | |
209 | ||
210 | if (E <= Eth) { | |
211 | Esum += E*N; | |
212 | Nsum += N; | |
213 | } | |
214 | else { | |
215 | EsumH += E*N; | |
216 | NsumH += N; | |
217 | } | |
218 | } | |
219 | ||
220 | if(NsumH > 100) Ratio = Nsum/NsumH ; | |
221 | // if(Nsum > 20000 && Nsum < 22000 ) cout<<" "<<i ; | |
222 | ||
223 | Int_t absId = i; | |
224 | if(n!=0) {if(mask[n]<=mask[n-1]) cout<<"not sorted list !!"<<endl;} | |
225 | if(i==mask[n]){n++ ; continue; } | |
226 | // if(Esum/(Double_t) Events > 0.5) cout<<"BAD : "<<i<<endl; | |
227 | ||
228 | // hBadCellMap->Fill(1) | |
229 | ||
230 | ||
231 | geom->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta); | |
232 | geom->GetCellPhiEtaIndexInSModule(nSupMod,nModule,nIphi,nIeta, iphi,ieta); | |
233 | ||
234 | realbinphi = 120-(nSupMod/2)*24 -iphi -1; | |
235 | ||
236 | ||
237 | if (nSupMod%2==0) realbineta= 48-ieta -1; | |
238 | if (nSupMod%2==1) realbineta= -ieta -1; | |
239 | ||
240 | // to do as usual (Gustavo) SM0 high left SM9 low right | |
241 | ||
242 | binphi = 96 - (nSupMod/2)*24 +iphi; | |
243 | if (nSupMod%2==1) bineta=ieta; | |
244 | /* | |
245 | Int_t compt; if(i==0) compt = 1; | |
246 | if(ieta==0){ cout<<compt <<endl ; compt ++;} | |
247 | */ | |
248 | if (nSupMod%2==0) bineta=ieta-48; | |
249 | ||
250 | ||
251 | ||
252 | hEnergyMapReal->Fill(realbineta,realbinphi,Esum/(Double_t)Events); | |
253 | hOccupancyMapReal->Fill(realbineta,realbinphi,Nsum/(Double_t)Events); | |
254 | // } | |
255 | ||
256 | } | |
257 | cout<<"N events : "<<Events<<endl; | |
258 | ||
259 | TString Energy ; Energy = base + "MapEnergy.pdf"; | |
260 | TString Entries ; Entries = base + "MapEntries.pdf"; | |
261 | TCanvas *c1 = new TCanvas("c1","energymap",800,800); | |
262 | c1->SetFillColor(0); | |
263 | c1->SetGrid(); | |
264 | c1->cd(); | |
265 | c1->SetRightMargin(0.14); | |
266 | TString title = "run "; | |
267 | title += run ; | |
268 | title += " Summed energy map"; | |
269 | if(trigger=="EMC7") title += " EMC "; | |
270 | hEnergyMapReal->SetTitle(title); | |
271 | if(trigger== "EMC7"){ | |
272 | hEnergyMapReal->SetMinimum(0.001); //FOR Esum EMC triggers | |
273 | hEnergyMapReal->SetMaximum(0.05); //FOR Esum | |
274 | }else{ | |
275 | hEnergyMapReal->SetMinimum(0.005); //FOR Esum MB | |
276 | hEnergyMapReal->SetMaximum(0.02); //FOR Esum | |
277 | } | |
278 | hEnergyMapReal->Draw("colz"); | |
279 | ||
280 | c1->cd(); | |
281 | c1->SaveAs(Energy); | |
282 | ||
283 | TCanvas *c2 = new TCanvas("c2","occupancy",800,800); | |
284 | //c2->SetLogz(); | |
285 | c2->SetFillColor(0); | |
286 | c2->SetGrid(); | |
287 | c2->cd(); | |
288 | c2->SetRightMargin(0.14); | |
289 | TString title2 = "run "; | |
290 | title2 += run ; | |
291 | title2 += " Occupancy map"; | |
292 | if(trigger=="EMC7") title2 += " EMC "; | |
293 | ||
294 | hOccupancyMapReal->SetTitle(title2); | |
295 | //SCALE USE FOR LHC11h modify fotr pp | |
296 | if(trigger== "EMC7"){ | |
297 | hOccupancyMapReal->SetMinimum(0.01); //FOR Nsum | |
298 | hOccupancyMapReal->SetMaximum(0.5);} //FOR Nsum} | |
299 | else{ | |
300 | hOccupancyMapReal->SetMinimum(0.01); //FOR Nsum | |
301 | hOccupancyMapReal->SetMaximum(0.1); //FOR Nsum | |
302 | } | |
303 | hOccupancyMapReal->Draw("colz"); | |
304 | c2->cd(); | |
305 | c2->SaveAs(Entries); | |
306 | c2->SaveAs(Entries2); | |
307 | ||
308 | } | |
309 | void DrawRun(const Int_t run = 167713, TString period ="LHC11h", TString pass="pass1_HLT", TString trigger= "default", TFile *f =0x0){ | |
310 | ||
311 | gStyle->SetPalette(1); | |
312 | TString base = "/scratch/alicehp2/germain/QA/"; | |
313 | base += period ; | |
314 | base += "/"; | |
315 | base += pass ; | |
316 | base += "/"; | |
317 | TString outfilename ; | |
318 | TString outfilename2 ; | |
319 | base += run ; | |
320 | base += "/" ; | |
321 | base += trigger ; | |
322 | char legend [100] ; | |
323 | char legend2 [100] ; | |
324 | TString direct = "CaloQA_"; | |
325 | direct += trigger; | |
326 | ||
327 | ||
328 | TDirectoryFile *dir = (TDirectoryFile *)f->Get(direct); | |
329 | TList *outputList = (TList*)dir->Get(direct); | |
330 | ||
331 | ||
332 | if (trigger =="EMC7"){ sprintf(legend,"Run %i EMC ",run);} | |
333 | else sprintf(legend,"Run %i ",run); | |
334 | ||
335 | ||
336 | ||
337 | hClusterTimeEnergy =(TH2F *)outputList->FindObject("EMCAL_hClusterTimeEnergy"); | |
338 | ||
339 | TString title3 =" Time Vs Energy"; | |
340 | title3 += legend ; | |
341 | hClusterTimeEnergy->SetStats(kFALSE); | |
342 | hClusterTimeEnergy->SetTitle(title3); | |
343 | ||
344 | hClusterVsTrack =(TH2F *)outputList->FindObject("EMCAL_hCaloTrackMNClusters"); | |
345 | hClusterVsTrack->SetStats(kFALSE); | |
346 | TString title3 =" N cluster Vs N track"; | |
347 | title3 += legend ; | |
348 | hClusterVsTrack->SetTitle(title3); | |
349 | ||
350 | ||
351 | hClusterEVsTrack =(TH2F *)outputList->FindObject("EMCAL_hCaloTrackMEClusters"); | |
352 | hClusterEVsTrack->SetStats(kFALSE); | |
353 | hClusterEVsTrack->SetTitle(legend); | |
354 | TString title3 =" Sum E cluster Vs N track"; | |
355 | title3 += legend ; | |
356 | hClusterEVsTrack->SetTitle(title3); | |
357 | ||
358 | ||
359 | hClusterEVsV0S =(TH2F *)outputList->FindObject("EMCAL_hCaloV0SEClusters"); | |
360 | hClusterEVsV0S->SetStats(kFALSE); | |
361 | TString title3 =" Sum E cluster Vs V0 signal"; | |
362 | title3 += legend ; | |
363 | hClusterEVsV0S->SetTitle(title3); | |
364 | ||
365 | ||
366 | hNCellsPerClusterMod0 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod0"); | |
367 | hNCellsPerClusterMod0->SetStats(kFALSE); | |
368 | ||
369 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 0",run);} | |
370 | else {sprintf(legend2,"Run %i Mod 0",run);} | |
371 | ||
372 | ||
373 | hNCellsPerClusterMod0->SetTitle(legend2); | |
374 | ||
375 | hNCellsPerClusterMod1 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod1"); | |
376 | hNCellsPerClusterMod1->SetStats(kFALSE); | |
377 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 1",run);} | |
378 | else {sprintf(legend2,"Run %i Mod 1",run);} | |
379 | ||
380 | ||
381 | hNCellsPerClusterMod1->SetTitle(legend2); | |
382 | ||
383 | hNCellsPerClusterMod2 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod2"); | |
384 | hNCellsPerClusterMod2->SetStats(kFALSE); | |
385 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 2",run);} | |
386 | else {sprintf(legend2,"Run %i Mod 2",run);} | |
387 | ||
388 | hNCellsPerClusterMod2->SetTitle(legend2); | |
389 | ||
390 | hNCellsPerClusterMod3 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod3"); | |
391 | hNCellsPerClusterMod3->SetStats(kFALSE); | |
392 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 3",run);} | |
393 | else {sprintf(legend2,"Run %i Mod 3",run);} | |
394 | ||
395 | hNCellsPerClusterMod3->SetTitle(legend2); | |
396 | ||
397 | ||
398 | hNCellsPerClusterMod4 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod4"); | |
399 | hNCellsPerClusterMod4->SetStats(kFALSE); | |
400 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 4",run);} | |
401 | else {sprintf(legend2,"Run %i Mod 4",run);} | |
402 | ||
403 | hNCellsPerClusterMod4->SetTitle(legend2); | |
404 | ||
405 | hNCellsPerClusterMod5 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod5"); | |
406 | hNCellsPerClusterMod5->SetStats(kFALSE); | |
407 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 5",run);} | |
408 | else {sprintf(legend2,"Run %i Mod 5",run);} | |
409 | hNCellsPerClusterMod5->SetTitle(legend2); | |
410 | ||
411 | hNCellsPerClusterMod6 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod6"); | |
412 | hNCellsPerClusterMod6->SetStats(kFALSE); | |
413 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 6",run);} | |
414 | else {sprintf(legend2,"Run %i Mod 6",run);} | |
415 | hNCellsPerClusterMod6->SetTitle(legend2); | |
416 | ||
417 | hNCellsPerClusterMod7 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod7"); | |
418 | hNCellsPerClusterMod7->SetStats(kFALSE); | |
419 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 7",run);} | |
420 | else {sprintf(legend2,"Run %i Mod 7",run);} | |
421 | hNCellsPerClusterMod7->SetTitle(legend2); | |
422 | ||
423 | hNCellsPerClusterMod8 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod8"); | |
424 | hNCellsPerClusterMod8->SetStats(kFALSE); | |
425 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 8",run);} | |
426 | else {sprintf(legend2,"Run %i Mod 8",run);} | |
427 | hNCellsPerClusterMod8->SetTitle(legend2); | |
428 | ||
429 | hNCellsPerClusterMod9 =(TH2F *)outputList->FindObject("EMCAL_hNCellsPerCluster_Mod9"); | |
430 | hNCellsPerClusterMod9->SetStats(kFALSE); | |
431 | if(trigger=="EMC7"){sprintf(legend2,"Run %i EMC Mod 9",run);} | |
432 | else {sprintf(legend2,"Run %i Mod 9",run);} | |
433 | hNCellsPerClusterMod9->SetTitle(legend2); | |
434 | ||
435 | TCanvas * c31 = new TCanvas("Time Vs E ", "Time Vs E", 600, 600); | |
436 | c31->SetLogz(); | |
437 | c31->SetFillColor(0); | |
438 | c31->SetBorderSize(0); | |
439 | c31->SetFrameBorderMode(0); | |
440 | // c31->SetOptStat(0); | |
441 | hClusterTimeEnergy->SetYTitle("EMCAL ToF(ns)"); | |
442 | hClusterTimeEnergy->GetYaxis()->SetTitleOffset(1.2); | |
443 | hClusterTimeEnergy->GetYaxis()->SetLabelSize(0.03); | |
444 | ||
445 | hClusterTimeEnergy->GetZaxis()->SetLabelSize(0.02); | |
446 | hClusterTimeEnergy->GetZaxis()->SetTitleSize(0.03); | |
447 | hClusterTimeEnergy->GetZaxis()->SetTitleOffset(0.03); | |
448 | hClusterTimeEnergy->SetAxisRange(0.,50.); | |
449 | hClusterTimeEnergy->Draw("colz"); | |
450 | c31->cd(); | |
451 | ||
452 | outfilename = base + "TimeRun.pdf" ; | |
453 | outfilename2 = base + "TimeRun.gif" ; | |
454 | ||
455 | c31->SaveAs(outfilename); | |
456 | c31->SaveAs(outfilename2); | |
457 | ||
458 | ||
459 | TCanvas * c32 = new TCanvas(" Cluster Vs Track ","Cluster vs Track", 600, 600); | |
460 | c32->SetLogz(); | |
461 | c32->SetFillColor(0); | |
462 | c32->SetBorderSize(0); | |
463 | c32->SetFrameBorderMode(0); | |
464 | // c31->SetOptStat(0); | |
465 | ||
466 | ||
467 | hClusterVsTrack->GetYaxis()->SetTitleOffset(1.2); | |
468 | hClusterVsTrack->GetYaxis()->SetLabelSize(0.03); | |
469 | ||
470 | hClusterVsTrack->GetZaxis()->SetLabelSize(0.02); | |
471 | hClusterVsTrack->GetZaxis()->SetTitleSize(0.03); | |
472 | hClusterVsTrack->GetZaxis()->SetTitleOffset(0.03); | |
473 | hClusterVsTrack->SetAxisRange(0.,1200.); | |
474 | hClusterVsTrack->Draw("colz"); | |
475 | c32->cd(); | |
476 | ||
477 | outfilename = base + "CaloTrackMult.pdf"; | |
478 | ||
479 | outfilename2 = base + "CaloTrackMult.gif"; | |
480 | ||
481 | c32->SaveAs(outfilename); | |
482 | ||
483 | c32->SaveAs(outfilename2); | |
484 | ||
485 | ||
486 | TCanvas * c33 = new TCanvas(" Cluster E Vs Track ","Cluster E vs Track", 600, 600); | |
487 | c33->SetLogz(); | |
488 | c33->SetFillColor(0); | |
489 | c33->SetBorderSize(0); | |
490 | c33->SetFrameBorderMode(0); | |
491 | // c31->SetOptStat(0); | |
492 | ||
493 | hClusterEVsTrack->GetYaxis()->SetTitleOffset(1.2); | |
494 | hClusterEVsTrack->GetYaxis()->SetLabelSize(0.03); | |
495 | ||
496 | hClusterEVsTrack->GetZaxis()->SetLabelSize(0.02); | |
497 | hClusterEVsTrack->GetZaxis()->SetTitleSize(0.03); | |
498 | hClusterEVsTrack->GetZaxis()->SetTitleOffset(0.03); | |
499 | hClusterEVsTrack->SetAxisRange(0.,1200.); | |
500 | hClusterEVsTrack->Draw("colz"); | |
501 | c33->cd(); | |
502 | ||
503 | outfilename = base + "CaloETrackMult.pdf"; | |
504 | outfilename2 = base + "CaloETrackMult.gif"; | |
505 | ||
506 | c33->SaveAs(outfilename); | |
507 | ||
508 | c33->SaveAs(outfilename2); | |
509 | ||
510 | TCanvas * c34 = new TCanvas(" Cluster E Vs V0 ","Cluster E vs V0", 600, 600); | |
511 | c34->SetLogz(); | |
512 | c34->SetFillColor(0); | |
513 | c34->SetBorderSize(0); | |
514 | c34->SetFrameBorderMode(0); | |
515 | // c31->SetOptStat(0); | |
516 | ||
517 | ||
518 | hClusterEVsV0S->GetYaxis()->SetTitleOffset(1.2); | |
519 | hClusterEVsV0S->GetYaxis()->SetLabelSize(0.03); | |
520 | ||
521 | hClusterEVsV0S->GetZaxis()->SetLabelSize(0.02); | |
522 | hClusterEVsV0S->GetZaxis()->SetTitleSize(0.03); | |
523 | hClusterEVsV0S->GetZaxis()->SetTitleOffset(0.03); | |
524 | hClusterEVsV0S->GetYaxis()->SetRangeUser(0.,50.); | |
525 | hClusterEVsV0S->Draw("colz"); | |
526 | c34->cd(); | |
527 | ||
528 | ||
529 | outfilename = base + "CaloEVsV0s.pdf"; | |
530 | outfilename2 = base + "CaloEVsV0s.gif"; | |
531 | ||
532 | c34->SaveAs(outfilename); | |
533 | c34->SaveAs(outfilename2); | |
534 | ||
535 | ||
536 | ||
537 | ||
538 | ||
539 | TCanvas * c35 = new TCanvas(" Cells per Cluster 0 ","Cells per Cluster 0", 1000, 1200); | |
540 | c35->SetLogz(); | |
541 | c35->SetFillColor(0); | |
542 | c35->SetBorderSize(0); | |
543 | c35->SetFrameBorderMode(0); | |
544 | // c31->SetOptStat(0); | |
545 | c35->Divide(3,4); | |
546 | ||
547 | c35->cd(1); | |
548 | gPad->SetLogz(); | |
549 | hNCellsPerClusterMod0->GetYaxis()->SetTitleOffset(1.2); | |
550 | hNCellsPerClusterMod0->GetYaxis()->SetLabelSize(0.03); | |
551 | ||
552 | hNCellsPerClusterMod0->GetZaxis()->SetLabelSize(0.05); | |
553 | hNCellsPerClusterMod0->GetZaxis()->SetTitleSize(0.4); | |
554 | hNCellsPerClusterMod0->GetZaxis()->SetTitleOffset(0.03); | |
555 | hNCellsPerClusterMod0->GetYaxis()->SetRangeUser(0.,30.); | |
556 | hNCellsPerClusterMod0->GetXaxis()->SetRangeUser(0.,20.); | |
557 | hNCellsPerClusterMod0->Draw("colz"); | |
558 | c35->cd(2); | |
559 | ||
560 | gPad->SetLogz(); | |
561 | hNCellsPerClusterMod1->GetYaxis()->SetTitleOffset(1.2); | |
562 | hNCellsPerClusterMod1->GetYaxis()->SetLabelSize(0.03); | |
563 | ||
564 | hNCellsPerClusterMod1->GetZaxis()->SetLabelSize(0.05); | |
565 | hNCellsPerClusterMod1->GetZaxis()->SetTitleSize(0.2); | |
566 | hNCellsPerClusterMod1->GetZaxis()->SetTitleOffset(0.03); | |
567 | hNCellsPerClusterMod1->GetYaxis()->SetRangeUser(0.,30.); | |
568 | hNCellsPerClusterMod1->GetXaxis()->SetRangeUser(0.,20.); | |
569 | hNCellsPerClusterMod1->Draw("colz"); | |
570 | c35->cd(3); | |
571 | gPad->SetLogz(); | |
572 | ||
573 | ||
574 | hNCellsPerClusterMod2->GetYaxis()->SetTitleOffset(1.2); | |
575 | hNCellsPerClusterMod2->GetYaxis()->SetLabelSize(0.03); | |
576 | ||
577 | hNCellsPerClusterMod2->GetZaxis()->SetLabelSize(0.05); | |
578 | hNCellsPerClusterMod2->GetZaxis()->SetTitleSize(0.04); | |
579 | hNCellsPerClusterMod2->GetZaxis()->SetTitleOffset(0.03); | |
580 | hNCellsPerClusterMod2->GetYaxis()->SetRangeUser(0.,30.); | |
581 | hNCellsPerClusterMod2->GetXaxis()->SetRangeUser(0.,20.); | |
582 | hNCellsPerClusterMod2->Draw("colz"); | |
583 | c35->cd(4); | |
584 | ||
585 | gPad->SetLogz(); | |
586 | hNCellsPerClusterMod3->GetYaxis()->SetTitleOffset(1.2); | |
587 | hNCellsPerClusterMod3->GetYaxis()->SetLabelSize(0.03); | |
588 | hNCellsPerClusterMod3->GetZaxis()->SetLabelSize(0.05); | |
589 | hNCellsPerClusterMod3->GetZaxis()->SetTitleSize(0.04); | |
590 | hNCellsPerClusterMod3->GetZaxis()->SetTitleOffset(0.03); | |
591 | hNCellsPerClusterMod3->GetYaxis()->SetRangeUser(0.,30.); | |
592 | hNCellsPerClusterMod3->GetXaxis()->SetRangeUser(0.,20.); | |
593 | hNCellsPerClusterMod3->Draw("colz"); | |
594 | ||
595 | c35->cd(5); | |
596 | gPad->SetLogz(); | |
597 | ||
598 | hNCellsPerClusterMod4->GetYaxis()->SetTitleOffset(1.2); | |
599 | hNCellsPerClusterMod4->GetYaxis()->SetLabelSize(0.03); | |
600 | hNCellsPerClusterMod4->GetZaxis()->SetLabelSize(0.05); | |
601 | hNCellsPerClusterMod4->GetZaxis()->SetTitleSize(0.04); | |
602 | hNCellsPerClusterMod4->GetZaxis()->SetTitleOffset(0.03); | |
603 | hNCellsPerClusterMod4->GetYaxis()->SetRangeUser(0.,30.); | |
604 | hNCellsPerClusterMod4->GetXaxis()->SetRangeUser(0.,20.); | |
605 | hNCellsPerClusterMod4->Draw("colz"); | |
606 | ||
607 | ||
608 | ||
609 | c35->cd(6); | |
610 | gPad->SetLogz(); | |
611 | ||
612 | hNCellsPerClusterMod5->GetYaxis()->SetTitleOffset(1.2); | |
613 | hNCellsPerClusterMod5->GetYaxis()->SetLabelSize(0.03); | |
614 | hNCellsPerClusterMod5->GetZaxis()->SetLabelSize(0.05); | |
615 | hNCellsPerClusterMod5->GetZaxis()->SetTitleSize(0.04); | |
616 | hNCellsPerClusterMod5->GetZaxis()->SetTitleOffset(0.03); | |
617 | hNCellsPerClusterMod5->GetYaxis()->SetRangeUser(0.,30.); | |
618 | hNCellsPerClusterMod5->GetXaxis()->SetRangeUser(0.,20.); | |
619 | hNCellsPerClusterMod5->Draw("colz"); | |
620 | ||
621 | ||
622 | c35->cd(7); | |
623 | gPad->SetLogz(); | |
624 | ||
625 | hNCellsPerClusterMod6->GetYaxis()->SetTitleOffset(1.2); | |
626 | hNCellsPerClusterMod6->GetYaxis()->SetLabelSize(0.03); | |
627 | hNCellsPerClusterMod6->GetZaxis()->SetLabelSize(0.05); | |
628 | hNCellsPerClusterMod6->GetZaxis()->SetTitleSize(0.04); | |
629 | hNCellsPerClusterMod6->GetZaxis()->SetTitleOffset(0.03); | |
630 | hNCellsPerClusterMod6->GetYaxis()->SetRangeUser(0.,30.); | |
631 | hNCellsPerClusterMod6->GetXaxis()->SetRangeUser(0.,20.); | |
632 | hNCellsPerClusterMod6->Draw("colz"); | |
633 | ||
634 | c35->cd(8); | |
635 | gPad->SetLogz(); | |
636 | ||
637 | hNCellsPerClusterMod7->GetYaxis()->SetTitleOffset(1.2); | |
638 | hNCellsPerClusterMod7->GetYaxis()->SetLabelSize(0.03); | |
639 | hNCellsPerClusterMod7->GetZaxis()->SetLabelSize(0.05); | |
640 | hNCellsPerClusterMod7->GetZaxis()->SetTitleSize(0.04); | |
641 | hNCellsPerClusterMod7->GetZaxis()->SetTitleOffset(0.03); | |
642 | hNCellsPerClusterMod7->GetYaxis()->SetRangeUser(0.,30.); | |
643 | hNCellsPerClusterMod7->GetXaxis()->SetRangeUser(0.,20.); | |
644 | hNCellsPerClusterMod7->Draw("colz"); | |
645 | ||
646 | ||
647 | c35->cd(9); | |
648 | ||
649 | gPad->SetLogz(); | |
650 | hNCellsPerClusterMod8->GetYaxis()->SetTitleOffset(1.2); | |
651 | hNCellsPerClusterMod8->GetYaxis()->SetLabelSize(0.03); | |
652 | hNCellsPerClusterMod8->GetZaxis()->SetLabelSize(0.05); | |
653 | hNCellsPerClusterMod8->GetZaxis()->SetTitleSize(0.04); | |
654 | hNCellsPerClusterMod8->GetZaxis()->SetTitleOffset(0.03); | |
655 | hNCellsPerClusterMod8->GetYaxis()->SetRangeUser(0.,30.); | |
656 | hNCellsPerClusterMod8->GetXaxis()->SetRangeUser(0.,20.); | |
657 | hNCellsPerClusterMod8->Draw("colz"); | |
658 | ||
659 | c35->cd(10); | |
660 | gPad->SetLogz(); | |
661 | ||
662 | hNCellsPerClusterMod9->GetYaxis()->SetTitleOffset(1.2); | |
663 | hNCellsPerClusterMod9->GetYaxis()->SetLabelSize(0.03); | |
664 | hNCellsPerClusterMod9->GetZaxis()->SetLabelSize(0.05); | |
665 | hNCellsPerClusterMod9->GetZaxis()->SetTitleSize(0.04); | |
666 | hNCellsPerClusterMod9->GetZaxis()->SetTitleOffset(0.03); | |
667 | hNCellsPerClusterMod9->GetYaxis()->SetRangeUser(0.,30.); | |
668 | hNCellsPerClusterMod9->GetXaxis()->SetRangeUser(0.,20.); | |
669 | hNCellsPerClusterMod9->Draw("colz"); | |
670 | ||
671 | outfilename = base + "CellsperCluster.pdf"; | |
672 | outfilename2 = base + "CellsperCluster.gif"; | |
673 | ||
674 | ||
675 | c35->SaveAs(outfilename); | |
676 | c35->SaveAs(outfilename2); | |
677 | ||
678 | } |