15 std::map<Double_t,Double_t>::iterator it;
18 for (it=Map.begin(); it!=Map.end(); ++it)
35 bool useExpectedRange = 0;
38 std::map<Double_t, Double_t> Triple4010sekTar;
39 std::map<Double_t, Double_t> Triple4010sekTarError;
40 std::map<Double_t, Double_t> Triple4010;
41 std::map<Double_t, Double_t> Triple4010Error;
42 std::map<Double_t, Double_t> Triple4020sekTar;
43 std::map<Double_t, Double_t> Triple4020sekTarError;
44 std::map<Double_t, Double_t> Triple4020sekTarSEP;
45 std::map<Double_t, Double_t> Triple4020sekTarSEPError;
46 std::map<Double_t, Double_t> Triple4020sekTarSEPDEP;
47 std::map<Double_t, Double_t> Triple4020sekTarSEPDEPError;
48 std::map<Double_t, Double_t> Triple4020sekTar1;
49 std::map<Double_t, Double_t> Triple4020sekTar1Error;
50 std::map<Double_t, Double_t> Triple4020sekTar1SEP;
51 std::map<Double_t, Double_t> Triple4020sekTar1SEPError;
52 std::map<Double_t, Double_t> Triple4020sekTar1SEPDEP;
53 std::map<Double_t, Double_t> Triple4020sekTar1SEPDEPError;
54 std::map<Double_t, Double_t> Triple4020;
55 std::map<Double_t, Double_t> Triple4020Error;
56 std::map<Double_t, Double_t> Triple4020SEP;
57 std::map<Double_t, Double_t> Triple4020SEPError;
58 std::map<Double_t, Double_t> Triple4020SEPDEP;
59 std::map<Double_t, Double_t> Triple4020SEPDEPError;
60 std::map<Double_t, Double_t> Triple4020sekTarFWHM;
61 std::map<Double_t, Double_t> Triple4020sekTarFWHMError;
62 std::map<Double_t, Double_t> Triple4020sekTar1FWHM;
63 std::map<Double_t, Double_t> Triple4020sekTar1FWHMError;
64 std::map<Double_t, Double_t> Triple4020FWHM;
65 std::map<Double_t, Double_t> Triple4020FWHMError;
66 std::map<Double_t,Double_t>::iterator it;
67 TStyle *
style = gROOT -> GetStyle(
"Default");
68 style->SetFillColor(10);
69 style->SetFrameFillColor(10);
70 style->SetCanvasColor(10);
71 style->SetPadColor(10);
72 style->SetTitleFillColor(10);
78 ifstream Inputfile(
"/data/work/kpha1/steinen/Gamma/Ana/CombinedData/Fitted/FittedData.txt");
80 Int_t Geometry, Sektar,
nEvents;
81 Double_t Energy, FullEnergyPeakEff, FullEnergyPeakEffError, FWHM, FWHMError,FullEnergyPeakEffSEP, FullEnergyPeakEffSEPError,FullEnergyPeakEffSEPDEP, FullEnergyPeakEffSEPDEPError;
83 while(Inputfile >> Geometry >> Sektar >> Energy >> nEvents >> FullEnergyPeakEff >> FullEnergyPeakEffError >>FWHM >> FWHMError>> FullEnergyPeakEffSEP >> FullEnergyPeakEffSEPError>>FullEnergyPeakEffSEPDEP >> FullEnergyPeakEffSEPDEPError )
88 FWHMError = FWHMError*1000;
89 if (nEvents == 10000000)
95 Triple4010sekTar.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEff) );
96 Triple4010sekTarError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffError) );
100 Triple4010.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEff) );
101 Triple4010Error.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffError) );
108 Triple4020sekTar.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEff) );
109 Triple4020sekTarError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffError) );
110 Triple4020sekTarSEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEP) );
111 Triple4020sekTarSEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPError) );
112 Triple4020sekTarSEPDEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEP) );
113 Triple4020sekTarSEPDEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEPError) );
114 Triple4020sekTarFWHM.insert( std::pair<Double_t,Double_t>(Energy,FWHM) );
115 Triple4020sekTarFWHMError.insert( std::pair<Double_t,Double_t>(Energy,FWHMError) );
120 Triple4020sekTar1.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEff) );
121 Triple4020sekTar1Error.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffError) );
122 Triple4020sekTar1SEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEP) );
123 Triple4020sekTar1SEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPError) );
124 Triple4020sekTar1SEPDEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEP) );
125 Triple4020sekTar1SEPDEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEPError) );
126 Triple4020sekTar1FWHM.insert( std::pair<Double_t,Double_t>(Energy,FWHM) );
127 Triple4020sekTar1FWHMError.insert( std::pair<Double_t,Double_t>(Energy,FWHMError) );
132 Triple4020.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEff) );
133 Triple4020Error.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffError) );
134 Triple4020SEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEP) );
135 Triple4020SEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPError) );
136 Triple4020SEPDEP.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEP) );
137 Triple4020SEPDEPError.insert( std::pair<Double_t,Double_t>(Energy,FullEnergyPeakEffSEPDEPError) );
138 Triple4020FWHM.insert( std::pair<Double_t,Double_t>(Energy,FWHM) );
139 Triple4020FWHMError.insert( std::pair<Double_t,Double_t>(Energy,FWHMError) );
146 const int n = Triple4020sekTar.size();
174 cout <<
"Arrays filled!"<<endl;
177 TCanvas *
c1 =
new TCanvas(
"c1",
"A Simple Graph with error bars",200,10,900,700);
178 TPad *pad1 =
new TPad(
"pad1",
"",0,0,1,1);
179 TPad *pad2 =
new TPad(
"pad2",
"",0,0,1,1);
180 pad2->SetFillStyle(4000);
184 TGraphErrors *graphTr4020sekTar =
new TGraphErrors(n,x,yTriple4020sekTar,0,yTriple4020sekTarError);
185 TGraphErrors *graphTr4020sekTarSEP =
new TGraphErrors(n,x,yTriple4020sekTarSEP,0,yTriple4020sekTarSEPError);
186 TGraphErrors *graphTr4020sekTarSEPDEP =
new TGraphErrors(n,x,yTriple4020sekTarSEPDEP,0,yTriple4020sekTarSEPDEPError);
187 TGraphErrors *graphTr4020 =
new TGraphErrors(n,x,yTriple4020,0, yTriple4020Error);
188 TGraphErrors *graphTr4010sekTar =
new TGraphErrors(n,x,yTriple4010sekTar,0, yTriple4010sekTarError);
189 TGraphErrors *graphTr4010 =
new TGraphErrors(n,x,yTriple4010,0,yTriple4010Error);
190 TGraphErrors *graphTr4020sekTar1 =
new TGraphErrors(n,x,yTriple4020sekTar1,0,yTriple4020sekTar1Error);
193 for (Int_t
i = 0;
i<
n;
i++)
194 yEffLoss4020[
i]= (yTriple4020[
i]-yTriple4020sekTar[
i])/ yTriple4020[
i]*100;
195 TGraph *graphEffLoss4020 =
new TGraphErrors(n,x,yEffLoss4020);
198 graphTr4020sekTar->SetTitle(
"");
199 graphTr4020sekTar->GetHistogram()->SetXTitle(
"Energy [MeV]");
201 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetTitleSize(TitleLabelSize);
202 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetTitleOffset(0.9);
203 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetLabelSize(TitleLabelSize);
204 graphTr4020sekTar->GetHistogram()->SetYTitle(
"Efficiency [%]");
206 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetTitleSize(TitleLabelSize);
207 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetTitleOffset(0.9);
208 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetLabelSize(TitleLabelSize);
211 Size_t dMarkerSize = 4;
212 graphTr4020sekTar->SetMarkerColor(1);
213 graphTr4020sekTar->SetMarkerSize(dMarkerSize/2);
214 graphTr4020sekTar->SetMarkerStyle(20);
215 graphTr4020sekTar->SetLineColor(1);
216 graphTr4020sekTar->SetLineStyle(2);
218 graphTr4020->SetMarkerColor(kRed);
219 graphTr4020->SetMarkerSize(dMarkerSize/2);
220 graphTr4020->SetMarkerStyle(20);
221 graphTr4020->SetLineColor(kRed);
222 graphTr4020sekTar->SetLineStyle(2);
224 graphTr4010sekTar->SetMarkerColor(kGreen);
225 graphTr4010sekTar->SetMarkerSize(dMarkerSize/2);
226 graphTr4010sekTar->SetMarkerStyle(20);
227 graphTr4010sekTar->SetLineColor(kGreen);
228 graphTr4020sekTar->SetLineStyle(2);
230 graphTr4010->SetMarkerColor(kBlue);
231 graphTr4010->SetMarkerSize(dMarkerSize/2);
232 graphTr4010->SetMarkerStyle(20);
233 graphTr4010->SetLineColor(kBlue);
234 graphTr4020sekTar->SetLineStyle(2);
240 graphEffLoss4020->SetMarkerColor(kGreen+3);
241 graphEffLoss4020->SetMarkerSize((dMarkerSize+1)/2);
242 graphEffLoss4020->SetMarkerStyle(22);
243 graphEffLoss4020->SetLineColor(kGreen+3);
244 graphEffLoss4020->SetLineStyle(2);
246 graphTr4020sekTar->GetYaxis()->SetRangeUser(0,9);
247 graphEffLoss4020->GetYaxis()->SetRangeUser(0,20);
248 graphEffLoss4020->GetHistogram()->SetMaximum(0);
249 graphEffLoss4020->GetHistogram()->SetMaximum(11);
251 graphTr4020sekTar->GetHistogram()->SetMinimum(0);
252 graphTr4020sekTar->GetHistogram()->SetMaximum(11);
255 Double_t ymax = graphEffLoss4020->GetYaxis()->GetXmax()*2;
257 Double_t xmin = graphTr4020sekTar ->GetXaxis()->GetXmin();
258 Double_t xmax = graphTr4020sekTar->GetXaxis()->GetXmax();
260 pad2->Range(xmin-0.1*dx,ymin-0.1*dy,xmax+0.1*dx,ymax+0.1*dy);
265 graphTr4020sekTar->Draw(
"APL");
271 TColor *HIMBlue =
new TColor(1780,0,92./256,158./256);
272 TBox *Box =
new TBox(1,0,8,10);
273 Box->SetFillColor(1780);
274 Box->SetFillStyle(3004);
276 if (useExpectedRange) Box->Draw();
278 TLatex *Text =
new TLatex(0.00115*1000,0.7,
"expected range of #gamma in experiment");
279 Text->SetTextColor(1780);
280 if (useExpectedRange)Text->Draw();
282 graphTr4020sekTar->Draw(
"PL");
283 TLegend *
leg =
new TLegend(0.5,0.9,0.85,0.65);
284 leg->SetFillColor(kWhite);
285 leg ->
AddEntry(graphTr4020sekTar,
"#splitline{with target and}{tracking system}",
"p");
288 graphTr4020->Draw(
"PL");
289 leg ->
AddEntry(graphTr4020,
"#splitline{without target and}{tracking system}",
"p");
293 leg ->
AddEntry(graphTr4010sekTar,
"#splitline{with target and}{tracking system}, offset 10",
"p");
294 graphTr4010sekTar->Draw(
"PL");
298 leg ->
AddEntry(graphTr4010,
"#splitline{without target and}{tracking system}, offset 10",
"p");
299 graphTr4010->Draw(
"PL");
303 graphEffLoss4020->Draw(
"PL");
305 TGaxis *
axis =
new TGaxis(xmax,ymin,xmax,ymax,ymin,ymax,510,
"+L");
306 axis->SetTitle(
"Rel. loss of #gamma due to material [%]");
307 axis->SetTitleSize(0.06);
308 axis->SetTitleOffset(0.6);
309 axis->SetLabelSize(0.045);
312 axis->SetLabelColor(kGreen+3);
314 TArrow *ArrowLoss =
new TArrow(8.5*1000,3,10.75*1000.75,3,0.02,
"|>");
315 ArrowLoss->SetLineColor(kGreen+3);
316 ArrowLoss->SetLineWidth(2);
317 ArrowLoss->SetFillColor(kGreen+3);
318 ArrowLoss->SetAngle(30);
320 TArrow *ArrowFEPF =
new TArrow(.25*1000,6.5,2.5*1000,6.5,0.02,
"<|");
321 ArrowFEPF->SetLineColor(kRed);
322 ArrowFEPF->SetLineWidth(2);
323 ArrowFEPF->SetFillColor(kRed);
324 ArrowFEPF->SetAngle(30);
329 c1->SaveAs(
"~/pictures/Compare_FEP-Eff.png");
331 TCanvas *
c2 =
new TCanvas(
"c2",
"A Simple Graph with error bars",200,10,900,700);
334 TGraphErrors *graphTr4020sekTarFWHM =
new TGraphErrors(n,x,yTriple4020sekTarFWHM,0, yTriple4020sekTarFWHMError);
335 TGraphErrors *graphTr4020FWHM =
new TGraphErrors(n,x,yTriple4020FWHM, 0, yTriple4020FWHMError);
337 graphTr4020sekTarFWHM->SetTitle(
"Simulation of resolution");
338 graphTr4020sekTarFWHM->GetHistogram()->SetXTitle(
"#gamma energy [MeV]");
339 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->CenterTitle();
340 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetTitleSize(0.045);
341 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetTitleOffset(0.75);
342 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetLabelSize(0.045);
343 graphTr4020sekTarFWHM->GetHistogram()->SetYTitle(
"FWHM [keV]");
344 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->CenterTitle();
345 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetTitleSize(0.045);
346 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetTitleOffset(0.6);
347 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetLabelSize(0.045);
349 Size_t dMarkerSize = 2;
350 graphTr4020sekTarFWHM->SetMarkerColor(1);
351 graphTr4020sekTarFWHM->SetMarkerSize(dMarkerSize/2);
352 graphTr4020sekTarFWHM->SetMarkerStyle(20);
353 graphTr4020sekTarFWHM->SetLineColor(1);
354 graphTr4020sekTarFWHM->SetLineStyle(2);
356 graphTr4020FWHM->SetMarkerColor(kRed);
357 graphTr4020FWHM->SetMarkerSize(dMarkerSize/2);
358 graphTr4020FWHM->SetMarkerStyle(20);
359 graphTr4020FWHM->SetLineColor(kRed);
360 graphTr4020sekTarFWHM->SetLineStyle(2);
362 graphTr4020sekTarFWHM->Draw(
"APL");
364 TLegend *leg2 =
new TLegend(0.15,0.9,0.5,0.65);
365 leg2->SetFillColor(kWhite);
366 leg2 ->
AddEntry(graphTr4020sekTarFWHM,
"#splitline{with target and}{tracking system}",
"p");
369 graphTr4020FWHM->Draw(
"PL");
370 leg2 ->
AddEntry(graphTr4020FWHM,
"#splitline{without target and}{tracking system}",
"p");
373 c2->SaveAs(
"~/pictures/Compare_FWHM.png");
374 andi::setCustomStyle();
376 TCanvas *
c3 =
new TCanvas(
"c3",
"A Simple Graph with error bars",200,10,900,700);
379 graphTr4020sekTarSEP->SetMarkerColor(2);
380 graphTr4020sekTarSEP->SetMarkerSize(dMarkerSize/2);
381 graphTr4020sekTarSEP->SetMarkerStyle(20);
382 graphTr4020sekTarSEP->SetLineColor(1);
383 graphTr4020sekTarSEP->SetLineStyle(2);
384 graphTr4020sekTarSEPDEP->SetMarkerColor(4);
385 graphTr4020sekTarSEPDEP->SetMarkerSize(dMarkerSize/2);
386 graphTr4020sekTarSEPDEP->SetMarkerStyle(20);
387 graphTr4020sekTarSEPDEP->SetLineColor(1);
388 graphTr4020sekTarSEPDEP->SetLineStyle(2);
390 graphTr4020sekTar->GetYaxis()->SetRangeUser(0,9);
391 graphTr4020sekTar->Draw(
"ALP");
394 TLegend *leg3 =
new TLegend(0.55,0.9,0.9,0.65);
395 leg3->SetFillColor(kWhite);
396 leg3 ->
AddEntry(graphTr4020sekTar,
"full energy",
"p");
397 leg3 ->
AddEntry(graphTr4020sekTarSEP,
"+ single escape",
"p");
398 leg3 ->
AddEntry(graphTr4020sekTarSEPDEP,
"+ double escape",
"p");
401 c3->SaveAs(
"~/pictures/Compare_FWHMSEPDEP.png");
404 TCanvas *
c4 =
new TCanvas(
"c4",
"A Simple Graph with error bars",200,10,900,700);
406 graphTr4020sekTar1->SetMarkerColor(2);
407 graphTr4020sekTar1->SetMarkerSize(dMarkerSize/2);
408 graphTr4020sekTar1->SetMarkerStyle(20);
409 graphTr4020sekTar1->SetLineColor(1);
410 graphTr4020sekTar1->SetLineStyle(2);
413 graphTr4020sekTar->Draw(
"ALP");
414 graphTr4020sekTar1->Draw(
"PL");
415 TLegend *leg4 =
new TLegend(0.65,0.9,0.9,0.65);
416 leg4->SetFillColor(kWhite);
417 leg4 ->
AddEntry(graphTr4020sekTar1,
"old geometry",
"p");
418 leg4 ->
AddEntry(graphTr4020sekTar,
"improved geometry",
"p");
422 c4->SaveAs(
"~/pictures/Compare_geo1geo3.png");
int Pic_Compare_FEP_Eff(bool Plot20=true, bool Plot10SekTar=false, bool Plot10=false)
Double_t * MapsToArrays(std::map< Double_t, Double_t > Map, const int ArraySize, bool isFirst=0, Double_t *x=0, Double_t *Dx=0)
copies AddEntry(hz_h,"All copies (G3)","l")