26 #include <TPaveText.h>
33 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin);
39 gROOT->SetStyle(
"Plain");
40 gStyle->SetOptStat(0);
41 gStyle->SetOptTitle(1);
46 sprintf(fname,
"%s", argv[1]);
52 string promt = (
string)fname;
54 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
55 runnumber += fname[
i];
57 TFile *hfile =
new TFile(fname,
"READ");
60 double Cut0[7][5][8] = {
61 {{0., 0., 0., 0., 0., 0., 0., 0.},
62 {0., 1.0, 1.0, 0., 0., 0., 0., 0.},
63 {0., 1., 1., 1., 0., 0., 0., 0.},
64 {0., 0., 0., 0., 1., 0., 0., 0.},
65 {0., 1., 1., 0., 0., 0., 0., 0.}},
67 {{0., 0., 0., 0., 0., 0., 0., 0.},
68 {0., 3500., 3500., 3500., 3500., 0., 0., 0.},
69 {0., 12000., 4500., 3500., 3500., 4000., 4500., 5500.},
70 {0., 0., 0., 0., 200., 0., 0., 0.},
71 {0., 4500., 4500., 4500., 4500., 0., 0., 0.}},
72 {{0., 0., 0., 0., 0., 0., 0., 0.},
73 {0., 3., 3., 0., 0., 0., 0., 0.},
74 {0., 3., 3., 3., 0., 0., 0., 0.},
75 {0., 0., 0., 0., 3., 0., 0., 0.},
76 {0., 2., 2., 0., 0., 0., 0., 0.}},
77 {{0., 0., 0., 0., 0., 0., 0., 0.},
78 {0., 0.4, 0.4, 0., 0., 0., 0., 0.},
79 {0., 0.4, 0.4, 0.4, 0., 0., 0., 0.},
80 {0., 0., 0., 0., 0.4, 0., 0., 0.},
81 {0., 0.8, 0.8, 0., 0., 0., 0., 0.}},
82 {{0., 0., 0., 0., 0., 0., 0., 0.},
83 {0., 4.7, 4.7, 0., 0., 0., 0., 0.},
84 {0., 4.8, 4.8, 5.0, 0., 0., 0., 0.},
85 {0., 0., 0., 0., 4.8, 0., 0., 0.},
86 {0., 4.0, 4.0, 0., 0., 0., 0., 0.}},
87 {{0., 0., 0., 0., 0., 0., 0., 0.},
88 {0., 3.5, 3.5, 0., 0., 0., 0., 0.},
89 {0., 4.0, 4.0, 4.0, 0., 0., 0., 0.},
90 {0., 0., 0., 0., 3., 0., 0., 0.},
91 {0., 3.5, 3.5, 0., 0., 0., 0., 0.}},
92 {{0., 0., 0., 0., 0., 0., 0., 0.},
93 {0., 0., 0., 0., 0., 0., 0., 0.},
94 {0., 0., 0., 0., 0., 0., 0., 0.},
95 {0., 0., 0., 0., 0., 0., 0., 0.},
96 {0., 0., 0., 0., 0., 0., 0., 0.}}};
98 double CutAb[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
99 {0., 20., 7., 0., 0., 0., 0., 0.},
100 {0., 16., 13., 4., 0., 0., 0., 0.},
101 {0., 0., 0., 0., 45., 0., 0., 0.},
102 {0., 10., 5., 0., 0., 0., 0., 0.}};
104 double CutPo[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
105 {0., 9., 3., 0., 0., 0., 0., 0.},
106 {0., 8., 6., 2., 0., 0., 0., 0.},
107 {0., 0., 0., 0., 20., 0., 0., 0.},
108 {0., 5., 3., 0., 0., 0., 0., 0.}};
125 TCanvas *
c1 =
new TCanvas(
"c1",
"Hcal4test", 200, 10, 700, 900);
127 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 500);
128 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 500);
129 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 500, 500);
130 TCanvas *cFour =
new TCanvas(
"cFour",
"cFour", 1500, 1000);
131 TCanvas *cFour1 =
new TCanvas(
"cFour1",
"cFour1", 1200, 800);
132 TCanvas *cNine =
new TCanvas(
"cNine",
"cNine", 1500, 1500);
136 TCanvas *c4x6 =
new TCanvas(
"c4x6",
"c4x6", 1200, 2400);
138 TCanvas *c5x6 =
new TCanvas(
"c5x6",
"c5x6", 1500, 2400);
140 TCanvas *cRBX1 =
new TCanvas(
"cRBX1",
"cRBX1", 1200, 1000);
143 TCanvas *cRBX31 =
new TCanvas(
"cRBX31",
"cRBX31", 1860, 600);
148 int k_min[5] = {0, 1, 1, 4, 1};
150 int k_max[5] = {0, 2, 3, 4, 2};
152 int k_maxupgrade[5] = {0, 4, 7, 4, 4};
159 TH1F *LumLum = (TH1F *)hfile->Get(
"h_lsnumber_per_eachLS");
160 int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin());
161 cout <<
" MaxLumDanila= " << MaxLumDanila << endl;
164 LumLum->SetMarkerStyle(10);
165 LumLum->SetMarkerSize(0.8);
166 LumLum->GetYaxis()->SetLabelSize(0.04);
167 LumLum->SetTitle(
"Cont. number per LS \b");
168 LumLum->SetXTitle(
"Cont.number \b");
169 LumLum->SetYTitle(
"Ls \b");
170 LumLum->SetMarkerColor(4);
171 LumLum->SetLineColor(0);
172 LumLum->SetMinimum(0.8);
173 LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila);
174 LumLum->Draw(
"Error");
177 TH1F *LumiEv = (TH1F *)hfile->Get(
"h_nevents_per_eachRealLS");
178 int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
180 for (
int i = 1;
i <= LumiEv->GetXaxis()->GetNbins();
i++) {
181 if (LumiEv->GetBinContent(
i)) {
185 cout <<
" MaxLum0= " << MaxLum0 <<
" MaxLum= " << MaxLum << endl;
191 LumiEv->GetYaxis()->SetLabelSize(0.04);
192 LumiEv->SetTitle(
"Number of events per LS");
193 LumiEv->SetXTitle(
"LS");
194 LumiEv->SetYTitle(
"Number of events ");
195 LumiEv->SetMarkerStyle(10);
196 LumiEv->SetMarkerSize(0.8);
197 LumiEv->SetMarkerColor(4);
198 LumiEv->SetLineColor(0);
200 LumiEv->GetXaxis()->SetRangeUser(0, MaxLum);
201 LumiEv->Draw(
"Error");
203 cHB->Print(
"LumiEvent.png");
209 TH1F *H_NumBadChanDepth[7][5][5];
215 H_NumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS1");
216 H_NumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS2");
218 H_NumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS3");
219 H_NumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS4");
220 H_NumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplLS5");
222 H_NumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplLS8");
224 H_NumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS6");
225 H_NumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS7");
231 H_NumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS1");
232 H_NumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS2");
234 H_NumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS3");
235 H_NumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS4");
236 H_NumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS5");
238 H_NumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS8");
240 H_NumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS6");
241 H_NumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS7");
247 H_NumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplLS1");
248 H_NumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplLS2");
250 H_NumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplLS3");
251 H_NumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplLS4");
252 H_NumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplLS5");
254 H_NumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplLS8");
256 H_NumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplLS6");
257 H_NumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplLS7");
263 H_NumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS1");
264 H_NumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS2");
266 H_NumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS3");
267 H_NumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS4");
268 H_NumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanALS5");
270 H_NumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanALS8");
272 H_NumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS6");
273 H_NumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS7");
279 H_NumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS1");
280 H_NumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS2");
282 H_NumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS3");
283 H_NumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS4");
284 H_NumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxALS5");
286 H_NumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxALS8");
288 H_NumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS6");
289 H_NumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS7");
291 gStyle->SetOptStat(110000);
294 for (
int sub = 1; sub <= 4; sub++) {
303 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
315 H_NumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
316 H_NumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.8);
318 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
320 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
322 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
324 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
326 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Amplitude> \b");
328 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Width> \b");
330 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Ratio> \b");
332 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS mean> \b");
334 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS max> \b");
335 H_NumBadChanDepth[
test][sub][
k]->SetYTitle(
"Number of channel-LSs\b");
336 H_NumBadChanDepth[
test][sub][
k]->SetMarkerColor(4);
337 H_NumBadChanDepth[
test][sub][
k]->SetLineColor(0);
339 H_NumBadChanDepth[
test][sub][
k]->SetMinimum(0.8);
340 H_NumBadChanDepth[
test][sub][
k]->Draw(
"Error");
344 cHB->Print(
"H_NBCMNHB.png");
348 cHE->Print(
"H_NBCMNHE.png");
352 cONE->Print(
"H_NBCMNHO.png");
356 cHB->Print(
"H_NBCMNHF.png");
363 cHB->Print(
"H_ADCamplHB.png");
367 cHE->Print(
"H_ADCamplHE.png");
371 cONE->Print(
"H_ADCamplHO.png");
375 cHB->Print(
"H_ADCamplHF.png");
381 cHB->Print(
"H_WidthHB.png");
385 cHE->Print(
"H_WidthHE.png");
389 cONE->Print(
"H_WidthHO.png");
393 cHB->Print(
"H_WidthHF.png");
399 cHB->Print(
"H_RatioHB.png");
403 cHE->Print(
"H_RatioHE.png");
407 cONE->Print(
"H_RatioHO.png");
411 cHB->Print(
"H_RatioHF.png");
417 cHB->Print(
"H_TmeanHB.png");
421 cHE->Print(
"H_TmeanHE.png");
425 cONE->Print(
"H_TmeanHO.png");
429 cHB->Print(
"H_TmeanHF.png");
435 cHB->Print(
"H_TmaxHB.png");
439 cHE->Print(
"H_TmaxHE.png");
443 cONE->Print(
"H_TmaxHO.png");
447 cHB->Print(
"H_TmaxHF.png");
454 gStyle->SetOptStat(0);
460 TH2F *MapNumBadChanDepth[7][5][5];
461 TH2F *MapNumChanDepth[7][5][5];
462 TH2F *MapNumBadChanFull[7];
463 TH2F *MapNumChanFull[7];
469 MapNumBadChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HB");
470 MapNumBadChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HB");
472 MapNumBadChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HE");
473 MapNumBadChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HE");
474 MapNumBadChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HE");
476 MapNumBadChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HO");
478 MapNumBadChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HF");
479 MapNumBadChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HF");
481 MapNumBadChanFull[0] = (TH2F *)MapNumBadChanDepth[0][1][1]->Clone();
483 MapNumChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HB");
484 MapNumChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HB");
486 MapNumChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HE");
487 MapNumChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HE");
488 MapNumChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HE");
490 MapNumChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HO");
492 MapNumChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HF");
493 MapNumChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HF");
495 MapNumChanFull[0] = (TH2F *)MapNumChanDepth[0][1][1]->Clone();
501 MapNumBadChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS1");
502 MapNumBadChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS2");
504 MapNumBadChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS3");
505 MapNumBadChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS4");
506 MapNumBadChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS5");
508 MapNumBadChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS8");
510 MapNumBadChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS6");
511 MapNumBadChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS7");
513 MapNumBadChanFull[1] = (TH2F *)MapNumBadChanDepth[1][1][1]->Clone();
515 MapNumChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS1");
516 MapNumChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS2");
518 MapNumChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS3");
519 MapNumChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS4");
520 MapNumChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS5");
522 MapNumChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS8");
524 MapNumChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS6");
525 MapNumChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS7");
527 MapNumChanFull[1] = (TH2F *)MapNumChanDepth[1][1][1]->Clone();
533 MapNumBadChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS1");
534 MapNumBadChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS2");
536 MapNumBadChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS3");
537 MapNumBadChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS4");
538 MapNumBadChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS5");
540 MapNumBadChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS8");
542 MapNumBadChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS6");
543 MapNumBadChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS7");
545 MapNumBadChanFull[2] = (TH2F *)MapNumBadChanDepth[2][1][1]->Clone();
547 MapNumChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS1");
548 MapNumChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS2");
550 MapNumChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS3");
551 MapNumChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS4");
552 MapNumChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS5");
554 MapNumChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS8");
556 MapNumChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS6");
557 MapNumChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS7");
559 MapNumChanFull[2] = (TH2F *)MapNumChanDepth[2][1][1]->Clone();
565 MapNumBadChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS1");
566 MapNumBadChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS2");
568 MapNumBadChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS3");
569 MapNumBadChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS4");
570 MapNumBadChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplLS5");
572 MapNumBadChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplLS8");
574 MapNumBadChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS6");
575 MapNumBadChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS7");
577 MapNumBadChanFull[3] = (TH2F *)MapNumBadChanDepth[3][1][1]->Clone();
579 MapNumChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS1");
580 MapNumChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS2");
582 MapNumChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS3");
583 MapNumChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS4");
584 MapNumChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS5");
586 MapNumChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS8");
588 MapNumChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS6");
589 MapNumChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS7");
591 MapNumChanFull[3] = (TH2F *)MapNumChanDepth[3][1][1]->Clone();
597 MapNumBadChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS1");
598 MapNumBadChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS2");
600 MapNumBadChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS3");
601 MapNumBadChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS4");
602 MapNumBadChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS5");
604 MapNumBadChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS8");
606 MapNumBadChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS6");
607 MapNumBadChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS7");
609 MapNumBadChanFull[4] = (TH2F *)MapNumBadChanDepth[4][1][1]->Clone();
611 MapNumChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS1");
612 MapNumChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS2");
614 MapNumChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS3");
615 MapNumChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS4");
616 MapNumChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS5");
618 MapNumChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS8");
620 MapNumChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS6");
621 MapNumChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS7");
623 MapNumChanFull[4] = (TH2F *)MapNumChanDepth[4][1][1]->Clone();
629 MapNumBadChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS1");
630 MapNumBadChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS2");
632 MapNumBadChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS3");
633 MapNumBadChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS4");
634 MapNumBadChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS5");
636 MapNumBadChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS8");
638 MapNumBadChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS6");
639 MapNumBadChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS7");
641 MapNumBadChanFull[5] = (TH2F *)MapNumBadChanDepth[5][1][1]->Clone();
643 MapNumChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS1");
644 MapNumChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS2");
646 MapNumChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS3");
647 MapNumChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS4");
648 MapNumChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS5");
650 MapNumChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS8");
652 MapNumChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS6");
653 MapNumChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS7");
655 MapNumChanFull[5] = (TH2F *)MapNumChanDepth[5][1][1]->Clone();
658 for (
int sub = 1; sub <= 4; sub++) {
667 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
676 MapNumBadChanDepth[
test][sub][
k]->Divide(
677 MapNumBadChanDepth[
test][sub][
k], MapNumChanDepth[
test][sub][k], 1, 1,
"B");
679 for (
int x = 1; x <= MapNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
680 for (
int y = 1; y <= MapNumBadChanFull[
test]->GetYaxis()->GetNbins(); y++) {
681 double ccc1 = MapNumBadChanDepth[
test][sub][
k]->GetBinContent(x, y);
682 MapNumBadChanFull[
test]->SetBinContent(x, y, MapNumBadChanFull[
test]->GetBinContent(x, y) + ccc1);
687 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
689 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
691 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
693 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
700 MapNumBadChanDepth[
test][sub][
k]->SetXTitle(
"#eta \b");
701 MapNumBadChanDepth[
test][sub][
k]->SetYTitle(
"#phi \b");
702 MapNumBadChanDepth[
test][sub][
k]->SetZTitle(
"Average estimator \b");
705 MapNumBadChanDepth[
test][sub][
k]->Draw(
"COLZ");
707 MapNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
708 MapNumBadChanDepth[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
712 cHB->Print(
"MapCapIdErrorHB.png");
716 cHE->Print(
"MapCapIdErrorHE.png");
720 cONE->Print(
"MapCapIdErrorHO.png");
724 cHB->Print(
"MapCapIdErrorHF.png");
730 cHB->Print(
"MapADCamplHB.png");
734 cHE->Print(
"MapADCamplHE.png");
738 cONE->Print(
"MapADCamplHO.png");
742 cHB->Print(
"MapADCamplHF.png");
748 cHB->Print(
"MapWidthHB.png");
752 cHE->Print(
"MapWidthHE.png");
756 cONE->Print(
"MapWidthHO.png");
760 cHB->Print(
"MapWidthHF.png");
766 cHB->Print(
"MapRatioHB.png");
770 cHE->Print(
"MapRatioHE.png");
774 cONE->Print(
"MapRatioHO.png");
778 cHB->Print(
"MapRatioHF.png");
784 cHB->Print(
"MapTmeanHB.png");
788 cHE->Print(
"MapTmeanHE.png");
792 cONE->Print(
"MapTmeanHO.png");
796 cHB->Print(
"MapTmeanHF.png");
802 cHB->Print(
"MapTmaxHB.png");
806 cHE->Print(
"MapTmaxHE.png");
810 cONE->Print(
"MapTmaxHO.png");
814 cHB->Print(
"MapTmaxHF.png");
824 MapNumBadChanFull[
test]->SetTitle(
"All subdetectors\b");
825 MapNumBadChanFull[
test]->SetXTitle(
"#eta \b");
826 MapNumBadChanFull[
test]->SetYTitle(
"#phi \b");
828 MapNumBadChanFull[
test]->SetZTitle(
"Average Nbcs \b");
830 MapNumBadChanFull[
test]->SetZTitle(
"Average estimator \b");
832 MapNumBadChanFull[
test]->SetTitleOffset(0.75,
"Z");
833 MapNumBadChanFull[
test]->Draw(
"COLZ");
834 MapNumBadChanFull[
test]->GetYaxis()->SetRangeUser(0, 72.);
837 cONE->Print(
"MapCapIdError.png");
841 cONE->Print(
"MapADCAmpl.png");
845 cONE->Print(
"MapWidth.png");
849 cONE->Print(
"MapRatio.png");
853 cONE->Print(
"MapTmean.png");
857 cONE->Print(
"MapTmax.png");
867 TH1F *HistNumBadChanDepth[7][5][8];
868 TH1F *HistCutNumBadChanDepth[7][5][8];
869 TH1F *HistNumChanDepth[7][5][8];
875 TH1F *HistNumBadChanFull[7];
876 TH1F *HistNumChanFull[7];
882 HistNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
883 HistNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
885 HistNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
886 HistNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
887 HistNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
889 HistNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
891 HistNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
892 HistNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
894 HistNumBadChanFull[0] = (TH1F *)HistNumBadChanDepth[0][1][1]->Clone();
896 HistCutNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
897 HistCutNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
899 HistCutNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
900 HistCutNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
901 HistCutNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
903 HistCutNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
905 HistCutNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
906 HistCutNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
908 HistNumChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
909 HistNumChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
911 HistNumChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
912 HistNumChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
913 HistNumChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
915 HistNumChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
917 HistNumChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
918 HistNumChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
920 HistNumChanFull[0] = (TH1F *)HistNumChanDepth[0][1][1]->Clone();
928 HistNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS1");
929 HistNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS2");
931 HistNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth3HBu");
932 HistNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HBu");
935 HistNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS3");
936 HistNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS4");
937 HistNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS5");
939 HistNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HEu");
940 HistNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth5HEu");
941 HistNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth6HEu");
942 HistNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth7HEu");
945 HistNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS8");
948 HistNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6");
949 HistNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7");
951 HistNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6u");
952 HistNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7u");
955 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
959 HistCutNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS1");
960 HistCutNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS2");
962 HistCutNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth3HBu");
963 HistCutNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HBu");
966 HistCutNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS3");
967 HistCutNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS4");
968 HistCutNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS5");
970 HistCutNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HEu");
971 HistCutNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth5HEu");
972 HistCutNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth6HEu");
973 HistCutNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth7HEu");
976 HistCutNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS8");
979 HistCutNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6");
980 HistCutNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7");
982 HistCutNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6u");
983 HistCutNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7u");
987 HistNumChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS1");
988 HistNumChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS2");
990 HistNumChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth3HBu");
991 HistNumChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HBu");
994 HistNumChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS3");
995 HistNumChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS4");
996 HistNumChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS5");
998 HistNumChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HEu");
999 HistNumChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth5HEu");
1000 HistNumChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth6HEu");
1001 HistNumChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth7HEu");
1004 HistNumChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS8");
1007 HistNumChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6");
1008 HistNumChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7");
1010 HistNumChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6u");
1011 HistNumChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7u");
1014 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1016 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1022 HistNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS1");
1023 HistNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS2");
1025 HistNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS3");
1026 HistNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS4");
1027 HistNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS5");
1029 HistNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS8");
1031 HistNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS6");
1032 HistNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS7");
1034 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1036 HistCutNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS1");
1037 HistCutNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS2");
1039 HistCutNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS3");
1040 HistCutNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS4");
1041 HistCutNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS5");
1043 HistCutNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS8");
1045 HistCutNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS6");
1046 HistCutNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS7");
1048 HistNumChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS1");
1049 HistNumChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS2");
1051 HistNumChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS3");
1052 HistNumChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS4");
1053 HistNumChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS5");
1055 HistNumChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS8");
1057 HistNumChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS6");
1058 HistNumChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS7");
1060 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1065 HistNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS1");
1066 HistNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS2");
1068 HistNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS3");
1069 HistNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS4");
1070 HistNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplperLS5");
1072 HistNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplperLS8");
1074 HistNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS6");
1075 HistNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS7");
1077 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1079 HistCutNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS1");
1080 HistCutNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS2");
1082 HistCutNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS3");
1083 HistCutNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS4");
1084 HistCutNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS5");
1086 HistCutNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS8");
1088 HistCutNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS6");
1089 HistCutNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS7");
1091 HistNumChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS1");
1092 HistNumChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS2");
1094 HistNumChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS3");
1095 HistNumChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS4");
1096 HistNumChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplperLS5");
1098 HistNumChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplperLS8");
1100 HistNumChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS6");
1101 HistNumChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS7");
1103 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1108 HistNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS1");
1109 HistNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS2");
1111 HistNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS3");
1112 HistNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS4");
1113 HistNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS5");
1115 HistNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS8");
1117 HistNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS6");
1118 HistNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS7");
1120 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1122 HistCutNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS1");
1123 HistCutNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS2");
1125 HistCutNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS3");
1126 HistCutNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS4");
1127 HistCutNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS5");
1129 HistCutNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS8");
1131 HistCutNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS6");
1132 HistCutNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS7");
1134 HistNumChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS1");
1135 HistNumChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS2");
1137 HistNumChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS3");
1138 HistNumChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS4");
1139 HistNumChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS5");
1141 HistNumChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS8");
1143 HistNumChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS6");
1144 HistNumChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS7");
1146 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1151 HistNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS1");
1152 HistNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS2");
1154 HistNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS3");
1155 HistNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS4");
1156 HistNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS5");
1158 HistNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS8");
1160 HistNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS6");
1161 HistNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS7");
1163 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1165 HistCutNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS1");
1166 HistCutNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS2");
1168 HistCutNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS3");
1169 HistCutNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS4");
1170 HistCutNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS5");
1172 HistCutNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS8");
1174 HistCutNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS6");
1175 HistCutNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS7");
1177 HistNumChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS1");
1178 HistNumChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS2");
1180 HistNumChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS3");
1181 HistNumChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS4");
1182 HistNumChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS5");
1184 HistNumChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS8");
1186 HistNumChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS6");
1187 HistNumChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS7");
1189 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1192 for (
int sub = 1; sub <= 4; sub++) {
1193 if (sub == 1 &&
test != 1)
1195 if (sub == 1 &&
test == 1) {
1197 cFour1->Divide(2, 2);
1199 if (sub == 2 &&
test != 1)
1201 if (sub == 2 &&
test == 1) {
1203 cNine->Divide(3, 3);
1207 if (sub == 4 &&
test != 1)
1209 if (sub == 4 &&
test == 1) {
1211 cFour1->Divide(2, 2);
1214 int kkkkkkmax = k_max[sub];
1216 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
1217 kkkkkkmax = k_maxupgrade[sub];
1218 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1219 if (sub == 1 &&
test != 1)
1221 if (sub == 1 &&
test == 1)
1223 if (sub == 2 &&
test != 1)
1225 if (sub == 2 &&
test == 1)
1229 if (sub == 4 &&
test != 1)
1231 if (sub == 4 &&
test == 1)
1237 if (sub == 1 &&
k == 1) {
1240 for (
int x = 1; x <= HistNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
1241 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1242 HistNumBadChanFull[
test]->SetBinContent(x, HistNumBadChanFull[
test]->GetBinContent(x) + ccc1);
1243 double ccc2 = HistNumChanDepth[
test][sub][
k]->GetBinContent(x);
1244 HistNumChanFull[
test]->SetBinContent(x, HistNumChanFull[
test]->GetBinContent(x) + ccc2);
1249 HistNumBadChanDepth[
test][sub][
k]->Divide(
1250 HistNumBadChanDepth[
test][sub][
k], HistNumChanDepth[
test][sub][k], 1, 1,
"B");
1252 for (
int x = 1; x <= HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->GetNbins(); x++) {
1253 HistNumBadChanDepth[
test][sub][
k]->SetBinError(
float(x), 0.01);
1258 HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1261 HistNumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
1262 HistNumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.4);
1263 HistNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetLabelSize(0.04);
1265 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
1267 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
1269 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
1271 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
1273 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 5\b");
1275 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 6\b");
1277 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 7\b");
1278 HistNumBadChanDepth[
test][sub][
k]->SetXTitle(
"LS \b");
1280 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"<Number of bad channels> \b");
1282 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"Averaged estimator \b");
1283 HistNumBadChanDepth[
test][sub][
k]->SetMarkerColor(2);
1284 HistNumBadChanDepth[
test][sub][
k]->SetLineColor(0);
1290 HistNumBadChanDepth[
test][sub][
k]->Draw(
"Error");
1328 if (sub == 1 &&
test != 1) {
1331 if (sub == 1 &&
test == 1) {
1334 if (sub == 2 &&
test != 1) {
1337 if (sub == 2 &&
test == 1) {
1343 if (sub == 4 &&
test != 1) {
1346 if (sub == 4 &&
test == 1) {
1354 cHE->Print(
"HistNBCMNHB.png");
1358 cHE->Print(
"HistNBCMNHE.png");
1362 cHB->Print(
"HistNBCMNHO.png");
1366 cHE->Print(
"HistNBCMNHF.png");
1373 cFour1->Print(
"HistADCamplHB.png");
1377 cNine->Print(
"HistADCamplHE.png");
1381 cHB->Print(
"HistADCamplHO.png");
1385 cFour1->Print(
"HistADCamplHF.png");
1391 cHE->Print(
"HistWidthHB.png");
1395 cHE->Print(
"HistWidthHE.png");
1399 cHB->Print(
"HistWidthHO.png");
1403 cHE->Print(
"HistWidthHF.png");
1409 cHE->Print(
"HistRatioHB.png");
1413 cHE->Print(
"HistRatioHE.png");
1417 cHB->Print(
"HistRatioHO.png");
1421 cHE->Print(
"HistRatioHF.png");
1427 cHE->Print(
"HistTmeanHB.png");
1431 cHE->Print(
"HistTmeanHE.png");
1435 cHB->Print(
"HistTmeanHO.png");
1439 cHE->Print(
"HistTmeanHF.png");
1445 cHE->Print(
"HistTmaxHB.png");
1449 cHE->Print(
"HistTmaxHE.png");
1453 cHB->Print(
"HistTmaxHO.png");
1457 cHE->Print(
"HistTmaxHF.png");
1464 for (
int x = 1; x <= HistNumChanFull[6]->GetXaxis()->GetNbins(); x++) {
1465 HistNumChanFull[6]->SetBinContent(x, 0.0);
1466 int depthsubcount = 0.;
1467 for (
int sub = 1; sub <= 4; sub++) {
1468 int kkkkkkmax = k_max[sub];
1469 if (sub == 4 || sub == 2 || sub == 1)
1470 kkkkkkmax = k_maxupgrade[sub];
1472 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1476 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1477 HistNumChanFull[6]->SetBinContent(x, HistNumChanFull[6]->GetBinContent(x) + ccc1);
1480 if (depthsubcount > 0.) {
1481 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / depthsubcount);
1483 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / 8.);
1495 HistNumBadChanFull[
test]->Divide(HistNumBadChanFull[
test], HistNumChanFull[test], 1, 1,
"B");
1496 TH1F *kfitq =
new TH1F(
"kfitq",
"", MaxLum, 1., MaxLum + 1.);
1497 int nx = kfitq->GetXaxis()->GetNbins();
1498 for (
int i = 1;
i <= nx;
i++) {
1499 double ccc1 = HistNumBadChanFull[
test]->GetBinContent(
i);
1501 kfitq->Fill(
float(
i), ccc1);
1502 kfitq->SetBinError(
float(
i), 0.01);
1505 kfitq->SetMarkerStyle(20);
1506 kfitq->SetMarkerSize(0.4);
1507 kfitq->GetYaxis()->SetLabelSize(0.04);
1509 kfitq->SetTitle(
"Average Nbch for whole Hcal \b");
1511 kfitq->SetTitle(
"Averaged estimator for whole Hcal \b");
1512 kfitq->SetXTitle(
"LS \b");
1514 kfitq->SetYTitle(
"<Number of bad channels> \b");
1516 kfitq->SetYTitle(
"Averaged estimator \b");
1517 kfitq->SetMarkerColor(2);
1518 kfitq->SetLineColor(0);
1520 kfitq->Draw(
"Error");
1540 TH1F *lpuio =
new TH1F(
"lpuio",
"", MaxLum, 1., MaxLum + 1.);
1541 int nx = lpuio->GetXaxis()->GetNbins();
1542 for (
int i = 1;
i <= nx;
i++) {
1543 double ccc1 = HistNumChanFull[6]->GetBinContent(
i);
1545 lpuio->Fill(
float(
i), ccc1);
1546 lpuio->SetBinError(
float(
i), 0.01);
1549 lpuio->SetMarkerStyle(20);
1550 lpuio->SetMarkerSize(0.4);
1551 lpuio->GetYaxis()->SetLabelSize(0.04);
1552 lpuio->SetTitle(
"Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1553 lpuio->SetXTitle(
"LS \b");
1554 lpuio->SetYTitle(
"Mean of Averaged estimator \b");
1555 lpuio->SetMarkerColor(2);
1556 lpuio->SetLineColor(0);
1558 lpuio->Draw(
"Error");
1561 cHB->Print(
"HistCapID.png");
1565 cHE->Print(
"HistADCAmpl.png");
1569 cHB->Print(
"HistWidth.png");
1573 cHB->Print(
"HistRatio.png");
1577 cHB->Print(
"HistTmean.png");
1581 cHB->Print(
"HistTmax.png");
1595 TH1F *HistAbnormNumBadChanDepth[5][5];
1601 HistAbnormNumBadChanDepth[1][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HB");
1602 HistAbnormNumBadChanDepth[1][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HB");
1603 HistAbnormNumBadChanDepth[2][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HE");
1604 HistAbnormNumBadChanDepth[2][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HE");
1605 HistAbnormNumBadChanDepth[2][3] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth3_HE");
1606 HistAbnormNumBadChanDepth[3][4] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth4_HO");
1607 HistAbnormNumBadChanDepth[4][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HF");
1608 HistAbnormNumBadChanDepth[4][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HF");
1610 for (
int sub = 1; sub <= 4; sub++) {
1619 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1631 HistAbnormNumBadChanDepth[sub][
k]->Divide(
1632 HistAbnormNumBadChanDepth[sub][
k], HistNumChanDepth[0][sub][k], 1, 1,
"B");
1634 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 1\b");
1636 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 2\b");
1638 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 3\b");
1640 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 4\b");
1641 HistAbnormNumBadChanDepth[sub][
k]->SetXTitle(
"LS \b");
1642 HistAbnormNumBadChanDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1643 if (MaxLum <= 1000) {
1644 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerStyle(20);
1645 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerSize(0.5);
1646 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerColor(1);
1647 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(0);
1648 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1649 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"P");
1651 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(1);
1652 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1653 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"L");
1657 cHB->Print(
"Hist_CAPID_Abnorm_HB.png");
1661 cHE->Print(
"Hist_CAPID_Abnorm_HE.png");
1665 cONE->Print(
"Hist_CAPID_Abnorm_HO.png");
1669 cHB->Print(
"Hist_CAPID_Abnorm_HF.png");
1678 TH1F *HistPortBadEventsDepth[5][5];
1680 HistPortBadEventsDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HB");
1681 HistPortBadEventsDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HB");
1682 HistPortBadEventsDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HE");
1683 HistPortBadEventsDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HE");
1684 HistPortBadEventsDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrateC_depth3_HE");
1685 HistPortBadEventsDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrateC_depth4_HO");
1686 HistPortBadEventsDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HF");
1687 HistPortBadEventsDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HF");
1689 TH1F *HistNumRateDepth[5][5];
1690 HistNumRateDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
1691 HistNumRateDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
1692 HistNumRateDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
1693 HistNumRateDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
1694 HistNumRateDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
1695 HistNumRateDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
1696 HistNumRateDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
1697 HistNumRateDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
1699 for (
int sub = 1; sub <= 4; sub++) {
1708 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1720 HistPortBadEventsDepth[sub][
k]->Divide(HistPortBadEventsDepth[sub][
k], HistNumRateDepth[sub][k], 1, 1,
"B");
1723 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1725 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1727 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1729 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1730 HistPortBadEventsDepth[sub][
k]->SetXTitle(
"LS \b");
1731 HistPortBadEventsDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1732 if (MaxLum <= 1000) {
1733 HistPortBadEventsDepth[sub][
k]->SetMarkerStyle(20);
1734 HistPortBadEventsDepth[sub][
k]->SetMarkerSize(0.5);
1735 HistPortBadEventsDepth[sub][
k]->SetMarkerColor(1);
1736 HistPortBadEventsDepth[sub][
k]->SetLineColor(0);
1737 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1738 HistPortBadEventsDepth[sub][
k]->Draw(
"P");
1740 HistPortBadEventsDepth[sub][
k]->SetLineColor(1);
1741 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1742 HistPortBadEventsDepth[sub][
k]->Draw(
"L");
1746 cHB->Print(
"HistPortHB.png");
1750 cHE->Print(
"HistPortHE.png");
1754 cONE->Print(
"HistPortHO.png");
1758 cHB->Print(
"HistPortHF.png");
1769 TH1F *HistNBadChsDepth[5][5];
1771 HistNBadChsDepth[1][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HB");
1772 HistNBadChsDepth[1][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HB");
1773 HistNBadChsDepth[2][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HE");
1774 HistNBadChsDepth[2][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HE");
1775 HistNBadChsDepth[2][3] = (TH1F *)hfile->Get(
"h_nbadchannels_depth3_HE");
1776 HistNBadChsDepth[3][4] = (TH1F *)hfile->Get(
"h_nbadchannels_depth4_HO");
1777 HistNBadChsDepth[4][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HF");
1778 HistNBadChsDepth[4][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HF");
1780 for (
int sub = 1; sub <= 4; sub++) {
1789 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1803 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1805 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1807 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1809 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1810 HistNBadChsDepth[sub][
k]->SetXTitle(
"Number of bad channels\b");
1811 HistNBadChsDepth[sub][
k]->SetYTitle(
"Number of events\b");
1816 HistNBadChsDepth[sub][
k]->Draw(
"");
1819 cHB->Print(
"HistNBadChsHB.png");
1823 cHE->Print(
"HistNBadChsHE.png");
1827 cONE->Print(
"HistNBadChsHO.png");
1831 cHB->Print(
"HistNBadChsHF.png");
1842 int flagErrAB_HB[2];
1843 flagErrAB_HB[0] = -1;
1844 flagErrAB_HB[1] = -1;
1845 double avedelta_HB = 0.;
1846 int lastLumiBin_HB = -1;
1847 int LSofFirstErrB_HB = -1;
1849 const int specCountA = 4;
1850 const int specColors[specCountA] = {1, 2, 3, 4};
1851 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS1_P1",
"h_sum0ADCAmplperLS1_P1"},
1852 {
"h_sumADCAmplperLS1_P2",
"h_sum0ADCAmplperLS1_P2"},
1853 {
"h_sumADCAmplperLS1_M1",
"h_sum0ADCAmplperLS1_M1"},
1854 {
"h_sumADCAmplperLS1_M2",
"h_sum0ADCAmplperLS1_M2"}};
1856 std::vector<TH1F *> hV;
1857 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
1864 for (
int i = 0;
i < specCountA;
i++) {
1866 std::cout <<
"debugger: errA_HB : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
1868 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
1869 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
1871 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1872 ptext->AddText(
"Missing histo");
1874 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
1875 ptext->AddText(hnames[i][0]);
1878 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
1879 ptext->AddText(hnames[i][1]);
1884 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
1885 hERT1orig->Divide(h1, h0, 1, 1,
"B");
1887 if ((lastLumiBin_HB < 0) && (i == 0)) {
1888 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1889 if (hERT1orig->GetBinContent(ibin) == 0)
1890 lastLumiBin_HB = ibin;
1894 lastLumiBin_HB += 3;
1895 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1896 lastLumiBin_HB = -1;
1899 if (lastLumiBin_HB > 1) {
1900 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HB)) {
1901 std::cout <<
"code failed" << std::endl;
1907 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1908 hV.push_back(hERT1);
1909 hERT1->SetMarkerStyle(20);
1910 hERT1->SetMarkerSize(0.4);
1911 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1912 hERT1->SetMarkerColor(specColors[i]);
1913 hERT1->SetLineColor(0);
1917 if (hERT1 != hERT1orig)
1920 hs->Draw(
"LPE1 nostack");
1922 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1923 hs->Draw(
"LPE1 nostack");
1929 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
1931 if (
int(hV.size()) == specCountA) {
1932 flagErrAB_HB[0] = 0;
1933 double sumdelta = 0.;
1935 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1937 double maxdelta = 0.;
1938 for (
unsigned int i = 0;
i < hV.size();
i++) {
1939 const TH1F *hi = hV[
i];
1940 for (
unsigned int j = 1;
j < hV.size();
j++) {
1941 const TH1F *hj = hV[
j];
1942 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1943 if (delta > maxdelta)
1947 if (maxdelta > 0.) {
1948 diff->Fill(maxdelta);
1949 sumdelta += maxdelta;
1954 avedelta_HB = sumdelta / nnndelta;
1955 std::cout <<
"******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1956 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1957 flagErrAB_HB[0] = 1;
1960 diff->SetMarkerStyle(20);
1961 diff->SetMarkerSize(0.8);
1962 diff->SetXTitle(
"max difference \b");
1963 diff->SetMarkerColor(2);
1964 diff->SetLineColor(0);
1967 diff->Draw(
"Error");
1970 cHB->Print(
"HistErrA_HB.png");
1977 for (
unsigned int i = 0;
i < hV.size();
i++)
1984 const int specCountB = 4;
1985 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS1",
"h_2D0sumErrorBLS1"},
1986 {
"h_sumErrorBperLS1",
"h_sum0ErrorBperLS1"},
1987 {
"h_2DsumErrorBLS2",
"h_2D0sumErrorBLS2"},
1988 {
"h_sumErrorBperLS2",
"h_sum0ErrorBperLS2"}};
1995 TH1F *hRate2orig =
NULL;
1996 TH2F *h2Cefz6 =
NULL;
1997 TString hname1 = hnames[2 *
depth - 2][0];
1998 TString hname0 = hnames[2 *
depth - 2][1];
1999 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2000 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2002 std::cout <<
"debugger: errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2003 if (!twod1 || !twod0) {
2004 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2005 ptext->AddText(
"Missing histos");
2007 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2008 ptext->AddText(hname1);
2011 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2012 ptext->AddText(hname0);
2016 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2017 h2Cefz6->SetTitle(Form(
"HB Depth %d \b",
depth));
2018 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2023 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2024 h2Cefz6->SetMarkerStyle(20);
2025 h2Cefz6->SetMarkerSize(0.4);
2027 h2Cefz6->SetXTitle(
"#eta \b");
2028 h2Cefz6->SetYTitle(
"#phi \b");
2029 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HB Depth%d \b",
depth));
2030 h2Cefz6->SetMarkerColor(2);
2031 h2Cefz6->SetLineColor(2);
2032 h2Cefz6->Draw(
"COLZ");
2039 hname1 = hnames[2 *
depth - 1][0];
2040 hname0 = hnames[2 *
depth - 1][1];
2041 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2042 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2044 std::cout <<
"errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2046 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2047 ptext->AddText(
"Missing histo");
2049 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2050 ptext->AddText(hname1);
2053 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2054 ptext->AddText(hname0);
2061 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2062 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2064 TH1F *hRate2 =
NULL;
2065 if (lastLumiBin_HB > 1) {
2066 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HB)) {
2067 std::cout <<
"code failed" << std::endl;
2071 hRate2 = hRate2orig;
2073 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2074 hRate2->SetMarkerStyle(20);
2075 hRate2->SetMarkerSize(0.8);
2077 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b",
depth));
2078 hRate2->SetMarkerColor(2);
2079 hRate2->SetLineColor(0);
2080 hRate2->Draw(
"Error");
2082 if (LSofFirstErrB_HB == -1) {
2083 int nx = hRate2->GetXaxis()->GetNbins();
2084 for (
int i = 1;
i <= nx;
i++) {
2085 double ccc1 = hRate2->GetBinContent(
i);
2087 cout <<
"****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2089 LSofFirstErrB_HB =
i;
2097 if (hRate2 != hRate2orig) {
2099 hRate2orig = hRate2;
2104 cHB->Print(Form(
"HistErrB_HB_%d.png",
depth));
2119 int flagErrAB_HE[2];
2120 flagErrAB_HE[0] = -1;
2121 flagErrAB_HE[1] = -1;
2122 double avedelta_HE = 0.;
2123 int lastLumiBin_HE = -1;
2124 int LSofFirstErrB_HE = -1;
2126 const int specCountA = 4;
2127 const int specColors[specCountA] = {1, 2, 3, 4};
2128 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS3_P1",
"h_sum0ADCAmplperLS3_P1"},
2129 {
"h_sumADCAmplperLS3_P2",
"h_sum0ADCAmplperLS3_P2"},
2130 {
"h_sumADCAmplperLS3_M1",
"h_sum0ADCAmplperLS3_M1"},
2131 {
"h_sumADCAmplperLS3_M2",
"h_sum0ADCAmplperLS3_M2"}};
2133 std::vector<TH1F *> hV;
2134 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2141 for (
int i = 0;
i < specCountA;
i++) {
2143 std::cout <<
"debugger: errA_HE : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2145 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2146 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2148 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2149 ptext->AddText(
"Missing histo");
2151 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2152 ptext->AddText(hnames[i][0]);
2155 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2156 ptext->AddText(hnames[i][1]);
2161 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2162 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2164 if ((lastLumiBin_HE < 0) && (i == 0)) {
2165 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2166 if (hERT1orig->GetBinContent(ibin) == 0)
2167 lastLumiBin_HE = ibin;
2171 lastLumiBin_HE += 3;
2172 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2173 lastLumiBin_HE = -1;
2176 if (lastLumiBin_HE > 1) {
2177 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HE)) {
2178 std::cout <<
"code failed" << std::endl;
2184 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2185 hV.push_back(hERT1);
2186 hERT1->SetMarkerStyle(20);
2187 hERT1->SetMarkerSize(0.4);
2188 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2189 hERT1->SetMarkerColor(specColors[i]);
2190 hERT1->SetLineColor(0);
2194 if (hERT1 != hERT1orig)
2197 hs->Draw(
"LPE1 nostack");
2199 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2200 hs->Draw(
"LPE1 nostack");
2206 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2208 if (
int(hV.size()) == specCountA) {
2209 flagErrAB_HE[0] = 0;
2210 double sumdelta = 0.;
2212 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2214 double maxdelta = 0.;
2215 for (
unsigned int i = 0;
i < hV.size();
i++) {
2216 const TH1F *hi = hV[
i];
2217 for (
unsigned int j = 1;
j < hV.size();
j++) {
2218 const TH1F *hj = hV[
j];
2219 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2220 if (delta > maxdelta)
2224 if (maxdelta > 0.) {
2225 diff->Fill(maxdelta);
2226 sumdelta += maxdelta;
2231 avedelta_HE = sumdelta / nnndelta;
2232 std::cout <<
"******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2233 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2234 flagErrAB_HE[0] = 1;
2237 diff->SetMarkerStyle(20);
2238 diff->SetMarkerSize(0.8);
2239 diff->SetXTitle(
"max difference \b");
2240 diff->SetMarkerColor(2);
2241 diff->SetLineColor(0);
2244 diff->Draw(
"Error");
2247 cHB->Print(
"HistErrA_HE.png");
2254 for (
unsigned int i = 0;
i < hV.size();
i++)
2261 const int specCountB = 6;
2262 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS3",
"h_2D0sumErrorBLS3"},
2263 {
"h_sumErrorBperLS3",
"h_sum0ErrorBperLS3"},
2264 {
"h_2DsumErrorBLS4",
"h_2D0sumErrorBLS4"},
2265 {
"h_sumErrorBperLS4",
"h_sum0ErrorBperLS4"},
2266 {
"h_2DsumErrorBLS5",
"h_2D0sumErrorBLS5"},
2267 {
"h_sumErrorBperLS5",
"h_sum0ErrorBperLS5"}};
2274 TH1F *hRate2orig =
NULL;
2275 TH2F *h2Cefz6 =
NULL;
2276 TString hname1 = hnames[2 *
depth - 2][0];
2277 TString hname0 = hnames[2 *
depth - 2][1];
2278 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2279 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2281 std::cout <<
"debugger: errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2282 if (!twod1 || !twod0) {
2283 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2284 ptext->AddText(
"Missing histos");
2286 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2287 ptext->AddText(hname1);
2290 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2291 ptext->AddText(hname0);
2295 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2296 h2Cefz6->SetTitle(Form(
"HE Depth %d \b",
depth));
2297 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2302 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2303 h2Cefz6->SetMarkerStyle(20);
2304 h2Cefz6->SetMarkerSize(0.4);
2306 h2Cefz6->SetXTitle(
"#eta \b");
2307 h2Cefz6->SetYTitle(
"#phi \b");
2308 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HE Depth%d \b",
depth));
2309 h2Cefz6->SetMarkerColor(2);
2310 h2Cefz6->SetLineColor(2);
2311 h2Cefz6->Draw(
"COLZ");
2318 hname1 = hnames[2 *
depth - 1][0];
2319 hname0 = hnames[2 *
depth - 1][1];
2320 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2321 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2323 std::cout <<
"errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2325 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2326 ptext->AddText(
"Missing histo");
2328 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2329 ptext->AddText(hname1);
2332 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2333 ptext->AddText(hname0);
2340 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2341 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2343 TH1F *hRate2 =
NULL;
2344 if (lastLumiBin_HE > 1) {
2345 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HE)) {
2346 std::cout <<
"code failed" << std::endl;
2350 hRate2 = hRate2orig;
2352 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2353 hRate2->SetMarkerStyle(20);
2354 hRate2->SetMarkerSize(0.8);
2356 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b",
depth));
2357 hRate2->SetMarkerColor(2);
2358 hRate2->SetLineColor(0);
2359 hRate2->Draw(
"Error");
2361 if (LSofFirstErrB_HE == -1) {
2362 int nx = hRate2->GetXaxis()->GetNbins();
2363 for (
int i = 1;
i <= nx;
i++) {
2364 double ccc1 = hRate2->GetBinContent(
i);
2366 cout <<
"****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2368 LSofFirstErrB_HE =
i;
2376 if (hRate2 != hRate2orig) {
2378 hRate2orig = hRate2;
2383 cHB->Print(Form(
"HistErrB_HE_%d.png",
depth));
2398 int flagErrAB_HO[2];
2399 flagErrAB_HO[0] = -1;
2400 flagErrAB_HO[1] = -1;
2401 double avedelta_HO = 0.;
2402 int lastLumiBin_HO = -1;
2403 int LSofFirstErrB_HO = -1;
2405 const int specCountA = 4;
2406 const int specColors[specCountA] = {1, 2, 3, 4};
2407 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS8_P1",
"h_sum0ADCAmplperLS8_P1"},
2408 {
"h_sumADCAmplperLS8_P2",
"h_sum0ADCAmplperLS8_P2"},
2409 {
"h_sumADCAmplperLS8_M1",
"h_sum0ADCAmplperLS8_M1"},
2410 {
"h_sumADCAmplperLS8_M2",
"h_sum0ADCAmplperLS8_M2"}};
2412 std::vector<TH1F *> hV;
2413 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2420 for (
int i = 0;
i < specCountA;
i++) {
2422 std::cout <<
"debugger: errA_HO : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2424 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2425 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2427 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2428 ptext->AddText(
"Missing histo");
2430 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2431 ptext->AddText(hnames[i][0]);
2434 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2435 ptext->AddText(hnames[i][1]);
2440 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2441 hoRT1orig->Divide(h1, h0, 1, 1,
"B");
2443 if ((lastLumiBin_HO < 0) && (i == 0)) {
2444 for (
int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2445 if (hoRT1orig->GetBinContent(ibin) == 0)
2446 lastLumiBin_HO = ibin;
2450 lastLumiBin_HO += 3;
2451 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2452 lastLumiBin_HO = -1;
2455 if (lastLumiBin_HO > 1) {
2456 if (!
copyContents(&hoRT1, Form(
"ERT1_%d", i),
"", hoRT1orig, lastLumiBin_HO)) {
2457 std::cout <<
"code failed" << std::endl;
2463 hoRT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2464 hV.push_back(hoRT1);
2465 hoRT1->SetMarkerStyle(20);
2466 hoRT1->SetMarkerSize(0.4);
2467 hoRT1->SetXTitle(
"<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2468 hoRT1->SetMarkerColor(specColors[i]);
2469 hoRT1->SetLineColor(0);
2473 if (hoRT1 != hoRT1orig)
2476 hs->Draw(
"LPE1 nostack");
2478 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2479 hs->Draw(
"LPE1 nostack");
2485 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2487 if (
int(hV.size()) == specCountA) {
2488 flagErrAB_HO[0] = 0;
2489 double sumdelta = 0.;
2491 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2493 double maxdelta = 0.;
2494 for (
unsigned int i = 0;
i < hV.size();
i++) {
2495 const TH1F *hi = hV[
i];
2496 for (
unsigned int j = 1;
j < hV.size();
j++) {
2497 const TH1F *hj = hV[
j];
2498 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2499 if (delta > maxdelta)
2503 if (maxdelta > 0.) {
2504 diff->Fill(maxdelta);
2505 sumdelta += maxdelta;
2510 avedelta_HO = sumdelta / nnndelta;
2511 std::cout <<
"******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2512 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2513 flagErrAB_HO[0] = 1;
2516 diff->SetMarkerStyle(20);
2517 diff->SetMarkerSize(0.8);
2518 diff->SetXTitle(
"max difference \b");
2519 diff->SetMarkerColor(2);
2520 diff->SetLineColor(0);
2523 diff->Draw(
"Error");
2526 cHB->Print(
"HistErrA_HO.png");
2533 for (
unsigned int i = 0;
i < hV.size();
i++)
2540 const int specCountB = 2;
2541 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS8",
"h_2D0sumErrorBLS8"},
2542 {
"h_sumErrorBperLS8",
"h_sum0ErrorBperLS8"}};
2549 TH1F *hRate2orig =
NULL;
2550 TH2F *h2Cefz6 =
NULL;
2551 TString hname1 = hnames[2 *
depth - 8][0];
2552 TString hname0 = hnames[2 *
depth - 8][1];
2553 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2554 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2556 std::cout <<
"debugger: errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2557 if (!twod1 || !twod0) {
2558 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2559 ptext->AddText(
"Missing histos");
2561 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2562 ptext->AddText(hname1);
2565 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2566 ptext->AddText(hname0);
2570 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2571 h2Cefz6->SetTitle(Form(
"HO Depth %d \b",
depth));
2572 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2577 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2578 h2Cefz6->SetMarkerStyle(20);
2579 h2Cefz6->SetMarkerSize(0.4);
2581 h2Cefz6->SetXTitle(
"#eta \b");
2582 h2Cefz6->SetYTitle(
"#phi \b");
2583 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HO Depth%d \b",
depth));
2584 h2Cefz6->SetMarkerColor(2);
2585 h2Cefz6->SetLineColor(2);
2586 h2Cefz6->Draw(
"COLZ");
2593 hname1 = hnames[2 *
depth - 7][0];
2594 hname0 = hnames[2 *
depth - 7][1];
2595 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2596 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2598 std::cout <<
"errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2600 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2601 ptext->AddText(
"Missing histo");
2603 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2604 ptext->AddText(hname1);
2607 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2608 ptext->AddText(hname0);
2615 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2616 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2618 TH1F *hRate2 =
NULL;
2619 if (lastLumiBin_HO > 1) {
2620 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HO)) {
2621 std::cout <<
"code failed" << std::endl;
2625 hRate2 = hRate2orig;
2627 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2628 hRate2->SetMarkerStyle(20);
2629 hRate2->SetMarkerSize(0.8);
2631 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b",
depth));
2632 hRate2->SetMarkerColor(2);
2633 hRate2->SetLineColor(0);
2634 hRate2->Draw(
"Error");
2636 if (LSofFirstErrB_HO == -1) {
2637 int nx = hRate2->GetXaxis()->GetNbins();
2638 for (
int i = 1;
i <= nx;
i++) {
2639 double ccc1 = hRate2->GetBinContent(
i);
2641 cout <<
"****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2643 LSofFirstErrB_HO =
i;
2651 if (hRate2 != hRate2orig) {
2653 hRate2orig = hRate2;
2658 cHB->Print(Form(
"HistErrB_HO_%d.png",
depth));
2672 int flagErrAB_HF[2];
2673 flagErrAB_HF[0] = -1;
2674 flagErrAB_HF[1] = -1;
2675 double avedelta_HF = 0.;
2676 int lastLumiBin_HF = -1;
2677 int LSofFirstErrB_HF = -1;
2679 const int specCountA = 4;
2680 const int specColors[specCountA] = {1, 2, 3, 4};
2681 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS6_P1",
"h_sum0ADCAmplperLS6_P1"},
2682 {
"h_sumADCAmplperLS6_P2",
"h_sum0ADCAmplperLS6_P2"},
2683 {
"h_sumADCAmplperLS6_M1",
"h_sum0ADCAmplperLS6_M1"},
2684 {
"h_sumADCAmplperLS6_M2",
"h_sum0ADCAmplperLS6_M2"}};
2686 std::vector<TH1F *> hV;
2687 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS6");
2694 for (
int i = 0;
i < specCountA;
i++) {
2696 std::cout <<
"debugger: errA_HF : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2698 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2699 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2701 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2702 ptext->AddText(
"Missing histo");
2704 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2705 ptext->AddText(hnames[i][0]);
2708 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2709 ptext->AddText(hnames[i][1]);
2714 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2715 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2717 if ((lastLumiBin_HF < 0) && (i == 0)) {
2718 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2719 if (hERT1orig->GetBinContent(ibin) == 0)
2720 lastLumiBin_HF = ibin;
2724 lastLumiBin_HF += 3;
2725 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2726 lastLumiBin_HF = -1;
2729 if (lastLumiBin_HF > 1) {
2730 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HF)) {
2731 std::cout <<
"code failed" << std::endl;
2737 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2738 hV.push_back(hERT1);
2739 hERT1->SetMarkerStyle(20);
2740 hERT1->SetMarkerSize(0.4);
2741 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2742 hERT1->SetMarkerColor(specColors[i]);
2743 hERT1->SetLineColor(0);
2747 if (hERT1 != hERT1orig)
2750 hs->Draw(
"LPE1 nostack");
2752 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2753 hs->Draw(
"LPE1 nostack");
2759 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2761 if (
int(hV.size()) == specCountA) {
2762 flagErrAB_HF[0] = 0;
2763 double sumdelta = 0.;
2765 std::cout <<
"******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2766 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2768 double maxdelta = 0.;
2769 for (
unsigned int i = 0;
i < hV.size();
i++) {
2770 const TH1F *hi = hV[
i];
2771 for (
unsigned int j = 1;
j < hV.size();
j++) {
2772 const TH1F *hj = hV[
j];
2773 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2774 if (delta > maxdelta)
2779 if (maxdelta > 0.) {
2780 diff->Fill(maxdelta);
2781 sumdelta += maxdelta;
2786 avedelta_HF = sumdelta / nnndelta;
2788 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2789 flagErrAB_HF[0] = 1;
2792 diff->SetMarkerStyle(20);
2793 diff->SetMarkerSize(0.8);
2794 diff->SetXTitle(
"max difference \b");
2795 diff->SetMarkerColor(2);
2796 diff->SetLineColor(0);
2799 diff->Draw(
"Error");
2802 cHB->Print(
"HistErrA_HF.png");
2808 for (
unsigned int i = 0;
i < hV.size();
i++)
2814 const int specCountB = 4;
2815 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS6",
"h_2D0sumErrorBLS6"},
2816 {
"h_sumErrorBperLS6",
"h_sum0ErrorBperLS6"},
2817 {
"h_2DsumErrorBLS7",
"h_2D0sumErrorBLS7"},
2818 {
"h_sumErrorBperLS7",
"h_sum0ErrorBperLS7"}};
2824 TH1F *hRate2orig =
NULL;
2825 TH2F *h2Cefz6 =
NULL;
2826 TString hname1 = hnames[2 *
depth - 2][0];
2827 TString hname0 = hnames[2 *
depth - 2][1];
2828 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2829 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2831 std::cout <<
"debugger: errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2832 if (!twod1 || !twod0) {
2833 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2834 ptext->AddText(
"Missing histos");
2836 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2837 ptext->AddText(hname1);
2840 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2841 ptext->AddText(hname0);
2845 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2846 h2Cefz6->SetTitle(Form(
"HF Depth %d \b",
depth));
2847 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2852 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2853 h2Cefz6->SetMarkerStyle(20);
2854 h2Cefz6->SetMarkerSize(0.4);
2856 h2Cefz6->SetXTitle(
"#eta \b");
2857 h2Cefz6->SetYTitle(
"#phi \b");
2858 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HF Depth%d \b",
depth));
2859 h2Cefz6->SetMarkerColor(2);
2860 h2Cefz6->SetLineColor(2);
2861 h2Cefz6->Draw(
"COLZ");
2866 hname1 = hnames[2 *
depth - 1][0];
2867 hname0 = hnames[2 *
depth - 1][1];
2868 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2869 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2871 std::cout <<
"errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2873 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2874 ptext->AddText(
"Missing histo");
2876 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2877 ptext->AddText(hname1);
2880 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2881 ptext->AddText(hname0);
2888 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2889 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2891 TH1F *hRate2 =
NULL;
2892 if (lastLumiBin_HF > 1) {
2893 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HF)) {
2894 std::cout <<
"code failed" << std::endl;
2898 hRate2 = hRate2orig;
2899 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2900 hRate2->SetMarkerStyle(20);
2901 hRate2->SetMarkerSize(0.8);
2903 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b",
depth));
2904 hRate2->SetMarkerColor(2);
2905 hRate2->SetLineColor(0);
2906 hRate2->Draw(
"Error");
2907 if (LSofFirstErrB_HF == -1) {
2908 int nx = hRate2->GetXaxis()->GetNbins();
2909 for (
int i = 1;
i <= nx;
i++) {
2910 double ccc1 = hRate2->GetBinContent(
i);
2912 cout <<
"****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2914 LSofFirstErrB_HF =
i;
2921 if (hRate2 != hRate2orig) {
2923 hRate2orig = hRate2;
2927 cHB->Print(Form(
"HistErrB_HF_%d.png",
depth));
2943 TH2F *h2Ceff =
NULL;
2944 TH2F *h2Diffe =
NULL;
2946 TH2F *h3Ceff =
NULL;
2953 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HB",
depth);
2954 TString hname0 = Form(
"h_mapDepth%d_HB",
depth);
2955 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2956 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2957 if (!twod1 || !twod0) {
2958 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2959 ptext->AddText(
"Missing histo");
2960 std::cout <<
"specHB test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
2962 ptext->AddText(hname1);
2964 ptext->AddText(hname0);
2969 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HB%d",
depth));
2970 h2Ceff->SetTitle(Form(
"HB Depth %d. (No cut) \b",
depth));
2971 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
2976 h2Ceff->SetMarkerStyle(20);
2977 h2Ceff->SetMarkerSize(0.4);
2979 h2Ceff->SetXTitle(
"#eta \b");
2980 h2Ceff->SetYTitle(
"#phi \b");
2981 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HB \b");
2982 h2Ceff->SetMarkerColor(2);
2983 h2Ceff->SetLineColor(2);
2984 h2Ceff->Draw(
"COLZ");
2991 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HB",
depth));
2992 h2Diffe->SetTitle(Form(
"HB Depth %d. Cut avg(ADCAmpl) > 25 \b",
depth));
2993 int nx = h2Ceff->GetXaxis()->GetNbins();
2994 int ny = h2Ceff->GetYaxis()->GetNbins();
2995 for (
int i = 1;
i <= nx;
i++) {
2996 for (
int j = 1;
j <= ny;
j++) {
2997 double ccc1 = h2Ceff->GetBinContent(
i,
j);
2998 h2Diffe->SetBinContent(
i,
j, 0.);
3000 h2Diffe->SetBinContent(
i,
j, ccc1);
3006 h2Diffe->SetMarkerStyle(20);
3007 h2Diffe->SetMarkerSize(0.4);
3009 h2Diffe->SetXTitle(
"#eta \b");
3010 h2Diffe->SetYTitle(
"#phi \b");
3011 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 25.- HB Depth1 \b");
3012 h2Diffe->SetMarkerColor(2);
3013 h2Diffe->SetLineColor(2);
3014 h2Diffe->Draw(
"COLZ");
3018 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HB",
depth);
3019 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3020 if (!twod3 || !twod0) {
3021 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3022 ptext->AddText(
"Missing histo");
3023 std::cout <<
"specHB test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3025 ptext->AddText(hname3);
3027 ptext->AddText(hname0);
3032 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HB%d",
depth));
3033 h3Ceff->SetTitle(Form(
"HB Depth %d. \b",
depth));
3034 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3038 h3Ceff->SetMarkerStyle(20);
3039 h3Ceff->SetMarkerSize(0.4);
3041 h3Ceff->SetXTitle(
"#eta \b");
3042 h3Ceff->SetYTitle(
"#phi \b");
3043 h3Ceff->SetZTitle(
"rate for channels of HB \b");
3044 h3Ceff->SetMarkerColor(2);
3045 h3Ceff->SetLineColor(2);
3046 h3Ceff->Draw(
"COLZ");
3050 cHE->Print(Form(
"ChkErrA_HB%d.png",
depth));
3072 TH2F *h2Ceff =
NULL;
3073 TH2F *h2Diffe =
NULL;
3075 TH2F *h3Ceff =
NULL;
3082 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HE",
depth);
3083 TString hname0 = Form(
"h_mapDepth%d_HE",
depth);
3084 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3085 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3086 if (!twod1 || !twod0) {
3087 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3088 ptext->AddText(
"Missing histo");
3089 std::cout <<
"specHE test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3091 ptext->AddText(hname1);
3093 ptext->AddText(hname0);
3098 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HE%d",
depth));
3099 h2Ceff->SetTitle(Form(
"HE Depth %d. (No cut) \b",
depth));
3100 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3105 h2Ceff->SetTitleOffset(0.75,
"Z");
3106 h2Ceff->SetMarkerStyle(20);
3107 h2Ceff->SetMarkerSize(0.4);
3109 h2Ceff->SetXTitle(
"#eta \b");
3110 h2Ceff->SetYTitle(
"#phi \b");
3111 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HE \b");
3112 h2Ceff->SetMarkerColor(2);
3113 h2Ceff->SetLineColor(2);
3114 h2Ceff->Draw(
"COLZ");
3121 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HE",
depth));
3122 h2Diffe->SetTitle(Form(
"HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b",
depth));
3123 int nx = h2Ceff->GetXaxis()->GetNbins();
3124 int ny = h2Ceff->GetYaxis()->GetNbins();
3125 for (
int i = 1;
i <= nx;
i++) {
3126 for (
int j = 1;
j <= ny;
j++) {
3127 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3128 h2Diffe->SetBinContent(
i,
j, 0.);
3130 h2Diffe->SetBinContent(
i,
j, ccc1);
3136 h2Diffe->SetMarkerStyle(20);
3137 h2Diffe->SetMarkerSize(0.4);
3139 h2Diffe->SetXTitle(
"#eta \b");
3140 h2Diffe->SetYTitle(
"#phi \b");
3141 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3142 h2Diffe->SetMarkerColor(2);
3143 h2Diffe->SetLineColor(2);
3144 h2Diffe->Draw(
"COLZ");
3148 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HE",
depth);
3149 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3150 if (!twod3 || !twod0) {
3151 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3152 ptext->AddText(
"Missing histo");
3153 std::cout <<
"specHE test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3155 ptext->AddText(hname3);
3157 ptext->AddText(hname0);
3162 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HE%d",
depth));
3163 h3Ceff->SetTitle(Form(
"HE Depth %d. \b",
depth));
3164 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3168 h3Ceff->SetMarkerStyle(20);
3169 h3Ceff->SetMarkerSize(0.4);
3171 h3Ceff->SetXTitle(
"#eta \b");
3172 h3Ceff->SetYTitle(
"#phi \b");
3173 h3Ceff->SetZTitle(
"rate for channels of HE \b");
3174 h3Ceff->SetMarkerColor(2);
3175 h3Ceff->SetLineColor(2);
3176 h3Ceff->Draw(
"COLZ");
3180 cHE->Print(Form(
"ChkErrA_HE%d.png",
depth));
3202 TH2F *h2Ceff =
NULL;
3203 TH2F *h2Diffe =
NULL;
3205 TH2F *h3Ceff =
NULL;
3212 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HO",
depth);
3213 TString hname0 = Form(
"h_mapDepth%d_HO",
depth);
3214 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3215 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3216 if (!twod1 || !twod0) {
3217 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3218 ptext->AddText(
"Missing histo");
3219 std::cout <<
"specHO test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3221 ptext->AddText(hname1);
3223 ptext->AddText(hname0);
3228 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HO%d",
depth));
3229 h2Ceff->SetTitle(Form(
"HO Depth %d. (No cut) \b",
depth));
3230 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3235 h2Ceff->SetMarkerStyle(20);
3236 h2Ceff->SetMarkerSize(0.4);
3238 h2Ceff->SetXTitle(
"#eta \b");
3239 h2Ceff->SetYTitle(
"#phi \b");
3240 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HO \b");
3241 h2Ceff->SetMarkerColor(2);
3242 h2Ceff->SetLineColor(2);
3243 h2Ceff->Draw(
"COLZ");
3250 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HO",
depth));
3251 h2Diffe->SetTitle(Form(
"HO Depth %d. Cut avg(ADCAmpl) > 80 \b",
depth));
3252 int nx = h2Ceff->GetXaxis()->GetNbins();
3253 int ny = h2Ceff->GetYaxis()->GetNbins();
3254 for (
int i = 1;
i <= nx;
i++) {
3255 for (
int j = 1;
j <= ny;
j++) {
3256 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3257 h2Diffe->SetBinContent(
i,
j, 0.);
3259 h2Diffe->SetBinContent(
i,
j, ccc1);
3265 h2Diffe->SetMarkerStyle(20);
3266 h2Diffe->SetMarkerSize(0.4);
3268 h2Diffe->SetXTitle(
"#eta \b");
3269 h2Diffe->SetYTitle(
"#phi \b");
3270 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 80.- HO Depth1 \b");
3271 h2Diffe->SetMarkerColor(2);
3272 h2Diffe->SetLineColor(2);
3273 h2Diffe->Draw(
"COLZ");
3277 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HO",
depth);
3278 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3279 if (!twod3 || !twod0) {
3280 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3281 ptext->AddText(
"Missing histo");
3282 std::cout <<
"specHO test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3284 ptext->AddText(hname3);
3286 ptext->AddText(hname0);
3291 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HO%d",
depth));
3292 h3Ceff->SetTitle(Form(
"HO Depth %d. \b",
depth));
3293 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3297 h3Ceff->SetMarkerStyle(20);
3298 h3Ceff->SetMarkerSize(0.4);
3300 h3Ceff->SetXTitle(
"#eta \b");
3301 h3Ceff->SetYTitle(
"#phi \b");
3302 h3Ceff->SetZTitle(
"rate for channels of HO \b");
3303 h3Ceff->SetMarkerColor(2);
3304 h3Ceff->SetLineColor(2);
3305 h3Ceff->Draw(
"COLZ");
3309 cHE->Print(Form(
"ChkErrA_HO%d.png",
depth));
3331 TH2F *h2Ceff =
NULL;
3332 TH2F *h2Diffe =
NULL;
3334 TH2F *h3Ceff =
NULL;
3341 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HF",
depth);
3342 TString hname0 = Form(
"h_mapDepth%d_HF",
depth);
3343 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3344 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3345 if (!twod1 || !twod0) {
3346 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3347 ptext->AddText(
"Missing histo");
3348 std::cout <<
"specHF test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3350 ptext->AddText(hname1);
3352 ptext->AddText(hname0);
3357 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HF%d",
depth));
3358 h2Ceff->SetTitle(Form(
"HF Depth %d. (No cut) \b",
depth));
3359 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3364 h2Ceff->SetMarkerStyle(20);
3365 h2Ceff->SetMarkerSize(0.4);
3367 h2Ceff->SetXTitle(
"#eta \b");
3368 h2Ceff->SetYTitle(
"#phi \b");
3369 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HF \b");
3370 h2Ceff->SetMarkerColor(2);
3371 h2Ceff->SetLineColor(2);
3372 h2Ceff->Draw(
"COLZ");
3379 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HF",
depth));
3380 h2Diffe->SetTitle(Form(
"HF Depth %d. Cut avg(ADCAmpl) > 20 \b",
depth));
3381 int nx = h2Ceff->GetXaxis()->GetNbins();
3382 int ny = h2Ceff->GetYaxis()->GetNbins();
3383 for (
int i = 1;
i <= nx;
i++) {
3384 for (
int j = 1;
j <= ny;
j++) {
3385 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3386 h2Diffe->SetBinContent(
i,
j, 0.);
3388 h2Diffe->SetBinContent(
i,
j, ccc1);
3394 h2Diffe->SetMarkerStyle(20);
3395 h2Diffe->SetMarkerSize(0.4);
3397 h2Diffe->SetXTitle(
"#eta \b");
3398 h2Diffe->SetYTitle(
"#phi \b");
3399 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 20.- HF Depth1 \b");
3400 h2Diffe->SetMarkerColor(2);
3401 h2Diffe->SetLineColor(2);
3402 h2Diffe->Draw(
"COLZ");
3431 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HF",
depth);
3432 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3433 if (!twod3 || !twod0) {
3434 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3435 ptext->AddText(
"Missing histo");
3436 std::cout <<
"specHF test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3438 ptext->AddText(hname3);
3440 ptext->AddText(hname0);
3445 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HF%d",
depth));
3446 h3Ceff->SetTitle(Form(
"HF Depth %d. \b",
depth));
3447 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3451 h3Ceff->SetMarkerStyle(20);
3452 h3Ceff->SetMarkerSize(0.4);
3454 h3Ceff->SetXTitle(
"#eta \b");
3455 h3Ceff->SetYTitle(
"#phi \b");
3456 h3Ceff->SetZTitle(
"rate for channels of HF \b");
3457 h3Ceff->SetMarkerColor(2);
3458 h3Ceff->SetLineColor(2);
3459 h3Ceff->Draw(
"COLZ");
3463 cHE->Print(Form(
"ChkErrA_HF%d.png",
depth));
3480 std::cout <<
"************>>> average Amplitudes done" << std::endl;
3482 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3483 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3484 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3485 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3486 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3493 cout <<
" RBX analysis START for **************************" << endl;
3494 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3499 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax=1800; "
3502 double alexall[njeta][njphi][
lsmax];
3505 double alexhb[njphi][
lsmax];
3506 double alexhe[njphi][
lsmax];
3507 double alexho[njphi][
lsmax];
3508 double alexhf[njphi][
lsmax];
3511 double blexhb[njeta][
lsmax];
3512 double blexhe[njeta][
lsmax];
3513 double blexho[njeta][
lsmax];
3514 double blexhf[njeta][
lsmax];
3516 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alexall [njeta][njphi][lsmax]; " << endl;
3517 int maxbinsRBX = MaxLum;
3518 int nx = maxbinsRBX;
3519 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3521 cout <<
"*********************************** ERROR ERROR ERROR ERROR: MaxLum > 1800 " << endl;
3522 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3524 for (
int i = 0;
i < nx;
i++) {
3525 for (
int jphi = 0; jphi < njphi; jphi++) {
3526 alexhb[jphi][
i] = 0.;
3527 alexhe[jphi][
i] = 0.;
3528 alexho[jphi][
i] = 0.;
3529 alexhf[jphi][
i] = 0.;
3531 for (
int jeta = 0; jeta < njeta; jeta++) {
3533 blexhb[jeta][
i] = 0.;
3534 blexhe[jeta][
i] = 0.;
3535 blexho[jeta][
i] = 0.;
3536 blexhf[jeta][
i] = 0.;
3539 alexall[jeta][jphi][
i] = 0.;
3564 cout <<
" RBX general for HB **************************" << endl;
3565 TH2F *Ghb1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs0");
3566 TH2F *Ghb1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs00");
3567 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone(
"Ghb1");
3568 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1,
"B");
3571 int ny = Ghb1->GetYaxis()->GetNbins();
3573 for (
int j = 1;
j <= ny;
j++) {
3574 int jeta = (
j - 1) / njphi;
3575 if (jeta > 6 && jeta < 15) {
3576 int jphi = (
j - 1) - njphi * jeta;
3579 for (
int i = 1;
i <= nx;
i++) {
3580 double ccc1 = Ghb1->GetBinContent(
i,
j);
3581 alexall[jeta][jphi][
i - 1] = ccc1;
3596 for (
int jphi = 0; jphi < njphi; jphi++) {
3597 for (
int i = 0;
i < nx;
i++) {
3598 double sumccc1 = 0.;
3600 for (
int jeta = 0; jeta < njeta; jeta++) {
3601 double ccc1 = alexall[jeta][jphi][
i];
3609 alexhb[jphi][
i] = sumccc1;
3614 for (
int keta = 0; keta < njeta; keta++) {
3615 for (
int i = 0;
i < nx;
i++) {
3616 double sumccc1 = 0.;
3618 for (
int kphi = 0; kphi < njphi; kphi++) {
3619 double ccc1 = alexall[keta][kphi][
i];
3627 blexhb[keta][
i] = sumccc1;
3637 cout <<
" RBX HB 2D plot *****" << endl;
3640 cRBX1->Divide(1, 1);
3645 TH2F *Ghb42D =
new TH2F(
"Ghb42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
3646 TH2F *Ghb42D0 =
new TH2F(
"Ghb42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
3647 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone(
"Ghb42DF");
3648 for (
int jphi = 0; jphi < njphi; jphi++) {
3649 for (
int jeta = 0; jeta < njeta; jeta++) {
3650 for (
int i = 0;
i < nx;
i++) {
3651 double ccc1 = alexall[jeta][jphi][
i];
3652 int neweta = jeta - 11 - 0.5;
3654 neweta = jeta - 11 + 1.5;
3656 Ghb42D->Fill(neweta, jphi, ccc1);
3657 Ghb42D0->Fill(neweta, jphi, 1.);
3663 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1,
"B");
3667 Ghb42DF->SetMarkerStyle(20);
3668 Ghb42DF->SetMarkerSize(0.4);
3669 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3670 Ghb42DF->SetXTitle(
"<A>_RBX #eta \b");
3671 Ghb42DF->SetYTitle(
" #phi \b");
3672 Ghb42DF->SetZTitle(
"<A>_RBX - All \b");
3673 Ghb42DF->SetMarkerColor(2);
3674 Ghb42DF->SetLineColor(2);
3675 Ghb42DF->Draw(
"COLZ");
3679 cRBX1->Print(
"RBX-HB-2Dplot.png");
3694 cout <<
" RBX HB 1D plot *****" << endl;
3697 cRBX1->Divide(1, 1);
3699 TH1F *GphiHB1D =
new TH1F(
"GphiHB1D",
"", 18, 0., 18.);
3700 TH1F *GphiHB1D0 =
new TH1F(
"GphiHB1D0",
"", 18, 0., 18.);
3701 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone(
"GphiHB1DF");
3702 for (
int jphi = 0; jphi < 18; jphi++) {
3703 for (
int jeta = 0; jeta < 22; jeta++) {
3704 for (
int i = 0;
i < nx;
i++) {
3705 double ccc1 = alexall[jeta][jphi][
i];
3707 GphiHB1D->Fill(jphi, ccc1);
3708 GphiHB1D0->Fill(jphi, 1.);
3714 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1,
"B");
3716 for (
int jphi = 1; jphi < 19; jphi++) {
3717 GphiHB1DF->SetBinError(jphi, 0.01);
3721 GphiHB1DF->SetMarkerStyle(20);
3722 GphiHB1DF->SetMarkerSize(1.4);
3723 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3724 GphiHB1DF->SetXTitle(
"PHI of RBX\b");
3725 GphiHB1DF->SetYTitle(
" <Amplitude> \b");
3726 GphiHB1DF->SetZTitle(
"<A>_PHI - All \b");
3727 GphiHB1DF->SetMarkerColor(4);
3728 GphiHB1DF->SetLineColor(4);
3729 GphiHB1DF->SetMinimum(0.8);
3730 GphiHB1DF->Draw(
"Error");
3733 cRBX1->Print(
"RBX-HB-1Dplot.png");
3748 cout <<
" RBX HB 11D plot *eta*" << endl;
3751 cRBX1->Divide(1, 1);
3753 TH1F *GetaHB11D =
new TH1F(
"GetaHB11D",
"", 23, -11.5, 11.5);
3754 TH1F *GetaHB11D0 =
new TH1F(
"GetaHB11D0",
"", 23, -11.5, 11.5);
3755 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone(
"GetaHB11DF");
3757 for (
int jeta = 0; jeta < 22; jeta++) {
3758 for (
int jphi = 0; jphi < 18; jphi++) {
3759 for (
int i = 0;
i < nx;
i++) {
3760 double ccc1 = alexall[jeta][jphi][
i];
3761 int neweta = jeta - 11 - 0.5;
3763 neweta = jeta - 11 + 1.5;
3765 GetaHB11D->Fill(neweta, ccc1);
3766 GetaHB11D0->Fill(neweta, 1.);
3773 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1,
"B");
3775 for (
int jeta = 1; jeta < 24; jeta++) {
3776 GetaHB11DF->SetBinError(jeta, 0.01);
3780 GetaHB11DF->SetMarkerStyle(20);
3781 GetaHB11DF->SetMarkerSize(1.4);
3782 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3783 GetaHB11DF->SetXTitle(
"#eta \b");
3784 GetaHB11DF->SetYTitle(
" <A> \b");
3785 GetaHB11DF->SetZTitle(
"<A>_ETA - All \b");
3786 GetaHB11DF->SetMarkerColor(4);
3787 GetaHB11DF->SetLineColor(4);
3788 GetaHB11DF->SetMinimum(0.8);
3789 GetaHB11DF->Draw(
"Error");
3793 cRBX1->Print(
"RBX-HB-11Dplot.png");
3809 gStyle->SetOptStat(1110000);
3810 cout <<
" RBX HB Ratio plots *****" << endl;
3819 cRBX31->Divide(3, 1);
3823 TH1F *Ghb51 =
new TH1F(
"Ghb51",
"", nx, 1., nx + 1.);
3824 TH1F *Ghb50 =
new TH1F(
"Ghb50",
"", nx, 1., nx + 1.);
3825 TH1F *Ghb5 = (TH1F *)Ghb50->Clone(
"Ghb5");
3827 for (
int j = 1;
j <= ny;
j++) {
3828 ccc0HB = Ghb1->GetBinContent(1,
j);
3831 for (
int i = 1;
i <= nx;
i++) {
3832 double ccc2 = Ghb1->GetBinContent(
i,
j);
3840 for (
int i = 1;
i <= nx;
i++) {
3841 double ccc1 = Ghb1->GetBinContent(
i,
j);
3843 double Rij = ccc1 / ccc0HB;
3845 Ghb51->Fill(
float(
i), Rij);
3846 Ghb50->Fill(
float(
i), 1.);
3851 Ghb5->Divide(Ghb51, Ghb50, 1, 1,
"B");
3852 for (
int i = 1;
i <= nx;
i++) {
3853 Ghb5->SetBinError(
i, 0.0001);
3855 Ghb5->SetMarkerStyle(20);
3856 Ghb5->SetMarkerSize(0.4);
3857 Ghb5->GetYaxis()->SetLabelSize(0.04);
3858 Ghb5->SetMarkerColor(2);
3859 Ghb5->SetLineColor(0);
3860 Ghb5->SetXTitle(
" iLS \b");
3861 Ghb5->SetYTitle(
" <R> \b");
3862 Ghb5->SetTitle(
"<Ri> vs iLS \b");
3863 Ghb5->SetMinimum(0.);
3868 Ghb5->GetYaxis()->SetLabelSize(0.025);
3869 Ghb5->Draw(
"Error");
3872 TH2F *Ghb60 =
new TH2F(
"Ghb60",
"", 22, -11., 11., 18, 0., 18.);
3873 TH2F *Ghb61 =
new TH2F(
"Ghb61",
"", 22, -11., 11., 18, 0., 18.);
3874 TH2F *Ghb6 =
new TH2F(
"Ghb6",
"", 22, -11., 11., 18, 0., 18.);
3876 TH2F *G20hb60 =
new TH2F(
"G20hb60",
"", 22, -11., 11., 18, 0., 18.);
3877 TH2F *G20hb61 =
new TH2F(
"G20hb61",
"", 22, -11., 11., 18, 0., 18.);
3878 TH2F *G20hb6 =
new TH2F(
"G20hb6",
"", 22, -11., 11., 18, 0., 18.);
3879 TH2F *G30hb60 =
new TH2F(
"G30hb60",
"", 22, -11., 11., 18, 0., 18.);
3880 TH2F *G30hb61 =
new TH2F(
"G30hb61",
"", 22, -11., 11., 18, 0., 18.);
3881 TH2F *G30hb6 =
new TH2F(
"G30hb6",
"", 22, -11., 11., 18, 0., 18.);
3882 TH2F *G40hb60 =
new TH2F(
"G40hb60",
"", 22, -11., 11., 18, 0., 18.);
3883 TH2F *G40hb61 =
new TH2F(
"G40hb61",
"", 22, -11., 11., 18, 0., 18.);
3884 TH2F *G40hb6 =
new TH2F(
"G40hb6",
"", 22, -11., 11., 18, 0., 18.);
3890 double meanjHB = 0.;
3891 for (
int j = 1;
j <= ny;
j++) {
3892 ccc0HB = Ghb1->GetBinContent(1,
j);
3894 for (
int i = 1;
i <= nx;
i++) {
3895 double ccc2 = Ghb1->GetBinContent(
i,
j);
3902 for (
int i = 1;
i <= nx;
i++) {
3903 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3909 meanjHB = sumjHB / njHB;
3913 double ssumjHB = 0.;
3915 double sigmajHB = 0.;
3916 for (
int j = 1;
j <= ny;
j++) {
3917 ccc0HB = Ghb1->GetBinContent(1,
j);
3919 for (
int i = 1;
i <= nx;
i++) {
3920 double ccc2 = Ghb1->GetBinContent(
i,
j);
3927 for (
int i = 1;
i <= nx;
i++) {
3928 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3930 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3934 sigmajHB =
sqrt(ssumjHB / njHB);
3938 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3939 if (dif3rmsHBMIN < 0.)
3941 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3942 cout <<
"22HB-2 meanjHB= " << meanjHB <<
" sigmajHB= " << sigmajHB <<
" dif3rmsHBMIN= " << dif3rmsHBMIN
3943 <<
" dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3945 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3946 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3947 if (MAXdif3rmsHBMIN < 0.95)
3948 MAXdif3rmsHBMIN = 0.95;
3949 if (MINdif3rmsHBMAX > 1.05)
3950 MINdif3rmsHBMAX = 1.05;
3951 cout <<
"22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3953 for (
int j = 1;
j <= ny;
j++) {
3954 ccc0HB = Ghb1->GetBinContent(1,
j);
3956 for (
int i = 1;
i <= nx;
i++) {
3957 double ccc2 = Ghb1->GetBinContent(
i,
j);
3964 int jeta = (
j - 1) / 18;
3965 int jphi = (
j - 1) - 18 * jeta;
3967 for (
int i = 1;
i <= nx;
i++) {
3968 double ccc1 = Ghb1->GetBinContent(
i,
j);
3970 double Rij = ccc1 / ccc0HB;
3971 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3972 Ghb61->Fill(jeta - 11, jphi, Rij);
3973 Ghb60->Fill(jeta - 11, jphi, 1.);
3975 if (Rij < 0.8 || Rij > 1.2) {
3976 G20hb61->Fill(jeta - 11, jphi, Rij);
3977 G20hb60->Fill(jeta - 11, jphi, 1.);
3979 if (Rij < 0.7 || Rij > 1.3) {
3980 G30hb61->Fill(jeta - 11, jphi, Rij);
3981 G30hb60->Fill(jeta - 11, jphi, 1.);
3983 if (Rij < 0.6 || Rij > 1.4) {
3984 G40hb61->Fill(jeta - 11, jphi, Rij);
3985 G40hb60->Fill(jeta - 11, jphi, 1.);
3991 Ghb6->Divide(Ghb61, Ghb60, 1, 1,
"B");
3992 G20hb6->Divide(G20hb61, G20hb60, 1, 1,
"B");
3993 G30hb6->Divide(G30hb61, G30hb60, 1, 1,
"B");
3994 G40hb6->Divide(G40hb61, G40hb60, 1, 1,
"B");
3996 Ghb6->GetZaxis()->SetLabelSize(0.025);
3997 Ghb6->SetXTitle(
" #eta \b");
3998 Ghb6->SetYTitle(
" #phi \b");
3999 Ghb6->SetTitle(
"<Rj> for |1-<R>| > 0.05 \b");
4004 TH1F *Ghb7 =
new TH1F(
"Ghb7",
"", 120, 0.4, 1.6);
4006 for (
int j = 1;
j <= ny;
j++) {
4007 ccc0HB = Ghb1->GetBinContent(1,
j);
4009 for (
int i = 1;
i <= nx;
i++) {
4010 double ccc2 = Ghb1->GetBinContent(
i,
j);
4018 for (
int i = 1;
i <= nx;
i++) {
4019 double ccc1 = Ghb1->GetBinContent(
i,
j);
4021 double Rij = ccc1 / ccc0HB;
4027 Ghb7->SetMarkerStyle(20);
4028 Ghb7->SetMarkerSize(0.4);
4029 Ghb7->GetYaxis()->SetLabelSize(0.04);
4030 Ghb7->SetMarkerColor(2);
4031 Ghb7->SetLineColor(0);
4032 Ghb7->SetYTitle(
" N \b");
4033 Ghb7->SetXTitle(
" Rij \b");
4034 Ghb7->SetTitle(
" Rij \b");
4039 Ghb7->GetYaxis()->SetLabelSize(0.025);
4040 Ghb7->Draw(
"Error");
4041 Float_t ymaxHB = Ghb7->GetMaximum();
4042 cout <<
"22HB-3 ymaxHB= " << ymaxHB <<
" MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4043 <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4044 TLine *lineHB =
new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4045 lineHB->SetLineColor(kBlue);
4047 TLine *line1HB =
new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4048 line1HB->SetLineColor(kBlue);
4053 cRBX31->Print(
"RBX-HB-3plots.png");
4088 gStyle->SetOptStat(1110000);
4089 cout <<
" RBX HB Ratio plotsmore *****" << endl;
4092 cRBX31->Divide(3, 1);
4095 G20hb6->GetZaxis()->SetLabelSize(0.025);
4096 G20hb6->SetXTitle(
" #eta \b");
4097 G20hb6->SetYTitle(
" #phi \b");
4098 G20hb6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4099 G20hb6->SetStats(0);
4100 G20hb6->Draw(
"COLZ");
4103 G30hb6->GetZaxis()->SetLabelSize(0.025);
4104 G30hb6->SetXTitle(
" #eta \b");
4105 G30hb6->SetYTitle(
" #phi \b");
4106 G30hb6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4107 G30hb6->SetStats(0);
4108 G30hb6->Draw(
"COLZ");
4111 G40hb6->GetZaxis()->SetLabelSize(0.025);
4112 G40hb6->SetXTitle(
" #eta \b");
4113 G40hb6->SetYTitle(
" #phi \b");
4114 G40hb6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4115 G40hb6->SetStats(0);
4116 G40hb6->Draw(
"COLZ");
4121 cRBX31->Print(
"RBX-HB-3plotsmore.png");
4131 gStyle->SetOptStat(0);
4135 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4136 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4137 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4138 for (
int jphi = 0; jphi < njphi; jphi++) {
4139 for (
int jeta = 0; jeta < njeta; jeta++) {
4140 for (
int i = 0;
i < nx;
i++) {
4141 alexall[jeta][jphi][
i] = 0.;
4152 cout <<
" RBX general for HE **************************" << endl;
4153 TH2F *Ghe1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs1");
4154 TH2F *Ghe1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs10");
4155 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone(
"Ghe1");
4156 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1,
"B");
4160 ny = Ghe1->GetYaxis()->GetNbins();
4161 for (
int j = 1;
j <= ny;
j++) {
4162 int jeta = (
j - 1) / njphi;
4163 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4164 int jphi = (
j - 1) - njphi * jeta;
4167 for (
int i = 1;
i <= nx;
i++) {
4168 double ccc1 = Ghe1->GetBinContent(
i,
j);
4169 alexall[jeta][jphi][
i - 1] = ccc1;
4182 for (
int jphi = 0; jphi < njphi; jphi++) {
4183 for (
int i = 0;
i < nx;
i++) {
4184 double sumccc1 = 0.;
4186 for (
int jeta = 0; jeta < njeta; jeta++) {
4187 double ccc1 = alexall[jeta][jphi][
i];
4195 alexhe[jphi][
i] = sumccc1;
4199 for (
int keta = 0; keta < njeta; keta++) {
4200 for (
int i = 0;
i < nx;
i++) {
4201 double sumccc1 = 0.;
4203 for (
int kphi = 0; kphi < njphi; kphi++) {
4204 double ccc1 = alexall[keta][kphi][
i];
4212 blexhe[keta][
i] = sumccc1;
4221 cout <<
" RBX HE 2D plot *****" << endl;
4224 cRBX1->Divide(1, 1);
4227 TH2F *Ghe42D =
new TH2F(
"Ghe42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4228 TH2F *Ghe42D0 =
new TH2F(
"Ghe42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4231 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone(
"Ghe42DF");
4232 for (
int jphi = 0; jphi < njphi; jphi++) {
4233 for (
int jeta = 0; jeta < njeta; jeta++) {
4234 for (
int i = 0;
i < nx;
i++) {
4235 double ccc1 = alexall[jeta][jphi][
i];
4236 int neweta = jeta - 11 - 0.5;
4238 neweta = jeta - 11 + 1.5;
4240 Ghe42D->Fill(neweta, jphi, ccc1);
4241 Ghe42D0->Fill(neweta, jphi, 1.);
4247 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1,
"B");
4251 Ghe42DF->SetMarkerStyle(20);
4252 Ghe42DF->SetMarkerSize(0.4);
4253 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4254 Ghe42DF->SetXTitle(
"<A>_RBX #eta \b");
4255 Ghe42DF->SetYTitle(
" #phi \b");
4256 Ghe42DF->SetZTitle(
"<A>_RBX - All \b");
4257 Ghe42DF->SetMarkerColor(2);
4258 Ghe42DF->SetLineColor(2);
4259 Ghe42DF->Draw(
"COLZ");
4263 cRBX1->Print(
"RBX-HE-2Dplot.png");
4278 cout <<
" RBX HE 1D plot *****" << endl;
4281 cRBX1->Divide(1, 1);
4283 TH1F *GphiHE1D =
new TH1F(
"GphiHE1D",
"", 18, 0., 18.);
4284 TH1F *GphiHE1D0 =
new TH1F(
"GphiHE1D0",
"", 18, 0., 18.);
4285 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone(
"GphiHE1DF");
4286 for (
int jphi = 0; jphi < 18; jphi++) {
4287 for (
int jeta = 0; jeta < 22; jeta++) {
4288 for (
int i = 0;
i < nx;
i++) {
4289 double ccc1 = alexall[jeta][jphi][
i];
4291 GphiHE1D->Fill(jphi, ccc1);
4292 GphiHE1D0->Fill(jphi, 1.);
4298 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1,
"B");
4300 for (
int jphi = 1; jphi < 19; jphi++) {
4301 GphiHE1DF->SetBinError(jphi, 0.01);
4305 GphiHE1DF->SetMarkerStyle(20);
4306 GphiHE1DF->SetMarkerSize(1.4);
4307 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4308 GphiHE1DF->SetXTitle(
"PHI of RBX\b");
4309 GphiHE1DF->SetYTitle(
" <Amplitude> \b");
4310 GphiHE1DF->SetZTitle(
"<A>_PHI - All \b");
4311 GphiHE1DF->SetMarkerColor(4);
4312 GphiHE1DF->SetLineColor(4);
4313 GphiHE1DF->SetMinimum(0.8);
4314 GphiHE1DF->Draw(
"Error");
4317 cRBX1->Print(
"RBX-HE-1Dplot.png");
4332 cout <<
" RBX HE 11D plot *eta*" << endl;
4335 cRBX1->Divide(1, 1);
4337 TH1F *GetaHE11D =
new TH1F(
"GetaHE11D",
"", 23, -11.5, 11.5);
4338 TH1F *GetaHE11D0 =
new TH1F(
"GetaHE11D0",
"", 23, -11.5, 11.5);
4339 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone(
"GetaHE11DF");
4341 for (
int jeta = 0; jeta < 22; jeta++) {
4342 for (
int jphi = 0; jphi < 18; jphi++) {
4343 for (
int i = 0;
i < nx;
i++) {
4344 double ccc1 = alexall[jeta][jphi][
i];
4345 int neweta = jeta - 11 - 0.5;
4347 neweta = jeta - 11 + 1.5;
4349 GetaHE11D->Fill(neweta, ccc1);
4350 GetaHE11D0->Fill(neweta, 1.);
4357 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1,
"B");
4359 for (
int jeta = 1; jeta < 24; jeta++) {
4360 GetaHE11DF->SetBinError(jeta, 0.01);
4364 GetaHE11DF->SetMarkerStyle(20);
4365 GetaHE11DF->SetMarkerSize(1.4);
4366 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4367 GetaHE11DF->SetXTitle(
"#eta \b");
4368 GetaHE11DF->SetYTitle(
" <A> \b");
4369 GetaHE11DF->SetZTitle(
"<A>_ETA - All \b");
4370 GetaHE11DF->SetMarkerColor(4);
4371 GetaHE11DF->SetLineColor(4);
4372 GetaHE11DF->SetMinimum(0.8);
4373 GetaHE11DF->Draw(
"Error");
4377 cRBX1->Print(
"RBX-HE-11Dplot.png");
4393 gStyle->SetOptStat(1110000);
4394 cout <<
" RBX HE Ratio plots *****" << endl;
4403 cRBX31->Divide(3, 1);
4407 TH1F *Ghe51 =
new TH1F(
"Ghe51",
"", nx, 1., nx + 1.);
4408 TH1F *Ghe50 =
new TH1F(
"Ghe50",
"", nx, 1., nx + 1.);
4409 TH1F *Ghe5 = (TH1F *)Ghe50->Clone(
"Ghe5");
4411 for (
int j = 1;
j <= ny;
j++) {
4412 ccc0HE = Ghe1->GetBinContent(1,
j);
4415 for (
int i = 1;
i <= nx;
i++) {
4416 double ccc2 = Ghe1->GetBinContent(
i,
j);
4424 for (
int i = 1;
i <= nx;
i++) {
4425 double ccc1 = Ghe1->GetBinContent(
i,
j);
4427 double Rij = ccc1 / ccc0HE;
4429 Ghe51->Fill(
float(
i), Rij);
4430 Ghe50->Fill(
float(
i), 1.);
4435 Ghe5->Divide(Ghe51, Ghe50, 1, 1,
"B");
4436 for (
int i = 1;
i <= nx;
i++) {
4437 Ghe5->SetBinError(
i, 0.0001);
4439 Ghe5->SetMarkerStyle(20);
4440 Ghe5->SetMarkerSize(0.4);
4441 Ghe5->GetYaxis()->SetLabelSize(0.04);
4442 Ghe5->SetMarkerColor(2);
4443 Ghe5->SetLineColor(0);
4444 Ghe5->SetXTitle(
" iLS \b");
4445 Ghe5->SetYTitle(
" <R> \b");
4446 Ghe5->SetTitle(
"<Ri> vs iLS \b");
4447 Ghe5->SetMinimum(0.);
4452 Ghe5->GetYaxis()->SetLabelSize(0.025);
4453 Ghe5->Draw(
"Error");
4456 TH2F *Ghe60 =
new TH2F(
"Ghe60",
"", 22, -11., 11., 18, 0., 18.);
4457 TH2F *Ghe61 =
new TH2F(
"Ghe61",
"", 22, -11., 11., 18, 0., 18.);
4458 TH2F *Ghe6 =
new TH2F(
"Ghe6",
"", 22, -11., 11., 18, 0., 18.);
4460 TH2F *G20he60 =
new TH2F(
"G20he60",
"", 22, -11., 11., 18, 0., 18.);
4461 TH2F *G20he61 =
new TH2F(
"G20he61",
"", 22, -11., 11., 18, 0., 18.);
4462 TH2F *G20he6 =
new TH2F(
"G20he6",
"", 22, -11., 11., 18, 0., 18.);
4463 TH2F *G30he60 =
new TH2F(
"G30he60",
"", 22, -11., 11., 18, 0., 18.);
4464 TH2F *G30he61 =
new TH2F(
"G30he61",
"", 22, -11., 11., 18, 0., 18.);
4465 TH2F *G30he6 =
new TH2F(
"G30he6",
"", 22, -11., 11., 18, 0., 18.);
4466 TH2F *G40he60 =
new TH2F(
"G40he60",
"", 22, -11., 11., 18, 0., 18.);
4467 TH2F *G40he61 =
new TH2F(
"G40he61",
"", 22, -11., 11., 18, 0., 18.);
4468 TH2F *G40he6 =
new TH2F(
"G40he6",
"", 22, -11., 11., 18, 0., 18.);
4474 double meanjHE = 0.;
4475 for (
int j = 1;
j <= ny;
j++) {
4476 ccc0HE = Ghe1->GetBinContent(1,
j);
4478 for (
int i = 1;
i <= nx;
i++) {
4479 double ccc2 = Ghe1->GetBinContent(
i,
j);
4486 for (
int i = 1;
i <= nx;
i++) {
4487 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4493 meanjHE = sumjHE / njHE;
4497 double ssumjHE = 0.;
4499 double sigmajHE = 0.;
4500 for (
int j = 1;
j <= ny;
j++) {
4501 ccc0HE = Ghe1->GetBinContent(1,
j);
4503 for (
int i = 1;
i <= nx;
i++) {
4504 double ccc2 = Ghe1->GetBinContent(
i,
j);
4511 for (
int i = 1;
i <= nx;
i++) {
4512 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4514 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4518 sigmajHE =
sqrt(ssumjHE / njHE);
4522 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4523 if (dif3rmsHEMIN < 0.)
4525 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4526 cout <<
"22HE-2 meanjHE= " << meanjHE <<
" sigmajHE= " << sigmajHE <<
" dif3rmsHEMIN= " << dif3rmsHEMIN
4527 <<
" dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4529 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4530 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4531 if (MAXdif3rmsHEMIN < 0.95)
4532 MAXdif3rmsHEMIN = 0.95;
4533 if (MINdif3rmsHEMAX > 1.05)
4534 MINdif3rmsHEMAX = 1.05;
4535 cout <<
"22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4537 for (
int j = 1;
j <= ny;
j++) {
4538 ccc0HE = Ghe1->GetBinContent(1,
j);
4540 for (
int i = 1;
i <= nx;
i++) {
4541 double ccc2 = Ghe1->GetBinContent(
i,
j);
4548 int jeta = (
j - 1) / 18;
4549 int jphi = (
j - 1) - 18 * jeta;
4551 for (
int i = 1;
i <= nx;
i++) {
4552 double ccc1 = Ghe1->GetBinContent(
i,
j);
4554 double Rij = ccc1 / ccc0HE;
4555 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4556 Ghe61->Fill(jeta - 11, jphi, Rij);
4557 Ghe60->Fill(jeta - 11, jphi, 1.);
4559 if (Rij < 0.8 || Rij > 1.2) {
4560 G20he61->Fill(jeta - 11, jphi, Rij);
4561 G20he60->Fill(jeta - 11, jphi, 1.);
4563 if (Rij < 0.7 || Rij > 1.3) {
4564 G30he61->Fill(jeta - 11, jphi, Rij);
4565 G30he60->Fill(jeta - 11, jphi, 1.);
4567 if (Rij < 0.6 || Rij > 1.4) {
4568 G40he61->Fill(jeta - 11, jphi, Rij);
4569 G40he60->Fill(jeta - 11, jphi, 1.);
4575 Ghe6->Divide(Ghe61, Ghe60, 1, 1,
"B");
4576 G20he6->Divide(G20he61, G20he60, 1, 1,
"B");
4577 G30he6->Divide(G30he61, G30he60, 1, 1,
"B");
4578 G40he6->Divide(G40he61, G40he60, 1, 1,
"B");
4582 Ghe6->GetZaxis()->SetLabelSize(0.025);
4584 Ghe6->SetXTitle(
" #eta \b");
4585 Ghe6->SetYTitle(
" #phi \b");
4587 "<Rj> for |1-<R>| > 0.05 \b");
4593 TH1F *Ghe7 =
new TH1F(
"Ghe7",
"", 120, 0.4, 1.6);
4595 for (
int j = 1;
j <= ny;
j++) {
4596 ccc0HE = Ghe1->GetBinContent(1,
j);
4598 for (
int i = 1;
i <= nx;
i++) {
4599 double ccc2 = Ghe1->GetBinContent(
i,
j);
4607 for (
int i = 1;
i <= nx;
i++) {
4608 double ccc1 = Ghe1->GetBinContent(
i,
j);
4610 double Rij = ccc1 / ccc0HE;
4616 Ghe7->SetMarkerStyle(20);
4617 Ghe7->SetMarkerSize(0.4);
4618 Ghe7->GetYaxis()->SetLabelSize(0.04);
4619 Ghe7->SetMarkerColor(2);
4620 Ghe7->SetLineColor(0);
4621 Ghe7->SetYTitle(
" N \b");
4622 Ghe7->SetXTitle(
" Rij \b");
4623 Ghe7->SetTitle(
" Rij \b");
4628 Ghe7->GetYaxis()->SetLabelSize(0.025);
4629 Ghe7->Draw(
"Error");
4630 Float_t ymaxHE = Ghe7->GetMaximum();
4631 cout <<
"22HE-3 ymaxHE= " << ymaxHE <<
" MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4632 <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4633 TLine *lineHE =
new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4634 lineHE->SetLineColor(kBlue);
4636 TLine *line1HE =
new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4637 line1HE->SetLineColor(kBlue);
4642 cRBX31->Print(
"RBX-HE-3plots.png");
4677 gStyle->SetOptStat(1110000);
4678 cout <<
" RBX HE Ratio plotsmore *****" << endl;
4681 cRBX31->Divide(3, 1);
4684 G20he6->GetZaxis()->SetLabelSize(0.025);
4685 G20he6->SetXTitle(
" #eta \b");
4686 G20he6->SetYTitle(
" #phi \b");
4687 G20he6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4688 G20he6->SetStats(0);
4689 G20he6->Draw(
"COLZ");
4692 G30he6->GetZaxis()->SetLabelSize(0.025);
4693 G30he6->SetXTitle(
" #eta \b");
4694 G30he6->SetYTitle(
" #phi \b");
4695 G30he6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4696 G30he6->SetStats(0);
4697 G30he6->Draw(
"COLZ");
4700 G40he6->GetZaxis()->SetLabelSize(0.025);
4701 G40he6->SetXTitle(
" #eta \b");
4702 G40he6->SetYTitle(
" #phi \b");
4703 G40he6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4704 G40he6->SetStats(0);
4705 G40he6->Draw(
"COLZ");
4710 cRBX31->Print(
"RBX-HE-3plotsmore.png");
4720 gStyle->SetOptStat(0);
4723 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4724 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4725 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4726 for (
int jphi = 0; jphi < njphi; jphi++) {
4727 for (
int jeta = 0; jeta < njeta; jeta++) {
4728 for (
int i = 0;
i < nx;
i++) {
4729 alexall[jeta][jphi][
i] = 0.;
4740 cout <<
" RBX general for HO **************************" << endl;
4741 TH2F *Gho1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs2");
4742 TH2F *Gho1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs20");
4743 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone(
"Gho1");
4744 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1,
"B");
4748 ny = Gho1->GetYaxis()->GetNbins();
4749 for (
int j = 1;
j <= ny;
j++) {
4750 int jeta = (
j - 1) / njphi;
4751 if (jeta < 15 && jeta > 6) {
4752 int jphi = (
j - 1) - njphi * jeta;
4755 for (
int i = 1;
i <= nx;
i++) {
4756 double ccc1 = Gho1->GetBinContent(
i,
j);
4757 alexall[jeta][jphi][
i - 1] = ccc1;
4770 for (
int jphi = 0; jphi < njphi; jphi++) {
4771 for (
int i = 0;
i < nx;
i++) {
4772 double sumccc1 = 0.;
4774 for (
int jeta = 0; jeta < njeta; jeta++) {
4775 double ccc1 = alexall[jeta][jphi][
i];
4783 alexho[jphi][
i] = sumccc1;
4787 for (
int keta = 0; keta < njeta; keta++) {
4788 for (
int i = 0;
i < nx;
i++) {
4789 double sumccc1 = 0.;
4791 for (
int kphi = 0; kphi < njphi; kphi++) {
4792 double ccc1 = alexall[keta][kphi][
i];
4800 blexho[keta][
i] = sumccc1;
4810 cout <<
" RBX HO 2D plot *****" << endl;
4813 cRBX1->Divide(1, 1);
4816 TH2F *Gho42D =
new TH2F(
"Gho42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4817 TH2F *Gho42D0 =
new TH2F(
"Gho42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4820 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone(
"Gho42DF");
4821 for (
int jphi = 0; jphi < njphi; jphi++) {
4822 for (
int jeta = 0; jeta < njeta; jeta++) {
4823 for (
int i = 0;
i < nx;
i++) {
4824 double ccc1 = alexall[jeta][jphi][
i];
4825 int neweta = jeta - 11 - 0.5;
4827 neweta = jeta - 11 + 1.5;
4829 Gho42D->Fill(neweta, jphi, ccc1);
4830 Gho42D0->Fill(neweta, jphi, 1.);
4836 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1,
"B");
4840 Gho42DF->SetMarkerStyle(20);
4841 Gho42DF->SetMarkerSize(0.4);
4842 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4843 Gho42DF->SetXTitle(
"<A>_RBX #eta \b");
4844 Gho42DF->SetYTitle(
" #phi \b");
4845 Gho42DF->SetZTitle(
"<A>_RBX - All \b");
4846 Gho42DF->SetMarkerColor(2);
4847 Gho42DF->SetLineColor(2);
4848 Gho42DF->Draw(
"COLZ");
4852 cRBX1->Print(
"RBX-HO-2Dplot.png");
4867 cout <<
" RBX HO 1D plot *****" << endl;
4870 cRBX1->Divide(1, 1);
4872 TH1F *GphiHO1D =
new TH1F(
"GphiHO1D",
"", 18, 0., 18.);
4873 TH1F *GphiHO1D0 =
new TH1F(
"GphiHO1D0",
"", 18, 0., 18.);
4874 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone(
"GphiHO1DF");
4875 for (
int jphi = 0; jphi < 18; jphi++) {
4876 for (
int jeta = 0; jeta < 22; jeta++) {
4877 for (
int i = 0;
i < nx;
i++) {
4878 double ccc1 = alexall[jeta][jphi][
i];
4880 GphiHO1D->Fill(jphi, ccc1);
4881 GphiHO1D0->Fill(jphi, 1.);
4887 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1,
"B");
4889 for (
int jphi = 1; jphi < 19; jphi++) {
4890 GphiHO1DF->SetBinError(jphi, 0.01);
4894 GphiHO1DF->SetMarkerStyle(20);
4895 GphiHO1DF->SetMarkerSize(1.4);
4896 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4897 GphiHO1DF->SetXTitle(
"PHI of RBX\b");
4898 GphiHO1DF->SetYTitle(
" <Amplitude> \b");
4899 GphiHO1DF->SetZTitle(
"<A>_PHI - All \b");
4900 GphiHO1DF->SetMarkerColor(4);
4901 GphiHO1DF->SetLineColor(4);
4902 GphiHO1DF->SetMinimum(0.8);
4903 GphiHO1DF->Draw(
"Error");
4906 cRBX1->Print(
"RBX-HO-1Dplot.png");
4921 cout <<
" RBX HO 11D plot *eta*" << endl;
4924 cRBX1->Divide(1, 1);
4926 TH1F *GetaHO11D =
new TH1F(
"GetaHO11D",
"", 23, -11.5, 11.5);
4927 TH1F *GetaHO11D0 =
new TH1F(
"GetaHO11D0",
"", 23, -11.5, 11.5);
4928 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone(
"GetaHO11DF");
4930 for (
int jeta = 0; jeta < 22; jeta++) {
4931 for (
int jphi = 0; jphi < 18; jphi++) {
4932 for (
int i = 0;
i < nx;
i++) {
4933 double ccc1 = alexall[jeta][jphi][
i];
4934 int neweta = jeta - 11 - 0.5;
4936 neweta = jeta - 11 + 1.5;
4938 GetaHO11D->Fill(neweta, ccc1);
4939 GetaHO11D0->Fill(neweta, 1.);
4946 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1,
"B");
4948 for (
int jeta = 1; jeta < 24; jeta++) {
4949 GetaHO11DF->SetBinError(jeta, 0.01);
4953 GetaHO11DF->SetMarkerStyle(20);
4954 GetaHO11DF->SetMarkerSize(1.4);
4955 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4956 GetaHO11DF->SetXTitle(
"#eta \b");
4957 GetaHO11DF->SetYTitle(
" <A> \b");
4958 GetaHO11DF->SetZTitle(
"<A>_ETA - All \b");
4959 GetaHO11DF->SetMarkerColor(4);
4960 GetaHO11DF->SetLineColor(4);
4961 GetaHO11DF->SetMinimum(0.8);
4962 GetaHO11DF->Draw(
"Error");
4966 cRBX1->Print(
"RBX-HO-11Dplot.png");
4982 gStyle->SetOptStat(1110000);
4983 cout <<
" RBX HO Ratio plots *****" << endl;
4992 cRBX31->Divide(3, 1);
4996 TH1F *Gho51 =
new TH1F(
"Gho51",
"", nx, 1., nx + 1.);
4997 TH1F *Gho50 =
new TH1F(
"Gho50",
"", nx, 1., nx + 1.);
4998 TH1F *Gho5 = (TH1F *)Gho50->Clone(
"Gho5");
5000 for (
int j = 1;
j <= ny;
j++) {
5001 ccc0HO = Gho1->GetBinContent(1,
j);
5004 for (
int i = 1;
i <= nx;
i++) {
5005 double ccc2 = Gho1->GetBinContent(
i,
j);
5013 for (
int i = 1;
i <= nx;
i++) {
5014 double ccc1 = Gho1->GetBinContent(
i,
j);
5016 double Rij = ccc1 / ccc0HO;
5018 Gho51->Fill(
float(
i), Rij);
5019 Gho50->Fill(
float(
i), 1.);
5024 Gho5->Divide(Gho51, Gho50, 1, 1,
"B");
5025 for (
int i = 1;
i <= nx;
i++) {
5026 Gho5->SetBinError(
i, 0.0001);
5028 Gho5->SetMarkerStyle(20);
5029 Gho5->SetMarkerSize(0.4);
5030 Gho5->GetYaxis()->SetLabelSize(0.04);
5031 Gho5->SetMarkerColor(2);
5032 Gho5->SetLineColor(0);
5033 Gho5->SetXTitle(
" iLS \b");
5034 Gho5->SetYTitle(
" <R> \b");
5035 Gho5->SetTitle(
"<Ri> vs iLS \b");
5036 Gho5->SetMinimum(0.);
5041 Gho5->GetYaxis()->SetLabelSize(0.025);
5042 Gho5->Draw(
"Error");
5045 TH2F *Gho60 =
new TH2F(
"Gho60",
"", 22, -11., 11., 18, 0., 18.);
5046 TH2F *Gho61 =
new TH2F(
"Gho61",
"", 22, -11., 11., 18, 0., 18.);
5047 TH2F *Gho6 =
new TH2F(
"Gho6",
"", 22, -11., 11., 18, 0., 18.);
5049 TH2F *G20ho60 =
new TH2F(
"G20ho60",
"", 22, -11., 11., 18, 0., 18.);
5050 TH2F *G20ho61 =
new TH2F(
"G20ho61",
"", 22, -11., 11., 18, 0., 18.);
5051 TH2F *G20ho6 =
new TH2F(
"G20ho6",
"", 22, -11., 11., 18, 0., 18.);
5052 TH2F *G30ho60 =
new TH2F(
"G30ho60",
"", 22, -11., 11., 18, 0., 18.);
5053 TH2F *G30ho61 =
new TH2F(
"G30ho61",
"", 22, -11., 11., 18, 0., 18.);
5054 TH2F *G30ho6 =
new TH2F(
"G30ho6",
"", 22, -11., 11., 18, 0., 18.);
5055 TH2F *G40ho60 =
new TH2F(
"G40ho60",
"", 22, -11., 11., 18, 0., 18.);
5056 TH2F *G40ho61 =
new TH2F(
"G40ho61",
"", 22, -11., 11., 18, 0., 18.);
5057 TH2F *G40ho6 =
new TH2F(
"G40ho6",
"", 22, -11., 11., 18, 0., 18.);
5064 double meanjHO = 0.;
5065 for (
int j = 1;
j <= ny;
j++) {
5066 ccc0HO = Gho1->GetBinContent(1,
j);
5068 for (
int i = 1;
i <= nx;
i++) {
5069 double ccc2 = Gho1->GetBinContent(
i,
j);
5076 for (
int i = 1;
i <= nx;
i++) {
5077 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5083 meanjHO = sumjHO / njHO;
5087 double ssumjHO = 0.;
5089 double sigmajHO = 0.;
5090 for (
int j = 1;
j <= ny;
j++) {
5091 ccc0HO = Gho1->GetBinContent(1,
j);
5093 for (
int i = 1;
i <= nx;
i++) {
5094 double ccc2 = Gho1->GetBinContent(
i,
j);
5101 for (
int i = 1;
i <= nx;
i++) {
5102 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5104 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5108 sigmajHO =
sqrt(ssumjHO / njHO);
5112 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5113 if (dif3rmsHOMIN < 0.)
5115 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5116 cout <<
"22HO-2 meanjHO= " << meanjHO <<
" sigmajHO= " << sigmajHO <<
" dif3rmsHOMIN= " << dif3rmsHOMIN
5117 <<
" dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5119 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5120 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5121 if (MAXdif3rmsHOMIN < 0.95)
5122 MAXdif3rmsHOMIN = 0.95;
5123 if (MINdif3rmsHOMAX > 1.05)
5124 MINdif3rmsHOMAX = 1.05;
5125 cout <<
"22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5127 for (
int j = 1;
j <= ny;
j++) {
5128 ccc0HO = Gho1->GetBinContent(1,
j);
5130 for (
int i = 1;
i <= nx;
i++) {
5131 double ccc2 = Gho1->GetBinContent(
i,
j);
5138 int jeta = (
j - 1) / 18;
5139 int jphi = (
j - 1) - 18 * jeta;
5141 for (
int i = 1;
i <= nx;
i++) {
5142 double ccc1 = Gho1->GetBinContent(
i,
j);
5144 double Rij = ccc1 / ccc0HO;
5145 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5146 Gho61->Fill(jeta - 11, jphi, Rij);
5147 Gho60->Fill(jeta - 11, jphi, 1.);
5149 if (Rij < 0.8 || Rij > 1.2) {
5150 G20ho61->Fill(jeta - 11, jphi, Rij);
5151 G20ho60->Fill(jeta - 11, jphi, 1.);
5153 if (Rij < 0.7 || Rij > 1.3) {
5154 G30ho61->Fill(jeta - 11, jphi, Rij);
5155 G30ho60->Fill(jeta - 11, jphi, 1.);
5157 if (Rij < 0.6 || Rij > 1.4) {
5158 G40ho61->Fill(jeta - 11, jphi, Rij);
5159 G40ho60->Fill(jeta - 11, jphi, 1.);
5165 Gho6->Divide(Gho61, Gho60, 1, 1,
"B");
5166 G20ho6->Divide(G20ho61, G20ho60, 1, 1,
"B");
5167 G30ho6->Divide(G30ho61, G30ho60, 1, 1,
"B");
5168 G40ho6->Divide(G40ho61, G40ho60, 1, 1,
"B");
5171 Gho6->GetZaxis()->SetLabelSize(0.025);
5173 Gho6->SetXTitle(
" #eta \b");
5174 Gho6->SetYTitle(
" #phi \b");
5176 "<Rj> for |1-<R>| > 0.05 \b");
5182 TH1F *Gho7 =
new TH1F(
"Gho7",
"", 120, 0.4, 1.6);
5184 for (
int j = 1;
j <= ny;
j++) {
5185 ccc0HO = Gho1->GetBinContent(1,
j);
5187 for (
int i = 1;
i <= nx;
i++) {
5188 double ccc2 = Gho1->GetBinContent(
i,
j);
5196 for (
int i = 1;
i <= nx;
i++) {
5197 double ccc1 = Gho1->GetBinContent(
i,
j);
5199 double Rij = ccc1 / ccc0HO;
5205 Gho7->SetMarkerStyle(20);
5206 Gho7->SetMarkerSize(0.4);
5207 Gho7->GetYaxis()->SetLabelSize(0.04);
5208 Gho7->SetMarkerColor(2);
5209 Gho7->SetLineColor(0);
5210 Gho7->SetYTitle(
" N \b");
5211 Gho7->SetXTitle(
" Rij \b");
5212 Gho7->SetTitle(
" Rij \b");
5217 Gho7->GetYaxis()->SetLabelSize(0.025);
5218 Gho7->Draw(
"Error");
5219 Float_t ymaxHO = Gho7->GetMaximum();
5220 cout <<
"22HO-3 ymaxHO= " << ymaxHO <<
" MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5221 <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5222 TLine *lineHO =
new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5223 lineHO->SetLineColor(kBlue);
5225 TLine *line1HO =
new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5226 line1HO->SetLineColor(kBlue);
5231 cRBX31->Print(
"RBX-HO-3plots.png");
5266 gStyle->SetOptStat(1110000);
5267 cout <<
" RBX HO Ratio plotsmore *****" << endl;
5270 cRBX31->Divide(3, 1);
5273 G20ho6->GetZaxis()->SetLabelSize(0.025);
5274 G20ho6->SetXTitle(
" #eta \b");
5275 G20ho6->SetYTitle(
" #phi \b");
5276 G20ho6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5277 G20ho6->SetStats(0);
5278 G20ho6->Draw(
"COLZ");
5281 G30ho6->GetZaxis()->SetLabelSize(0.025);
5282 G30ho6->SetXTitle(
" #eta \b");
5283 G30ho6->SetYTitle(
" #phi \b");
5284 G30ho6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5285 G30ho6->SetStats(0);
5286 G30ho6->Draw(
"COLZ");
5289 G40ho6->GetZaxis()->SetLabelSize(0.025);
5290 G40ho6->SetXTitle(
" #eta \b");
5291 G40ho6->SetYTitle(
" #phi \b");
5292 G40ho6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5293 G40ho6->SetStats(0);
5294 G40ho6->Draw(
"COLZ");
5299 cRBX31->Print(
"RBX-HO-3plotsmore.png");
5309 gStyle->SetOptStat(0);
5312 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5313 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5314 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5315 for (
int jphi = 0; jphi < njphi; jphi++) {
5316 for (
int jeta = 0; jeta < njeta; jeta++) {
5317 for (
int i = 0;
i < nx;
i++) {
5318 alexall[jeta][jphi][
i] = 0.;
5329 cout <<
" RBX general for HF **************************" << endl;
5330 TH2F *Ghf1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs3");
5331 TH2F *Ghf1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs30");
5332 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone(
"Ghf1");
5333 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1,
"B");
5337 ny = Ghf1->GetYaxis()->GetNbins();
5338 for (
int j = 1;
j <= ny;
j++) {
5339 int jeta = (
j - 1) / njphi;
5340 if (jeta < 4 || jeta > 17) {
5341 int jphi = (
j - 1) - njphi * jeta;
5344 for (
int i = 1;
i <= nx;
i++) {
5345 double ccc1 = Ghf1->GetBinContent(
i,
j);
5346 alexall[jeta][jphi][
i - 1] = ccc1;
5359 for (
int jphi = 0; jphi < njphi; jphi++) {
5360 for (
int i = 0;
i < nx;
i++) {
5361 double sumccc1 = 0.;
5363 for (
int jeta = 0; jeta < njeta; jeta++) {
5364 double ccc1 = alexall[jeta][jphi][
i];
5372 alexhf[jphi][
i] = sumccc1;
5376 for (
int keta = 0; keta < njeta; keta++) {
5377 for (
int i = 0;
i < nx;
i++) {
5378 double sumccc1 = 0.;
5380 for (
int kphi = 0; kphi < njphi; kphi++) {
5381 double ccc1 = alexall[keta][kphi][
i];
5389 blexhf[keta][
i] = sumccc1;
5398 cout <<
" RBX HF 2D plot *****" << endl;
5401 cRBX1->Divide(1, 1);
5404 TH2F *Ghf42D =
new TH2F(
"Ghf42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
5405 TH2F *Ghf42D0 =
new TH2F(
"Ghf42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
5408 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone(
"Ghf42DF");
5409 for (
int jphi = 0; jphi < njphi; jphi++) {
5410 for (
int jeta = 0; jeta < njeta; jeta++) {
5411 for (
int i = 0;
i < nx;
i++) {
5412 double ccc1 = alexall[jeta][jphi][
i];
5413 int neweta = jeta - 11 - 0.5;
5415 neweta = jeta - 11 + 1.5;
5417 Ghf42D->Fill(neweta, jphi, ccc1);
5418 Ghf42D0->Fill(neweta, jphi, 1.);
5424 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1,
"B");
5428 Ghf42DF->SetMarkerStyle(20);
5429 Ghf42DF->SetMarkerSize(0.4);
5430 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5431 Ghf42DF->SetXTitle(
"<A>_RBX #eta \b");
5432 Ghf42DF->SetYTitle(
" #phi \b");
5433 Ghf42DF->SetZTitle(
"<A>_RBX - All \b");
5434 Ghf42DF->SetMarkerColor(2);
5435 Ghf42DF->SetLineColor(2);
5436 Ghf42DF->Draw(
"COLZ");
5440 cRBX1->Print(
"RBX-HF-2Dplot.png");
5455 cout <<
" RBX HF 1D plot *****" << endl;
5458 cRBX1->Divide(1, 1);
5460 TH1F *GphiHF1D =
new TH1F(
"GphiHF1D",
"", 18, 0., 18.);
5461 TH1F *GphiHF1D0 =
new TH1F(
"GphiHF1D0",
"", 18, 0., 18.);
5462 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone(
"GphiHF1DF");
5463 for (
int jphi = 0; jphi < 18; jphi++) {
5464 for (
int jeta = 0; jeta < 22; jeta++) {
5465 for (
int i = 0;
i < nx;
i++) {
5466 double ccc1 = alexall[jeta][jphi][
i];
5468 GphiHF1D->Fill(jphi, ccc1);
5469 GphiHF1D0->Fill(jphi, 1.);
5475 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1,
"B");
5477 for (
int jphi = 1; jphi < 19; jphi++) {
5478 GphiHF1DF->SetBinError(jphi, 0.01);
5482 GphiHF1DF->SetMarkerStyle(20);
5483 GphiHF1DF->SetMarkerSize(1.4);
5484 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5485 GphiHF1DF->SetXTitle(
"PHI of RBX\b");
5486 GphiHF1DF->SetYTitle(
" <Amplitude> \b");
5487 GphiHF1DF->SetZTitle(
"<A>_PHI - All \b");
5488 GphiHF1DF->SetMarkerColor(4);
5489 GphiHF1DF->SetLineColor(4);
5490 GphiHF1DF->SetMinimum(0.8);
5491 GphiHF1DF->Draw(
"Error");
5494 cRBX1->Print(
"RBX-HF-1Dplot.png");
5509 cout <<
" RBX HF 11D plot *eta*" << endl;
5512 cRBX1->Divide(1, 1);
5514 TH1F *GetaHF11D =
new TH1F(
"GetaHF11D",
"", 23, -11.5, 11.5);
5515 TH1F *GetaHF11D0 =
new TH1F(
"GetaHF11D0",
"", 23, -11.5, 11.5);
5516 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone(
"GetaHF11DF");
5518 for (
int jeta = 0; jeta < 22; jeta++) {
5519 for (
int jphi = 0; jphi < 18; jphi++) {
5520 for (
int i = 0;
i < nx;
i++) {
5521 double ccc1 = alexall[jeta][jphi][
i];
5522 int neweta = jeta - 11 - 0.5;
5524 neweta = jeta - 11 + 1.5;
5526 GetaHF11D->Fill(neweta, ccc1);
5527 GetaHF11D0->Fill(neweta, 1.);
5534 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1,
"B");
5536 for (
int jeta = 1; jeta < 24; jeta++) {
5537 GetaHF11DF->SetBinError(jeta, 0.01);
5541 GetaHF11DF->SetMarkerStyle(20);
5542 GetaHF11DF->SetMarkerSize(1.4);
5543 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5544 GetaHF11DF->SetXTitle(
"#eta \b");
5545 GetaHF11DF->SetYTitle(
" <A> \b");
5546 GetaHF11DF->SetZTitle(
"<A>_ETA - All \b");
5547 GetaHF11DF->SetMarkerColor(4);
5548 GetaHF11DF->SetLineColor(4);
5549 GetaHF11DF->SetMinimum(0.8);
5550 GetaHF11DF->Draw(
"Error");
5554 cRBX1->Print(
"RBX-HF-11Dplot.png");
5570 gStyle->SetOptStat(1110000);
5571 cout <<
" RBX HF Ratio plots *****" << endl;
5580 cRBX31->Divide(3, 1);
5584 TH1F *Ghf51 =
new TH1F(
"Ghf51",
"", nx, 1., nx + 1.);
5585 TH1F *Ghf50 =
new TH1F(
"Ghf50",
"", nx, 1., nx + 1.);
5586 TH1F *Ghf5 = (TH1F *)Ghf50->Clone(
"Ghf5");
5588 for (
int j = 1;
j <= ny;
j++) {
5589 ccc0HF = Ghf1->GetBinContent(1,
j);
5592 for (
int i = 1;
i <= nx;
i++) {
5593 double ccc2 = Ghf1->GetBinContent(
i,
j);
5601 for (
int i = 1;
i <= nx;
i++) {
5602 double ccc1 = Ghf1->GetBinContent(
i,
j);
5604 double Rij = ccc1 / ccc0HF;
5606 Ghf51->Fill(
float(
i), Rij);
5607 Ghf50->Fill(
float(
i), 1.);
5612 Ghf5->Divide(Ghf51, Ghf50, 1, 1,
"B");
5613 for (
int i = 1;
i <= nx;
i++) {
5614 Ghf5->SetBinError(
i, 0.0001);
5616 Ghf5->SetMarkerStyle(20);
5617 Ghf5->SetMarkerSize(0.4);
5618 Ghf5->GetYaxis()->SetLabelSize(0.04);
5619 Ghf5->SetMarkerColor(2);
5620 Ghf5->SetLineColor(0);
5621 Ghf5->SetXTitle(
" iLS \b");
5622 Ghf5->SetYTitle(
" <R> \b");
5623 Ghf5->SetTitle(
"<Ri> vs iLS \b");
5624 Ghf5->SetMinimum(0.);
5629 Ghf5->GetYaxis()->SetLabelSize(0.025);
5630 Ghf5->Draw(
"Error");
5633 TH2F *Ghf60 =
new TH2F(
"Ghf60",
"", 22, -11., 11., 18, 0., 18.);
5634 TH2F *Ghf61 =
new TH2F(
"Ghf61",
"", 22, -11., 11., 18, 0., 18.);
5635 TH2F *Ghf6 =
new TH2F(
"Ghf6",
"", 22, -11., 11., 18, 0., 18.);
5637 TH2F *G20hf60 =
new TH2F(
"G20hf60",
"", 22, -11., 11., 18, 0., 18.);
5638 TH2F *G20hf61 =
new TH2F(
"G20hf61",
"", 22, -11., 11., 18, 0., 18.);
5639 TH2F *G20hf6 =
new TH2F(
"G20hf6",
"", 22, -11., 11., 18, 0., 18.);
5640 TH2F *G30hf60 =
new TH2F(
"G30hf60",
"", 22, -11., 11., 18, 0., 18.);
5641 TH2F *G30hf61 =
new TH2F(
"G30hf61",
"", 22, -11., 11., 18, 0., 18.);
5642 TH2F *G30hf6 =
new TH2F(
"G30hf6",
"", 22, -11., 11., 18, 0., 18.);
5643 TH2F *G40hf60 =
new TH2F(
"G40hf60",
"", 22, -11., 11., 18, 0., 18.);
5644 TH2F *G40hf61 =
new TH2F(
"G40hf61",
"", 22, -11., 11., 18, 0., 18.);
5645 TH2F *G40hf6 =
new TH2F(
"G40hf6",
"", 22, -11., 11., 18, 0., 18.);
5651 double meanjHF = 0.;
5652 for (
int j = 1;
j <= ny;
j++) {
5653 ccc0HF = Ghf1->GetBinContent(1,
j);
5655 for (
int i = 1;
i <= nx;
i++) {
5656 double ccc2 = Ghf1->GetBinContent(
i,
j);
5663 for (
int i = 1;
i <= nx;
i++) {
5664 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5670 meanjHF = sumjHF / njHF;
5674 double ssumjHF = 0.;
5676 double sigmajHF = 0.;
5677 for (
int j = 1;
j <= ny;
j++) {
5678 ccc0HF = Ghf1->GetBinContent(1,
j);
5680 for (
int i = 1;
i <= nx;
i++) {
5681 double ccc2 = Ghf1->GetBinContent(
i,
j);
5688 for (
int i = 1;
i <= nx;
i++) {
5689 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5691 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5695 sigmajHF =
sqrt(ssumjHF / njHF);
5699 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5700 if (dif3rmsHFMIN < 0.)
5702 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5703 cout <<
"22HF-2 meanjHF= " << meanjHF <<
" sigmajHF= " << sigmajHF <<
" dif3rmsHFMIN= " << dif3rmsHFMIN
5704 <<
" dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5706 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5707 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5708 if (MAXdif3rmsHFMIN < 0.95)
5709 MAXdif3rmsHFMIN = 0.95;
5710 if (MINdif3rmsHFMAX > 1.05)
5711 MINdif3rmsHFMAX = 1.05;
5712 cout <<
"22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5714 for (
int j = 1;
j <= ny;
j++) {
5715 ccc0HF = Ghf1->GetBinContent(1,
j);
5717 for (
int i = 1;
i <= nx;
i++) {
5718 double ccc2 = Ghf1->GetBinContent(
i,
j);
5725 int jeta = (
j - 1) / 18;
5726 int jphi = (
j - 1) - 18 * jeta;
5728 for (
int i = 1;
i <= nx;
i++) {
5729 double ccc1 = Ghf1->GetBinContent(
i,
j);
5731 double Rij = ccc1 / ccc0HF;
5732 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5733 Ghf61->Fill(jeta - 11, jphi, Rij);
5734 Ghf60->Fill(jeta - 11, jphi, 1.);
5736 if (Rij < 0.8 || Rij > 1.2) {
5737 G20hf61->Fill(jeta - 11, jphi, Rij);
5738 G20hf60->Fill(jeta - 11, jphi, 1.);
5740 if (Rij < 0.7 || Rij > 1.3) {
5741 G30hf61->Fill(jeta - 11, jphi, Rij);
5742 G30hf60->Fill(jeta - 11, jphi, 1.);
5744 if (Rij < 0.6 || Rij > 1.4) {
5745 G40hf61->Fill(jeta - 11, jphi, Rij);
5746 G40hf60->Fill(jeta - 11, jphi, 1.);
5752 Ghf6->Divide(Ghf61, Ghf60, 1, 1,
"B");
5753 G20hf6->Divide(G20hf61, G20hf60, 1, 1,
"B");
5754 G30hf6->Divide(G30hf61, G30hf60, 1, 1,
"B");
5755 G40hf6->Divide(G40hf61, G40hf60, 1, 1,
"B");
5758 Ghf6->GetZaxis()->SetLabelSize(0.025);
5760 Ghf6->SetXTitle(
" #eta \b");
5761 Ghf6->SetYTitle(
" #phi \b");
5763 "<Rj> for |1-<R>| > 0.05 \b");
5769 TH1F *Ghf7 =
new TH1F(
"Ghf7",
"", 120, 0.4, 1.6);
5771 for (
int j = 1;
j <= ny;
j++) {
5772 ccc0HF = Ghf1->GetBinContent(1,
j);
5774 for (
int i = 1;
i <= nx;
i++) {
5775 double ccc2 = Ghf1->GetBinContent(
i,
j);
5783 for (
int i = 1;
i <= nx;
i++) {
5784 double ccc1 = Ghf1->GetBinContent(
i,
j);
5786 double Rij = ccc1 / ccc0HF;
5792 Ghf7->SetMarkerStyle(20);
5793 Ghf7->SetMarkerSize(0.4);
5794 Ghf7->GetYaxis()->SetLabelSize(0.04);
5795 Ghf7->SetMarkerColor(2);
5796 Ghf7->SetLineColor(0);
5797 Ghf7->SetYTitle(
" N \b");
5798 Ghf7->SetXTitle(
" Rij \b");
5799 Ghf7->SetTitle(
" Rij \b");
5804 Ghf7->GetYaxis()->SetLabelSize(0.025);
5805 Ghf7->Draw(
"Error");
5806 Float_t ymaxHF = Ghf7->GetMaximum();
5807 cout <<
"22HF-3 ymaxHF= " << ymaxHF <<
" MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5808 <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5809 TLine *lineHF =
new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5810 lineHF->SetLineColor(kBlue);
5812 TLine *line1HF =
new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5813 line1HF->SetLineColor(kBlue);
5818 cRBX31->Print(
"RBX-HF-3plots.png");
5853 gStyle->SetOptStat(1110000);
5854 cout <<
" RBX HF Ratio plotsmore *****" << endl;
5857 cRBX31->Divide(3, 1);
5860 G20hf6->GetZaxis()->SetLabelSize(0.025);
5861 G20hf6->SetXTitle(
" #eta \b");
5862 G20hf6->SetYTitle(
" #phi \b");
5863 G20hf6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5864 G20hf6->SetStats(0);
5865 G20hf6->Draw(
"COLZ");
5868 G30hf6->GetZaxis()->SetLabelSize(0.025);
5869 G30hf6->SetXTitle(
" #eta \b");
5870 G30hf6->SetYTitle(
" #phi \b");
5871 G30hf6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5872 G30hf6->SetStats(0);
5873 G30hf6->Draw(
"COLZ");
5876 G40hf6->GetZaxis()->SetLabelSize(0.025);
5877 G40hf6->SetXTitle(
" #eta \b");
5878 G40hf6->SetYTitle(
" #phi \b");
5879 G40hf6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5880 G40hf6->SetStats(0);
5881 G40hf6->Draw(
"COLZ");
5886 cRBX31->Print(
"RBX-HF-3plotsmore.png");
5896 gStyle->SetOptStat(0);
5898 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5899 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5900 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5908 int mymaxbins = MaxLum;
5914 TH2F *occhbm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBM");
5915 TH1F *uyhbm =
new TH1F(
"uyhbm",
"", mymaxbins, 1., mymaxbins + 1.);
5916 for (
int i = 1;
i <= occhbm->GetXaxis()->GetNbins();
i++) {
5917 double ccc1 = occhbm->GetBinContent(
i);
5920 uyhbm->Fill(
float(
i), ccc1);
5923 uyhbm->SetMarkerStyle(20);
5924 uyhbm->SetMarkerSize(0.6);
5925 uyhbm->GetYaxis()->SetLabelSize(0.04);
5926 uyhbm->SetXTitle(
"min/av occupancy - HBM \b");
5927 uyhbm->SetMarkerColor(2);
5928 uyhbm->SetLineColor(0);
5929 uyhbm->SetMaximum(1.0);
5930 uyhbm->SetMinimum(0.2);
5932 uyhbm->Draw(
"Error");
5935 TH2F *occhbp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBP");
5936 TH1F *uyhbp =
new TH1F(
"uyhbp",
"", mymaxbins, 1., mymaxbins + 1.);
5937 for (
int i = 1;
i <= occhbp->GetXaxis()->GetNbins();
i++) {
5938 double ccc1 = occhbp->GetBinContent(
i);
5941 uyhbp->Fill(
float(
i), ccc1);
5944 uyhbp->SetMarkerStyle(20);
5945 uyhbp->SetMarkerSize(0.6);
5946 uyhbp->GetYaxis()->SetLabelSize(0.04);
5947 uyhbp->SetXTitle(
"min/av occupancy - HBP \b");
5948 uyhbp->SetMarkerColor(2);
5949 uyhbp->SetLineColor(0);
5950 uyhbp->SetMaximum(1.0);
5951 uyhbp->SetMinimum(0.2);
5953 uyhbp->Draw(
"Error");
5958 cHB->Print(Form(
"OccPlots_HB.png"));
5978 TH2F *occhem = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEM");
5979 TH1F *uyhem =
new TH1F(
"uyhem",
"", mymaxbins, 1., mymaxbins + 1.);
5980 for (
int i = 1;
i <= occhem->GetXaxis()->GetNbins();
i++) {
5981 double ccc1 = occhem->GetBinContent(
i);
5984 uyhem->Fill(
float(
i), ccc1);
5987 uyhem->SetMarkerStyle(20);
5988 uyhem->SetMarkerSize(0.6);
5989 uyhem->GetYaxis()->SetLabelSize(0.04);
5990 uyhem->SetXTitle(
"min/av occupancy - HEM \b");
5991 uyhem->SetMarkerColor(2);
5992 uyhem->SetLineColor(0);
5993 uyhem->SetMaximum(1.0);
5994 uyhem->SetMinimum(0.2);
5996 uyhem->Draw(
"Error");
5999 TH2F *occhep = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEP");
6000 TH1F *uyhep =
new TH1F(
"uyhep",
"", mymaxbins, 1., mymaxbins + 1.);
6001 for (
int i = 1;
i <= occhep->GetXaxis()->GetNbins();
i++) {
6002 double ccc1 = occhep->GetBinContent(
i);
6005 uyhep->Fill(
float(
i), ccc1);
6008 uyhep->SetMarkerStyle(20);
6009 uyhep->SetMarkerSize(0.6);
6010 uyhep->GetYaxis()->SetLabelSize(0.04);
6011 uyhep->SetXTitle(
"min/av occupancy - HEP \b");
6012 uyhep->SetMarkerColor(2);
6013 uyhep->SetLineColor(0);
6014 uyhep->SetMaximum(1.0);
6015 uyhep->SetMinimum(0.2);
6017 uyhep->Draw(
"Error");
6022 cHB->Print(Form(
"OccPlots_HE.png"));
6042 TH2F *occhom = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOM");
6043 TH1F *uyhom =
new TH1F(
"uyhom",
"", mymaxbins, 1., mymaxbins + 1.);
6044 for (
int i = 1;
i <= occhom->GetXaxis()->GetNbins();
i++) {
6045 double ccc1 = occhom->GetBinContent(
i);
6048 uyhom->Fill(
float(
i), ccc1);
6051 uyhom->SetMarkerStyle(20);
6052 uyhom->SetMarkerSize(0.6);
6053 uyhom->GetYaxis()->SetLabelSize(0.04);
6054 uyhom->SetXTitle(
"min/av occupancy - HOM \b");
6055 uyhom->SetMarkerColor(2);
6056 uyhom->SetLineColor(0);
6057 uyhom->SetMaximum(1.0);
6058 uyhom->SetMinimum(0.2);
6060 uyhom->Draw(
"Error");
6063 TH2F *occhop = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOP");
6064 TH1F *uyhop =
new TH1F(
"uyhop",
"", mymaxbins, 1., mymaxbins + 1.);
6065 for (
int i = 1;
i <= occhop->GetXaxis()->GetNbins();
i++) {
6066 double ccc1 = occhop->GetBinContent(
i);
6069 uyhop->Fill(
float(
i), ccc1);
6072 uyhop->SetMarkerStyle(20);
6073 uyhop->SetMarkerSize(0.6);
6074 uyhop->GetYaxis()->SetLabelSize(0.04);
6075 uyhop->SetXTitle(
"min/av occupancy - HOP \b");
6076 uyhop->SetMarkerColor(2);
6077 uyhop->SetLineColor(0);
6078 uyhop->SetMaximum(1.0);
6079 uyhop->SetMinimum(0.2);
6081 uyhop->Draw(
"Error");
6086 cHB->Print(Form(
"OccPlots_HO.png"));
6106 TH2F *occhfm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFM");
6107 TH1F *uyhfm =
new TH1F(
"uyhfm",
"", mymaxbins, 1., mymaxbins + 1.);
6108 for (
int i = 1;
i <= occhfm->GetXaxis()->GetNbins();
i++) {
6109 double ccc1 = occhfm->GetBinContent(
i);
6112 uyhfm->Fill(
float(
i), ccc1);
6115 uyhfm->SetMarkerStyle(20);
6116 uyhfm->SetMarkerSize(0.6);
6117 uyhfm->GetYaxis()->SetLabelSize(0.04);
6118 uyhfm->SetXTitle(
"min/av occupancy - HFM \b");
6119 uyhfm->SetMarkerColor(2);
6120 uyhfm->SetLineColor(0);
6121 uyhfm->SetMaximum(1.0);
6122 uyhfm->SetMinimum(0.2);
6124 uyhfm->Draw(
"Error");
6127 TH2F *occhfp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFP");
6128 TH1F *uyhfp =
new TH1F(
"uyhfp",
"", mymaxbins, 1., mymaxbins + 1.);
6129 for (
int i = 1;
i <= occhfp->GetXaxis()->GetNbins();
i++) {
6130 double ccc1 = occhfp->GetBinContent(
i);
6133 uyhfp->Fill(
float(
i), ccc1);
6136 uyhfp->SetMarkerStyle(20);
6137 uyhfp->SetMarkerSize(0.6);
6138 uyhfp->GetYaxis()->SetLabelSize(0.04);
6139 uyhfp->SetXTitle(
"min/av occupancy - HFP \b");
6140 uyhfp->SetMarkerColor(2);
6141 uyhfp->SetLineColor(0);
6142 uyhfp->SetMaximum(1.0);
6143 uyhfp->SetMinimum(0.2);
6145 uyhfp->Draw(
"Error");
6150 cHB->Print(Form(
"OccPlots_HF.png"));
6163 std::cout <<
"************>>> occupancy plots done" << std::endl;
6170 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots " << endl;
6171 int maxbins = MaxLum;
6172 cout <<
">>>> maxbins = " << maxbins << endl;
6173 TH1F *SummedAmplitudeHisto[4];
6174 SummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HB");
6175 SummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HE");
6176 SummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HO");
6177 SummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HF");
6178 TH1F *SummedAmplitudeOccupancyHisto[4];
6179 SummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HB");
6180 SummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HE");
6181 SummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HO");
6182 SummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HF");
6183 for (
int sub = 0; sub < 4; sub++) {
6187 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6189 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6191 if (SummedAmplitudeHisto[sub])
6192 ccc1 = SummedAmplitudeHisto[sub]->GetBinContent(
i);
6195 kslpq->Fill(
float(
i), ccc1);
6198 kslpq->SetMarkerStyle(20);
6199 kslpq->SetMarkerSize(0.8);
6200 kslpq->GetYaxis()->SetLabelSize(0.04);
6201 kslpq->SetXTitle(
"SumA of channels w/ signal per LS \b");
6202 kslpq->SetMarkerColor(2);
6203 kslpq->SetLineColor(0);
6206 kslpq->Draw(
"Error");
6209 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6210 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6212 if (SummedAmplitudeOccupancyHisto[sub])
6213 ccc1 = SummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6216 pqmks->Fill(
float(
i), ccc1);
6219 pqmks->SetMarkerStyle(20);
6220 pqmks->SetMarkerSize(0.8);
6221 pqmks->GetYaxis()->SetLabelSize(0.04);
6222 pqmks->SetXTitle(
"Occupancy of channels w/ signal per LS \b");
6223 pqmks->SetMarkerColor(4);
6224 pqmks->SetLineColor(0);
6227 pqmks->Draw(
"Error");
6230 cHE->Print(
"SummedAmplitudesSignal_HB.png");
6232 cHE->Print(
"SummedAmplitudesSignal_HE.png");
6234 cHE->Print(
"SummedAmplitudesSignal_HO.png");
6236 cHE->Print(
"SummedAmplitudesSignal_HF.png");
6249 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots NoSignal " << endl;
6250 TH1F *NoSignalSummedAmplitudeHisto[4];
6251 NoSignalSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HB");
6252 NoSignalSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HE");
6253 NoSignalSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HO");
6254 NoSignalSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HF");
6255 TH1F *NoSignalSummedAmplitudeOccupancyHisto[4];
6256 NoSignalSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HB");
6257 NoSignalSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HE");
6258 NoSignalSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HO");
6259 NoSignalSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HF");
6260 for (
int sub = 0; sub < 4; sub++) {
6265 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6266 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6268 if (NoSignalSummedAmplitudeHisto[sub])
6269 ccc1 = NoSignalSummedAmplitudeHisto[sub]->GetBinContent(
i);
6272 kslpq->Fill(
float(
i), ccc1);
6275 kslpq->SetMarkerStyle(20);
6276 kslpq->SetMarkerSize(0.8);
6277 kslpq->GetYaxis()->SetLabelSize(0.04);
6278 kslpq->SetXTitle(
"SumA of channels w/o signal per LS \b");
6279 kslpq->SetMarkerColor(2);
6280 kslpq->SetLineColor(0);
6282 kslpq->SetMaximum(20000.);
6283 kslpq->SetMinimum(5000.);
6284 }
else if (sub == 1) {
6285 kslpq->SetMaximum(40000.);
6286 kslpq->SetMinimum(0.);
6287 }
else if (sub == 2) {
6288 kslpq->SetMaximum(10000.);
6289 kslpq->SetMinimum(15000.);
6290 }
else if (sub == 3) {
6291 kslpq->SetMaximum(100000.);
6292 kslpq->SetMinimum(0.);
6295 kslpq->Draw(
"Error");
6298 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6299 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6301 if (NoSignalSummedAmplitudeOccupancyHisto[sub])
6302 ccc1 = NoSignalSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6305 pqmks->Fill(
float(
i), ccc1);
6308 pqmks->SetMarkerStyle(20);
6309 pqmks->SetMarkerSize(0.8);
6310 pqmks->GetYaxis()->SetLabelSize(0.04);
6311 pqmks->SetXTitle(
"Occupancy of channels w/o signal per LS \b");
6312 pqmks->SetMarkerColor(4);
6313 pqmks->SetLineColor(0);
6315 pqmks->SetMaximum(600.);
6316 pqmks->SetMinimum(200.);
6317 }
else if (sub == 1) {
6318 pqmks->SetMaximum(910.);
6319 pqmks->SetMinimum(10.);
6320 }
else if (sub == 2) {
6321 pqmks->SetMaximum(200.);
6322 pqmks->SetMinimum(50.);
6323 }
else if (sub == 3) {
6324 pqmks->SetMaximum(866.);
6325 pqmks->SetMinimum(856.);
6328 pqmks->Draw(
"Error");
6331 cHE->Print(
"NoSignalSummedAmplitudes_HB.png");
6333 cHE->Print(
"NoSignalSummedAmplitudes_HE.png");
6335 cHE->Print(
"NoSignalSummedAmplitudes_HO.png");
6337 cHE->Print(
"NoSignalSummedAmplitudes_HF.png");
6351 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots Maxx " << endl;
6352 TH1F *MaxxSummedAmplitudeHisto[4];
6353 MaxxSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HB");
6354 MaxxSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HE");
6355 MaxxSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HO");
6356 MaxxSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HF");
6357 TH1F *MaxxSummedAmplitudeOccupancyHisto[4];
6358 MaxxSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HB");
6359 MaxxSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HE");
6360 MaxxSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HO");
6361 MaxxSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HF");
6362 TH1F *SAmplitudeHisto[4];
6363 SAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_eventamplitude_HB");
6364 SAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_eventamplitude_HE");
6365 SAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_eventamplitude_HO");
6366 SAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_eventamplitude_HF");
6367 TH1F *OccupancyHisto[4];
6368 OccupancyHisto[0] = (TH1F *)hfile->Get(
"h_eventoccupancy_HB");
6369 OccupancyHisto[1] = (TH1F *)hfile->Get(
"h_eventoccupancy_HE");
6370 OccupancyHisto[2] = (TH1F *)hfile->Get(
"h_eventoccupancy_HO");
6371 OccupancyHisto[3] = (TH1F *)hfile->Get(
"h_eventoccupancy_HF");
6373 int countamplmaxHB = 0;
6374 int countamplmaxHE = 0;
6375 int countamplmaxHO = 0;
6376 int countamplmaxHF = 0;
6377 int countoccumaxHB = 0;
6378 int countoccumaxHE = 0;
6379 int countoccumaxHO = 0;
6380 int countoccumaxHF = 0;
6381 unsigned long int countamplHB = 0;
6382 unsigned long int countamplHE = 0;
6383 unsigned long int countamplHO = 0;
6384 unsigned long int countamplHF = 0;
6385 unsigned long int countoccuHB = 0;
6386 unsigned long int countoccuHE = 0;
6387 unsigned long int countoccuHO = 0;
6388 unsigned long int countoccuHF = 0;
6389 gStyle->SetOptStat(110000);
6390 for (
int sub = 0; sub < 4; sub++) {
6392 cFour->Divide(2, 2);
6395 TH1F *lpqxc =
new TH1F(
"lpqxc",
"", maxbins, 1., maxbins + 1.);
6396 for (
int i = 1;
i <= lpqxc->GetXaxis()->GetNbins();
i++) {
6398 if (MaxxSummedAmplitudeHisto[sub])
6399 ccc1 = MaxxSummedAmplitudeHisto[sub]->GetBinContent(
i);
6402 lpqxc->Fill(
float(
i), ccc1);
6403 if (sub == 0 && ccc1 > 60000.)
6405 if (sub == 1 && ccc1 > 60000.)
6407 if (sub == 2 && ccc1 > 150000.)
6409 if (sub == 3 && ccc1 > 22000.)
6413 lpqxc->SetMarkerStyle(20);
6414 lpqxc->SetMarkerSize(0.8);
6417 lpqxc->SetXTitle(
"HB: max SA over LS-events per LS \b");
6419 lpqxc->SetXTitle(
"HE: max SA over LS-events per LS \b");
6421 lpqxc->SetXTitle(
"HO: max SA over LS-events per LS \b");
6423 lpqxc->SetXTitle(
"HF: max SA over LS-events per LS \b");
6424 lpqxc->SetMarkerColor(2);
6425 lpqxc->SetLineColor(0);
6427 lpqxc->Draw(
"Error");
6431 TH1F *hpzlm =
new TH1F(
"hpzlm",
"", maxbins, 1., maxbins + 1.);
6432 for (
int i = 1;
i <= hpzlm->GetXaxis()->GetNbins();
i++) {
6434 if (MaxxSummedAmplitudeOccupancyHisto[sub])
6435 ccc1 = MaxxSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6438 hpzlm->Fill(
float(
i), ccc1);
6439 if (sub == 0 && ccc1 > 2000.)
6441 if (sub == 1 && ccc1 > 1200.)
6443 if (sub == 2 && ccc1 > 2000.)
6445 if (sub == 3 && ccc1 > 860.)
6449 hpzlm->SetMarkerStyle(20);
6450 hpzlm->SetMarkerSize(0.8);
6453 hpzlm->SetXTitle(
"HB: max Occupancy over LS-events per LS \b");
6455 hpzlm->SetXTitle(
"HE: max Occupancy over LS-events per LS \b");
6457 hpzlm->SetXTitle(
"HO: max Occupancy over LS-events per LS \b");
6459 hpzlm->SetXTitle(
"HF: max Occupancy over LS-events per LS \b");
6460 hpzlm->SetMarkerColor(4);
6461 hpzlm->SetLineColor(0);
6464 hpzlm->SetMaximum(866.);
6465 hpzlm->SetMinimum(856.);
6467 hpzlm->Draw(
"Error");
6472 if (SAmplitudeHisto[sub]) {
6473 for (
int i = 1;
i <= SAmplitudeHisto[sub]->GetXaxis()->GetNbins();
i++) {
6478 if (sub == 0 &&
i * 800 > 60000.)
6479 countamplHB += SAmplitudeHisto[sub]->GetBinContent(
i);
6480 if (sub == 1 &&
i * 1000 > 60000.)
6481 countamplHE += SAmplitudeHisto[sub]->GetBinContent(
i);
6482 if (sub == 2 &&
i * 2500 > 150000.)
6483 countamplHO += SAmplitudeHisto[sub]->GetBinContent(
i);
6484 if (sub == 3 &&
i * 1400 > 22000.)
6485 countamplHF += SAmplitudeHisto[sub]->GetBinContent(
i);
6487 SAmplitudeHisto[sub]->SetMarkerStyle(20);
6488 SAmplitudeHisto[sub]->SetMarkerSize(0.8);
6490 SAmplitudeHisto[sub]->SetTitle(
"HB event Amplitude\b");
6492 SAmplitudeHisto[sub]->SetTitle(
"HE event Amplitude\b");
6494 SAmplitudeHisto[sub]->SetTitle(
"HO event Amplitude\b");
6496 SAmplitudeHisto[sub]->SetTitle(
"HF event Amplitude\b");
6498 SAmplitudeHisto[sub]->SetXTitle(
"event amplitude \b");
6499 SAmplitudeHisto[sub]->SetMarkerColor(2);
6500 SAmplitudeHisto[sub]->SetLineColor(2);
6501 SAmplitudeHisto[sub]->Draw(
"");
6506 if (OccupancyHisto[sub]) {
6507 for (
int i = 1;
i <= OccupancyHisto[sub]->GetXaxis()->GetNbins();
i++) {
6508 if (sub == 0 &&
i * 30 > 2000.)
6509 countoccuHB += OccupancyHisto[sub]->GetBinContent(
i);
6510 if (sub == 1 &&
i * 20 > 1200.)
6511 countoccuHE += OccupancyHisto[sub]->GetBinContent(
i);
6512 if (sub == 2 &&
i * 25 > 2000.)
6513 countoccuHO += OccupancyHisto[sub]->GetBinContent(
i);
6514 if (sub == 3 &&
i * 10 > 860.)
6515 countoccuHF += OccupancyHisto[sub]->GetBinContent(
i);
6517 OccupancyHisto[sub]->SetMarkerStyle(20);
6518 OccupancyHisto[sub]->SetMarkerSize(0.8);
6520 OccupancyHisto[sub]->SetTitle(
"HB event Occupancy\b");
6522 OccupancyHisto[sub]->SetTitle(
"HE event Occupancy\b");
6524 OccupancyHisto[sub]->SetTitle(
"HO event Occupancy\b");
6526 OccupancyHisto[sub]->SetTitle(
"HF event Occupancy\b");
6528 OccupancyHisto[sub]->SetXTitle(
"event occupancy \b");
6529 OccupancyHisto[sub]->SetMarkerColor(4);
6530 OccupancyHisto[sub]->SetLineColor(4);
6531 OccupancyHisto[sub]->Draw(
"");
6536 cFour->Print(
"MaxxSummedAmplitudes_HB.png");
6538 cFour->Print(
"MaxxSummedAmplitudes_HE.png");
6540 cFour->Print(
"MaxxSummedAmplitudes_HO.png");
6542 cFour->Print(
"MaxxSummedAmplitudes_HF.png");
6549 gStyle->SetOptStat(0);
6551 cout <<
">=>=>>=> countamplmaxHB= " << countamplmaxHB <<
" countamplmaxHE= " << countamplmaxHE
6552 <<
" countamplmaxHO= " << countamplmaxHO <<
" countamplmaxHF= " << countamplmaxHF << endl;
6553 cout <<
">=>=>>=> countoccumaxHB= " << countoccumaxHB <<
" countoccumaxHE= " << countoccumaxHE
6554 <<
" countoccumaxHO= " << countoccumaxHO <<
" countoccumaxHF= " << countoccumaxHF << endl;
6555 cout <<
">=>=>>=> countamplHB= " << countamplHB <<
" countamplHE= " << countamplHE <<
" countamplHO= " << countamplHO
6556 <<
" countamplHF= " << countamplHF << endl;
6557 cout <<
">=>=>>=> countoccuHB= " << countoccuHB <<
" countoccuHE= " << countoccuHE <<
" countoccuHO= " << countoccuHO
6558 <<
" countoccuHF= " << countoccuHF << endl;
6563 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>channelsummedA over depths " << endl;
6564 TH1F *ChannelDepthsummedAmplitudesPlots[4];
6565 ChannelDepthsummedAmplitudesPlots[0] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HB");
6566 ChannelDepthsummedAmplitudesPlots[1] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HE");
6567 ChannelDepthsummedAmplitudesPlots[2] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HO");
6568 ChannelDepthsummedAmplitudesPlots[3] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HF");
6570 if (ChannelDepthsummedAmplitudesPlots[0])
6571 litebdt[0] =
new TLine(80., 0.8, 80., ChannelDepthsummedAmplitudesPlots[0]->GetBinContent(4) + 100.);
6572 if (ChannelDepthsummedAmplitudesPlots[1])
6573 litebdt[1] =
new TLine(200., 0.8, 200., ChannelDepthsummedAmplitudesPlots[1]->GetBinContent(7) + 100.);
6574 if (ChannelDepthsummedAmplitudesPlots[2])
6575 litebdt[2] =
new TLine(1200., 0.8, 1200., ChannelDepthsummedAmplitudesPlots[2]->GetBinContent(17) + 100.);
6576 if (ChannelDepthsummedAmplitudesPlots[3])
6577 litebdt[3] =
new TLine(600., 0.8, 600., ChannelDepthsummedAmplitudesPlots[3]->GetBinContent(6) + 100.);
6579 gStyle->SetOptStat(110000);
6581 cFour1->Divide(2, 2);
6582 for (
int sub = 0; sub < 4; sub++) {
6592 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerStyle(20);
6593 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerSize(0.8);
6595 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HB channel Amplitudes\b");
6597 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HE channel Amplitudes\b");
6599 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HO channel Amplitudes\b");
6601 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HF channel Amplitudes\b");
6603 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HB channel depths summed Amplitudes \b");
6605 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HE channel depths summed Amplitudes \b");
6607 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HO channel depths summed Amplitudes \b");
6609 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HF channel depths summed Amplitudes \b");
6610 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerColor(2);
6611 ChannelDepthsummedAmplitudesPlots[sub]->SetLineColor(2);
6612 ChannelDepthsummedAmplitudesPlots[sub]->Draw(
"");
6613 litebdt[sub]->SetLineColor(kBlue);
6614 litebdt[sub]->Draw(
"s");
6617 cFour1->Print(
"ChannelDepthsummedAmplitudes.png");
6619 gStyle->SetOptStat(0);
6624 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>2DAtaildepth " << endl;
6629 TH2F *DAtaildepth1[2];
6630 DAtaildepth1[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth1_HB");
6631 DAtaildepth1[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth1_HB");
6633 if (!DAtaildepth1[0] || !DAtaildepth1[1]) {
6634 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 1" << endl;
6636 TH2F *tail1 = (TH2F *)DAtaildepth1[0]->Clone(
"tail1");
6637 tail1->Divide(DAtaildepth1[0], DAtaildepth1[1], 1, 1,
"B");
6642 tail1->SetMarkerStyle(20);
6643 tail1->SetMarkerSize(0.4);
6644 tail1->SetTitle(
"Amplitudes for tail-events (HBdepth1) \b");
6645 tail1->SetXTitle(
"#eta \b");
6646 tail1->SetYTitle(
"#phi \b");
6647 tail1->SetZTitle(
"2D <A> in the tail - HB Depth1 \b");
6648 tail1->SetMarkerColor(2);
6649 tail1->SetLineColor(2);
6650 tail1->Draw(
"COLZ");
6652 TH2F *DAtaildepth2[2];
6653 DAtaildepth2[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth2_HB");
6654 DAtaildepth2[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth2_HB");
6656 if (!DAtaildepth2[0] || !DAtaildepth2[1]) {
6657 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 2" << endl;
6659 TH2F *tail2 = (TH2F *)DAtaildepth2[0]->Clone(
"tail2");
6660 tail2->Divide(DAtaildepth2[0], DAtaildepth2[1], 1, 1,
"B");
6665 tail2->SetMarkerStyle(20);
6666 tail2->SetMarkerSize(0.4);
6667 tail2->SetTitle(
"Amplitudes for tail-events (HBdepth2) \b");
6668 tail2->SetXTitle(
"#eta \b");
6669 tail2->SetYTitle(
"#phi \b");
6670 tail2->SetZTitle(
"2D <A> in the tail - HB Depth2 \b");
6671 tail2->SetMarkerColor(2);
6672 tail2->SetLineColor(2);
6673 tail2->Draw(
"COLZ");
6677 cHB->Print(
"AtaildepthHB.png");
6683 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>sumOccupancyHF " << endl;
6688 if (SummedAmplitudeOccupancyHisto[3]) {
6689 TH1F *ufrew1 = (TH1F *)SummedAmplitudeOccupancyHisto[3]->Clone(
"ufrew1");
6690 if (SummedAmplitudeOccupancyHisto[3] && NoSignalSummedAmplitudeOccupancyHisto[3])
6691 ufrew1->Add(SummedAmplitudeOccupancyHisto[3], NoSignalSummedAmplitudeOccupancyHisto[3], 1, 1);
6692 ufrew1->GetXaxis()->SetRangeUser(1., maxbins + 1.);
6694 ufrew1->SetMarkerStyle(20);
6695 ufrew1->SetMarkerSize(0.8);
6696 ufrew1->GetYaxis()->SetLabelSize(0.04);
6697 ufrew1->SetTitle(
"HF Occupancy vs LS\b");
6698 ufrew1->SetXTitle(
"average occupancy per LS HF\b");
6699 ufrew1->SetMarkerColor(4);
6700 ufrew1->SetLineColor(0);
6701 ufrew1->SetMaximum(866.);
6702 ufrew1->SetMinimum(856.);
6703 ufrew1->Draw(
"Error");
6705 cHB->Print(
"sumOccupancyHF.png");
6719 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =====================================================================" << endl;
6722 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> ==================================================" << endl;
6725 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6726 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6727 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6728 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6730 cout <<
">>>>>>> START NOW CREATING OF HTML PAGES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
6737 for (
int sub = 1; sub <= 4; sub++) {
6742 htmlFile.open(
"HB_CapID.html");
6745 htmlFile.open(
"HE_CapID.html");
6748 htmlFile.open(
"HO_CapID.html");
6751 htmlFile.open(
"HF_CapID.html");
6756 htmlFile.open(
"HB_ADCampl.html");
6759 htmlFile.open(
"HE_ADCampl.html");
6762 htmlFile.open(
"HO_ADCampl.html");
6765 htmlFile.open(
"HF_ADCampl.html");
6770 htmlFile.open(
"HB_Width.html");
6773 htmlFile.open(
"HE_Width.html");
6776 htmlFile.open(
"HO_Width.html");
6779 htmlFile.open(
"HF_Width.html");
6784 htmlFile.open(
"HB_Ratio.html");
6787 htmlFile.open(
"HE_Ratio.html");
6790 htmlFile.open(
"HO_Ratio.html");
6793 htmlFile.open(
"HF_Ratio.html");
6798 htmlFile.open(
"HB_Tmean.html");
6801 htmlFile.open(
"HE_Tmean.html");
6804 htmlFile.open(
"HO_Tmean.html");
6807 htmlFile.open(
"HF_Tmean.html");
6812 htmlFile.open(
"HB_Tmax.html");
6815 htmlFile.open(
"HE_Tmax.html");
6818 htmlFile.open(
"HO_Tmax.html");
6821 htmlFile.open(
"HF_Tmax.html");
6825 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6826 htmlFile <<
"<head>" << std::endl;
6827 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6828 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
6829 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6830 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
6832 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6833 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
6834 "text-align: center;}"
6836 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6837 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6838 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6839 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
6840 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
6841 htmlFile <<
"</style>" << std::endl;
6842 htmlFile <<
"<body>" << std::endl;
6846 htmlFile <<
"<h1> Cap ID estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6848 htmlFile <<
"<h1> Cap ID estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6850 htmlFile <<
"<h1> Cap ID estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6852 htmlFile <<
"<h1> Cap ID estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6856 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6858 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6860 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6862 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6866 htmlFile <<
"<h1> Width estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6868 htmlFile <<
"<h1> Width estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6870 htmlFile <<
"<h1> Width estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6872 htmlFile <<
"<h1> Width estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6876 htmlFile <<
"<h1> Ratio estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6878 htmlFile <<
"<h1> Ratio estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6880 htmlFile <<
"<h1> Ratio estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6882 htmlFile <<
"<h1> Ratio estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6886 htmlFile <<
"<h1> Mean bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6888 htmlFile <<
"<h1> Mean bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6890 htmlFile <<
"<h1> Mean bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6892 htmlFile <<
"<h1> Mean bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6896 htmlFile <<
"<h1> Maximum bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6898 htmlFile <<
"<h1> Maximum bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6900 htmlFile <<
"<h1> Maximum bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6902 htmlFile <<
"<h1> Maximum bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6906 htmlFile <<
"<a name=\"Top\"></a>\n";
6907 htmlFile <<
"<b>Contents:<br>\n";
6908 htmlFile <<
"1. <a href=\"#Aij\">A_ij_LS (averaged over events in LS) </a><br>\n";
6909 htmlFile <<
"2. <a href=\"#OverflowAij\">A_ij_LS in overflow & underflow</a><br>\n";
6910 htmlFile <<
"3. <a href=\"#MainEstimator\">Main Estimator !!! </a><br>\n";
6911 htmlFile <<
"4. <a href=\"#ErrorA\">Error type A </a><br>\n";
6912 htmlFile <<
"5. <a href=\"#ErrorAaverage\">ErrorA cross check</a><br>\n";
6913 htmlFile <<
"6. <a href=\"#ErrorAoccupancy\">ErrorA occupancy plots</a><br>\n";
6914 htmlFile <<
"7. <a href=\"#ErrorB\">Error type B</a><br>\n";
6915 htmlFile <<
"8. <a href=\"#LSstatus\">Table of Average channel-Amplitude in Depthes over LSs </a><br>\n";
6916 htmlFile <<
"9. <a href=\"#RBXstatus\">RBX Status </a><br>\n";
6917 htmlFile <<
"10. <a href=\"#RBXPHItable\">Table of Average RBX-Amplitude in Phi over LSs </a><br>\n";
6918 htmlFile <<
"11. <a href=\"#RBXETAtable\">Table of Average RBX-Amplitude in Eta over LSs </a><br>\n";
6919 htmlFile <<
"12. <a href=\"#RBX3plots\">RBX A-Ratio to 1st LS: 3 plots </a><br>\n";
6925 htmlFile <<
"<br>" << std::endl;
6927 htmlFile <<
"<h2> 0. Rate of CapID failures over all events of Run </h2>" << std::endl;
6928 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
6930 htmlFile <<
" <img src=\"MapCapIdErrorHB.png\" />" << std::endl;
6932 htmlFile <<
" <img src=\"MapCapIdErrorHE.png\" />" << std::endl;
6934 htmlFile <<
" <img src=\"MapCapIdErrorHO.png\" />" << std::endl;
6936 htmlFile <<
" <img src=\"MapCapIdErrorHF.png\" />" << std::endl;
6939 htmlFile <<
"<a name=\"Aij\"></a>\n";
6941 htmlFile <<
"<h2> 1. Distribution of estimator averaged over events in LS, histogramed over all channels and "
6942 "all LSs (only few depthes shown as example) </h2>"
6946 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6947 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6949 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6950 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2), " << CutAb[sub][3]
6951 <<
" (Depth3).</h2>" << std::endl;
6953 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6954 << CutAb[sub][1] <<
" (Depth4).</h2>" << std::endl;
6956 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6957 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6961 htmlFile <<
"<h3> see Overflow and Underflow </h3>" << std::endl;
6963 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
6967 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HB.png\" />" << std::endl;
6969 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HE.png\" />" << std::endl;
6971 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HO.png\" />" << std::endl;
6973 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HF.png\" />" << std::endl;
6977 htmlFile <<
" <img src=\"H_ADCamplHB.png\" />" << std::endl;
6979 htmlFile <<
" <img src=\"H_ADCamplHE.png\" />" << std::endl;
6981 htmlFile <<
" <img src=\"H_ADCamplHO.png\" />" << std::endl;
6983 htmlFile <<
" <img src=\"H_ADCamplHF.png\" />" << std::endl;
6987 htmlFile <<
" <img src=\"H_WidthHB.png\" />" << std::endl;
6989 htmlFile <<
" <img src=\"H_WidthHE.png\" />" << std::endl;
6991 htmlFile <<
" <img src=\"H_WidthHO.png\" />" << std::endl;
6993 htmlFile <<
" <img src=\"H_WidthHF.png\" />" << std::endl;
6997 htmlFile <<
" <img src=\"H_RatioHB.png\" />" << std::endl;
6999 htmlFile <<
" <img src=\"H_RatioHE.png\" />" << std::endl;
7001 htmlFile <<
" <img src=\"H_RatioHO.png\" />" << std::endl;
7003 htmlFile <<
" <img src=\"H_RatioHF.png\" />" << std::endl;
7007 htmlFile <<
" <img src=\"H_TmeanHB.png\" />" << std::endl;
7009 htmlFile <<
" <img src=\"H_TmeanHE.png\" />" << std::endl;
7011 htmlFile <<
" <img src=\"H_TmeanHO.png\" />" << std::endl;
7013 htmlFile <<
" <img src=\"H_TmeanHF.png\" />" << std::endl;
7017 htmlFile <<
" <img src=\"H_TmaxHB.png\" />" << std::endl;
7019 htmlFile <<
" <img src=\"H_TmaxHE.png\" />" << std::endl;
7021 htmlFile <<
" <img src=\"H_TmaxHO.png\" />" << std::endl;
7023 htmlFile <<
" <img src=\"H_TmaxHF.png\" />" << std::endl;
7025 htmlFile <<
"<br>" << std::endl;
7027 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7030 htmlFile <<
"<h2> 2a. Number of bad channels per event distribution in Run</h2>" << std::endl;
7032 htmlFile <<
"<h3> Legends: dots correspond to BAD LS candidates. </h3>" << std::endl;
7035 htmlFile <<
" <img src=\"HistNBadChsHB.png\" />" << std::endl;
7037 htmlFile <<
" <img src=\"HistNBadChsHE.png\" />" << std::endl;
7039 htmlFile <<
" <img src=\"HistNBadChsHO.png\" />" << std::endl;
7041 htmlFile <<
" <img src=\"HistNBadChsHF.png\" />" << std::endl;
7045 htmlFile <<
"<a name=\"OverflowAij\"></a>\n";
7047 htmlFile <<
"<h2> 2. Estimator averaged over all events in the RUN for entries in overflow and underflow of "
7048 "corresponding histogram above (only few depthes shown as example) </h2>"
7052 htmlFile <<
"<h2> 2b. Averaged number of bad channels for each LS </h2>" << std::endl;
7056 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7057 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7058 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7060 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7061 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3) correspond BAD LS.</h3>"
7064 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7065 <<
" (Depth4) correspond BAD LS.</h3>" << std::endl;
7067 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7068 << Cut0[
test][sub][2] <<
" (Depth2) correspond BAD LS.</h3>" << std::endl;
7072 htmlFile <<
" <img src=\"HistNBCMNHB.png\" />" << std::endl;
7074 htmlFile <<
" <img src=\"HistNBCMNHE.png\" />" << std::endl;
7076 htmlFile <<
" <img src=\"HistNBCMNHO.png\" />" << std::endl;
7078 htmlFile <<
" <img src=\"HistNBCMNHF.png\" />" << std::endl;
7082 htmlFile <<
" <img src=\"MapADCamplHB.png\" />" << std::endl;
7084 htmlFile <<
" <img src=\"MapADCamplHE.png\" />" << std::endl;
7086 htmlFile <<
" <img src=\"MapADCamplHO.png\" />" << std::endl;
7088 htmlFile <<
" <img src=\"MapADCamplHF.png\" />" << std::endl;
7092 htmlFile <<
" <img src=\"MapWidthHB.png\" />" << std::endl;
7094 htmlFile <<
" <img src=\"MapWidthHE.png\" />" << std::endl;
7096 htmlFile <<
" <img src=\"MapWidthHO.png\" />" << std::endl;
7098 htmlFile <<
" <img src=\"MapWidthHF.png\" />" << std::endl;
7102 htmlFile <<
" <img src=\"MapRatioHB.png\" />" << std::endl;
7104 htmlFile <<
" <img src=\"MapRatioHE.png\" />" << std::endl;
7106 htmlFile <<
" <img src=\"MapRatioHO.png\" />" << std::endl;
7108 htmlFile <<
" <img src=\"MapRatioHF.png\" />" << std::endl;
7112 htmlFile <<
" <img src=\"MapTmeanHB.png\" />" << std::endl;
7114 htmlFile <<
" <img src=\"MapTmeanHE.png\" />" << std::endl;
7116 htmlFile <<
" <img src=\"MapTmeanHO.png\" />" << std::endl;
7118 htmlFile <<
" <img src=\"MapTmeanHF.png\" />" << std::endl;
7122 htmlFile <<
" <img src=\"MapTmaxHB.png\" />" << std::endl;
7124 htmlFile <<
" <img src=\"MapTmaxHE.png\" />" << std::endl;
7126 htmlFile <<
" <img src=\"MapTmaxHO.png\" />" << std::endl;
7128 htmlFile <<
" <img src=\"MapTmaxHF.png\" />" << std::endl;
7130 htmlFile <<
"<br>" << std::endl;
7132 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7135 htmlFile <<
"<a name=\"MainEstimator\"></a>\n";
7138 <<
"<h2> 3. Distribution of estimator averaged over events in LS and over all channels for each LS </h2>"
7142 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7143 <<
" (Depth2) in each LS.</h2>" << std::endl;
7145 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7146 <<
" (Depth2), " << CutPo[sub][3] <<
" (Depth3) in each LS.</h2>" << std::endl;
7148 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][4] <<
" (Depth4) in each LS.</h2>"
7151 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7152 <<
" (Depth2) in each LS.</h2>" << std::endl;
7153 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
7157 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7158 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7159 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7161 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7162 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7163 <<
" (Depth4), " << Cut0[
test][sub][5] <<
" (Depth5), " << Cut0[
test][sub][6] <<
" (Depth6), "
7164 << Cut0[
test][sub][7] <<
" (Depth7) correspond BAD LS. </h3>" << std::endl;
7166 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7167 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7169 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7170 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7171 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7175 htmlFile <<
" <img src=\"HistPortHB.png\" />" << std::endl;
7177 htmlFile <<
" <img src=\"HistPortHE.png\" />" << std::endl;
7179 htmlFile <<
" <img src=\"HistPortHO.png\" />" << std::endl;
7181 htmlFile <<
" <img src=\"HistPortHF.png\" />" << std::endl;
7185 htmlFile <<
" <img src=\"HistADCamplHB.png\" />" << std::endl;
7187 htmlFile <<
" <img src=\"HistADCamplHE.png\" />" << std::endl;
7189 htmlFile <<
" <img src=\"HistADCamplHO.png\" />" << std::endl;
7191 htmlFile <<
" <img src=\"HistADCamplHF.png\" />" << std::endl;
7195 htmlFile <<
" <img src=\"HistWidthHB.png\" />" << std::endl;
7197 htmlFile <<
" <img src=\"HistWidthHE.png\" />" << std::endl;
7199 htmlFile <<
" <img src=\"HistWidthHO.png\" />" << std::endl;
7201 htmlFile <<
" <img src=\"HistWidthHF.png\" />" << std::endl;
7205 htmlFile <<
" <img src=\"HistRatioHB.png\" />" << std::endl;
7207 htmlFile <<
" <img src=\"HistRatioHE.png\" />" << std::endl;
7209 htmlFile <<
" <img src=\"HistRatioHO.png\" />" << std::endl;
7211 htmlFile <<
" <img src=\"HistRatioHF.png\" />" << std::endl;
7215 htmlFile <<
" <img src=\"HistTmeanHB.png\" />" << std::endl;
7217 htmlFile <<
" <img src=\"HistTmeanHE.png\" />" << std::endl;
7219 htmlFile <<
" <img src=\"HistTmeanHO.png\" />" << std::endl;
7221 htmlFile <<
" <img src=\"HistTmeanHF.png\" />" << std::endl;
7225 htmlFile <<
" <img src=\"HistTmaxHB.png\" />" << std::endl;
7227 htmlFile <<
" <img src=\"HistTmaxHE.png\" />" << std::endl;
7229 htmlFile <<
" <img src=\"HistTmaxHO.png\" />" << std::endl;
7231 htmlFile <<
" <img src=\"HistTmaxHF.png\" />" << std::endl;
7233 htmlFile <<
"<br>" << std::endl;
7236 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7237 htmlFile <<
"<a name=\"ErrorA\"></a>\n";
7238 htmlFile <<
"<h2> 4. Error type A</h2>\n";
7239 htmlFile <<
"<h3> note: no sence to see plots of this item if max difference is too large(due to very high A "
7240 "of some channels)</h3>\n";
7241 htmlFile <<
"<br>\n";
7245 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.6 (p-p collisions) </h3>\n";
7246 htmlFile <<
" <img src=\"HistErrA_HB.png\" />\n";
7247 htmlFile <<
"<br>\n";
7248 if (flagErrAB_HB[0] == -1)
7249 htmlFile <<
"<h3>test was not possible</h3>\n";
7250 else if (flagErrAB_HB[0] == 0)
7251 htmlFile <<
"<h3> Fine:NoErrorA_HB (Mean of max difference " << avedelta_HB
7252 <<
" is within 0.1-1.6) </h3>\n";
7253 else if (flagErrAB_HB[0] == 1)
7254 htmlFile <<
"<<h3> ErrorA_HB is available once Mean of max difference " << avedelta_HB
7255 <<
" is out 0.1-1.6 (p-p collisions)</font></h3>\n";
7257 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7258 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7260 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7262 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 2 depthes shown as example) "
7264 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >25), "
7265 "3) with channel Amplitude (A<35); </h2>\n";
7266 htmlFile <<
" <img src=\"ChkErrA_HB1.png\" /><br><br>\n";
7267 htmlFile <<
" <img src=\"ChkErrA_HB2.png\" /><br>\n";
7268 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7270 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7271 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 25 "
7272 "(HBM:neg.eta;HBP:pos.eta) </h2>\n";
7273 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7274 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.6 at least for HF- or "
7276 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.6 and is the same "
7277 "for HF- and HF+ </h2>\n";
7278 htmlFile <<
" <img src=\"OccPlots_HB.png\" /><br><br>\n";
7279 htmlFile <<
"<br>\n";
7280 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7282 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7283 htmlFile <<
"<h2> 7. Error type B (only 2 depthes shown as example) \n";
7284 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7285 htmlFile <<
" <img src=\"HistErrB_HB_1.png\" />\n<br>\n";
7286 htmlFile <<
" <img src=\"HistErrB_HB_2.png\" />\n<br>\n";
7287 htmlFile <<
"<br>\n";
7288 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HB <<
" LS </h3>\n";
7289 htmlFile <<
"<br>\n";
7294 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.2-1.8 (p-p collisions) </h3>\n";
7295 htmlFile <<
" <img src=\"HistErrA_HE.png\" />\n";
7296 htmlFile <<
"<br>\n";
7297 if (flagErrAB_HE[0] == -1)
7298 htmlFile <<
"<h3>test was not possible</h3>\n";
7299 else if (flagErrAB_HE[0] == 0)
7300 htmlFile <<
"<h3> Fine:NoErrorA_HE (Mean of max difference " << avedelta_HE
7301 <<
" is within 0.2-1.8) </h3>\n";
7302 else if (flagErrAB_HE[0] == 1)
7303 htmlFile <<
"<<h3> ErrorA_HE is available once Mean of max difference " << avedelta_HE
7304 <<
" is out 0.2-1.8 (p-p collisions)</font></h3>\n";
7306 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7307 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7309 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7311 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 3 depthes shown as example) "
7313 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> "
7314 ">1000.fC), 3) with channel Amplitude (A<500fC); </h2>\n";
7315 htmlFile <<
" <img src=\"ChkErrA_HE1.png\" /><br><br>\n";
7316 htmlFile <<
" <img src=\"ChkErrA_HE2.png\" /><br>\n";
7317 htmlFile <<
" <img src=\"ChkErrA_HE3.png\" /><br>\n";
7318 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7320 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7321 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 35 "
7322 "(HEM:neg.eta;HEP:pos.eta) </h2>\n";
7323 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7324 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.3 at least for HF- or "
7326 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.3 and is the same "
7327 "for HF- and HF+ </h2>\n";
7328 htmlFile <<
" <img src=\"OccPlots_HE.png\" /><br><br>\n";
7329 htmlFile <<
"<br>\n";
7330 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7332 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7333 htmlFile <<
"<h2> 7. Error type B (only 3 depthes shown as example) \n";
7334 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7335 htmlFile <<
" <img src=\"HistErrB_HE_1.png\" />\n<br>\n";
7336 htmlFile <<
" <img src=\"HistErrB_HE_2.png\" />\n<br>\n";
7337 htmlFile <<
" <img src=\"HistErrB_HE_3.png\" />\n<br>\n";
7338 htmlFile <<
"<br>\n";
7339 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HE <<
" LS </h3>\n";
7340 htmlFile <<
"<br>\n";
7345 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.5 (p-p collisions) </h3>\n";
7346 htmlFile <<
" <img src=\"HistErrA_HO.png\" />\n";
7347 htmlFile <<
"<br>\n";
7348 if (flagErrAB_HO[0] == -1)
7349 htmlFile <<
"<h3>test was not possible</h3>\n";
7350 else if (flagErrAB_HO[0] == 0)
7351 htmlFile <<
"<h3> Fine:NoErrorA_HO (Mean of max difference " << avedelta_HO
7352 <<
" is within 0.1-1.5) </h3>\n";
7353 else if (flagErrAB_HO[0] == 1)
7354 htmlFile <<
"<<h3> ErrorA_HO is available once Mean of max difference " << avedelta_HO
7355 <<
" is out 0.1-1.5 (p-p collisions)</font></h3>\n";
7357 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7358 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7360 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7362 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7363 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >80), "
7364 "3) with channel Amplitude (A<100); </h2>\n";
7366 htmlFile <<
" <img src=\"ChkErrA_HO4.png\" /><br><br>\n";
7367 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7369 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7370 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 80 "
7371 "(HOM:neg.eta;HOP:pos.eta) </h2>\n";
7372 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7373 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7375 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7376 "for HF- and HF+ </h2>\n";
7377 htmlFile <<
" <img src=\"OccPlots_HO.png\" /><br><br>\n";
7378 htmlFile <<
"<br>\n";
7379 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7381 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7382 htmlFile <<
"<h2> 7. Error type B\n";
7383 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10. </h3>\n";
7384 htmlFile <<
" <img src=\"HistErrB_HO_4.png\" />\n<br>\n";
7385 htmlFile <<
"<br>\n";
7386 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HO <<
" LS </h3>\n";
7387 htmlFile <<
"<br>\n";
7393 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.8-2.4 (p-p collisions) </h3>\n";
7394 htmlFile <<
" <img src=\"HistErrA_HF.png\" />\n";
7395 htmlFile <<
"<br>\n";
7396 if (flagErrAB_HF[0] == -1)
7397 htmlFile <<
"<h3>test was not possible</h3>\n";
7398 else if (flagErrAB_HF[0] == 0)
7399 htmlFile <<
"<h3> Fine:NoErrorA_HF (Mean of max difference " << avedelta_HF
7400 <<
" is within 0.8-2.4) </h3>\n";
7401 else if (flagErrAB_HF[0] == 1)
7402 htmlFile <<
"<<h3> ErrorA_HF is available once Mean of max difference " << avedelta_HF
7403 <<
" is out 0.8-2.4 (p-p collisions)</font></h3>\n";
7405 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7406 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7408 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7410 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 2 depthes shown as example) "
7412 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >20), "
7413 "3) with channel Amplitude (A<20); </h2>\n";
7415 htmlFile <<
" <img src=\"ChkErrA_HF1.png\" /><br><br>\n";
7416 htmlFile <<
" <img src=\"ChkErrA_HF2.png\" /><br>\n";
7417 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7419 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7420 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 20 "
7421 "(HFM:neg.eta;HFP:pos.eta) </h2>\n";
7422 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7423 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7425 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7426 "for HF- and HF+ </h2>\n";
7427 htmlFile <<
" <img src=\"OccPlots_HF.png\" /><br><br>\n";
7428 htmlFile <<
"<br>\n";
7429 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7431 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7432 htmlFile <<
"<h2> 7. Error type B (only 2 depthes shown as example) \n";
7433 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 4. </h3>\n";
7434 htmlFile <<
" <img src=\"HistErrB_HF_1.png\" />\n<br>\n";
7435 htmlFile <<
" <img src=\"HistErrB_HF_2.png\" />\n<br>\n";
7436 htmlFile <<
"<br>\n";
7437 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HF <<
" LS </h3>\n";
7438 htmlFile <<
"<br>\n";
7440 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7445 htmlFile <<
"<a name=\"LSstatus\"></a>\n";
7448 htmlFile <<
"<h2> 8.Lumisection Status for HB: </h2>" << std::endl;
7450 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7451 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7452 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7455 htmlFile <<
"<h2> 8.Lumisection Status for HE: </h2>" << std::endl;
7456 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7457 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3),"
7458 << Cut0[
test][sub][4] <<
" (Depth4)," << Cut0[
test][sub][5] <<
" (Depth5)," << Cut0[
test][sub][6]
7459 <<
" (Depth6)," << Cut0[
test][sub][7] <<
" (Depth7). </h3>" << std::endl;
7463 htmlFile <<
"<h2> 8.Lumisection Status for HO: </h2>" << std::endl;
7464 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][4]
7465 <<
" (Depth4). </h3>" << std::endl;
7468 htmlFile <<
"<h2> 8.Lumisection Status for HF: </h2>" << std::endl;
7469 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7470 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7471 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7473 htmlFile <<
"<br>" << std::endl;
7474 htmlFile <<
"<table>" << std::endl;
7476 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7478 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7481 int kkkkkkmax = k_max[sub];
7482 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
7483 kkkkkkmax = k_maxupgrade[sub];
7488 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7489 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > Depth " <<
k <<
" </td>" << std::endl;
7491 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7492 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > Depth " <<
k <<
" </td>" << std::endl;
7494 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7495 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > Depth " <<
k <<
" </td>" << std::endl;
7497 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7498 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > Depth " <<
k <<
" </td>" << std::endl;
7500 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7501 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > Depth " <<
k <<
" </td>" << std::endl;
7503 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7504 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > Depth " <<
k <<
" </td>" << std::endl;
7505 htmlFile <<
"</tr>" << std::endl;
7508 for (
int i = 1;
i <= MaxLum;
i++) {
7510 raw_class =
"<td class=\"s2\" align=\"center\">";
7512 raw_class =
"<td class=\"s3\" align=\"center\">";
7513 htmlFile <<
"<tr>" << std::endl;
7514 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7516 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7517 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
7518 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k]) {
7520 htmlFile <<
"<td class=\"s6\" align=\"center\">"
7521 << int(HistNumBadChanDepth[
test][sub][k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7523 htmlFile <<
"<td class=\"s6\" align=\"center\">" << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i))
7524 <<
"</td>" << std::endl;
7527 htmlFile << raw_class << int(HistNumBadChanDepth[
test][sub][k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7529 htmlFile << raw_class << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7532 htmlFile <<
"</tr>" << std::endl;
7535 htmlFile <<
"</table>" << std::endl;
7537 htmlFile <<
"<br>" << std::endl;
7539 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7540 htmlFile <<
"<br>" << std::endl;
7547 htmlFile <<
"<a name=\"RBXstatus\"></a>\n";
7551 htmlFile <<
"<h2> 9. Average Amplitudes of RBX for HB: </h2>" << std::endl;
7552 htmlFile <<
"<h3> where </h3>" << std::endl;
7553 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7554 "(Positive direction); </h3>"
7556 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7558 htmlFile <<
" <img src=\"RBX-HB-2Dplot.png\" />\n";
7559 htmlFile <<
"<br>\n";
7561 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HB: </h2>" << std::endl;
7562 htmlFile <<
" <img src=\"RBX-HB-1Dplot.png\" />\n";
7563 htmlFile <<
"<br>\n";
7565 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HB: </h2>" << std::endl;
7566 htmlFile <<
" <img src=\"RBX-HB-11Dplot.png\" />\n";
7567 htmlFile <<
"<br>\n";
7569 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7573 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HE: </h2>" << std::endl;
7574 htmlFile <<
"<h3> where </h3>" << std::endl;
7575 htmlFile <<
"<h3> jeta = 3,4,5, 6, 7 (Negative direction); ............&& ............ jeta = "
7576 "14,15,16,17,18 (Positive direction); </h3>"
7578 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7580 htmlFile <<
" <img src=\"RBX-HE-2Dplot.png\" />\n";
7581 htmlFile <<
"<br>\n";
7583 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HE: </h2>" << std::endl;
7584 htmlFile <<
" <img src=\"RBX-HE-1Dplot.png\" />\n";
7585 htmlFile <<
"<br>\n";
7587 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HE: </h2>" << std::endl;
7588 htmlFile <<
" <img src=\"RBX-HE-11Dplot.png\" />\n";
7589 htmlFile <<
"<br>\n";
7591 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7595 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HO: </h2>" << std::endl;
7596 htmlFile <<
"<h3> where </h3>" << std::endl;
7597 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7598 "(Positive direction); </h3>"
7600 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7602 htmlFile <<
" <img src=\"RBX-HO-2Dplot.png\" />\n";
7603 htmlFile <<
"<br>\n";
7605 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HO: </h2>" << std::endl;
7606 htmlFile <<
" <img src=\"RBX-HO-1Dplot.png\" />\n";
7607 htmlFile <<
"<br>\n";
7609 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HO: </h2>" << std::endl;
7610 htmlFile <<
" <img src=\"RBX-HO-11Dplot.png\" />\n";
7611 htmlFile <<
"<br>\n";
7613 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7617 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HF: </h2>" << std::endl;
7618 htmlFile <<
"<h3> where </h3>" << std::endl;
7619 htmlFile <<
"<h3> jeta = 0,1,2, 3 (Negative direction); ............&& ............ jeta = 18,19,20,21 "
7620 "(Positive direction); </h3>"
7622 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7624 htmlFile <<
" <img src=\"RBX-HF-2Dplot.png\" />\n";
7625 htmlFile <<
"<br>\n";
7627 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HF: </h2>" << std::endl;
7628 htmlFile <<
" <img src=\"RBX-HF-1Dplot.png\" />\n";
7629 htmlFile <<
"<br>\n";
7631 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HF: </h2>" << std::endl;
7632 htmlFile <<
" <img src=\"RBX-HF-11Dplot.png\" />\n";
7633 htmlFile <<
"<br>\n";
7635 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7637 htmlFile <<
"<br>" << std::endl;
7642 htmlFile <<
"<a name=\"RBXPHItable\"></a>\n";
7646 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HB: </h2>" << std::endl;
7648 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7649 << cutA_HB << std::endl;
7653 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HE: </h2>" << std::endl;
7655 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7656 << cutA_HE << std::endl;
7660 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HO: </h2>" << std::endl;
7662 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7663 << cutA_HO << std::endl;
7667 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HF: </h2>" << std::endl;
7669 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7670 << cutA_HF << std::endl;
7674 htmlFile <<
"<br>" << std::endl;
7675 htmlFile <<
"<table>" << std::endl;
7677 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7679 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7683 for (
int k = 0;
k < njphi;
k++)
7684 htmlFile <<
"<td class=\"s1\" align=\"center\"> iPHI " <<
k <<
" </td>" << std::endl;
7685 htmlFile <<
"</tr>" << std::endl;
7690 for (
int i = 1;
i <= MaxLum;
i++) {
7692 raw_class =
"<td class=\"s2\" align=\"center\">";
7694 raw_class =
"<td class=\"s3\" align=\"center\">";
7695 htmlFile <<
"<tr>" << std::endl;
7696 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7698 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7701 for (
int k = 0;
k < njphi;
k++) {
7703 if (
int(alexhb[
k][
i - 1]) > cutA_ALL) {
7704 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7706 htmlFile << raw_class << int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7710 if (
int(alexhe[
k][
i - 1]) > cutA_ALL) {
7711 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7713 htmlFile << raw_class << int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7717 if (
int(alexho[
k][
i - 1]) > cutA_ALL) {
7718 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7720 htmlFile << raw_class << int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7724 if (
int(alexhf[
k][
i - 1]) > cutA_ALL) {
7725 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7727 htmlFile << raw_class << int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7732 htmlFile <<
"</tr>" << std::endl;
7735 htmlFile <<
"</table>" << std::endl;
7736 htmlFile <<
"<br>" << std::endl;
7737 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7738 htmlFile <<
"<br>" << std::endl;
7741 htmlFile <<
"<a name=\"RBXETAtable\"></a>\n";
7745 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HB: </h2>" << std::endl;
7747 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7748 << cutB_HB << std::endl;
7752 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HE: </h2>" << std::endl;
7754 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7755 << cutB_HE << std::endl;
7759 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HO: </h2>" << std::endl;
7761 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7762 << cutB_HO << std::endl;
7766 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HF: </h2>" << std::endl;
7768 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7769 << cutB_HF << std::endl;
7773 htmlFile <<
"<br>" << std::endl;
7774 htmlFile <<
"<table>" << std::endl;
7776 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7778 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7782 for (
int k = 0;
k < njeta;
k++)
7783 htmlFile <<
"<td class=\"s1\" align=\"center\"> iETA " <<
k <<
" </td>" << std::endl;
7784 htmlFile <<
"</tr>" << std::endl;
7789 for (
int i = 1;
i <= MaxLum;
i++) {
7791 raw_class =
"<td class=\"s2\" align=\"center\">";
7793 raw_class =
"<td class=\"s3\" align=\"center\">";
7794 htmlFile <<
"<tr>" << std::endl;
7795 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7797 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7800 for (
int k = 0;
k < njeta;
k++) {
7802 if (
int(blexhb[
k][
i - 1]) > cutB_ALL) {
7803 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7805 htmlFile << raw_class << int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7809 if (
int(blexhe[
k][
i - 1]) > cutB_ALL) {
7810 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7812 htmlFile << raw_class << int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7816 if (
int(blexho[
k][
i - 1]) > cutB_ALL) {
7817 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7819 htmlFile << raw_class << int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7823 if (
int(blexhf[
k][
i - 1]) > cutB_ALL) {
7824 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7826 htmlFile << raw_class << int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7831 htmlFile <<
"</tr>" << std::endl;
7834 htmlFile <<
"</table>" << std::endl;
7835 htmlFile <<
"<br>" << std::endl;
7836 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7837 htmlFile <<
"<br>" << std::endl;
7842 htmlFile <<
"<a name=\"RBX3plots\"></a>\n";
7843 htmlFile <<
"<br>\n";
7844 htmlFile <<
"<h2> 12. (Rij) - RBX-amplitudes normilized on reference LS (~=1st) </h2>" << std::endl;
7845 htmlFile <<
"<h3> ( Rji . . is ratio of . . . . A_j_i . . to . . A_j_ref . . . . for . . j-RBX . . and . . "
7849 htmlFile <<
"<br>\n";
7850 htmlFile <<
"<h2> . . . . . . . . . . . . . . 1) . average Ri vs iLS:. . . . . . . . . . . . . . . . . . . . . "
7851 ". . 2) . average Rj shown for Rij outside meanValue range either 0.95-1.05 or 3RMS: . . . . . . . "
7852 ". . . . . . . . . . . . . . . . . . 3) . Rij: </h2>"
7854 htmlFile <<
"<br>\n";
7856 htmlFile <<
" <img src=\"RBX-HB-3plots.png\" />\n";
7859 htmlFile <<
" <img src=\"RBX-HE-3plots.png\" />\n";
7862 htmlFile <<
" <img src=\"RBX-HO-3plots.png\" />\n";
7865 htmlFile <<
" <img src=\"RBX-HF-3plots.png\" />\n";
7867 htmlFile <<
"<br>\n";
7869 htmlFile <<
"<br>\n";
7870 htmlFile <<
"<h2> . 4). average Rj shown for Rij outside meanValue range 0.80-1.20: . . . . . . . .5) . "
7871 "average Rj shown for Rij outside meanValue range 0.70-1.30: . . . . . . . .6). average Rj shown "
7872 "for Rij outside meanValue range 0.60-1.40: </h2>"
7874 htmlFile <<
"<br>\n";
7876 htmlFile <<
" <img src=\"RBX-HB-3plotsmore.png\" />\n";
7879 htmlFile <<
" <img src=\"RBX-HE-3plotsmore.png\" />\n";
7882 htmlFile <<
" <img src=\"RBX-HO-3plotsmore.png\" />\n";
7885 htmlFile <<
" <img src=\"RBX-HF-3plotsmore.png\" />\n";
7887 htmlFile <<
"<br>\n";
7889 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7911 htmlFile.open(
"CapID_GL.html");
7913 htmlFile.open(
"ADCampl_GL.html");
7915 htmlFile.open(
"Width_GL.html");
7917 htmlFile.open(
"Ratio_GL.html");
7919 htmlFile.open(
"Tmean_GL.html");
7921 htmlFile.open(
"Tmax_GL.html");
7925 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
7926 htmlFile <<
"<head>" << std::endl;
7927 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
7928 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
7929 htmlFile <<
"<style type=\"text/css\">" << std::endl;
7930 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
7932 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
7933 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
7934 "text-align: center;}"
7936 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
7937 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
7938 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
7939 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
7940 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
7941 htmlFile <<
"</style>" << std::endl;
7942 htmlFile <<
"<body>" << std::endl;
7944 htmlFile <<
"<h1> CAP ID ERRORS, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7946 htmlFile <<
"<h1> ADC AMPLITIDE, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7948 htmlFile <<
"<h1> WIDTH, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7950 htmlFile <<
"<h1> RATIO, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7952 htmlFile <<
"<h1> TIMING MEAN, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7954 htmlFile <<
"<h1> TIMING MAX, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7955 htmlFile <<
"<br>" << std::endl;
7956 htmlFile <<
"<h2> 1. Map of suspicious channels with this criterion for whole HCAL </h2>" << std::endl;
7957 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
7958 htmlFile <<
"<br>" << std::endl;
7960 htmlFile <<
" <img src=\"MapCapIdError.png\" />" << std::endl;
7962 htmlFile <<
" <img src=\"MapADCAmpl.png\" />" << std::endl;
7964 htmlFile <<
" <img src=\"MapWidth.png\" />" << std::endl;
7966 htmlFile <<
" <img src=\"MapRatio.png\" />" << std::endl;
7968 htmlFile <<
" <img src=\"MapTmean.png\" />" << std::endl;
7970 htmlFile <<
" <img src=\"MapTmax.png\" />" << std::endl;
7971 htmlFile <<
"<br>" << std::endl;
7972 htmlFile <<
"<h2> 2. For whole HCAL: </h2>" << std::endl;
7973 htmlFile <<
"<br>" << std::endl;
7975 htmlFile <<
" <img src=\"HistCapID.png\" />" << std::endl;
7977 htmlFile <<
" <img src=\"HistADCAmpl.png\" />" << std::endl;
7979 htmlFile <<
" <img src=\"HistWidth.png\" />" << std::endl;
7981 htmlFile <<
" <img src=\"HistRatio.png\" />" << std::endl;
7983 htmlFile <<
" <img src=\"HistTmean.png\" />" << std::endl;
7985 htmlFile <<
" <img src=\"HistTmax.png\" />" << std::endl;
7986 htmlFile <<
"<br>" << std::endl;
7987 htmlFile <<
"<h2> 3. Status of subdetectors </h2>" << std::endl;
7988 htmlFile <<
"<table width=\"400\">" << std::endl;
7989 htmlFile <<
"<tr>" << std::endl;
7991 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
7992 <<
"/HB_CapID.html\">HB</a></td>" << std::endl;
7993 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
7994 <<
"/HE_CapID.html\">HE</a></td>" << std::endl;
7995 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
7996 <<
"/HO_CapID.html\">HO</a></td>" << std::endl;
7997 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
7998 <<
"/HF_CapID.html\">HF</a></td>" << std::endl;
8009 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8010 <<
"/HB_ADCampl.html\">HB</a></td>" << std::endl;
8011 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8012 <<
"/HE_ADCampl.html\">HE</a></td>" << std::endl;
8013 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8014 <<
"/HO_ADCampl.html\">HO</a></td>" << std::endl;
8015 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8016 <<
"/HF_ADCampl.html\">HF</a></td>" << std::endl;
8019 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8020 <<
"/HB_Width.html\">HB</a></td>" << std::endl;
8021 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8022 <<
"/HE_Width.html\">HE</a></td>" << std::endl;
8023 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8024 <<
"/HO_Width.html\">HO</a></td>" << std::endl;
8025 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8026 <<
"/HF_Width.html\">HF</a></td>" << std::endl;
8029 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8030 <<
"/HB_Ratio.html\">HB</a></td>" << std::endl;
8031 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8032 <<
"/HE_Ratio.html\">HE</a></td>" << std::endl;
8033 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8034 <<
"/HO_Ratio.html\">HO</a></td>" << std::endl;
8035 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8036 <<
"/HF_Ratio.html\">HF</a></td>" << std::endl;
8039 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8040 <<
"/HB_Tmean.html\">HB</a></td>" << std::endl;
8041 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8042 <<
"/HE_Tmean.html\">HE</a></td>" << std::endl;
8043 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8044 <<
"/HO_Tmean.html\">HO</a></td>" << std::endl;
8045 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8046 <<
"/HF_Tmean.html\">HF</a></td>" << std::endl;
8049 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8050 <<
"/HB_Tmax.html\">HB</a></td>" << std::endl;
8051 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8052 <<
"/HE_Tmax.html\">HE</a></td>" << std::endl;
8053 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8054 <<
"/HO_Tmax.html\">HO</a></td>" << std::endl;
8055 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8056 <<
"/HF_Tmax.html\">HF</a></td>" << std::endl;
8059 htmlFile <<
"</tr>" << std::endl;
8060 htmlFile <<
"</table>" << std::endl;
8061 htmlFile <<
"<br>" << std::endl;
8065 htmlFile <<
"<h2> 4. Table of estimator-values in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8067 htmlFile <<
"<h2> 4. Table of average Nbcs in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8068 htmlFile <<
"<table>" << std::endl;
8070 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8072 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
8074 for (
int sub = 1; sub <= 4; sub++) {
8077 int kkkkkkmax = k_max[sub];
8078 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8079 kkkkkkmax = k_maxupgrade[sub];
8084 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8085 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HBdep " <<
k <<
" </td>" << std::endl;
8087 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8088 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HBdepth " <<
k <<
" </td>" << std::endl;
8090 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8091 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HBdepth " <<
k <<
" </td>" << std::endl;
8093 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8094 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HBdepth " <<
k <<
" </td>" << std::endl;
8096 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8097 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HBdep " <<
k <<
" </td>" << std::endl;
8099 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8100 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HBdep " <<
k <<
" </td>" << std::endl;
8104 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8105 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HEdep " <<
k <<
" </td>" << std::endl;
8107 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8108 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HEdepth " <<
k <<
" </td>" << std::endl;
8110 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8111 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HEdepth " <<
k <<
" </td>" << std::endl;
8113 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8114 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HEdepth " <<
k <<
" </td>" << std::endl;
8116 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8117 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HEdep " <<
k <<
" </td>" << std::endl;
8119 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8120 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HEdep " <<
k <<
" </td>" << std::endl;
8124 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8125 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HOdep " <<
k <<
" </td>" << std::endl;
8127 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8128 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HOdepth " <<
k <<
" </td>" << std::endl;
8130 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8131 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HOdepth " <<
k <<
" </td>" << std::endl;
8133 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8134 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HOdepth " <<
k <<
" </td>" << std::endl;
8136 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8137 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HOdep " <<
k <<
" </td>" << std::endl;
8139 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8140 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HOdep " <<
k <<
" </td>" << std::endl;
8144 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8145 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HFdep " <<
k <<
" </td>" << std::endl;
8147 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8148 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HFdepth " <<
k <<
" </td>" << std::endl;
8150 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8151 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HFdepth " <<
k <<
" </td>" << std::endl;
8153 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8154 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HFdepth " <<
k <<
" </td>" << std::endl;
8156 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8157 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HFdep " <<
k <<
" </td>" << std::endl;
8159 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8160 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HFdep " <<
k <<
" </td>" << std::endl;
8163 htmlFile <<
"</tr>" << std::endl;
8183 for (
int i = 1;
i <= MaxLum;
i++) {
8186 for (
int sub = 1; sub <= 4; sub++) {
8187 int kkkkkkmax = k_max[sub];
8188 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8189 kkkkkkmax = k_maxupgrade[sub];
8191 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8195 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8203 raw_class =
"<td class=\"s2\" align=\"center\">";
8205 raw_class =
"<td class=\"s3\" align=\"center\">";
8206 htmlFile <<
"<tr>" << std::endl;
8207 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8209 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8210 for (
int sub = 1; sub <= 4; sub++) {
8211 int kkkkkkmax = k_max[sub];
8212 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8213 kkkkkkmax = k_maxupgrade[sub];
8215 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8216 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8217 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8218 <<
"</td>" << std::endl;
8220 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8250 htmlFile <<
"</tr>" << std::endl;
8255 htmlFile <<
"</table>" << std::endl;
8256 htmlFile <<
"<br>" << std::endl;
8257 htmlFile <<
"</body> " << std::endl;
8258 htmlFile <<
"</html> " << std::endl;
8265 htmlFile.open(
"SummedAmplitudes_GL.html");
8266 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8267 htmlFile <<
"<head>" << std::endl;
8268 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8269 htmlFile <<
"<title> for summed Amplitudes of each sub-detector </title>" << std::endl;
8270 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8271 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8273 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8274 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8275 "text-align: center;}"
8277 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8278 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8279 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8280 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8281 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8283 htmlFile <<
"</style>" << std::endl;
8284 htmlFile <<
"<body>" << std::endl;
8285 htmlFile <<
"<h1> Averaged Summed Amplitudes & corresponding occupancy of each sub-detector in Global Run = "
8286 << runnumber <<
" </h1>" << std::endl;
8287 htmlFile <<
"<a name=\"Top\"></a>\n";
8288 htmlFile <<
"<b>Contents:<br>\n";
8289 htmlFile <<
"1. <a href=\"#SAhigh\">average SA&Occupancy for Signal </a><br>\n";
8290 htmlFile <<
"2. <a href=\"#SAlow\">average SA&Occupancy for NoSignal </a><br>\n";
8291 htmlFile <<
"3. <a href=\"#SAmax\"> maxSA & maxOccupancy; SA & Occupancy; </a><br>\n";
8292 htmlFile <<
"4. <a href=\"#FullTable\">Table(avA; avSA; avOccupancy; maxSA; maxOccupancy;) </a><br>\n";
8294 htmlFile <<
"<h2> Clarifying on averaged Summed Amplitude (avSA) : </h2>" << std::endl;
8295 htmlFile <<
"<h3> Summed Amplitudes (SA) are averaged over all events of each LS: avSA_LS = SUM (SA_eventsInLS) / "
8296 "N_eventsInLS ,</h3>"
8298 htmlFile <<
"<h3> where SA = SUM(A_i) ,and means that Amplitude is summed over all sub-detector channels, </h3>"
8300 htmlFile <<
"<h3> where A_i = SUM(A_depth) denotes channel amplitude summed over depths; </h3>" << std::endl;
8302 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/SAwriteup.html\"> see "
8303 "more details for SummedAmplitudes</a></td>"
8305 htmlFile <<
"<h2> Apply cuts on A_i to take into account channels with or/and without a'la Signal: </h2>"
8307 htmlFile <<
" <img src=\"ChannelDepthsummedAmplitudes.png\" />" << std::endl;
8308 htmlFile <<
"<br>" << std::endl;
8309 htmlFile <<
"<br>" << std::endl;
8310 htmlFile <<
"<a name=\"SAhigh\"></a>\n";
8311 htmlFile <<
"<h1> 1. for channels with signal </h1>" << std::endl;
8312 htmlFile <<
"<br>" << std::endl;
8313 htmlFile <<
"<h2> for HB: A_i> 80; </h2>" << std::endl;
8314 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HB.png\" />" << std::endl;
8315 htmlFile <<
"<br>" << std::endl;
8316 htmlFile <<
"<h2> for HE: A_i> 200;</h2>" << std::endl;
8317 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HE.png\" />" << std::endl;
8318 htmlFile <<
"<br>" << std::endl;
8319 htmlFile <<
"<h2> for HO: A_i> 1200;</h2>" << std::endl;
8320 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HO.png\" />" << std::endl;
8321 htmlFile <<
"<br>" << std::endl;
8322 htmlFile <<
"<h2> for HF: A_i> 600;</h2>" << std::endl;
8323 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HF.png\" />" << std::endl;
8324 htmlFile <<
"<br>" << std::endl;
8325 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8327 htmlFile <<
"<a name=\"SAlow\"></a>\n";
8328 htmlFile <<
"<h1> 2. for channels w/o signal </h1>" << std::endl;
8329 htmlFile <<
"<br>" << std::endl;
8330 htmlFile <<
"<h2> for HB: A_i< 80;</h2>" << std::endl;
8331 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HB.png\" />" << std::endl;
8332 htmlFile <<
"<br>" << std::endl;
8333 htmlFile <<
"<h2> for HE: A_i< 200;</h2>" << std::endl;
8334 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HE.png\" />" << std::endl;
8335 htmlFile <<
"<br>" << std::endl;
8336 htmlFile <<
"<h2> for HO: A_i< 1200;</h2>" << std::endl;
8337 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HO.png\" />" << std::endl;
8338 htmlFile <<
"<br>" << std::endl;
8339 htmlFile <<
"<h2> for HF: A_i< 600;</h2>" << std::endl;
8340 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HF.png\" />" << std::endl;
8341 htmlFile <<
"<br>" << std::endl;
8342 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8344 htmlFile <<
"<br>" << std::endl;
8345 htmlFile <<
"<br>" << std::endl;
8346 htmlFile <<
"<a name=\"SAmax\"></a>\n";
8347 htmlFile <<
"<h1> 3. four plots: ---1---> max SA ---2---> max Occupancy ---3---> SA ---4---> Occupancy over all "
8348 "events of LS </h1>"
8350 htmlFile <<
"<br>" << std::endl;
8352 htmlFile <<
"<h2> for HB: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8353 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HB.png\" />" << std::endl;
8355 " ......(forCut:SAmax>60000) N= "
8356 << countamplmaxHB <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHB <<
" </h2>" << std::endl;
8358 " ......(forCut:SA>60000) N= "
8359 << countamplHB <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHB <<
" </h2>" << std::endl;
8360 htmlFile <<
"<br>" << std::endl;
8361 htmlFile <<
"<h3> ONLY for HB (cross-check): channel Amplitudes for events in the Tail (averaged): </h3>"
8363 htmlFile <<
" <img src=\"AtaildepthHB.png\" />" << std::endl;
8364 htmlFile <<
"<br>" << std::endl;
8366 htmlFile <<
"<h2> for HE: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8367 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HE.png\" />" << std::endl;
8369 " ......(forCut:SAmax>60000) N= "
8370 << countamplmaxHE <<
" ...... (forCut:OCCUPmax>1200) N= " << countoccumaxHE <<
" </h2>" << std::endl;
8372 " ......(forCut:SA>60000) N= "
8373 << countamplHE <<
" ...... (forCut:OCCUP>1200) N= " << countoccuHE <<
" </h2>" << std::endl;
8374 htmlFile <<
"<br>" << std::endl;
8376 htmlFile <<
"<h2> for HO: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8377 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HO.png\" />" << std::endl;
8379 " ......(forCut:SAmax>150000) N= "
8380 << countamplmaxHO <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHO <<
" </h2>" << std::endl;
8382 " ......(forCut:SA>150000) N= "
8383 << countamplHO <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHO <<
" </h2>" << std::endl;
8384 htmlFile <<
"<br>" << std::endl;
8386 htmlFile <<
"<h2> for HF: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8387 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HF.png\" />" << std::endl;
8389 " ......(forCut:SAmax>22000) N= "
8390 << countamplmaxHF <<
" ...... (forCut:OCCUPmax>860) N= " << countoccumaxHF <<
" </h2>" << std::endl;
8392 " ......(forCut:SA>22000) N= "
8393 << countamplHF <<
" ...... (forCut:OCCUP>860) N= " << countoccuHF <<
" </h2>" << std::endl;
8394 htmlFile <<
"<br>" << std::endl;
8395 htmlFile <<
"<h2> Occupancy HF (ONLY) vs LS </h2>" << std::endl;
8396 htmlFile <<
" <img src=\"sumOccupancyHF.png\" />" << std::endl;
8397 htmlFile <<
"<br>" << std::endl;
8398 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8400 htmlFile <<
"<a name=\"FullTable\"></a>\n";
8401 htmlFile <<
"<h2> 4.Lumisection Status: </h2>" << std::endl;
8402 htmlFile <<
"<h3> Legends: HBdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8403 << Cut0[1][1][1] << std::endl;
8404 htmlFile <<
"<h3> Legends: HEdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8405 << Cut0[1][2][1] << std::endl;
8406 htmlFile <<
"<h3> Legends: HOdepth4 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8407 << Cut0[1][3][4] << std::endl;
8408 htmlFile <<
"<h3> Legends: HFdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8409 << Cut0[1][4][1] << std::endl;
8410 htmlFile <<
"<br>" << std::endl;
8412 htmlFile <<
"<br>" << std::endl;
8413 htmlFile <<
"<table>" << std::endl;
8415 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8417 htmlFile <<
"<td class=\"s1\" align=\"center\"> Num.of ev.</td>" << std::endl;
8422 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HB Depth1</td>" << std::endl;
8423 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HE Depth1</td>" << std::endl;
8424 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HO Depth4</td>" << std::endl;
8425 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HF Depth1</td>" << std::endl;
8427 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (Signal) </td>" << std::endl;
8428 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (Signal) </td>" << std::endl;
8429 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (Signal) </td>" << std::endl;
8430 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (Signal) </td>" << std::endl;
8432 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (NoSignal) </td>" << std::endl;
8433 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (NoSignal) </td>" << std::endl;
8434 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (NoSignal) </td>" << std::endl;
8435 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (NoSignal) </td>" << std::endl;
8437 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HB </td>" << std::endl;
8438 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HB </td>" << std::endl;
8439 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HF </td>" << std::endl;
8440 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HF </td>" << std::endl;
8442 htmlFile <<
"</tr>" << std::endl;
8445 for (
int i = 1;
i <= MaxLum;
i++) {
8447 raw_class =
"<td class=\"s2\" align=\"center\">";
8449 raw_class =
"<td class=\"s3\" align=\"center\">";
8450 htmlFile <<
"<tr>" << std::endl;
8452 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8455 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8460 for (
int sub = 1; sub <= 4; sub++) {
8461 for (
int k = k_min[sub];
k <= k_min[sub];
k++) {
8462 if (HistNumBadChanDepth[test][sub][
k]->GetBinContent(
i) > Cut0[test][sub][
k])
8463 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8464 <<
"</td>" << std::endl;
8467 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8470 if (SummedAmplitudeHisto[0]) {
8471 htmlFile << raw_class << SummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8472 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8473 htmlFile << raw_class << SummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8474 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8476 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8477 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8478 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8479 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8481 htmlFile << raw_class << MaxxSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8482 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8483 htmlFile << raw_class << MaxxSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8484 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8486 htmlFile <<
"</tr>" << std::endl;
8489 htmlFile <<
"</table>" << std::endl;
8490 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8492 htmlFile <<
"<br>" << std::endl;
8493 htmlFile <<
"</body> " << std::endl;
8494 htmlFile <<
"</html> " << std::endl;
8536 htmlFile.open(
"CMTresults.html");
8537 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8538 htmlFile <<
"<head>" << std::endl;
8539 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8540 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8541 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8542 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8544 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8545 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8546 "text-align: center;}"
8548 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8549 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8550 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8551 htmlFile <<
"</style>" << std::endl;
8552 htmlFile <<
"<body>" << std::endl;
8553 htmlFile <<
"<h1> LS-certification (recommendation) from analysis of CMT-dependencies of THIS run </h1>"
8555 htmlFile <<
"<br>" << std::endl;
8556 htmlFile <<
"<br>" << std::endl;
8557 htmlFile <<
"<h2> - List of suspicious LSs: </h2> " << std::endl;
8558 htmlFile <<
"<br>" << std::endl;
8559 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8560 htmlFile <<
"<br>" << std::endl;
8561 htmlFile <<
"<br>" << std::endl;
8562 htmlFile <<
"<br>" << std::endl;
8563 htmlFile <<
"<h2> - Comments: </h2> " << std::endl;
8564 htmlFile <<
"<br>" << std::endl;
8565 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8566 htmlFile <<
"<br>" << std::endl;
8567 htmlFile <<
"<br>" << std::endl;
8568 htmlFile <<
"<br>" << std::endl;
8569 htmlFile <<
"</body> " << std::endl;
8570 htmlFile <<
"</html> " << std::endl;
8576 htmlFile.open(
"LumiList.html");
8577 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8578 htmlFile <<
"<head>" << std::endl;
8579 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8580 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8581 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8582 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8584 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8585 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8586 "text-align: center;}"
8588 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8589 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8590 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8591 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8592 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8594 htmlFile <<
"</style>" << std::endl;
8595 htmlFile <<
"<body>" << std::endl;
8597 htmlFile <<
"<h1> Certification Monitoring Tool, GLOBAL RUN = " << runnumber <<
". </h1>" << std::endl;
8598 htmlFile <<
"<br>" << std::endl;
8599 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8600 <<
"/CMTresults.html\"> CMT-analysis RESULTS (for this run) </a></td>" << std::endl;
8601 htmlFile <<
"<br>" << std::endl;
8602 htmlFile <<
"<br>" << std::endl;
8605 htmlFile <<
"<h2> 1. General information (Full number of LS = " << MaxLum <<
" ). </h2>" << std::endl;
8606 htmlFile <<
" <img src=\"LumiEvent.png\" />" << std::endl;
8607 htmlFile <<
"<br>" << std::endl;
8609 htmlFile <<
"<h2> 2. HCAL status for different criteria </h2>" << std::endl;
8611 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/HELP.html\"> "
8612 "Description of criteria for bad channel selection</a></td>"
8614 htmlFile <<
"<br>" << std::endl;
8615 htmlFile <<
"<table width=\"600\">" << std::endl;
8616 htmlFile <<
"<tr>" << std::endl;
8617 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8618 <<
"/CapID_GL.html\">Cap ID errors</a></td>" << std::endl;
8620 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8621 <<
"/ADCampl_GL.html\">Amplitude</a></td>" << std::endl;
8623 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8624 <<
"/Width_GL.html\">Width</a></td>" << std::endl;
8625 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8626 <<
"/Ratio_GL.html\">Ratio</a></td>" << std::endl;
8627 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8628 <<
"/Tmean_GL.html\">TS mean</a></td>" << std::endl;
8629 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8630 <<
"/Tmax_GL.html\">TS max</a></td>" << std::endl;
8632 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" << runnumber
8633 <<
"/SummedAmplitudes_GL.html\">SummedAmplitudes</a></td>" << std::endl;
8635 htmlFile <<
"</tr>" << std::endl;
8636 htmlFile <<
"</table>" << std::endl;
8637 htmlFile <<
"<br>" << std::endl;
8638 htmlFile <<
"</body> " << std::endl;
8639 htmlFile <<
"</html> " << std::endl;
8654 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin) {
8655 if (lastBin > hSrc->GetNbinsX()) {
8656 std::cout <<
"copyContents from " << hSrc->GetName() <<
": histo has " << hSrc->GetNbinsX()
8657 <<
" bins, when lastBin=" << lastBin <<
" was requested\n";
8661 (*hDest) =
new TH1F(hname, htitle, lastBin, 0, lastBin);
8662 (*hDest)->SetDirectory(0);
8663 (*hDest)->SetStats(0);
8665 for (
int ibin = 1; ibin <= lastBin; ibin++) {
8666 (*hDest)->SetBinContent(ibin, hSrc->GetBinContent(ibin));
8667 (*hDest)->SetBinError(ibin, hSrc->GetBinError(ibin));
int copyContents(TH1F **hDest, TString hname, TString htitle, const TH1F *hSrc, int lastBin)