25 |
#include <TGraph.h> |
#include <TGraph.h> |
26 |
#include <TStyle.h> |
#include <TStyle.h> |
27 |
#include <TH1.h> |
#include <TH1.h> |
28 |
|
#include <TH1F.h> |
29 |
#include <TH2S.h> |
#include <TH2S.h> |
30 |
#include <TPaveText.h> |
#include <TPaveText.h> |
31 |
#include <TCanvas.h> |
#include <TCanvas.h> |
44 |
} |
} |
45 |
|
|
46 |
void TriggerScanBasic(TString base, TString outDirectory = "", TString format = ""){ |
void TriggerScanBasic(TString base, TString outDirectory = "", TString format = ""){ |
47 |
|
|
48 |
|
Long_t lastime, firstime; |
49 |
|
double obmin=0.; |
50 |
|
double obmax=0.; |
51 |
|
stringstream oss, oss1, oss2, oss3, noentries, stringa; |
52 |
std::stringstream sst; |
std::stringstream sst; |
53 |
if (outDirectory == "") outDirectory = base.Data(); |
if (outDirectory == "") outDirectory = base.Data(); |
54 |
TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString(); |
TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString(); |
77 |
file->Close(); |
file->Close(); |
78 |
return; |
return; |
79 |
} |
} |
80 |
|
|
81 |
|
//-------------- to know the max and min OBT ----------------------------// |
82 |
|
HeadBr->GetEntry(0); |
83 |
|
ph = eh->GetPscuHeader(); |
84 |
|
firstime = ph->GetOrbitalTime(); |
85 |
|
HeadBr->GetEntry(nevents); |
86 |
|
ph = eh->GetPscuHeader(); |
87 |
|
lastime = ph->GetOrbitalTime(); |
88 |
|
int i =0; |
89 |
|
while(i < nevents){ |
90 |
|
HeadBr->GetEntry(i); |
91 |
|
ph = eh->GetPscuHeader(); |
92 |
|
if((ph->GetOrbitalTime()) <= firstime) firstime=ph->GetOrbitalTime(); |
93 |
|
if((ph->GetOrbitalTime()) >= lastime) lastime=ph->GetOrbitalTime(); |
94 |
|
i++; |
95 |
|
} |
96 |
|
|
97 |
|
//------------------------ First histogram -----------------------------------// |
98 |
|
obmin=firstime; |
99 |
|
obmax=lastime; |
100 |
|
Int_t nbin = (lastime-firstime)/60000; // on 1 ms |
101 |
|
gStyle->SetOptStat(0); |
102 |
|
TH1F *h1 = new TH1F ("histo1", "" , nbin, obmin, obmax); |
103 |
|
TH1F *h2 = new TH1F ("histo2", "" , nbin, obmin, obmax); |
104 |
|
TH1F *h5 = new TH1F ("histo5", "" , nbin, obmin, obmax); |
105 |
|
TH1F *LiveTimeMean = new TH1F("LiveTimeMean", sst.str().c_str(),nbin, obmin, obmax); |
106 |
|
TH1F *DeadTimeMean = new TH1F("DeadTimeMean", sst.str().c_str(),nbin, obmin, obmax); |
107 |
|
//============================================================== |
108 |
|
|
109 |
/* Histo DEF */ |
/* Histo DEF */ |
110 |
|
|
121 |
sst << "Calorimeter Rate Counters based on " << base.Data(); |
sst << "Calorimeter Rate Counters based on " << base.Data(); |
122 |
TH1F *S4Cal2Histo = new TH1F("S4Cal2Histo", sst.str().c_str(), 20, 0, 20); |
TH1F *S4Cal2Histo = new TH1F("S4Cal2Histo", sst.str().c_str(), 20, 0, 20); |
123 |
|
|
124 |
int i = 0; |
// int i = 0; |
125 |
|
i = 0; |
126 |
Int_t size = nevents; |
Int_t size = nevents; |
127 |
|
|
128 |
Double_t *time = new Double_t[size]; |
Double_t *time = new Double_t[size]; |
209 |
/* live time vector fill*/ |
/* live time vector fill*/ |
210 |
liveTime[i] = 0.16 * triggerEvent->dltime[0]; |
liveTime[i] = 0.16 * triggerEvent->dltime[0]; |
211 |
|
|
212 |
|
|
213 |
|
if (liveTime[i]<600) h1->Fill(ph->GetOrbitalTime(),liveTime[i]); |
214 |
|
if (liveTime[i]<600) h2->Fill(ph->GetOrbitalTime()); |
215 |
|
|
216 |
/* dead time vector fill*/ |
/* dead time vector fill*/ |
217 |
deadTime[i] = 0.01 * triggerEvent->dltime[1]; |
deadTime[i] = 0.01 * triggerEvent->dltime[1]; |
218 |
|
|
219 |
|
if (deadTime[i]<600) h5->Fill(ph->GetOrbitalTime(),deadTime[i]); |
220 |
} |
} |
221 |
|
|
222 |
gStyle->SetStatY(0.85); |
gStyle->SetStatY(0.85); |
223 |
|
|
|
|
|
224 |
/* PMT Plane Counters */ |
/* PMT Plane Counters */ |
225 |
|
|
226 |
pmt1[i] = 1.*triggerEvent->pmtpl[0]; |
pmt1[i] = 1.*triggerEvent->pmtpl[0]; |
351 |
LiveTimeGraph->GetYaxis()->CenterTitle(); |
LiveTimeGraph->GetYaxis()->CenterTitle(); |
352 |
LiveTimeGraph->Draw("AP"); |
LiveTimeGraph->Draw("AP"); |
353 |
|
|
354 |
|
/* |
355 |
|
* Average Dead and Live time graphs |
356 |
|
*/ |
357 |
|
TCanvas *MeanLiveDeadCanvas = new TCanvas("MeanLiveDeadCanvas","MeanLiveDeadCanvas", 1280, 1024); |
358 |
|
MeanLiveDeadCanvas->Divide(1,2); |
359 |
|
|
360 |
|
MeanLiveDeadCanvas->cd(1); |
361 |
|
DeadTimeMean->Divide(h5,h2); |
362 |
|
sst.str(""); |
363 |
|
sst << "Average Dead Time"; |
364 |
|
DeadTimeMean->GetXaxis()->SetTitle("OnBoardTime"); |
365 |
|
DeadTimeMean->GetXaxis()->CenterTitle(); |
366 |
|
DeadTimeMean->GetYaxis()->SetTitle("Average Dead Time (over 1min)"); |
367 |
|
DeadTimeMean->GetYaxis()->CenterTitle(); |
368 |
|
DeadTimeMean->Draw(); |
369 |
|
MeanLiveDeadCanvas->cd(2); |
370 |
|
LiveTimeMean->Divide(h1,h2); |
371 |
|
sst.str(""); |
372 |
|
sst << "Average Live Time"; |
373 |
|
LiveTimeMean->GetXaxis()->SetTitle("OnBoardTime"); |
374 |
|
LiveTimeMean->GetXaxis()->CenterTitle(); |
375 |
|
LiveTimeMean->GetYaxis()->SetTitle("Average Live Time (over 1min)"); |
376 |
|
LiveTimeMean->GetYaxis()->CenterTitle(); |
377 |
|
LiveTimeMean->Draw(); |
378 |
|
|
379 |
/* |
/* |
380 |
* PMT Plane Counters Graph |
* PMT Plane Counters Graph |
381 |
*/ |
*/ |
393 |
PMT1Graph->SetFillColor(2); |
PMT1Graph->SetFillColor(2); |
394 |
PMT1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
PMT1Graph->GetXaxis()->SetTitle("OnBoardTime"); |
395 |
PMT1Graph->GetXaxis()->CenterTitle(); |
PMT1Graph->GetXaxis()->CenterTitle(); |
396 |
PMT1Graph->GetYaxis()->SetTitle("PMT Plane Counters"); |
PMT1Graph->GetYaxis()->SetTitle("PMT Plane Counters (over 60 ms)"); |
397 |
PMT1Graph->GetYaxis()->CenterTitle(); |
PMT1Graph->GetYaxis()->CenterTitle(); |
398 |
PMT1Graph->Draw("AP"); |
PMT1Graph->Draw("AP"); |
399 |
//---------- |
//---------- |
407 |
PMT2Graph->SetFillColor(2); |
PMT2Graph->SetFillColor(2); |
408 |
PMT2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
PMT2Graph->GetXaxis()->SetTitle("OnBoardTime"); |
409 |
PMT2Graph->GetXaxis()->CenterTitle(); |
PMT2Graph->GetXaxis()->CenterTitle(); |
410 |
PMT2Graph->GetYaxis()->SetTitle("PMT Plane Counters"); |
PMT2Graph->GetYaxis()->SetTitle("PMT Plane Counters (over 60 ms)"); |
411 |
PMT2Graph->GetYaxis()->CenterTitle(); |
PMT2Graph->GetYaxis()->CenterTitle(); |
412 |
PMT2Graph->Draw("AP"); |
PMT2Graph->Draw("AP"); |
413 |
//---------- |
//---------- |
421 |
PMT3Graph->SetFillColor(2); |
PMT3Graph->SetFillColor(2); |
422 |
PMT3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
PMT3Graph->GetXaxis()->SetTitle("OnBoardTime"); |
423 |
PMT3Graph->GetXaxis()->CenterTitle(); |
PMT3Graph->GetXaxis()->CenterTitle(); |
424 |
PMT3Graph->GetYaxis()->SetTitle("PMT Plane Rate Counters"); |
PMT3Graph->GetYaxis()->SetTitle("PMT Plane Rate Counters (over 60 ms)"); |
425 |
PMT3Graph->GetYaxis()->CenterTitle(); |
PMT3Graph->GetYaxis()->CenterTitle(); |
426 |
PMT3Graph->Draw("AP"); |
PMT3Graph->Draw("AP"); |
427 |
// |
// |
1277 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic." << saveas << "("; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic." << saveas << "("; |
1278 |
EvCounterCanvas->Print(sst.str().c_str()); |
EvCounterCanvas->Print(sst.str().c_str()); |
1279 |
DeadLiveCanvas->Print(sst.str().c_str()); |
DeadLiveCanvas->Print(sst.str().c_str()); |
1280 |
|
MeanLiveDeadCanvas->Print(sst.str().c_str()); |
1281 |
PMTCanvas->Print(sst.str().c_str()); |
PMTCanvas->Print(sst.str().c_str()); |
1282 |
TrigRate1Canvas->Print(sst.str().c_str()); |
TrigRate1Canvas->Print(sst.str().c_str()); |
1283 |
TrigRate2Canvas->Print(sst.str().c_str()); |
TrigRate2Canvas->Print(sst.str().c_str()); |
1309 |
|
|
1310 |
sst.str(""); |
sst.str(""); |
1311 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic3." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic3." << saveas; |
1312 |
|
MeanLiveDeadCanvas->SaveAs(sst.str().c_str()); |
1313 |
|
sst.str(""); |
1314 |
|
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic4." << saveas; |
1315 |
PMTCanvas->SaveAs(sst.str().c_str()); |
PMTCanvas->SaveAs(sst.str().c_str()); |
1316 |
|
|
1317 |
sst.str(""); |
sst.str(""); |
1318 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic4." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic5." << saveas; |
1319 |
TrigRate1Canvas->SaveAs(sst.str().c_str()); |
TrigRate1Canvas->SaveAs(sst.str().c_str()); |
1320 |
|
|
1321 |
sst.str(""); |
sst.str(""); |
1322 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic5." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic6." << saveas; |
1323 |
TrigRate2Canvas->SaveAs(sst.str().c_str()); |
TrigRate2Canvas->SaveAs(sst.str().c_str()); |
1324 |
|
|
1325 |
sst.str(""); |
sst.str(""); |
1326 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic6." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic7." << saveas; |
1327 |
S4CalCanvas->SaveAs(sst.str().c_str()); |
S4CalCanvas->SaveAs(sst.str().c_str()); |
1328 |
|
|
1329 |
gStyle->SetOptStat("mr"); |
gStyle->SetOptStat("mr"); |
1330 |
|
|
1331 |
sst.str(""); |
sst.str(""); |
1332 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic7." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic8." << saveas; |
1333 |
RatePMT1->SaveAs(sst.str().c_str()); |
RatePMT1->SaveAs(sst.str().c_str()); |
1334 |
|
|
1335 |
sst.str(""); |
sst.str(""); |
1336 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic8." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic9." << saveas; |
1337 |
RatePMT2->SaveAs(sst.str().c_str()); |
RatePMT2->SaveAs(sst.str().c_str()); |
1338 |
|
|
1339 |
sst.str(""); |
sst.str(""); |
1340 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic9." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic10." << saveas; |
1341 |
RatePMT3->SaveAs(sst.str().c_str()); |
RatePMT3->SaveAs(sst.str().c_str()); |
1342 |
|
|
1343 |
sst.str(""); |
sst.str(""); |
1344 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic10." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic11." << saveas; |
1345 |
RatePMT4->SaveAs(sst.str().c_str()); |
RatePMT4->SaveAs(sst.str().c_str()); |
1346 |
|
|
1347 |
gStyle->SetOptStat("mr"); |
gStyle->SetOptStat("mr"); |
1348 |
|
|
1349 |
sst.str(""); |
sst.str(""); |
1350 |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic11." << saveas; |
sst << outDirectory.Data() << filename.Data() << "TriggerScanBasic12." << saveas; |
1351 |
RatePMT5->SaveAs(sst.str().c_str()); |
RatePMT5->SaveAs(sst.str().c_str()); |
1352 |
|
|
1353 |
} |
} |