2 fbellini@cern.ch - last update on 27/02/2014
3 Macro to draw the TOF QA trending plots by accessing the std tree.
4 To be mainly used with the automatic scripts to fill the QA repository.
6 aliroot -x -b -q "DrawTrendingTOFQA.C"
7 The macro produces one png file for each trending variables
8 and a .root file with the histograms
10 Int_t DrawTrendingTOFQA(TString mergedTrendFile = "trending.root", // trending tree file
11 Bool_t displayAll = kFALSE) //set to kTRUE to display trending for expert plots
14 //reads merged trending.root file and draws trending plots from tree
16 if (!mergedTrendFile) {
17 Printf("Cannot open merged trend file with TOF QA");
21 char outfilename[200]= "ProductionQA.hist.root";
23 // TString plotDir(Form("PlotsTrending"));
24 // gSystem->Exec(Form("mkdir %s",plotDir.Data()));
27 Double_t avTime=0., peakTime=0., spreadTime=0., peakTimeErr=0., spreadTimeErr=0.,negTimeRatio=0.,
28 avRawTime=0., peakRawTime=0., spreadRawTime=0., peakRawTimeErr=0., spreadRawTimeErr=0.,
29 avTot=0., peakTot=0.,spreadTot=0., peakTotErr=0.,spreadTotErr=0.,
30 orphansRatio=0., avL=0., negLratio=0.,
31 effPt1=0., effPt2=0., matchEffLinFit1Gev=0.,matchEffLinFit1GevErr=0.;
32 Double_t avDiffTime=0.,peakDiffTime=0., spreadDiffTime=0.,peakDiffTimeErr=0., spreadDiffTimeErr=0.,avT0fillRes=0.;
34 Double_t avT0A=0.,peakT0A=0., spreadT0A=0.,peakT0AErr=0., spreadT0AErr=0.;
35 Double_t avT0C=0.,peakT0C=0., spreadT0C=0.,peakT0CErr=0., spreadT0CErr=0.;
36 Double_t avT0AC=0.,peakT0AC=0., spreadT0AC=0.,peakT0ACErr=0., spreadT0ACErr=0.;
37 Double_t avT0res=0.,peakT0res=0., spreadT0res=0.,peakT0resErr=0., spreadT0resErr=0.;
39 Float_t fractionEventsWHits=0.0;
40 Double_t goodChannelRatio=0.0;
42 TFile * fin = TFile::Open(mergedTrendFile.Data());
43 TTree * ttree = (TTree*) fin->Get("trending");
45 Printf("Invalid trending tree.");
48 ttree->SetBranchAddress("run",&runNumber);
49 ttree->SetBranchAddress("avMulti",&avMulti);
50 ttree->SetBranchAddress("goodChannelsRatio",&goodChannelRatio);
51 ttree->SetBranchAddress("avTime",&avTime); //mean time
52 ttree->SetBranchAddress("peakTime",&peakTime); //main peak time after fit
53 ttree->SetBranchAddress("spreadTime",&spreadTime); //spread of main peak of time after fit
54 ttree->SetBranchAddress("peakTimeErr",&peakTimeErr); //main peak time after fit error
55 ttree->SetBranchAddress("spreadTimeErr",&spreadTimeErr); //spread of main peak of time after fit error
56 ttree->SetBranchAddress("negTimeRatio",&negTimeRatio); //negative time ratio
57 ttree->SetBranchAddress("avRawTime",&avRawTime); //mean raw time
58 ttree->SetBranchAddress("peakRawTime",&peakRawTime); //mean peak of raw time after fit
59 ttree->SetBranchAddress("spreadRawTime",&spreadRawTime); //spread of main peak of raw time after fit
60 ttree->SetBranchAddress("peakRawTimeErr",&peakRawTimeErr); //main peak raw time after fit error
61 ttree->SetBranchAddress("spreadRawTimeErr",&spreadRawTimeErr); //spread of raw main peak of time after fit error
62 ttree->SetBranchAddress("avTot",&avTot); //main peak tot
63 ttree->SetBranchAddress("peakTot",&peakTot); // main peak of tot after fit
64 ttree->SetBranchAddress("spreadTot",&spreadTot); //spread of main peak of tot after fit
65 ttree->SetBranchAddress("peakTotErr",&peakTotErr); // main peak of tot after fit
66 ttree->SetBranchAddress("spreadTotErr",&spreadTotErr); //spread of main peak of tot after fit
67 ttree->SetBranchAddress("orphansRatio",&orphansRatio); //orphans ratio
68 ttree->SetBranchAddress("avL",&avL); //mean track length
69 ttree->SetBranchAddress("negLratio",&negLratio);//ratio of tracks with track length <350 cm
70 ttree->SetBranchAddress("effPt1",&effPt1);//matching eff at 1 GeV/c
71 ttree->SetBranchAddress("effPt2",&effPt2); //matching eff at 2 GeV/c
72 ttree->SetBranchAddress("matchEffLinFit1Gev",&matchEffLinFit1Gev);//matching eff fit param
73 ttree->SetBranchAddress("matchEffLinFit1GevErr",&matchEffLinFit1GevErr);////matching eff fit param error
74 ttree->SetBranchAddress("avPiDiffTime",&avDiffTime); //mean t-texp
75 ttree->SetBranchAddress("peakPiDiffTime",&peakDiffTime); //main peak t-texp after fit
76 ttree->SetBranchAddress("spreadPiDiffTime",&spreadDiffTime); //spread of main peak t-texp after fit
77 ttree->SetBranchAddress("peakPiDiffTimeErr",&peakDiffTimeErr); //main peak t-texp after fit error
78 ttree->SetBranchAddress("spreadPiDiffTimeErr",&spreadDiffTimeErr); //spread of main peak of t-texp after fit error
79 ttree->SetBranchAddress("avT0A",&avT0A); //main peak t0A
80 ttree->SetBranchAddress("peakT0A",&peakT0A); // main peak of t0A after fit
81 ttree->SetBranchAddress("spreadT0A",&spreadT0A); //spread of main peak of t0A after fit
82 ttree->SetBranchAddress("peakT0AErr",&peakT0AErr); // main peak of t0A after fit
83 ttree->SetBranchAddress("spreadT0AErr",&spreadT0AErr); //spread of main peak of t0A after fit
84 ttree->SetBranchAddress("avT0C",&avT0C); //main peak t0C
85 ttree->SetBranchAddress("peakT0C",&peakT0C); // main peak of t0C after fit
86 ttree->SetBranchAddress("spreadT0C",&spreadT0C); //spread of main peak of t0C after fit
87 ttree->SetBranchAddress("peakT0CErr",&peakT0CErr); // main peak of t0C after fit
88 ttree->SetBranchAddress("spreadT0CErr",&spreadT0CErr); //spread of main peak of t0C after fit
89 ttree->SetBranchAddress("avT0AC",&avT0AC); //main peak t0AC
90 ttree->SetBranchAddress("peakT0AC",&peakT0AC); // main peak of t0AC after fit
91 ttree->SetBranchAddress("spreadT0AC",&spreadT0AC); //spread of main peak of t0AC after fit
92 ttree->SetBranchAddress("peakT0ACErr",&peakT0ACErr); // main peak of t0AC after fit
93 ttree->SetBranchAddress("spreadT0ACErr",&spreadT0ACErr); //spread of main peak of t0AC after fit
94 ttree->SetBranchAddress("avT0res",&avT0res); //main peak t0AC
95 ttree->SetBranchAddress("peakT0res",&peakT0res); // main peak of t0AC after fit
96 ttree->SetBranchAddress("spreadT0res",&spreadT0res); //spread of main peak of t0AC after fit
97 ttree->SetBranchAddress("peakT0resErr",&peakT0resErr); // main peak of t0AC after fit
98 ttree->SetBranchAddress("spreadT0resErr",&spreadT0resErr); //spread of main peak of t0AC after fit
99 ttree->SetBranchAddress("avT0fillRes",&avT0fillRes); //t0 fill res
101 Int_t nRuns=ttree->GetEntries();
104 TH1F * hAvMulti=new TH1F("hAvMulti","Average multiplicity of matched tracks <N_{TOF}>;; <N_{TOF}>", nRuns,0., nRuns);//, 600, 0. , 600.);
105 hAvMulti->SetDrawOption("E1");
106 hAvMulti->SetMarkerStyle(20);
107 hAvMulti->SetMarkerColor(kBlue);
109 TH1F * hAvDiffTimeVsRun=new TH1F("hAvDiffTimeVsRun","Mean t-t_{exp} (no fit);run;<t^{TOF}-t_{exp,#pi}> (ps)",nRuns,0., nRuns);//, 600, 0. , 600.);
110 hAvDiffTimeVsRun->SetDrawOption("E1");
111 hAvDiffTimeVsRun->SetMarkerStyle(20);
112 hAvDiffTimeVsRun->SetMarkerColor(kBlue);
113 // hAvTimeVsRun->GetYaxis()->SetRangeUser(0.0, 50.0);
115 TH1F * hPeakDiffTimeVsRun=new TH1F("hPeakDiffTimeVsRun","t-t_{exp} (gaussian fit) ;; <t^{TOF}-t_{exp,#pi}> (ps)",nRuns,0., nRuns);//,600, 0. , 600. );
116 hPeakDiffTimeVsRun->SetDrawOption("E1");
117 hPeakDiffTimeVsRun->SetMarkerStyle(20);
118 hPeakDiffTimeVsRun->SetMarkerColor(kBlue);
120 TH1F * hSpreadDiffTimeVsRun=new TH1F("hSpreadDiffTimeVsRun","#sigma(t-t_{exp}) (gaussian fit);; #sigma(t^{TOF}-t_{exp,#pi}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
121 hSpreadDiffTimeVsRun->SetDrawOption("E1");
122 hSpreadDiffTimeVsRun->SetMarkerStyle(20);
123 hSpreadDiffTimeVsRun->SetMarkerColor(kBlue);
125 TH1F * hAvTimeVsRun=new TH1F("hAvTimeVsRun","<t^{TOF}>;;<t^{TOF}> (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
126 hAvTimeVsRun->SetDrawOption("E1");
127 hAvTimeVsRun->SetMarkerStyle(20);
128 hAvTimeVsRun->SetMarkerColor(kBlue);
129 // hAvTimeVsRun->GetYaxis()->SetRangeUser(0.0, 50.0);
131 TH1F * hPeakTimeVsRun=new TH1F("hPeakTimeVsRun","Peak value of t^{TOF} (landau fit);;t_{peak}^{TOF} (ns)",nRuns,0., nRuns);//,600, 0. , 600. );
132 hPeakTimeVsRun->SetDrawOption("E1");
133 hPeakTimeVsRun->SetMarkerStyle(20);
134 hPeakTimeVsRun->SetMarkerColor(kBlue);
136 TH1F * hSpreadTimeVsRun=new TH1F("hSpreadTimeVsRun","Spread of t^{TOF} (landau fit);; #sigma(t^{TOF}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
137 hSpreadTimeVsRun->SetDrawOption("E1");
138 hSpreadTimeVsRun->SetMarkerStyle(20);
139 hSpreadTimeVsRun->SetMarkerColor(kBlue);
141 TH1F * hAvRawTimeVsRun=new TH1F("hAvRawTimeVsRun","Peak value of raw t^{TOF};;<t_{raw}^{TOF}> (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
142 hAvRawTimeVsRun->SetDrawOption("E1");
143 hAvRawTimeVsRun->SetMarkerStyle(21);
144 hAvRawTimeVsRun->SetMarkerColor(kGreen);
146 TH1F * hPeakRawTimeVsRun=new TH1F("hPeakRawTimeVsRun","Peak value of raw t^{TOF} (landau fit);;t_{peak,raw}^{TOF} (ns)",nRuns,0., nRuns);//, 600, 0. , 600.);
147 hPeakRawTimeVsRun->SetDrawOption("E1");
148 hPeakRawTimeVsRun->SetMarkerStyle(21);
149 hPeakRawTimeVsRun->SetMarkerColor(kGreen);
151 TH1F * hSpreadRawTimeVsRun=new TH1F("hSpreadRawTimeVsRun","Spread of raw t^{TOF} (landau fit);;#sigma(t_{raw}^{TOF}) (ns)",nRuns,0., nRuns);//, 100, 0. , 100.);
152 hSpreadRawTimeVsRun->SetDrawOption("E1");
153 hSpreadRawTimeVsRun->SetMarkerStyle(21);
154 hSpreadRawTimeVsRun->SetMarkerColor(kGreen);
156 TH1F * hAvTotVsRun=new TH1F("hAvTotVsRun","<ToT> (no fit);run;<ToT> (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
157 hAvTotVsRun->SetDrawOption("E1");
158 hAvTotVsRun->SetMarkerStyle(22);
160 TH1F * hPeakTotVsRun=new TH1F("hPeakTotVsRun","<ToT> (gaussian fit);;ToT_{peak} (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
161 hPeakTotVsRun->SetDrawOption("E1");
162 hPeakTotVsRun->SetMarkerStyle(22);
164 TH1F * hSpreadTotVsRun=new TH1F("hSpreadTotVsRun","#sigma(ToT) (gaussian fit);#sigma(ToT) (ns)",nRuns,0., nRuns);//, 50, 0. , 50.);
165 hSpreadTotVsRun->SetDrawOption("E1");
166 hSpreadTotVsRun->SetMarkerStyle(22);
168 TH1F * hNegTimeRatioVsRun=new TH1F("hNegTimeRatioVsRun","Ratio of tracks with t^{TOF}<12.5 ns; ; ratio of tracks with t^{TOF}<12.5 ns (%)",nRuns, 0., nRuns);//, 100, 0. , 100.);
169 hNegTimeRatioVsRun->SetDrawOption("E");
171 TH1F * hOrphansRatioVsRun=new TH1F("hOrphansRatioVsRun","Ratio of orphans (hits with ToT=0); ; ratio of orphans (%)",nRuns, 0., nRuns);//, 1000, 0. , 100.);
172 hOrphansRatioVsRun->SetDrawOption("E");
174 TH1F * hMeanLVsRun=new TH1F("hMeanLVsRun","Average track length;; <L> (cm)",nRuns, 0., nRuns);//, 350, 350. , 700.);
175 hMeanLVsRun->SetDrawOption("E");
176 TH1F * hNegLRatioVsRun=new TH1F("hNegLRatioVsRun","Ratio of tracks with L<350 cm;; ratio of tracks with L<350 cm (%)",nRuns, 0., nRuns);//, 1000, 0. , 100.);
177 hNegLRatioVsRun->SetDrawOption("E");
178 TH1F * hMatchEffVsRun=new TH1F("hMatchEffVsRun","Matching efficiency (linear fit for p_{T}>1.0 GeV/c);;matching efficiency (pT>1.0 GeV/c)",nRuns, 0., nRuns);//, 100, 0. , 1.);
179 hMatchEffVsRun->SetDrawOption("E");
180 TH1F * hMatchEffVsRunNormToGoodCh=new TH1F("hMatchEffVsRunNormToGoodCh","Matching efficiency normalized to percentage of TOF good channels;;matching efficiency (pT>1.0 GeV/c)",nRuns, 0., nRuns);//, 100, 0. , 1.);
181 hMatchEffVsRunNormToGoodCh->SetDrawOption("E");
183 TH1F * hMatchEffVsRun1=new TH1F("hMatchEffVsRun1","Matching efficiency (value for p_{T}=1.0 GeV/c);;matching efficiency (pT=1.0 GeV/c)",nRuns, 0., nRuns);
184 hMatchEffVsRun1->SetDrawOption("E");
185 TH1F * hPeakT0AVsRun=new TH1F("hPeakT0AVsRun","Peak value of T0A (gaussian fit);;t0A (ps)",nRuns,0., nRuns);
186 TH1F * hPeakT0CVsRun=new TH1F("hPeakT0CVsRun","Peak value of T0C (gaussian fit);;t0AC (ps)",nRuns,0., nRuns);
187 TH1F * hPeakT0ACVsRun=new TH1F("hPeakT0ACVsRun","Peak value of T0AC (gaussian fit);;t0AC (ps)",nRuns,0., nRuns);
188 TH1F * hT0fillResVsRun=new TH1F("hT0fillResVsRun","t0_fill spread;;t0_spread (ps)",nRuns,0., nRuns);
192 lista.Add(hAvDiffTimeVsRun);
193 lista.Add(hPeakDiffTimeVsRun);
194 lista.Add(hSpreadDiffTimeVsRun);
195 lista.Add(hAvTimeVsRun);
196 lista.Add(hPeakTimeVsRun);
197 lista.Add(hSpreadTimeVsRun);
198 lista.Add( hAvRawTimeVsRun);
199 lista.Add( hPeakRawTimeVsRun);
200 lista.Add( hSpreadRawTimeVsRun);
201 lista.Add( hAvTotVsRun);
202 lista.Add( hPeakTotVsRun);
203 lista.Add( hSpreadTotVsRun);
204 lista.Add( hNegTimeRatioVsRun);
205 lista.Add( hOrphansRatioVsRun);
206 lista.Add( hMeanLVsRun);
207 lista.Add( hNegLRatioVsRun);
208 lista.Add( hMatchEffVsRun);
209 lista.Add(hMatchEffVsRunNormToGoodCh);
210 lista.Add(hPeakT0AVsRun);
211 lista.Add(hPeakT0CVsRun);
212 lista.Add(hPeakT0ACVsRun);
213 lista.Add(hT0fillResVsRun);
216 for (Int_t irun=0;irun<nRuns;irun++){
217 ttree->GetEntry(irun);
219 sprintf(runlabel,"%i",runNumber);
221 hAvMulti->SetBinContent(irun+1, avMulti);
222 hAvMulti->GetXaxis()->SetBinLabel(irun+1,runlabel);
224 hAvDiffTimeVsRun->SetBinContent(irun+1, avDiffTime);
225 hAvDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
227 hPeakDiffTimeVsRun->SetBinContent(irun+1,peakDiffTime);
228 hPeakDiffTimeVsRun->SetBinError(irun+1,peakDiffTimeErr);
229 hPeakDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
231 hSpreadDiffTimeVsRun->SetBinContent(irun+1,spreadDiffTime);
232 hSpreadDiffTimeVsRun->SetBinError(irun+1,spreadDiffTimeErr);
233 hSpreadDiffTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
235 hAvTimeVsRun->SetBinContent(irun+1, avTime);
236 hAvTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
238 hPeakTimeVsRun->SetBinContent(irun+1,peakTime);
239 hPeakTimeVsRun->SetBinError(irun+1,peakTimeErr);
240 hPeakTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
242 hSpreadTimeVsRun->SetBinContent(irun+1,spreadTime);
243 hSpreadTimeVsRun->SetBinError(irun+1,spreadTimeErr);
244 hSpreadTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
246 hAvRawTimeVsRun->SetBinContent(irun+1, avRawTime);
247 hAvRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
249 hPeakRawTimeVsRun->SetBinContent(irun+1,peakRawTime);
250 hPeakRawTimeVsRun->SetBinError(irun+1,peakRawTimeErr);
251 hPeakRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
253 hSpreadRawTimeVsRun->SetBinContent(irun+1,spreadRawTime);
254 hSpreadRawTimeVsRun->SetBinError(irun+1,spreadRawTimeErr);
255 hSpreadRawTimeVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
257 hAvTotVsRun->SetBinContent(irun+1,avTot);
258 hAvTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
260 hPeakTotVsRun->SetBinContent(irun+1,peakTot);
261 hPeakTotVsRun->SetBinError(irun+1,peakTotErr);
262 hPeakTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
264 hSpreadTotVsRun->SetBinContent(irun+1,spreadTot);
265 hSpreadTotVsRun->SetBinError(irun+1,spreadTotErr);
266 hSpreadTotVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
268 hNegTimeRatioVsRun->SetBinContent(irun+1,negTimeRatio);
269 hNegTimeRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
271 hOrphansRatioVsRun->SetBinContent(irun+1,orphansRatio);
272 hOrphansRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
274 hMeanLVsRun->SetBinContent(irun+1,avL);
275 hMeanLVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
277 hNegLRatioVsRun->SetBinContent(irun+1,negLratio);
278 hNegLRatioVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
280 hMatchEffVsRun->SetBinContent(irun+1,matchEffLinFit1Gev);
281 hMatchEffVsRun->SetBinError(irun+1,matchEffLinFit1GevErr);
282 hMatchEffVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
283 hMatchEffVsRun->SetLineColor(kRed);
284 hMatchEffVsRun->SetLineWidth(2);
286 if (goodChannelRatio>0)
287 hMatchEffVsRunNormToGoodCh->SetBinContent(irun+1,matchEffLinFit1Gev/goodChannelRatio);
289 hMatchEffVsRunNormToGoodCh->SetBinContent(irun+1, 0.0);
290 hMatchEffVsRunNormToGoodCh->SetBinError(irun+1,matchEffLinFit1GevErr);
291 hMatchEffVsRunNormToGoodCh->GetXaxis()->SetBinLabel(irun+1,runlabel);
292 hMatchEffVsRunNormToGoodCh->SetLineColor(kBlue);
293 hMatchEffVsRunNormToGoodCh->SetLineWidth(2);
295 hPeakT0AVsRun->SetBinContent(irun+1,peakT0A);
296 hPeakT0AVsRun->SetBinError(irun+1,spreadT0A);
297 hPeakT0AVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
299 hPeakT0CVsRun->SetBinContent(irun+1,peakT0C);
300 hPeakT0CVsRun->SetBinError(irun+1,spreadT0C);
301 hPeakT0CVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
303 hPeakT0ACVsRun->SetBinContent(irun+1,peakT0AC);
304 hPeakT0ACVsRun->SetBinError(irun+1,spreadT0AC);
305 hPeakT0ACVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
307 hT0fillResVsRun->SetBinContent(irun+1,avT0fillRes);
308 hT0fillResVsRun->GetXaxis()->SetBinLabel(irun+1,runlabel);
311 TFile * fout=new TFile(outfilename,"recreate");
316 TCanvas* cPeakDiffTimeVsRun = new TCanvas("cPeakDiffTimeVsRun","cPeakDiffTimeVsRun", 50,50,750,550);
317 hPeakDiffTimeVsRun->GetYaxis()->SetRangeUser(-50.,50.);
318 hPeakDiffTimeVsRun->Draw();
319 cPeakDiffTimeVsRun->Print(Form("%s/cPeakDiffTimeVsRun.png",plotDir.Data()));
321 TCanvas* cSpreadDiffTimeVsRun = new TCanvas("cSpreadDiffTimeVsRun","cSpreadDiffTimeVsRun", 50,50,750,550);
322 hSpreadDiffTimeVsRun->GetYaxis()->SetRangeUser(200.,400.);
323 hSpreadDiffTimeVsRun->Draw();
324 cSpreadDiffTimeVsRun->Print(Form("%s/cSpreadDiffTimeVsRun.png",plotDir.Data()));
326 TCanvas* cMatchEffVsRun = new TCanvas("cMatchEffVsRun","cMatchEffVsRun",50, 50, 750,550);
327 hMatchEffVsRun->GetYaxis()->SetRangeUser(0.,1.);
328 hMatchEffVsRun->Draw();
329 cMatchEffVsRun->Print(Form("%s/cMatchEffVsRun.png",plotDir.Data()));
331 TCanvas* cMatchEffNormToGoodCh = new TCanvas("cMatchEffNormToGoodCh","cMatchEffNormToGoodCh",50, 50,750,550);
332 hMatchEffVsRunNormToGoodCh->GetYaxis()->SetRangeUser(0.,1.);
333 hMatchEffVsRunNormToGoodCh->Draw();
334 cMatchEffNormToGoodCh->Print(Form("%s/cMatchEffNormToGoodCh.png",plotDir.Data()));
336 TCanvas* cPeakT0AVsRun = new TCanvas("cPeakT0AVsRun","cPeakT0AVsRun", 50,50,750,550);
337 hPeakT0AVsRun->Draw();
338 cPeakT0AVsRun->Print(Form("%s/cPeakT0AVsRun.png",plotDir.Data()));
340 TCanvas* cPeakT0CVsRun = new TCanvas("cPeakT0CVsRun","cPeakT0CVsRun", 50,50,750,550);
341 hPeakT0CVsRun->Draw();
342 cPeakT0CVsRun->Print(Form("%s/cPeakT0CVsRun.png",plotDir.Data()));
344 TCanvas* cPeakT0ACVsRun = new TCanvas("cPeakT0ACVsRun","cPeakT0ACVsRun", 50,50,750,550);
345 hPeakT0ACVsRun->Draw();
346 cPeakT0ACVsRun->Print(Form("%s/cPeakT0ACVsRun.png",plotDir.Data()));
348 TCanvas* cT0fillResVsRun = new TCanvas("cT0fillResVsRun","cT0fillResVsRun", 50,50,750,550);
349 hT0fillResVsRun->Draw();
350 cT0fillResVsRun->Print(Form("%s/cT0fillResVsRun.png",plotDir.Data()));
353 TCanvas* cAvDiffTimeVsRun = new TCanvas("cAvDiffTimeVsRun","cAvDiffTimeVsRun",50,50,750,550);
356 hAvDiffTimeVsRun->Draw();
357 cAvDiffTimeVsRun->Print(Form("%s/cAvDiffTimeVsRun.png",plotDir.Data()));
359 TCanvas* cAvTimeVsRun = new TCanvas("cAvTimeVsRun","cAvTimeVsRun", 50,50,750,550);
360 hAvTimeVsRun->Draw();
361 cAvTimeVsRun->Print(Form("%s/cAvTimeVsRun.png",plotDir.Data()));
363 TCanvas* cPeakTimeVsRun = new TCanvas("cPeakTimeVsRun","cPeakTimeVsRun", 50,50,750,550);
364 hPeakTimeVsRun->Draw();
365 cPeakTimeVsRun->Print(Form("%s/cPeakTimeVsRun.png",plotDir.Data()));
367 TCanvas* cSpreadTimeVsRun = new TCanvas("cSpreadTimeVsRun","cSpreadTimeVsRun", 50,50,750,550);
368 hSpreadTimeVsRun->Draw();
369 cSpreadTimeVsRun->Print(Form("%s/cSpreadTimeVsRun.png",plotDir.Data()));
371 TCanvas* cAvRawTimeVsRun = new TCanvas("cAvRawTimeVsRun","cAvRawTimeVsRun", 50,50,750,550);
372 hAvRawTimeVsRun->Draw();
373 cAvRawTimeVsRun->Print(Form("%s/cAvRawTimeVsRun.png",plotDir.Data()));
375 TCanvas* cPeakRawTimeVsRun = new TCanvas("cPeakRawTimeVsRun","cPeakRawTimeVsRun", 50,50,750,550);
376 hPeakRawTimeVsRun->Draw();
377 cPeakRawTimeVsRun->Print(Form("%s/cPeakRawTimeVsRun.png",plotDir.Data()));
379 TCanvas* cSpreadRawTimeVsRun = new TCanvas("cSpreadRawTimeVsRun","cSpreadRawTimeVsRun", 50,50,750,550);
380 hSpreadRawTimeVsRun->Draw();
381 cSpreadRawTimeVsRun->Print(Form("%s/cSpreadRawTimeVsRun.png",plotDir.Data()));
383 TCanvas* cAvTotVsRun = new TCanvas("cAvTotVsRun","cAvTotVsRun", 50,50,750,550);
385 cAvTotVsRun->Print(Form("%s/cAvTotVsRun.png",plotDir.Data()));
387 TCanvas* cPeakTotVsRun = new TCanvas("cPeakTotVsRun","cPeakTotVsRun", 50,50,750,550);
388 hPeakTotVsRun->Draw();
389 cPeakTotVsRun->Print(Form("%s/cPeakTotVsRun.png",plotDir.Data()));
391 TCanvas* cSpreadTotVsRun = new TCanvas("cSpreadTotVsRun","cSpreadTotVsRun", 50,50,750,550);
392 hSpreadTotVsRun->Draw();
393 cSpreadTotVsRun->Print(Form("%s/cSpreadTotVsRun.png",plotDir.Data()));
395 TCanvas* cNegTimeRatioVsRun = new TCanvas("cNegTimeRatioVsRun","cNegTimeRatioVsRun", 50,50,750,550);
396 hNegTimeRatioVsRun->Draw();
397 cNegTimeRatioVsRun->Print(Form("%s/cNegTimeRatioVsRun.png",plotDir.Data()));
399 TCanvas* cOrphansRatioVsRun = new TCanvas("cOrphansRatioVsRun","cOrphansRatioVsRun", 50,50,750,550);
400 hOrphansRatioVsRun->Draw();
401 cOrphansRatioVsRun->Print(Form("%s/cOrphansRatioVsRun.png",plotDir.Data()));
403 TCanvas* cMeanLVsRun = new TCanvas("cMeanLVsRun","cMeanLVsRun", 50,50,750,550);
405 cMeanLVsRun->Print(Form("%s/cMeanLVsRun.png",plotDir.Data()));
407 TCanvas* cNegLRatioVsRun = new TCanvas("cNegLRatioVsRun","cNegLRatioVsRun", 50,50,750,550);
408 hNegLRatioVsRun->Draw();
409 cNegLRatioVsRun->Print(Form("%s/cNegLRatioVsRun.png",plotDir.Data()));