24 bool check = (type!=
"phase")&&(type!=
"time")&&(type!=
"amp");
25 check = check&&(type!=
"dphase50")&&(type!=
"dtime50")&&(type!=
"damp50");
26 check = check&&(type!=
"dphase90")&&(type!=
"dtime90")&&(type!=
"damp90");
27 if(check) {cout <<
"DrawSensitivityPE.C - Input type option error" << endl;
exit(1);}
43 in_ff.open(ifname_ff.Data(),
ios::in);
44 if (!in_ff.good()) {cout <<
"DrawSensitivityPE.C - Error Opening File : " << ifname_ff.Data() << endl;
exit(1);}
50 in_ff >> gw_name[
N] >> dummy >> dummy
51 >> dummy >> dff_phase[
N] >> dummy >> dff_time[
N] >> dummy >> dff_amp[
N]
52 >> dummy >> ff_dphase50[
N] >> dummy >> ff_dtime50[
N] >> dummy >> ff_damp50[
N]
53 >> dummy >> ff_dphase90[
N] >> dummy >> ff_dtime90[
N] >> dummy >> ff_damp90[
N];
54 if(!in_ff.good())
break;
66 in_of.open(ifname_of.Data(),
ios::in);
67 if (!in_of.good()) {cout <<
"DrawSensitivityPE.C - Error Opening File : " << ifname_of.Data() << endl;
exit(1);}
73 in_of >> gw_name[
N] >> dummy >> dummy
74 >> dummy >> dof_phase[
N] >> dummy >> dof_time[
N] >> dummy >> dof_amp[
N]
75 >> dummy >> of_dphase50[
N] >> dummy >> of_dtime50[
N] >> dummy >> of_damp50[
N]
76 >> dummy >> of_dphase90[
N] >> dummy >> of_dtime90[
N] >> dummy >> of_damp90[
N];
77 if(!in_of.good())
break;
88 in_re.open(ifname_re.Data(),
ios::in);
89 if (!in_re.good()) {cout <<
"DrawSensitivityPE.C - Error Opening File : " << ifname_re.Data() << endl;
exit(1);}
95 in_re >> gw_name[
N] >> dummy >> dummy
96 >> dummy >> dre_phase[
N] >> dummy >> dre_time[
N] >> dummy >> dre_amp[
N]
97 >> dummy >> re_dphase50[
N] >> dummy >> re_dtime50[
N] >> dummy >> re_damp50[
N]
98 >> dummy >> re_dphase90[
N] >> dummy >> re_dtime90[
N] >> dummy >> re_damp90[
N];
99 if(!in_re.good())
break;
102 re_dtime50[
N]*=1000.;
103 re_dtime90[
N]*=1000.;
109 TCanvas*
canvas =
new TCanvas(
"sensitivity",
"sensitivity", 300,40, 1000, 600);
112 gStyle->SetGridStyle(3);
113 gStyle->SetGridWidth(1);
114 gStyle->SetFrameBorderMode(0);
115 gStyle->SetTitleTextColor(kBlack);
116 gStyle->SetTitleFont(12,
"D");
118 double xmax=0,ymax=0,ymin=1e20;
119 for(
int i=0;
i<NFF;
i++) {
121 if(dff_phase[
i]<ymin) ymin=dff_phase[
i];
122 if(dff_phase[
i]>ymax) ymax=dff_phase[
i];
123 if(dof_phase[
i]<ymin) ymin=dof_phase[
i];
124 if(dof_phase[
i]>ymax) ymax=dof_phase[
i];
125 if(dre_phase[
i]<ymin) ymin=dre_phase[
i];
126 if(dre_phase[
i]>ymax) ymax=dre_phase[
i];
129 if(dff_time[
i]<ymin) ymin=dff_time[
i];
130 if(dff_time[
i]>ymax) ymax=dff_time[
i];
131 if(dof_time[
i]<ymin) ymin=dof_time[
i];
132 if(dof_time[
i]>ymax) ymax=dof_time[
i];
133 if(dre_time[
i]<ymin) ymin=dre_time[
i];
134 if(dre_time[
i]>ymax) ymax=dre_time[
i];
137 if(dff_amp[
i]<ymin) ymin=dff_amp[
i];
138 if(dff_amp[
i]>ymax) ymax=dff_amp[
i];
139 if(dof_amp[
i]<ymin) ymin=dof_amp[
i];
140 if(dof_amp[
i]>ymax) ymax=dof_amp[
i];
141 if(dre_amp[
i]<ymin) ymin=dre_amp[
i];
142 if(dre_amp[
i]>ymax) ymax=dre_amp[
i];
144 if(type==
"dphase50") {
145 if(ff_dphase50[
i]<ymin) ymin=ff_dphase50[
i];
146 if(ff_dphase50[
i]>ymax) ymax=ff_dphase50[
i];
147 if(of_dphase50[
i]<ymin) ymin=of_dphase50[
i];
148 if(of_dphase50[
i]>ymax) ymax=of_dphase50[
i];
149 if(re_dphase50[
i]<ymin) ymin=re_dphase50[
i];
150 if(re_dphase50[
i]>ymax) ymax=re_dphase50[
i];
152 if(type==
"dtime50") {
153 if(ff_dtime50[
i]<ymin) ymin=ff_dtime50[
i];
154 if(ff_dtime50[
i]>ymax) ymax=ff_dtime50[
i];
155 if(of_dtime50[
i]<ymin) ymin=of_dtime50[
i];
156 if(of_dtime50[
i]>ymax) ymax=of_dtime50[
i];
157 if(re_dtime50[
i]<ymin) ymin=re_dtime50[
i];
158 if(re_dtime50[
i]>ymax) ymax=re_dtime50[
i];
161 if(ff_damp50[
i]<ymin) ymin=ff_damp50[
i];
162 if(ff_damp50[
i]>ymax) ymax=ff_damp50[
i];
163 if(of_damp50[
i]<ymin) ymin=of_damp50[
i];
164 if(of_damp50[
i]>ymax) ymax=of_damp50[
i];
165 if(re_damp50[
i]<ymin) ymin=re_damp50[
i];
166 if(re_damp50[
i]>ymax) ymax=re_damp50[
i];
168 if(type==
"dphase90") {
169 if(ff_dphase90[
i]<ymin) ymin=ff_dphase90[
i];
170 if(ff_dphase90[
i]>ymax) ymax=ff_dphase90[
i];
171 if(of_dphase90[
i]<ymin) ymin=of_dphase90[
i];
172 if(of_dphase90[
i]>ymax) ymax=of_dphase90[
i];
173 if(re_dphase90[
i]<ymin) ymin=re_dphase90[
i];
174 if(re_dphase90[
i]>ymax) ymax=re_dphase90[
i];
176 if(type==
"dtime90") {
177 if(ff_dtime90[
i]<ymin) ymin=ff_dtime90[
i];
178 if(ff_dtime90[
i]>ymax) ymax=ff_dtime90[
i];
179 if(of_dtime90[
i]<ymin) ymin=of_dtime90[
i];
180 if(of_dtime90[
i]>ymax) ymax=of_dtime90[
i];
181 if(re_dtime90[
i]<ymin) ymin=re_dtime90[
i];
182 if(re_dtime90[
i]>ymax) ymax=re_dtime90[
i];
185 if(ff_damp90[
i]<ymin) ymin=ff_damp90[
i];
186 if(ff_damp90[
i]>ymax) ymax=ff_damp90[
i];
187 if(of_damp90[
i]<ymin) ymin=of_damp90[
i];
188 if(of_damp90[
i]>ymax) ymax=of_damp90[
i];
189 if(re_damp90[
i]<ymin) ymin=re_damp90[
i];
190 if(re_damp90[
i]>ymax) ymax=re_damp90[
i];
194 TH2F *frame =
new TH2F(
"frame",
"",1000,0.0,NFF+1,1000,0.9*ymin,1.1*ymax);
195 if(type==
"phase") frame->SetTitle(
"phase sensitivity");
196 if(type==
"time") frame->SetTitle(
"time sensitivity");
197 if(type==
"amp") frame->SetTitle(
"amp sensitivity");
198 if(type==
"dphase50") frame->SetTitle(
"phase-50cr sensitivity");
199 if(type==
"dtime50") frame->SetTitle(
"time-50cr sensitivity");
200 if(type==
"damp50") frame->SetTitle(
"amp-50cr sensitivity");
201 if(type==
"dphase90") frame->SetTitle(
"phase-90cr sensitivity");
202 if(type==
"dtime90") frame->SetTitle(
"time-90cr sensitivity");
203 if(type==
"damp90") frame->SetTitle(
"amp-90cr sensitivity");
205 if(type==
"phase") frame->GetYaxis()->SetTitle(
"phase sensitivity per degree");
206 if(type==
"time") frame->GetYaxis()->SetTitle(
"time sensitivity per msec");
207 if(type==
"amp") frame->GetYaxis()->SetTitle(
"amp sensitivity per amp factor");
208 if(type==
"dphase50") frame->GetYaxis()->SetTitle(
"phase-50cr sensitivity (degree)");
209 if(type==
"dtime50") frame->GetYaxis()->SetTitle(
"time-50cr sensitivity (msec)");
210 if(type==
"damp50") frame->GetYaxis()->SetTitle(
"amp-50cr sensitivity (amp factor)");
211 if(type==
"dphase90") frame->GetYaxis()->SetTitle(
"phase-90cr sensitivity (degree)");
212 if(type==
"dtime90") frame->GetYaxis()->SetTitle(
"time-90cr sensitivity (msec)");
213 if(type==
"damp90") frame->GetYaxis()->SetTitle(
"amp-90cr sensitivity (amp factor)");
214 frame->GetXaxis()->CenterTitle(kTRUE);
215 frame->GetXaxis()->SetRangeUser(0,NFF+1);
216 frame->GetYaxis()->SetTitleOffset(1.10);
217 frame->GetXaxis()->CenterTitle(kTRUE);
218 frame->GetYaxis()->CenterTitle(kTRUE);
219 frame->GetXaxis()->SetTitleFont(132);
220 frame->GetXaxis()->SetLabelFont(132);
221 frame->GetYaxis()->SetTitleFont(132);
222 frame->GetYaxis()->SetLabelFont(132);
223 frame->GetXaxis()->SetTitleSize(0.045);
224 frame->GetXaxis()->SetLabelSize(0.045);
225 frame->GetYaxis()->SetTitleSize(0.045);
226 frame->GetYaxis()->SetLabelSize(0.045);
227 frame->GetYaxis()->SetLabelOffset(0.01);
228 frame->LabelsOption(
"x");
230 frame->GetXaxis()->SetMoreLogLabels();
231 frame->GetXaxis()->SetNoExponent();
235 canvas->SetBottomMargin(0.15);
237 frame->GetXaxis()->SetNdivisions(120);
238 frame->GetXaxis()->SetTitle(
"");
239 frame->GetXaxis()->SetLabelOffset(.05);
240 frame->GetXaxis()->SetLabelSize(0.03);
241 frame->GetXaxis()->CenterLabels();
242 for(
int n=0;
n<NFF;
n++) frame->GetXaxis()->ChangeLabel(
n+1,45,-1,-1,-1,-1,gw_name[
n]);
243 frame->GetXaxis()->ChangeLabel(N+1,45,-1,-1,-1,-1,
" ");
246 if(type==
"phase")
for(
int i=0;
i<NFF;
i++) dff[
i]=dff_phase[
i];
247 if(type==
"time")
for(
int i=0;
i<NFF;
i++) dff[
i]=dff_time[
i];
248 if(type==
"amp")
for(
int i=0;
i<NFF;
i++) dff[
i]=dff_amp[
i];
249 if(type==
"dphase50")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_dphase50[
i];
250 if(type==
"dtime50")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_dtime50[
i];
251 if(type==
"damp50")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_damp50[
i];
252 if(type==
"dphase90")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_dphase90[
i];
253 if(type==
"dtime90")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_dtime90[
i];
254 if(type==
"damp90")
for(
int i=0;
i<NFF;
i++) dff[
i]=ff_damp90[
i];
256 TGraph* gdff =
new TGraph(NFF,event,dff);
257 gdff->SetLineWidth(2);
258 gdff->SetLineColor(color[2]);
259 gdff->SetMarkerColor(color[2]);
260 gdff->SetMarkerStyle(20);
261 gdff->Draw(
"LPSAME");
264 if(type==
"phase")
for(
int i=0;
i<NFF;
i++) dof[
i]=dof_phase[
i];
265 if(type==
"time")
for(
int i=0;
i<NFF;
i++) dof[
i]=dof_time[
i];
266 if(type==
"amp")
for(
int i=0;
i<NFF;
i++) dof[
i]=dof_amp[
i];
267 if(type==
"dphase50")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_dphase50[
i];
268 if(type==
"dtime50")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_dtime50[
i];
269 if(type==
"damp50")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_damp50[
i];
270 if(type==
"dphase90")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_dphase90[
i];
271 if(type==
"dtime90")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_dtime90[
i];
272 if(type==
"damp90")
for(
int i=0;
i<NFF;
i++) dof[
i]=of_damp90[
i];
274 TGraph* gdof =
new TGraph(NFF,event,dof);
275 gdof->SetLineWidth(2);
276 gdof->SetLineColor(color[1]);
277 gdof->SetMarkerColor(color[1]);
278 gdof->SetMarkerStyle(20);
279 gdof->Draw(
"LPSAME");
282 if(type==
"phase")
for(
int i=0;
i<NFF;
i++) dre[
i]=dre_phase[
i];
283 if(type==
"time")
for(
int i=0;
i<NFF;
i++) dre[
i]=dre_time[
i];
284 if(type==
"amp")
for(
int i=0;
i<NFF;
i++) dre[
i]=dre_amp[
i];
285 if(type==
"dphase50")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_dphase50[
i];
286 if(type==
"dtime50")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_dtime50[
i];
287 if(type==
"damp50")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_damp50[
i];
288 if(type==
"dphase90")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_dphase90[
i];
289 if(type==
"dtime90")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_dtime90[
i];
290 if(type==
"damp90")
for(
int i=0;
i<NFF;
i++) dre[
i]=re_damp90[
i];
292 TGraph* gdre =
new TGraph(NFF,event,dre);
293 gdre->SetLineWidth(2);
294 gdre->SetLineColor(color[0]);
295 gdre->SetMarkerColor(color[0]);
296 gdre->SetMarkerStyle(20);
297 gdre->Draw(
"LPSAME");
299 TLegend *leg =
new TLegend(0.1102204,0.7456446,0.3226453,0.8867596,NULL,
"brNDC");
300 leg->SetBorderSize(1);
301 leg->SetTextAlign(22);
302 leg->SetTextFont(12);
303 leg->SetLineColor(1);
304 leg->SetLineStyle(1);
305 leg->SetLineWidth(1);
306 leg->SetFillColor(0);
307 leg->SetFillStyle(1001);
308 leg->SetTextSize(0.04);
309 leg->SetLineColor(kBlack);
310 leg->SetFillColor(kWhite);
311 leg->AddEntry(gdff,
"Fitting Factor",
"lp");
312 leg->AddEntry(gdof,
"Overlap Factor",
"lp");
313 leg->AddEntry(gdre,
"Residual Energy",
"lp");
317 if(odir!=
"") odir=odir+
"/";
319 if(type==
"phase") ofname=odir+
"/"+
"A_phase_sensitivity.png";
320 if(type==
"dphase50") ofname=odir+
"/"+
"B_dphase_50cr_sensitivity.png";
321 if(type==
"dphase90") ofname=odir+
"/"+
"C_dphase_90cr_sensitivity.png";
322 if(type==
"time") ofname=odir+
"/"+
"D_time_sensitivity.png";
323 if(type==
"dtime50") ofname=odir+
"/"+
"E_dtime_50cr_sensitivity.png";
324 if(type==
"dtime90") ofname=odir+
"/"+
"F_dtime_90cr_sensitivity.png";
325 if(type==
"amp") ofname=odir+
"/"+
"G_amp_sensitivity.png";
326 if(type==
"damp50") ofname=odir+
"/"+
"H_damp_50cr_sensitivity.png";
327 if(type==
"damp90") ofname=odir+
"/"+
"I_damp_90cr_sensitivity.png";
328 cout << ofname << endl;
329 canvas->Print(ofname);
void DrawSensitivityPE(TString type, TString ifname_ff, TString ifname_of, TString ifname_re, TString odir, TString label)