1 |
/* |
2 |
* TriggerScanBasic |
3 |
* Author Nagni |
4 |
* Modified by G. De Rosa |
5 |
* Version 1.2 - Modified by G. De Rosa |
6 |
* Date 27 Apr 2006 |
7 |
* Version 1.4 - Modified by G. De Rosa |
8 |
* Date 26 Jun 2006: Inserted dependences on OnBoardTime and modified histogram ranges. |
9 |
* Version 1.5 - Modified by G. De Rosa |
10 |
* Date 9 Mar 2007: To read correctly the OBT changed the type of time variables from signed to unsigned |
11 |
* |
12 |
* Description: |
13 |
* Describe the performance of the Trigger. |
14 |
* |
15 |
* Parameters: |
16 |
* TString base - the path to the root directory for the specific Pamela unpack session |
17 |
* TString outDirectory - the path where to save the output image (Default = base) |
18 |
* TString format - the format which will be used for save the produced images (Default = "ps") |
19 |
*/ |
20 |
|
21 |
#include <TROOT.h> |
22 |
#include <TFile.h> |
23 |
#include <TString.h> |
24 |
#include <TObjString.h> |
25 |
#include <TTree.h> |
26 |
#include <TBranch.h> |
27 |
#include <TGraph.h> |
28 |
#include <TStyle.h> |
29 |
#include <TH1.h> |
30 |
#include <TH1F.h> |
31 |
#include <TH2S.h> |
32 |
#include <TPaveText.h> |
33 |
#include <TCanvas.h> |
34 |
#include <TLatex.h> |
35 |
#include <TGraph.h> |
36 |
#include <physics/trigger/TriggerEvent.h> |
37 |
#include <EventHeader.h> |
38 |
#include <PscuHeader.h> |
39 |
#include <iostream> |
40 |
|
41 |
using namespace std; |
42 |
|
43 |
char bit(int decimal, char pos) |
44 |
{ |
45 |
return( (decimal>>pos)%2 ); |
46 |
} |
47 |
|
48 |
void TriggerScanBasic(TString base, TString outDirectory = "", TString format = ""){ |
49 |
|
50 |
ULong_t lastime, firstime; |
51 |
double obmin=0.; |
52 |
double obmax=0.; |
53 |
stringstream oss, oss1, oss2, oss3, noentries, stringa; |
54 |
std::stringstream sst; |
55 |
if (outDirectory == "") outDirectory = base.Data(); |
56 |
TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString(); |
57 |
|
58 |
TFile *file =new TFile(base.Data()) ; |
59 |
if (!file){ |
60 |
printf("file not Found \n"); |
61 |
return; |
62 |
} |
63 |
|
64 |
TTree *PhysicsTr = (TTree*)file->Get("Physics"); |
65 |
TBranch *TrigBr = PhysicsTr->GetBranch("Trigger"); |
66 |
TBranch *HeadBr = PhysicsTr->GetBranch("Header"); |
67 |
|
68 |
pamela::EventHeader *eh = 0; |
69 |
pamela::PscuHeader *ph = 0; |
70 |
|
71 |
pamela::trigger::TriggerEvent *triggerEvent = 0; |
72 |
|
73 |
PhysicsTr->SetBranchAddress("Trigger", &triggerEvent); |
74 |
PhysicsTr->SetBranchAddress("Header", &eh); |
75 |
|
76 |
Long64_t nevents = TrigBr->GetEntries(); |
77 |
if (nevents <= 0) { |
78 |
printf("nevents = %llu \n", nevents); |
79 |
file->Close(); |
80 |
return; |
81 |
} |
82 |
|
83 |
//-------------- to know the max and min OBT ----------------------------// |
84 |
HeadBr->GetEntry(0); |
85 |
ph = eh->GetPscuHeader(); |
86 |
firstime = ph->GetOrbitalTime(); |
87 |
HeadBr->GetEntry(nevents); |
88 |
ph = eh->GetPscuHeader(); |
89 |
lastime = ph->GetOrbitalTime(); |
90 |
int i =0; |
91 |
while(i < nevents){ |
92 |
HeadBr->GetEntry(i); |
93 |
ph = eh->GetPscuHeader(); |
94 |
if((ph->GetOrbitalTime()) <= firstime) firstime=ph->GetOrbitalTime(); |
95 |
if((ph->GetOrbitalTime()) >= lastime) lastime=ph->GetOrbitalTime(); |
96 |
i++; |
97 |
} |
98 |
|
99 |
//------------------------ First histogram -----------------------------------// |
100 |
obmin=firstime; |
101 |
obmax=lastime; |
102 |
Int_t nbin = (lastime-firstime)/60000; // on 1 min |
103 |
gStyle->SetOptStat(0); |
104 |
TH1F *h1 = new TH1F ("histo1", "" , nbin, obmin, obmax); |
105 |
TH1F *h2 = new TH1F ("histo2", "" , nbin, obmin, obmax); |
106 |
TH1F *h5 = new TH1F ("histo5", "" , nbin, obmin, obmax); |
107 |
TH1F *LiveTimeMean = new TH1F("LiveTimeMean", sst.str().c_str(),nbin, obmin, obmax); |
108 |
TH1F *DeadTimeMean = new TH1F("DeadTimeMean", sst.str().c_str(),nbin, obmin, obmax); |
109 |
//============================================================== |
110 |
|
111 |
/* Histo DEF */ |
112 |
|
113 |
/* |
114 |
* S4 and Calorimeter Counters histograms |
115 |
*/ |
116 |
TCanvas *S4CalCanvas = new TCanvas("S4CalCanvas","S4CalCanvas", 1280, 1024); |
117 |
S4CalCanvas->Divide(1,2); |
118 |
//---------- |
119 |
sst.str(""); |
120 |
sst << "S4 Counters based on " << base.Data(); |
121 |
//---------- |
122 |
sst.str(""); |
123 |
sst << "Calorimeter Rate Counters based on " << base.Data(); |
124 |
TH1F *S4Cal2Histo = new TH1F("S4Cal2Histo", sst.str().c_str(), 20, 0, 20); |
125 |
|
126 |
// int i = 0; |
127 |
i = 0; |
128 |
Int_t size = nevents; |
129 |
|
130 |
ULong_t UnsOBT=0; |
131 |
|
132 |
Double_t *time = new Double_t[size]; |
133 |
Double_t *evCounter = new Double_t[size]; |
134 |
Double_t *deadTime = new Double_t[size]; |
135 |
Double_t *liveTime = new Double_t[size]; |
136 |
// |
137 |
Double_t *trigrate0 = new Double_t[size]; |
138 |
Double_t *trigrate1 = new Double_t[size]; |
139 |
Double_t *trigrate2 = new Double_t[size]; |
140 |
Double_t *trigrate3 = new Double_t[size]; |
141 |
Double_t *trigrate4 = new Double_t[size]; |
142 |
Double_t *trigrate5 = new Double_t[size]; |
143 |
// |
144 |
Double_t *pmt1 = new Double_t[size]; |
145 |
Double_t *pmt2 = new Double_t[size]; |
146 |
Double_t *pmt3 = new Double_t[size]; |
147 |
// |
148 |
Double_t *s4rate = new Double_t[size]; |
149 |
// |
150 |
Double_t *pmt1_0 = new Double_t[size]; |
151 |
Double_t *pmt1_1 = new Double_t[size]; |
152 |
Double_t *pmt1_2 = new Double_t[size]; |
153 |
Double_t *pmt1_3 = new Double_t[size]; |
154 |
Double_t *pmt1_4 = new Double_t[size]; |
155 |
Double_t *pmt1_5 = new Double_t[size]; |
156 |
Double_t *pmt1_6 = new Double_t[size]; |
157 |
Double_t *pmt1_7 = new Double_t[size]; |
158 |
Double_t *pmt1_8 = new Double_t[size]; |
159 |
Double_t *pmt1_9 = new Double_t[size]; |
160 |
Double_t *pmt1_10 = new Double_t[size]; |
161 |
Double_t *pmt1_11 = new Double_t[size]; |
162 |
Double_t *pmt1_12 = new Double_t[size]; |
163 |
Double_t *pmt1_13 = new Double_t[size]; |
164 |
Double_t *pmt1_14 = new Double_t[size]; |
165 |
Double_t *pmt1_15 = new Double_t[size]; |
166 |
Double_t *pmt1_16 = new Double_t[size]; |
167 |
Double_t *pmt1_17 = new Double_t[size]; |
168 |
Double_t *pmt1_18 = new Double_t[size]; |
169 |
Double_t *pmt1_19 = new Double_t[size]; |
170 |
Double_t *pmt1_20 = new Double_t[size]; |
171 |
Double_t *pmt1_21 = new Double_t[size]; |
172 |
Double_t *pmt1_22 = new Double_t[size]; |
173 |
Double_t *pmt1_23 = new Double_t[size]; |
174 |
// |
175 |
Double_t *pmt2_0 = new Double_t[size]; |
176 |
Double_t *pmt2_1 = new Double_t[size]; |
177 |
Double_t *pmt2_2 = new Double_t[size]; |
178 |
Double_t *pmt2_3 = new Double_t[size]; |
179 |
Double_t *pmt2_4 = new Double_t[size]; |
180 |
Double_t *pmt2_5 = new Double_t[size]; |
181 |
Double_t *pmt2_6 = new Double_t[size]; |
182 |
Double_t *pmt2_7 = new Double_t[size]; |
183 |
Double_t *pmt2_8 = new Double_t[size]; |
184 |
Double_t *pmt2_9 = new Double_t[size]; |
185 |
Double_t *pmt2_10 = new Double_t[size]; |
186 |
Double_t *pmt2_11 = new Double_t[size]; |
187 |
Double_t *pmt2_12 = new Double_t[size]; |
188 |
Double_t *pmt2_13 = new Double_t[size]; |
189 |
Double_t *pmt2_14 = new Double_t[size]; |
190 |
Double_t *pmt2_15 = new Double_t[size]; |
191 |
Double_t *pmt2_16 = new Double_t[size]; |
192 |
Double_t *pmt2_17 = new Double_t[size]; |
193 |
Double_t *pmt2_18 = new Double_t[size]; |
194 |
Double_t *pmt2_19 = new Double_t[size]; |
195 |
Double_t *pmt2_20 = new Double_t[size]; |
196 |
Double_t *pmt2_21 = new Double_t[size]; |
197 |
Double_t *pmt2_22 = new Double_t[size]; |
198 |
Double_t *pmt2_23 = new Double_t[size]; |
199 |
|
200 |
// |
201 |
while(i < nevents){ |
202 |
HeadBr->GetEntry(i); |
203 |
TrigBr->GetEntry(i); |
204 |
|
205 |
/* time vector fill*/ |
206 |
ph = eh->GetPscuHeader(); |
207 |
UnsOBT = ph->GetOrbitalTime(); |
208 |
|
209 |
time[i] = UnsOBT; |
210 |
|
211 |
|
212 |
/* eventCounter vector fill*/ |
213 |
evCounter[i] = triggerEvent->evcount; |
214 |
|
215 |
if( evCounter[i] > 1 ){ |
216 |
|
217 |
/* live time vector fill*/ |
218 |
liveTime[i] = 0.16 * triggerEvent->dltime[0]; |
219 |
|
220 |
|
221 |
if (liveTime[i]<600) h1->Fill(UnsOBT,liveTime[i]); |
222 |
if (liveTime[i]<600) h2->Fill(UnsOBT); |
223 |
|
224 |
/* dead time vector fill*/ |
225 |
deadTime[i] = 0.01 * triggerEvent->dltime[1]; |
226 |
|
227 |
if (deadTime[i]<600) h5->Fill(UnsOBT,deadTime[i]); |
228 |
} |
229 |
|
230 |
gStyle->SetStatY(0.85); |
231 |
|
232 |
/* PMT Plane Counters */ |
233 |
|
234 |
pmt1[i] = 1.*triggerEvent->pmtpl[0]; |
235 |
pmt2[i] = 1.*triggerEvent->pmtpl[1]; |
236 |
pmt3[i] = 1.*triggerEvent->pmtpl[2]; |
237 |
|
238 |
/* Trigger Rate Counters*/ |
239 |
|
240 |
trigrate0[i] = (1/4.)*triggerEvent->trigrate[0]; |
241 |
trigrate1[i] = (1/4.)*triggerEvent->trigrate[1]; |
242 |
trigrate2[i] = (1/4.)*triggerEvent->trigrate[2]; |
243 |
trigrate3[i] = (1/4.)*triggerEvent->trigrate[3]; |
244 |
trigrate4[i] = (1/4.)*triggerEvent->trigrate[4]; |
245 |
trigrate5[i] = (1/4.)*triggerEvent->trigrate[5]; |
246 |
|
247 |
/* S4 and Calorimeter Counters fill*/ |
248 |
|
249 |
s4rate[i] = triggerEvent->s4calcount[0]; |
250 |
S4Cal2Histo->Fill(triggerEvent->s4calcount[1]); |
251 |
// |
252 |
|
253 |
/* pmtcount1 */ |
254 |
pmt1_0[i] = triggerEvent->pmtcount1[0]; |
255 |
pmt1_1[i] = triggerEvent->pmtcount1[1]; |
256 |
pmt1_2[i] = triggerEvent->pmtcount1[2]; |
257 |
pmt1_3[i] = triggerEvent->pmtcount1[3]; |
258 |
pmt1_4[i] = triggerEvent->pmtcount1[4]; |
259 |
pmt1_5[i] = triggerEvent->pmtcount1[5]; |
260 |
pmt1_6[i] = triggerEvent->pmtcount1[6]; |
261 |
pmt1_7[i] = triggerEvent->pmtcount1[7]; |
262 |
pmt1_8[i] = triggerEvent->pmtcount1[8]; |
263 |
pmt1_9[i] = triggerEvent->pmtcount1[9]; |
264 |
pmt1_10[i] = triggerEvent->pmtcount1[10]; |
265 |
pmt1_11[i] = triggerEvent->pmtcount1[11]; |
266 |
pmt1_12[i] = triggerEvent->pmtcount1[12]; |
267 |
pmt1_13[i] = triggerEvent->pmtcount1[13]; |
268 |
pmt1_14[i] = triggerEvent->pmtcount1[14]; |
269 |
pmt1_15[i] = triggerEvent->pmtcount1[15]; |
270 |
pmt1_16[i] = triggerEvent->pmtcount1[16]; |
271 |
pmt1_17[i] = triggerEvent->pmtcount1[17]; |
272 |
pmt1_18[i] = triggerEvent->pmtcount1[18]; |
273 |
pmt1_19[i] = triggerEvent->pmtcount1[19]; |
274 |
pmt1_20[i] = triggerEvent->pmtcount1[20]; |
275 |
pmt1_21[i] = triggerEvent->pmtcount1[21]; |
276 |
pmt1_22[i] = triggerEvent->pmtcount1[22]; |
277 |
pmt1_23[i] = triggerEvent->pmtcount1[23]; |
278 |
|
279 |
|
280 |
/* pmtcount2 */ |
281 |
|
282 |
pmt2_0[i] = triggerEvent->pmtcount2[0]; |
283 |
pmt2_1[i] = triggerEvent->pmtcount2[1]; |
284 |
pmt2_2[i] = triggerEvent->pmtcount2[2]; |
285 |
pmt2_3[i] = triggerEvent->pmtcount2[3]; |
286 |
pmt2_4[i] = triggerEvent->pmtcount2[4]; |
287 |
pmt2_5[i] = triggerEvent->pmtcount2[5]; |
288 |
pmt2_6[i] = triggerEvent->pmtcount2[6]; |
289 |
pmt2_7[i] = triggerEvent->pmtcount2[7]; |
290 |
pmt2_8[i] = triggerEvent->pmtcount2[8]; |
291 |
pmt2_9[i] = triggerEvent->pmtcount2[9]; |
292 |
pmt2_10[i] = triggerEvent->pmtcount2[10]; |
293 |
pmt2_11[i] = triggerEvent->pmtcount2[11]; |
294 |
pmt2_12[i] = triggerEvent->pmtcount2[12]; |
295 |
pmt2_13[i] = triggerEvent->pmtcount2[13]; |
296 |
pmt2_14[i] = triggerEvent->pmtcount2[14]; |
297 |
pmt2_15[i] = triggerEvent->pmtcount2[15]; |
298 |
pmt2_16[i] = triggerEvent->pmtcount2[16]; |
299 |
pmt2_17[i] = triggerEvent->pmtcount2[17]; |
300 |
pmt2_18[i] = triggerEvent->pmtcount2[18]; |
301 |
pmt2_19[i] = triggerEvent->pmtcount2[19]; |
302 |
pmt2_20[i] = triggerEvent->pmtcount2[20]; |
303 |
pmt2_21[i] = triggerEvent->pmtcount2[21]; |
304 |
pmt2_22[i] = triggerEvent->pmtcount2[22]; |
305 |
pmt2_23[i] = triggerEvent->pmtcount2[23]; |
306 |
// |
307 |
i++; |
308 |
} |
309 |
|
310 |
gStyle->SetOptStat(111111); |
311 |
gStyle->SetStatH(0.15); |
312 |
gStyle->SetStatW(0.15); |
313 |
|
314 |
/* |
315 |
* Event Counter graph |
316 |
*/ |
317 |
TCanvas *EvCounterCanvas = new TCanvas("EvCounterCanvas","EvCounterCanvas", 1280, 1024); |
318 |
//---------- |
319 |
sst.str(""); |
320 |
sst << "Event Counter"; |
321 |
TGraph *evCounterGraph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)evCounter); |
322 |
evCounterGraph->SetTitle(sst.str().c_str()); |
323 |
evCounterGraph->GetXaxis()->SetTitle("OnBoardTime"); |
324 |
evCounterGraph->GetXaxis()->CenterTitle(); |
325 |
evCounterGraph->Draw("APL"); |
326 |
|
327 |
/* |
328 |
* Dead and Live time graphs |
329 |
*/ |
330 |
TCanvas *DeadLiveCanvas = new TCanvas("DeadLiveCanvas","DeadLiveCanvas", 1280, 1024); |
331 |
DeadLiveCanvas->Divide(1,2); |
332 |
//---------- |
333 |
sst.str(""); |
334 |
sst << "Graph of Dead Time vs OBT based on " << base.Data(); |
335 |
TGraph *DeadTimeGraph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)deadTime); |
336 |
DeadLiveCanvas->cd(1); |
337 |
sst.str(""); |
338 |
sst << "Dead Time"; |
339 |
DeadTimeGraph->SetTitle(sst.str().c_str()); |
340 |
DeadTimeGraph->SetFillColor(2); |
341 |
DeadTimeGraph->GetXaxis()->SetTitle("OnBoardTime"); |
342 |
DeadTimeGraph->GetXaxis()->CenterTitle(); |
343 |
DeadTimeGraph->GetYaxis()->SetTitle("DeadTime(ms)"); |
344 |
DeadTimeGraph->GetYaxis()->CenterTitle(); |
345 |
// DeadTimeGraph->SetMaximum(100); |
346 |
DeadTimeGraph->Draw("AP"); |
347 |
//---------- |
348 |
sst.str(""); |
349 |
sst << "Graph of Live Time vs OBT based on " << base.Data(); |
350 |
TGraph *LiveTimeGraph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)liveTime); |
351 |
DeadLiveCanvas->cd(2); |
352 |
sst.str(""); |
353 |
sst << "Live Time"; |
354 |
LiveTimeGraph->SetTitle(sst.str().c_str()); |
355 |
LiveTimeGraph->SetFillColor(2); |
356 |
LiveTimeGraph->GetXaxis()->SetTitle("OnBoardTime"); |
357 |
LiveTimeGraph->GetXaxis()->CenterTitle(); |
358 |
LiveTimeGraph->GetYaxis()->SetTitle("LiveTime(ms)"); |
359 |
LiveTimeGraph->GetYaxis()->CenterTitle(); |
360 |
LiveTimeGraph->Draw("AP"); |
361 |
|
362 |
/* |
363 |
* Average Dead and Live time graphs |
364 |
*/ |
365 |
TCanvas *MeanLiveDeadCanvas = new TCanvas("MeanLiveDeadCanvas","MeanLiveDeadCanvas", 1280, 1024); |
366 |
MeanLiveDeadCanvas->Divide(1,2); |
367 |
|
368 |
MeanLiveDeadCanvas->cd(1); |
369 |
DeadTimeMean->Divide(h5,h2); |
370 |
sst.str(""); |
371 |
sst << "Average Dead Time"; |
372 |
DeadTimeMean->GetXaxis()->SetTitle("OnBoardTime"); |
373 |
DeadTimeMean->GetXaxis()->CenterTitle(); |
374 |
DeadTimeMean->GetYaxis()->SetTitle("Average Dead Time (over 1min)"); |
375 |
DeadTimeMean->GetYaxis()->CenterTitle(); |
376 |
DeadTimeMean->Draw(); |
377 |
MeanLiveDeadCanvas->cd(2); |
378 |
LiveTimeMean->Divide(h1,h2); |
379 |
sst.str(""); |
380 |
sst << "Average Live Time"; |
381 |
LiveTimeMean->GetXaxis()->SetTitle("OnBoardTime"); |
382 |
LiveTimeMean->GetXaxis()->CenterTitle(); |
383 |
LiveTimeMean->GetYaxis()->SetTitle("Average Live Time (over 1min)"); |
384 |
LiveTimeMean->GetYaxis()->CenterTitle(); |
385 |
LiveTimeMean->Draw(); |
386 |
|
387 |
/* |
388 |
* PMT Plane Counters Graph |
389 |
*/ |
390 |
|
391 |
TCanvas *PMTCanvas = new TCanvas("PMTCanvas","PMTCanvas", 1280, 1024); |
392 |
PMTCanvas->Divide(1,3); |
393 |
//---------- |
394 |
sst.str(""); |
395 |
sst << "Graph of PMT Plane Counters (S11 AND S12) vs OBT based on " << base.Data(); |
396 |
TGraph *PMT1Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1); |
397 |
PMTCanvas->cd(1); |
398 |
sst.str(""); |
399 |
sst << "PMT Plane Counters (S11 AND S12)"; |
400 |
PMT1Graph->SetTitle(sst.str().c_str()); |
401 |
PMT1Graph->SetFillColor(2); |
402 |
PMT1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
403 |
PMT1Graph->GetXaxis()->CenterTitle(); |
404 |
PMT1Graph->GetYaxis()->SetTitle("PMT Plane Counters (over 60 ms)"); |
405 |
PMT1Graph->GetYaxis()->CenterTitle(); |
406 |
PMT1Graph->Draw("AP"); |
407 |
//---------- |
408 |
sst.str(""); |
409 |
sst << "Graph PMT Plane Counters (S21 AND S22) vs OBT based on " << base.Data(); |
410 |
TGraph *PMT2Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2); |
411 |
PMTCanvas->cd(2); |
412 |
sst.str(""); |
413 |
sst << "PMT Plane Counters (S21 AND S22)"; |
414 |
PMT2Graph->SetTitle(sst.str().c_str()); |
415 |
PMT2Graph->SetFillColor(2); |
416 |
PMT2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
417 |
PMT2Graph->GetXaxis()->CenterTitle(); |
418 |
PMT2Graph->GetYaxis()->SetTitle("PMT Plane Counters (over 60 ms)"); |
419 |
PMT2Graph->GetYaxis()->CenterTitle(); |
420 |
PMT2Graph->Draw("AP"); |
421 |
//---------- |
422 |
sst.str(""); |
423 |
sst << "Graph PMT Plane Counters (S31 AND S32) vs OBT based on " << base.Data(); |
424 |
TGraph *PMT3Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt3); |
425 |
PMTCanvas->cd(3); |
426 |
sst.str(""); |
427 |
sst << "PMT Plane Counters (S31 AND S32)"; |
428 |
PMT3Graph->SetTitle(sst.str().c_str()); |
429 |
PMT3Graph->SetFillColor(2); |
430 |
PMT3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
431 |
PMT3Graph->GetXaxis()->CenterTitle(); |
432 |
PMT3Graph->GetYaxis()->SetTitle("PMT Plane Rate Counters (over 60 ms)"); |
433 |
PMT3Graph->GetYaxis()->CenterTitle(); |
434 |
PMT3Graph->Draw("AP"); |
435 |
// |
436 |
//---------- |
437 |
|
438 |
/* |
439 |
* Trigger Rate Counters draw |
440 |
*/ |
441 |
|
442 |
TCanvas *TrigRate1Canvas = new TCanvas("TrigRate1Canvas","TrigRate1Canvas", 1280, 1024); |
443 |
TrigRate1Canvas->Divide(1,3); |
444 |
//---------- |
445 |
sst.str(""); |
446 |
sst << "Graph of Trigger Rate Counters (S11 OR S12) AND (S21 OR S22) AND (S31 OR S32) vs OBT based on " << base.Data(); |
447 |
|
448 |
TGraph *TrigRate0Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate0); |
449 |
TrigRate1Canvas->cd(1); |
450 |
sst.str(""); |
451 |
sst << "Trigger Rate Counters (S11 OR S12) AND (S21 OR S22) AND (S31 OR S32)"; |
452 |
TrigRate0Graph->SetTitle(sst.str().c_str()); |
453 |
TrigRate0Graph->SetFillColor(2); |
454 |
TrigRate0Graph->GetXaxis()->SetTitle("OnBoardTime"); |
455 |
TrigRate0Graph->GetXaxis()->CenterTitle(); |
456 |
TrigRate0Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
457 |
TrigRate0Graph->GetYaxis()->CenterTitle(); |
458 |
TrigRate0Graph->Draw("AP"); |
459 |
//---------- |
460 |
sst.str(""); |
461 |
sst << "Graph Trigger Rate Counters (S11 AND S12) AND (S21 AND S22) AND (S31 AND S32) vs OBT based on " << base.Data(); |
462 |
TGraph *TrigRate1Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate1); |
463 |
TrigRate1Canvas->cd(2); |
464 |
sst.str(""); |
465 |
sst << "Trigger Rate Counters (S11 AND S12) AND (S21 AND S22) AND (S31 AND S32)"; |
466 |
TrigRate1Graph->SetTitle(sst.str().c_str()); |
467 |
TrigRate1Graph->SetFillColor(2); |
468 |
TrigRate1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
469 |
TrigRate1Graph->GetXaxis()->CenterTitle(); |
470 |
TrigRate1Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
471 |
TrigRate1Graph->GetYaxis()->CenterTitle(); |
472 |
TrigRate1Graph->Draw("AP"); |
473 |
//---------- |
474 |
sst.str(""); |
475 |
sst << "Graph Trigger Rate Counters (S21 OR S22) AND (S31 OR S32) vs OBT based on " << base.Data(); |
476 |
TGraph *TrigRate2Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate2); |
477 |
TrigRate1Canvas->cd(3); |
478 |
sst.str(""); |
479 |
sst << "Trigger Rate Counters (S21 OR S22) AND (S31 OR S32) "; |
480 |
TrigRate2Graph->SetTitle(sst.str().c_str()); |
481 |
TrigRate2Graph->SetFillColor(2); |
482 |
TrigRate2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
483 |
TrigRate2Graph->GetXaxis()->CenterTitle(); |
484 |
TrigRate2Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
485 |
TrigRate2Graph->GetYaxis()->CenterTitle(); |
486 |
TrigRate2Graph->Draw("AP"); |
487 |
// |
488 |
//---------- |
489 |
// |
490 |
TCanvas *TrigRate2Canvas = new TCanvas("TrigRate2Canvas","TrigRate2Canvas", 1280, 1024); |
491 |
TrigRate2Canvas->Divide(1,3); |
492 |
//---------- |
493 |
sst.str(""); |
494 |
sst << "Graph of Trigger Rate Counters (S21 AND S22) AND (S31 AND S32) vs OBT based on " << base.Data(); |
495 |
|
496 |
TGraph *TrigRate3Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate3); |
497 |
TrigRate2Canvas->cd(1); |
498 |
sst.str(""); |
499 |
sst << "Trigger Rate Counters (S21 AND S22) AND (S31 AND S32)"; |
500 |
TrigRate3Graph->SetTitle(sst.str().c_str()); |
501 |
TrigRate3Graph->SetFillColor(2); |
502 |
TrigRate3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
503 |
TrigRate3Graph->GetXaxis()->CenterTitle(); |
504 |
TrigRate3Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
505 |
TrigRate3Graph->GetYaxis()->CenterTitle(); |
506 |
TrigRate3Graph->Draw("AP"); |
507 |
//---------- |
508 |
sst.str(""); |
509 |
sst << "Graph Trigger Rate Counters S12 AND (S21 AND S22) vs OBT based on " << base.Data(); |
510 |
TGraph *TrigRate4Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate4); |
511 |
TrigRate2Canvas->cd(2); |
512 |
sst.str(""); |
513 |
sst << "Trigger Rate Counters S12 AND (S21 AND S22)"; |
514 |
TrigRate4Graph->SetTitle(sst.str().c_str()); |
515 |
TrigRate4Graph->SetFillColor(2); |
516 |
TrigRate4Graph->GetXaxis()->SetTitle("OnBoardTime"); |
517 |
TrigRate4Graph->GetXaxis()->CenterTitle(); |
518 |
TrigRate4Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
519 |
TrigRate4Graph->GetYaxis()->CenterTitle(); |
520 |
TrigRate4Graph->Draw("AP"); |
521 |
//---------- |
522 |
sst.str(""); |
523 |
sst << "Graph Trigger Rate Counters (S11 OR S12) AND (S31 OR S32) vs OBT based on " << base.Data(); |
524 |
TGraph *TrigRate5Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)trigrate5); |
525 |
TrigRate2Canvas->cd(3); |
526 |
sst.str(""); |
527 |
sst << "Trigger Rate Counters (S11 OR S12) AND (S31 OR S32)"; |
528 |
TrigRate5Graph->SetTitle(sst.str().c_str()); |
529 |
TrigRate5Graph->SetFillColor(2); |
530 |
TrigRate5Graph->GetXaxis()->SetTitle("OnBoardTime"); |
531 |
TrigRate5Graph->GetXaxis()->CenterTitle(); |
532 |
TrigRate5Graph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
533 |
TrigRate5Graph->GetYaxis()->CenterTitle(); |
534 |
TrigRate5Graph->Draw("AP"); |
535 |
//---------- |
536 |
|
537 |
gStyle->SetOptStat("mr"); |
538 |
|
539 |
/* S4 and Calorimeter Counters draw*/ |
540 |
TGraph *s4RateGraph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)s4rate); |
541 |
S4CalCanvas->cd(1); |
542 |
sst.str(""); |
543 |
sst << "S4 Trigger Rate Counters"; |
544 |
s4RateGraph->SetTitle(sst.str().c_str()); |
545 |
s4RateGraph->SetFillColor(2); |
546 |
s4RateGraph->GetXaxis()->SetTitle("OnBoardTime"); |
547 |
s4RateGraph->GetXaxis()->CenterTitle(); |
548 |
s4RateGraph->GetYaxis()->SetTitle("Trigger Rate Counters (Hz)"); |
549 |
s4RateGraph->GetYaxis()->CenterTitle(); |
550 |
s4RateGraph->Draw("AP"); |
551 |
//---------- |
552 |
S4CalCanvas->cd(2); |
553 |
gPad->SetLogy(1); |
554 |
S4Cal2Histo->GetXaxis()->SetTitle("Hz"); |
555 |
S4Cal2Histo->Draw(); |
556 |
// |
557 |
// |
558 |
// |
559 |
gStyle->SetOptStat("mr"); |
560 |
gStyle->SetStatH(0.3); |
561 |
gStyle->SetStatW(0.3); |
562 |
|
563 |
|
564 |
//---------- |
565 |
TCanvas *RatePMT1 = new TCanvas("RatePMT1", "Rate PMT S11A", 1); |
566 |
RatePMT1->Divide (3,3); |
567 |
//---------- |
568 |
sst.str(""); |
569 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
570 |
TGraph *PMT1_0Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_0); |
571 |
RatePMT1->cd(1); |
572 |
sst.str(""); |
573 |
sst << "PMT S111A"; |
574 |
PMT1_0Graph->SetTitle(sst.str().c_str()); |
575 |
PMT1_0Graph->SetFillColor(2); |
576 |
PMT1_0Graph->GetXaxis()->SetTitle("OnBoardTime"); |
577 |
PMT1_0Graph->GetXaxis()->CenterTitle(); |
578 |
PMT1_0Graph->GetYaxis()->SetTitle("PMT Counters"); |
579 |
PMT1_0Graph->GetYaxis()->CenterTitle(); |
580 |
PMT1_0Graph->Draw("AP"); |
581 |
//delete PMT1_0Graph; |
582 |
//---------- |
583 |
sst.str(""); |
584 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
585 |
TGraph *PMT1_1Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_1); |
586 |
RatePMT1->cd(2); |
587 |
sst.str(""); |
588 |
sst << "PMT S112A"; |
589 |
PMT1_1Graph->SetTitle(sst.str().c_str()); |
590 |
PMT1_1Graph->SetFillColor(2); |
591 |
PMT1_1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
592 |
PMT1_1Graph->GetXaxis()->CenterTitle(); |
593 |
PMT1_1Graph->GetYaxis()->SetTitle("PMT Counters"); |
594 |
PMT1_1Graph->GetYaxis()->CenterTitle(); |
595 |
PMT1_1Graph->Draw("AP"); |
596 |
//---------- |
597 |
sst.str(""); |
598 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
599 |
TGraph *PMT1_2Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_2); |
600 |
RatePMT1->cd(3); |
601 |
sst.str(""); |
602 |
sst << "PMT S113A"; |
603 |
PMT1_2Graph->SetTitle(sst.str().c_str()); |
604 |
PMT1_2Graph->SetFillColor(2); |
605 |
PMT1_2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
606 |
PMT1_2Graph->GetXaxis()->CenterTitle(); |
607 |
PMT1_2Graph->GetYaxis()->SetTitle("PMT Counters"); |
608 |
PMT1_2Graph->GetYaxis()->CenterTitle(); |
609 |
PMT1_2Graph->Draw("AP"); |
610 |
//---------- |
611 |
sst.str(""); |
612 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
613 |
TGraph *PMT1_3Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_3); |
614 |
RatePMT1->cd(4); |
615 |
sst.str(""); |
616 |
sst << "PMT S114A"; |
617 |
PMT1_3Graph->SetTitle(sst.str().c_str()); |
618 |
PMT1_3Graph->SetFillColor(2); |
619 |
PMT1_3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
620 |
PMT1_3Graph->GetXaxis()->CenterTitle(); |
621 |
PMT1_3Graph->GetYaxis()->SetTitle("PMT Counters"); |
622 |
PMT1_3Graph->GetYaxis()->CenterTitle(); |
623 |
PMT1_3Graph->Draw("AP"); |
624 |
//---------- |
625 |
sst.str(""); |
626 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
627 |
TGraph *PMT1_4Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_4); |
628 |
RatePMT1->cd(5); |
629 |
sst.str(""); |
630 |
sst << "PMT S115A"; |
631 |
PMT1_4Graph->SetTitle(sst.str().c_str()); |
632 |
PMT1_4Graph->SetFillColor(2); |
633 |
PMT1_4Graph->GetXaxis()->SetTitle("OnBoardTime"); |
634 |
PMT1_4Graph->GetXaxis()->CenterTitle(); |
635 |
PMT1_4Graph->GetYaxis()->SetTitle("PMT Counters"); |
636 |
PMT1_4Graph->GetYaxis()->CenterTitle(); |
637 |
PMT1_4Graph->Draw("AP"); |
638 |
//---------- |
639 |
sst.str(""); |
640 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
641 |
TGraph *PMT1_5Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_5); |
642 |
RatePMT1->cd(6); |
643 |
sst.str(""); |
644 |
sst << "PMT S116A"; |
645 |
PMT1_5Graph->SetTitle(sst.str().c_str()); |
646 |
PMT1_5Graph->SetFillColor(2); |
647 |
PMT1_5Graph->GetXaxis()->SetTitle("OnBoardTime"); |
648 |
PMT1_5Graph->GetXaxis()->CenterTitle(); |
649 |
PMT1_5Graph->GetYaxis()->SetTitle("PMT Counters"); |
650 |
PMT1_5Graph->GetYaxis()->CenterTitle(); |
651 |
PMT1_5Graph->Draw("AP"); |
652 |
//---------- |
653 |
sst.str(""); |
654 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
655 |
TGraph *PMT1_6Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_6); |
656 |
RatePMT1->cd(7); |
657 |
sst.str(""); |
658 |
sst << "PMT S117A"; |
659 |
PMT1_6Graph->SetTitle(sst.str().c_str()); |
660 |
PMT1_6Graph->SetFillColor(2); |
661 |
PMT1_6Graph->GetXaxis()->SetTitle("OnBoardTime"); |
662 |
PMT1_6Graph->GetXaxis()->CenterTitle(); |
663 |
PMT1_6Graph->GetYaxis()->SetTitle("PMT Counters"); |
664 |
PMT1_6Graph->GetYaxis()->CenterTitle(); |
665 |
PMT1_6Graph->Draw("AP"); |
666 |
//---------- |
667 |
sst.str(""); |
668 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
669 |
TGraph *PMT1_7Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_7); |
670 |
RatePMT1->cd(8); |
671 |
sst.str(""); |
672 |
sst << "PMT S118A"; |
673 |
PMT1_7Graph->SetTitle(sst.str().c_str()); |
674 |
PMT1_7Graph->SetFillColor(2); |
675 |
PMT1_7Graph->GetXaxis()->SetTitle("OnBoardTime"); |
676 |
PMT1_7Graph->GetXaxis()->CenterTitle(); |
677 |
PMT1_7Graph->GetYaxis()->SetTitle("PMT Counters"); |
678 |
PMT1_7Graph->GetYaxis()->CenterTitle(); |
679 |
PMT1_7Graph->Draw("AP"); |
680 |
|
681 |
//////////////// |
682 |
|
683 |
TCanvas *RatePMT2 = new TCanvas("RatePMT2", "Rate PMT S11B", 1); |
684 |
RatePMT2->Divide (3,3); |
685 |
//---------- |
686 |
sst.str(""); |
687 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
688 |
TGraph *PMT1_8Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_8); |
689 |
RatePMT2->cd(1); |
690 |
sst.str(""); |
691 |
sst << "PMT S111B"; |
692 |
PMT1_8Graph->SetTitle(sst.str().c_str()); |
693 |
PMT1_8Graph->SetFillColor(2); |
694 |
PMT1_8Graph->GetXaxis()->SetTitle("OnBoardTime"); |
695 |
PMT1_8Graph->GetXaxis()->CenterTitle(); |
696 |
PMT1_8Graph->GetYaxis()->SetTitle("PMT Counters"); |
697 |
PMT1_8Graph->GetYaxis()->CenterTitle(); |
698 |
PMT1_8Graph->Draw("AP"); |
699 |
//---------- |
700 |
sst.str(""); |
701 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
702 |
TGraph *PMT1_9Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_9); |
703 |
RatePMT2->cd(2); |
704 |
sst.str(""); |
705 |
sst << "PMT S112B"; |
706 |
PMT1_9Graph->SetTitle(sst.str().c_str()); |
707 |
PMT1_9Graph->SetFillColor(2); |
708 |
PMT1_9Graph->GetXaxis()->SetTitle("OnBoardTime"); |
709 |
PMT1_9Graph->GetXaxis()->CenterTitle(); |
710 |
PMT1_9Graph->GetYaxis()->SetTitle("PMT Counters"); |
711 |
PMT1_9Graph->GetYaxis()->CenterTitle(); |
712 |
PMT1_9Graph->Draw("AP"); |
713 |
//---------- |
714 |
sst.str(""); |
715 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
716 |
TGraph *PMT1_10Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_10); |
717 |
RatePMT2->cd(3); |
718 |
sst.str(""); |
719 |
sst << "PMT S113B"; |
720 |
PMT1_10Graph->SetTitle(sst.str().c_str()); |
721 |
PMT1_10Graph->SetFillColor(2); |
722 |
PMT1_10Graph->GetXaxis()->SetTitle("OnBoardTime"); |
723 |
PMT1_10Graph->GetXaxis()->CenterTitle(); |
724 |
PMT1_10Graph->GetYaxis()->SetTitle("PMT Counters"); |
725 |
PMT1_10Graph->GetYaxis()->CenterTitle(); |
726 |
PMT1_10Graph->Draw("AP"); |
727 |
//---------- |
728 |
sst.str(""); |
729 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
730 |
TGraph *PMT1_11Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_11); |
731 |
RatePMT2->cd(4); |
732 |
sst.str(""); |
733 |
sst << "PMT S114B"; |
734 |
PMT1_11Graph->SetTitle(sst.str().c_str()); |
735 |
PMT1_11Graph->SetFillColor(2); |
736 |
PMT1_11Graph->GetXaxis()->SetTitle("OnBoardTime"); |
737 |
PMT1_11Graph->GetXaxis()->CenterTitle(); |
738 |
PMT1_11Graph->GetYaxis()->SetTitle("PMT Counters"); |
739 |
PMT1_11Graph->GetYaxis()->CenterTitle(); |
740 |
PMT1_11Graph->Draw("AP"); |
741 |
//---------- |
742 |
sst.str(""); |
743 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
744 |
TGraph *PMT1_12Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_12); |
745 |
RatePMT2->cd(5); |
746 |
sst.str(""); |
747 |
sst << "PMT S115B"; |
748 |
PMT1_12Graph->SetTitle(sst.str().c_str()); |
749 |
PMT1_12Graph->SetFillColor(2); |
750 |
PMT1_12Graph->GetXaxis()->SetTitle("OnBoardTime"); |
751 |
PMT1_12Graph->GetXaxis()->CenterTitle(); |
752 |
PMT1_12Graph->GetYaxis()->SetTitle("PMT Counters"); |
753 |
PMT1_12Graph->GetYaxis()->CenterTitle(); |
754 |
PMT1_12Graph->Draw("AP"); |
755 |
//---------- |
756 |
sst.str(""); |
757 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
758 |
TGraph *PMT1_13Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_13); |
759 |
RatePMT2->cd(6); |
760 |
sst.str(""); |
761 |
sst << "PMT S116B"; |
762 |
PMT1_13Graph->SetTitle(sst.str().c_str()); |
763 |
PMT1_13Graph->SetFillColor(2); |
764 |
PMT1_13Graph->GetXaxis()->SetTitle("OnBoardTime"); |
765 |
PMT1_13Graph->GetXaxis()->CenterTitle(); |
766 |
PMT1_13Graph->GetYaxis()->SetTitle("PMT Counters"); |
767 |
PMT1_13Graph->GetYaxis()->CenterTitle(); |
768 |
PMT1_13Graph->Draw("AP"); |
769 |
//---------- |
770 |
sst.str(""); |
771 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
772 |
TGraph *PMT1_14Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_14); |
773 |
RatePMT2->cd(7); |
774 |
sst.str(""); |
775 |
sst << "PMT S117B"; |
776 |
PMT1_14Graph->SetTitle(sst.str().c_str()); |
777 |
PMT1_14Graph->SetFillColor(2); |
778 |
PMT1_14Graph->GetXaxis()->SetTitle("OnBoardTime"); |
779 |
PMT1_14Graph->GetXaxis()->CenterTitle(); |
780 |
PMT1_14Graph->GetYaxis()->SetTitle("PMT Counters"); |
781 |
PMT1_14Graph->GetYaxis()->CenterTitle(); |
782 |
PMT1_14Graph->Draw("AP"); |
783 |
//---------- |
784 |
sst.str(""); |
785 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
786 |
TGraph *PMT1_15Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_15); |
787 |
RatePMT2->cd(8); |
788 |
sst.str(""); |
789 |
sst << "PMT S118B"; |
790 |
PMT1_15Graph->SetTitle(sst.str().c_str()); |
791 |
PMT1_15Graph->SetFillColor(2); |
792 |
PMT1_15Graph->GetXaxis()->SetTitle("OnBoardTime"); |
793 |
PMT1_15Graph->GetXaxis()->CenterTitle(); |
794 |
PMT1_15Graph->GetYaxis()->SetTitle("PMT Counters"); |
795 |
PMT1_15Graph->GetYaxis()->CenterTitle(); |
796 |
PMT1_15Graph->Draw("AP"); |
797 |
|
798 |
/////////////// |
799 |
|
800 |
|
801 |
TCanvas *RatePMT3 = new TCanvas("RatePMT3", "Rate PMT S11B", 1); |
802 |
RatePMT3->Divide (3,4); |
803 |
//---------- |
804 |
sst.str(""); |
805 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
806 |
TGraph *PMT1_16Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_16); |
807 |
RatePMT3->cd(1); |
808 |
sst.str(""); |
809 |
sst << "PMT S121A"; |
810 |
PMT1_16Graph->SetTitle(sst.str().c_str()); |
811 |
PMT1_16Graph->SetFillColor(2); |
812 |
PMT1_16Graph->GetXaxis()->SetTitle("OnBoardTime"); |
813 |
PMT1_16Graph->GetXaxis()->CenterTitle(); |
814 |
PMT1_16Graph->GetYaxis()->SetTitle("PMT Counters"); |
815 |
PMT1_16Graph->GetYaxis()->CenterTitle(); |
816 |
PMT1_16Graph->Draw("AP"); |
817 |
//---------- |
818 |
sst.str(""); |
819 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
820 |
TGraph *PMT1_17Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_17); |
821 |
RatePMT3->cd(2); |
822 |
sst.str(""); |
823 |
sst << "PMT S122A"; |
824 |
PMT1_17Graph->SetTitle(sst.str().c_str()); |
825 |
PMT1_17Graph->SetFillColor(2); |
826 |
PMT1_17Graph->GetXaxis()->SetTitle("OnBoardTime"); |
827 |
PMT1_17Graph->GetXaxis()->CenterTitle(); |
828 |
PMT1_17Graph->GetYaxis()->SetTitle("PMT Counters"); |
829 |
PMT1_17Graph->GetYaxis()->CenterTitle(); |
830 |
PMT1_17Graph->Draw("AP"); |
831 |
//---------- |
832 |
sst.str(""); |
833 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
834 |
TGraph *PMT1_18Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_18); |
835 |
RatePMT3->cd(3); |
836 |
sst.str(""); |
837 |
sst << "PMT S123A"; |
838 |
PMT1_18Graph->SetTitle(sst.str().c_str()); |
839 |
PMT1_18Graph->SetFillColor(2); |
840 |
PMT1_18Graph->GetXaxis()->SetTitle("OnBoardTime"); |
841 |
PMT1_18Graph->GetXaxis()->CenterTitle(); |
842 |
PMT1_18Graph->GetYaxis()->SetTitle("PMT Counters"); |
843 |
PMT1_18Graph->GetYaxis()->CenterTitle(); |
844 |
PMT1_18Graph->Draw("AP"); |
845 |
//---------- |
846 |
sst.str(""); |
847 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
848 |
TGraph *PMT1_19Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_19); |
849 |
RatePMT3->cd(4); |
850 |
sst.str(""); |
851 |
sst << "PMT S124A"; |
852 |
PMT1_19Graph->SetTitle(sst.str().c_str()); |
853 |
PMT1_19Graph->SetFillColor(2); |
854 |
PMT1_19Graph->GetXaxis()->SetTitle("OnBoardTime"); |
855 |
PMT1_19Graph->GetXaxis()->CenterTitle(); |
856 |
PMT1_19Graph->GetYaxis()->SetTitle("PMT Counters"); |
857 |
PMT1_19Graph->GetYaxis()->CenterTitle(); |
858 |
PMT1_19Graph->Draw("AP"); |
859 |
//---------- |
860 |
sst.str(""); |
861 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
862 |
TGraph *PMT1_20Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_20); |
863 |
RatePMT3->cd(5); |
864 |
sst.str(""); |
865 |
sst << "PMT S125A"; |
866 |
PMT1_20Graph->SetTitle(sst.str().c_str()); |
867 |
PMT1_20Graph->SetFillColor(2); |
868 |
PMT1_20Graph->GetXaxis()->SetTitle("OnBoardTime"); |
869 |
PMT1_20Graph->GetXaxis()->CenterTitle(); |
870 |
PMT1_20Graph->GetYaxis()->SetTitle("PMT Counters"); |
871 |
PMT1_20Graph->GetYaxis()->CenterTitle(); |
872 |
PMT1_20Graph->Draw("AP"); |
873 |
//---------- |
874 |
sst.str(""); |
875 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
876 |
TGraph *PMT1_21Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_21); |
877 |
RatePMT3->cd(6); |
878 |
sst.str(""); |
879 |
sst << "PMT S126A"; |
880 |
PMT1_21Graph->SetTitle(sst.str().c_str()); |
881 |
PMT1_21Graph->SetFillColor(2); |
882 |
PMT1_21Graph->GetXaxis()->SetTitle("OnBoardTime"); |
883 |
PMT1_21Graph->GetXaxis()->CenterTitle(); |
884 |
PMT1_21Graph->GetYaxis()->SetTitle("PMT Counters"); |
885 |
PMT1_21Graph->GetYaxis()->CenterTitle(); |
886 |
PMT1_21Graph->Draw("AP"); |
887 |
//---------- |
888 |
sst.str(""); |
889 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
890 |
TGraph *PMT1_22Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_22); |
891 |
RatePMT3->cd(7); |
892 |
sst.str(""); |
893 |
sst << "PMT S121B"; |
894 |
PMT1_22Graph->SetTitle(sst.str().c_str()); |
895 |
PMT1_22Graph->SetFillColor(2); |
896 |
PMT1_22Graph->GetXaxis()->SetTitle("OnBoardTime"); |
897 |
PMT1_22Graph->GetXaxis()->CenterTitle(); |
898 |
PMT1_22Graph->GetYaxis()->SetTitle("PMT Counters"); |
899 |
PMT1_22Graph->GetYaxis()->CenterTitle(); |
900 |
PMT1_22Graph->Draw("AP"); |
901 |
//---------- |
902 |
sst.str(""); |
903 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
904 |
TGraph *PMT1_23Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt1_23); |
905 |
RatePMT3->cd(8); |
906 |
sst.str(""); |
907 |
sst << "PMT S122B"; |
908 |
PMT1_23Graph->SetTitle(sst.str().c_str()); |
909 |
PMT1_23Graph->SetFillColor(2); |
910 |
PMT1_23Graph->GetXaxis()->SetTitle("OnBoardTime"); |
911 |
PMT1_23Graph->GetXaxis()->CenterTitle(); |
912 |
PMT1_23Graph->GetYaxis()->SetTitle("PMT Counters"); |
913 |
PMT1_23Graph->GetYaxis()->CenterTitle(); |
914 |
PMT1_23Graph->Draw("AP"); |
915 |
|
916 |
///////////////////////// |
917 |
|
918 |
//---------- |
919 |
sst.str(""); |
920 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
921 |
TGraph *PMT2_0Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_0); |
922 |
RatePMT3->cd(9); |
923 |
sst.str(""); |
924 |
sst << "PMT S123B"; |
925 |
PMT2_0Graph->SetTitle(sst.str().c_str()); |
926 |
PMT2_0Graph->SetFillColor(2); |
927 |
PMT2_0Graph->GetXaxis()->SetTitle("OnBoardTime"); |
928 |
PMT2_0Graph->GetXaxis()->CenterTitle(); |
929 |
PMT2_0Graph->GetYaxis()->SetTitle("PMT Counters"); |
930 |
PMT2_0Graph->GetYaxis()->CenterTitle(); |
931 |
PMT2_0Graph->Draw("AP"); |
932 |
|
933 |
//---------- |
934 |
sst.str(""); |
935 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
936 |
TGraph *PMT2_1Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_1); |
937 |
RatePMT3->cd(10); |
938 |
sst.str(""); |
939 |
sst << "PMT S124B"; |
940 |
PMT2_1Graph->SetTitle(sst.str().c_str()); |
941 |
PMT2_1Graph->SetFillColor(2); |
942 |
PMT2_1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
943 |
PMT2_1Graph->GetXaxis()->CenterTitle(); |
944 |
PMT2_1Graph->GetYaxis()->SetTitle("PMT Counters"); |
945 |
PMT2_1Graph->GetYaxis()->CenterTitle(); |
946 |
PMT2_1Graph->Draw("AP"); |
947 |
|
948 |
//---------- |
949 |
sst.str(""); |
950 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
951 |
TGraph *PMT2_2Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_2); |
952 |
RatePMT3->cd(11); |
953 |
sst.str(""); |
954 |
sst << "PMT S125B"; |
955 |
PMT2_2Graph->SetTitle(sst.str().c_str()); |
956 |
PMT2_2Graph->SetFillColor(2); |
957 |
PMT2_2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
958 |
PMT2_2Graph->GetXaxis()->CenterTitle(); |
959 |
PMT2_2Graph->GetYaxis()->SetTitle("PMT Counters"); |
960 |
PMT2_2Graph->GetYaxis()->CenterTitle(); |
961 |
PMT2_2Graph->Draw("AP"); |
962 |
|
963 |
//---------- |
964 |
sst.str(""); |
965 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
966 |
TGraph *PMT2_3Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_3); |
967 |
RatePMT3->cd(12); |
968 |
sst.str(""); |
969 |
sst << "PMT S126B"; |
970 |
PMT2_3Graph->SetTitle(sst.str().c_str()); |
971 |
PMT2_3Graph->SetFillColor(2); |
972 |
PMT2_3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
973 |
PMT2_3Graph->GetXaxis()->CenterTitle(); |
974 |
PMT2_3Graph->GetYaxis()->SetTitle("PMT Counters"); |
975 |
PMT2_3Graph->GetYaxis()->CenterTitle(); |
976 |
PMT2_3Graph->Draw("AP"); |
977 |
|
978 |
//////////////////// |
979 |
|
980 |
|
981 |
TCanvas *RatePMT4 = new TCanvas("RatePMT4", "Rate PMT S11B", 1); |
982 |
RatePMT4->Divide (3,3); |
983 |
//---------- |
984 |
sst.str(""); |
985 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
986 |
TGraph *PMT2_4Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_4); |
987 |
RatePMT4->cd(1); |
988 |
sst.str(""); |
989 |
sst << "PMT S211A"; |
990 |
PMT2_4Graph->SetTitle(sst.str().c_str()); |
991 |
PMT2_4Graph->SetFillColor(2); |
992 |
PMT2_4Graph->GetXaxis()->SetTitle("OnBoardTime"); |
993 |
PMT2_4Graph->GetXaxis()->CenterTitle(); |
994 |
PMT2_4Graph->GetYaxis()->SetTitle("PMT Counters"); |
995 |
PMT2_4Graph->GetYaxis()->CenterTitle(); |
996 |
PMT2_4Graph->Draw("AP"); |
997 |
//---------- |
998 |
sst.str(""); |
999 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1000 |
TGraph *PMT2_5Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_5); |
1001 |
RatePMT4->cd(2); |
1002 |
sst.str(""); |
1003 |
sst << "PMT S212A"; |
1004 |
PMT2_5Graph->SetTitle(sst.str().c_str()); |
1005 |
PMT2_5Graph->SetFillColor(2); |
1006 |
PMT2_5Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1007 |
PMT2_5Graph->GetXaxis()->CenterTitle(); |
1008 |
PMT2_5Graph->GetYaxis()->SetTitle("PMT Counters"); |
1009 |
PMT2_5Graph->GetYaxis()->CenterTitle(); |
1010 |
PMT2_5Graph->Draw("AP"); |
1011 |
//---------- |
1012 |
sst.str(""); |
1013 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1014 |
TGraph *PMT2_6Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_6); |
1015 |
RatePMT4->cd(3); |
1016 |
sst.str(""); |
1017 |
sst << "PMT S211B"; |
1018 |
PMT2_6Graph->SetTitle(sst.str().c_str()); |
1019 |
PMT2_6Graph->SetFillColor(2); |
1020 |
PMT2_6Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1021 |
PMT2_6Graph->GetXaxis()->CenterTitle(); |
1022 |
PMT2_6Graph->GetYaxis()->SetTitle("PMT Counters"); |
1023 |
PMT2_6Graph->GetYaxis()->CenterTitle(); |
1024 |
PMT2_6Graph->Draw("AP"); |
1025 |
//---------- |
1026 |
sst.str(""); |
1027 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1028 |
TGraph *PMT2_7Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_7); |
1029 |
RatePMT4->cd(4); |
1030 |
sst.str(""); |
1031 |
sst << "PMT S212B"; |
1032 |
PMT2_7Graph->SetTitle(sst.str().c_str()); |
1033 |
PMT2_7Graph->SetFillColor(2); |
1034 |
PMT2_7Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1035 |
PMT2_7Graph->GetXaxis()->CenterTitle(); |
1036 |
PMT2_7Graph->GetYaxis()->SetTitle("PMT Counters"); |
1037 |
PMT2_7Graph->GetYaxis()->CenterTitle(); |
1038 |
PMT2_7Graph->Draw("AP"); |
1039 |
//---------- |
1040 |
sst.str(""); |
1041 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1042 |
TGraph *PMT2_8Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_8); |
1043 |
RatePMT4->cd(5); |
1044 |
sst.str(""); |
1045 |
sst << "PMT S221A"; |
1046 |
PMT2_8Graph->SetTitle(sst.str().c_str()); |
1047 |
PMT2_8Graph->SetFillColor(2); |
1048 |
PMT2_8Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1049 |
PMT2_8Graph->GetXaxis()->CenterTitle(); |
1050 |
PMT2_8Graph->GetYaxis()->SetTitle("PMT Counters"); |
1051 |
PMT2_8Graph->GetYaxis()->CenterTitle(); |
1052 |
PMT2_8Graph->Draw("AP"); |
1053 |
//---------- |
1054 |
sst.str(""); |
1055 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1056 |
TGraph *PMT2_9Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_9); |
1057 |
RatePMT4->cd(6); |
1058 |
sst.str(""); |
1059 |
sst << "PMT S222A"; |
1060 |
PMT2_9Graph->SetTitle(sst.str().c_str()); |
1061 |
PMT2_9Graph->SetFillColor(2); |
1062 |
PMT2_9Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1063 |
PMT2_9Graph->GetXaxis()->CenterTitle(); |
1064 |
PMT2_9Graph->GetYaxis()->SetTitle("PMT Counters"); |
1065 |
PMT2_9Graph->GetYaxis()->CenterTitle(); |
1066 |
PMT2_9Graph->Draw("AP"); |
1067 |
//---------- |
1068 |
sst.str(""); |
1069 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1070 |
TGraph *PMT2_10Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_10); |
1071 |
RatePMT4->cd(7); |
1072 |
sst.str(""); |
1073 |
sst << "PMT S221B"; |
1074 |
PMT2_10Graph->SetTitle(sst.str().c_str()); |
1075 |
PMT2_10Graph->SetFillColor(2); |
1076 |
PMT2_10Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1077 |
PMT2_10Graph->GetXaxis()->CenterTitle(); |
1078 |
PMT2_10Graph->GetYaxis()->SetTitle("PMT Counters"); |
1079 |
PMT2_10Graph->GetYaxis()->CenterTitle(); |
1080 |
PMT2_10Graph->Draw("AP"); |
1081 |
//---------- |
1082 |
sst.str(""); |
1083 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1084 |
TGraph *PMT2_11Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_11); |
1085 |
RatePMT4->cd(8); |
1086 |
sst.str(""); |
1087 |
sst << "PMT S222B "; |
1088 |
PMT2_11Graph->SetTitle(sst.str().c_str()); |
1089 |
PMT2_11Graph->SetFillColor(2); |
1090 |
PMT2_11Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1091 |
PMT2_11Graph->GetXaxis()->CenterTitle(); |
1092 |
PMT2_11Graph->GetYaxis()->SetTitle("PMT Counters"); |
1093 |
PMT2_11Graph->GetYaxis()->CenterTitle(); |
1094 |
PMT2_11Graph->Draw("AP"); |
1095 |
|
1096 |
///////////////////////// |
1097 |
|
1098 |
|
1099 |
TCanvas *RatePMT5 = new TCanvas("RatePMT5", "Rate PMT S311A", 1); |
1100 |
RatePMT5->Divide (3,4); |
1101 |
//---------- |
1102 |
sst.str(""); |
1103 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1104 |
TGraph *PMT2_12Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_12); |
1105 |
RatePMT5->cd(1); |
1106 |
sst.str(""); |
1107 |
sst << "PMT S311A "; |
1108 |
PMT2_12Graph->SetTitle(sst.str().c_str()); |
1109 |
PMT2_12Graph->SetFillColor(2); |
1110 |
PMT2_12Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1111 |
PMT2_12Graph->GetXaxis()->CenterTitle(); |
1112 |
PMT2_12Graph->GetYaxis()->SetTitle("PMT Counters"); |
1113 |
PMT2_12Graph->GetYaxis()->CenterTitle(); |
1114 |
PMT2_12Graph->Draw("AP"); |
1115 |
//---------- |
1116 |
sst.str(""); |
1117 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1118 |
TGraph *PMT2_13Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_13); |
1119 |
RatePMT5->cd(2); |
1120 |
sst.str(""); |
1121 |
sst << "PMT S312A"; |
1122 |
PMT2_13Graph->SetTitle(sst.str().c_str()); |
1123 |
PMT2_13Graph->SetFillColor(2); |
1124 |
PMT2_13Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1125 |
PMT2_13Graph->GetXaxis()->CenterTitle(); |
1126 |
PMT2_13Graph->GetYaxis()->SetTitle("PMT Counters"); |
1127 |
PMT2_13Graph->GetYaxis()->CenterTitle(); |
1128 |
PMT2_13Graph->Draw("AP"); |
1129 |
//---------- |
1130 |
sst.str(""); |
1131 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1132 |
TGraph *PMT2_14Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_14); |
1133 |
RatePMT5->cd(3); |
1134 |
sst.str(""); |
1135 |
sst << "PMT S313A"; |
1136 |
PMT2_14Graph->SetTitle(sst.str().c_str()); |
1137 |
PMT2_14Graph->SetFillColor(2); |
1138 |
PMT2_14Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1139 |
PMT2_14Graph->GetXaxis()->CenterTitle(); |
1140 |
PMT2_14Graph->GetYaxis()->SetTitle("PMT Counters"); |
1141 |
PMT2_14Graph->GetYaxis()->CenterTitle(); |
1142 |
PMT2_14Graph->Draw("AP"); |
1143 |
//---------- |
1144 |
sst.str(""); |
1145 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1146 |
TGraph *PMT2_15Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_15); |
1147 |
RatePMT5->cd(4); |
1148 |
sst.str(""); |
1149 |
sst << "PMT S311B"; |
1150 |
PMT2_15Graph->SetTitle(sst.str().c_str()); |
1151 |
PMT2_15Graph->SetFillColor(2); |
1152 |
PMT2_15Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1153 |
PMT2_15Graph->GetXaxis()->CenterTitle(); |
1154 |
PMT2_15Graph->GetYaxis()->SetTitle("PMT Counters"); |
1155 |
PMT2_15Graph->GetYaxis()->CenterTitle(); |
1156 |
PMT2_15Graph->Draw("AP"); |
1157 |
//---------- |
1158 |
sst.str(""); |
1159 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1160 |
TGraph *PMT2_16Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_16); |
1161 |
RatePMT5->cd(5); |
1162 |
sst.str(""); |
1163 |
sst << "PMT S312B"; |
1164 |
PMT2_16Graph->SetTitle(sst.str().c_str()); |
1165 |
PMT2_16Graph->SetFillColor(2); |
1166 |
PMT2_16Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1167 |
PMT2_16Graph->GetXaxis()->CenterTitle(); |
1168 |
PMT2_16Graph->GetYaxis()->SetTitle("PMT Counters"); |
1169 |
PMT2_16Graph->GetYaxis()->CenterTitle(); |
1170 |
PMT2_16Graph->Draw("AP"); |
1171 |
//---------- |
1172 |
sst.str(""); |
1173 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1174 |
TGraph *PMT2_17Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_17); |
1175 |
RatePMT5->cd(6); |
1176 |
sst.str(""); |
1177 |
sst << "PMT S313B"; |
1178 |
PMT2_17Graph->SetTitle(sst.str().c_str()); |
1179 |
PMT2_17Graph->SetFillColor(2); |
1180 |
PMT2_17Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1181 |
PMT2_17Graph->GetXaxis()->CenterTitle(); |
1182 |
PMT2_17Graph->GetYaxis()->SetTitle("PMT Counters"); |
1183 |
PMT2_17Graph->GetYaxis()->CenterTitle(); |
1184 |
PMT2_17Graph->Draw("AP"); |
1185 |
//---------- |
1186 |
sst.str(""); |
1187 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1188 |
TGraph *PMT2_18Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_18); |
1189 |
RatePMT5->cd(7); |
1190 |
sst.str(""); |
1191 |
sst << "PMT S321A"; |
1192 |
PMT2_18Graph->SetTitle(sst.str().c_str()); |
1193 |
PMT2_18Graph->SetFillColor(2); |
1194 |
PMT2_18Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1195 |
PMT2_18Graph->GetXaxis()->CenterTitle(); |
1196 |
PMT2_18Graph->GetYaxis()->SetTitle("PMT Counters"); |
1197 |
PMT2_18Graph->GetYaxis()->CenterTitle(); |
1198 |
PMT2_18Graph->Draw("AP"); |
1199 |
//---------- |
1200 |
sst.str(""); |
1201 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1202 |
TGraph *PMT2_19Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_19); |
1203 |
RatePMT5->cd(8); |
1204 |
sst.str(""); |
1205 |
sst << "PMT S322A"; |
1206 |
PMT2_19Graph->SetTitle(sst.str().c_str()); |
1207 |
PMT2_19Graph->SetFillColor(2); |
1208 |
PMT2_19Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1209 |
PMT2_19Graph->GetXaxis()->CenterTitle(); |
1210 |
PMT2_19Graph->GetYaxis()->SetTitle("PMT Counters"); |
1211 |
PMT2_19Graph->GetYaxis()->CenterTitle(); |
1212 |
PMT2_19Graph->Draw("AP"); |
1213 |
|
1214 |
///////////////////////// |
1215 |
|
1216 |
//---------- |
1217 |
sst.str(""); |
1218 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1219 |
TGraph *PMT2_20Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_20); |
1220 |
RatePMT5->cd(9); |
1221 |
sst.str(""); |
1222 |
sst << "PMT S323A"; |
1223 |
PMT2_20Graph->SetTitle(sst.str().c_str()); |
1224 |
PMT2_20Graph->SetFillColor(2); |
1225 |
PMT2_20Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1226 |
PMT2_20Graph->GetXaxis()->CenterTitle(); |
1227 |
PMT2_20Graph->GetYaxis()->SetTitle("PMT Counters"); |
1228 |
PMT2_20Graph->GetYaxis()->CenterTitle(); |
1229 |
PMT2_20Graph->Draw("AP"); |
1230 |
|
1231 |
//---------- |
1232 |
sst.str(""); |
1233 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1234 |
TGraph *PMT2_21Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_21); |
1235 |
RatePMT5->cd(10); |
1236 |
sst.str(""); |
1237 |
sst << "PMT S321B"; |
1238 |
PMT2_21Graph->SetTitle(sst.str().c_str()); |
1239 |
PMT2_21Graph->SetFillColor(2); |
1240 |
PMT2_21Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1241 |
PMT2_21Graph->GetXaxis()->CenterTitle(); |
1242 |
PMT2_21Graph->GetYaxis()->SetTitle("PMT Counters"); |
1243 |
PMT2_21Graph->GetYaxis()->CenterTitle(); |
1244 |
PMT2_21Graph->Draw("AP"); |
1245 |
|
1246 |
//---------- |
1247 |
sst.str(""); |
1248 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1249 |
TGraph *PMT2_22Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_22); |
1250 |
RatePMT5->cd(11); |
1251 |
sst.str(""); |
1252 |
sst << "PMT S322B"; |
1253 |
PMT2_22Graph->SetTitle(sst.str().c_str()); |
1254 |
PMT2_22Graph->SetFillColor(2); |
1255 |
PMT2_22Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1256 |
PMT2_22Graph->GetXaxis()->CenterTitle(); |
1257 |
PMT2_22Graph->GetYaxis()->SetTitle("PMT Counters"); |
1258 |
PMT2_22Graph->GetYaxis()->CenterTitle(); |
1259 |
PMT2_22Graph->Draw("AP"); |
1260 |
|
1261 |
//---------- |
1262 |
sst.str(""); |
1263 |
sst << "pmtcount1[0] vs OBT based on " << base.Data(); |
1264 |
TGraph *PMT2_23Graph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)pmt2_23); |
1265 |
RatePMT5->cd(12); |
1266 |
sst.str(""); |
1267 |
sst << "PMT S323B"; |
1268 |
PMT2_23Graph->SetTitle(sst.str().c_str()); |
1269 |
PMT2_23Graph->SetFillColor(2); |
1270 |
PMT2_23Graph->GetXaxis()->SetTitle("OnBoardTime"); |
1271 |
PMT2_23Graph->GetXaxis()->CenterTitle(); |
1272 |
PMT2_23Graph->GetYaxis()->SetTitle("PMT Counters"); |
1273 |
PMT2_23Graph->GetYaxis()->CenterTitle(); |
1274 |
PMT2_23Graph->Draw("AP"); |
1275 |
|
1276 |
|
1277 |
// print the output |
1278 |
const char *saveas = format; |
1279 |
if ( !strcmp(saveas,"ps") ) { |
1280 |
// ------print the ps |
1281 |
|
1282 |
gStyle->SetOptStat(111111); |
1283 |
|
1284 |
sst.str(""); |
1285 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic." << saveas << "("; |
1286 |
EvCounterCanvas->Print(sst.str().c_str()); |
1287 |
DeadLiveCanvas->Print(sst.str().c_str()); |
1288 |
MeanLiveDeadCanvas->Print(sst.str().c_str()); |
1289 |
PMTCanvas->Print(sst.str().c_str()); |
1290 |
TrigRate1Canvas->Print(sst.str().c_str()); |
1291 |
TrigRate2Canvas->Print(sst.str().c_str()); |
1292 |
|
1293 |
gStyle->SetOptStat("mr"); |
1294 |
S4CalCanvas->Print(sst.str().c_str()); |
1295 |
|
1296 |
gStyle->SetOptStat("mr"); |
1297 |
RatePMT1->Print(sst.str().c_str()); |
1298 |
RatePMT2->Print(sst.str().c_str()); |
1299 |
RatePMT3->Print(sst.str().c_str()); |
1300 |
RatePMT4->Print(sst.str().c_str()); |
1301 |
// |
1302 |
sst.str(""); |
1303 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic." << saveas << ")"; |
1304 |
RatePMT5->Print(sst.str().c_str()); |
1305 |
|
1306 |
} else { |
1307 |
|
1308 |
gStyle->SetOptStat(111111); |
1309 |
|
1310 |
sst.str(""); |
1311 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic1." << saveas; |
1312 |
EvCounterCanvas->SaveAs(sst.str().c_str()); |
1313 |
|
1314 |
sst.str(""); |
1315 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic2." << saveas; |
1316 |
DeadLiveCanvas->SaveAs(sst.str().c_str()); |
1317 |
|
1318 |
sst.str(""); |
1319 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic3." << saveas; |
1320 |
MeanLiveDeadCanvas->SaveAs(sst.str().c_str()); |
1321 |
sst.str(""); |
1322 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic4." << saveas; |
1323 |
PMTCanvas->SaveAs(sst.str().c_str()); |
1324 |
|
1325 |
sst.str(""); |
1326 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic5." << saveas; |
1327 |
TrigRate1Canvas->SaveAs(sst.str().c_str()); |
1328 |
|
1329 |
sst.str(""); |
1330 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic6." << saveas; |
1331 |
TrigRate2Canvas->SaveAs(sst.str().c_str()); |
1332 |
|
1333 |
sst.str(""); |
1334 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic7." << saveas; |
1335 |
S4CalCanvas->SaveAs(sst.str().c_str()); |
1336 |
|
1337 |
gStyle->SetOptStat("mr"); |
1338 |
|
1339 |
sst.str(""); |
1340 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic8." << saveas; |
1341 |
RatePMT1->SaveAs(sst.str().c_str()); |
1342 |
|
1343 |
sst.str(""); |
1344 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic9." << saveas; |
1345 |
RatePMT2->SaveAs(sst.str().c_str()); |
1346 |
|
1347 |
sst.str(""); |
1348 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic10." << saveas; |
1349 |
RatePMT3->SaveAs(sst.str().c_str()); |
1350 |
|
1351 |
sst.str(""); |
1352 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic11." << saveas; |
1353 |
RatePMT4->SaveAs(sst.str().c_str()); |
1354 |
|
1355 |
gStyle->SetOptStat("mr"); |
1356 |
|
1357 |
sst.str(""); |
1358 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic12." << saveas; |
1359 |
RatePMT5->SaveAs(sst.str().c_str()); |
1360 |
|
1361 |
} |
1362 |
|
1363 |
} |
1364 |
|
1365 |
|
1366 |
int main(int argc, char* argv[]){ |
1367 |
TString path; |
1368 |
TString outDir ="./"; |
1369 |
TString format ="ps"; |
1370 |
|
1371 |
if (argc < 2){ |
1372 |
printf("You have to insert at least the file to analyze \n"); |
1373 |
printf("Try '--help' for more information. \n"); |
1374 |
exit(1); |
1375 |
} |
1376 |
|
1377 |
if (!strcmp(argv[1], "--help")){ |
1378 |
printf( "Usage: TriggerScanBasic FILE [OPTION] \n"); |
1379 |
printf( "\t --help Print this help and exit \n"); |
1380 |
printf( "\t -outDir[path] Path where to put the output [default ./] \n"); |
1381 |
printf( "\t -format[ps] Format for output files [default 'ps'] \n"); |
1382 |
exit(1); |
1383 |
} |
1384 |
|
1385 |
|
1386 |
path=argv[1]; |
1387 |
|
1388 |
for (int i = 2; i < argc; i++){ |
1389 |
|
1390 |
if (!strcmp(argv[i], "-outDir")){ |
1391 |
if (++i >= argc){ |
1392 |
printf( "-outDir needs arguments. \n"); |
1393 |
printf( "Try '--help' for more information. \n"); |
1394 |
exit(1); |
1395 |
} |
1396 |
else{ |
1397 |
outDir = argv[i]; |
1398 |
continue; |
1399 |
} |
1400 |
} |
1401 |
|
1402 |
|
1403 |
|
1404 |
if (!strcmp(argv[i], "-format")){ |
1405 |
if (++i >= argc){ |
1406 |
printf( "-format needs arguments. \n"); |
1407 |
printf( "Try '--help' for more information. \n"); |
1408 |
exit(1); |
1409 |
} |
1410 |
else{ |
1411 |
format = argv[i]; |
1412 |
continue; |
1413 |
} |
1414 |
} |
1415 |
} |
1416 |
|
1417 |
TriggerScanBasic(argv[1], outDir, format); |
1418 |
|
1419 |
} |