1 |
|
---|
2 | /////////////////////////////////////////////////////////////////////////////
|
---|
3 | // //
|
---|
4 | // analysis_read.C //
|
---|
5 | // //
|
---|
6 | // Author(s): S.C. Commichau, 3/2004 //
|
---|
7 | // //
|
---|
8 | /////////////////////////////////////////////////////////////////////////////
|
---|
9 |
|
---|
10 |
|
---|
11 | // This macro reads the output of analysis.C and plots some of the
|
---|
12 | // image parameters. It also produces an ALPHA plot and calculates
|
---|
13 | // the significance
|
---|
14 |
|
---|
15 | void analysis_read(){
|
---|
16 |
|
---|
17 | gROOT->Reset();
|
---|
18 |
|
---|
19 | // Some parameters for the ALPHA-plot
|
---|
20 | const Int_t inibin = 9;
|
---|
21 | const Int_t nbins = 18;
|
---|
22 |
|
---|
23 | // ON data chain
|
---|
24 | TChain* CON = new TChain("Parameters");
|
---|
25 |
|
---|
26 | // OFF data chain
|
---|
27 | TChain* COFF = new TChain("Parameters");
|
---|
28 |
|
---|
29 | // Add the root file(s) to the chain and treat it like a tree
|
---|
30 | CON->Add("~/Mars/on1.root");
|
---|
31 | COFF->Add("~/Mars/off1.root");
|
---|
32 |
|
---|
33 | //CON->Add("~/no_back/hillas_on_all23.root");
|
---|
34 | //COFF->Add("~/no_back/hillas_off_all23.root");
|
---|
35 |
|
---|
36 | TString title = "Mrk421 - 04/23/2004";
|
---|
37 |
|
---|
38 | // Set some global style options
|
---|
39 | //gStyle->SetOptDate(10);
|
---|
40 | //gStyle->SetDateX(.1);
|
---|
41 | //gStyle->SetDateY(.905);
|
---|
42 | gStyle->SetOptFit(0);
|
---|
43 | gStyle->SetOptStat(110011);
|
---|
44 | gStyle->SetFrameBorderMode(0);
|
---|
45 | //gStyle->SetPalette(1);
|
---|
46 | gStyle->SetPalette(1,0);
|
---|
47 | gStyle->SetFrameBorderSize(0);
|
---|
48 | gStyle->SetCanvasColor(0);
|
---|
49 | gStyle->SetFrameFillColor(0);
|
---|
50 | gStyle->SetTitleFillColor(0);
|
---|
51 | gStyle->SetTitleBorderSize(0);
|
---|
52 | gStyle->SetStatColor(0);
|
---|
53 | gStyle->SetStatBorderSize(1);
|
---|
54 | // Put the statistics box into the right corner!
|
---|
55 | gStyle->SetStatX(.9);
|
---|
56 | gStyle->SetStatY(.9);
|
---|
57 | //gStyle->SetStatTextColor(2);
|
---|
58 |
|
---|
59 | // Set alias for each quantity to simplify the handling
|
---|
60 | CON->SetAlias("length","MHillas.fLength*0.6/189.0");
|
---|
61 | CON->SetAlias("width","MHillas.fWidth*0.6/189.0");
|
---|
62 | CON->SetAlias("meanx","MHillas.fMeanX*0.6/189.0");
|
---|
63 | CON->SetAlias("meany","MHillas.fMeanY*0.6/189.0");
|
---|
64 | CON->SetAlias("size","MHillas.fSize");
|
---|
65 | CON->SetAlias("dist","MHillasSrc.fDist*0.6/189.0");
|
---|
66 | CON->SetAlias("alpha","MHillasSrc.fAlpha");
|
---|
67 | CON->SetAlias("delta","abs(MHillas.fDelta)*180/3.1415");
|
---|
68 | //CON->SetAlias("delta","MDCA.fDelta1*180/3.1415");
|
---|
69 | //CON->SetAlias("dca","MDCA.fDCA*0.6/189.0");
|
---|
70 |
|
---|
71 | COFF->SetAlias("length","MHillas.fLength*0.6/189.0");
|
---|
72 | COFF->SetAlias("width","MHillas.fWidth*0.6/189.0");
|
---|
73 | COFF->SetAlias("meanx","MHillas.fMeanX*0.6/189.0");
|
---|
74 | COFF->SetAlias("meany","MHillas.fMeanY*0.6/189.0");
|
---|
75 | COFF->SetAlias("size","MHillas.fSize");
|
---|
76 | COFF->SetAlias("dist","MHillasSrc.fDist*0.6/189.0");
|
---|
77 | COFF->SetAlias("alpha","MHillasSrc.fAlpha");
|
---|
78 | COFF->SetAlias("delta","abs(MHillas.fDelta)*180/3.1415");
|
---|
79 |
|
---|
80 |
|
---|
81 | // Cuts...
|
---|
82 | // Cut for ALPHA
|
---|
83 | TString cut1 = "(dist>0.2) && (dist<.7) && (width>0.04) && (width<0.14) && (length>0.14) && (length<0.26) && (size>500)";
|
---|
84 |
|
---|
85 | TString cut2 = "";//size>1000 && size<2000";
|
---|
86 |
|
---|
87 | TString cut3 = "";
|
---|
88 |
|
---|
89 | TString cut4 = "";
|
---|
90 |
|
---|
91 | TString cut5 = "";
|
---|
92 |
|
---|
93 |
|
---|
94 | // And now the draw area
|
---|
95 |
|
---|
96 | //************ Width vs Length ************
|
---|
97 |
|
---|
98 | TCanvas* CWL = new TCanvas("CWL","Canvas",0,0,300,300);
|
---|
99 | CWL->cd();
|
---|
100 | CWL->SetBorderMode(0);
|
---|
101 | gPad->SetBorderMode(0);
|
---|
102 | gStyle->SetOptStat(0);
|
---|
103 |
|
---|
104 | TH2F* hWL = new TH2F("hWL","",200,0,0.7,200,0,1);
|
---|
105 |
|
---|
106 | // Leaf, Cuts, Draw option, use >>+ to append data to an ex. histogram
|
---|
107 | CON->Draw("length:width>>hWL",cut2);
|
---|
108 |
|
---|
109 | hWL->SetTitle(title);
|
---|
110 | hWL->GetXaxis()->SetTitle("WIDTH [#circ]");
|
---|
111 | hWL->GetYaxis()->SetTitle("LENGTH [#circ]");
|
---|
112 | hWL->GetYaxis()->SetTitleOffset(1.2);
|
---|
113 | hWL->SetMarkerColor(2);
|
---|
114 |
|
---|
115 | hWL->SetMaximum(150);
|
---|
116 | hWL->Draw("COLZ");//CONT
|
---|
117 |
|
---|
118 |
|
---|
119 | //************ Width and Length ************
|
---|
120 |
|
---|
121 | // Create Canvas and set Canvas some options
|
---|
122 | TCanvas* Cwl = new TCanvas("Cwl","Canvas",325,0,300,300);
|
---|
123 | Cwl->cd();
|
---|
124 | Cwl->SetBorderMode(0);
|
---|
125 | gPad->SetBorderMode(0);
|
---|
126 | gStyle->SetOptStat(110011);
|
---|
127 |
|
---|
128 | TH1F* hLength = new TH1F("hLength","",100,0,1.1);
|
---|
129 |
|
---|
130 | CON->Draw("length>>hLength",cut5,"");
|
---|
131 |
|
---|
132 | hLength->SetTitle(title);
|
---|
133 | hLength->GetXaxis()->SetTitle("LENGTH and WIDTH [#circ]");
|
---|
134 | hLength->GetYaxis()->SetTitle("Entries");
|
---|
135 | hLength->GetYaxis()->SetTitleOffset(1.6);
|
---|
136 | hLength->SetFillColor(50);
|
---|
137 | hLength->SetLineColor(50);
|
---|
138 | hLength->SetLineWidth(2);
|
---|
139 | hLength->SetFillStyle(3005);
|
---|
140 | //hLength->SetMaximum(55000);
|
---|
141 | hLength->SetName("LENGTH");
|
---|
142 |
|
---|
143 | TH1F* hWidth = new TH1F("hWidth","",100,0,1.1);
|
---|
144 |
|
---|
145 | CON->Draw("width>>hWidth",cut5,"");
|
---|
146 |
|
---|
147 | gStyle->SetStatTextColor(4);
|
---|
148 | hWidth->SetFillColor(4);
|
---|
149 | hWidth->SetLineColor(4);
|
---|
150 | hWidth->SetFillStyle(3004);
|
---|
151 | hWidth->SetLineWidth(2);
|
---|
152 | hWidth->SetName("WIDTH");
|
---|
153 |
|
---|
154 | TLegend* leg = new TLegend(.59,.75,.8,.84);
|
---|
155 | leg->AddEntry(hLength,"LENGTH","F");
|
---|
156 | leg->AddEntry(hWidth,"WIDTH","F");
|
---|
157 | leg->SetFillColor(0);
|
---|
158 | leg->SetLineColor(1);
|
---|
159 | leg->SetBorderSize(0);
|
---|
160 |
|
---|
161 | hLength->Draw();//DrawNormalized or DrawCopy are possible options
|
---|
162 | hWidth->Draw("sames");
|
---|
163 | //leg->Draw("same");
|
---|
164 |
|
---|
165 | // Beautify the statistic boxes!
|
---|
166 | gPad->Update();
|
---|
167 | TPaveStats* pavstat = (TPaveStats*) hLength->GetListOfFunctions()->FindObject("stats");
|
---|
168 | if(pavstat)
|
---|
169 | {
|
---|
170 | Float_t shiftx = pavstat->GetX2NDC()-pavstat->GetX1NDC();
|
---|
171 | pavstat->SetX1NDC(pavstat->GetX1NDC()-shiftx);
|
---|
172 | pavstat->SetX2NDC(pavstat->GetX2NDC()-shiftx);
|
---|
173 | pavstat->SetTextColor(50);
|
---|
174 | }
|
---|
175 |
|
---|
176 | gPad->Modified();
|
---|
177 | gPad->Update();
|
---|
178 |
|
---|
179 |
|
---|
180 | //************ Dist ************
|
---|
181 |
|
---|
182 | TCanvas* CDist = new TCanvas("CDist","Canvas",650,0,300,300);
|
---|
183 | CDist->cd();
|
---|
184 | CDist->SetBorderMode(0);
|
---|
185 | gStyle->SetOptStat(110011);
|
---|
186 | //CDist->SetLogy();
|
---|
187 |
|
---|
188 | TH1F* hDist = new TH1F("hDist","",90,0,1.8);
|
---|
189 |
|
---|
190 | CON->Draw("dist>>hDist");
|
---|
191 |
|
---|
192 | hDist->GetXaxis()->SetTitle("DIST [#circ]");
|
---|
193 | hDist->GetYaxis()->SetTitle("Entries");
|
---|
194 | hDist->GetYaxis()->SetTitleOffset(1.6);
|
---|
195 | //hDist->GetXaxis()->SetTitleOffset(1.3);
|
---|
196 | hDist->SetLineColor(4);
|
---|
197 | hDist->SetMarkerColor(4);
|
---|
198 | hDist->SetFillColor(4);
|
---|
199 | hDist->SetFillStyle(3004);
|
---|
200 | hDist->SetLineWidth(2);
|
---|
201 | hDist->SetTitle(title);
|
---|
202 | hDist->SetName("DIST");
|
---|
203 |
|
---|
204 | hDist->Draw();
|
---|
205 |
|
---|
206 |
|
---|
207 | //************ MeanY vs MeanX ************
|
---|
208 |
|
---|
209 | TCanvas* CXY = new TCanvas("CXY","Canvas",975,0,300,300);
|
---|
210 | CXY->cd();
|
---|
211 | CXY->SetBorderMode(0);
|
---|
212 | gStyle->SetOptStat(0);
|
---|
213 |
|
---|
214 | TH2F* hXY = new TH2F("hXY","",500,-1.5,1.5,500,-1.5,1.5);
|
---|
215 |
|
---|
216 | CON->Draw("meany:meanx>>hXY",cut3,"");
|
---|
217 |
|
---|
218 | TString titlexy = TString(title);
|
---|
219 |
|
---|
220 | hXY->SetTitle(titlexy);
|
---|
221 | hXY->GetXaxis()->SetTitle("MeanX [#circ]");
|
---|
222 | hXY->GetYaxis()->SetTitle("MeanY [#circ]");
|
---|
223 | hXY->GetYaxis()->SetTitleOffset(1.2);
|
---|
224 | hXY->SetMaximum(15);
|
---|
225 |
|
---|
226 | hXY->Draw("COLZ");
|
---|
227 |
|
---|
228 |
|
---|
229 | //************ DCA ************
|
---|
230 | /*
|
---|
231 | TCanvas* CDCA = new TCanvas("CDCA","Canvas",10,400,300,300);
|
---|
232 | CDCA->cd();
|
---|
233 | CDCA->SetBorderMode(0);
|
---|
234 | gStyle->SetOptStat(110011);
|
---|
235 |
|
---|
236 | TH1F* hDCA = new TH1F("hDCA","",100,-1.5,1.5);
|
---|
237 |
|
---|
238 | CON->Draw("dca>>hDCA");
|
---|
239 |
|
---|
240 | hDCA->GetXaxis()->SetTitle("DCA [#circ]");
|
---|
241 | hDCA->GetYaxis()->SetTitle("Entries");
|
---|
242 | hDCA->GetYaxis()->SetTitleOffset(2);
|
---|
243 | hDCA->SetLineColor(4);
|
---|
244 | hDCA->SetFillColor(4);
|
---|
245 | hDCA->SetFillStyle(3004);
|
---|
246 | hDCA->SetTitle(title);
|
---|
247 | hDCA->SetName("DCA");
|
---|
248 |
|
---|
249 | hDCA->Draw();
|
---|
250 | */
|
---|
251 |
|
---|
252 |
|
---|
253 | //************ Delta ************
|
---|
254 |
|
---|
255 | TCanvas* CDelta = new TCanvas("CDelta","Canvas",0,335,300,300);
|
---|
256 | CDelta->cd();
|
---|
257 | CDelta->SetBorderMode(0);
|
---|
258 | gStyle->SetOptStat(110011);
|
---|
259 |
|
---|
260 | TH1F* hDelta = new TH1F("hDelta","",100,0,90);
|
---|
261 |
|
---|
262 | CON->Draw("delta>>hDelta",cut3);
|
---|
263 |
|
---|
264 | hDelta->GetXaxis()->SetTitle("#delta [#circ]");
|
---|
265 | hDelta->GetYaxis()->SetTitle("Entries");
|
---|
266 | hDelta->GetYaxis()->SetTitleOffset(1.4);
|
---|
267 | hDelta->SetLineColor(4);
|
---|
268 | hDelta->SetFillColor(4);
|
---|
269 | hDelta->SetFillStyle(3004);
|
---|
270 | hDelta->SetLineWidth(2);
|
---|
271 | hDelta->SetTitle(title);
|
---|
272 | hDelta->SetName("Delta");
|
---|
273 |
|
---|
274 | hDelta->Draw();
|
---|
275 |
|
---|
276 |
|
---|
277 | //************ Size ************
|
---|
278 |
|
---|
279 | TCanvas* CSize = new TCanvas("CSize","Canvas",325,335,300,300);
|
---|
280 | CSize->cd();
|
---|
281 | CSize->SetBorderMode(0);
|
---|
282 | gStyle->SetOptStat(110011);
|
---|
283 |
|
---|
284 | TH1F* hSize = new TH1F("hSize","",100,0.1,5000);
|
---|
285 |
|
---|
286 | CON->Draw("size>>hSize");
|
---|
287 |
|
---|
288 | hSize->GetXaxis()->SetTitle("Size [Photons]");
|
---|
289 | hSize->GetYaxis()->SetTitle("Entries");
|
---|
290 | hSize->GetYaxis()->SetTitleOffset(1.6);
|
---|
291 | hSize->GetXaxis()->SetTitleOffset(1.2);
|
---|
292 | hSize->SetLineColor(4);
|
---|
293 | hSize->SetFillColor(4);
|
---|
294 | hSize->SetLineWidth(2);
|
---|
295 | hSize->SetFillStyle(3004);
|
---|
296 | hSize->SetTitle(title);
|
---|
297 | hSize->SetName("SIZE");
|
---|
298 |
|
---|
299 | hSize->Draw();
|
---|
300 |
|
---|
301 |
|
---|
302 | //************ Alpha ************
|
---|
303 |
|
---|
304 | TCanvas* CAlpha = new TCanvas("CAlpha","Canvas",650,335,300,300);
|
---|
305 | CAlpha->cd();
|
---|
306 | CAlpha->SetBorderMode(0);
|
---|
307 | CAlpha->SetGridx();
|
---|
308 | CAlpha->SetGridy();
|
---|
309 | gStyle->SetOptStat(11);
|
---|
310 |
|
---|
311 | TH1F *hAlpha = (TH1F*)new TH1F("hAlpha","Alpha ON",nbins,0,90);
|
---|
312 | TH1F *hAlphaoff = (TH1F*)new TH1F("hAlphaoff","Alpha OFF",nbins,0,90);
|
---|
313 |
|
---|
314 | CON->Draw("abs(alpha)>>hAlpha",cut1);
|
---|
315 |
|
---|
316 | COFF->Draw("abs(alpha)>>hAlphaoff",cut1);
|
---|
317 |
|
---|
318 |
|
---|
319 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
---|
320 | // Normalize ON and OFF data
|
---|
321 | cout << "******************************************************" << endl;
|
---|
322 | cout << " Bin error before scaling: " << hAlphaoff->GetBinError(2) << endl;
|
---|
323 |
|
---|
324 | // If TH1::Sumw2 has been called before filling, the sum of squares of
|
---|
325 | // weights is also stored - I do not understand this!!
|
---|
326 | hAlphaoff->Sumw2();
|
---|
327 |
|
---|
328 | Float_t level = 0, leveloff = 0;
|
---|
329 |
|
---|
330 | // Calculate the mean of entries beside the signal region
|
---|
331 | for(Int_t ibin = inibin; ibin<=nbins; ibin++)
|
---|
332 | level += hAlpha->GetBinContent(ibin);
|
---|
333 | level /= (nbins-inibin+1);
|
---|
334 |
|
---|
335 | cout << " Mean beside signal: " << level << endl;
|
---|
336 |
|
---|
337 | for(Int_t ibin = inibin; ibin<=nbins; ibin++)
|
---|
338 | leveloff += hAlphaoff->GetBinContent(ibin);
|
---|
339 | leveloff /= (nbins-inibin+1);
|
---|
340 |
|
---|
341 | // Compare the mean values of both histograms
|
---|
342 | if(leveloff>0)
|
---|
343 | const Float_t norm = level/leveloff;//*nbins/hAlphaoff->GetEntries();
|
---|
344 | cout << " Normalizing by factor " << norm <<endl;
|
---|
345 | hAlphaoff->Scale(norm);
|
---|
346 |
|
---|
347 | cout << " Bin error after scaling: " << hAlphaoff->GetBinError(2) << endl;
|
---|
348 |
|
---|
349 | cout << " Cut on (ALPHA): " << cut1 << endl;
|
---|
350 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
---|
351 |
|
---|
352 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
---|
353 | // Significance calculation
|
---|
354 | Float_t significance = 0;
|
---|
355 | const Int_t signbins = 3;
|
---|
356 |
|
---|
357 | Int_t Non = 0;
|
---|
358 | Int_t Noff = 0;
|
---|
359 |
|
---|
360 | cout << " Significance Bins: " << signbins << endl;
|
---|
361 |
|
---|
362 | // Determine number of excess events and off events in the same region
|
---|
363 | for(Int_t ibin = 1; ibin<=signbins;ibin++)
|
---|
364 | {
|
---|
365 | Non +=hAlpha->GetBinContent(ibin);
|
---|
366 | Noff+=hAlphaoff->GetBinContent(ibin);
|
---|
367 | }
|
---|
368 |
|
---|
369 | cout << " Non = " << Non << " Noff = " << Noff << endl;
|
---|
370 |
|
---|
371 | significance = Significance(Non, Noff, 1.0, 0); //norm
|
---|
372 |
|
---|
373 | cout << " Significance: " << significance << endl;
|
---|
374 | cout << "******************************************************" << endl;
|
---|
375 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
---|
376 |
|
---|
377 | // Set some draw options and draw the histograms
|
---|
378 | hAlphaoff->GetXaxis()->SetTitle("ALPHA [#circ]");
|
---|
379 | hAlphaoff->GetYaxis()->SetTitle("Entries");
|
---|
380 | hAlphaoff->GetYaxis()->SetTitleOffset(1.4);
|
---|
381 | hAlphaoff->GetXaxis()->SetTitleOffset(1.1);
|
---|
382 |
|
---|
383 | char legentry[128];
|
---|
384 | sprintf(legentry," (Sign.: %2.3f #sigma, Norm.: %2.3f, |ALPHA| #leq %d#circ)", significance, norm, 90/nbins*signbins);
|
---|
385 |
|
---|
386 | hAlphaoff->SetTitle(title+legentry);
|
---|
387 | hAlphaoff->SetName("OFF source");
|
---|
388 | hAlphaoff->SetLineColor(4);
|
---|
389 | hAlphaoff->SetLineWidth(2);
|
---|
390 | hAlphaoff->SetMarkerColor(8);
|
---|
391 | hAlphaoff->SetMarkerStyle(21);
|
---|
392 | hAlphaoff->SetMarkerSize(0);
|
---|
393 | hAlphaoff->SetFillColor(18);
|
---|
394 | hAlphaoff->SetMaximum(hAlpha->GetMaximum()+200);
|
---|
395 |
|
---|
396 | hAlpha->SetLineColor(1);
|
---|
397 | hAlpha->SetLineWidth(2);
|
---|
398 | hAlpha->SetMarkerColor(50);
|
---|
399 | hAlpha->SetMarkerStyle(20);
|
---|
400 | hAlpha->SetMarkerSize(0.9);
|
---|
401 | hAlpha->SetName("ON source");
|
---|
402 | //hAlpha->SetMaximum(hAlpha->GetMaximum());
|
---|
403 |
|
---|
404 | hAlphaoff->Draw("eH");
|
---|
405 | hAlpha->Draw("e1sames");
|
---|
406 |
|
---|
407 | // Beautify the statistic boxes!
|
---|
408 | gPad->Update();
|
---|
409 | TPaveStats* pavstat = (TPaveStats*) hAlphaoff->GetListOfFunctions()->FindObject("stats");
|
---|
410 | if(pavstat)
|
---|
411 | {
|
---|
412 | Float_t shiftx = pavstat->GetX2NDC()-pavstat->GetX1NDC();
|
---|
413 | pavstat->SetX1NDC(pavstat->GetX1NDC()-shiftx);
|
---|
414 | pavstat->SetX2NDC(pavstat->GetX2NDC()-shiftx);
|
---|
415 | pavstat->SetTextColor(4);
|
---|
416 | }
|
---|
417 |
|
---|
418 | TPaveStats* pavstaton = (TPaveStats*) hAlpha->GetListOfFunctions()->FindObject("stats");
|
---|
419 | if(pavstaton)
|
---|
420 | {
|
---|
421 | pavstaton->SetTextColor(50);
|
---|
422 | }
|
---|
423 |
|
---|
424 | gPad->Modified();
|
---|
425 | gPad->Update();
|
---|
426 |
|
---|
427 |
|
---|
428 | //************ Length/Size ************
|
---|
429 |
|
---|
430 | TCanvas* CLSiz = new TCanvas("CLSiz","Canvas",975,335,300,300);
|
---|
431 | CLSiz->cd();
|
---|
432 | CLSiz->SetBorderMode(0);
|
---|
433 | gStyle->SetOptStat(110011);
|
---|
434 |
|
---|
435 | TH1F* hLenSiz = new TH1F("hLenSiz","",100,0,0.005);
|
---|
436 |
|
---|
437 | CON->Draw("length/size>>hLenSiz",cut2,"");
|
---|
438 |
|
---|
439 | hLenSiz->GetXaxis()->SetTitle("LENGTH/SIZE [#circ/Photons]");
|
---|
440 | hLenSiz->GetYaxis()->SetTitle("Entries");
|
---|
441 | hLenSiz->GetYaxis()->SetTitleOffset(1.5);
|
---|
442 | hLenSiz->GetXaxis()->SetTitleOffset(1.1);
|
---|
443 | hLenSiz->SetLineColor(4);
|
---|
444 | hLenSiz->SetFillColor(4);
|
---|
445 | hLenSiz->SetLineWidth(2);
|
---|
446 | hLenSiz->SetFillStyle(3004);
|
---|
447 | hLenSiz->SetNdivisions(505);
|
---|
448 |
|
---|
449 | hLenSiz->SetTitle(title);
|
---|
450 | hLenSiz->SetName("LENGTH/SIZE");
|
---|
451 |
|
---|
452 | hLenSiz->Draw();
|
---|
453 |
|
---|
454 |
|
---|
455 | // Uncomment the following lines for MC only!
|
---|
456 |
|
---|
457 | //************ Energy ************
|
---|
458 | /*
|
---|
459 |
|
---|
460 | TH1F *hEnergy = (TH1F*)gDirectory->Get("hEnergy");
|
---|
461 |
|
---|
462 | TCanvas* CEnergy = new TCanvas("CEnergy","Canvas",0,670,300,300);
|
---|
463 | CEnergy->cd();
|
---|
464 | CEnergy->SetBorderMode(0);
|
---|
465 | //CEnergy->SetLogy();
|
---|
466 | gStyle->SetOptStat(110011);
|
---|
467 |
|
---|
468 | TH1F* hEnergy = new TH1F("hEnergy","",100,0,1000);
|
---|
469 |
|
---|
470 | CON->Draw("energy>>hEnergy","","");
|
---|
471 |
|
---|
472 | hEnergy->GetXaxis()->SetTitle("Energy [GeV]");
|
---|
473 | hEnergy->GetYaxis()->SetTitle("Entries");
|
---|
474 | hEnergy->GetYaxis()->SetTitleOffset(1.2);
|
---|
475 | hEnergy->GetXaxis()->SetTitleOffset(1.1);
|
---|
476 | hEnergy->SetLineColor(4);
|
---|
477 | hEnergy->SetFillColor(4);
|
---|
478 | hEnergy->SetLineWidth(2);
|
---|
479 | hEnergy->SetFillStyle(3004);
|
---|
480 | hEnergy->SetNdivisions(505);
|
---|
481 |
|
---|
482 | hEnergy->SetTitle(title);
|
---|
483 | hEnergy->SetName("Energy");
|
---|
484 |
|
---|
485 | hEnergy->Draw();
|
---|
486 | */
|
---|
487 |
|
---|
488 |
|
---|
489 | //************ MeanX and MeanY ************
|
---|
490 |
|
---|
491 | // Create Canvas and set Canvas some options
|
---|
492 | TCanvas* Cxy = new TCanvas("Cxy","Canvas",325,670,300,300);
|
---|
493 | Cxy->cd();
|
---|
494 | Cxy->SetBorderMode(0);
|
---|
495 | gPad->SetBorderMode(0);
|
---|
496 | gStyle->SetOptStat(111);
|
---|
497 |
|
---|
498 | TH1F* hMeanX = new TH1F("hMeanX","",100,-1.5,1.5);
|
---|
499 |
|
---|
500 | CON->Draw("meanx>>hMeanX",cut3,"");
|
---|
501 |
|
---|
502 | TH1F* hMeanY = new TH1F("hMeanY","",100,-1.5,1.5);
|
---|
503 |
|
---|
504 | CON->Draw("meany>>hMeanY",cut3,"");
|
---|
505 |
|
---|
506 | hMeanX->SetTitle(title);
|
---|
507 | hMeanX->GetXaxis()->SetTitle("MeanX and MeanY [#circ]");
|
---|
508 | hMeanX->GetYaxis()->SetTitle("Entries");
|
---|
509 | hMeanX->GetYaxis()->SetTitleOffset(1.6);
|
---|
510 | hMeanX->SetFillColor(50);
|
---|
511 | hMeanX->SetLineColor(50);
|
---|
512 | hMeanX->SetLineWidth(2);
|
---|
513 | hMeanX->SetFillStyle(3005);
|
---|
514 | //hMeanX->SetMaximum(16000);
|
---|
515 | //hMeanX->SetMaximum(6500);
|
---|
516 | hMeanX->SetName("MeanX");
|
---|
517 |
|
---|
518 | gStyle->SetStatTextColor(4);
|
---|
519 | hMeanY->SetFillColor(4);
|
---|
520 | hMeanY->SetLineColor(4);
|
---|
521 | hMeanY->SetFillStyle(3004);
|
---|
522 | hMeanY->SetLineWidth(2);
|
---|
523 | hMeanY->SetName("MeanY");
|
---|
524 |
|
---|
525 | hMeanX->Draw();//DrawNormalized or DrawCopy are possible options
|
---|
526 | hMeanY->Draw("sames");//esames
|
---|
527 |
|
---|
528 | // Beautify the statistic boxes!
|
---|
529 | gPad->Update();
|
---|
530 | TPaveStats* pavstat = (TPaveStats*) hMeanX->GetListOfFunctions()->FindObject("stats");
|
---|
531 | if(pavstat)
|
---|
532 | {
|
---|
533 | Float_t shiftx = pavstat->GetX2NDC()-pavstat->GetX1NDC();
|
---|
534 | pavstat->SetX1NDC(pavstat->GetX1NDC()-shiftx);
|
---|
535 | pavstat->SetX2NDC(pavstat->GetX2NDC()-shiftx);
|
---|
536 | pavstat->SetTextColor(50);
|
---|
537 | }
|
---|
538 |
|
---|
539 | gPad->Modified();
|
---|
540 | gPad->Update();
|
---|
541 |
|
---|
542 | //delete hWL;
|
---|
543 | //delete hXY;
|
---|
544 | }
|
---|
545 |
|
---|
546 |
|
---|
547 | Double_t Significance(Float_t Non, Float_t Noff, Float_t alpha, Int_t type = 0)
|
---|
548 | {
|
---|
549 | // Calculate significance after Li and Ma
|
---|
550 |
|
---|
551 | // Formula Nr. 17
|
---|
552 | if(type == 0)
|
---|
553 | return TMath::Sqrt(2*(Non*TMath::Log(((1+alpha)/alpha)*(Non/(Non+Noff))) + Noff*TMath::Log((1+alpha)*Noff/(Non+Noff))));
|
---|
554 |
|
---|
555 | // Formula Nr. 9
|
---|
556 | if(type == 1)
|
---|
557 | return (Non-alpha*Noff)/TMath::Sqrt(alpha*(Non+Noff));
|
---|
558 |
|
---|
559 | }
|
---|
560 |
|
---|
561 |
|
---|
562 |
|
---|
563 |
|
---|
564 |
|
---|
565 |
|
---|
566 |
|
---|
567 |
|
---|
568 |
|
---|