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;
41 vector<string> tokens;
42 split(path_name,
'/', tokens);
45 ifstream
f(filename.c_str());
47 sprintf(command,
"curl -O %s", ss_url.str().c_str());
48 gSystem->Exec(command);
55 TFile *rootfile =
new TFile(filename.c_str());
64 cout <<
"Starting ploting" <<
"\n";
68 gStyle->SetPalette(1,0);
69 gStyle->SetOptStat(kFALSE);
71 gStyle->SetPadRightMargin(0.15);
72 gStyle->SetPadLeftMargin(0.15);
73 gStyle->SetPadBottomMargin(0.15);
82 TProfile *run1_low_up_1 = NULL;
83 TProfile *run1_low_up_2 = NULL;
84 TProfile *run1_low_up_3 = NULL;
85 TProfile *run1_low_up_4 = NULL;
87 TProfile *run2_low_up_1 = NULL;
88 TProfile *run2_low_up_2 = NULL;
89 TProfile *run2_low_up_3 = NULL;
90 TProfile *run2_low_up_4 = NULL;
92 TH1D *run1_high_up_1_hist=NULL;
93 TH1D *run1_high_up_2_hist=NULL;
94 TH1D *run1_high_up_3_hist=NULL;
95 TH1D *run1_high_up_4_hist=NULL;
97 TH1D *run2_high_up_1_hist=NULL;
98 TH1D *run2_high_up_2_hist=NULL;
99 TH1D *run2_high_up_3_hist=NULL;
100 TH1D *run2_high_up_4_hist=NULL;
102 TH1D *run1_low_up_1_hist = NULL;
103 TH1D *run1_low_up_2_hist = NULL;
104 TH1D *run1_low_up_3_hist = NULL;
105 TH1D *run1_low_up_4_hist = NULL;
107 TH1D *run2_low_up_1_hist = NULL;
108 TH1D *run2_low_up_2_hist = NULL;
109 TH1D *run2_low_up_3_hist = NULL;
110 TH1D *run2_low_up_4_hist = NULL;
114 printf (
"Histogram input filename=%s\n",infilename.c_str());
115 TFile *run1in =
new TFile(infilename.c_str(),
"read");
119 run1_low_up_1 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_1_peak_vchannel");
123 run1_low_up_2 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_2_peak_vchannel");
127 run1_low_up_3 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_3_peak_vchannel");
131 run1_low_up_4 = (TProfile*)run1in->Get(
"bcalLED/high_bias_down_sector_4_peak_vchannel");
138 run2_low_up_1 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_1_peak_vchannel");
139 run2_low_up_2 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_2_peak_vchannel");
140 run2_low_up_3 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_3_peak_vchannel");
141 run2_low_up_4 = (TProfile*)run2in->Get(
"bcalLED/low_bias_up_sector_4_peak_vchannel");
143 cout <<
"input profiles, projecting into histograms" <<
"\n";
145 run1_low_up_1_hist = run1_low_up_1->ProjectionX(
"run1_low_up_1_projectionx");
146 run1_low_up_2_hist = run1_low_up_2->ProjectionX(
"run1_low_up_2_projectionx");
147 run1_low_up_3_hist = run1_low_up_3->ProjectionX(
"run1_low_up_3_projectionx");
148 run1_low_up_4_hist = run1_low_up_4->ProjectionX(
"run1_low_up_4_projectionx");
150 run2_low_up_1_hist = run2_low_up_1->ProjectionX(
"run2_low_up_1_projectionx");
151 run2_low_up_2_hist = run2_low_up_2->ProjectionX(
"run2_low_up_2_projectionx");
152 run2_low_up_3_hist = run2_low_up_3->ProjectionX(
"run2_low_up_3_projectionx");
153 run2_low_up_4_hist = run2_low_up_4->ProjectionX(
"run2_low_up_4_projectionx");
155 cout <<
"profiles projected into histograms" <<
"\n";
157 run1_low_up_1_hist->SetTitle(
"6v Upstream sector 1");
158 run1_low_up_2_hist->SetTitle(
"6v Upstream sector 2");
159 run1_low_up_3_hist->SetTitle(
"6v Upstream sector 3");
160 run1_low_up_4_hist->SetTitle(
"6v Upstream sector 4");
162 cout <<
"Dividing over quadrant average" <<
"\n";
164 double quad1sector1avgrun1 = run1_low_up_1_hist->Integral(0,191);
165 double quad2sector1avgrun1 = run1_low_up_1_hist->Integral(192,383);
166 double quad3sector1avgrun1 = run1_low_up_1_hist->Integral(384,575);
167 double quad4sector1avgrun1 = run1_low_up_1_hist->Integral(576,767);
168 double quad5sector1avgrun1 = run1_low_up_1_hist->Integral(768,959);
169 double quad6sector1avgrun1 = run1_low_up_1_hist->Integral(960,1151);
170 double quad7sector1avgrun1 = run1_low_up_1_hist->Integral(1152,1343);
171 double quad8sector1avgrun1 = run1_low_up_1_hist->Integral(1344,1535);
173 double quad1sector2avgrun1 = run1_low_up_2_hist->Integral(0,191);
174 double quad2sector2avgrun1 = run1_low_up_2_hist->Integral(192,383);
175 double quad3sector2avgrun1 = run1_low_up_2_hist->Integral(384,575);
176 double quad4sector2avgrun1 = run1_low_up_2_hist->Integral(576,767);
177 double quad5sector2avgrun1 = run1_low_up_2_hist->Integral(768,959);
178 double quad6sector2avgrun1 = run1_low_up_2_hist->Integral(960,1151);
179 double quad7sector2avgrun1 = run1_low_up_2_hist->Integral(1152,1343);
180 double quad8sector2avgrun1 = run1_low_up_2_hist->Integral(1344,1535);
182 double quad1sector3avgrun1 = run1_low_up_3_hist->Integral(0,191);
183 double quad2sector3avgrun1 = run1_low_up_3_hist->Integral(192,383);
184 double quad3sector3avgrun1 = run1_low_up_3_hist->Integral(384,575);
185 double quad4sector3avgrun1 = run1_low_up_3_hist->Integral(576,767);
186 double quad5sector3avgrun1 = run1_low_up_3_hist->Integral(768,959);
187 double quad6sector3avgrun1 = run1_low_up_3_hist->Integral(960,1151);
188 double quad7sector3avgrun1 = run1_low_up_3_hist->Integral(1152,1343);
189 double quad8sector3avgrun1 = run1_low_up_3_hist->Integral(1344,1535);
191 double quad1sector4avgrun1 = run1_low_up_4_hist->Integral(0,191);
192 double quad2sector4avgrun1 = run1_low_up_4_hist->Integral(192,383);
193 double quad3sector4avgrun1 = run1_low_up_4_hist->Integral(384,575);
194 double quad4sector4avgrun1 = run1_low_up_4_hist->Integral(576,767);
195 double quad5sector4avgrun1 = run1_low_up_4_hist->Integral(768,959);
196 double quad6sector4avgrun1 = run1_low_up_4_hist->Integral(960,1151);
197 double quad7sector4avgrun1 = run1_low_up_4_hist->Integral(1152,1343);
198 double quad8sector4avgrun1 = run1_low_up_4_hist->Integral(1344,1535);
200 double quad1avgrun1 = quad1sector1avgrun1 + quad1sector2avgrun1 + quad1sector3avgrun1 + quad1sector4avgrun1;
201 double quad2avgrun1 = quad2sector1avgrun1 + quad2sector2avgrun1 + quad2sector3avgrun1 + quad2sector4avgrun1;
202 double quad3avgrun1 = quad3sector1avgrun1 + quad3sector2avgrun1 + quad3sector3avgrun1 + quad3sector4avgrun1;
203 double quad4avgrun1 = quad4sector1avgrun1 + quad4sector2avgrun1 + quad4sector3avgrun1 + quad4sector4avgrun1;
204 double quad5avgrun1 = quad5sector1avgrun1 + quad5sector2avgrun1 + quad5sector3avgrun1 + quad5sector4avgrun1;
205 double quad6avgrun1 = quad6sector1avgrun1 + quad6sector2avgrun1 + quad6sector3avgrun1 + quad6sector4avgrun1;
206 double quad7avgrun1 = quad7sector1avgrun1 + quad7sector2avgrun1 + quad7sector3avgrun1 + quad7sector4avgrun1;
207 double quad8avgrun1 = quad8sector1avgrun1 + quad8sector2avgrun1 + quad8sector3avgrun1 + quad8sector4avgrun1;
209 double quadav, bincontent1, bincontent2, bincontent3, bincontent4;
211 for (
int chid=0; chid < 1536 ; chid++)
218 if (chid < 192 && chid > -1) {quadav = quad1avgrun1;}
219 if (chid < 384 && chid > 191) {quadav = quad2avgrun1;}
220 if (chid < 576 && chid > 383) {quadav = quad3avgrun1;}
221 if (chid < 768 && chid > 575) {quadav = quad4avgrun1;}
222 if (chid < 960 && chid > 767) {quadav = quad5avgrun1;}
223 if (chid < 1152 && chid > 959) {quadav = quad6avgrun1;}
224 if (chid < 1344 && chid > 1151) {quadav = quad7avgrun1;}
225 if (chid < 1536 && chid > 1343) {quadav = quad8avgrun1;}
226 bincontent1 = run1_low_up_1_hist->GetBinContent(chid);
227 bincontent2 = run1_low_up_2_hist->GetBinContent(chid);
228 bincontent3 = run1_low_up_3_hist->GetBinContent(chid);
229 bincontent4 = run1_low_up_4_hist->GetBinContent(chid);
230 run1_low_up_1_hist->SetBinContent(chid, bincontent1/quadav);
231 run1_low_up_2_hist->SetBinContent(chid, bincontent2/quadav);
232 run1_low_up_3_hist->SetBinContent(chid, bincontent3/quadav);
233 run1_low_up_4_hist->SetBinContent(chid, bincontent4/quadav);
236 double quad1sector1avgrun2 = run2_low_up_1_hist->Integral(0,191);
237 double quad2sector1avgrun2 = run2_low_up_1_hist->Integral(192,383);
238 double quad3sector1avgrun2 = run2_low_up_1_hist->Integral(384,575);
239 double quad4sector1avgrun2 = run2_low_up_1_hist->Integral(576,767);
240 double quad5sector1avgrun2 = run2_low_up_1_hist->Integral(768,959);
241 double quad6sector1avgrun2 = run2_low_up_1_hist->Integral(960,1151);
242 double quad7sector1avgrun2 = run2_low_up_1_hist->Integral(1152,1343);
243 double quad8sector1avgrun2 = run2_low_up_1_hist->Integral(1344,1535);
245 double quad1sector2avgrun2 = run2_low_up_2_hist->Integral(0,191);
246 double quad2sector2avgrun2 = run2_low_up_2_hist->Integral(192,383);
247 double quad3sector2avgrun2 = run2_low_up_2_hist->Integral(384,575);
248 double quad4sector2avgrun2 = run2_low_up_2_hist->Integral(576,767);
249 double quad5sector2avgrun2 = run2_low_up_2_hist->Integral(768,959);
250 double quad6sector2avgrun2 = run2_low_up_2_hist->Integral(960,1151);
251 double quad7sector2avgrun2 = run2_low_up_2_hist->Integral(1152,1343);
252 double quad8sector2avgrun2 = run2_low_up_2_hist->Integral(1344,1535);
254 double quad1sector3avgrun2 = run2_low_up_3_hist->Integral(0,191);
255 double quad2sector3avgrun2 = run2_low_up_3_hist->Integral(192,383);
256 double quad3sector3avgrun2 = run2_low_up_3_hist->Integral(384,575);
257 double quad4sector3avgrun2 = run2_low_up_3_hist->Integral(576,767);
258 double quad5sector3avgrun2 = run2_low_up_3_hist->Integral(768,959);
259 double quad6sector3avgrun2 = run2_low_up_3_hist->Integral(960,1151);
260 double quad7sector3avgrun2 = run2_low_up_3_hist->Integral(1152,1343);
261 double quad8sector3avgrun2 = run2_low_up_3_hist->Integral(1344,1535);
263 double quad1sector4avgrun2 = run2_low_up_4_hist->Integral(0,191);
264 double quad2sector4avgrun2 = run2_low_up_4_hist->Integral(192,383);
265 double quad3sector4avgrun2 = run2_low_up_4_hist->Integral(384,575);
266 double quad4sector4avgrun2 = run2_low_up_4_hist->Integral(576,767);
267 double quad5sector4avgrun2 = run2_low_up_4_hist->Integral(768,959);
268 double quad6sector4avgrun2 = run2_low_up_4_hist->Integral(960,1151);
269 double quad7sector4avgrun2 = run2_low_up_4_hist->Integral(1152,1343);
270 double quad8sector4avgrun2 = run2_low_up_4_hist->Integral(1344,1535);
272 double quad1avgrun2 = quad1sector1avgrun2 + quad1sector2avgrun2 + quad1sector3avgrun2 + quad1sector4avgrun2;
273 double quad2avgrun2 = quad2sector1avgrun2 + quad2sector2avgrun2 + quad2sector3avgrun2 + quad2sector4avgrun2;
274 double quad3avgrun2 = quad3sector1avgrun2 + quad3sector2avgrun2 + quad3sector3avgrun2 + quad3sector4avgrun2;
275 double quad4avgrun2 = quad4sector1avgrun2 + quad4sector2avgrun2 + quad4sector3avgrun2 + quad4sector4avgrun2;
276 double quad5avgrun2 = quad5sector1avgrun2 + quad5sector2avgrun2 + quad5sector3avgrun2 + quad5sector4avgrun2;
277 double quad6avgrun2 = quad6sector1avgrun2 + quad6sector2avgrun2 + quad6sector3avgrun2 + quad6sector4avgrun2;
278 double quad7avgrun2 = quad7sector1avgrun2 + quad7sector2avgrun2 + quad7sector3avgrun2 + quad7sector4avgrun2;
279 double quad8avgrun2 = quad8sector1avgrun2 + quad8sector2avgrun2 + quad8sector3avgrun2 + quad8sector4avgrun2;
281 for (
int chid=0; chid < 1536 ; chid++)
288 if (chid < 192 && chid > -1) {quadav = quad1avgrun2;}
289 if (chid < 384 && chid > 191) {quadav = quad2avgrun2;}
290 if (chid < 576 && chid > 383) {quadav = quad3avgrun2;}
291 if (chid < 768 && chid > 575) {quadav = quad4avgrun2;}
292 if (chid < 960 && chid > 767) {quadav = quad5avgrun2;}
293 if (chid < 1152 && chid > 959) {quadav = quad6avgrun2;}
294 if (chid < 1344 && chid > 1151) {quadav = quad7avgrun2;}
295 if (chid < 1536 && chid > 1343) {quadav = quad8avgrun2;}
296 bincontent1 = run2_low_up_1_hist->GetBinContent(chid);
297 bincontent2 = run2_low_up_2_hist->GetBinContent(chid);
298 bincontent3 = run2_low_up_3_hist->GetBinContent(chid);
299 bincontent4 = run2_low_up_4_hist->GetBinContent(chid);
300 run2_low_up_1_hist->SetBinContent(chid, bincontent1/quadav);
301 run2_low_up_2_hist->SetBinContent(chid, bincontent2/quadav);
302 run2_low_up_3_hist->SetBinContent(chid, bincontent3/quadav);
303 run2_low_up_4_hist->SetBinContent(chid, bincontent4/quadav);
307 cout <<
"Dividing histograms" <<
"\n";
309 run1_low_up_1_hist->Divide(run2_low_up_1_hist);
310 run1_low_up_2_hist->Divide(run2_low_up_2_hist);
311 run1_low_up_3_hist->Divide(run2_low_up_3_hist);
312 run1_low_up_4_hist->Divide(run2_low_up_4_hist);
314 cout <<
"Histograms divided" <<
"\n";
315 run1_low_up_1_hist->SetMinimum(0.8);
316 run1_low_up_1_hist->SetMaximum(1.2);
317 run1_low_up_2_hist->SetMinimum(0.8);
318 run1_low_up_2_hist->SetMaximum(1.2);
319 run1_low_up_3_hist->SetMinimum(0.8);
320 run1_low_up_3_hist->SetMaximum(1.2);
321 run1_low_up_4_hist->SetMinimum(0.8);
322 run1_low_up_4_hist->SetMaximum(1.2);
338 TCanvas *
c1 =
new TCanvas(
"c1",
"c1 pedsubpeak ",200,10,1200,1200);
342 TVirtualPad *c1_1 = c1->cd(1);
343 c1_1->SetBorderMode(0);
344 c1_1->SetFillColor(0);
348 c1_1->SetBorderMode(0);
349 c1_1->SetFillColor(0);
351 if (errorbars ==0) {run1_low_up_1_hist->Draw(
"hist p");}
352 else {run1_low_up_1_hist->Draw(
"E1 X0");}
353 run1_low_up_1_hist->SetMarkerColor(2);
354 run1_low_up_1_hist->SetMarkerStyle(2);
357 sprintf(
string,
"Run ratio to reference");
359 TLatex *
t1 =
new TLatex(0.15,0.92,
string);
361 t1->SetTextSize(0.03);
365 TVirtualPad *c1_2 = c1->cd(2);
366 c1_2->SetBorderMode(0);
367 c1_2->SetFillColor(0);
371 c1_2->SetBorderMode(0);
372 c1_2->SetFillColor(0);
374 if (errorbars ==0) {run1_low_up_2_hist->Draw(
"hist p");}
375 else {run1_low_up_2_hist->Draw(
"E1 X0");}
376 run1_low_up_2_hist->SetMarkerColor(2);
377 run1_low_up_2_hist->SetMarkerStyle(2);
380 TVirtualPad *c1_3 = c1->cd(3);
381 c1_3->SetBorderMode(0);
382 c1_3->SetFillColor(0);
387 c1_3->SetBorderMode(0);
388 c1_3->SetFillColor(0);
390 if (errorbars ==0) {run1_low_up_3_hist->Draw(
"hist p");}
391 else {run1_low_up_3_hist->Draw(
"E1 X0");}
392 run1_low_up_3_hist->SetMarkerColor(2);
393 run1_low_up_3_hist->SetMarkerStyle(2);
397 TVirtualPad *c1_4 = c1->cd(4);
398 c1_4->SetBorderMode(0);
399 c1_4->SetFillColor(0);
403 c1_4->SetBorderMode(0);
404 c1_4->SetFillColor(0);
406 if (errorbars ==0) {run1_low_up_4_hist->Draw(
"hist p");}
407 else {run1_low_up_4_hist->Draw(
"E1 X0");}
408 run1_low_up_4_hist->SetMarkerColor(2);
409 run1_low_up_4_hist->SetMarkerStyle(2);
sprintf(text,"Post KinFit Cut")
void Plot_BCAL_LED_Ratio_low_up_quadavg(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)