9 while (std::getline(ss, item, delim)) {
10 elems.push_back(item);
17 sprintf(command,
"ccdb dump %s:%i:%s",
"/BCAL/LED_monitoring/reference_file", run, variation.Data());
18 FILE* inputPipe = gSystem->OpenPipe(command,
"r");
23 if(fgets(buff,
sizeof(buff), inputPipe) == NULL)
26 if(fgets(buff,
sizeof(buff), inputPipe) == NULL)
30 char url_base[1024], path_name[1024];
31 ss >> url_base >> path_name;
33 gSystem->ClosePipe(inputPipe);
39 ss_url << url_base <<
"/" << path_name;
42 vector<string> tokens;
43 split(path_name,
'/', tokens);
47 ifstream
f(filename.c_str());
49 sprintf(command,
"curl -O %s", ss_url.str().c_str());
50 gSystem->Exec(command);
57 TFile *rootfile =
new TFile(filename.c_str());
69 gStyle->SetPalette(1,0);
70 gStyle->SetOptStat(kFALSE);
72 gStyle->SetPadRightMargin(0.15);
73 gStyle->SetPadLeftMargin(0.15);
74 gStyle->SetPadBottomMargin(0.15);
83 TProfile *run1_low_up_1 = NULL;
84 TProfile *run1_low_up_2 = NULL;
85 TProfile *run1_low_up_3 = NULL;
86 TProfile *run1_low_up_4 = NULL;
87 TProfile *run1_low_down_1 = NULL;
88 TProfile *run1_low_down_2 = NULL;
89 TProfile *run1_low_down_3 = NULL;
90 TProfile *run1_low_down_4 = NULL;
92 TProfile *run1_high_up_1 = NULL;
93 TProfile *run1_high_up_2 = NULL;
94 TProfile *run1_high_up_3 = NULL;
95 TProfile *run1_high_up_4 = NULL;
96 TProfile *run1_high_down_1 = NULL;
97 TProfile *run1_high_down_2 = NULL;
98 TProfile *run1_high_down_3 = NULL;
99 TProfile *run1_high_down_4 = NULL;
101 TProfile *run2_low_up_1 = NULL;
102 TProfile *run2_low_up_2 = NULL;
103 TProfile *run2_low_up_3 = NULL;
104 TProfile *run2_low_up_4 = NULL;
105 TProfile *run2_low_down_1 = NULL;
106 TProfile *run2_low_down_2 = NULL;
107 TProfile *run2_low_down_3 = NULL;
108 TProfile *run2_low_down_4 = NULL;
110 TProfile *run2_high_up_1 = NULL;
111 TProfile *run2_high_up_2 = NULL;
112 TProfile *run2_high_up_3 = NULL;
113 TProfile *run2_high_up_4 = NULL;
114 TProfile *run2_high_down_1 = NULL;
115 TProfile *run2_high_down_2 = NULL;
116 TProfile *run2_high_down_3 = NULL;
117 TProfile *run2_high_down_4 = NULL;
119 TH1D *run1_low_up_1_hist = NULL;
120 TH1D *run1_low_up_2_hist = NULL;
121 TH1D *run1_low_up_3_hist = NULL;
122 TH1D *run1_low_up_4_hist = NULL;
123 TH1D *run1_low_down_1_hist = NULL;
124 TH1D *run1_low_down_2_hist = NULL;
125 TH1D *run1_low_down_3_hist = NULL;
126 TH1D *run1_low_down_4_hist = NULL;
128 TH1D *run1_high_up_1_hist = NULL;
129 TH1D *run1_high_up_2_hist = NULL;
130 TH1D *run1_high_up_3_hist = NULL;
131 TH1D *run1_high_up_4_hist = NULL;
132 TH1D *run1_high_down_1_hist = NULL;
133 TH1D *run1_high_down_2_hist = NULL;
134 TH1D *run1_high_down_3_hist = NULL;
135 TH1D *run1_high_down_4_hist = NULL;
137 TH1D *run2_low_up_1_hist = NULL;
138 TH1D *run2_low_up_2_hist = NULL;
139 TH1D *run2_low_up_3_hist = NULL;
140 TH1D *run2_low_up_4_hist = NULL;
141 TH1D *run2_low_down_1_hist = NULL;
142 TH1D *run2_low_down_2_hist = NULL;
143 TH1D *run2_low_down_3_hist = NULL;
144 TH1D *run2_low_down_4_hist = NULL;
146 TH1D *run2_high_up_1_hist = NULL;
147 TH1D *run2_high_up_2_hist = NULL;
148 TH1D *run2_high_up_3_hist = NULL;
149 TH1D *run2_high_up_4_hist = NULL;
150 TH1D *run2_high_down_1_hist = NULL;
151 TH1D *run2_high_down_2_hist = NULL;
152 TH1D *run2_high_down_3_hist = NULL;
153 TH1D *run2_high_down_4_hist = NULL;
158 printf (
"Histogram input filename=%s\n",infilename.c_str());
159 TFile *run1in =
new TFile(infilename.c_str(),
"read");
163 run1_low_up_1 = (TProfile*)run1in->Get(
"bcalLED/low_bias_up_sector_1_peak_vchannel");
164 run1_low_up_2 = (TProfile*)run1in->Get(
"bcalLED/low_bias_up_sector_2_peak_vchannel");
165 run1_low_up_3 = (TProfile*)run1in->Get(
"bcalLED/low_bias_up_sector_3_peak_vchannel");
166 run1_low_up_4 = (TProfile*)run1in->Get(
"bcalLED/low_bias_up_sector_4_peak_vchannel");
167 run1_low_down_1 = (TProfile*)run1in->Get(
"bcalLED/low_bias_down_sector_1_peak_vchannel");
168 run1_low_down_2 = (TProfile*)run1in->Get(
"bcalLED/low_bias_down_sector_2_peak_vchannel");
169 run1_low_down_3 = (TProfile*)run1in->Get(
"bcalLED/low_bias_down_sector_3_peak_vchannel");
170 run1_low_down_4 = (TProfile*)run1in->Get(
"bcalLED/low_bias_down_sector_4_peak_vchannel");
172 run1_high_up_1 = (TProfile*)run1in->Get(
"bcalLED/high_bias_up_sector_1_peak_vchannel");
173 run1_high_up_2 = (TProfile*)run1in->Get(
"bcalLED/high_bias_up_sector_2_peak_vchannel");
174 run1_high_up_3 = (TProfile*)run1in->Get(
"bcalLED/high_bias_up_sector_3_peak_vchannel");
175 run1_high_up_4 = (TProfile*)run1in->Get(
"bcalLED/high_bias_up_sector_4_peak_vchannel");
176 run1_high_down_1 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_1_peak_vchannel");
177 run1_high_down_2 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_2_peak_vchannel");
178 run1_high_down_3 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_3_peak_vchannel");
179 run1_high_down_4 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_4_peak_vchannel");
186 run2_low_up_1 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_1_peak_vchannel");
187 run2_low_up_2 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_2_peak_vchannel");
188 run2_low_up_3 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_3_peak_vchannel");
189 run2_low_up_4 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_4_peak_vchannel");
190 run2_low_down_1 = (TProfile*)run2in->Get(
"bcalLED/low_bias_down_sector_1_peak_vchannel");
191 run2_low_down_2 = (TProfile*)run2in->Get(
"bcalLED/low_bias_down_sector_2_peak_vchannel");
192 run2_low_down_3 = (TProfile*)run2in->Get(
"bcalLED/low_bias_down_sector_3_peak_vchannel");
193 run2_low_down_4 = (TProfile*)run2in->Get(
"bcalLED/low_bias_down_sector_4_peak_vchannel");
195 run2_high_up_1 = (TProfile*)run2in->Get(
"bcalLED/high_bias_up_sector_1_peak_vchannel");
196 run2_high_up_2 = (TProfile*)run2in->Get(
"bcalLED/high_bias_up_sector_2_peak_vchannel");
197 run2_high_up_3 = (TProfile*)run2in->Get(
"bcalLED/high_bias_up_sector_3_peak_vchannel");
198 run2_high_up_4 = (TProfile*)run2in->Get(
"bcalLED/high_bias_up_sector_4_peak_vchannel");
199 run2_high_down_1 = (TProfile*)run2in->Get(
"bcalLED/high_bias_down_sector_1_peak_vchannel");
200 run2_high_down_2 = (TProfile*)run2in->Get(
"bcalLED/high_bias_down_sector_2_peak_vchannel");
201 run2_high_down_3 = (TProfile*)run2in->Get(
"bcalLED/high_bias_down_sector_3_peak_vchannel");
202 run2_high_down_4 = (TProfile*)run2in->Get(
"bcalLED/high_bias_down_sector_4_peak_vchannel");
204 cout <<
"input profiles, projecting into histograms" <<
"\n";
206 run1_low_up_1_hist = run1_low_up_1->ProjectionX(
"run1_low_up_1_projectionx");
207 run1_low_up_2_hist = run1_low_up_2->ProjectionX(
"run1_low_up_2_projectionx");
208 run1_low_up_3_hist = run1_low_up_3->ProjectionX(
"run1_low_up_3_projectionx");
209 run1_low_up_4_hist = run1_low_up_4->ProjectionX(
"run1_low_up_4_projectionx");
210 run1_low_down_1_hist = run1_low_down_1->ProjectionX(
"run1_low_down_1_projectionx");
211 run1_low_down_2_hist = run1_low_down_2->ProjectionX(
"run1_low_down_2_projectionx");
212 run1_low_down_3_hist = run1_low_down_3->ProjectionX(
"run1_low_down_3_projectionx");
213 run1_low_down_4_hist = run1_low_down_4->ProjectionX(
"run1_low_down_4_projectionx");
215 run1_high_up_1_hist = run1_high_up_1->ProjectionX(
"run1_high_up_1_projectionx");
216 run1_high_up_2_hist = run1_high_up_2->ProjectionX(
"run1_high_up_2_projectionx");
217 run1_high_up_3_hist = run1_high_up_3->ProjectionX(
"run1_high_up_3_projectionx");
218 run1_high_up_4_hist = run1_high_up_4->ProjectionX(
"run1_high_up_4_projectionx");
219 run1_high_down_1_hist = run1_high_down_1->ProjectionX(
"run1_high_down_1_projectionx");
220 run1_high_down_2_hist = run1_high_down_2->ProjectionX(
"run1_high_down_2_projectionx");
221 run1_high_down_3_hist = run1_high_down_3->ProjectionX(
"run1_high_down_3_projectionx");
222 run1_high_down_4_hist = run1_high_down_4->ProjectionX(
"run1_high_down_4_projectionx");
224 run2_low_up_1_hist = run2_low_up_1->ProjectionX(
"run2_low_up_1_projectionx");
225 run2_low_up_2_hist = run2_low_up_2->ProjectionX(
"run2_low_up_2_projectionx");
226 run2_low_up_3_hist = run2_low_up_3->ProjectionX(
"run2_low_up_3_projectionx");
227 run2_low_up_4_hist = run2_low_up_4->ProjectionX(
"run2_low_up_4_projectionx");
228 run2_low_down_1_hist = run2_low_down_1->ProjectionX(
"run2_low_down_1_projectionx");
229 run2_low_down_2_hist = run2_low_down_2->ProjectionX(
"run2_low_down_2_projectionx");
230 run2_low_down_3_hist = run2_low_down_3->ProjectionX(
"run2_low_down_3_projectionx");
231 run2_low_down_4_hist = run2_low_down_4->ProjectionX(
"run2_low_down_4_projectionx");
233 run2_high_up_1_hist = run2_high_up_1->ProjectionX(
"run2_high_up_1_projectionx");
234 run2_high_up_2_hist = run2_high_up_2->ProjectionX(
"run2_high_up_2_projectionx");
235 run2_high_up_3_hist = run2_high_up_3->ProjectionX(
"run2_high_up_3_projectionx");
236 run2_high_up_4_hist = run2_high_up_4->ProjectionX(
"run2_high_up_4_projectionx");
237 run2_high_down_1_hist = run2_high_down_1->ProjectionX(
"run2_high_down_1_projectionx");
238 run2_high_down_2_hist = run2_high_down_2->ProjectionX(
"run2_high_down_2_projectionx");
239 run2_high_down_3_hist = run2_high_down_3->ProjectionX(
"run2_high_down_3_projectionx");
240 run2_high_down_4_hist = run2_high_down_4->ProjectionX(
"run2_high_down_4_projectionx");
243 cout <<
"profiles projected into histograms" <<
"\n";
245 run1_low_up_1_hist->SetTitle(
"6v Upstream sector 1");
246 run1_low_up_2_hist->SetTitle(
"6v Upstream sector 2");
247 run1_low_up_3_hist->SetTitle(
"6v Upstream sector 3");
248 run1_low_up_4_hist->SetTitle(
"6v Upstream sector 4");
249 run1_low_down_1_hist->SetTitle(
"6v Downstream sector 1");
250 run1_low_down_2_hist->SetTitle(
"6v Downstream sector 2");
251 run1_low_down_3_hist->SetTitle(
"6v Downstream sector 3");
252 run1_low_down_4_hist->SetTitle(
"6v Downstream sector 4");
254 run1_high_up_1_hist->SetTitle(
"6.25v Upstream sector 1");
255 run1_high_up_2_hist->SetTitle(
"6.25v Upstream sector 2");
256 run1_high_up_3_hist->SetTitle(
"6.25v Upstream sector 3");
257 run1_high_up_4_hist->SetTitle(
"6.25v Upstream sector 4");
258 run1_high_down_1_hist->SetTitle(
"6.25v Downstream sector 1");
259 run1_high_down_2_hist->SetTitle(
"6.25v Downstream sector 2");
260 run1_high_down_3_hist->SetTitle(
"6.25v Downstream sector 3");
261 run1_high_down_4_hist->SetTitle(
"6.25v Downstream sector 4");
263 cout <<
"Divideing histograms" <<
"\n";
265 run1_low_up_1_hist->Divide(run2_low_up_1_hist);
266 run1_low_up_2_hist->Divide(run2_low_up_2_hist);
267 run1_low_up_3_hist->Divide(run2_low_up_3_hist);
268 run1_low_up_4_hist->Divide(run2_low_up_4_hist);
269 run1_low_down_1_hist->Divide(run2_low_down_1_hist);
270 run1_low_down_2_hist->Divide(run2_low_down_2_hist);
271 run1_low_down_3_hist->Divide(run2_low_down_3_hist);
272 run1_low_down_4_hist->Divide(run2_low_down_4_hist);
274 run1_high_up_1_hist->Divide(run2_high_up_1_hist);
275 run1_high_up_2_hist->Divide(run2_high_up_2_hist);
276 run1_high_up_3_hist->Divide(run2_high_up_3_hist);
277 run1_high_up_4_hist->Divide(run2_high_up_4_hist);
278 run1_high_down_1_hist->Divide(run2_high_down_1_hist);
279 run1_high_down_2_hist->Divide(run2_high_down_2_hist);
280 run1_high_down_3_hist->Divide(run2_high_down_3_hist);
281 run1_high_down_4_hist->Divide(run2_high_down_4_hist);
283 cout <<
"Histograms divided" <<
"\n";
284 run1_low_up_1_hist->SetMinimum(0.8);
285 run1_low_up_1_hist->SetMaximum(1.2);
286 run1_low_up_2_hist->SetMinimum(0.8);
287 run1_low_up_2_hist->SetMaximum(1.2);
288 run1_low_up_3_hist->SetMinimum(0.8);
289 run1_low_up_3_hist->SetMaximum(1.2);
290 run1_low_up_4_hist->SetMinimum(0.8);
291 run1_low_up_4_hist->SetMaximum(1.2);
293 run1_low_down_1_hist->SetMinimum(0.8);
294 run1_low_down_1_hist->SetMaximum(1.2);
295 run1_low_down_2_hist->SetMinimum(0.8);
296 run1_low_down_2_hist->SetMaximum(1.2);
297 run1_low_down_3_hist->SetMinimum(0.8);
298 run1_low_down_3_hist->SetMaximum(1.2);
299 run1_low_down_4_hist->SetMinimum(0.8);
300 run1_low_down_4_hist->SetMaximum(1.2);
302 run1_high_up_1_hist->SetMinimum(0.8);
303 run1_high_up_1_hist->SetMaximum(1.2);
304 run1_high_up_2_hist->SetMinimum(0.8);
305 run1_high_up_2_hist->SetMaximum(1.2);
306 run1_high_up_3_hist->SetMinimum(0.8);
307 run1_high_up_3_hist->SetMaximum(1.2);
308 run1_high_up_4_hist->SetMinimum(0.8);
309 run1_high_up_4_hist->SetMaximum(1.2);
311 run1_high_down_1_hist->SetMinimum(0.8);
312 run1_high_down_1_hist->SetMaximum(1.2);
313 run1_high_down_2_hist->SetMinimum(0.8);
314 run1_high_down_2_hist->SetMaximum(1.2);
315 run1_high_down_3_hist->SetMinimum(0.8);
316 run1_high_down_3_hist->SetMaximum(1.2);
317 run1_high_down_4_hist->SetMinimum(0.8);
318 run1_high_down_4_hist->SetMaximum(1.2);
321 TCanvas *
c1 =
new TCanvas(
"c1",
"c1 pedsubpeak ",200,10,1200,1200);
325 TVirtualPad *c1_1 = c1->cd(1);
326 c1_1->SetBorderMode(0);
327 c1_1->SetFillColor(0);
331 c1_1->SetBorderMode(0);
332 c1_1->SetFillColor(0);
334 if (errorbars ==0) {run1_low_up_1_hist->Draw(
"hist p");
335 run1_low_up_2_hist->Draw(
"same hist p");
336 run1_low_up_3_hist->Draw(
"same hist p");
337 run1_low_up_4_hist->Draw(
"same hist p");
339 else {run1_low_up_1_hist->Draw(
"E1 X0");
340 run1_low_up_2_hist->Draw(
"same E1 X0");
341 run1_low_up_3_hist->Draw(
"same E1 X0");
342 run1_low_up_4_hist->Draw(
"same E1 X0");
345 run1_low_up_1_hist->SetMarkerColor(1);
346 run1_low_up_1_hist->SetMarkerStyle(2);
347 run1_low_up_2_hist->SetMarkerColor(2);
348 run1_low_up_1_hist->SetMarkerStyle(2);
349 run1_low_up_3_hist->SetMarkerColor(3);
350 run1_low_up_1_hist->SetMarkerStyle(2);
351 run1_low_up_4_hist->SetMarkerColor(4);
352 run1_low_up_1_hist->SetMarkerStyle(2);
355 sprintf(
string,
"Run ratio to reference");
357 TLatex *
t1 =
new TLatex(0.15,0.92,
string);
359 t1->SetTextSize(0.03);
363 TVirtualPad *c1_2 = c1->cd(2);
364 c1_2->SetBorderMode(0);
365 c1_2->SetFillColor(0);
369 c1_2->SetBorderMode(0);
370 c1_2->SetFillColor(0);
372 if (errorbars ==0) {run1_low_down_1_hist->Draw(
"hist p");
373 run1_low_down_2_hist->Draw(
"same hist p");
374 run1_low_down_3_hist->Draw(
"same hist p");
375 run1_low_down_4_hist->Draw(
"same hist p");
377 else {run1_low_down_1_hist->Draw(
"E1 X0");
378 run1_low_down_2_hist->Draw(
"same E1 X0");
379 run1_low_down_3_hist->Draw(
"same E1 X0");
380 run1_low_down_4_hist->Draw(
"same E1 X0");
383 run1_low_down_1_hist->SetMarkerColor(1);
384 run1_low_down_1_hist->SetMarkerStyle(2);
385 run1_low_down_2_hist->SetMarkerColor(2);
386 run1_low_down_1_hist->SetMarkerStyle(2);
387 run1_low_down_3_hist->SetMarkerColor(3);
388 run1_low_down_1_hist->SetMarkerStyle(2);
389 run1_low_down_4_hist->SetMarkerColor(4);
390 run1_low_down_1_hist->SetMarkerStyle(2);
393 TVirtualPad *c1_3 = c1->cd(3);
394 c1_3->SetBorderMode(0);
395 c1_3->SetFillColor(0);
400 c1_3->SetBorderMode(0);
401 c1_3->SetFillColor(0);
403 if (errorbars ==0) {run1_high_up_1_hist->Draw(
"hist p");
404 run1_high_up_2_hist->Draw(
"same hist p");
405 run1_high_up_3_hist->Draw(
"same hist p");
406 run1_high_up_4_hist->Draw(
"same hist p");
408 else {run1_high_up_1_hist->Draw(
"E1 X0");
409 run1_high_up_2_hist->Draw(
"same E1 X0");
410 run1_high_up_3_hist->Draw(
"same E1 X0");
411 run1_high_up_4_hist->Draw(
"same E1 X0");
414 run1_high_up_1_hist->SetMarkerColor(1);
415 run1_high_up_1_hist->SetMarkerStyle(2);
416 run1_high_up_2_hist->SetMarkerColor(2);
417 run1_high_up_1_hist->SetMarkerStyle(2);
418 run1_high_up_3_hist->SetMarkerColor(3);
419 run1_high_up_1_hist->SetMarkerStyle(2);
420 run1_high_up_4_hist->SetMarkerColor(4);
421 run1_high_up_1_hist->SetMarkerStyle(2);
425 TVirtualPad *c1_4 = c1->cd(4);
426 c1_4->SetBorderMode(0);
427 c1_4->SetFillColor(0);
431 c1_4->SetBorderMode(0);
432 c1_4->SetFillColor(0);
434 if (errorbars ==0) {run1_high_down_1_hist->Draw(
"hist p");
435 run1_high_down_2_hist->Draw(
"same hist p");
436 run1_high_down_3_hist->Draw(
"same hist p");
437 run1_high_down_4_hist->Draw(
"same hist p");
439 else {run1_high_down_1_hist->Draw(
"E1 X0");
440 run1_high_down_2_hist->Draw(
"same E1 X0");
441 run1_high_down_3_hist->Draw(
"same E1 X0");
442 run1_high_down_4_hist->Draw(
"same E1 X0");
445 run1_high_down_1_hist->SetMarkerColor(1);
446 run1_high_down_1_hist->SetMarkerStyle(2);
447 run1_high_down_2_hist->SetMarkerColor(2);
448 run1_high_down_1_hist->SetMarkerStyle(2);
449 run1_high_down_3_hist->SetMarkerColor(3);
450 run1_high_down_1_hist->SetMarkerStyle(2);
451 run1_high_down_4_hist->SetMarkerColor(4);
452 run1_high_down_1_hist->SetMarkerStyle(2);
sprintf(text,"Post KinFit Cut")
void Plot_BCAL_LED_Ratio_stack(string infilename="hd_root.root", int run=20000)
TFile * GetReferenceFile(Int_t run, TString variation="default")
void split(const std::string &s, char delim, std::vector< std::string > &elems)
printf("string=%s", string)