1 | Double_t ChiSquareNDof(TH1D *h1, TH1D *h2)
|
---|
2 | {
|
---|
3 | Double_t chiq = 0.;
|
---|
4 | Double_t chi;
|
---|
5 | Double_t error;
|
---|
6 | Int_t nbinsnozero = 0;
|
---|
7 |
|
---|
8 | Int_t nbins = h1->GetNbinsX();
|
---|
9 | if (nbins != h2->GetNbinsX() || nbins == 0)
|
---|
10 | return -1;
|
---|
11 |
|
---|
12 | for (UInt_t bin=1; bin<=nbins; bin++)
|
---|
13 | {
|
---|
14 | error = sqrt(h1->GetBinError(bin)*h1->GetBinError(bin) +
|
---|
15 | h2->GetBinError(bin)*h2->GetBinError(bin));
|
---|
16 | if (error != 0)
|
---|
17 | {
|
---|
18 | chi = (h1->GetBinContent(bin)-h2->GetBinContent(bin))/error;
|
---|
19 | chiq += chi*chi;
|
---|
20 | nbinsnozero++;
|
---|
21 | }
|
---|
22 | }
|
---|
23 |
|
---|
24 | return chiq/nbinsnozero;
|
---|
25 | }
|
---|
26 |
|
---|
27 | //void alpha_plot(TString f_on_name = "../HillasFiles/20040319_Mrk421_30_15.KDummy*.root",
|
---|
28 | void alpha_plot(TString f_on_name = "../HillasFiles/20040319_OffMrk421_30_15.KDummy*.root",
|
---|
29 | TString f_off_name = "../HillasFiles/20040319_OffMrk421_30_15.KDummy*.root",
|
---|
30 | TString f_src_name = "../HillasFiles/20040319_OffMrk421.fake.pos")
|
---|
31 | /*void alpha_plot(TString f_on_name = "../HillasFiles/mrk421OnMisp3015*.root",
|
---|
32 | TString f_off_name = "../HillasFiles/mrk421OffMisp3015*.root",
|
---|
33 | TString f_src_name = "../HillasFiles/20040215_Mrk421.pos")
|
---|
34 | */
|
---|
35 | {
|
---|
36 |
|
---|
37 | const UInt_t numEntries = 100000000;
|
---|
38 |
|
---|
39 | //cuts
|
---|
40 | Float_t sizemin = 500.; //[ADC]
|
---|
41 | Float_t sizemax = 10000000000.; //[ADC]
|
---|
42 | Float_t widthmin = 0.;
|
---|
43 | Float_t widthmax = 0.8;
|
---|
44 | Float_t lengthmin = 0.;
|
---|
45 | Float_t lengthmax = 0.8;
|
---|
46 | Float_t distmin = 0.;
|
---|
47 | Float_t distmax = 2.;
|
---|
48 | Float_t alphamin = 0.;
|
---|
49 | Float_t alphamax = 90.;
|
---|
50 |
|
---|
51 | //integration
|
---|
52 | Float_t sigexccmin = 0.;
|
---|
53 | Float_t sigexccmax = 30.;
|
---|
54 | Float_t bkgnormmin = 0.;
|
---|
55 | Float_t bkgnormmax = 90.;
|
---|
56 |
|
---|
57 | gStyle->SetOptStat(111111);
|
---|
58 | gStyle->SetOptFit();
|
---|
59 |
|
---|
60 | //
|
---|
61 | // Make a loop only for the ON data:
|
---|
62 | //
|
---|
63 |
|
---|
64 | MParList plist_on;
|
---|
65 | MTaskList tlist_on;
|
---|
66 | plist_on.AddToList(&tlist_on);
|
---|
67 |
|
---|
68 | // ON containers
|
---|
69 | MGeomCamMagic geomcam;
|
---|
70 | MSrcPosCam source_on;
|
---|
71 | MHillas hillas;
|
---|
72 | MHillasSrc hillasscr;
|
---|
73 |
|
---|
74 | plist_on.AddToList(&geomcam);
|
---|
75 | plist_on.AddToList(&source_on);
|
---|
76 | plist_on.AddToList(&hillas);
|
---|
77 | plist_on.AddToList(&hillasscr);
|
---|
78 |
|
---|
79 | //create some 1-dim histo to test only for the ON distribution of dist, width , length, size...
|
---|
80 | MH3 hDist_on("MHillasSrc.fDist/315.");
|
---|
81 | hDist_on.SetName("Dist_on");
|
---|
82 | plist_on.AddToList(&hDist_on);
|
---|
83 | MBinning binsDist_on("BinningDist_on");
|
---|
84 | Int_t nbins_Dist = 20;
|
---|
85 | Float_t min_Dist = 0.;
|
---|
86 | Float_t max_Dist = distmax*1.2;
|
---|
87 | binsDist_on.SetEdges(nbins_Dist, min_Dist, max_Dist);
|
---|
88 | plist_on.AddToList(&binsDist_on);
|
---|
89 |
|
---|
90 | MH3 hWidth_on("MHillas.fWidth/315.");
|
---|
91 | hWidth_on.SetName("Width_on");
|
---|
92 | plist_on.AddToList(&hWidth_on);
|
---|
93 | MBinning binsWidth_on("BinningWidth_on");
|
---|
94 | Int_t nbins_Width = 20;
|
---|
95 | Float_t min_Width = 0.;
|
---|
96 | Float_t max_Width = widthmax*1.2;
|
---|
97 | binsWidth_on.SetEdges(nbins_Width, min_Width, max_Width);
|
---|
98 | plist_on.AddToList(&binsWidth_on);
|
---|
99 |
|
---|
100 | MH3 hLength_on("MHillas.fLength/315.");
|
---|
101 | hLength_on.SetName("Length_on");
|
---|
102 | plist_on.AddToList(&hLength_on);
|
---|
103 | MBinning binsLength_on("BinningLength_on");
|
---|
104 | Int_t nbins_Length = 20;
|
---|
105 | Float_t min_Length = 0.;
|
---|
106 | Float_t max_Length = lengthmax*1.2;
|
---|
107 | binsLength_on.SetEdges(nbins_Length, min_Length, max_Length);
|
---|
108 | plist_on.AddToList(&binsLength_on);
|
---|
109 |
|
---|
110 | MH3 hSize_on("log10(MHillas.fSize)");
|
---|
111 | hSize_on.SetName("Size_on");
|
---|
112 | plist_on.AddToList(&hSize_on);
|
---|
113 | MBinning binsSize_on("BinningSize_on");
|
---|
114 | Int_t nbins_Size = 60;
|
---|
115 | Float_t min_Size = log10(sizemin)*0.8;
|
---|
116 | Float_t max_Size = log10(1000000)*1.2;
|
---|
117 | binsSize_on.SetEdges(nbins_Size, min_Size, max_Size);
|
---|
118 | plist_on.AddToList(&binsSize_on);
|
---|
119 |
|
---|
120 | //create a histo to fill the alpha values: one alpha plot form 0 to +90 deg in abs value
|
---|
121 | MH3 hAlpha_on_abs("abs(MHillasSrc.fAlpha)");
|
---|
122 | hAlpha_on_abs.SetName("Alpha_on_abs");
|
---|
123 | plist_on.AddToList(&hAlpha_on_abs);
|
---|
124 | MBinning binsAlpha_on_abs("BinningAlpha_on_abs");
|
---|
125 | Int_t nbins_abs = 9;
|
---|
126 | Float_t minalpha_abs = 0.;
|
---|
127 | Float_t maxalpha_abs =90.;
|
---|
128 | binsAlpha_on_abs.SetEdges(nbins_abs, minalpha_abs, maxalpha_abs);
|
---|
129 | plist_on.AddToList(&binsAlpha_on_abs);
|
---|
130 |
|
---|
131 | //create a histo to fill the alpha values: one alpha plot form -90 to +90 deg.
|
---|
132 | MH3 hAlpha_on("MHillasSrc.fAlpha");
|
---|
133 | hAlpha_on.SetName("Alpha_on");
|
---|
134 | plist_on.AddToList(&hAlpha_on);
|
---|
135 | MBinning binsAlpha_on("BinningAlpha_on");
|
---|
136 | Int_t nbins = nbins_abs*2;
|
---|
137 | Float_t minalpha = -90.;
|
---|
138 | Float_t maxalpha = 90.;
|
---|
139 | binsAlpha_on.SetEdges(nbins, minalpha, maxalpha);
|
---|
140 | plist_on.AddToList(&binsAlpha_on);
|
---|
141 |
|
---|
142 |
|
---|
143 | MH3 hSrcPos_on("MSrcPosCam.fX","MSrcPosCam.fY");
|
---|
144 | hSrcPos_on.SetName("SrcPos_on");
|
---|
145 | plist_on.AddToList(&hSrcPos_on);
|
---|
146 | MBinning binsSrcPos_onX("BinningSrcPos_onX");
|
---|
147 | MBinning binsSrcPos_onY("BinningSrcPos_onY");
|
---|
148 | Int_t nbins_srcpos = 400;
|
---|
149 | Float_t minsrcpos = -600.;
|
---|
150 | Float_t maxsrcpos = 600.;
|
---|
151 | binsSrcPos_onX.SetEdges(nbins_srcpos, minsrcpos, maxsrcpos);
|
---|
152 | binsSrcPos_onY.SetEdges(nbins_srcpos, minsrcpos, maxsrcpos);
|
---|
153 | plist_on.AddToList(&binsSrcPos_onX);
|
---|
154 | plist_on.AddToList(&binsSrcPos_onY);
|
---|
155 |
|
---|
156 | MH3 hDAQEvtNumber_on("MRawEvtHeader.fDAQEvtNumber");
|
---|
157 | hDAQEvtNumber_on.SetName("DAQEvtNumber_on");
|
---|
158 | plist_on.AddToList(&hDAQEvtNumber_on);
|
---|
159 | MBinning binsDAQEvtNumber_onX("BinningDAQEvtNumber_onX");
|
---|
160 | Int_t nbins_evtnum = 1000;
|
---|
161 | Float_t minevtnum = 0.;
|
---|
162 | Float_t maxevtnum = 1000.;
|
---|
163 | binsDAQEvtNumber_onX.SetEdges(nbins_evtnum,minevtnum,maxevtnum);
|
---|
164 | plist_on.AddToList(&binsDAQEvtNumber_onX);
|
---|
165 |
|
---|
166 | //
|
---|
167 | //tasks
|
---|
168 | //
|
---|
169 |
|
---|
170 | MReadTree read_on("Parameters", f_on_name);
|
---|
171 | read_on.DisableAutoScheme();
|
---|
172 |
|
---|
173 |
|
---|
174 | //cuts
|
---|
175 | TString sizestr = "MHillas.fSize < ";
|
---|
176 | sizestr += sizemin;
|
---|
177 | sizestr += " || ";
|
---|
178 | sizestr += "MHillas.fSize > ";
|
---|
179 | sizestr += sizemax;
|
---|
180 | MF sizefilter(sizestr);
|
---|
181 |
|
---|
182 | TString widthstr = "{MHillas.fWidth/315.} < ";
|
---|
183 | widthstr += widthmin;
|
---|
184 | widthstr += " || ";
|
---|
185 | widthstr += "{MHillas.fWidth/315.} > ";
|
---|
186 | widthstr += widthmax;
|
---|
187 | MF widthfilter(widthstr);
|
---|
188 |
|
---|
189 | TString lengthstr = "{MHillas.fLength/315.} < ";
|
---|
190 | lengthstr += lengthmin;
|
---|
191 | lengthstr += " || ";
|
---|
192 | lengthstr += "{MHillas.fLength/315.} > ";
|
---|
193 | lengthstr += lengthmax;
|
---|
194 | MF lengthfilter(lengthstr);
|
---|
195 |
|
---|
196 | TString diststr = "{MHillasSrc.fDist/315.} < ";
|
---|
197 | diststr += distmin;
|
---|
198 | diststr += " || ";
|
---|
199 | diststr += "{MHillasSrc.fDist/315.} > ";
|
---|
200 | diststr += distmax;
|
---|
201 | MF distfilter(diststr);
|
---|
202 |
|
---|
203 | TString alphastr = "{abs(MHillasSrc.fAlpha)} < ";
|
---|
204 | alphastr += alphamin;
|
---|
205 | alphastr += " || ";
|
---|
206 | alphastr += "{abs(MHillasSrc.fAlpha)} > ";
|
---|
207 | alphastr += alphamax;
|
---|
208 | MF alphafilter(alphastr);
|
---|
209 |
|
---|
210 | MF evenfilter("{MRawEvtHeader.fDAQEvtNumber%3}<0.5");
|
---|
211 | MF oddfilter("{MRawEvtHeader.fDAQEvtNumber%3}>0.5");
|
---|
212 |
|
---|
213 | MContinue cont_size(&sizefilter);
|
---|
214 | MContinue cont_width(&widthfilter);
|
---|
215 | MContinue cont_length(&lengthfilter);
|
---|
216 | MContinue cont_dist(&distfilter);
|
---|
217 | MContinue cont_alpha(&alphafilter);
|
---|
218 | MContinue cont_even(&evenfilter);
|
---|
219 | MContinue cont_odd(&oddfilter);
|
---|
220 |
|
---|
221 | MSrcPosFromFile srccalc(f_src_name);
|
---|
222 |
|
---|
223 | MHillasSrcCalc csrc_on;
|
---|
224 |
|
---|
225 | // fill all histograms
|
---|
226 | MFillH falpha_on_abs(&hAlpha_on_abs);
|
---|
227 | MFillH falpha_on(&hAlpha_on);
|
---|
228 | MFillH fdist_on(&hDist_on);
|
---|
229 | MFillH fwidth_on(&hWidth_on);
|
---|
230 | MFillH flength_on(&hLength_on);
|
---|
231 | MFillH fsize_on(&hSize_on);
|
---|
232 | MFillH fsrcpos_on(&hSrcPos_on);
|
---|
233 | MFillH fevtnum_on(&hDAQEvtNumber_on);
|
---|
234 |
|
---|
235 |
|
---|
236 | // prints
|
---|
237 | MPrint pevent("MRawEvtHeader");
|
---|
238 | MPrint phillas("MHillas");
|
---|
239 | MPrint phillassrc("MHillasSrc");
|
---|
240 | MPrint psrcpos("MSrcPosCam");
|
---|
241 |
|
---|
242 | //tasklist
|
---|
243 | tlist_on.AddToList(&read_on);
|
---|
244 | tlist_on.AddToList(&srccalc);
|
---|
245 | tlist_on.AddToList(&csrc_on);
|
---|
246 | tlist_on.AddToList(&fsrcpos_on);
|
---|
247 | tlist_on.AddToList(&cont_odd);
|
---|
248 | tlist_on.AddToList(&cont_size);
|
---|
249 | tlist_on.AddToList(&cont_width);
|
---|
250 | tlist_on.AddToList(&cont_length);
|
---|
251 | tlist_on.AddToList(&cont_dist);
|
---|
252 | tlist_on.AddToList(&cont_alpha);
|
---|
253 | tlist_on.AddToList(&falpha_on_abs);
|
---|
254 | tlist_on.AddToList(&falpha_on);
|
---|
255 | tlist_on.AddToList(&fdist_on);
|
---|
256 | tlist_on.AddToList(&fwidth_on);
|
---|
257 | tlist_on.AddToList(&flength_on);
|
---|
258 | tlist_on.AddToList(&fsize_on);
|
---|
259 | tlist_on.AddToList(&fevtnum_on);
|
---|
260 |
|
---|
261 | // Create and setup the eventloop
|
---|
262 | MEvtLoop loop_on;
|
---|
263 | loop_on.SetParList(&plist_on);
|
---|
264 | //loop_on.SetDisplay(display);
|
---|
265 |
|
---|
266 | MProgressBar bar;
|
---|
267 | loop_on.SetProgressBar(&bar);
|
---|
268 |
|
---|
269 | if (!loop_on.Eventloop(numEntries))
|
---|
270 | return;
|
---|
271 |
|
---|
272 | tlist_on.PrintStatistics();
|
---|
273 |
|
---|
274 | //
|
---|
275 | // Make a loop only for the OFF data:
|
---|
276 | //
|
---|
277 |
|
---|
278 | MParList plist_off;
|
---|
279 | MTaskList tlist_off;
|
---|
280 | plist_off.AddToList(&tlist_off);
|
---|
281 |
|
---|
282 | MSrcPosCam source_off;
|
---|
283 |
|
---|
284 | plist_off.AddToList(&geomcam);
|
---|
285 | plist_off.AddToList(&source_off);
|
---|
286 | plist_off.AddToList(&hillas);
|
---|
287 | plist_off.AddToList(&hillasscr);
|
---|
288 |
|
---|
289 | //create some 1-dim histo to test only for the OFF distribution of dist, width , length, size...
|
---|
290 | MH3 hDist_off("MHillasSrc.fDist/315.");
|
---|
291 | hDist_off.SetName("Dist_off");
|
---|
292 | plist_off.AddToList(&hDist_off);
|
---|
293 | MBinning binsDist_off("BinningDist_off");
|
---|
294 | binsDist_off.SetEdges(nbins_Dist, min_Dist, max_Dist);
|
---|
295 | plist_off.AddToList(&binsDist_off);
|
---|
296 |
|
---|
297 | MH3 hWidth_off("MHillas.fWidth/315.");
|
---|
298 | hWidth_off.SetName("Width_off");
|
---|
299 | plist_off.AddToList(&hWidth_off);
|
---|
300 | MBinning binsWidth_off("BinningWidth_off");
|
---|
301 | binsWidth_off.SetEdges(nbins_Width, min_Width, max_Width);
|
---|
302 | plist_off.AddToList(&binsWidth_off);
|
---|
303 |
|
---|
304 | MH3 hLength_off("MHillas.fLength/315.");
|
---|
305 | hLength_off.SetName("Length_off");
|
---|
306 | plist_off.AddToList(&hLength_off);
|
---|
307 | MBinning binsLength_off("BinningLength_off");
|
---|
308 | binsLength_off.SetEdges(nbins_Length, min_Length, max_Length);
|
---|
309 | plist_off.AddToList(&binsLength_off);
|
---|
310 |
|
---|
311 | MH3 hSize_off("log10(MHillas.fSize)");
|
---|
312 | hSize_off.SetName("Size_off");
|
---|
313 | plist_off.AddToList(&hSize_off);
|
---|
314 | MBinning binsSize_off("BinningSize_off");
|
---|
315 | binsSize_off.SetEdges(nbins_Size, min_Size, max_Size);
|
---|
316 | plist_off.AddToList(&binsSize_off);
|
---|
317 |
|
---|
318 | //create a histo to fill the alpha values: from 0 to 90 deg -> abs value
|
---|
319 | MH3 hAlpha_off_abs("abs(MHillasSrc.fAlpha)");
|
---|
320 | hAlpha_off_abs.SetName("Alpha_off_abs");
|
---|
321 | plist_off.AddToList(&hAlpha_off_abs);
|
---|
322 | MBinning binsAlpha_off_abs("BinningAlpha_off_abs");
|
---|
323 | binsAlpha_off_abs.SetEdges(nbins_abs, minalpha_abs, maxalpha_abs);
|
---|
324 | plist_off.AddToList(&binsAlpha_off_abs);
|
---|
325 |
|
---|
326 | //create a histo to fill the alpha values: from -90 to 90 deg
|
---|
327 | MH3 hAlpha_off("MHillasSrc.fAlpha");
|
---|
328 | hAlpha_off.SetName("Alpha_off");
|
---|
329 | plist_off.AddToList(&hAlpha_off);
|
---|
330 | MBinning binsAlpha_off("BinningAlpha_off");
|
---|
331 | binsAlpha_off.SetEdges(nbins, minalpha, maxalpha);
|
---|
332 | plist_off.AddToList(&binsAlpha_off);
|
---|
333 |
|
---|
334 |
|
---|
335 | MH3 hSrcPos_off("MSrcPosCam.fX","MSrcPosCam.fY");
|
---|
336 | hSrcPos_off.SetName("SrcPos_off");
|
---|
337 | plist_off.AddToList(&hSrcPos_off);
|
---|
338 | MBinning binsSrcPos_offX("BinningSrcPos_offX");
|
---|
339 | MBinning binsSrcPos_offY("BinningSrcPos_offY");
|
---|
340 | binsSrcPos_offX.SetEdges(nbins_srcpos, minsrcpos, maxsrcpos);
|
---|
341 | binsSrcPos_offY.SetEdges(nbins_srcpos, minsrcpos, maxsrcpos);
|
---|
342 | plist_off.AddToList(&binsSrcPos_offX);
|
---|
343 | plist_off.AddToList(&binsSrcPos_offY);
|
---|
344 |
|
---|
345 | MH3 hDAQEvtNumber_off("MRawEvtHeader.fDAQEvtNumber");
|
---|
346 | hDAQEvtNumber_off.SetName("DAQEvtNumber_off");
|
---|
347 | plist_off.AddToList(&hDAQEvtNumber_off);
|
---|
348 | MBinning binsDAQEvtNumber_offX("BinningDAQEvtNumber_offX");
|
---|
349 | Int_t nbins_evtnum = 100;
|
---|
350 | Float_t minevtnum = 0.;
|
---|
351 | Float_t maxevtnum = 100.;
|
---|
352 | binsDAQEvtNumber_offX.SetEdges(nbins_evtnum,minevtnum,maxevtnum);
|
---|
353 | plist_off.AddToList(&binsDAQEvtNumber_offX);
|
---|
354 |
|
---|
355 | //tasks
|
---|
356 | MReadTree read_off("Parameters", f_off_name);
|
---|
357 | read_off.DisableAutoScheme();
|
---|
358 |
|
---|
359 | srccalc.SetMode(MSrcPosFromFile::kOff);
|
---|
360 |
|
---|
361 | MHillasSrcCalc csrc_off;
|
---|
362 |
|
---|
363 | // fill all histograms
|
---|
364 | MFillH falpha_off_abs(&hAlpha_off_abs);
|
---|
365 | MFillH falpha_off(&hAlpha_off);
|
---|
366 | MFillH fdist_off(&hDist_off);
|
---|
367 | MFillH fwidth_off(&hWidth_off);
|
---|
368 | MFillH flength_off(&hLength_off);
|
---|
369 | MFillH fsize_off(&hSize_off);
|
---|
370 | MFillH fsrcpos_off(&hSrcPos_off);
|
---|
371 | MFillH fevtnum_off(&hDAQEvtNumber_off);
|
---|
372 |
|
---|
373 | //tasklist
|
---|
374 | tlist_off.AddToList(&read_off);
|
---|
375 | tlist_off.AddToList(&srccalc);
|
---|
376 | tlist_off.AddToList(&csrc_off);
|
---|
377 | tlist_off.AddToList(&fsrcpos_off);
|
---|
378 | tlist_off.AddToList(&cont_even);
|
---|
379 | tlist_off.AddToList(&cont_size);
|
---|
380 | tlist_off.AddToList(&cont_width);
|
---|
381 | tlist_off.AddToList(&cont_length);
|
---|
382 | tlist_off.AddToList(&cont_dist);
|
---|
383 | tlist_off.AddToList(&cont_alpha);
|
---|
384 | tlist_off.AddToList(&falpha_off_abs);
|
---|
385 | tlist_off.AddToList(&falpha_off);
|
---|
386 | tlist_off.AddToList(&fdist_off);
|
---|
387 | tlist_off.AddToList(&fwidth_off);
|
---|
388 | tlist_off.AddToList(&flength_off);
|
---|
389 | tlist_off.AddToList(&fsize_off);
|
---|
390 | tlist_off.AddToList(&fevtnum_off);
|
---|
391 |
|
---|
392 | // Create and setup the eventloop
|
---|
393 | MEvtLoop loop_off;
|
---|
394 | loop_off.SetParList(&plist_off);
|
---|
395 | //loop_off.SetDisplay(display);
|
---|
396 |
|
---|
397 | MProgressBar bar_off;
|
---|
398 | loop_off.SetProgressBar(&bar_off);
|
---|
399 |
|
---|
400 | if (!loop_off.Eventloop(numEntries))
|
---|
401 | return;
|
---|
402 |
|
---|
403 | tlist_off.PrintStatistics();
|
---|
404 |
|
---|
405 | // ############################################################################
|
---|
406 | // look for the histograms
|
---|
407 | // ############################################################################
|
---|
408 |
|
---|
409 | TH1F *hist_size_on = (TH1F*)hSize_on.GetHist();
|
---|
410 | TH1F *hist_size_off = (TH1F*)hSize_off.GetHist();
|
---|
411 |
|
---|
412 | TH1F *hist_dist_on = (TH1F*)hDist_on.GetHist();
|
---|
413 | TH1F *hist_dist_off = (TH1F*)hDist_off.GetHist();
|
---|
414 |
|
---|
415 | TH1F *hist_width_on = (TH1F*)hWidth_on.GetHist();
|
---|
416 | TH1F *hist_width_off = (TH1F*)hWidth_off.GetHist();
|
---|
417 |
|
---|
418 | TH1F *hist_length_on = (TH1F*)hLength_on.GetHist();
|
---|
419 | TH1F *hist_length_off = (TH1F*)hLength_off.GetHist();
|
---|
420 |
|
---|
421 | TH1F *hist_on_abs = (TH1F*)hAlpha_on_abs.GetHist();
|
---|
422 | TH1F *hist_off_abs = (TH1F*)hAlpha_off_abs.GetHist();
|
---|
423 |
|
---|
424 | TH1F *hist_on = (TH1F*)hAlpha_on.GetHist();
|
---|
425 | TH1F *hist_off = (TH1F*)hAlpha_off.GetHist();
|
---|
426 |
|
---|
427 |
|
---|
428 | // ############################################################################
|
---|
429 | // Calculate significance and excess:
|
---|
430 | // ############################################################################
|
---|
431 |
|
---|
432 | Double_t norm_on_abs = (Double_t) hist_on_abs->Integral((Int_t)bkgnormmin*nbins_abs/90+1,(Int_t)bkgnormmax*nbins_abs/90+1);
|
---|
433 | Double_t exces_on_abs = (Double_t) hist_on_abs->Integral((Int_t)sigexccmin*nbins_abs/90+1,(Int_t)sigexccmax*nbins_abs/90+1);
|
---|
434 | Double_t norm_off_abs = (Double_t) hist_off_abs->Integral((Int_t)bkgnormmin*nbins_abs/90+1,(Int_t)bkgnormmax*nbins_abs/90+1);
|
---|
435 | Double_t exces_off_abs = (Double_t) hist_off_abs->Integral((Int_t)sigexccmin*nbins_abs/90+1,(Int_t)sigexccmax*nbins_abs/90+1);
|
---|
436 | Double_t norm = norm_on_abs/norm_off_abs;
|
---|
437 |
|
---|
438 | char text_tit_alpha[256];
|
---|
439 | sprintf(text_tit_alpha, " Alpha Plot On and Off ");
|
---|
440 | hist_off_abs->SetTitle(text_tit_alpha);
|
---|
441 | hist_on_abs->SetTitle(text_tit_alpha);
|
---|
442 |
|
---|
443 | Double_t excess = exces_on_abs - exces_off_abs*norm;
|
---|
444 | Double_t sign = excess / sqrt( exces_on_abs + norm*norm*exces_off_abs );
|
---|
445 | Double_t int_off = (Double_t) hist_off_abs->Integral(1, 18);
|
---|
446 | int hist_on_entries = (int) hist_on_abs->GetEntries();
|
---|
447 | int hist_off_entries = (int) hist_off_abs->GetEntries();
|
---|
448 |
|
---|
449 | cout << "---> Normalization F factor =\t" << norm <<endl;
|
---|
450 | cout << "---> Excess =\t\t\t" << excess <<endl;
|
---|
451 | cout << "---> Significancia =\t\t" << sign <<endl;
|
---|
452 | cout << "---> entries on =\t\t" << hist_on_entries <<endl;
|
---|
453 | cout << "---> entries off =\t\t" << hist_off_entries <<endl;
|
---|
454 | cout << "---> integral off =\t\t" << int_off <<endl;
|
---|
455 |
|
---|
456 | Float_t shiftx;
|
---|
457 |
|
---|
458 | //
|
---|
459 | //Create the display -> from now on, all histos are plotted
|
---|
460 | MStatusDisplay *display = new MStatusDisplay;
|
---|
461 | display->SetUpdateTime(3000);
|
---|
462 | display->Resize(850,700);
|
---|
463 |
|
---|
464 | // ############################################################################
|
---|
465 | // Draw SIZE
|
---|
466 | // ############################################################################
|
---|
467 | display->AddTab("SIZE");
|
---|
468 |
|
---|
469 | gPad->cd();
|
---|
470 |
|
---|
471 | gPad->SetLogy();
|
---|
472 | hist_size_on->Sumw2();
|
---|
473 | hist_size_off->Sumw2();
|
---|
474 | hist_size_off->Scale(norm);
|
---|
475 | hist_size_on->SetLineColor(kBlack);
|
---|
476 | hist_size_on->SetMarkerStyle(21);
|
---|
477 | hist_size_on->SetMarkerSize(0.7);
|
---|
478 | hist_size_on->SetMarkerColor(kBlack);
|
---|
479 | hist_size_off->SetFillColor(46);
|
---|
480 | hist_size_off->SetLineColor(46);
|
---|
481 | hist_size_off->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
482 | hist_size_off->SetMinimum(0.1);
|
---|
483 | hist_size_on->SetMinimum(0.1);
|
---|
484 | hist_size_on->SetTitle("SIZE distribution");
|
---|
485 | hist_size_off->SetTitle("SIZE distribution");
|
---|
486 |
|
---|
487 | hist_size_on->DrawCopy("E1P");
|
---|
488 |
|
---|
489 | // move stat box to make them all visible
|
---|
490 | gPad->Update();
|
---|
491 | TPaveStats* pavs_on_size = (TPaveStats*) hist_size_on->GetListOfFunctions()->FindObject("stats");
|
---|
492 | if(pavs_on_size){
|
---|
493 | shiftx = pavs_on_size->GetX2NDC() - pavs_on_size->GetX1NDC();
|
---|
494 | pavs_on_size->SetX1NDC(pavs_on_size->GetX1NDC() - shiftx);
|
---|
495 | pavs_on_size->SetX2NDC(pavs_on_size->GetX2NDC() - shiftx);
|
---|
496 | }
|
---|
497 | gPad->Modified();
|
---|
498 | gPad->Update();
|
---|
499 |
|
---|
500 | hist_size_off->DrawCopy("HISTSAME");
|
---|
501 | hist_size_off->DrawCopy("ESAME");
|
---|
502 |
|
---|
503 | gPad->Modified();
|
---|
504 | gPad->Update();
|
---|
505 |
|
---|
506 | Double_t chisize = ChiSquareNDof((TH1D*)hist_size_on,(TH1D*)hist_size_off);
|
---|
507 |
|
---|
508 | Double_t x_label_pos = log10(1000000)*0.7;
|
---|
509 | Double_t y_label_pos = log10((hist_size_on->GetBinContent(hist_size_on->GetMaximumBin()))/2.);
|
---|
510 | Double_t textsize = 0.03;
|
---|
511 |
|
---|
512 | char text_size[256];
|
---|
513 | sprintf(text_size,"ChiSquare/NDof = %4.2f",chisize);
|
---|
514 |
|
---|
515 | TLatex *tsize = new TLatex(x_label_pos, y_label_pos, text_size);
|
---|
516 | tsize->SetTextSize(textsize);
|
---|
517 | // tsize->Draw();
|
---|
518 |
|
---|
519 | gPad->Modified();
|
---|
520 | gPad->Update();
|
---|
521 |
|
---|
522 | // ############################################################################
|
---|
523 | // DrawCopy DIST
|
---|
524 | // ############################################################################
|
---|
525 | display->AddTab("DIST");
|
---|
526 |
|
---|
527 | gPad->cd();
|
---|
528 |
|
---|
529 | hist_dist_on->Sumw2();
|
---|
530 | hist_dist_off->Sumw2();
|
---|
531 | hist_dist_off->Scale(norm);
|
---|
532 | hist_dist_on->SetLineColor(kBlack);
|
---|
533 | hist_dist_on->SetMarkerStyle(21);
|
---|
534 | hist_dist_on->SetMarkerSize(0.7);
|
---|
535 | hist_dist_on->SetMarkerColor(kBlack);
|
---|
536 | hist_dist_off->SetFillColor(46);
|
---|
537 | hist_dist_off->SetLineColor(46);
|
---|
538 | hist_dist_off->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
539 | hist_dist_off->SetMinimum(0.);
|
---|
540 | hist_dist_on->SetTitle("DIST distribution");
|
---|
541 | hist_dist_off->SetTitle("DIST distribution");
|
---|
542 |
|
---|
543 | hist_dist_on->DrawCopy("E1P");
|
---|
544 |
|
---|
545 | // move stat box to make them all visible
|
---|
546 | gPad->Update();
|
---|
547 | TPaveStats* pavs_on_dist = (TPaveStats*) hist_dist_on->GetListOfFunctions()->FindObject("stats");
|
---|
548 | if(pavs_on_dist){
|
---|
549 | shiftx = pavs_on_dist->GetX2NDC() - pavs_on_dist->GetX1NDC();
|
---|
550 | pavs_on_dist->SetX1NDC(pavs_on_dist->GetX1NDC() - shiftx);
|
---|
551 | pavs_on_dist->SetX2NDC(pavs_on_dist->GetX2NDC() - shiftx);
|
---|
552 | }
|
---|
553 | gPad->Modified();
|
---|
554 | gPad->Update();
|
---|
555 |
|
---|
556 | hist_dist_off->DrawCopy("HISTSAME");
|
---|
557 | hist_dist_off->DrawCopy("ESAME");
|
---|
558 | hist_dist_on->DrawCopy("E1PSAME");
|
---|
559 |
|
---|
560 | Double_t chidist = ChiSquareNDof((TH1D*)hist_dist_on,(TH1D*)hist_dist_off);
|
---|
561 |
|
---|
562 | x_label_pos = distmax*0.7;
|
---|
563 | y_label_pos = hist_dist_on->GetBinContent(hist_dist_on->GetMaximumBin())/2.;
|
---|
564 |
|
---|
565 | char text_dist[256];
|
---|
566 | sprintf(text_size,"ChiSquare/NDof = %4.2f",chidist);
|
---|
567 |
|
---|
568 | TLatex *tdist = new TLatex(x_label_pos, y_label_pos, text_dist);
|
---|
569 | tdist->SetTextSize(textsize);
|
---|
570 | // tdist->Draw();
|
---|
571 |
|
---|
572 | gPad->Modified();
|
---|
573 | gPad->Update();
|
---|
574 |
|
---|
575 | // ############################################################################
|
---|
576 | // DrawCopy WIDTH
|
---|
577 | // ############################################################################
|
---|
578 | display->AddTab("WIDTH");
|
---|
579 |
|
---|
580 | gPad->cd();
|
---|
581 |
|
---|
582 | hist_width_off->Sumw2();
|
---|
583 | hist_width_off->Scale(norm);
|
---|
584 | hist_width_on->SetLineColor(kBlack);
|
---|
585 | hist_width_on->SetMarkerStyle(21);
|
---|
586 | hist_width_on->SetMarkerSize(0.7);
|
---|
587 | hist_width_on->SetMarkerColor(kBlack);
|
---|
588 | hist_width_off->SetFillColor(46);
|
---|
589 | hist_width_off->SetLineColor(46);
|
---|
590 | hist_width_off->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
591 | hist_width_off->SetMinimum(0.);
|
---|
592 | hist_width_on->SetTitle("WIDTH distribution");
|
---|
593 | hist_width_off->SetTitle("WIDTH distribution");
|
---|
594 |
|
---|
595 | hist_width_on->DrawCopy("E1P");
|
---|
596 |
|
---|
597 | // move stat box to make them all visible
|
---|
598 | gPad->Update();
|
---|
599 | TPaveStats* pavs_on_width = (TPaveStats*) hist_width_on->GetListOfFunctions()->FindObject("stats");
|
---|
600 | if(pavs_on_width){
|
---|
601 | shiftx = pavs_on_width->GetX2NDC() - pavs_on_width->GetX1NDC();
|
---|
602 | pavs_on_width->SetX1NDC(pavs_on_width->GetX1NDC() - shiftx);
|
---|
603 | pavs_on_width->SetX2NDC(pavs_on_width->GetX2NDC() - shiftx);
|
---|
604 | }
|
---|
605 | gPad->Modified();
|
---|
606 | gPad->Update();
|
---|
607 |
|
---|
608 | hist_width_off->DrawCopy("HISTSAME");
|
---|
609 | hist_width_off->DrawCopy("ESAME");
|
---|
610 | hist_width_on->DrawCopy("E1PSAME");
|
---|
611 |
|
---|
612 | Double_t chiwidth = ChiSquareNDof((TH1D*)hist_width_on,(TH1D*)hist_width_off);
|
---|
613 |
|
---|
614 | x_label_pos = widthmax*0.7;
|
---|
615 | y_label_pos = hist_width_on->GetBinContent(hist_width_on->GetMaximumBin())/2.;
|
---|
616 |
|
---|
617 | char text_width[256];
|
---|
618 | sprintf(text_size,"ChiSquare/NDof = %4.2f",chiwidth);
|
---|
619 |
|
---|
620 | TLatex *twidth = new TLatex(x_label_pos, y_label_pos, text_width);
|
---|
621 | twidth->SetTextSize(textsize);
|
---|
622 | // twidth->Draw();
|
---|
623 |
|
---|
624 | gPad->Modified();
|
---|
625 | gPad->Update();
|
---|
626 |
|
---|
627 | // ############################################################################
|
---|
628 | // DrawCopy LENGTH
|
---|
629 | // ############################################################################
|
---|
630 | display->AddTab("LENGTH");
|
---|
631 |
|
---|
632 | gPad->cd();
|
---|
633 |
|
---|
634 | hist_length_on->Sumw2();
|
---|
635 | hist_length_off->Sumw2();
|
---|
636 | hist_length_off->Scale(norm);
|
---|
637 | hist_length_on->SetLineColor(kBlack);
|
---|
638 | hist_length_on->SetMarkerStyle(21);
|
---|
639 | hist_length_on->SetMarkerSize(0.7);
|
---|
640 | hist_length_on->SetMarkerColor(kBlack);
|
---|
641 | hist_length_off->SetFillColor(46);
|
---|
642 | hist_length_off->SetLineColor(46);
|
---|
643 | hist_length_off->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
644 | hist_length_off->SetMinimum(0.);
|
---|
645 | hist_length_on->SetTitle("LENGTH distribution");
|
---|
646 | hist_length_off->SetTitle("LENGTH distribution");
|
---|
647 |
|
---|
648 | hist_length_on->DrawCopy("E1P");
|
---|
649 |
|
---|
650 | // move stat box to make them all visible
|
---|
651 | gPad->Update();
|
---|
652 | TPaveStats* pavs_on_length = (TPaveStats*) hist_length_on->GetListOfFunctions()->FindObject("stats");
|
---|
653 | if(pavs_on_length){
|
---|
654 | shiftx = pavs_on_length->GetX2NDC() - pavs_on_length->GetX1NDC();
|
---|
655 | pavs_on_length->SetX1NDC(pavs_on_length->GetX1NDC() - shiftx);
|
---|
656 | pavs_on_length->SetX2NDC(pavs_on_length->GetX2NDC() - shiftx);
|
---|
657 | }
|
---|
658 | gPad->Modified();
|
---|
659 | gPad->Update();
|
---|
660 |
|
---|
661 | hist_length_off->DrawCopy("HISTSAME");
|
---|
662 | hist_length_off->DrawCopy("ESAME");
|
---|
663 | hist_length_on->DrawCopy("E1PSAME");
|
---|
664 |
|
---|
665 | Double_t chilength = ChiSquareNDof((TH1D*)hist_length_on,(TH1D*)hist_length_off);
|
---|
666 |
|
---|
667 | x_label_pos = lengthmax*0.7;
|
---|
668 | y_label_pos = hist_length_on->GetBinContent(hist_length_on->GetMaximumBin())/2.;
|
---|
669 |
|
---|
670 | char text_length[256];
|
---|
671 | sprintf(text_size,"ChiSquare/NDof = %4.2f",chilength);
|
---|
672 |
|
---|
673 | TLatex *tlength = new TLatex(x_label_pos, y_label_pos, text_length);
|
---|
674 | tlength->SetTextSize(textsize);
|
---|
675 | // tlength->Draw();
|
---|
676 |
|
---|
677 | gPad->Modified();
|
---|
678 | gPad->Update();
|
---|
679 |
|
---|
680 | // ############################################################################
|
---|
681 | // DrawCopy normalized ALPHA plot
|
---|
682 | // ############################################################################
|
---|
683 | display->AddTab("ALPHA");
|
---|
684 |
|
---|
685 | gPad->cd();
|
---|
686 |
|
---|
687 | hist_on_abs->Sumw2();
|
---|
688 | hist_off_abs->SetStats(0);
|
---|
689 | hist_off_abs->Sumw2();
|
---|
690 | hist_off_abs->Scale(norm);
|
---|
691 | hist_on_abs->SetStats(0); //-> Do NOT show the legend with statistics
|
---|
692 | hist_on_abs->SetLineColor(kBlack);
|
---|
693 | hist_on_abs->SetMarkerStyle(21);
|
---|
694 | //hist_on_abs->SetMarkerSize();
|
---|
695 | hist_on_abs->SetMarkerColor(kBlack);
|
---|
696 | hist_on_abs->SetMarkerSize(0.7);
|
---|
697 | hist_off_abs->SetFillColor(46);
|
---|
698 | hist_off_abs->SetLineColor(46);
|
---|
699 | hist_off_abs->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
700 | hist_off_abs->SetMinimum(0.);
|
---|
701 | hist_on_abs->SetTitle("Alpha plot");
|
---|
702 | hist_off_abs->SetTitle("Alpha plot");
|
---|
703 |
|
---|
704 |
|
---|
705 | hist_on_abs->DrawCopy("E1P");
|
---|
706 | hist_off_abs->DrawCopy("HISTSAME");
|
---|
707 | hist_off_abs->DrawCopy("ESAME");
|
---|
708 | hist_on_abs->DrawCopy("E1PSAME");
|
---|
709 |
|
---|
710 |
|
---|
711 | //draw the LEGEND with excess and significance values in the alpha plot:
|
---|
712 | char text_Fnorm[256], text_excess[256], text_sign[256];
|
---|
713 | char text_entries_on[256], text_entries_off[256], text_integral_off[256];
|
---|
714 | int hist_on_entries = (int) hist_on_abs->GetEntries();
|
---|
715 | int hist_off_entries = (int) hist_off_abs->GetEntries();
|
---|
716 | sprintf(text_Fnorm, " F norm = %.3f", norm);
|
---|
717 | sprintf(text_excess, " Excess = %.3f", excess);
|
---|
718 | sprintf(text_sign, " Significance = %.3f", sign);
|
---|
719 | sprintf(text_entries_on, " Entries ON = %d", hist_on_entries);
|
---|
720 | sprintf(text_entries_off, " Entries OFF = %d", hist_off_entries);
|
---|
721 | sprintf(text_integral_off," Integral OFF = %d", int_off);
|
---|
722 |
|
---|
723 | x_label_pos = alphamax*0.7;
|
---|
724 | y_label_pos = (hist_on_abs->GetBinContent(hist_on_abs->GetMaximumBin()))/1.6; //2.;
|
---|
725 | Double_t y_label_step = y_label_pos / 8.;
|
---|
726 |
|
---|
727 | TLatex *t0 = new TLatex(x_label_pos, y_label_pos - y_label_step*0, text_Fnorm);
|
---|
728 | t0->SetTextSize(textsize);
|
---|
729 | t0->Draw();
|
---|
730 | TLatex *t1 = new TLatex(x_label_pos, y_label_pos - y_label_step*1, text_excess);
|
---|
731 | t1->SetTextSize(textsize);
|
---|
732 | t1->Draw();
|
---|
733 | TLatex *t2 = new TLatex(x_label_pos, y_label_pos - y_label_step*2, text_sign);
|
---|
734 | t2->SetTextSize(textsize);
|
---|
735 | t2->Draw();
|
---|
736 | TLatex *t3 = new TLatex(x_label_pos, y_label_pos - y_label_step*3, text_entries_on);
|
---|
737 | t3->SetTextSize(textsize);
|
---|
738 | t3->Draw();
|
---|
739 | TLatex *t4 = new TLatex(x_label_pos, y_label_pos - y_label_step*4, text_entries_off);
|
---|
740 | t4->SetTextSize(textsize);
|
---|
741 | t4->Draw();
|
---|
742 | TLatex *t5 = new TLatex(x_label_pos, y_label_pos - y_label_step*5, text_integral_off);
|
---|
743 | t5->SetTextSize(textsize);
|
---|
744 | t5->Draw();
|
---|
745 |
|
---|
746 |
|
---|
747 | Double_t chialpha = ChiSquareNDof((TH1D*)hist_on_abs,(TH1D*)hist_off_abs);
|
---|
748 |
|
---|
749 | y_label_pos = (hist_on_abs->GetBinContent(hist_on_abs->GetMaximumBin()))/2.;
|
---|
750 |
|
---|
751 | char text_alpha[256];
|
---|
752 | sprintf(text_size,"ChiSquare/NDof = %4.2f",chialpha);
|
---|
753 |
|
---|
754 | TLatex *talpha = new TLatex(x_label_pos, y_label_pos, text_alpha);
|
---|
755 | talpha->SetTextSize(textsize);
|
---|
756 | // talpha->Draw();
|
---|
757 |
|
---|
758 | gPad->Modified();
|
---|
759 | gPad->Update();
|
---|
760 |
|
---|
761 | // ############################################################################
|
---|
762 | // DrawCopy normalized alpha histos for alpha form -90 to 90 deg.
|
---|
763 | // ############################################################################
|
---|
764 | display->AddTab("ALPHA +-90");
|
---|
765 |
|
---|
766 | gPad->cd();
|
---|
767 |
|
---|
768 | hist_on->Sumw2();
|
---|
769 | hist_off->SetStats(0);
|
---|
770 | hist_off->Sumw2();
|
---|
771 | hist_off->Scale(norm);
|
---|
772 | hist_off->SetFillColor(46);
|
---|
773 | hist_off->SetLineColor(46);
|
---|
774 | hist_off->SetFillStyle(3004); //(1001)-> To set the pad NOT transparent and solid; (3004)-> pattern lines
|
---|
775 | hist_off->SetMinimum(0.);
|
---|
776 | hist_on->SetStats(0); //-> Do NOT show the legend with statistics
|
---|
777 | hist_on->SetLineColor(kBlack);
|
---|
778 | hist_on->SetMarkerStyle(21);
|
---|
779 | hist_on->SetMarkerSize(0.7);
|
---|
780 | hist_on->SetMarkerColor(kBlack);
|
---|
781 | hist_on->SetTitle("Alpha plot form -90 to 90 deg");
|
---|
782 | hist_off->SetTitle("Alpha plot form -90 to 90 deg");
|
---|
783 |
|
---|
784 | hist_on->DrawCopy("E1P");
|
---|
785 | hist_off->DrawCopy("HISTSAME");
|
---|
786 | hist_off->DrawCopy("ESAME");
|
---|
787 | hist_on->DrawCopy("E1PSAME");
|
---|
788 |
|
---|
789 | Double_t chialpha90 = ChiSquareNDof((TH1D*)hist_on,(TH1D*)hist_off);
|
---|
790 |
|
---|
791 | x_label_pos = alphamax*0.5;
|
---|
792 | y_label_pos = hist_on->GetBinContent(hist_on->GetMaximumBin())/2.;
|
---|
793 |
|
---|
794 | char text_alpha90[256];
|
---|
795 | sprintf(text_alpha90,"ChiSquare/NDof = %4.2f",chialpha90);
|
---|
796 |
|
---|
797 | TLatex *talpha90 = new TLatex(x_label_pos, y_label_pos, text_alpha90);
|
---|
798 | talpha90->SetTextSize(textsize);
|
---|
799 | // talpha90->Draw();
|
---|
800 |
|
---|
801 | gPad->Update();
|
---|
802 | gPad->Modified();
|
---|
803 |
|
---|
804 |
|
---|
805 | cout << "---> ChiSquare/NDof [Size] =\t\t" << chisize << endl;
|
---|
806 | cout << "---> ChiSquare/NDof [Dist] =\t\t" << chidist << endl;
|
---|
807 | cout << "---> ChiSquare/NDof [Width] =\t\t" << chiwidth << endl;
|
---|
808 | cout << "---> ChiSquare/NDof [Length] =\t\t" << chilength << endl;
|
---|
809 | cout << "---> ChiSquare/NDof [Abs(Alpha)] =\t" << chialpha << endl;
|
---|
810 | cout << "---> ChiSquare/NDof [Alpha] =\t\t" << chialpha90 << endl;
|
---|
811 |
|
---|
812 |
|
---|
813 | display->AddTab("SRCPOS ON");
|
---|
814 | TH2F *hist_srcpos_on = (TH2F*)hSrcPos_on.GetHist();
|
---|
815 | hist_srcpos_on->DrawCopy("BOX");
|
---|
816 |
|
---|
817 | display->AddTab("SRCPOS OFF");
|
---|
818 | TH2F *hist_srcpos_off = (TH2F*)hSrcPos_off.GetHist();
|
---|
819 | hist_srcpos_off->DrawCopy("BOX");
|
---|
820 |
|
---|
821 | display->AddTab("EVTNUM ON");
|
---|
822 | TH1F *hist_evtnum_on = (TH1F*)hDAQEvtNumber_on.GetHist();
|
---|
823 | hist_evtnum_on->DrawCopy();
|
---|
824 |
|
---|
825 | display->AddTab("EVTNUM OFF");
|
---|
826 | TH1F *hist_evtnum_off = (TH1F*)hDAQEvtNumber_off.GetHist();
|
---|
827 | hist_evtnum_off->DrawCopy();
|
---|
828 |
|
---|
829 | cout << "Done!!" <<endl;
|
---|
830 |
|
---|
831 | }
|
---|
832 |
|
---|
833 |
|
---|
834 |
|
---|