11 gStyle->SetPalette(1,0);
12 gStyle->SetOptStat(kFALSE);
14 gStyle->SetPadRightMargin(0.15);
15 gStyle->SetPadLeftMargin(0.15);
16 gStyle->SetPadBottomMargin(0.15);
20 Int_t
const maxruns=100;
32 Float_t eff_up1[maxruns]={0,0,0,0,0,0};
33 Float_t eff_up2[maxruns]={0,0,0,0,0,0};
34 Float_t eff_up3[maxruns]={0,0,0,0,0,0};
35 Float_t eff_up4[maxruns]={0,0,0,0,0,0};
37 Float_t eff_down1[maxruns]={0,0,0,0,0,0};
38 Float_t eff_down2[maxruns]={0,0,0,0,0,0};
39 Float_t eff_down3[maxruns]={0,0,0,0,0,0};
40 Float_t eff_down4[maxruns]={0,0,0,0,0,0};
109 TString runlistfile=
"plot_bcal_hadronic_eff.list";
111 runlist.open (runlistfile.Data());
113 cout <<
"ERROR: Failed to open data file= " << runlistfile.Data() << endl;
117 cout <<
"Open data file= " << runlistfile.Data() << endl;
119 Float_t runnum[maxruns];
121 map<Int_t, TString> runs;
126 while (line.ReadLine(runlist)){
127 TObjArray *tokens = line.Tokenize(
" ");
128 Int_t ntokens = tokens->GetEntries();
129 cout <<
" ndx=" << ndx << endl;
131 nruns = ((TObjString*)tokens->At(0))->GetString().Atof();
136 TString
run = ((TObjString*)tokens->At(0))->GetString();
148 for (Int_t jrun=0; jrun<nruns; jrun++) {
151 for (layer=1; layer<5; layer++) {
153 datfile =
"dat/R0"+runs[jrun]+
"_layer"+TString::Itoa(layer,10)+
"_cut"+TString::Itoa(coinc_cut,10)+
".dat";
155 cout <<
"Opening file: " << datfile.Data() << endl;
158 file.open (datfile.Data());
160 cout <<
"ERROR: Failed to open data file= " << datfile.Data() << endl;
165 while (line.ReadLine(file)){
167 cout <<
"line=" << line << endl;
169 TObjArray *tokens = line.Tokenize(
" ");
170 Int_t ntokens = tokens->GetEntries();
174 Float_t
run = ((TObjString*)tokens->At(1))->GetString().Atof();
175 Float_t xlayer = ((TObjString*)tokens->At(3))->GetString().Atof();
176 Float_t xcoinc_cut = ((TObjString*)tokens->At(5))->GetString().Atof();
177 cout <<
" run=" << run <<
" xlayer=" << xlayer <<
" xcoinc_cut=" << xcoinc_cut << endl;
181 Float_t eff_up = ((TObjString*)tokens->At(7))->GetString().Atof();
182 Float_t eff_down = ((TObjString*)tokens->At(9))->GetString().Atof();
183 cout <<
" eff_up=" << eff_up <<
" eff_down=" << eff_down << endl;
187 eff_up1[jrun] = eff_up;
188 eff_down1[jrun] = eff_down;
191 eff_up2[jrun] = eff_up;
192 eff_down2[jrun] = eff_down;
195 eff_up3[jrun] = eff_up;
196 eff_down3[jrun] = eff_down;
199 eff_up4[jrun] = eff_up;
200 eff_down4[jrun] = eff_down;
203 cout <<
"*** Illegal layer=" << layer << endl;
217 cout <<
"up1[0]=" << eff_up1[0] << endl;
218 cout <<
"up1[1]=" << eff_up1[1] << endl;
219 cout <<
"up1[2]=" << eff_up1[2] << endl;
220 cout <<
" nruns=" << nruns << endl;
222 for (j=0; j<nruns; j++) {
223 cout <<
"j=" << j <<
" runnum=" << runnum[j] <<
" eff=" << eff_up1[j] <<
" " << eff_up2[j] <<
" " << eff_up3[j] <<
" " << eff_up4[j] << endl;
226 TGraph *gr_eff_up1 =
new TGraph(nruns,runnum,eff_up1);
227 TGraph *gr_eff_up2 =
new TGraph(nruns,runnum,eff_up2);
228 TGraph *gr_eff_up3 =
new TGraph(nruns,runnum,eff_up3);
229 TGraph *gr_eff_up4 =
new TGraph(nruns,runnum,eff_up4);
231 TGraph *gr_eff_down1 =
new TGraph(nruns,runnum,eff_down1);
232 TGraph *gr_eff_down2 =
new TGraph(nruns,runnum,eff_down2);
233 TGraph *gr_eff_down3 =
new TGraph(nruns,runnum,eff_down3);
234 TGraph *gr_eff_down4 =
new TGraph(nruns,runnum,eff_down4);
237 TCanvas *
c0 =
new TCanvas(
"c0",
"c0",200,10,1000,700);
244 gr_eff_up1->SetTitle(
"");
246 gr_eff_up1->GetYaxis()->SetRangeUser(
ymin,
ymax);
247 gr_eff_up1->GetXaxis()->SetTitleSize(0.05);
248 gr_eff_up1->GetYaxis()->SetTitleSize(0.05);
249 gr_eff_up1->GetYaxis()->SetTitle(
"Efficiency");
250 gr_eff_up1->GetXaxis()->SetTitle(
"Run Number");
251 gr_eff_up1->SetMarkerColor(4);
252 gr_eff_up1->SetMarkerStyle(20);
253 gr_eff_up1->Draw(
"Ap");
255 gr_eff_up2->SetMarkerColor(2);
256 gr_eff_up2->SetMarkerStyle(20);
257 gr_eff_up2->Draw(
"psame");
259 gr_eff_up3->SetMarkerColor(1);
260 gr_eff_up3->SetMarkerStyle(20);
261 gr_eff_up3->Draw(
"psame");
263 gr_eff_up4->SetMarkerColor(3);
264 gr_eff_up4->SetMarkerStyle(20);
265 gr_eff_up4->Draw(
"psame");
267 TLegend *
leg =
new TLegend(0.65,0.45,0.8,0.6);
268 leg->AddEntry(gr_eff_up1,
"Layer 1",
"p");
269 leg->AddEntry(gr_eff_up2,
"Layer 2",
"p");
270 leg->AddEntry(gr_eff_up3,
"Layer 3",
"p");
271 leg->AddEntry(gr_eff_up4,
"Layer 4",
"p");
275 TCanvas *
c1 =
new TCanvas(
"c1",
"c1",200,10,1000,700);
277 TGraph *gr_eff_up1_copy = (TGraph*)gr_eff_up1->Clone(
"gr_eff_up1_copy");
292 gr_eff_up1_copy->GetYaxis()->SetRangeUser(0.9,1.0);
293 gr_eff_up1_copy->GetXaxis()->SetRangeUser(xmin,xmax);
296 gr_eff_up1_copy->Draw(
"Ap");
297 gr_eff_up2->Draw(
"psame");
298 gr_eff_up3->Draw(
"psame");
299 gr_eff_up4->Draw(
"psame");
301 TLegend *leg1 =
new TLegend(0.7,0.75,0.85,0.9);
302 leg1->AddEntry(gr_eff_up1,
"Layer 1",
"p");
303 leg1->AddEntry(gr_eff_up2,
"Layer 2",
"p");
304 leg1->AddEntry(gr_eff_up3,
"Layer 3",
"p");
305 leg1->AddEntry(gr_eff_up4,
"Layer 4",
"p");
309 TLine *linea =
new TLine(41200,
ymin,41200,
ymax);
310 linea->SetLineWidth(2);
313 TLatex *
t1 =
new TLatex(40900,1.001,
"ver07");
314 t1->SetTextSize(0.03);
316 t1->DrawLatex(41400,1.001,
"ver11");
319 linea =
new TLine(40700,0.95,41700,0.95);
352 c0->SaveAs(
"plot_bcal_hadronic_eff.pdf(");
353 c1->SaveAs(
"plot_bcal_hadronic_eff.pdf)");
void plot_bcal_hadronic_eff(void)