/[PAMELA software]/quicklook/trigger/src/TriggerScan.cpp
ViewVC logotype

Annotation of /quicklook/trigger/src/TriggerScan.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Thu May 11 10:07:39 2006 UTC (18 years, 6 months ago) by campana
Branch: MAIN
Branch point for: ToF
Initial revision

1 campana 1.1 /**
2     * TriggerScan
3     * Author Nagni
4     * Modified by G. De Rosa
5     * Version 1.2
6     * Date 27 Apr 2006
7     *
8     * Description:
9     * Describe the performance of the Trigger.
10     *
11     * Parameters:
12     * TString base - the path to the root directory for the specific Pamela unpack session
13     * TString outDirectory - the path where to save the output image (Default = base)
14     * TString format - the format which will be used for save the produced images (Default = "ps")
15     */
16    
17     #include <TString.h>
18     #include <TObjString.h>
19     #include <TTree.h>
20     #include <TBranch.h>
21     #include <TGraph.h>
22     #include <TStyle.h>
23     #include <TH2S.h>
24     #include <TPaveText.h>
25     #include <TCanvas.h>
26     #include <TLatex.h>
27     #include <TGraph.h>
28     #include <physics/trigger/TriggerEvent.h>
29     #include <EventHeader.h>
30     #include <PscuHeader.h>
31     #include <iostream>
32    
33     using namespace std;
34    
35     char bit(int decimal, char pos)
36     {
37     return( (decimal>>pos)%2 );
38     }
39    
40     void TriggerScan(TString base, TString outDirectory = "", TString format = ""){
41     TLatex *t=new TLatex();
42    
43     std::stringstream sst;
44     if (outDirectory == "") outDirectory = base.Data();
45     TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString();
46    
47     TFile *file =new TFile(base.Data()) ;
48     if (!file){
49     printf("file not Found \n");
50     return;
51     }
52    
53     TTree *PhysicsTr = (TTree*)file->Get("Physics");
54     TBranch *TrigBr = PhysicsTr->GetBranch("Trigger");
55     TBranch *HeadBr = PhysicsTr->GetBranch("Header");
56    
57     pamela::EventHeader *eh = 0;
58     pamela::PscuHeader *ph = 0;
59    
60     pamela::trigger::TriggerEvent *triggerEvent = 0;
61    
62     PhysicsTr->SetBranchAddress("Trigger", &triggerEvent);
63     PhysicsTr->SetBranchAddress("Header", &eh);
64    
65     Long64_t nevents = TrigBr->GetEntries();
66     if (nevents <= 0) {
67     printf("nevents = %llu \n", nevents);
68     file->Close();
69     return;
70     }
71    
72     /* Histo DEF */
73    
74     /*
75     * PTM Plane Counters histograms
76     */
77     TCanvas *PMTCanvas = new TCanvas("PMTCanvas","PMTCanvas", 1280, 1024);
78     PMTCanvas->Divide(1,3);
79     //----------
80     sst.str("");
81     sst << "Histogram of PMT Plane Counters (S11 AND S12) based on " << base.Data();
82     TH1S *pmt1Histo = new TH1S("PMT1Histo", sst.str().c_str(), 20, 0., 300.);
83     //----------
84     sst.str("");
85     sst << "Histogram of PMT Plane Counters (S21 AND S22) based on " << base.Data();
86     TH1S *pmt2Histo = new TH1S("PMT2Histo", sst.str().c_str(), 20, 0., 300.);
87     //----------
88     sst.str("");
89     sst << "Histogram of PMT Plane Counters (S31 AND S32) based on " << base.Data();
90     TH1S *pmt3Histo = new TH1S("PMT3Histo", sst.str().c_str(), 20, 0., 300.);
91    
92     /*
93     * Trigger Rate Counters histograms
94     */
95     TCanvas *TrigRate1Canvas = new TCanvas("TrigRate1Canvas","TrigRate1Canvas", 1280, 1024);
96     TrigRate1Canvas->Divide(1,3);
97    
98     TCanvas *TrigRate2Canvas = new TCanvas("TrigRate2Canvas","TrigRate2Canvas", 1280, 1024);
99     TrigRate2Canvas->Divide(1,3);
100     //----------
101     sst.str("");
102     sst << "Histogram of Trigger Rate Counters (S11 OR S12) AND (S21 OR S22) AND (S31 OR S32) based on " << base.Data();
103     TH1S *trRate1Histo = new TH1S("trRate1Histo", sst.str().c_str(), 20, 0., 5.);
104     //----------
105     sst.str("");
106     sst << "Histogram of Trigger Rate Counters (S11 AND S12) AND (S21 AND S22) AND (S31 AND S32) based on " << base.Data();
107     TH1S *trRate2Histo = new TH1S("trRate2Histo", sst.str().c_str(), 20, 0., 5.);
108     //---------
109     sst.str("");
110     sst << "Histogram of Trigger Rate Counters (S21 OR S22) AND (S31 OR S32) based on " << base.Data();
111     TH1S *trRate3Histo = new TH1S("trRate3Histo", sst.str().c_str(), 20, 0., 5.);
112     //---------
113     sst.str("");
114     sst << "Histogram of Trigger Rate Counters (S21 AND S22) AND (S31 AND S32) based on " << base.Data();
115     TH1S *trRate4Histo = new TH1S("trRate4Histo", sst.str().c_str(), 20, 0., 5.);
116     //---------
117     sst.str("");
118     sst << "Histogram of Trigger Rate Counters S12 AND (S21 OR S22) based on " << base.Data();
119     TH1S *trRate5Histo = new TH1S("trRate5Histo", sst.str().c_str(), 20, 0., 5.);
120     //---------
121     sst.str("");
122     sst << "Histogram of Trigger Rate Counters (S11 OR S12) AND (S31 OR S32) based on " << base.Data();
123     TH1S *trRate6Histo = new TH1S("trRate6Histo", sst.str().c_str(), 20, 0., 5.);
124    
125    
126     /*
127     * S4 and Calorimeter Counters histograms
128     */
129     TCanvas *S4CalCanvas = new TCanvas("S4CalCanvas","S4CalCanvas", 1280, 1024);
130     S4CalCanvas->Divide(1,2);
131     //----------
132     sst.str("");
133     sst << "S4 Counters based on " << base.Data();
134     TH1S *S4Cal1Histo = new TH1S("S4Cal1Histo", sst.str().c_str(), 20, 0, 20);
135     //----------
136     sst.str("");
137     sst << "Calorimeter Counters based on " << base.Data();
138     TH1S *S4Cal2Histo = new TH1S("S4Cal2Histo", sst.str().c_str(), 20, 0, 20);
139    
140     /*
141     * Pattern Trigger Rate histograms
142     */
143    
144     TCanvas *PatternTrig0 = new TCanvas("PatternTrig0","PatternTrig0", 1280, 1024);
145     //----------
146     sst.str("");
147     sst << "Histogram of Calo pattern trigger " << base.Data();
148     TH1S *PatternTrig0Histo = new TH1S("PatternTrig0Histo", sst.str().c_str(), 4, 0, 4);
149    
150     TCanvas *PatternTrig1 = new TCanvas("PatternTrig1","PatternTrig1", 1280, 1024);
151     //----------
152     sst.str("");
153     sst << "Histogram of S4 pattern trigger " << base.Data();
154     TH1S *PatternTrig1Histo = new TH1S("PatternTrig1Histo", sst.str().c_str(), 3, 0, 3);
155    
156    
157     TCanvas *PatternTrig2 = new TCanvas("PatternTrig2","PatternTrig2", 1280, 1024);
158     //----------
159     sst.str("");
160     sst << "Histogram of S3 pattern trigger " << base.Data();
161     TH1S *PatternTrig2Histo = new TH1S("PatternTrig2Histo", sst.str().c_str(), 16, 0, 16);
162    
163    
164     TCanvas *PatternTrig3 = new TCanvas("PatternTrig3","PatternTrig3", 1280, 1024);
165     //----------
166     sst.str("");
167     sst << "Histogram of S2 pattern trigger " << base.Data();
168     TH1S *PatternTrig3Histo = new TH1S("PatternTrig3Histo", sst.str().c_str(), 16, 0, 16);
169    
170    
171     TCanvas *PatternTrig4 = new TCanvas("PatternTrig4","PatternTrig4", 1280, 1024);
172     //----------
173     sst.str("");
174     sst << "Histogram of S12 pattern trigger " << base.Data();
175     TH1S *PatternTrig4Histo = new TH1S("PatternTrig4Histo", sst.str().c_str(), 16, 0, 16);
176    
177    
178     TCanvas *PatternTrig5 = new TCanvas("PatternTrig5","PatternTrig5", 1280, 1024);
179     //----------
180     sst.str("");
181     sst << "Histogram of S11 pattern trigger " << base.Data();
182     TH1S *PatternTrig5Histo = new TH1S("PatternTrig5Histo", sst.str().c_str(), 16, 0, 16);
183    
184    
185    
186     int i = 0;
187     Int_t size = nevents;
188    
189     Double_t *time = new Double_t[size];
190     Double_t *evCounter = new Double_t[size];
191     Double_t *deadTime = new Double_t[size];
192     Double_t *liveTime = new Double_t[size];
193    
194     while(i < nevents){
195     HeadBr->GetEntry(i);
196     TrigBr->GetEntry(i);
197    
198     /* time vector fill*/
199     ph = eh->GetPscuHeader();
200     time[i] = ph->GetOrbitalTime();
201    
202     /* eventCounter vector fill*/
203     evCounter[i] = triggerEvent->evcount;
204    
205     /* live time vector fill*/
206     liveTime[i] = 0.16 * triggerEvent->dltime[0];
207    
208     /* dead time vector fill*/
209     deadTime[i] = 0.01 * triggerEvent->dltime[1];
210    
211     gStyle->SetStatY(0.85);
212    
213     /* PMT Plane Counters fill*/
214    
215     pmt1Histo->Fill((1/0.06)*triggerEvent->pmtpl[0]);
216     pmt2Histo->Fill((1/0.06)*triggerEvent->pmtpl[1]);
217     pmt3Histo->Fill((1/0.06)*triggerEvent->pmtpl[2]);
218    
219     /* Trigger Rate Counters fill*/
220     trRate1Histo->Fill((1/4.)*triggerEvent->trigrate[0]);
221     trRate2Histo->Fill((1/4.)*triggerEvent->trigrate[1]);
222     trRate3Histo->Fill((1/4.)*triggerEvent->trigrate[2]);
223     trRate4Histo->Fill((1/4.)*triggerEvent->trigrate[3]);
224     trRate5Histo->Fill((1/4.)*triggerEvent->trigrate[4]);
225     trRate6Histo->Fill((1/4.)*triggerEvent->trigrate[5]);
226    
227     /* S4 and Calorimeter Counters fill*/
228     S4Cal1Histo->Fill(triggerEvent->s4calcount[0]);
229     S4Cal2Histo->Fill(triggerEvent->s4calcount[1]);
230    
231     int trte0=(int)triggerEvent->patterntrig[0];
232    
233     PatternTrig0Histo->AddBinContent(1,bit(trte0,0));
234     PatternTrig0Histo->AddBinContent(2,bit(trte0,1));
235     PatternTrig0Histo->AddBinContent(3,bit(trte0,2));
236     PatternTrig0Histo->AddBinContent(4,bit(trte0,3));
237    
238     int trte1=(int)triggerEvent->patterntrig[1];
239    
240     PatternTrig1Histo->AddBinContent(1,bit(trte1,0));
241     PatternTrig1Histo->AddBinContent(2,bit(trte1,1));
242     PatternTrig1Histo->AddBinContent(3,bit(trte1,2));
243    
244    
245     int trte2=(int)triggerEvent->patterntrig[2];
246    
247     PatternTrig2Histo->AddBinContent(1,bit(trte2,0));
248     PatternTrig2Histo->AddBinContent(2,bit(trte2,1));
249     PatternTrig2Histo->AddBinContent(3,bit(trte2,2));
250     PatternTrig2Histo->AddBinContent(4,bit(trte2,3));
251     PatternTrig2Histo->AddBinContent(5,bit(trte2,4));
252     PatternTrig2Histo->AddBinContent(6,bit(trte2,5));
253     PatternTrig2Histo->AddBinContent(7,bit(trte2,6));
254     PatternTrig2Histo->AddBinContent(8,bit(trte2,7));
255     PatternTrig2Histo->AddBinContent(9,bit(trte2,8));
256     PatternTrig2Histo->AddBinContent(10,bit(trte2,9));
257     PatternTrig2Histo->AddBinContent(11,bit(trte2,10));
258     PatternTrig2Histo->AddBinContent(12,bit(trte2,11));
259     PatternTrig2Histo->AddBinContent(13,bit(trte2,12));
260     PatternTrig2Histo->AddBinContent(14,bit(trte2,13));
261     PatternTrig2Histo->AddBinContent(15,bit(trte2,14));
262     PatternTrig2Histo->AddBinContent(16,bit(trte2,15));
263    
264     int trte3=(int)triggerEvent->patterntrig[3];
265    
266    
267     PatternTrig3Histo->AddBinContent(1,bit(trte3,0));
268     PatternTrig3Histo->AddBinContent(2,bit(trte3,1));
269     PatternTrig3Histo->AddBinContent(3,bit(trte3,2));
270     PatternTrig3Histo->AddBinContent(4,bit(trte3,3));
271     PatternTrig3Histo->AddBinContent(5,bit(trte3,4));
272     PatternTrig3Histo->AddBinContent(6,bit(trte3,5));
273     PatternTrig3Histo->AddBinContent(7,bit(trte3,6));
274     PatternTrig3Histo->AddBinContent(8,bit(trte3,7));
275     PatternTrig3Histo->AddBinContent(9,bit(trte3,8));
276     PatternTrig3Histo->AddBinContent(10,bit(trte3,9));
277     PatternTrig3Histo->AddBinContent(11,bit(trte3,10));
278     PatternTrig3Histo->AddBinContent(12,bit(trte3,11));
279     PatternTrig3Histo->AddBinContent(13,bit(trte3,12));
280     PatternTrig3Histo->AddBinContent(14,bit(trte3,13));
281     PatternTrig3Histo->AddBinContent(15,bit(trte3,14));
282     PatternTrig3Histo->AddBinContent(16,bit(trte3,15));
283    
284     int trte4=(int)triggerEvent->patterntrig[4];
285    
286    
287     PatternTrig4Histo->AddBinContent(1,bit(trte4,0));
288     PatternTrig4Histo->AddBinContent(2,bit(trte4,1));
289     PatternTrig4Histo->AddBinContent(3,bit(trte4,2));
290     PatternTrig4Histo->AddBinContent(4,bit(trte4,3));
291     PatternTrig4Histo->AddBinContent(5,bit(trte4,4));
292     PatternTrig4Histo->AddBinContent(6,bit(trte4,5));
293     PatternTrig4Histo->AddBinContent(7,bit(trte4,6));
294     PatternTrig4Histo->AddBinContent(8,bit(trte4,7));
295     PatternTrig4Histo->AddBinContent(9,bit(trte4,8));
296     PatternTrig4Histo->AddBinContent(10,bit(trte4,9));
297     PatternTrig4Histo->AddBinContent(11,bit(trte4,10));
298     PatternTrig4Histo->AddBinContent(12,bit(trte4,11));
299     PatternTrig4Histo->AddBinContent(13,bit(trte4,12));
300     PatternTrig4Histo->AddBinContent(14,bit(trte4,13));
301     PatternTrig4Histo->AddBinContent(15,bit(trte4,14));
302     PatternTrig4Histo->AddBinContent(16,bit(trte4,15));
303    
304     int trte5=(int)triggerEvent->patterntrig[5];
305    
306    
307     PatternTrig5Histo->AddBinContent(1,bit(trte5,0));
308     PatternTrig5Histo->AddBinContent(2,bit(trte5,1));
309     PatternTrig5Histo->AddBinContent(3,bit(trte5,2));
310     PatternTrig5Histo->AddBinContent(4,bit(trte5,3));
311     PatternTrig5Histo->AddBinContent(5,bit(trte5,4));
312     PatternTrig5Histo->AddBinContent(6,bit(trte5,5));
313     PatternTrig5Histo->AddBinContent(7,bit(trte5,6));
314     PatternTrig5Histo->AddBinContent(8,bit(trte5,7));
315     PatternTrig5Histo->AddBinContent(9,bit(trte5,8));
316     PatternTrig5Histo->AddBinContent(10,bit(trte5,9));
317     PatternTrig5Histo->AddBinContent(11,bit(trte5,10));
318     PatternTrig5Histo->AddBinContent(12,bit(trte5,11));
319     PatternTrig5Histo->AddBinContent(13,bit(trte5,12));
320     PatternTrig5Histo->AddBinContent(14,bit(trte5,13));
321     PatternTrig5Histo->AddBinContent(15,bit(trte5,14));
322     PatternTrig5Histo->AddBinContent(16,bit(trte5,15));
323    
324     i++;
325     }
326    
327    
328     gStyle->SetOptStat(111111);
329     gStyle->SetStatH(0.15);
330     gStyle->SetStatW(0.15);
331    
332    
333     /*
334     * Event Counter graph
335     */
336     TCanvas *EvCounterCanvas = new TCanvas("EvCounterCanvas","EvCounterCanvas", 1280, 1024);
337     //----------
338     sst.str("");
339     sst << "Event Counter";
340     TGraph *evCounterGraph = new TGraph(nevents, time, evCounter);
341     evCounterGraph->SetTitle(sst.str().c_str());
342     evCounterGraph->Draw("APL");
343    
344     /*
345     * Dead and Live time graphs
346     */
347     TCanvas *DeadLiveCanvas = new TCanvas("DeadLiveCanvas","DeadLiveCanvas", 1280, 1024);
348     DeadLiveCanvas->Divide(1,2);
349     //----------
350     sst.str("");
351     sst << "Graph of Dead Time vs OBT based on " << base.Data();
352     TGraph *DeadTimeGraph = new TGraph(nevents, time, deadTime);
353     DeadLiveCanvas->cd(1);
354     sst.str("");
355     sst << "Dead Time";
356     DeadTimeGraph->SetTitle(sst.str().c_str());
357     DeadTimeGraph->SetFillColor(2);
358     DeadTimeGraph->GetXaxis()->SetTitle("OnBoardTime");
359     DeadTimeGraph->GetXaxis()->CenterTitle();
360     DeadTimeGraph->GetYaxis()->SetTitle("DeadTime(ms)");
361     DeadTimeGraph->GetYaxis()->CenterTitle();
362     DeadTimeGraph->SetMaximum(100);
363     DeadTimeGraph->Draw("APL");
364     //----------
365     sst.str("");
366     sst << "Graph of Live Time vs OBT based on " << base.Data();
367     TGraph *LiveTimeGraph = new TGraph(nevents, (const Double_t*)time, (const Double_t*)liveTime);
368     DeadLiveCanvas->cd(2);
369     sst.str("");
370     sst << "Live Time";
371     LiveTimeGraph->SetTitle(sst.str().c_str());
372     LiveTimeGraph->SetFillColor(2);
373     LiveTimeGraph->GetXaxis()->SetTitle("OnBoardTime");
374     LiveTimeGraph->GetXaxis()->CenterTitle();
375     LiveTimeGraph->GetYaxis()->SetTitle("LiveTime(ms)");
376     LiveTimeGraph->GetYaxis()->CenterTitle();
377     LiveTimeGraph->Draw("APL");
378    
379     /* PMT Plane Counters draw*/
380    
381     PMTCanvas->cd(1);
382     pmt1Histo->GetXaxis()->SetTitle("Hz");
383     pmt1Histo->Draw();
384     PMTCanvas->cd(2);
385     pmt2Histo->GetXaxis()->SetTitle("Hz");
386     pmt2Histo->Draw();
387     PMTCanvas->cd(3);
388     pmt3Histo->GetXaxis()->SetTitle("Hz");
389     pmt3Histo->Draw();
390    
391     /* Trigger Rate Counters draw*/
392     TrigRate1Canvas->cd(1);
393     trRate1Histo->GetXaxis()->SetTitle("Hz");
394     trRate1Histo->Draw();
395     TrigRate1Canvas->cd(2);
396     trRate2Histo->GetXaxis()->SetTitle("Hz");
397     trRate2Histo->Draw();
398     TrigRate1Canvas->cd(3);
399     trRate3Histo->GetXaxis()->SetTitle("Hz");
400     trRate3Histo->Draw();
401     TrigRate2Canvas->cd(1);
402     trRate4Histo->GetXaxis()->SetTitle("Hz");
403     trRate4Histo->Draw();
404     TrigRate2Canvas->cd(2);
405     trRate5Histo->GetXaxis()->SetTitle("Hz");
406     trRate5Histo->Draw();
407     TrigRate2Canvas->cd(3);
408     trRate6Histo->GetXaxis()->SetTitle("Hz");
409     trRate6Histo->Draw();
410    
411     /* S4 and Calorimeter Counters draw*/
412     S4CalCanvas->cd(1);
413     S4Cal1Histo->GetXaxis()->SetTitle("Hz");
414     S4Cal1Histo->Draw();
415     S4CalCanvas->cd(2);
416     S4Cal2Histo->GetXaxis()->SetTitle("Hz");
417     S4Cal2Histo->Draw();
418    
419     /* Pattern Trigger draw*/
420    
421     gStyle->SetOptStat(1101);
422    
423     PatternTrig5->cd();
424     PatternTrig5Histo->Draw("");
425    
426     PatternTrig4->cd();
427     PatternTrig4Histo->Draw("");
428    
429     PatternTrig3->cd();
430     PatternTrig3Histo->Draw("");
431    
432     PatternTrig2->cd();
433     PatternTrig2Histo->Draw("");
434    
435     PatternTrig0->cd();
436     PatternTrig0Histo->Draw("");
437    
438     PatternTrig1->cd();
439     PatternTrig1Histo->Draw("");
440    
441     gStyle->SetOptStat(1111);
442     gStyle->SetStatH(0.3);
443     gStyle->SetStatW(0.3);
444    
445     TCanvas *RatePMT1 = new TCanvas("RatePMT1", "Rate PMT S11A", 1);
446     RatePMT1->Divide (3,3);
447     //----------
448     RatePMT1->cd(1);
449     PhysicsTr->Draw("pmtcount1[0]");
450     t=new TLatex();
451     t->SetTextFont(32);
452     t->SetTextColor(1);
453     t->SetTextAlign(12);
454     t->SetTextSize(0.12);
455     t->DrawLatex(5.,20.,"S111A");
456     //----------
457     RatePMT1->cd (2);
458     PhysicsTr->Draw("pmtcount1[1]");
459     t=new TLatex();
460     t->SetTextFont(32);
461     t->SetTextColor(1);
462     t->SetTextAlign(12);
463     t->SetTextSize(0.12);
464     t->DrawLatex(5.,20.,"S112A");
465     //----------
466     RatePMT1->cd (3);
467     PhysicsTr->Draw("pmtcount1[2]");
468     t=new TLatex();
469     t->SetTextFont(32);
470     t->SetTextColor(1);
471     t->SetTextAlign(12);
472     t->SetTextSize(0.12);
473     t->DrawLatex(5.,20.,"S113A");
474     //----------
475     RatePMT1->cd(4);
476     PhysicsTr->Draw("pmtcount1[3]");
477     t=new TLatex();
478     t->SetTextFont(32);
479     t->SetTextColor(1);
480     t->SetTextAlign(12);
481     t->SetTextSize(0.12);
482     t->DrawLatex(5.,20.,"S114A");
483     //----------
484     RatePMT1->cd(5);
485     PhysicsTr->Draw("pmtcount1[4]");
486     t=new TLatex();
487     t->SetTextFont(32);
488     t->SetTextColor(1);
489     t->SetTextAlign(12);
490     t->SetTextSize(0.12);
491     t->DrawLatex(5.,20.,"S115A");
492     //----------
493     RatePMT1->cd(6);
494     PhysicsTr->Draw("pmtcount1[5]");
495     t=new TLatex();
496     t->SetTextFont(32);
497     t->SetTextColor(1);
498     t->SetTextAlign(12);
499     t->SetTextSize(0.12);
500     t->DrawLatex(5.,20.,"S116A");
501     //----------
502     RatePMT1->cd(7);
503     PhysicsTr->Draw("pmtcount1[6]");
504     t=new TLatex();
505     t->SetTextFont(32);
506     t->SetTextColor(1);
507     t->SetTextAlign(12);
508     t->SetTextSize(0.12);
509     t->DrawLatex(5.,20.,"S117A");
510     //----------
511     RatePMT1->cd(8);
512     PhysicsTr->Draw("pmtcount1[7]");
513     t=new TLatex();
514     t->SetTextFont(32);
515     t->SetTextColor(1);
516     t->SetTextAlign(12);
517     t->SetTextSize(0.12);
518     t->DrawLatex(5.,20.,"S118A");
519    
520     TCanvas *RatePMT2 = new TCanvas("RatePMT2", "Rate PMT S11B", 1);
521     RatePMT2->Divide (3,3);
522     //----------
523     RatePMT2->cd(1);
524     PhysicsTr-> Draw("pmtcount1[8]");
525     t=new TLatex();
526     t->SetTextFont(32);
527     t->SetTextColor(1);
528     t->SetTextAlign(12);
529     t->SetTextSize(0.12);
530     t->DrawLatex(5.,20.,"S111B");
531     //----------
532     RatePMT2->cd(2);
533     PhysicsTr->Draw("pmtcount1[9]");
534     t=new TLatex();
535     t->SetTextFont(32);
536     t->SetTextColor(1);
537     t->SetTextAlign(12);
538     t->SetTextSize(0.12);
539     t->DrawLatex(5.,20.,"S112B");
540     //----------
541     RatePMT2->cd(3);
542     PhysicsTr->Draw("pmtcount1[10]");
543     t=new TLatex();
544     t->SetTextFont(32);
545     t->SetTextColor(1);
546     t->SetTextAlign(12);
547     t->SetTextSize(0.12);
548     t->DrawLatex(5.,20.,"S113B");
549     //----------
550     RatePMT2->cd(4);
551     PhysicsTr->Draw("pmtcount1[11]");
552     t=new TLatex();
553     t->SetTextFont(32);
554     t->SetTextColor(1);
555     t->SetTextAlign(12);
556     t->SetTextSize(0.12);
557     t->DrawLatex(5.,20.,"S114B");
558     //----------
559     RatePMT2->cd(5);
560     PhysicsTr-> Draw("pmtcount1[12]");
561     t=new TLatex();
562     t->SetTextFont(32);
563     t->SetTextColor(1);
564     t->SetTextAlign(12);
565     t->SetTextSize(0.12);
566     t->DrawLatex(5.,20.,"S115B");
567     //----------
568     RatePMT2->cd(6);
569     PhysicsTr-> Draw("pmtcount1[13]");
570     t=new TLatex();
571     t->SetTextFont(32);
572     t->SetTextColor(1);
573     t->SetTextAlign(12);
574     t->SetTextSize(0.12);
575     t->DrawLatex(5.,20.,"S116B");
576     //----------
577     RatePMT2->cd(7);
578     PhysicsTr-> Draw("pmtcount1[14]");
579     t=new TLatex();
580     t->SetTextFont(32);
581     t->SetTextColor(1);
582     t->SetTextAlign(12);
583     t->SetTextSize(0.12);
584     t->DrawLatex(5.,20.,"S117B");
585     //----------
586     RatePMT2->cd(8);
587     PhysicsTr->Draw("pmtcount1[15]");
588     t=new TLatex();
589     t->SetTextFont(32);
590     t->SetTextColor(1);
591     t->SetTextAlign(12);
592     t->SetTextSize(0.12);
593     t->DrawLatex(5.,20.,"S118B");
594    
595     TCanvas *RatePMT3 = new TCanvas("RatePMT3", "Rate PMT S12", 1);
596     RatePMT3->Divide (3,4);
597     //----------
598     RatePMT3->cd(1);
599     PhysicsTr-> Draw("pmtcount1[16]");
600     t=new TLatex();
601     t->SetTextFont(32);
602     t->SetTextColor(1);
603     t->SetTextAlign(12);
604     t->SetTextSize(0.12);
605     t->DrawLatex(5.,20.,"S121A");
606     //----------
607     RatePMT3->cd(2);
608     PhysicsTr-> Draw("pmtcount1[17]");
609     t=new TLatex();
610     t->SetTextFont(32);
611     t->SetTextColor(1);
612     t->SetTextAlign(12);
613     t->SetTextSize(0.12);
614     t->DrawLatex(5.,20.,"S122A");
615     //----------
616     RatePMT3->cd (3);
617     PhysicsTr-> Draw("pmtcount1[18]");
618     t=new TLatex();
619     t->SetTextFont(32);
620     t->SetTextColor(1);
621     t->SetTextAlign(12);
622     t->SetTextSize(0.12);
623     t->DrawLatex(5.,20.,"S123A");
624     //----------
625     RatePMT3->cd(4);
626     PhysicsTr->Draw("pmtcount1[19]");
627     t=new TLatex();
628     t->SetTextFont(32);
629     t->SetTextColor(1);
630     t->SetTextAlign(12);
631     t->SetTextSize(0.12);
632     t->DrawLatex(5.,20.,"S124A");
633     //----------
634     RatePMT3->cd(5);
635     PhysicsTr-> Draw("pmtcount1[20]");
636     t=new TLatex();
637     t->SetTextFont(32);
638     t->SetTextColor(1);
639     t->SetTextAlign(12);
640     t->SetTextSize(0.12);
641     t->DrawLatex(5.,20.,"S125A");
642     //----------
643     RatePMT3->cd(6);
644     PhysicsTr-> Draw("pmtcount1[21]");
645     t=new TLatex();
646     t->SetTextFont(32);
647     t->SetTextColor(1);
648     t->SetTextAlign(12);
649     t->SetTextSize(0.12);
650     t->DrawLatex(5.,20.,"S126A");
651     //----------
652     RatePMT3->cd(7);
653     PhysicsTr->Draw("pmtcount1[22]");
654     t=new TLatex();
655     t->SetTextFont(32);
656     t->SetTextColor(1);
657     t->SetTextAlign(12);
658     t->SetTextSize(0.12);
659     t->DrawLatex(5.,20.,"S121B");
660     //----------
661     RatePMT3->cd(8);
662     PhysicsTr-> Draw("pmtcount1[23]");
663     t=new TLatex();
664     t->SetTextFont(32);
665     t->SetTextColor(1);
666     t->SetTextAlign(12);
667     t->SetTextSize(0.12);
668     t->DrawLatex(5.,20.,"S122B");
669     //----------
670     RatePMT3->cd (9);
671     PhysicsTr->Draw("pmtcount2[0]");
672     t=new TLatex();
673     t->SetTextFont(32);
674     t->SetTextColor(1);
675     t->SetTextAlign(12);
676     t->SetTextSize(0.12);
677     t->DrawLatex(5.,20.,"S123B");
678     //----------
679     RatePMT3->cd (10);
680     PhysicsTr->Draw("pmtcount2[1]");
681     t=new TLatex();
682     t->SetTextFont(32);
683     t->SetTextColor(1);
684     t->SetTextAlign(12);
685     t->SetTextSize(0.12);
686     t->DrawLatex(5.,20.,"S124B");
687     //----------
688     RatePMT3->cd (11);
689     PhysicsTr->Draw("pmtcount2[2]");
690     t=new TLatex();
691     t->SetTextFont(32);
692     t->SetTextColor(1);
693     t->SetTextAlign(12);
694     t->SetTextSize(0.12);
695     t->DrawLatex(5.,20.,"S125B");
696     //----------
697     RatePMT3->cd (12);
698     PhysicsTr->Draw("pmtcount2[3]");
699     t=new TLatex();
700     t->SetTextFont(32);
701     t->SetTextColor(1);
702     t->SetTextAlign(12);
703     t->SetTextSize(0.12);
704     t->DrawLatex(5.,20.,"S126B");
705    
706     TCanvas *RatePMT4 = new TCanvas("RatePMT4", "Rate PMT S2", 1);
707     RatePMT4->Divide (3,3);
708     //----------
709     RatePMT4->cd (1);
710     PhysicsTr-> Draw("pmtcount2[4]");
711     t=new TLatex();
712     t->SetTextFont(32);
713     t->SetTextColor(1);
714     t->SetTextAlign(12);
715     t->SetTextSize(0.12);
716     t->DrawLatex(5.,20.,"S211A");
717     //----------
718     RatePMT4->cd (2);
719     PhysicsTr-> Draw("pmtcount2[5]");
720     t=new TLatex();
721     t->SetTextFont(32);
722     t->SetTextColor(1);
723     t->SetTextAlign(12);
724     t->SetTextSize(0.12);
725     t->DrawLatex(5.,20.,"S212A");
726     //----------
727     RatePMT4->cd (3);
728     PhysicsTr-> Draw("pmtcount2[6]");
729     t=new TLatex();
730     t->SetTextFont(32);
731     t->SetTextColor(1);
732     t->SetTextAlign(12);
733     t->SetTextSize(0.12);
734     t->DrawLatex(5.,20.,"S211B");
735     //----------
736     RatePMT4->cd (4);
737     PhysicsTr-> Draw("pmtcount2[7]");
738     t=new TLatex();
739     t->SetTextFont(32);
740     t->SetTextColor(1);
741     t->SetTextAlign(12);
742     t->SetTextSize(0.12);
743     t->DrawLatex(5.,20.,"S212B");
744     //----------
745     RatePMT4->cd (5);
746     PhysicsTr-> Draw("pmtcount2[8]");
747     t=new TLatex();
748     t->SetTextFont(32);
749     t->SetTextColor(1);
750     t->SetTextAlign(12);
751     t->SetTextSize(0.12);
752     t->DrawLatex(5.,20.,"S221A");
753     //----------
754     RatePMT4->cd (6);
755     PhysicsTr-> Draw("pmtcount2[9]");
756     t=new TLatex();
757     t->SetTextFont(32);
758     t->SetTextColor(1);
759     t->SetTextAlign(12);
760     t->SetTextSize(0.12);
761     t->DrawLatex(5.,20.,"S222A");
762     //----------
763     RatePMT4->cd (7);
764     PhysicsTr-> Draw("pmtcount2[10]");
765     t=new TLatex();
766     t->SetTextFont(32);
767     t->SetTextColor(1);
768     t->SetTextAlign(12);
769     t->SetTextSize(0.12);
770     t->DrawLatex(5.,20.,"S221B");
771     //----------
772     RatePMT4->cd (8);
773     PhysicsTr->Draw("pmtcount2[11]");
774     t=new TLatex();
775     t->SetTextFont(32);
776     t->SetTextColor(1);
777     t->SetTextAlign(12);
778     t->SetTextSize(0.12);
779     t->DrawLatex(5.,20.,"S222B");
780    
781     TCanvas *RatePMT5 = new TCanvas("RatePMT5", "Rate PMT S3", 1);
782     RatePMT5->Divide (3,4);
783     //----------
784     RatePMT5->cd (1);
785     PhysicsTr-> Draw("pmtcount2[12]");
786     t=new TLatex();
787     t->SetTextFont(32);
788     t->SetTextColor(1);
789     t->SetTextAlign(12);
790     t->SetTextSize(0.12);
791     t->DrawLatex(5.,20.,"S311A");
792     //----------
793     RatePMT5->cd (2);
794     PhysicsTr-> Draw("pmtcount2[13]");
795     t=new TLatex();
796     t->SetTextFont(32);
797     t->SetTextColor(1);
798     t->SetTextAlign(12);
799     t->SetTextSize(0.12);
800     t->DrawLatex(5.,20.,"S312A");
801     //----------
802     RatePMT5->cd (3);
803     PhysicsTr-> Draw("pmtcount2[14]");
804     t=new TLatex();
805     t->SetTextFont(32);
806     t->SetTextColor(1);
807     t->SetTextAlign(12);
808     t->SetTextSize(0.12);
809     t->DrawLatex(5.,20.,"S313A");
810     //----------
811     RatePMT5->cd (4);
812     PhysicsTr-> Draw("pmtcount2[15]");
813     t=new TLatex();
814     t->SetTextFont(32);
815     t->SetTextColor(1);
816     t->SetTextAlign(12);
817     t->SetTextSize(0.12);
818     t->DrawLatex(5.,20.,"S311B");
819     //----------
820     RatePMT5->cd (5);
821     PhysicsTr-> Draw("pmtcount2[16]");
822     t=new TLatex();
823     t->SetTextFont(32);
824     t->SetTextColor(1);
825     t->SetTextAlign(12);
826     t->SetTextSize(0.12);
827     t->DrawLatex(5.,20.,"S312B");
828     //----------
829     RatePMT5->cd (6);
830     PhysicsTr-> Draw("pmtcount2[17]");
831     t=new TLatex();
832     t->SetTextFont(32);
833     t->SetTextColor(1);
834     t->SetTextAlign(12);
835     t->SetTextSize(0.12);
836     t->DrawLatex(5.,20.,"S313B");
837     //----------
838     RatePMT5->cd (7);
839     PhysicsTr-> Draw("pmtcount2[18]");
840     t=new TLatex();
841     t->SetTextFont(32);
842     t->SetTextColor(1);
843     t->SetTextAlign(12);
844     t->SetTextSize(0.12);
845     t->DrawLatex(5.,20.,"S321A");
846     //----------
847     RatePMT5->cd (8);
848     PhysicsTr-> Draw("pmtcount2[19]");
849     t=new TLatex();
850     t->SetTextFont(32);
851     t->SetTextColor(1);
852     t->SetTextAlign(12);
853     t->SetTextSize(0.12);
854     t->DrawLatex(5.,20.,"S322A");
855     //----------
856     RatePMT5->cd (9);
857     PhysicsTr-> Draw("pmtcount2[20]");
858     t=new TLatex();
859     t->SetTextFont(32);
860     t->SetTextColor(1);
861     t->SetTextAlign(12);
862     t->SetTextSize(0.12);
863     t->DrawLatex(5.,20.,"S323A");
864     //----------
865     RatePMT5->cd (10);
866     PhysicsTr-> Draw("pmtcount2[21]");
867     t=new TLatex();
868     t->SetTextFont(32);
869     t->SetTextColor(1);
870     t->SetTextAlign(12);
871     t->SetTextSize(0.12);
872     t->DrawLatex(5.,20.,"S321B");
873     //----------
874     RatePMT5->cd (11);
875     PhysicsTr-> Draw("pmtcount2[22]");
876     t=new TLatex();
877     t->SetTextFont(32);
878     t->SetTextColor(1);
879     t->SetTextAlign(12);
880     t->SetTextSize(0.12);
881     t->DrawLatex(5.,20.,"S322B");
882     //----------
883     RatePMT5->cd (12);
884     PhysicsTr-> Draw("pmtcount2[23]");
885     t=new TLatex();
886     t->SetTextFont(32);
887     t->SetTextColor(1);
888     t->SetTextAlign(12);
889     t->SetTextSize(0.12);
890     t->DrawLatex(5.,20.,"S323B");
891    
892     // print the output
893     const char *saveas = format;
894     if ( !strcmp(saveas,"ps") ) {
895     // ------print the ps
896    
897     gStyle->SetOptStat(111111);
898    
899     sst.str("");
900     sst << outDirectory.Data() << filename.Data() << "TriggerScan." << saveas << "(";
901     EvCounterCanvas->Print(sst.str().c_str());
902     DeadLiveCanvas->Print(sst.str().c_str());
903     PMTCanvas->Print(sst.str().c_str());
904     TrigRate1Canvas->Print(sst.str().c_str());
905     TrigRate2Canvas->Print(sst.str().c_str());
906     S4CalCanvas->Print(sst.str().c_str());
907    
908     gStyle->SetOptStat(1101);
909    
910     PatternTrig5->Print(sst.str().c_str());
911     PatternTrig4->Print(sst.str().c_str());
912     PatternTrig3->Print(sst.str().c_str());
913     PatternTrig2->Print(sst.str().c_str());
914     PatternTrig0->Print(sst.str().c_str());
915     PatternTrig1->Print(sst.str().c_str());
916     RatePMT1->Print(sst.str().c_str());
917     RatePMT2->Print(sst.str().c_str());
918     RatePMT3->Print(sst.str().c_str());
919     RatePMT4->Print(sst.str().c_str());
920     sst.str("");
921     sst << outDirectory.Data() << filename.Data() << "TriggerScan." << saveas << ")";
922     RatePMT5->Print(sst.str().c_str());
923    
924     } else {
925    
926     gStyle->SetOptStat(111111);
927    
928     sst.str("");
929     sst << outDirectory.Data() << filename.Data() << "TriggerScan1." << saveas;
930     EvCounterCanvas->SaveAs(sst.str().c_str());
931    
932     sst.str("");
933     sst << outDirectory.Data() << filename.Data() << "TriggerScan2." << saveas;
934     DeadLiveCanvas->SaveAs(sst.str().c_str());
935    
936     sst.str("");
937     sst << outDirectory.Data() << filename.Data() << "TriggerScan3." << saveas;
938     PMTCanvas->SaveAs(sst.str().c_str());
939    
940     sst.str("");
941     sst << outDirectory.Data() << filename.Data() << "TriggerScan4." << saveas;
942     TrigRate1Canvas->SaveAs(sst.str().c_str());
943    
944     sst.str("");
945     sst << outDirectory.Data() << filename.Data() << "TriggerScan5." << saveas;
946     TrigRate2Canvas->SaveAs(sst.str().c_str());
947    
948     sst.str("");
949     sst << outDirectory.Data() << filename.Data() << "TriggerScan6." << saveas;
950     S4CalCanvas->SaveAs(sst.str().c_str());
951    
952     gStyle->SetOptStat(1101);
953    
954     sst.str("");
955     sst << outDirectory.Data() << filename.Data() << "TriggerScan7." << saveas;
956     PatternTrig5->SaveAs(sst.str().c_str());
957    
958     sst.str("");
959     sst << outDirectory.Data() << filename.Data() << "TriggerScan8." << saveas;
960     PatternTrig4->SaveAs(sst.str().c_str());
961    
962     sst.str("");
963     sst << outDirectory.Data() << filename.Data() << "TriggerScan9." << saveas;
964     PatternTrig3->SaveAs(sst.str().c_str());
965    
966     sst.str("");
967     sst << outDirectory.Data() << filename.Data() << "TriggerScan10." << saveas;
968     PatternTrig2->SaveAs(sst.str().c_str());
969    
970     sst.str("");
971     sst << outDirectory.Data() << filename.Data() << "TriggerScan11." << saveas;
972     PatternTrig0->SaveAs(sst.str().c_str());
973    
974     sst.str("");
975     sst << outDirectory.Data() << filename.Data() << "TriggerScan12." << saveas;
976     PatternTrig1->SaveAs(sst.str().c_str());
977    
978     sst.str("");
979     sst << outDirectory.Data() << filename.Data() << "TriggerScan13." << saveas;
980     RatePMT1->SaveAs(sst.str().c_str());
981    
982     sst.str("");
983     sst << outDirectory.Data() << filename.Data() << "TriggerScan14." << saveas;
984     RatePMT2->SaveAs(sst.str().c_str());
985    
986     sst.str("");
987     sst << outDirectory.Data() << filename.Data() << "TriggerScan15." << saveas;
988     RatePMT3->SaveAs(sst.str().c_str());
989    
990     sst.str("");
991     sst << outDirectory.Data() << filename.Data() << "TriggerScan16." << saveas;
992     RatePMT4->SaveAs(sst.str().c_str());
993    
994     sst.str("");
995     sst << outDirectory.Data() << filename.Data() << "TriggerScan17." << saveas;
996     RatePMT5->SaveAs(sst.str().c_str());
997    
998     }
999    
1000     }
1001    
1002    
1003     int main(int argc, char* argv[]){
1004     TString path;
1005     TString outDir ="./";
1006     TString format ="ps";
1007    
1008     if (argc < 2){
1009     printf("You have to insert at least the file to analyze \n");
1010     printf("Try '--help' for more information. \n");
1011     exit(1);
1012     }
1013    
1014     if (!strcmp(argv[1], "--help")){
1015     printf( "Usage: TriggerScan FILE [OPTION] \n");
1016     printf( "\t --help Print this help and exit \n");
1017     printf( "\t -outDir[path] Path where to put the output [default ./] \n");
1018     printf( "\t -format[ps] Format for output files [default 'ps'] \n");
1019     exit(1);
1020     }
1021    
1022    
1023     path=argv[1];
1024    
1025     for (int i = 2; i < argc; i++){
1026    
1027     if (!strcmp(argv[i], "-outDir")){
1028     if (++i >= argc){
1029     printf( "-outDir needs arguments. \n");
1030     printf( "Try '--help' for more information. \n");
1031     exit(1);
1032     }
1033     else{
1034     outDir = argv[i];
1035     continue;
1036     }
1037     }
1038    
1039    
1040    
1041     if (!strcmp(argv[i], "-format")){
1042     if (++i >= argc){
1043     printf( "-format needs arguments. \n");
1044     printf( "Try '--help' for more information. \n");
1045     exit(1);
1046     }
1047     else{
1048     format = argv[i];
1049     continue;
1050     }
1051     }
1052     }
1053    
1054     TriggerScan(argv[1], outDir, format);
1055    
1056     }

  ViewVC Help
Powered by ViewVC 1.1.23