15 std::map<Double_t,Double_t>::iterator it;
18 for (it=Map.begin(); it!=Map.end(); ++it)
20 std::cout << it->first <<
" => " << it->second <<
'\n';
32 int Pic_FEP-
Eff_lE(
bool Plot20 =
true,
bool Plot10SekTar =
false,
bool Plot10 =
false)
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/FittedDataLowEnergy.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 )
85 cout <<
"\t"<< Geometry <<
"\t"<< Sektar <<
"\t"<< Energy <<
"\t"<< nEvents <<
"\t"<< FullEnergyPeakEff <<
"\t"<< FullEnergyPeakEffError <<
"\t"<<FWHM <<
"\t"<< FWHMError<<
"\t"<< FullEnergyPeakEffSEP <<
"\t"<< FullEnergyPeakEffSEPError<<
"\t"<<FullEnergyPeakEffSEPDEP <<
"\t"<< FullEnergyPeakEffSEPDEPError <<
"\t"<<endl;
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(
"Simulation of full-energy-peak-efficiency");
199 graphTr4020sekTar->GetHistogram()->SetXTitle(
"#gamma energy [keV]");
200 graphTr4020sekTar->GetHistogram()->GetXaxis()->CenterTitle();
201 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetTitleSize(0.06);
202 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetTitleOffset(0.75);
203 graphTr4020sekTar->GetHistogram()->GetXaxis()->SetLabelSize(0.045);
204 graphTr4020sekTar->GetHistogram()->SetYTitle(
"Full-energy-peak-efficiency [%]");
205 graphTr4020sekTar->GetHistogram()->GetYaxis()->CenterTitle();
206 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetTitleSize(0.06);
207 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetTitleOffset(0.6);
208 graphTr4020sekTar->GetHistogram()->GetYaxis()->SetLabelSize(0.045);
210 Size_t dMarkerSize = 2;
211 graphTr4020sekTar->SetMarkerColor(1);
212 graphTr4020sekTar->SetMarkerSize(dMarkerSize/2);
213 graphTr4020sekTar->SetMarkerStyle(20);
214 graphTr4020sekTar->SetLineColor(1);
215 graphTr4020sekTar->SetLineStyle(2);
217 graphTr4020->SetMarkerColor(kRed);
218 graphTr4020->SetMarkerSize(dMarkerSize/2);
219 graphTr4020->SetMarkerStyle(20);
220 graphTr4020->SetLineColor(kRed);
221 graphTr4020sekTar->SetLineStyle(2);
223 graphTr4010sekTar->SetMarkerColor(kGreen);
224 graphTr4010sekTar->SetMarkerSize(dMarkerSize/2);
225 graphTr4010sekTar->SetMarkerStyle(20);
226 graphTr4010sekTar->SetLineColor(kGreen);
227 graphTr4020sekTar->SetLineStyle(2);
229 graphTr4010->SetMarkerColor(kBlue);
230 graphTr4010->SetMarkerSize(dMarkerSize/2);
231 graphTr4010->SetMarkerStyle(20);
232 graphTr4010->SetLineColor(kBlue);
233 graphTr4020sekTar->SetLineStyle(2);
239 graphEffLoss4020->SetMarkerColor(kGreen+3);
240 graphEffLoss4020->SetMarkerSize((dMarkerSize+1)/2);
241 graphEffLoss4020->SetMarkerStyle(22);
242 graphEffLoss4020->SetLineColor(kGreen+3);
243 graphEffLoss4020->SetLineStyle(2);
245 graphTr4020sekTar->GetYaxis()->SetRangeUser(0,12);
246 graphEffLoss4020->GetYaxis()->SetRangeUser(0,20);
247 graphEffLoss4020->GetHistogram()->SetMaximum(0);
248 graphEffLoss4020->GetHistogram()->SetMaximum(11);
250 graphTr4020sekTar->GetHistogram()->SetMinimum(0);
251 graphTr4020sekTar->GetHistogram()->SetMaximum(11);
254 Double_t ymax = graphEffLoss4020->GetYaxis()->GetXmax()*2;
256 Double_t xmin = graphTr4020sekTar ->GetXaxis()->GetXmin();
257 Double_t xmax = graphTr4020sekTar->GetXaxis()->GetXmax();
259 pad2->Range(xmin-0.1*dx,ymin-0.1*dy,xmax+0.1*dx,ymax+0.1*dy);
264 graphTr4020sekTar->Draw(
"APL");
270 TColor *HIMBlue =
new TColor(1780,0,92./256,158./256);
271 TBox *Box =
new TBox(1,0,8,10);
272 Box->SetFillColor(1780);
273 Box->SetFillStyle(3004);
275 if (useExpectedRange) Box->Draw();
277 TLatex *Text =
new TLatex(0.00115*1000,0.7,
"expected range of #gamma in experiment");
278 Text->SetTextColor(1780);
279 if (useExpectedRange)Text->Draw();
281 graphTr4020sekTar->Draw(
"PL");
282 TLegend *
leg =
new TLegend(0.5,0.9,0.85,0.65);
283 leg->SetFillColor(kWhite);
284 leg ->
AddEntry(graphTr4020sekTar,
"#splitline{with target and}{tracking system}",
"p");
287 graphTr4020->Draw(
"PL");
288 leg ->
AddEntry(graphTr4020,
"#splitline{without target and}{tracking system}",
"p");
292 leg ->
AddEntry(graphTr4010sekTar,
"#splitline{with target and}{tracking system}, offset 10",
"p");
293 graphTr4010sekTar->Draw(
"PL");
297 leg ->
AddEntry(graphTr4010,
"#splitline{without target and}{tracking system}, offset 10",
"p");
298 graphTr4010->Draw(
"PL");
302 graphEffLoss4020->Draw(
"PL");
304 TGaxis *
axis =
new TGaxis(xmax,ymin,xmax,ymax,ymin,ymax,510,
"+L");
305 axis->SetTitle(
"Rel. loss of #gamma due to material [%]");
306 axis->SetTitleSize(0.06);
307 axis->SetTitleOffset(0.6);
308 axis->SetLabelSize(0.045);
311 axis->SetLabelColor(kGreen+3);
313 TArrow *ArrowLoss =
new TArrow(8.5*1000,3,10.75*1000.75,3,0.02,
"|>");
314 ArrowLoss->SetLineColor(kGreen+3);
315 ArrowLoss->SetLineWidth(2);
316 ArrowLoss->SetFillColor(kGreen+3);
317 ArrowLoss->SetAngle(30);
319 TArrow *ArrowFEPF =
new TArrow(.25*1000,6.5,2.5*1000,6.5,0.02,
"<|");
320 ArrowFEPF->SetLineColor(kRed);
321 ArrowFEPF->SetLineWidth(2);
322 ArrowFEPF->SetFillColor(kRed);
323 ArrowFEPF->SetAngle(30);
328 c1->SaveAs(
"~/pictures/Compare_FEP-Eff.png");
330 TCanvas *
c2 =
new TCanvas(
"c2",
"A Simple Graph with error bars",200,10,900,700);
333 TGraphErrors *graphTr4020sekTarFWHM =
new TGraphErrors(n,x,yTriple4020sekTarFWHM,0, yTriple4020sekTarFWHMError);
334 TGraphErrors *graphTr4020FWHM =
new TGraphErrors(n,x,yTriple4020FWHM, 0, yTriple4020FWHMError);
336 graphTr4020sekTarFWHM->SetTitle(
"Simulation of resolution");
337 graphTr4020sekTarFWHM->GetHistogram()->SetXTitle(
"#gamma energy [keV]");
338 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->CenterTitle();
339 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetTitleSize(0.06);
340 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetTitleOffset(0.75);
341 graphTr4020sekTarFWHM->GetHistogram()->GetXaxis()->SetLabelSize(0.045);
342 graphTr4020sekTarFWHM->GetHistogram()->SetYTitle(
"FWHM [keV]");
343 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->CenterTitle();
344 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetTitleSize(0.06);
345 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetTitleOffset(0.6);
346 graphTr4020sekTarFWHM->GetHistogram()->GetYaxis()->SetLabelSize(0.045);
348 Size_t dMarkerSize = 2;
349 graphTr4020sekTarFWHM->SetMarkerColor(1);
350 graphTr4020sekTarFWHM->SetMarkerSize(dMarkerSize/2);
351 graphTr4020sekTarFWHM->SetMarkerStyle(20);
352 graphTr4020sekTarFWHM->SetLineColor(1);
353 graphTr4020sekTarFWHM->SetLineStyle(2);
355 graphTr4020FWHM->SetMarkerColor(kRed);
356 graphTr4020FWHM->SetMarkerSize(dMarkerSize/2);
357 graphTr4020FWHM->SetMarkerStyle(20);
358 graphTr4020FWHM->SetLineColor(kRed);
359 graphTr4020sekTarFWHM->SetLineStyle(2);
361 graphTr4020sekTarFWHM->Draw(
"APL");
363 TLegend *leg2 =
new TLegend(0.15,0.9,0.5,0.65);
364 leg2->SetFillColor(kWhite);
365 leg2 ->
AddEntry(graphTr4020sekTarFWHM,
"#splitline{with target and}{tracking system}",
"p");
368 graphTr4020FWHM->Draw(
"PL");
369 leg2 ->
AddEntry(graphTr4020FWHM,
"#splitline{without target and}{tracking system}",
"p");
372 c2->SaveAs(
"~/pictures/Compare_FWHM.png");
375 TCanvas *
c3 =
new TCanvas(
"c3",
"A Simple Graph with error bars",200,10,900,700);
377 graphTr4020sekTarSEP->SetMarkerColor(2);
378 graphTr4020sekTarSEP->SetMarkerSize(dMarkerSize/2);
379 graphTr4020sekTarSEP->SetMarkerStyle(20);
380 graphTr4020sekTarSEP->SetLineColor(1);
381 graphTr4020sekTarSEP->SetLineStyle(2);
382 graphTr4020sekTarSEPDEP->SetMarkerColor(4);
383 graphTr4020sekTarSEPDEP->SetMarkerSize(dMarkerSize/2);
384 graphTr4020sekTarSEPDEP->SetMarkerStyle(20);
385 graphTr4020sekTarSEPDEP->SetLineColor(1);
386 graphTr4020sekTarSEPDEP->SetLineStyle(2);
388 graphTr4020sekTar->Draw(
"ALP");
389 graphTr4020sekTarSEP->Draw(
"PL");
390 graphTr4020sekTarSEPDEP->Draw(
"PL");
391 TLegend *leg3 =
new TLegend(0.65,0.9,0.9,0.65);
392 leg3->SetFillColor(kWhite);
393 leg3 ->
AddEntry(graphTr4020sekTar,
"only full energy",
"p");
394 leg3 ->
AddEntry(graphTr4020sekTarSEP,
"added single escape",
"p");
395 leg3 ->
AddEntry(graphTr4020sekTarSEPDEP,
"#splitline{added single escape}{and double escape}",
"p");
398 c3->SaveAs(
"~/pictures/Compare_FWHMSEPDEP.png");
401 TCanvas *
c4 =
new TCanvas(
"c4",
"A Simple Graph with error bars",200,10,900,700);
403 graphTr4020sekTar1->SetMarkerColor(2);
404 graphTr4020sekTar1->SetMarkerSize(dMarkerSize/2);
405 graphTr4020sekTar1->SetMarkerStyle(20);
406 graphTr4020sekTar1->SetLineColor(1);
407 graphTr4020sekTar1->SetLineStyle(2);
410 graphTr4020sekTar->Draw(
"ALP");
411 graphTr4020sekTar1->Draw(
"PL");
412 TLegend *leg4 =
new TLegend(0.65,0.9,0.9,0.65);
413 leg4->SetFillColor(kWhite);
414 leg4 ->
AddEntry(graphTr4020sekTar1,
"old geometry",
"p");
415 leg4 ->
AddEntry(graphTr4020sekTar,
"improved geometry",
"p");
419 c4->SaveAs(
"~/pictures/Compare_geo1geo3.png");
int Pic_FEP Eff_lE(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")