]>
Commit | Line | Data |
---|---|---|
2a250bc5 | 1 | #if !defined(__CINT__) || defined(__MAKECINT__) |
2 | #include <TFile.h> | |
3 | #include <TFileMerger.h> | |
4 | #include <TAlienFile.h> | |
5 | //#include <TExec.h> | |
6 | #include <TSystem.h> | |
7 | #include <TGrid.h> | |
8 | #include <TGridResult.h> | |
9 | #include <Riostream.h> | |
10 | #include <TObjArray.h> | |
11 | #include <TClass.h> | |
12 | #include <TH1F.h> | |
13 | #include <TStyle.h> | |
14 | #include <TCanvas.h> | |
15 | #include <TLegend.h> | |
16 | #include <TMath.h> | |
62b7a70f | 17 | #include <TROOT.h> |
2a250bc5 | 18 | #endif |
62b7a70f | 19 | void TrendQASDD( Char_t filelist[150]="LHC10b.txt", Char_t filename[20]="FileQAtrend",Char_t pass[7]="pass1",Int_t year=2010, Char_t period[7]="LHC10b", Bool_t kDOSuperimpose=kFALSE,Bool_t kUseOriginalFile=kFALSE , Char_t especiename[50]="LowMultiplicity") |
2a250bc5 | 20 | { |
62b7a70f | 21 | gROOT->SetStyle("Plain"); |
2a250bc5 | 22 | Int_t m; |
23 | vector<Int_t> n; | |
24 | //Char_t FileName[200];//="/home/msicilia/Desktop/createlists"; | |
25 | char FileName[150]; | |
26 | Char_t FileName1[150]; | |
27 | sprintf(FileName1,"%s",filelist); | |
28 | FILE * pFile; | |
29 | pFile = fopen (FileName1,"r"); | |
30 | while (fscanf (pFile,"%d\n",&m)==1){ | |
31 | ||
32 | if(kUseOriginalFile)sprintf(FileName,"run%d/%s/File.QA.%d.%s.%s.Run.%d.root",m,pass,year,period,pass,m); | |
33 | else sprintf(FileName, "run%d/%s/%s.root", m,pass,filename); | |
34 | if(gSystem->Exec(Form("ls %s >/dev/null 2>&1", FileName))==0){ | |
35 | TFile mergedfile(FileName); | |
36 | if(kUseOriginalFile){ | |
37 | if(mergedfile.GetKey("ITS")==0x0){ | |
38 | printf("Run %d, In this run ITS QA has not been executed.-- Exit file\n",m); | |
39 | continue; | |
40 | } | |
41 | else {n.push_back(m);} //this is to grow the vector | |
42 | }else {n.push_back(m);} | |
43 | } | |
44 | else{printf("Run %d,: no file %s present -- Continue\n",m, FileName);continue;} | |
45 | } | |
46 | fclose (pFile); | |
47 | ||
48 | Char_t filepath[200]; | |
62b7a70f | 49 | |
2a250bc5 | 50 | char name[100]; |
51 | char title[100]; | |
62b7a70f | 52 | |
53 | TH1F *histocharge; | |
54 | TH1F *histochargerp; | |
55 | ||
56 | sprintf(name,"histoRAWeventtrend"); | |
57 | sprintf(title,"Events used for the QA analysis - RAW"); | |
58 | TH1F *histoRAWeventtrend=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
59 | histoRAWeventtrend->GetXaxis()->SetTitle("# Run"); | |
60 | histoRAWeventtrend->GetXaxis()->SetTicks("-"); | |
61 | histoRAWeventtrend->GetXaxis()->SetLabelSize(0.02); | |
62 | histoRAWeventtrend->GetXaxis()->SetTitleSize(0.02); | |
63 | histoRAWeventtrend->GetXaxis()->SetTitleOffset(-2.); | |
64 | histoRAWeventtrend->GetXaxis()->SetTickLength(0.01); | |
65 | histoRAWeventtrend->GetYaxis()->SetTitle("Events"); | |
66 | histoRAWeventtrend->GetYaxis()->SetLabelSize(0.02); | |
67 | histoRAWeventtrend->GetYaxis()->SetTitleSize(0.02); | |
68 | histoRAWeventtrend->GetYaxis()->SetTitleOffset(1.5); | |
69 | histoRAWeventtrend->SetMarkerStyle(20); | |
70 | histoRAWeventtrend->SetMarkerColor(1); | |
71 | ||
72 | sprintf(name,"histoRPeventtrend"); | |
73 | sprintf(title,"Events used for the QA analysis - RP"); | |
74 | TH1F *histoRPeventtrend=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
75 | histoRPeventtrend->GetXaxis()->SetTitle("# Run"); | |
76 | histoRPeventtrend->GetXaxis()->SetTicks("-"); | |
77 | histoRPeventtrend->GetXaxis()->SetLabelSize(0.02); | |
78 | histoRPeventtrend->GetXaxis()->SetTitleSize(0.02); | |
79 | histoRPeventtrend->GetXaxis()->SetTitleOffset(-2.); | |
80 | histoRPeventtrend->GetXaxis()->SetTickLength(0.01); | |
81 | histoRPeventtrend->GetYaxis()->SetTitle("Events"); | |
82 | histoRPeventtrend->GetYaxis()->SetLabelSize(0.02); | |
83 | histoRPeventtrend->GetYaxis()->SetTitleSize(0.02); | |
84 | histoRPeventtrend->GetYaxis()->SetTitleOffset(1.5); | |
85 | histoRPeventtrend->SetMarkerStyle(24); | |
86 | histoRPeventtrend->SetMarkerColor(4); | |
87 | ||
88 | ||
89 | TH1F *histoRAWnormevents[3]; | |
90 | TH1F *histoRPnormevents[3]; | |
2a250bc5 | 91 | |
62b7a70f | 92 | TH1F *histoRAWfilledmodules[3]; |
93 | TH1F *histoRPfilledmodules[3]; | |
94 | ||
95 | TH1F *histoRAWfilleddr[3]; | |
96 | TH1F *histoRPfilleddr[3]; | |
97 | ||
98 | TH1F *histoRAWactivemodules[3]; | |
99 | TH1F *histoRPactivemodules[3]; | |
100 | ||
101 | TH1F *histoRAWactivedr[3]; | |
102 | TH1F *histoRPactivedr[3]; | |
103 | ||
104 | TH1F *histoRAWoverthmodules[3]; | |
105 | TH1F *histoRPoverthmodules[3]; | |
106 | ||
107 | TH1F *histoRAWoverthdr[3]; | |
108 | TH1F *histoRPoverthdr[3]; | |
109 | ||
110 | TH1F *histochargetrend[2]; | |
111 | TH1F *historadiustrend[2]; | |
2a250bc5 | 112 | |
62b7a70f | 113 | |
114 | //index on the histograms | |
115 | ||
116 | Int_t event=1; | |
117 | Int_t normevtRAW[3]={2,3,4}; | |
118 | Int_t normevtRP[3]={2,3,4}; | |
119 | ||
120 | Int_t filledmodRAW[3]={6,20,34}; | |
121 | Int_t filledmodRP[3] ={6,20,36}; | |
122 | ||
123 | Int_t filleddrRAW[3]={8,22,36}; | |
124 | Int_t filleddrRP[3] ={8,22,38}; | |
125 | ||
126 | Int_t activemodRAW[3]={5,19,33}; | |
127 | Int_t activemodRP[3] ={5,19,35}; | |
128 | ||
129 | Int_t activedrRAW[3]={7,21,35}; | |
130 | Int_t activedrRP[3] ={7,21,37}; | |
131 | ||
132 | Int_t overthmodRAW[3]={17,31,45}; | |
133 | Int_t overthmodRP[3] ={17,33,49}; | |
134 | ||
135 | Int_t overthdrRAW[3]={18,32,46}; | |
136 | Int_t overthdrRP[3] ={18,34,50}; | |
137 | ||
138 | Int_t chargeindex[2]={31,47}; | |
139 | Int_t radiusindex[2]={32,48}; | |
140 | ||
141 | const TString histoname[3]={"Total","Layer 3","Layer 4"}; | |
142 | const TString histolegend[3]={"All","Layer 3","Layer 4"}; | |
143 | const TString histolegend2[2]={"Filled","Active"}; | |
144 | const TString histolegend3[2]={"Raw","RecPoints"}; | |
145 | ||
146 | const TString drawoptionevents[3]={"P","PSAME","PSAME"}; | |
147 | const TString drawoptionfill[3]={"P","P","PSAME"}; | |
148 | const TString drawoptionactive[3]={"PSAME","PSAME","PSAME"}; | |
149 | ||
2a250bc5 | 150 | TLegend *legend =new TLegend(0.83,0.8,0.97,0.2); |
151 | TLegend *legend2=new TLegend(0.83,0.8,0.97,0.2); | |
62b7a70f | 152 | TLegend *legendevents=new TLegend(0.83,01.,0.97,0.9); |
153 | TLegend *legendchecks =new TLegend(0.83,1.,0.97,0.9); | |
154 | TLegend *legendchecks2 =new TLegend(0.83,1.,0.97,0.9); | |
155 | TLegend *legendchecks3 =new TLegend(0.83,1.,0.97,0.9); | |
156 | TLegend *legendchecks4 =new TLegend(0.83,1.,0.97,0.9); | |
2a250bc5 | 157 | |
158 | Char_t runnmbr[20]; | |
62b7a70f | 159 | Float_t fmax[2]; |
160 | for(Int_t i=0;i<2;i++)fmax[i]=0; | |
2a250bc5 | 161 | Float_t fmaxold=0; |
62b7a70f | 162 | Float_t fmaxmargin[2]; |
163 | for(Int_t i=0;i<2;i++)fmaxmargin[i]=0; | |
2a250bc5 | 164 | |
165 | Float_t fmaxtime=0; | |
166 | Float_t fmaxoldtime=0; | |
62b7a70f | 167 | Float_t fmaxmargintime[2]; |
168 | for(Int_t i=0;i<2;i++)fmaxmargintime[i]=0; | |
2a250bc5 | 169 | |
170 | Int_t j=0; | |
171 | Int_t hh=0; | |
2a250bc5 | 172 | |
62b7a70f | 173 | for(Int_t ii=0;ii<3;ii++) |
174 | ||
175 | { | |
176 | sprintf(name,"histoRAWnormevent%d", ii); | |
177 | sprintf(title,"Trend of the Norm Events %s RAW",histoname[ii].Data()); | |
178 | histoRAWnormevents[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
179 | histoRAWnormevents[ii]->SetStats(0); | |
180 | histoRAWnormevents[ii]->SetMinimum(0.); | |
181 | histoRAWnormevents[ii]->GetXaxis()->SetTitle("# Run"); | |
182 | histoRAWnormevents[ii]->GetXaxis()->SetTicks("-"); | |
183 | histoRAWnormevents[ii]->GetXaxis()->SetLabelSize(0.02); | |
184 | histoRAWnormevents[ii]->GetXaxis()->SetTitleSize(0.02); | |
185 | histoRAWnormevents[ii]->GetXaxis()->SetTitleOffset(-2.); | |
186 | histoRAWnormevents[ii]->GetXaxis()->SetTickLength(0.01); | |
187 | histoRAWnormevents[ii]->GetYaxis()->SetTitle("entries/(goodch*totevents)"); | |
188 | histoRAWnormevents[ii]->GetYaxis()->SetLabelSize(0.02); | |
189 | histoRAWnormevents[ii]->GetYaxis()->SetTitleSize(0.02); | |
190 | histoRAWnormevents[ii]->GetYaxis()->SetTitleOffset(1.5); | |
191 | histoRAWnormevents[ii]->SetMarkerStyle(20+ii); | |
192 | histoRAWnormevents[ii]->SetMarkerColor(1+ii); | |
193 | ||
194 | sprintf(name,"histoRPnormevent%d", ii); | |
195 | sprintf(title,"Trend of the Norm Events %s RP", histoname[ii].Data()); | |
196 | histoRPnormevents[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
197 | histoRPnormevents[ii]->SetStats(0); | |
198 | histoRPnormevents[ii]->SetMinimum(0.); | |
199 | histoRPnormevents[ii]->GetXaxis()->SetTitle("# Run"); | |
200 | histoRPnormevents[ii]->GetXaxis()->SetTicks("-"); | |
201 | histoRPnormevents[ii]->GetXaxis()->SetLabelSize(0.02); | |
202 | histoRPnormevents[ii]->GetXaxis()->SetTickLength(0.01); | |
203 | histoRPnormevents[ii]->GetXaxis()->SetTitleSize(0.02); | |
204 | histoRPnormevents[ii]->GetXaxis()->SetTitleOffset(-2.); | |
205 | histoRPnormevents[ii]->GetYaxis()->SetTitle("entries/(goodch*totevents)"); | |
206 | histoRPnormevents[ii]->GetYaxis()->SetLabelSize(0.02); | |
207 | histoRPnormevents[ii]->GetYaxis()->SetTitleSize(0.02); | |
208 | histoRPnormevents[ii]->GetYaxis()->SetTitleOffset(1.5); | |
209 | histoRPnormevents[ii]->SetMarkerStyle(20+ii); | |
210 | histoRPnormevents[ii]->SetMarkerColor(1+ii); | |
211 | ||
212 | ||
213 | sprintf(name,"histoRAWfilledmodules%d", ii); | |
214 | sprintf(title,"Trend of the filled modules %s RAW", histoname[ii].Data()); | |
215 | histoRAWfilledmodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
216 | histoRAWfilledmodules[ii]->SetStats(0); | |
217 | histoRAWfilledmodules[ii]->SetMaximum(272.); | |
218 | histoRAWfilledmodules[ii]->SetMinimum(-1.); | |
219 | histoRAWfilledmodules[ii]->GetXaxis()->SetTitle("# Run"); | |
220 | histoRAWfilledmodules[ii]->GetXaxis()->SetTicks("-"); | |
221 | histoRAWfilledmodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
222 | histoRAWfilledmodules[ii]->GetXaxis()->SetTickLength(0.01); | |
223 | histoRAWfilledmodules[ii]->GetXaxis()->SetTitleSize(0.02); | |
224 | histoRAWfilledmodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
225 | histoRAWfilledmodules[ii]->GetYaxis()->SetTitle("modules"); | |
226 | histoRAWfilledmodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
227 | histoRAWfilledmodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
228 | histoRAWfilledmodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
229 | histoRAWfilledmodules[ii]->SetMarkerStyle(20+ii); | |
230 | histoRAWfilledmodules[ii]->SetMarkerColor(1+ii); | |
231 | ||
232 | sprintf(name,"histoRPfilledmodules%d", ii); | |
233 | sprintf(title,"Trend of the filled modules %s RP", histoname[ii].Data()); | |
234 | histoRPfilledmodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
235 | histoRPfilledmodules[ii]->GetXaxis()->SetTitle("# Run"); | |
236 | histoRPfilledmodules[ii]->SetStats(0); | |
237 | histoRPfilledmodules[ii]->SetMaximum(272.); | |
238 | histoRPfilledmodules[ii]->SetMinimum(-1.); | |
239 | histoRPfilledmodules[ii]->GetXaxis()->SetTicks("-"); | |
240 | histoRPfilledmodules[ii]->GetYaxis()->SetTitle("modules"); | |
241 | histoRPfilledmodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
242 | histoRPfilledmodules[ii]->GetXaxis()->SetTickLength(0.01); | |
243 | histoRPfilledmodules[ii]->GetXaxis()->SetTitleSize(0.02); | |
244 | histoRPfilledmodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
245 | histoRPfilledmodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
246 | histoRPfilledmodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
247 | histoRPfilledmodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
248 | histoRPfilledmodules[ii]->SetMarkerStyle(20+ii); | |
249 | histoRPfilledmodules[ii]->SetMarkerColor(1+ii); | |
250 | ||
251 | sprintf(name,"histoRAWfilleddr%d", ii); | |
252 | sprintf(title,"Trend of the filled drift regions %s RAW", histoname[ii].Data()); | |
253 | histoRAWfilleddr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
254 | histoRAWfilleddr[ii]->GetXaxis()->SetTitle("# Run"); | |
255 | histoRAWfilleddr[ii]->SetStats(0); | |
256 | histoRAWfilleddr[ii]->SetMaximum(272.); | |
257 | histoRAWfilleddr[ii]->SetMinimum(-1.); | |
258 | histoRAWfilleddr[ii]->GetXaxis()->SetTicks("-"); | |
259 | histoRAWfilleddr[ii]->GetXaxis()->SetLabelSize(0.02); | |
260 | histoRAWfilleddr[ii]->GetXaxis()->SetTickLength(0.01); | |
261 | histoRAWfilleddr[ii]->GetXaxis()->SetTitleSize(0.02); | |
262 | histoRAWfilleddr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
263 | histoRAWfilleddr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
264 | histoRAWfilleddr[ii]->GetYaxis()->SetLabelSize(0.02); | |
265 | histoRAWfilleddr[ii]->GetYaxis()->SetTitleSize(0.02); | |
266 | histoRAWfilleddr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
267 | histoRAWfilleddr[ii]->SetMarkerStyle(20+ii); | |
268 | histoRAWfilleddr[ii]->SetMarkerColor(1+ii); | |
269 | ||
270 | sprintf(name,"histoRPfilleddr%d", ii); | |
271 | sprintf(title,"Trend of the filled drift regions %s RP", histoname[ii].Data()); | |
272 | histoRPfilleddr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
273 | histoRPfilleddr[ii]->SetStats(0); | |
274 | histoRPfilleddr[ii]->SetMaximum(272.); | |
275 | histoRPfilleddr[ii]->SetMinimum(-1.); | |
276 | histoRPfilleddr[ii]->GetXaxis()->SetTitle("# Run"); | |
277 | histoRPfilleddr[ii]->GetXaxis()->SetTicks("-"); | |
278 | histoRPfilleddr[ii]->GetXaxis()->SetLabelSize(0.02); | |
279 | histoRPfilleddr[ii]->GetXaxis()->SetTickLength(0.01); | |
280 | histoRPfilleddr[ii]->GetXaxis()->SetTitleSize(0.02); | |
281 | histoRPfilleddr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
282 | histoRPfilleddr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
283 | histoRPfilleddr[ii]->GetYaxis()->SetLabelSize(0.02); | |
284 | histoRPfilleddr[ii]->GetYaxis()->SetTitleSize(0.02); | |
285 | histoRPfilleddr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
286 | histoRPfilleddr[ii]->SetMarkerStyle(20+ii); | |
287 | histoRPfilleddr[ii]->SetMarkerColor(1+ii); | |
288 | ||
289 | ||
290 | sprintf(name,"histoRAWactivemodules%d", ii); | |
291 | sprintf(title,"Trend of the active module %s RAW", histoname[ii].Data()); | |
292 | histoRAWactivemodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
293 | histoRAWactivemodules[ii]->SetStats(0); | |
294 | histoRAWactivemodules[ii]->GetXaxis()->SetTitle("# Run"); | |
295 | histoRAWactivemodules[ii]->GetXaxis()->SetTicks("-"); | |
296 | histoRAWactivemodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
297 | histoRAWactivemodules[ii]->GetXaxis()->SetTickLength(0.01); | |
298 | histoRAWactivemodules[ii]->GetXaxis()->SetTitleSize(0.02); | |
299 | histoRAWactivemodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
300 | histoRAWactivemodules[ii]->GetYaxis()->SetTitle("modules"); | |
301 | histoRAWactivemodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
302 | histoRAWactivemodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
303 | histoRAWactivemodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
304 | histoRAWactivemodules[ii]->SetMarkerStyle(24+ii); | |
305 | histoRAWactivemodules[ii]->SetMarkerColor(4); | |
306 | ||
307 | ||
308 | ||
309 | sprintf(name,"histoRPactivemodules%d", ii); | |
310 | sprintf(title,"Trend of the active modules %s RP", histoname[ii].Data()); | |
311 | histoRPactivemodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
312 | histoRPactivemodules[ii]->SetStats(0); | |
313 | histoRPactivemodules[ii]->GetXaxis()->SetTitle("# Run"); | |
314 | histoRPactivemodules[ii]->GetXaxis()->SetTicks("-"); | |
315 | histoRPactivemodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
316 | histoRPactivemodules[ii]->GetXaxis()->SetTickLength(0.01); | |
317 | histoRPactivemodules[ii]->GetXaxis()->SetTitleSize(0.02); | |
318 | histoRPactivemodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
319 | histoRPactivemodules[ii]->GetYaxis()->SetTitle("modules"); | |
320 | histoRPactivemodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
321 | histoRPactivemodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
322 | histoRPactivemodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
323 | histoRPactivemodules[ii]->SetMarkerStyle(24+ii); | |
324 | histoRPactivemodules[ii]->SetMarkerColor(4); | |
325 | ||
326 | ||
327 | sprintf(name,"histoRAWactivedr%d", ii); | |
328 | sprintf(title,"Trend of the active drift region %s RAW", histoname[ii].Data()); | |
329 | histoRAWactivedr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
330 | histoRAWactivedr[ii]->SetStats(0); | |
331 | histoRAWactivedr[ii]->GetXaxis()->SetTitle("# Run"); | |
332 | histoRAWactivedr[ii]->GetXaxis()->SetTicks("-"); | |
333 | histoRAWactivedr[ii]->GetXaxis()->SetLabelSize(0.02); | |
334 | histoRAWactivedr[ii]->GetXaxis()->SetTickLength(0.01); | |
335 | histoRAWactivedr[ii]->GetXaxis()->SetTitleSize(0.02); | |
336 | histoRAWactivedr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
337 | histoRAWactivedr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
338 | histoRAWactivedr[ii]->GetYaxis()->SetLabelSize(0.02); | |
339 | histoRAWactivedr[ii]->GetYaxis()->SetTitleSize(0.02); | |
340 | histoRAWactivedr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
341 | histoRAWactivedr[ii]->SetMarkerStyle(24+ii); | |
342 | histoRAWactivedr[ii]->SetMarkerColor(4); | |
343 | ||
344 | sprintf(name,"histoRPactivedr%d", ii); | |
345 | sprintf(title,"Trend of the active drift region %s RP", histoname[ii].Data()); | |
346 | histoRPactivedr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
347 | histoRPactivedr[ii]->SetStats(0); | |
348 | histoRPactivedr[ii]->GetXaxis()->SetTitle("# Run"); | |
349 | histoRPactivedr[ii]->GetXaxis()->SetTicks("-"); | |
350 | histoRPactivedr[ii]->GetXaxis()->SetLabelSize(0.02); | |
351 | histoRPactivedr[ii]->GetXaxis()->SetTickLength(0.01); | |
352 | histoRPactivedr[ii]->GetXaxis()->SetTitleSize(0.02); | |
353 | histoRPactivedr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
354 | histoRPactivedr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
355 | histoRPactivedr[ii]->GetYaxis()->SetLabelSize(0.02); | |
356 | histoRPactivedr[ii]->GetYaxis()->SetTitleSize(0.02); | |
357 | histoRPactivedr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
358 | histoRPactivedr[ii]->SetMarkerStyle(24+ii); | |
359 | histoRPactivedr[ii]->SetMarkerColor(4); | |
360 | ||
361 | sprintf(name,"histoRAWoverthmodules%d", ii); | |
362 | sprintf(title,"Trend of the over th modules %s RAW", histoname[ii].Data()); | |
363 | histoRAWoverthmodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
364 | histoRAWoverthmodules[ii]->SetStats(0); | |
365 | histoRAWoverthmodules[ii]->GetXaxis()->SetTitle("# Run"); | |
366 | histoRAWoverthmodules[ii]->GetXaxis()->SetTicks("-"); | |
367 | histoRAWoverthmodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
368 | histoRAWoverthmodules[ii]->GetXaxis()->SetTickLength(0.01); | |
369 | histoRAWoverthmodules[ii]->GetXaxis()->SetTitleSize(0.02); | |
370 | histoRAWoverthmodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
371 | histoRAWoverthmodules[ii]->GetYaxis()->SetTitle("modules"); | |
372 | histoRAWoverthmodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
373 | histoRAWoverthmodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
374 | histoRAWoverthmodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
375 | histoRAWoverthmodules[ii]->SetMarkerStyle(20+ii); | |
376 | histoRAWoverthmodules[ii]->SetMarkerColor(1+ii); | |
377 | ||
378 | sprintf(name,"histoRPoverthmodules%d", ii); | |
379 | sprintf(title,"Trend of the over th modules %s RP", histoname[ii].Data()); | |
380 | histoRPoverthmodules[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
381 | histoRPoverthmodules[ii]->SetStats(0); | |
382 | histoRPoverthmodules[ii]->GetXaxis()->SetTitle("# Run"); | |
383 | histoRPoverthmodules[ii]->GetXaxis()->SetTicks("-"); | |
384 | histoRPoverthmodules[ii]->GetXaxis()->SetLabelSize(0.02); | |
385 | histoRPoverthmodules[ii]->GetXaxis()->SetTickLength(0.01); | |
386 | histoRPoverthmodules[ii]->GetXaxis()->SetTitleOffset(-2.); | |
387 | histoRPoverthmodules[ii]->GetYaxis()->SetTitle("modules"); | |
388 | histoRPoverthmodules[ii]->GetYaxis()->SetLabelSize(0.02); | |
389 | histoRPoverthmodules[ii]->GetYaxis()->SetTitleSize(0.02); | |
390 | histoRPoverthmodules[ii]->GetYaxis()->SetTitleOffset(1.5); | |
391 | histoRPoverthmodules[ii]->SetMarkerStyle(20+ii); | |
392 | histoRPoverthmodules[ii]->SetMarkerColor(1+ii); | |
393 | ||
394 | ||
395 | sprintf(name,"histoRAWoverthdr%d", ii); | |
396 | sprintf(title,"Trend of the over th drift regions %s RAW", histoname[ii].Data()); | |
397 | histoRAWoverthdr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
398 | histoRAWoverthdr[ii]->SetStats(0); | |
399 | histoRAWoverthdr[ii]->GetXaxis()->SetTitle("# Run"); | |
400 | histoRAWoverthdr[ii]->GetXaxis()->SetTicks("-"); | |
401 | histoRAWoverthdr[ii]->GetXaxis()->SetLabelSize(0.02); | |
402 | histoRAWoverthdr[ii]->GetXaxis()->SetTickLength(0.01); | |
403 | histoRAWoverthdr[ii]->GetXaxis()->SetTitleSize(0.02); | |
404 | histoRAWoverthdr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
405 | histoRAWoverthdr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
406 | histoRAWoverthdr[ii]->GetYaxis()->SetLabelSize(0.02); | |
407 | histoRAWoverthdr[ii]->GetYaxis()->SetTitleSize(0.02); | |
408 | histoRAWoverthdr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
409 | histoRAWoverthdr[ii]->SetMarkerStyle(20+ii); | |
410 | histoRAWoverthdr[ii]->SetMarkerColor(1+ii); | |
411 | ||
412 | ||
413 | sprintf(name,"histoRPoverthdr%d", ii); | |
414 | sprintf(title,"Trend of the over th drift regions %s RP", histoname[ii].Data()); | |
415 | histoRPoverthdr[ii]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
416 | histoRPoverthdr[ii]->SetStats(0); | |
417 | histoRPoverthdr[ii]->GetXaxis()->SetTitle("# Run"); | |
418 | histoRPoverthdr[ii]->GetXaxis()->SetTicks("-"); | |
419 | histoRPoverthdr[ii]->GetXaxis()->SetLabelSize(0.02); | |
420 | histoRPoverthdr[ii]->GetXaxis()->SetTickLength(0.01); | |
421 | histoRPoverthdr[ii]->GetXaxis()->SetTitleSize(0.02); | |
422 | histoRPoverthdr[ii]->GetXaxis()->SetTitleOffset(-2.); | |
423 | histoRPoverthdr[ii]->GetYaxis()->SetTitle("Drift Regions"); | |
424 | histoRPoverthdr[ii]->GetYaxis()->SetLabelSize(0.02); | |
425 | histoRPoverthdr[ii]->GetYaxis()->SetTitleSize(0.02); | |
426 | histoRPoverthdr[ii]->GetYaxis()->SetTitleOffset(1.5); | |
427 | histoRPoverthdr[ii]->SetMarkerStyle(20+ii); | |
428 | histoRPoverthdr[ii]->SetMarkerColor(1+ii); | |
429 | ||
430 | } | |
431 | ||
432 | for(Int_t layer=3;layer<5;layer++) | |
433 | { | |
434 | sprintf(name,"histochargetrend_%d", layer); | |
435 | sprintf(title,"Trend of the Charge of the Layer %d", layer); | |
436 | histochargetrend[layer-3]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
437 | histochargetrend[layer-3]->SetStats(0); | |
438 | histochargetrend[layer-3]->GetXaxis()->SetTicks("-"); | |
439 | histochargetrend[layer-3]->GetXaxis()->SetLabelSize(0.02); | |
440 | histochargetrend[layer-3]->GetXaxis()->SetTickLength(0.01); | |
441 | histochargetrend[layer-3]->GetYaxis()->SetTitleSize(0.02); | |
442 | histochargetrend[layer-3]->GetXaxis()->SetTitleOffset(-2.); | |
443 | histochargetrend[layer-3]->GetXaxis()->SetLabelSize(0.02); | |
444 | histochargetrend[layer-3]->GetYaxis()->SetTitleSize(0.02); | |
445 | histochargetrend[layer-3]->GetYaxis()->SetTitleOffset(1.5); | |
446 | histochargetrend[layer-3]->GetXaxis()->SetTitle("# Run"); | |
447 | histochargetrend[layer-3]->GetYaxis()->SetTitle("keV"); | |
448 | histochargetrend[layer-3]->SetMinimum(0.); | |
449 | histochargetrend[layer-3]->SetMaximum(250.); | |
450 | histochargetrend[layer-3]->SetMarkerStyle(20); | |
451 | histochargetrend[layer-3]->SetMarkerSize(1); | |
452 | histochargetrend[layer-3]->SetMarkerColor(kGreen+4); | |
453 | histochargetrend[layer-3]->SetFillColor(42); | |
454 | ||
455 | ||
456 | sprintf(name,"historadiustrend_%d", layer); | |
457 | sprintf(title,"Trend of the radius of the Layer %d", layer); | |
458 | historadiustrend[layer-3]=new TH1F(name,title,n.size(),0.,(float)n.size()); | |
459 | historadiustrend[layer-3]->SetStats(0); | |
460 | historadiustrend[layer-3]->GetXaxis()->SetTicks("-"); | |
461 | historadiustrend[layer-3]->GetXaxis()->SetLabelSize(0.02); | |
462 | historadiustrend[layer-3]->GetXaxis()->SetTickLength(0.01); | |
463 | historadiustrend[layer-3]->GetXaxis()->SetTitleSize(0.02); | |
464 | historadiustrend[layer-3]->GetXaxis()->SetTitleOffset(-2.); | |
465 | historadiustrend[layer-3]->GetYaxis()->SetLabelSize(0.02); | |
466 | historadiustrend[layer-3]->GetYaxis()->SetTitleSize(0.02); | |
467 | historadiustrend[layer-3]->GetYaxis()->SetTitleOffset(1.5); | |
468 | historadiustrend[layer-3]->GetXaxis()->SetTitle("# Run"); | |
469 | historadiustrend[layer-3]->GetYaxis()->SetTitle("r [cm]"); | |
470 | historadiustrend[layer-3]->SetMinimum(0.); | |
471 | historadiustrend[layer-3]->SetMaximum(26.); | |
472 | historadiustrend[layer-3]->SetMarkerStyle(20); | |
473 | historadiustrend[layer-3]->SetMarkerSize(1); | |
474 | historadiustrend[layer-3]->SetMarkerColor(kGreen+4); | |
475 | historadiustrend[layer-3]->SetFillColor(42); | |
476 | } | |
2a250bc5 | 477 | |
62b7a70f | 478 | |
479 | gStyle->SetOptStat(0); | |
480 | ||
481 | TCanvas *canvas[12]; | |
482 | ||
483 | for(Int_t i=0;i<12;i++) | |
484 | { | |
485 | sprintf(name,"canvas%i",i); | |
486 | //printf("--> %s \n",name); | |
487 | ||
488 | canvas[i]=new TCanvas(name,name); | |
489 | ||
490 | } | |
491 | ||
492 | char buffer [10]; | |
493 | for (Int_t irun=0; irun<(Int_t)(n.size());irun++) | |
494 | { | |
495 | if(kUseOriginalFile) sprintf(FileName, "run%d/%s/File.QA.%d.%s.%s.Run.%d.root", n[irun],pass,year,period,pass,n[irun]); | |
496 | else sprintf(FileName, "run%d/%s/%s.root", n[irun],pass,filename); | |
2a250bc5 | 497 | |
498 | TFile mergedfile(FileName); | |
499 | if(kUseOriginalFile){ | |
62b7a70f | 500 | if(mergedfile.GetKey("ITS")==0x0){ |
501 | printf("run %d In this run ITS QA has not been executed.--- Exit file\n",n[irun]); | |
502 | continue; | |
503 | } | |
2a250bc5 | 504 | } |
62b7a70f | 505 | sprintf(buffer, "%d", n[irun]); |
506 | if(kUseOriginalFile)sprintf(filepath,"ITS/Raws/%s/Expert/%s_SDDRawDataCheck",especiename,especiename); | |
507 | else sprintf(filepath,"%s_SDDRawDataCheck",especiename); | |
508 | sprintf(runnmbr,"run%d",n[irun]); | |
509 | //printf("%s %s\n",filepath,runnmbr); | |
510 | histocharge=(TH1F*)(mergedfile.Get(filepath)); | |
2a250bc5 | 511 | if(histocharge) |
512 | { | |
62b7a70f | 513 | histoRAWeventtrend->Fill(buffer,(histocharge->GetBinContent(event))); |
514 | } | |
2a250bc5 | 515 | |
62b7a70f | 516 | if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/Expert/%s_SDDRecPointDataCheck",especiename,especiename); |
517 | else sprintf(filepath,"%s_SDDRecPointCheck",especiename); | |
518 | sprintf(runnmbr,"run%d",n[irun]); | |
519 | //printf("%s %s\n",filepath,runnmbr); | |
520 | histochargerp=(TH1F*)(mergedfile.Get(filepath)); | |
521 | if(histochargerp) | |
2a250bc5 | 522 | { |
62b7a70f | 523 | histoRPeventtrend->Fill(buffer,histochargerp->GetBinContent(event)); |
524 | } | |
525 | for(Int_t iindex=0;iindex<3;iindex++) | |
526 | { | |
527 | if(histocharge) | |
528 | { | |
529 | histoRAWnormevents[iindex]->Fill(buffer,histocharge->GetBinContent(normevtRAW[iindex])); | |
530 | histoRAWfilledmodules[iindex]->Fill(buffer,histocharge->GetBinContent(filledmodRAW[iindex])); | |
531 | histoRAWfilleddr[iindex]->Fill(buffer,histocharge->GetBinContent(filleddrRAW[iindex])); | |
532 | histoRAWactivemodules[iindex]->Fill(buffer,histocharge->GetBinContent(activemodRAW[iindex])); | |
533 | histoRAWactivedr[iindex]->Fill(buffer,histocharge->GetBinContent(activedrRAW[iindex])); | |
534 | histoRAWoverthmodules[iindex]->Fill(buffer,histocharge->GetBinContent(overthmodRAW[iindex])); | |
535 | histoRAWoverthdr[iindex]->Fill(buffer,histocharge->GetBinContent(overthdrRAW[iindex])); | |
536 | } | |
537 | ||
538 | if(histochargerp) | |
539 | { | |
540 | histoRPnormevents[iindex]->Fill(buffer,histochargerp->GetBinContent(normevtRP[iindex])); | |
541 | histoRPfilledmodules[iindex]->Fill(buffer,histochargerp->GetBinContent(filledmodRP[iindex])); | |
542 | histoRPfilleddr[iindex]->Fill(buffer,histochargerp->GetBinContent(filleddrRP[iindex])); | |
543 | histoRPactivemodules[iindex]->Fill(buffer,histochargerp->GetBinContent(activemodRP[iindex])); | |
544 | histoRPactivedr[iindex]->Fill(buffer,histochargerp->GetBinContent(activedrRP[iindex])); | |
545 | histoRPoverthmodules[iindex]->Fill(buffer,histochargerp->GetBinContent(overthmodRP[iindex])); | |
546 | histoRPoverthdr[iindex]->Fill(buffer,histochargerp->GetBinContent(overthdrRP[iindex])); | |
547 | if(iindex<2){ | |
548 | histochargetrend[iindex]->Fill(buffer,histochargerp->GetBinContent(chargeindex[iindex])); | |
549 | histochargetrend[iindex]->SetBinError(irun+1,histochargerp->GetBinError(chargeindex[iindex])); | |
550 | historadiustrend[iindex]->Fill(buffer,histochargerp->GetBinContent(radiusindex[iindex])); | |
551 | historadiustrend[iindex]->SetBinError(irun+1,histochargerp->GetBinError(radiusindex[iindex])); | |
552 | } | |
553 | ||
554 | } | |
555 | } | |
2a250bc5 | 556 | histocharge=NULL; |
62b7a70f | 557 | histochargerp=NULL; |
558 | }//end loop on run | |
559 | ||
560 | canvas[3]->cd(); | |
561 | // histoRAWeventtrend->GetXaxis()->LabelsOption("v"); | |
562 | histoRAWeventtrend->Draw("E0"); | |
563 | // histoRPeventtrend->GetXaxis()->LabelsOption("v"); | |
564 | histoRPeventtrend->Draw("E0SAME"); | |
565 | legendevents->AddEntry(histoRAWeventtrend,histolegend3[0].Data(),"P"); | |
566 | legendevents->AddEntry(histoRPeventtrend,histolegend3[1].Data(),"P"); | |
567 | legendevents->Draw(); | |
568 | canvas[3]->Update(); | |
569 | ||
570 | canvas[4]->Divide(2,1); | |
571 | canvas[4]->cd(1); | |
572 | Char_t legendtext[50]; | |
573 | for(Int_t i=0;i<3;i++) | |
574 | { | |
575 | // histoRAWnormevents[i]->GetXaxis()->LabelsOption("v"); | |
576 | histoRAWnormevents[i]->Draw(drawoptionevents[i].Data()); | |
577 | // sprintf(legendtext,"%s %s",histolegend); | |
578 | legendchecks->AddEntry(histoRAWnormevents[i],histolegend[i].Data(),"P"); | |
579 | } | |
580 | legendchecks->Draw(); | |
581 | canvas[4]->cd(2); | |
582 | ||
583 | for(Int_t i=0;i<3;i++) | |
584 | { | |
585 | histoRPnormevents[i]->Draw(drawoptionevents[i].Data()); | |
586 | //legendchecks->AddEntry(histoRPnormevent,histolegend[i].Data(),"P"); | |
587 | ||
588 | } | |
589 | legendchecks->Draw("same"); | |
590 | canvas[4]->Update(); | |
591 | ||
592 | canvas[5]->Divide(2,1); | |
593 | canvas[5]->cd(1); | |
594 | for(Int_t i=1;i<3;i++) | |
595 | { | |
596 | //histoRAWfilledmodules[i]->GetXaxis()->LabelsOption("v"); | |
597 | histoRAWfilledmodules[i]->Draw(drawoptionfill[i].Data()); | |
598 | sprintf(legendtext,"%s %s",histolegend[i].Data(),histolegend2[0].Data()); | |
599 | legendchecks2->AddEntry(histoRAWfilledmodules[i],legendtext,"P"); | |
600 | //histoRAWactivemodules[i]->GetXaxis()->LabelsOption("v"); | |
601 | histoRAWactivemodules[i]->Draw(drawoptionactive[i].Data()); | |
602 | sprintf(legendtext,"%s %s",histolegend[i].Data(),histolegend2[1].Data()); | |
603 | legendchecks2->AddEntry(histoRAWactivemodules[i],legendtext,"P"); | |
604 | } | |
605 | legendchecks2->Draw("same"); | |
606 | canvas[5]->cd(2); | |
607 | for(Int_t i=1;i<3;i++) | |
608 | { | |
609 | //histoRPfilledmodules[i]->GetXaxis()->LabelsOption("v"); | |
610 | histoRPfilledmodules[i]->Draw(drawoptionfill[i].Data()); | |
611 | //histoRPactivemodules[i]->GetXaxis()->LabelsOption("v"); | |
612 | histoRPactivemodules[i]->Draw(drawoptionactive[i].Data()); | |
613 | } | |
614 | legendchecks2->Draw("same"); | |
615 | canvas[5]->Update(); | |
616 | ||
617 | canvas[6]->Divide(2,1); | |
618 | canvas[6]->cd(1); | |
619 | for(Int_t i=1;i<3;i++) | |
620 | { | |
621 | //histoRAWfilleddr[i]->GetXaxis()->LabelsOption("v"); | |
622 | histoRAWfilleddr[i]->Draw(drawoptionfill[i].Data()); | |
623 | //histoRAWactivedr[i]->GetXaxis()->LabelsOption("v"); | |
624 | histoRAWactivedr[i]->Draw(drawoptionactive[i].Data()); | |
625 | } | |
626 | legendchecks2->Draw("same"); | |
627 | canvas[6]->cd(2); | |
628 | for(Int_t i=1;i<3;i++) | |
629 | { | |
630 | //histoRPfilleddr[i]->GetXaxis()->LabelsOption("v"); | |
631 | histoRPfilleddr[i]->Draw(drawoptionfill[i].Data()); | |
632 | //histoRPactivedr[i]->GetXaxis()->LabelsOption("v"); | |
633 | histoRPactivedr[i]->Draw(drawoptionactive[i].Data()); | |
634 | } | |
635 | legendchecks2->Draw("same"); | |
636 | canvas[6]->Update(); | |
637 | ||
638 | ||
639 | ||
640 | /////////////////////////////////////////////// | |
641 | ||
642 | ||
643 | ||
644 | canvas[10]->Divide(2,1); | |
645 | canvas[10]->cd(1); | |
646 | ||
647 | //histoRAWfilledmodules[i]->GetXaxis()->LabelsOption("v"); | |
648 | histoRAWfilledmodules[0]->Draw(drawoptionfill[0].Data()); | |
649 | sprintf(legendtext,"%s %s",histolegend[0].Data(),histolegend2[0].Data()); | |
650 | legendchecks3->AddEntry(histoRAWfilledmodules[0],legendtext,"P"); | |
651 | //histoRAWactivemodules[i]->GetXaxis()->LabelsOption("v"); | |
652 | histoRAWactivemodules[0]->Draw(drawoptionactive[0].Data()); | |
653 | sprintf(legendtext,"%s %s",histolegend[0].Data(),histolegend2[1].Data()); | |
654 | legendchecks3->AddEntry(histoRAWactivemodules[0],legendtext,"P"); | |
655 | legendchecks3->Draw("same"); | |
656 | canvas[10]->cd(2); | |
657 | ||
658 | //histoRPfilledmodules[i]->GetXaxis()->LabelsOption("v"); | |
659 | histoRPfilledmodules[0]->Draw(drawoptionfill[0].Data()); | |
660 | //histoRPactivemodules[i]->GetXaxis()->LabelsOption("v"); | |
661 | histoRPactivemodules[0]->Draw(drawoptionactive[0].Data()); | |
662 | legendchecks3->Draw("same"); | |
663 | canvas[10]->Update(); | |
664 | ||
665 | canvas[11]->Divide(2,1); | |
666 | canvas[11]->cd(1); | |
667 | ||
668 | //histoRAWfilleddr[i]->GetXaxis()->LabelsOption("v"); | |
669 | histoRAWfilleddr[0]->Draw(drawoptionfill[0].Data()); | |
670 | //histoRAWactivedr[i]->GetXaxis()->LabelsOption("v"); | |
671 | histoRAWactivedr[0]->Draw(drawoptionactive[0].Data()); | |
672 | legendchecks3->Draw("same"); | |
673 | canvas[11]->cd(2); | |
674 | ||
675 | //histoRPfilleddr[i]->GetXaxis()->LabelsOption("v"); | |
676 | histoRPfilleddr[0]->Draw(drawoptionfill[0].Data()); | |
677 | //histoRPactivedr[i]->GetXaxis()->LabelsOption("v"); | |
678 | histoRPactivedr[0]->Draw(drawoptionactive[0].Data()); | |
679 | legendchecks3->Draw("same"); | |
680 | canvas[11]->Update(); | |
681 | ||
682 | ||
683 | /////////////////////////////////////////////// | |
684 | ||
685 | canvas[8]->Divide(2,1); | |
686 | canvas[8]->cd(1); | |
687 | for(Int_t i=0;i<3;i++) | |
688 | { | |
689 | //histoRAWoverthmodules[i]->GetXaxis()->LabelsOption("v"); | |
690 | histoRAWoverthmodules[i]->Draw(drawoptionfill[i].Data()); | |
691 | //histoRAWoverthmodules[i]->Draw(drawoptionactive[i].Data()); | |
692 | } | |
693 | canvas[8]->cd(2); | |
694 | for(Int_t i=0;i<3;i++) | |
695 | { | |
696 | //histoRPoverthmodules[i]->GetXaxis()->LabelsOption("v"); | |
697 | histoRPoverthmodules[i]->Draw(drawoptionfill[i].Data()); | |
698 | //histoRPoverthmodules[i]->Draw(drawoptionactive[i].Data()); | |
699 | } | |
700 | canvas[8]->Update(); | |
701 | ||
702 | canvas[9]->Divide(2,1); | |
703 | canvas[9]->cd(1); | |
704 | for(Int_t i=0;i<3;i++) | |
705 | { | |
706 | histoRAWoverthdr[i]->GetXaxis()->LabelsOption("v"); | |
707 | histoRAWoverthdr[i]->Draw(drawoptionfill[i].Data()); | |
708 | //histoRAWoverthdr[i]->Draw(drawoptionactive[i].Data()); | |
709 | } | |
710 | canvas[9]->cd(2); | |
711 | for(Int_t i=0;i<3;i++) | |
712 | { | |
713 | //histoRPoverthdr[i]->GetXaxis()->LabelsOption("v"); | |
714 | histoRPoverthdr[i]->Draw(drawoptionfill[i].Data()); | |
715 | //histoRPoverthdr[i]->Draw(drawoptionactive[i].Data()); | |
716 | } | |
717 | canvas[9]->Update(); | |
718 | ||
719 | //Int_t kk=0; | |
720 | ||
721 | ||
722 | printf("Total runs: %d \n",(int)(n.size())); | |
723 | canvas[0]->Divide(2,1); | |
724 | ||
725 | for(Int_t layer=3;layer<5;layer++){ | |
2a250bc5 | 726 | canvas[0]->SetFillColor(46); |
727 | canvas[0]->cd(layer-2)->SetFillColor(46); | |
62b7a70f | 728 | //histochargetrend[layer-3]->GetXaxis()->LabelsOption("v"); |
2a250bc5 | 729 | histochargetrend[layer-3]->SetMarkerStyle(20); |
730 | histochargetrend[layer-3]->SetMarkerSize(1); | |
731 | histochargetrend[layer-3]->SetMarkerColor(kGreen+4); | |
732 | histochargetrend[layer-3]->SetFillColor(42); | |
733 | canvas[0]->cd(layer-2)->SetFrameFillColor(kAzure-9); | |
62b7a70f | 734 | // histochargetrend[layer-3]->GetXaxis()->LabelsOption("v"); |
2a250bc5 | 735 | histochargetrend[layer-3]->SetBarWidth(0.9); |
736 | histochargetrend[layer-3]->SetBarOffset(0.05); | |
737 | histochargetrend[layer-3]->DrawCopy("P"); | |
62b7a70f | 738 | canvas[0]->Update(); |
2a250bc5 | 739 | |
62b7a70f | 740 | canvas[7]->cd(); |
741 | canvas[7]->SetFillColor(46); | |
742 | //canvas[7]->SetFillColor(46); | |
743 | //historadiustrend[layer-3]->GetXaxis()->LabelsOption("v"); | |
744 | historadiustrend[layer-3]->SetMarkerStyle(20); | |
745 | historadiustrend[layer-3]->SetMarkerSize(1); | |
746 | historadiustrend[layer-3]->SetMarkerColor(8+layer-3); | |
747 | legendchecks4->AddEntry(historadiustrend[layer-3],histolegend[layer-2].Data(),"P"); | |
748 | //historadiustrend[layer-3]->SetFillColor(42); | |
749 | canvas[7]->SetFrameFillColor(kAzure-9); | |
750 | historadiustrend[layer-3]->SetBarWidth(0.9); | |
751 | historadiustrend[layer-3]->SetBarOffset(0.05); | |
752 | historadiustrend[layer-3]->DrawCopy(drawoptionevents[layer-3].Data()); | |
753 | canvas[7]->Update(); | |
754 | } | |
755 | legendchecks4->Draw("same"); | |
756 | canvas[7]->Update(); | |
757 | canvas[1]->Divide(2,1); | |
758 | canvas[2]->Divide(2,1); | |
759 | //canvas[7]->Divide(2,1); | |
760 | ||
761 | if(kDOSuperimpose==kTRUE) | |
762 | { | |
763 | Int_t jj=0; | |
764 | for (Int_t irun=0; irun<(Int_t)(n.size());irun++) | |
765 | { | |
766 | for(Int_t ilayer=3;ilayer<5;ilayer++) | |
767 | { | |
768 | if(kUseOriginalFile)sprintf(FileName,"run%d/%s/File.QA.%d.%s.%s.Run.%d.root",n[irun],pass,year,period,pass,n[irun]); | |
769 | else sprintf(FileName, "run%d/%s/%s.root", n[irun],pass,filename); | |
770 | ||
771 | TFile mergedfile(FileName); | |
772 | ||
773 | if(kUseOriginalFile){ | |
774 | if(mergedfile.GetKey("ITS")==0x0){ | |
775 | printf("Run %d, In this run ITS QA has not been executed.-- Exit file\n",n[irun]); | |
776 | continue; | |
777 | } | |
778 | } | |
779 | if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDLay%dTotCh",especiename,especiename,ilayer); | |
780 | else sprintf(filepath,"%s_SDDLay%dTotCh",especiename,ilayer); | |
781 | histocharge=(TH1F*)(mergedfile.Get(filepath)); | |
782 | ||
783 | if(histocharge) | |
784 | { | |
785 | sprintf(buffer, "%d", n[irun]); | |
786 | ||
787 | fmax[ilayer-3]=histocharge->GetMaximum(); | |
788 | if (jj==0) { fmaxold=fmax[ilayer-3];} | |
789 | if (jj!=0) { if(fmaxold<fmax[ilayer-3]) { fmaxold=fmax[ilayer-3];} } | |
790 | //j++; | |
791 | }//end if histocharge | |
792 | ||
793 | histocharge=NULL; | |
794 | ||
795 | //drift time | |
796 | ||
797 | if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDdrifttime_Layer%d",especiename,especiename,ilayer); | |
798 | else sprintf(filepath,"%s_SDDdrifttime_Layer%d",especiename,ilayer); | |
799 | histocharge=(TH1F*)(mergedfile.Get(filepath)); | |
800 | ||
801 | if(histocharge) | |
802 | { | |
803 | sprintf(buffer, "%d", n[irun]); | |
804 | fmaxtime=histocharge->GetMaximum(); | |
805 | if (jj==0) { fmaxoldtime=fmaxtime;} | |
806 | if (jj!=0) { if(fmaxoldtime<fmaxtime) { fmaxoldtime=fmaxtime;} } | |
807 | //j++; | |
808 | }//end if histocharge | |
809 | jj++; | |
810 | histocharge=NULL; | |
811 | ||
812 | }//end for run | |
813 | }//end layer | |
814 | ||
815 | fmaxmargin[0]=fmaxold; | |
816 | fmaxmargintime[0]=1.023*fmaxoldtime; | |
817 | ||
818 | ||
819 | fmaxmargin[1]=fmaxmargin[0]; | |
820 | fmaxmargintime[1]=fmaxmargintime[0]; | |
821 | ||
822 | ||
823 | for(Int_t layer=3;layer<5;layer++){ | |
824 | ||
825 | printf("Max Y Range is %4.1f time %4.1f\n",fmaxmargin[layer-3],fmaxmargintime[layer-3]); | |
2a250bc5 | 826 | j=0; |
827 | hh=0; | |
828 | Int_t color=0; | |
829 | for (Int_t irun=0; irun< (Int_t)(n.size());irun++) | |
830 | { | |
831 | ||
832 | if(kUseOriginalFile) sprintf(FileName, "run%d/%s/File.QA.%d.%s.%s.Run.%d.root", n[irun],pass,year,period,pass,n[irun]); | |
833 | else sprintf(FileName, "run%d/%s/%s.root", n[irun],pass,filename); | |
834 | ||
835 | TFile mergedfile(FileName); | |
836 | if(kUseOriginalFile){ | |
62b7a70f | 837 | if(mergedfile.GetKey("ITS")==0x0){ |
838 | printf("run %d In this run ITS QA has not been executed.--- Exit file\n",n[irun]); | |
839 | continue; | |
840 | } | |
2a250bc5 | 841 | } |
842 | if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDLay%dTotCh",especiename,especiename,layer); | |
843 | else sprintf(filepath,"%s_SDDLay%dTotCh",especiename,layer); | |
844 | sprintf(runnmbr,"run%d",n[irun]); | |
845 | printf("%s %s",filepath,runnmbr); | |
846 | histocharge=(TH1F*)(mergedfile.Get(filepath)); | |
847 | if(histocharge) | |
848 | { | |
849 | color=2+j; | |
850 | if (color>=12 && color<=27) { color=j+28; } | |
851 | histocharge->SetLineColor(color); | |
852 | if (j==0) | |
853 | { | |
854 | canvas[1]->cd(layer-2); | |
855 | ||
856 | canvas[1]->cd(layer-2)->SetFrameFillColor(kGray+3); | |
62b7a70f | 857 | histocharge->SetMaximum(fmaxmargin[layer-3]); |
2a250bc5 | 858 | histocharge->GetYaxis()->SetTitle(""); |
859 | histocharge->DrawNormalized(); | |
62b7a70f | 860 | canvas[1]->cd(layer-2)->Update(); |
861 | histocharge->GetYaxis()->SetRangeUser(0.,fmaxmargin[layer-3]); | |
2a250bc5 | 862 | canvas[1]->cd(layer-2)->Update(); |
863 | } | |
864 | if (j!=0) | |
865 | { | |
62b7a70f | 866 | //printf("new j %d\n",j); |
2a250bc5 | 867 | canvas[1]->cd(layer-2); |
868 | histocharge->DrawNormalized("same"); | |
869 | canvas[1]->cd(layer-2)->Update(); | |
870 | } | |
871 | if(layer==3)legend->AddEntry(histocharge,runnmbr,"l"); | |
872 | canvas[1]->cd(layer-2); | |
62b7a70f | 873 | legend->Draw("same"); |
2a250bc5 | 874 | canvas[1]->Update(); |
875 | j++; | |
876 | printf("...Found\n"); | |
877 | ||
878 | }//end if histocharge | |
879 | else{printf("...Not Found....\n");} | |
880 | histocharge=NULL; | |
881 | ||
882 | //======================================================== Drift Time | |
883 | if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDdrifttime_Layer%d",especiename,especiename,layer); | |
884 | else sprintf(filepath,"%s_SDDdrifttime_Layer%d",especiename,layer); | |
885 | sprintf(runnmbr,"run %d",n[irun]); | |
886 | printf("%s %s",filepath,runnmbr); | |
887 | histocharge=(TH1F*)(mergedfile.Get(filepath)); | |
888 | if(histocharge) | |
889 | { | |
890 | printf("...Found\n"); | |
891 | histocharge->SetLineColor(color); | |
892 | if (hh==0) | |
893 | { | |
894 | canvas[2]->cd(layer-2); | |
895 | canvas[2]->cd(layer-2)->SetFrameFillColor(kGray+3); | |
62b7a70f | 896 | histocharge->SetMaximum(fmaxmargintime[layer-3]); |
2a250bc5 | 897 | histocharge->GetYaxis()->SetTitle(""); |
898 | histocharge->DrawNormalized(); | |
2a250bc5 | 899 | } |
900 | if (hh!=0) | |
901 | { | |
902 | canvas[2]->cd(layer-2); | |
903 | histocharge->DrawNormalized("same"); | |
904 | } | |
905 | if(layer==3)legend2->AddEntry(histocharge,runnmbr,"l"); | |
906 | canvas[2]->cd(layer-2); | |
62b7a70f | 907 | legend2->Draw("same"); |
2a250bc5 | 908 | canvas[2]->Update(); |
909 | hh++; | |
910 | }//end if histocharge | |
911 | else{printf("...Not Found....\n");} | |
912 | histocharge=NULL; | |
913 | }//enf for | |
914 | }//end for layer | |
62b7a70f | 915 | } |
2a250bc5 | 916 | |
917 | TFile trendfile(Form("SDDQAtrend%s%s.root",period,pass),"recreate"); | |
918 | trendfile.cd(); | |
62b7a70f | 919 | for(Int_t ican=0;ican<10;ican++)canvas[ican]->Write(); |
2a250bc5 | 920 | trendfile.Close(); |
921 | Char_t psfile[50]; | |
922 | sprintf(psfile,"SDDtrend%s%s.ps",period,pass); | |
923 | canvas[0]->Print(Form("%s[",psfile)); | |
62b7a70f | 924 | for(Int_t ifile=0;ifile<12;ifile++){canvas[ifile]->Print(psfile);} |
2a250bc5 | 925 | |
62b7a70f | 926 | canvas[11]->Print(Form("%s]",psfile)); |
927 | ||
2a250bc5 | 928 | |
929 | delete histocharge; | |
62b7a70f | 930 | delete histochargerp; |
2a250bc5 | 931 | |
932 | ||
933 | ||
934 | }//end macro |