24 #include <TPaveText.h>
28 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin);
34 gROOT->SetStyle(
"Plain");
35 gStyle->SetOptStat(0);
36 gStyle->SetOptTitle(1);
41 sprintf(fname,
"%s", argv[1]);
47 string promt = (
string)fname;
49 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
50 runnumber += fname[
i];
52 TFile *hfile =
new TFile(fname,
"READ");
55 double Cut0[7][5][8] = {
56 {{0., 0., 0., 0., 0., 0., 0., 0.},
57 {0., 1.0, 1.0, 0., 0., 0., 0., 0.},
58 {0., 1., 1., 1., 0., 0., 0., 0.},
59 {0., 0., 0., 0., 1., 0., 0., 0.},
60 {0., 1., 1., 0., 0., 0., 0., 0.}},
62 {{0., 0., 0., 0., 0., 0., 0., 0.},
63 {0., 35., 35., 0., 0., 0., 0., 0.},
64 {0., 12000., 4500., 3500., 3500., 4000., 4500., 5500.},
65 {0., 0., 0., 0., 200., 0., 0., 0.},
66 {0., 4500., 4500., 4500., 4500., 0., 0., 0.}},
67 {{0., 0., 0., 0., 0., 0., 0., 0.},
68 {0., 3., 3., 0., 0., 0., 0., 0.},
69 {0., 3., 3., 3., 0., 0., 0., 0.},
70 {0., 0., 0., 0., 3., 0., 0., 0.},
71 {0., 2., 2., 0., 0., 0., 0., 0.}},
72 {{0., 0., 0., 0., 0., 0., 0., 0.},
73 {0., 0.4, 0.4, 0., 0., 0., 0., 0.},
74 {0., 0.4, 0.4, 0.4, 0., 0., 0., 0.},
75 {0., 0., 0., 0., 0.4, 0., 0., 0.},
76 {0., 0.8, 0.8, 0., 0., 0., 0., 0.}},
77 {{0., 0., 0., 0., 0., 0., 0., 0.},
78 {0., 4.7, 4.7, 0., 0., 0., 0., 0.},
79 {0., 4.8, 4.8, 5.0, 0., 0., 0., 0.},
80 {0., 0., 0., 0., 4.8, 0., 0., 0.},
81 {0., 4.0, 4.0, 0., 0., 0., 0., 0.}},
82 {{0., 0., 0., 0., 0., 0., 0., 0.},
83 {0., 3.5, 3.5, 0., 0., 0., 0., 0.},
84 {0., 4.0, 4.0, 4.0, 0., 0., 0., 0.},
85 {0., 0., 0., 0., 3., 0., 0., 0.},
86 {0., 3.5, 3.5, 0., 0., 0., 0., 0.}},
87 {{0., 0., 0., 0., 0., 0., 0., 0.},
88 {0., 0., 0., 0., 0., 0., 0., 0.},
89 {0., 0., 0., 0., 0., 0., 0., 0.},
90 {0., 0., 0., 0., 0., 0., 0., 0.},
91 {0., 0., 0., 0., 0., 0., 0., 0.}}};
93 double CutAb[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
94 {0., 20., 7., 0., 0., 0., 0., 0.},
95 {0., 16., 13., 4., 0., 0., 0., 0.},
96 {0., 0., 0., 0., 45., 0., 0., 0.},
97 {0., 10., 5., 0., 0., 0., 0., 0.}};
99 double CutPo[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
100 {0., 9., 3., 0., 0., 0., 0., 0.},
101 {0., 8., 6., 2., 0., 0., 0., 0.},
102 {0., 0., 0., 0., 20., 0., 0., 0.},
103 {0., 5., 3., 0., 0., 0., 0., 0.}};
120 TCanvas *
c1 =
new TCanvas(
"c1",
"Hcal4test", 200, 10, 700, 900);
122 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 500);
123 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 500);
124 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 500, 500);
125 TCanvas *cFour =
new TCanvas(
"cFour",
"cFour", 1500, 1000);
126 TCanvas *cFour1 =
new TCanvas(
"cFour1",
"cFour1", 1200, 800);
127 TCanvas *cNine =
new TCanvas(
"cNine",
"cNine", 1500, 1500);
131 TCanvas *c4x6 =
new TCanvas(
"c4x6",
"c4x6", 1200, 2400);
133 TCanvas *c5x6 =
new TCanvas(
"c5x6",
"c5x6", 1500, 2400);
135 TCanvas *cRBX1 =
new TCanvas(
"cRBX1",
"cRBX1", 1200, 1000);
138 TCanvas *cRBX31 =
new TCanvas(
"cRBX31",
"cRBX31", 1860, 600);
143 int k_min[5] = {0, 1, 1, 4, 1};
145 int k_max[5] = {0, 2, 3, 4, 2};
147 int k_maxHFupgrade[5] = {0, 2, 7, 4, 4};
154 TH1F *LumLum = (TH1F *)hfile->Get(
"h_lsnumber_per_eachLS");
155 int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin());
156 cout <<
" MaxLumDanila= " << MaxLumDanila << endl;
159 LumLum->SetMarkerStyle(10);
160 LumLum->SetMarkerSize(0.8);
161 LumLum->GetYaxis()->SetLabelSize(0.04);
162 LumLum->SetTitle(
"Cont. number per LS \b");
163 LumLum->SetXTitle(
"Cont.number \b");
164 LumLum->SetYTitle(
"Ls \b");
165 LumLum->SetMarkerColor(4);
166 LumLum->SetLineColor(0);
167 LumLum->SetMinimum(0.8);
168 LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila);
169 LumLum->Draw(
"Error");
172 TH1F *LumiEv = (TH1F *)hfile->Get(
"h_nevents_per_eachRealLS");
173 int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
175 for (
int i = 1;
i <= LumiEv->GetXaxis()->GetNbins();
i++) {
176 if (LumiEv->GetBinContent(
i)) {
180 cout <<
" MaxLum0= " << MaxLum0 <<
" MaxLum= " << MaxLum << endl;
186 LumiEv->GetYaxis()->SetLabelSize(0.04);
187 LumiEv->SetTitle(
"Number of events per LS");
188 LumiEv->SetXTitle(
"LS");
189 LumiEv->SetYTitle(
"Number of events ");
190 LumiEv->SetMarkerStyle(10);
191 LumiEv->SetMarkerSize(0.8);
192 LumiEv->SetMarkerColor(4);
193 LumiEv->SetLineColor(0);
195 LumiEv->GetXaxis()->SetRangeUser(0, MaxLum);
196 LumiEv->Draw(
"Error");
198 cHB->Print(
"LumiEvent.png");
204 TH1F *H_NumBadChanDepth[7][5][5];
210 H_NumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS1");
211 H_NumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS2");
213 H_NumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS3");
214 H_NumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS4");
215 H_NumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplLS5");
217 H_NumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplLS8");
219 H_NumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS6");
220 H_NumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS7");
226 H_NumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS1");
227 H_NumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS2");
229 H_NumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS3");
230 H_NumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS4");
231 H_NumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS5");
233 H_NumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS8");
235 H_NumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS6");
236 H_NumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS7");
242 H_NumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplLS1");
243 H_NumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplLS2");
245 H_NumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplLS3");
246 H_NumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplLS4");
247 H_NumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplLS5");
249 H_NumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplLS8");
251 H_NumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplLS6");
252 H_NumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplLS7");
258 H_NumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS1");
259 H_NumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS2");
261 H_NumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS3");
262 H_NumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS4");
263 H_NumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanALS5");
265 H_NumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanALS8");
267 H_NumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS6");
268 H_NumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS7");
274 H_NumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS1");
275 H_NumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS2");
277 H_NumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS3");
278 H_NumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS4");
279 H_NumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxALS5");
281 H_NumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxALS8");
283 H_NumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS6");
284 H_NumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS7");
286 gStyle->SetOptStat(110000);
289 for (
int sub = 1; sub <= 4; sub++) {
298 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
310 H_NumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
311 H_NumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.8);
313 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
315 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
317 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
319 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
321 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Amplitude> \b");
323 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Width> \b");
325 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Ratio> \b");
327 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS mean> \b");
329 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS max> \b");
330 H_NumBadChanDepth[
test][sub][
k]->SetYTitle(
"Number of channel-LSs\b");
331 H_NumBadChanDepth[
test][sub][
k]->SetMarkerColor(4);
332 H_NumBadChanDepth[
test][sub][
k]->SetLineColor(0);
334 H_NumBadChanDepth[
test][sub][
k]->SetMinimum(0.8);
335 H_NumBadChanDepth[
test][sub][
k]->Draw(
"Error");
339 cHB->Print(
"H_NBCMNHB.png");
343 cHE->Print(
"H_NBCMNHE.png");
347 cONE->Print(
"H_NBCMNHO.png");
351 cHB->Print(
"H_NBCMNHF.png");
358 cHB->Print(
"H_ADCamplHB.png");
362 cHE->Print(
"H_ADCamplHE.png");
366 cONE->Print(
"H_ADCamplHO.png");
370 cHB->Print(
"H_ADCamplHF.png");
376 cHB->Print(
"H_WidthHB.png");
380 cHE->Print(
"H_WidthHE.png");
384 cONE->Print(
"H_WidthHO.png");
388 cHB->Print(
"H_WidthHF.png");
394 cHB->Print(
"H_RatioHB.png");
398 cHE->Print(
"H_RatioHE.png");
402 cONE->Print(
"H_RatioHO.png");
406 cHB->Print(
"H_RatioHF.png");
412 cHB->Print(
"H_TmeanHB.png");
416 cHE->Print(
"H_TmeanHE.png");
420 cONE->Print(
"H_TmeanHO.png");
424 cHB->Print(
"H_TmeanHF.png");
430 cHB->Print(
"H_TmaxHB.png");
434 cHE->Print(
"H_TmaxHE.png");
438 cONE->Print(
"H_TmaxHO.png");
442 cHB->Print(
"H_TmaxHF.png");
449 gStyle->SetOptStat(0);
455 TH2F *MapNumBadChanDepth[7][5][5];
456 TH2F *MapNumChanDepth[7][5][5];
457 TH2F *MapNumBadChanFull[7];
458 TH2F *MapNumChanFull[7];
464 MapNumBadChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HB");
465 MapNumBadChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HB");
467 MapNumBadChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HE");
468 MapNumBadChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HE");
469 MapNumBadChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HE");
471 MapNumBadChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HO");
473 MapNumBadChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HF");
474 MapNumBadChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HF");
476 MapNumBadChanFull[0] = (TH2F *)MapNumBadChanDepth[0][1][1]->Clone();
478 MapNumChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HB");
479 MapNumChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HB");
481 MapNumChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HE");
482 MapNumChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HE");
483 MapNumChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HE");
485 MapNumChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HO");
487 MapNumChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HF");
488 MapNumChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HF");
490 MapNumChanFull[0] = (TH2F *)MapNumChanDepth[0][1][1]->Clone();
496 MapNumBadChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS1");
497 MapNumBadChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS2");
499 MapNumBadChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS3");
500 MapNumBadChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS4");
501 MapNumBadChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS5");
503 MapNumBadChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS8");
505 MapNumBadChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS6");
506 MapNumBadChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS7");
508 MapNumBadChanFull[1] = (TH2F *)MapNumBadChanDepth[1][1][1]->Clone();
510 MapNumChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS1");
511 MapNumChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS2");
513 MapNumChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS3");
514 MapNumChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS4");
515 MapNumChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS5");
517 MapNumChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS8");
519 MapNumChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS6");
520 MapNumChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS7");
522 MapNumChanFull[1] = (TH2F *)MapNumChanDepth[1][1][1]->Clone();
528 MapNumBadChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS1");
529 MapNumBadChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS2");
531 MapNumBadChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS3");
532 MapNumBadChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS4");
533 MapNumBadChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS5");
535 MapNumBadChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS8");
537 MapNumBadChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS6");
538 MapNumBadChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS7");
540 MapNumBadChanFull[2] = (TH2F *)MapNumBadChanDepth[2][1][1]->Clone();
542 MapNumChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS1");
543 MapNumChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS2");
545 MapNumChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS3");
546 MapNumChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS4");
547 MapNumChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS5");
549 MapNumChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS8");
551 MapNumChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS6");
552 MapNumChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS7");
554 MapNumChanFull[2] = (TH2F *)MapNumChanDepth[2][1][1]->Clone();
560 MapNumBadChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS1");
561 MapNumBadChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS2");
563 MapNumBadChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS3");
564 MapNumBadChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS4");
565 MapNumBadChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplLS5");
567 MapNumBadChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplLS8");
569 MapNumBadChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS6");
570 MapNumBadChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS7");
572 MapNumBadChanFull[3] = (TH2F *)MapNumBadChanDepth[3][1][1]->Clone();
574 MapNumChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS1");
575 MapNumChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS2");
577 MapNumChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS3");
578 MapNumChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS4");
579 MapNumChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS5");
581 MapNumChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS8");
583 MapNumChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS6");
584 MapNumChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS7");
586 MapNumChanFull[3] = (TH2F *)MapNumChanDepth[3][1][1]->Clone();
592 MapNumBadChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS1");
593 MapNumBadChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS2");
595 MapNumBadChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS3");
596 MapNumBadChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS4");
597 MapNumBadChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS5");
599 MapNumBadChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS8");
601 MapNumBadChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS6");
602 MapNumBadChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS7");
604 MapNumBadChanFull[4] = (TH2F *)MapNumBadChanDepth[4][1][1]->Clone();
606 MapNumChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS1");
607 MapNumChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS2");
609 MapNumChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS3");
610 MapNumChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS4");
611 MapNumChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS5");
613 MapNumChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS8");
615 MapNumChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS6");
616 MapNumChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS7");
618 MapNumChanFull[4] = (TH2F *)MapNumChanDepth[4][1][1]->Clone();
624 MapNumBadChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS1");
625 MapNumBadChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS2");
627 MapNumBadChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS3");
628 MapNumBadChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS4");
629 MapNumBadChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS5");
631 MapNumBadChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS8");
633 MapNumBadChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS6");
634 MapNumBadChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS7");
636 MapNumBadChanFull[5] = (TH2F *)MapNumBadChanDepth[5][1][1]->Clone();
638 MapNumChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS1");
639 MapNumChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS2");
641 MapNumChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS3");
642 MapNumChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS4");
643 MapNumChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS5");
645 MapNumChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS8");
647 MapNumChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS6");
648 MapNumChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS7");
650 MapNumChanFull[5] = (TH2F *)MapNumChanDepth[5][1][1]->Clone();
653 for (
int sub = 1; sub <= 4; sub++) {
662 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
671 MapNumBadChanDepth[
test][sub][
k]->Divide(
672 MapNumBadChanDepth[
test][sub][
k], MapNumChanDepth[
test][sub][k], 1, 1,
"B");
674 for (
int x = 1; x <= MapNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
675 for (
int y = 1; y <= MapNumBadChanFull[
test]->GetYaxis()->GetNbins(); y++) {
676 double ccc1 = MapNumBadChanDepth[
test][sub][
k]->GetBinContent(x, y);
677 MapNumBadChanFull[
test]->SetBinContent(x, y, MapNumBadChanFull[
test]->GetBinContent(x, y) + ccc1);
682 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
684 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
686 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
688 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
692 MapNumBadChanDepth[
test][sub][
k]->SetXTitle(
"#eta \b");
693 MapNumBadChanDepth[
test][sub][
k]->SetYTitle(
"#phi \b");
694 MapNumBadChanDepth[
test][sub][
k]->SetZTitle(
"Average estimator \b");
695 MapNumBadChanDepth[
test][sub][
k]->SetTitleOffset(0.75,
"Z");
696 MapNumBadChanDepth[
test][sub][
k]->Draw(
"COLZ");
697 MapNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
702 cHB->Print(
"MapCapIdErrorHB.png");
706 cHE->Print(
"MapCapIdErrorHE.png");
710 cONE->Print(
"MapCapIdErrorHO.png");
714 cHB->Print(
"MapCapIdErrorHF.png");
720 cHB->Print(
"MapADCamplHB.png");
724 cHE->Print(
"MapADCamplHE.png");
728 cONE->Print(
"MapADCamplHO.png");
732 cHB->Print(
"MapADCamplHF.png");
738 cHB->Print(
"MapWidthHB.png");
742 cHE->Print(
"MapWidthHE.png");
746 cONE->Print(
"MapWidthHO.png");
750 cHB->Print(
"MapWidthHF.png");
756 cHB->Print(
"MapRatioHB.png");
760 cHE->Print(
"MapRatioHE.png");
764 cONE->Print(
"MapRatioHO.png");
768 cHB->Print(
"MapRatioHF.png");
774 cHB->Print(
"MapTmeanHB.png");
778 cHE->Print(
"MapTmeanHE.png");
782 cONE->Print(
"MapTmeanHO.png");
786 cHB->Print(
"MapTmeanHF.png");
792 cHB->Print(
"MapTmaxHB.png");
796 cHE->Print(
"MapTmaxHE.png");
800 cONE->Print(
"MapTmaxHO.png");
804 cHB->Print(
"MapTmaxHF.png");
814 MapNumBadChanFull[
test]->SetTitle(
"All subdetectors\b");
815 MapNumBadChanFull[
test]->SetXTitle(
"#eta \b");
816 MapNumBadChanFull[
test]->SetYTitle(
"#phi \b");
818 MapNumBadChanFull[
test]->SetZTitle(
"Average Nbcs \b");
820 MapNumBadChanFull[
test]->SetZTitle(
"Average estimator \b");
822 MapNumBadChanFull[
test]->SetTitleOffset(0.75,
"Z");
823 MapNumBadChanFull[
test]->Draw(
"COLZ");
824 MapNumBadChanFull[
test]->GetYaxis()->SetRangeUser(0, 72.);
827 cONE->Print(
"MapCapIdError.png");
831 cONE->Print(
"MapADCAmpl.png");
835 cONE->Print(
"MapWidth.png");
839 cONE->Print(
"MapRatio.png");
843 cONE->Print(
"MapTmean.png");
847 cONE->Print(
"MapTmax.png");
857 TH1F *HistNumBadChanDepth[7][5][8];
858 TH1F *HistCutNumBadChanDepth[7][5][8];
859 TH1F *HistNumChanDepth[7][5][8];
865 TH1F *HistNumBadChanFull[7];
866 TH1F *HistNumChanFull[7];
872 HistNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
873 HistNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
875 HistNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
876 HistNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
877 HistNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
879 HistNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
881 HistNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
882 HistNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
884 HistNumBadChanFull[0] = (TH1F *)HistNumBadChanDepth[0][1][1]->Clone();
886 HistCutNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
887 HistCutNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
889 HistCutNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
890 HistCutNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
891 HistCutNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
893 HistCutNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
895 HistCutNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
896 HistCutNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
898 HistNumChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
899 HistNumChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
901 HistNumChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
902 HistNumChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
903 HistNumChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
905 HistNumChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
907 HistNumChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
908 HistNumChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
910 HistNumChanFull[0] = (TH1F *)HistNumChanDepth[0][1][1]->Clone();
918 HistNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS1");
919 HistNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS2");
922 HistNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS3");
923 HistNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS4");
924 HistNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS5");
926 HistNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HEu");
927 HistNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth5HEu");
928 HistNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth6HEu");
929 HistNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth7HEu");
932 HistNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS8");
935 HistNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6");
936 HistNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7");
938 HistNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6u");
939 HistNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7u");
942 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
946 HistCutNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS1");
947 HistCutNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS2");
950 HistCutNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS3");
951 HistCutNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS4");
952 HistCutNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS5");
954 HistCutNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HEu");
955 HistCutNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth5HEu");
956 HistCutNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth6HEu");
957 HistCutNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth7HEu");
960 HistCutNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS8");
963 HistCutNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6");
964 HistCutNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7");
966 HistCutNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6u");
967 HistCutNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7u");
971 HistNumChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS1");
972 HistNumChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS2");
975 HistNumChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS3");
976 HistNumChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS4");
977 HistNumChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS5");
979 HistNumChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HEu");
980 HistNumChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth5HEu");
981 HistNumChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth6HEu");
982 HistNumChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth7HEu");
985 HistNumChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS8");
988 HistNumChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6");
989 HistNumChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7");
991 HistNumChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6u");
992 HistNumChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7u");
995 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
997 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1003 HistNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS1");
1004 HistNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS2");
1006 HistNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS3");
1007 HistNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS4");
1008 HistNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS5");
1010 HistNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS8");
1012 HistNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS6");
1013 HistNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS7");
1015 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1017 HistCutNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS1");
1018 HistCutNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS2");
1020 HistCutNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS3");
1021 HistCutNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS4");
1022 HistCutNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS5");
1024 HistCutNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS8");
1026 HistCutNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS6");
1027 HistCutNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS7");
1029 HistNumChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS1");
1030 HistNumChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS2");
1032 HistNumChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS3");
1033 HistNumChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS4");
1034 HistNumChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS5");
1036 HistNumChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS8");
1038 HistNumChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS6");
1039 HistNumChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS7");
1041 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1046 HistNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS1");
1047 HistNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS2");
1049 HistNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS3");
1050 HistNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS4");
1051 HistNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplperLS5");
1053 HistNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplperLS8");
1055 HistNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS6");
1056 HistNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS7");
1058 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1060 HistCutNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS1");
1061 HistCutNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS2");
1063 HistCutNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS3");
1064 HistCutNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS4");
1065 HistCutNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS5");
1067 HistCutNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS8");
1069 HistCutNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS6");
1070 HistCutNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS7");
1072 HistNumChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS1");
1073 HistNumChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS2");
1075 HistNumChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS3");
1076 HistNumChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS4");
1077 HistNumChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplperLS5");
1079 HistNumChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplperLS8");
1081 HistNumChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS6");
1082 HistNumChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS7");
1084 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1089 HistNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS1");
1090 HistNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS2");
1092 HistNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS3");
1093 HistNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS4");
1094 HistNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS5");
1096 HistNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS8");
1098 HistNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS6");
1099 HistNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS7");
1101 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1103 HistCutNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS1");
1104 HistCutNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS2");
1106 HistCutNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS3");
1107 HistCutNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS4");
1108 HistCutNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS5");
1110 HistCutNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS8");
1112 HistCutNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS6");
1113 HistCutNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS7");
1115 HistNumChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS1");
1116 HistNumChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS2");
1118 HistNumChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS3");
1119 HistNumChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS4");
1120 HistNumChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS5");
1122 HistNumChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS8");
1124 HistNumChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS6");
1125 HistNumChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS7");
1127 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1132 HistNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS1");
1133 HistNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS2");
1135 HistNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS3");
1136 HistNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS4");
1137 HistNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS5");
1139 HistNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS8");
1141 HistNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS6");
1142 HistNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS7");
1144 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1146 HistCutNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS1");
1147 HistCutNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS2");
1149 HistCutNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS3");
1150 HistCutNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS4");
1151 HistCutNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS5");
1153 HistCutNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS8");
1155 HistCutNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS6");
1156 HistCutNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS7");
1158 HistNumChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS1");
1159 HistNumChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS2");
1161 HistNumChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS3");
1162 HistNumChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS4");
1163 HistNumChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS5");
1165 HistNumChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS8");
1167 HistNumChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS6");
1168 HistNumChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS7");
1170 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1173 for (
int sub = 1; sub <= 4; sub++) {
1176 if (sub == 2 &&
test != 1)
1178 if (sub == 2 &&
test == 1) {
1180 cNine->Divide(3, 3);
1184 if (sub == 4 &&
test != 1)
1186 if (sub == 4 &&
test == 1) {
1188 cFour1->Divide(2, 2);
1191 int kkkkkkmax = k_max[sub];
1192 if ((sub == 4 || sub == 2) &&
test == 1)
1193 kkkkkkmax = k_maxHFupgrade[sub];
1194 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1197 if (sub == 2 &&
test != 1)
1199 if (sub == 2 &&
test == 1)
1203 if (sub == 4 &&
test != 1)
1205 if (sub == 4 &&
test == 1)
1211 if (sub == 1 &&
k == 1) {
1214 for (
int x = 1; x <= HistNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
1215 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1216 HistNumBadChanFull[
test]->SetBinContent(x, HistNumBadChanFull[
test]->GetBinContent(x) + ccc1);
1217 double ccc2 = HistNumChanDepth[
test][sub][
k]->GetBinContent(x);
1218 HistNumChanFull[
test]->SetBinContent(x, HistNumChanFull[
test]->GetBinContent(x) + ccc2);
1223 HistNumBadChanDepth[
test][sub][
k]->Divide(
1224 HistNumBadChanDepth[
test][sub][
k], HistNumChanDepth[
test][sub][k], 1, 1,
"B");
1226 for (
int x = 1; x <= HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->GetNbins(); x++) {
1227 HistNumBadChanDepth[
test][sub][
k]->SetBinError(
float(x), 0.01);
1232 HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1235 HistNumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
1236 HistNumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.4);
1237 HistNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetLabelSize(0.04);
1239 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
1241 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
1243 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
1245 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
1247 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 5\b");
1249 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 6\b");
1251 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 7\b");
1252 HistNumBadChanDepth[
test][sub][
k]->SetXTitle(
"LS \b");
1254 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"<Number of bad channels> \b");
1256 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"Averaged estimator \b");
1257 HistNumBadChanDepth[
test][sub][
k]->SetMarkerColor(2);
1258 HistNumBadChanDepth[
test][sub][
k]->SetLineColor(0);
1264 HistNumBadChanDepth[
test][sub][
k]->Draw(
"Error");
1305 if (sub == 2 &&
test != 1) {
1308 if (sub == 2 &&
test == 1) {
1314 if (sub == 4 &&
test != 1) {
1317 if (sub == 4 &&
test == 1) {
1325 cHE->Print(
"HistNBCMNHB.png");
1329 cHE->Print(
"HistNBCMNHE.png");
1333 cHB->Print(
"HistNBCMNHO.png");
1337 cHE->Print(
"HistNBCMNHF.png");
1344 cHE->Print(
"HistADCamplHB.png");
1349 cNine->Print(
"HistADCamplHE.png");
1353 cHB->Print(
"HistADCamplHO.png");
1357 cFour1->Print(
"HistADCamplHF.png");
1363 cHE->Print(
"HistWidthHB.png");
1367 cHE->Print(
"HistWidthHE.png");
1371 cHB->Print(
"HistWidthHO.png");
1375 cHE->Print(
"HistWidthHF.png");
1381 cHE->Print(
"HistRatioHB.png");
1385 cHE->Print(
"HistRatioHE.png");
1389 cHB->Print(
"HistRatioHO.png");
1393 cHE->Print(
"HistRatioHF.png");
1399 cHE->Print(
"HistTmeanHB.png");
1403 cHE->Print(
"HistTmeanHE.png");
1407 cHB->Print(
"HistTmeanHO.png");
1411 cHE->Print(
"HistTmeanHF.png");
1417 cHE->Print(
"HistTmaxHB.png");
1421 cHE->Print(
"HistTmaxHE.png");
1425 cHB->Print(
"HistTmaxHO.png");
1429 cHE->Print(
"HistTmaxHF.png");
1436 for (
int x = 1; x <= HistNumChanFull[6]->GetXaxis()->GetNbins(); x++) {
1437 HistNumChanFull[6]->SetBinContent(x, 0.0);
1438 int depthsubcount = 0.;
1439 for (
int sub = 1; sub <= 4; sub++) {
1440 int kkkkkkmax = k_max[sub];
1441 if (sub == 4 || sub == 2)
1442 kkkkkkmax = k_maxHFupgrade[sub];
1443 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1445 if (sub == 2 &&
k > 3)
1448 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1449 HistNumChanFull[6]->SetBinContent(x, HistNumChanFull[6]->GetBinContent(x) + ccc1);
1452 if (depthsubcount > 0.) {
1453 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / depthsubcount);
1455 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / 8.);
1467 HistNumBadChanFull[
test]->Divide(HistNumBadChanFull[
test], HistNumChanFull[test], 1, 1,
"B");
1468 TH1F *kfitq =
new TH1F(
"kfitq",
"", MaxLum, 1., MaxLum + 1.);
1469 int nx = kfitq->GetXaxis()->GetNbins();
1470 for (
int i = 1;
i <= nx;
i++) {
1471 double ccc1 = HistNumBadChanFull[
test]->GetBinContent(
i);
1473 kfitq->Fill(
float(
i), ccc1);
1474 kfitq->SetBinError(
float(
i), 0.01);
1477 kfitq->SetMarkerStyle(20);
1478 kfitq->SetMarkerSize(0.4);
1479 kfitq->GetYaxis()->SetLabelSize(0.04);
1481 kfitq->SetTitle(
"Average Nbch for whole Hcal \b");
1483 kfitq->SetTitle(
"Averaged estimator for whole Hcal \b");
1484 kfitq->SetXTitle(
"LS \b");
1486 kfitq->SetYTitle(
"<Number of bad channels> \b");
1488 kfitq->SetYTitle(
"Averaged estimator \b");
1489 kfitq->SetMarkerColor(2);
1490 kfitq->SetLineColor(0);
1492 kfitq->Draw(
"Error");
1512 TH1F *lpuio =
new TH1F(
"lpuio",
"", MaxLum, 1., MaxLum + 1.);
1513 int nx = lpuio->GetXaxis()->GetNbins();
1514 for (
int i = 1;
i <= nx;
i++) {
1515 double ccc1 = HistNumChanFull[6]->GetBinContent(
i);
1517 lpuio->Fill(
float(
i), ccc1);
1518 lpuio->SetBinError(
float(
i), 0.01);
1521 lpuio->SetMarkerStyle(20);
1522 lpuio->SetMarkerSize(0.4);
1523 lpuio->GetYaxis()->SetLabelSize(0.04);
1524 lpuio->SetTitle(
"Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1525 lpuio->SetXTitle(
"LS \b");
1526 lpuio->SetYTitle(
"Mean of Averaged estimator \b");
1527 lpuio->SetMarkerColor(2);
1528 lpuio->SetLineColor(0);
1530 lpuio->Draw(
"Error");
1533 cHB->Print(
"HistCapID.png");
1537 cHE->Print(
"HistADCAmpl.png");
1541 cHB->Print(
"HistWidth.png");
1545 cHB->Print(
"HistRatio.png");
1549 cHB->Print(
"HistTmean.png");
1553 cHB->Print(
"HistTmax.png");
1567 TH1F *HistAbnormNumBadChanDepth[5][5];
1573 HistAbnormNumBadChanDepth[1][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HB");
1574 HistAbnormNumBadChanDepth[1][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HB");
1575 HistAbnormNumBadChanDepth[2][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HE");
1576 HistAbnormNumBadChanDepth[2][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HE");
1577 HistAbnormNumBadChanDepth[2][3] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth3_HE");
1578 HistAbnormNumBadChanDepth[3][4] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth4_HO");
1579 HistAbnormNumBadChanDepth[4][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HF");
1580 HistAbnormNumBadChanDepth[4][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HF");
1582 for (
int sub = 1; sub <= 4; sub++) {
1591 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1603 HistAbnormNumBadChanDepth[sub][
k]->Divide(
1604 HistAbnormNumBadChanDepth[sub][
k], HistNumChanDepth[0][sub][k], 1, 1,
"B");
1606 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 1\b");
1608 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 2\b");
1610 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 3\b");
1612 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 4\b");
1613 HistAbnormNumBadChanDepth[sub][
k]->SetXTitle(
"LS \b");
1614 HistAbnormNumBadChanDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1615 if (MaxLum <= 1000) {
1616 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerStyle(20);
1617 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerSize(0.5);
1618 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerColor(1);
1619 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(0);
1620 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1621 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"P");
1623 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(1);
1624 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1625 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"L");
1629 cHB->Print(
"Hist_CAPID_Abnorm_HB.png");
1633 cHE->Print(
"Hist_CAPID_Abnorm_HE.png");
1637 cONE->Print(
"Hist_CAPID_Abnorm_HO.png");
1641 cHB->Print(
"Hist_CAPID_Abnorm_HF.png");
1650 TH1F *HistPortBadEventsDepth[5][5];
1652 HistPortBadEventsDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HB");
1653 HistPortBadEventsDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HB");
1654 HistPortBadEventsDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HE");
1655 HistPortBadEventsDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HE");
1656 HistPortBadEventsDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrateC_depth3_HE");
1657 HistPortBadEventsDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrateC_depth4_HO");
1658 HistPortBadEventsDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HF");
1659 HistPortBadEventsDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HF");
1661 TH1F *HistNumRateDepth[5][5];
1662 HistNumRateDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
1663 HistNumRateDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
1664 HistNumRateDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
1665 HistNumRateDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
1666 HistNumRateDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
1667 HistNumRateDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
1668 HistNumRateDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
1669 HistNumRateDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
1671 for (
int sub = 1; sub <= 4; sub++) {
1680 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1692 HistPortBadEventsDepth[sub][
k]->Divide(HistPortBadEventsDepth[sub][
k], HistNumRateDepth[sub][k], 1, 1,
"B");
1695 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1697 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1699 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1701 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1702 HistPortBadEventsDepth[sub][
k]->SetXTitle(
"LS \b");
1703 HistPortBadEventsDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1704 if (MaxLum <= 1000) {
1705 HistPortBadEventsDepth[sub][
k]->SetMarkerStyle(20);
1706 HistPortBadEventsDepth[sub][
k]->SetMarkerSize(0.5);
1707 HistPortBadEventsDepth[sub][
k]->SetMarkerColor(1);
1708 HistPortBadEventsDepth[sub][
k]->SetLineColor(0);
1709 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1710 HistPortBadEventsDepth[sub][
k]->Draw(
"P");
1712 HistPortBadEventsDepth[sub][
k]->SetLineColor(1);
1713 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1714 HistPortBadEventsDepth[sub][
k]->Draw(
"L");
1718 cHB->Print(
"HistPortHB.png");
1722 cHE->Print(
"HistPortHE.png");
1726 cONE->Print(
"HistPortHO.png");
1730 cHB->Print(
"HistPortHF.png");
1741 TH1F *HistNBadChsDepth[5][5];
1743 HistNBadChsDepth[1][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HB");
1744 HistNBadChsDepth[1][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HB");
1745 HistNBadChsDepth[2][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HE");
1746 HistNBadChsDepth[2][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HE");
1747 HistNBadChsDepth[2][3] = (TH1F *)hfile->Get(
"h_nbadchannels_depth3_HE");
1748 HistNBadChsDepth[3][4] = (TH1F *)hfile->Get(
"h_nbadchannels_depth4_HO");
1749 HistNBadChsDepth[4][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HF");
1750 HistNBadChsDepth[4][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HF");
1752 for (
int sub = 1; sub <= 4; sub++) {
1761 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1775 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1777 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1779 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1781 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1782 HistNBadChsDepth[sub][
k]->SetXTitle(
"Number of bad channels\b");
1783 HistNBadChsDepth[sub][
k]->SetYTitle(
"Number of events\b");
1788 HistNBadChsDepth[sub][
k]->Draw(
"");
1791 cHB->Print(
"HistNBadChsHB.png");
1795 cHE->Print(
"HistNBadChsHE.png");
1799 cONE->Print(
"HistNBadChsHO.png");
1803 cHB->Print(
"HistNBadChsHF.png");
1814 int flagErrAB_HB[2];
1815 flagErrAB_HB[0] = -1;
1816 flagErrAB_HB[1] = -1;
1817 double avedelta_HB = 0.;
1818 int lastLumiBin_HB = -1;
1819 int LSofFirstErrB_HB = -1;
1821 const int specCountA = 4;
1822 const int specColors[specCountA] = {1, 2, 3, 4};
1823 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS1_P1",
"h_sum0ADCAmplperLS1_P1"},
1824 {
"h_sumADCAmplperLS1_P2",
"h_sum0ADCAmplperLS1_P2"},
1825 {
"h_sumADCAmplperLS1_M1",
"h_sum0ADCAmplperLS1_M1"},
1826 {
"h_sumADCAmplperLS1_M2",
"h_sum0ADCAmplperLS1_M2"}};
1828 std::vector<TH1F *> hV;
1829 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
1836 for (
int i = 0;
i < specCountA;
i++) {
1838 std::cout <<
"debugger: errA_HB : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
1840 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
1841 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
1843 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1844 ptext->AddText(
"Missing histo");
1846 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
1847 ptext->AddText(hnames[i][0]);
1850 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
1851 ptext->AddText(hnames[i][1]);
1856 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
1857 hERT1orig->Divide(h1, h0, 1, 1,
"B");
1859 if ((lastLumiBin_HB < 0) && (i == 0)) {
1860 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1861 if (hERT1orig->GetBinContent(ibin) == 0)
1862 lastLumiBin_HB = ibin;
1866 lastLumiBin_HB += 3;
1867 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1868 lastLumiBin_HB = -1;
1871 if (lastLumiBin_HB > 1) {
1872 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HB)) {
1873 std::cout <<
"code failed" << std::endl;
1879 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1880 hV.push_back(hERT1);
1881 hERT1->SetMarkerStyle(20);
1882 hERT1->SetMarkerSize(0.4);
1883 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1884 hERT1->SetMarkerColor(specColors[i]);
1885 hERT1->SetLineColor(0);
1889 if (hERT1 != hERT1orig)
1892 hs->Draw(
"LPE1 nostack");
1894 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1895 hs->Draw(
"LPE1 nostack");
1901 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
1903 if (
int(hV.size()) == specCountA) {
1904 flagErrAB_HB[0] = 0;
1905 double sumdelta = 0.;
1907 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1909 double maxdelta = 0.;
1910 for (
unsigned int i = 0;
i < hV.size();
i++) {
1911 const TH1F *hi = hV[
i];
1912 for (
unsigned int j = 1;
j < hV.size();
j++) {
1913 const TH1F *hj = hV[
j];
1914 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1915 if (delta > maxdelta)
1919 if (maxdelta > 0.) {
1920 diff->Fill(maxdelta);
1921 sumdelta += maxdelta;
1926 avedelta_HB = sumdelta / nnndelta;
1927 std::cout <<
"******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1928 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1929 flagErrAB_HB[0] = 1;
1932 diff->SetMarkerStyle(20);
1933 diff->SetMarkerSize(0.8);
1934 diff->SetXTitle(
"max difference \b");
1935 diff->SetMarkerColor(2);
1936 diff->SetLineColor(0);
1939 diff->Draw(
"Error");
1942 cHB->Print(
"HistErrA_HB.png");
1949 for (
unsigned int i = 0;
i < hV.size();
i++)
1956 const int specCountB = 4;
1957 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS1",
"h_2D0sumErrorBLS1"},
1958 {
"h_sumErrorBperLS1",
"h_sum0ErrorBperLS1"},
1959 {
"h_2DsumErrorBLS2",
"h_2D0sumErrorBLS2"},
1960 {
"h_sumErrorBperLS2",
"h_sum0ErrorBperLS2"}};
1967 TH1F *hRate2orig =
NULL;
1968 TH2F *h2Cefz6 =
NULL;
1969 TString hname1 = hnames[2 *
depth - 2][0];
1970 TString hname0 = hnames[2 *
depth - 2][1];
1971 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
1972 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
1974 std::cout <<
"debugger: errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
1975 if (!twod1 || !twod0) {
1976 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1977 ptext->AddText(
"Missing histos");
1979 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
1980 ptext->AddText(hname1);
1983 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
1984 ptext->AddText(hname0);
1988 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
1989 h2Cefz6->SetTitle(Form(
"HB Depth %d \b",
depth));
1990 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
1995 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
1996 h2Cefz6->SetMarkerStyle(20);
1997 h2Cefz6->SetMarkerSize(0.4);
1999 h2Cefz6->SetXTitle(
"#eta \b");
2000 h2Cefz6->SetYTitle(
"#phi \b");
2001 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HB Depth%d \b",
depth));
2002 h2Cefz6->SetMarkerColor(2);
2003 h2Cefz6->SetLineColor(2);
2004 h2Cefz6->Draw(
"COLZ");
2011 hname1 = hnames[2 *
depth - 1][0];
2012 hname0 = hnames[2 *
depth - 1][1];
2013 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2014 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2016 std::cout <<
"errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2018 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2019 ptext->AddText(
"Missing histo");
2021 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2022 ptext->AddText(hname1);
2025 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2026 ptext->AddText(hname0);
2033 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2034 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2036 TH1F *hRate2 =
NULL;
2037 if (lastLumiBin_HB > 1) {
2038 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HB)) {
2039 std::cout <<
"code failed" << std::endl;
2043 hRate2 = hRate2orig;
2045 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2046 hRate2->SetMarkerStyle(20);
2047 hRate2->SetMarkerSize(0.8);
2049 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b",
depth));
2050 hRate2->SetMarkerColor(2);
2051 hRate2->SetLineColor(0);
2052 hRate2->Draw(
"Error");
2054 if (LSofFirstErrB_HB == -1) {
2055 int nx = hRate2->GetXaxis()->GetNbins();
2056 for (
int i = 1;
i <= nx;
i++) {
2057 double ccc1 = hRate2->GetBinContent(
i);
2059 cout <<
"****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2061 LSofFirstErrB_HB =
i;
2069 if (hRate2 != hRate2orig) {
2071 hRate2orig = hRate2;
2076 cHB->Print(Form(
"HistErrB_HB_%d.png",
depth));
2091 int flagErrAB_HE[2];
2092 flagErrAB_HE[0] = -1;
2093 flagErrAB_HE[1] = -1;
2094 double avedelta_HE = 0.;
2095 int lastLumiBin_HE = -1;
2096 int LSofFirstErrB_HE = -1;
2098 const int specCountA = 4;
2099 const int specColors[specCountA] = {1, 2, 3, 4};
2100 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS3_P1",
"h_sum0ADCAmplperLS3_P1"},
2101 {
"h_sumADCAmplperLS3_P2",
"h_sum0ADCAmplperLS3_P2"},
2102 {
"h_sumADCAmplperLS3_M1",
"h_sum0ADCAmplperLS3_M1"},
2103 {
"h_sumADCAmplperLS3_M2",
"h_sum0ADCAmplperLS3_M2"}};
2105 std::vector<TH1F *> hV;
2106 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2113 for (
int i = 0;
i < specCountA;
i++) {
2115 std::cout <<
"debugger: errA_HE : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2117 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2118 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2120 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2121 ptext->AddText(
"Missing histo");
2123 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2124 ptext->AddText(hnames[i][0]);
2127 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2128 ptext->AddText(hnames[i][1]);
2133 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2134 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2136 if ((lastLumiBin_HE < 0) && (i == 0)) {
2137 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2138 if (hERT1orig->GetBinContent(ibin) == 0)
2139 lastLumiBin_HE = ibin;
2143 lastLumiBin_HE += 3;
2144 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2145 lastLumiBin_HE = -1;
2148 if (lastLumiBin_HE > 1) {
2149 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HE)) {
2150 std::cout <<
"code failed" << std::endl;
2156 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2157 hV.push_back(hERT1);
2158 hERT1->SetMarkerStyle(20);
2159 hERT1->SetMarkerSize(0.4);
2160 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2161 hERT1->SetMarkerColor(specColors[i]);
2162 hERT1->SetLineColor(0);
2166 if (hERT1 != hERT1orig)
2169 hs->Draw(
"LPE1 nostack");
2171 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2172 hs->Draw(
"LPE1 nostack");
2178 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2180 if (
int(hV.size()) == specCountA) {
2181 flagErrAB_HE[0] = 0;
2182 double sumdelta = 0.;
2184 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2186 double maxdelta = 0.;
2187 for (
unsigned int i = 0;
i < hV.size();
i++) {
2188 const TH1F *hi = hV[
i];
2189 for (
unsigned int j = 1;
j < hV.size();
j++) {
2190 const TH1F *hj = hV[
j];
2191 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2192 if (delta > maxdelta)
2196 if (maxdelta > 0.) {
2197 diff->Fill(maxdelta);
2198 sumdelta += maxdelta;
2203 avedelta_HE = sumdelta / nnndelta;
2204 std::cout <<
"******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2205 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2206 flagErrAB_HE[0] = 1;
2209 diff->SetMarkerStyle(20);
2210 diff->SetMarkerSize(0.8);
2211 diff->SetXTitle(
"max difference \b");
2212 diff->SetMarkerColor(2);
2213 diff->SetLineColor(0);
2216 diff->Draw(
"Error");
2219 cHB->Print(
"HistErrA_HE.png");
2226 for (
unsigned int i = 0;
i < hV.size();
i++)
2233 const int specCountB = 6;
2234 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS3",
"h_2D0sumErrorBLS3"},
2235 {
"h_sumErrorBperLS3",
"h_sum0ErrorBperLS3"},
2236 {
"h_2DsumErrorBLS4",
"h_2D0sumErrorBLS4"},
2237 {
"h_sumErrorBperLS4",
"h_sum0ErrorBperLS4"},
2238 {
"h_2DsumErrorBLS5",
"h_2D0sumErrorBLS5"},
2239 {
"h_sumErrorBperLS5",
"h_sum0ErrorBperLS5"}};
2246 TH1F *hRate2orig =
NULL;
2247 TH2F *h2Cefz6 =
NULL;
2248 TString hname1 = hnames[2 *
depth - 2][0];
2249 TString hname0 = hnames[2 *
depth - 2][1];
2250 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2251 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2253 std::cout <<
"debugger: errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2254 if (!twod1 || !twod0) {
2255 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2256 ptext->AddText(
"Missing histos");
2258 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2259 ptext->AddText(hname1);
2262 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2263 ptext->AddText(hname0);
2267 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2268 h2Cefz6->SetTitle(Form(
"HE Depth %d \b",
depth));
2269 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2274 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2275 h2Cefz6->SetMarkerStyle(20);
2276 h2Cefz6->SetMarkerSize(0.4);
2278 h2Cefz6->SetXTitle(
"#eta \b");
2279 h2Cefz6->SetYTitle(
"#phi \b");
2280 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HE Depth%d \b",
depth));
2281 h2Cefz6->SetMarkerColor(2);
2282 h2Cefz6->SetLineColor(2);
2283 h2Cefz6->Draw(
"COLZ");
2290 hname1 = hnames[2 *
depth - 1][0];
2291 hname0 = hnames[2 *
depth - 1][1];
2292 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2293 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2295 std::cout <<
"errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2297 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2298 ptext->AddText(
"Missing histo");
2300 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2301 ptext->AddText(hname1);
2304 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2305 ptext->AddText(hname0);
2312 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2313 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2315 TH1F *hRate2 =
NULL;
2316 if (lastLumiBin_HE > 1) {
2317 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HE)) {
2318 std::cout <<
"code failed" << std::endl;
2322 hRate2 = hRate2orig;
2324 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2325 hRate2->SetMarkerStyle(20);
2326 hRate2->SetMarkerSize(0.8);
2328 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b",
depth));
2329 hRate2->SetMarkerColor(2);
2330 hRate2->SetLineColor(0);
2331 hRate2->Draw(
"Error");
2333 if (LSofFirstErrB_HE == -1) {
2334 int nx = hRate2->GetXaxis()->GetNbins();
2335 for (
int i = 1;
i <= nx;
i++) {
2336 double ccc1 = hRate2->GetBinContent(
i);
2338 cout <<
"****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2340 LSofFirstErrB_HE =
i;
2348 if (hRate2 != hRate2orig) {
2350 hRate2orig = hRate2;
2355 cHB->Print(Form(
"HistErrB_HE_%d.png",
depth));
2370 int flagErrAB_HO[2];
2371 flagErrAB_HO[0] = -1;
2372 flagErrAB_HO[1] = -1;
2373 double avedelta_HO = 0.;
2374 int lastLumiBin_HO = -1;
2375 int LSofFirstErrB_HO = -1;
2377 const int specCountA = 4;
2378 const int specColors[specCountA] = {1, 2, 3, 4};
2379 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS8_P1",
"h_sum0ADCAmplperLS8_P1"},
2380 {
"h_sumADCAmplperLS8_P2",
"h_sum0ADCAmplperLS8_P2"},
2381 {
"h_sumADCAmplperLS8_M1",
"h_sum0ADCAmplperLS8_M1"},
2382 {
"h_sumADCAmplperLS8_M2",
"h_sum0ADCAmplperLS8_M2"}};
2384 std::vector<TH1F *> hV;
2385 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2392 for (
int i = 0;
i < specCountA;
i++) {
2394 std::cout <<
"debugger: errA_HO : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2396 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2397 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2399 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2400 ptext->AddText(
"Missing histo");
2402 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2403 ptext->AddText(hnames[i][0]);
2406 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2407 ptext->AddText(hnames[i][1]);
2412 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2413 hoRT1orig->Divide(h1, h0, 1, 1,
"B");
2415 if ((lastLumiBin_HO < 0) && (i == 0)) {
2416 for (
int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2417 if (hoRT1orig->GetBinContent(ibin) == 0)
2418 lastLumiBin_HO = ibin;
2422 lastLumiBin_HO += 3;
2423 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2424 lastLumiBin_HO = -1;
2427 if (lastLumiBin_HO > 1) {
2428 if (!
copyContents(&hoRT1, Form(
"ERT1_%d", i),
"", hoRT1orig, lastLumiBin_HO)) {
2429 std::cout <<
"code failed" << std::endl;
2435 hoRT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2436 hV.push_back(hoRT1);
2437 hoRT1->SetMarkerStyle(20);
2438 hoRT1->SetMarkerSize(0.4);
2439 hoRT1->SetXTitle(
"<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2440 hoRT1->SetMarkerColor(specColors[i]);
2441 hoRT1->SetLineColor(0);
2445 if (hoRT1 != hoRT1orig)
2448 hs->Draw(
"LPE1 nostack");
2450 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2451 hs->Draw(
"LPE1 nostack");
2457 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2459 if (
int(hV.size()) == specCountA) {
2460 flagErrAB_HO[0] = 0;
2461 double sumdelta = 0.;
2463 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2465 double maxdelta = 0.;
2466 for (
unsigned int i = 0;
i < hV.size();
i++) {
2467 const TH1F *hi = hV[
i];
2468 for (
unsigned int j = 1;
j < hV.size();
j++) {
2469 const TH1F *hj = hV[
j];
2470 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2471 if (delta > maxdelta)
2475 if (maxdelta > 0.) {
2476 diff->Fill(maxdelta);
2477 sumdelta += maxdelta;
2482 avedelta_HO = sumdelta / nnndelta;
2483 std::cout <<
"******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2484 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2485 flagErrAB_HO[0] = 1;
2488 diff->SetMarkerStyle(20);
2489 diff->SetMarkerSize(0.8);
2490 diff->SetXTitle(
"max difference \b");
2491 diff->SetMarkerColor(2);
2492 diff->SetLineColor(0);
2495 diff->Draw(
"Error");
2498 cHB->Print(
"HistErrA_HO.png");
2505 for (
unsigned int i = 0;
i < hV.size();
i++)
2512 const int specCountB = 2;
2513 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS8",
"h_2D0sumErrorBLS8"},
2514 {
"h_sumErrorBperLS8",
"h_sum0ErrorBperLS8"}};
2521 TH1F *hRate2orig =
NULL;
2522 TH2F *h2Cefz6 =
NULL;
2523 TString hname1 = hnames[2 *
depth - 8][0];
2524 TString hname0 = hnames[2 *
depth - 8][1];
2525 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2526 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2528 std::cout <<
"debugger: errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2529 if (!twod1 || !twod0) {
2530 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2531 ptext->AddText(
"Missing histos");
2533 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2534 ptext->AddText(hname1);
2537 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2538 ptext->AddText(hname0);
2542 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2543 h2Cefz6->SetTitle(Form(
"HO Depth %d \b",
depth));
2544 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2549 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2550 h2Cefz6->SetMarkerStyle(20);
2551 h2Cefz6->SetMarkerSize(0.4);
2553 h2Cefz6->SetXTitle(
"#eta \b");
2554 h2Cefz6->SetYTitle(
"#phi \b");
2555 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HO Depth%d \b",
depth));
2556 h2Cefz6->SetMarkerColor(2);
2557 h2Cefz6->SetLineColor(2);
2558 h2Cefz6->Draw(
"COLZ");
2565 hname1 = hnames[2 *
depth - 7][0];
2566 hname0 = hnames[2 *
depth - 7][1];
2567 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2568 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2570 std::cout <<
"errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2572 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2573 ptext->AddText(
"Missing histo");
2575 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2576 ptext->AddText(hname1);
2579 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2580 ptext->AddText(hname0);
2587 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2588 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2590 TH1F *hRate2 =
NULL;
2591 if (lastLumiBin_HO > 1) {
2592 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HO)) {
2593 std::cout <<
"code failed" << std::endl;
2597 hRate2 = hRate2orig;
2599 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2600 hRate2->SetMarkerStyle(20);
2601 hRate2->SetMarkerSize(0.8);
2603 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b",
depth));
2604 hRate2->SetMarkerColor(2);
2605 hRate2->SetLineColor(0);
2606 hRate2->Draw(
"Error");
2608 if (LSofFirstErrB_HO == -1) {
2609 int nx = hRate2->GetXaxis()->GetNbins();
2610 for (
int i = 1;
i <= nx;
i++) {
2611 double ccc1 = hRate2->GetBinContent(
i);
2613 cout <<
"****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2615 LSofFirstErrB_HO =
i;
2623 if (hRate2 != hRate2orig) {
2625 hRate2orig = hRate2;
2630 cHB->Print(Form(
"HistErrB_HO_%d.png",
depth));
2644 int flagErrAB_HF[2];
2645 flagErrAB_HF[0] = -1;
2646 flagErrAB_HF[1] = -1;
2647 double avedelta_HF = 0.;
2648 int lastLumiBin_HF = -1;
2649 int LSofFirstErrB_HF = -1;
2651 const int specCountA = 4;
2652 const int specColors[specCountA] = {1, 2, 3, 4};
2653 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS6_P1",
"h_sum0ADCAmplperLS6_P1"},
2654 {
"h_sumADCAmplperLS6_P2",
"h_sum0ADCAmplperLS6_P2"},
2655 {
"h_sumADCAmplperLS6_M1",
"h_sum0ADCAmplperLS6_M1"},
2656 {
"h_sumADCAmplperLS6_M2",
"h_sum0ADCAmplperLS6_M2"}};
2658 std::vector<TH1F *> hV;
2659 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS6");
2666 for (
int i = 0;
i < specCountA;
i++) {
2668 std::cout <<
"debugger: errA_HF : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2670 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2671 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2673 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2674 ptext->AddText(
"Missing histo");
2676 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2677 ptext->AddText(hnames[i][0]);
2680 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2681 ptext->AddText(hnames[i][1]);
2686 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2687 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2689 if ((lastLumiBin_HF < 0) && (i == 0)) {
2690 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2691 if (hERT1orig->GetBinContent(ibin) == 0)
2692 lastLumiBin_HF = ibin;
2696 lastLumiBin_HF += 3;
2697 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2698 lastLumiBin_HF = -1;
2701 if (lastLumiBin_HF > 1) {
2702 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HF)) {
2703 std::cout <<
"code failed" << std::endl;
2709 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2710 hV.push_back(hERT1);
2711 hERT1->SetMarkerStyle(20);
2712 hERT1->SetMarkerSize(0.4);
2713 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2714 hERT1->SetMarkerColor(specColors[i]);
2715 hERT1->SetLineColor(0);
2719 if (hERT1 != hERT1orig)
2722 hs->Draw(
"LPE1 nostack");
2724 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2725 hs->Draw(
"LPE1 nostack");
2731 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2733 if (
int(hV.size()) == specCountA) {
2734 flagErrAB_HF[0] = 0;
2735 double sumdelta = 0.;
2737 std::cout <<
"******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2738 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2740 double maxdelta = 0.;
2741 for (
unsigned int i = 0;
i < hV.size();
i++) {
2742 const TH1F *hi = hV[
i];
2743 for (
unsigned int j = 1;
j < hV.size();
j++) {
2744 const TH1F *hj = hV[
j];
2745 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2746 if (delta > maxdelta)
2751 if (maxdelta > 0.) {
2752 diff->Fill(maxdelta);
2753 sumdelta += maxdelta;
2758 avedelta_HF = sumdelta / nnndelta;
2760 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2761 flagErrAB_HF[0] = 1;
2764 diff->SetMarkerStyle(20);
2765 diff->SetMarkerSize(0.8);
2766 diff->SetXTitle(
"max difference \b");
2767 diff->SetMarkerColor(2);
2768 diff->SetLineColor(0);
2771 diff->Draw(
"Error");
2774 cHB->Print(
"HistErrA_HF.png");
2780 for (
unsigned int i = 0;
i < hV.size();
i++)
2786 const int specCountB = 4;
2787 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS6",
"h_2D0sumErrorBLS6"},
2788 {
"h_sumErrorBperLS6",
"h_sum0ErrorBperLS6"},
2789 {
"h_2DsumErrorBLS7",
"h_2D0sumErrorBLS7"},
2790 {
"h_sumErrorBperLS7",
"h_sum0ErrorBperLS7"}};
2796 TH1F *hRate2orig =
NULL;
2797 TH2F *h2Cefz6 =
NULL;
2798 TString hname1 = hnames[2 *
depth - 2][0];
2799 TString hname0 = hnames[2 *
depth - 2][1];
2800 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2801 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2803 std::cout <<
"debugger: errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2804 if (!twod1 || !twod0) {
2805 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2806 ptext->AddText(
"Missing histos");
2808 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2809 ptext->AddText(hname1);
2812 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2813 ptext->AddText(hname0);
2817 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2818 h2Cefz6->SetTitle(Form(
"HF Depth %d \b",
depth));
2819 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2824 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2825 h2Cefz6->SetMarkerStyle(20);
2826 h2Cefz6->SetMarkerSize(0.4);
2828 h2Cefz6->SetXTitle(
"#eta \b");
2829 h2Cefz6->SetYTitle(
"#phi \b");
2830 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HF Depth%d \b",
depth));
2831 h2Cefz6->SetMarkerColor(2);
2832 h2Cefz6->SetLineColor(2);
2833 h2Cefz6->Draw(
"COLZ");
2838 hname1 = hnames[2 *
depth - 1][0];
2839 hname0 = hnames[2 *
depth - 1][1];
2840 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2841 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2843 std::cout <<
"errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2845 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2846 ptext->AddText(
"Missing histo");
2848 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2849 ptext->AddText(hname1);
2852 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2853 ptext->AddText(hname0);
2860 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2861 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2863 TH1F *hRate2 =
NULL;
2864 if (lastLumiBin_HF > 1) {
2865 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HF)) {
2866 std::cout <<
"code failed" << std::endl;
2870 hRate2 = hRate2orig;
2871 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2872 hRate2->SetMarkerStyle(20);
2873 hRate2->SetMarkerSize(0.8);
2875 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b",
depth));
2876 hRate2->SetMarkerColor(2);
2877 hRate2->SetLineColor(0);
2878 hRate2->Draw(
"Error");
2879 if (LSofFirstErrB_HF == -1) {
2880 int nx = hRate2->GetXaxis()->GetNbins();
2881 for (
int i = 1;
i <= nx;
i++) {
2882 double ccc1 = hRate2->GetBinContent(
i);
2884 cout <<
"****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2886 LSofFirstErrB_HF =
i;
2893 if (hRate2 != hRate2orig) {
2895 hRate2orig = hRate2;
2899 cHB->Print(Form(
"HistErrB_HF_%d.png",
depth));
2915 TH2F *h2Ceff =
NULL;
2916 TH2F *h2Diffe =
NULL;
2918 TH2F *h3Ceff =
NULL;
2925 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HB",
depth);
2926 TString hname0 = Form(
"h_mapDepth%d_HB",
depth);
2927 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2928 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2929 if (!twod1 || !twod0) {
2930 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2931 ptext->AddText(
"Missing histo");
2932 std::cout <<
"specHB test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
2934 ptext->AddText(hname1);
2936 ptext->AddText(hname0);
2941 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HB%d",
depth));
2942 h2Ceff->SetTitle(Form(
"HB Depth %d. (No cut) \b",
depth));
2943 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
2948 h2Ceff->SetMarkerStyle(20);
2949 h2Ceff->SetMarkerSize(0.4);
2951 h2Ceff->SetXTitle(
"#eta \b");
2952 h2Ceff->SetYTitle(
"#phi \b");
2953 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HB \b");
2954 h2Ceff->SetMarkerColor(2);
2955 h2Ceff->SetLineColor(2);
2956 h2Ceff->Draw(
"COLZ");
2963 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HB",
depth));
2964 h2Diffe->SetTitle(Form(
"HB Depth %d. Cut avg(ADCAmpl) > 25 \b",
depth));
2965 int nx = h2Ceff->GetXaxis()->GetNbins();
2966 int ny = h2Ceff->GetYaxis()->GetNbins();
2967 for (
int i = 1;
i <= nx;
i++) {
2968 for (
int j = 1;
j <= ny;
j++) {
2969 double ccc1 = h2Ceff->GetBinContent(
i,
j);
2970 h2Diffe->SetBinContent(
i,
j, 0.);
2972 h2Diffe->SetBinContent(
i,
j, ccc1);
2978 h2Diffe->SetMarkerStyle(20);
2979 h2Diffe->SetMarkerSize(0.4);
2981 h2Diffe->SetXTitle(
"#eta \b");
2982 h2Diffe->SetYTitle(
"#phi \b");
2983 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 25.- HB Depth1 \b");
2984 h2Diffe->SetMarkerColor(2);
2985 h2Diffe->SetLineColor(2);
2986 h2Diffe->Draw(
"COLZ");
2990 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HB",
depth);
2991 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
2992 if (!twod3 || !twod0) {
2993 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2994 ptext->AddText(
"Missing histo");
2995 std::cout <<
"specHB test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
2997 ptext->AddText(hname3);
2999 ptext->AddText(hname0);
3004 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HB%d",
depth));
3005 h3Ceff->SetTitle(Form(
"HB Depth %d. \b",
depth));
3006 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3010 h3Ceff->SetMarkerStyle(20);
3011 h3Ceff->SetMarkerSize(0.4);
3013 h3Ceff->SetXTitle(
"#eta \b");
3014 h3Ceff->SetYTitle(
"#phi \b");
3015 h3Ceff->SetZTitle(
"rate for channels of HB \b");
3016 h3Ceff->SetMarkerColor(2);
3017 h3Ceff->SetLineColor(2);
3018 h3Ceff->Draw(
"COLZ");
3022 cHE->Print(Form(
"ChkErrA_HB%d.png",
depth));
3044 TH2F *h2Ceff =
NULL;
3045 TH2F *h2Diffe =
NULL;
3047 TH2F *h3Ceff =
NULL;
3054 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HE",
depth);
3055 TString hname0 = Form(
"h_mapDepth%d_HE",
depth);
3056 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3057 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3058 if (!twod1 || !twod0) {
3059 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3060 ptext->AddText(
"Missing histo");
3061 std::cout <<
"specHE test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3063 ptext->AddText(hname1);
3065 ptext->AddText(hname0);
3070 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HE%d",
depth));
3071 h2Ceff->SetTitle(Form(
"HE Depth %d. (No cut) \b",
depth));
3072 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3077 h2Ceff->SetMarkerStyle(20);
3078 h2Ceff->SetMarkerSize(0.4);
3080 h2Ceff->SetXTitle(
"#eta \b");
3081 h2Ceff->SetYTitle(
"#phi \b");
3082 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HE \b");
3083 h2Ceff->SetMarkerColor(2);
3084 h2Ceff->SetLineColor(2);
3085 h2Ceff->Draw(
"COLZ");
3092 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HE",
depth));
3093 h2Diffe->SetTitle(Form(
"HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b",
depth));
3094 int nx = h2Ceff->GetXaxis()->GetNbins();
3095 int ny = h2Ceff->GetYaxis()->GetNbins();
3096 for (
int i = 1;
i <= nx;
i++) {
3097 for (
int j = 1;
j <= ny;
j++) {
3098 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3099 h2Diffe->SetBinContent(
i,
j, 0.);
3101 h2Diffe->SetBinContent(
i,
j, ccc1);
3107 h2Diffe->SetMarkerStyle(20);
3108 h2Diffe->SetMarkerSize(0.4);
3110 h2Diffe->SetXTitle(
"#eta \b");
3111 h2Diffe->SetYTitle(
"#phi \b");
3112 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3113 h2Diffe->SetMarkerColor(2);
3114 h2Diffe->SetLineColor(2);
3115 h2Diffe->Draw(
"COLZ");
3119 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HE",
depth);
3120 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3121 if (!twod3 || !twod0) {
3122 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3123 ptext->AddText(
"Missing histo");
3124 std::cout <<
"specHE test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3126 ptext->AddText(hname3);
3128 ptext->AddText(hname0);
3133 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HE%d",
depth));
3134 h3Ceff->SetTitle(Form(
"HE Depth %d. \b",
depth));
3135 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3139 h3Ceff->SetMarkerStyle(20);
3140 h3Ceff->SetMarkerSize(0.4);
3142 h3Ceff->SetXTitle(
"#eta \b");
3143 h3Ceff->SetYTitle(
"#phi \b");
3144 h3Ceff->SetZTitle(
"rate for channels of HE \b");
3145 h3Ceff->SetMarkerColor(2);
3146 h3Ceff->SetLineColor(2);
3147 h3Ceff->Draw(
"COLZ");
3151 cHE->Print(Form(
"ChkErrA_HE%d.png",
depth));
3173 TH2F *h2Ceff =
NULL;
3174 TH2F *h2Diffe =
NULL;
3176 TH2F *h3Ceff =
NULL;
3183 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HO",
depth);
3184 TString hname0 = Form(
"h_mapDepth%d_HO",
depth);
3185 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3186 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3187 if (!twod1 || !twod0) {
3188 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3189 ptext->AddText(
"Missing histo");
3190 std::cout <<
"specHO test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3192 ptext->AddText(hname1);
3194 ptext->AddText(hname0);
3199 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HO%d",
depth));
3200 h2Ceff->SetTitle(Form(
"HO Depth %d. (No cut) \b",
depth));
3201 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3206 h2Ceff->SetMarkerStyle(20);
3207 h2Ceff->SetMarkerSize(0.4);
3209 h2Ceff->SetXTitle(
"#eta \b");
3210 h2Ceff->SetYTitle(
"#phi \b");
3211 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HO \b");
3212 h2Ceff->SetMarkerColor(2);
3213 h2Ceff->SetLineColor(2);
3214 h2Ceff->Draw(
"COLZ");
3221 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HO",
depth));
3222 h2Diffe->SetTitle(Form(
"HO Depth %d. Cut avg(ADCAmpl) > 80 \b",
depth));
3223 int nx = h2Ceff->GetXaxis()->GetNbins();
3224 int ny = h2Ceff->GetYaxis()->GetNbins();
3225 for (
int i = 1;
i <= nx;
i++) {
3226 for (
int j = 1;
j <= ny;
j++) {
3227 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3228 h2Diffe->SetBinContent(
i,
j, 0.);
3230 h2Diffe->SetBinContent(
i,
j, ccc1);
3236 h2Diffe->SetMarkerStyle(20);
3237 h2Diffe->SetMarkerSize(0.4);
3239 h2Diffe->SetXTitle(
"#eta \b");
3240 h2Diffe->SetYTitle(
"#phi \b");
3241 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 80.- HO Depth1 \b");
3242 h2Diffe->SetMarkerColor(2);
3243 h2Diffe->SetLineColor(2);
3244 h2Diffe->Draw(
"COLZ");
3248 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HO",
depth);
3249 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3250 if (!twod3 || !twod0) {
3251 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3252 ptext->AddText(
"Missing histo");
3253 std::cout <<
"specHO test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3255 ptext->AddText(hname3);
3257 ptext->AddText(hname0);
3262 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HO%d",
depth));
3263 h3Ceff->SetTitle(Form(
"HO Depth %d. \b",
depth));
3264 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3268 h3Ceff->SetMarkerStyle(20);
3269 h3Ceff->SetMarkerSize(0.4);
3271 h3Ceff->SetXTitle(
"#eta \b");
3272 h3Ceff->SetYTitle(
"#phi \b");
3273 h3Ceff->SetZTitle(
"rate for channels of HO \b");
3274 h3Ceff->SetMarkerColor(2);
3275 h3Ceff->SetLineColor(2);
3276 h3Ceff->Draw(
"COLZ");
3280 cHE->Print(Form(
"ChkErrA_HO%d.png",
depth));
3302 TH2F *h2Ceff =
NULL;
3303 TH2F *h2Diffe =
NULL;
3305 TH2F *h3Ceff =
NULL;
3312 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HF",
depth);
3313 TString hname0 = Form(
"h_mapDepth%d_HF",
depth);
3314 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3315 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3316 if (!twod1 || !twod0) {
3317 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3318 ptext->AddText(
"Missing histo");
3319 std::cout <<
"specHF test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3321 ptext->AddText(hname1);
3323 ptext->AddText(hname0);
3328 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HF%d",
depth));
3329 h2Ceff->SetTitle(Form(
"HF Depth %d. (No cut) \b",
depth));
3330 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3335 h2Ceff->SetMarkerStyle(20);
3336 h2Ceff->SetMarkerSize(0.4);
3338 h2Ceff->SetXTitle(
"#eta \b");
3339 h2Ceff->SetYTitle(
"#phi \b");
3340 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HF \b");
3341 h2Ceff->SetMarkerColor(2);
3342 h2Ceff->SetLineColor(2);
3343 h2Ceff->Draw(
"COLZ");
3350 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HF",
depth));
3351 h2Diffe->SetTitle(Form(
"HF Depth %d. Cut avg(ADCAmpl) > 20 \b",
depth));
3352 int nx = h2Ceff->GetXaxis()->GetNbins();
3353 int ny = h2Ceff->GetYaxis()->GetNbins();
3354 for (
int i = 1;
i <= nx;
i++) {
3355 for (
int j = 1;
j <= ny;
j++) {
3356 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3357 h2Diffe->SetBinContent(
i,
j, 0.);
3359 h2Diffe->SetBinContent(
i,
j, ccc1);
3365 h2Diffe->SetMarkerStyle(20);
3366 h2Diffe->SetMarkerSize(0.4);
3368 h2Diffe->SetXTitle(
"#eta \b");
3369 h2Diffe->SetYTitle(
"#phi \b");
3370 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 20.- HF Depth1 \b");
3371 h2Diffe->SetMarkerColor(2);
3372 h2Diffe->SetLineColor(2);
3373 h2Diffe->Draw(
"COLZ");
3402 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HF",
depth);
3403 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3404 if (!twod3 || !twod0) {
3405 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3406 ptext->AddText(
"Missing histo");
3407 std::cout <<
"specHF test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3409 ptext->AddText(hname3);
3411 ptext->AddText(hname0);
3416 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HF%d",
depth));
3417 h3Ceff->SetTitle(Form(
"HF Depth %d. \b",
depth));
3418 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3422 h3Ceff->SetMarkerStyle(20);
3423 h3Ceff->SetMarkerSize(0.4);
3425 h3Ceff->SetXTitle(
"#eta \b");
3426 h3Ceff->SetYTitle(
"#phi \b");
3427 h3Ceff->SetZTitle(
"rate for channels of HF \b");
3428 h3Ceff->SetMarkerColor(2);
3429 h3Ceff->SetLineColor(2);
3430 h3Ceff->Draw(
"COLZ");
3434 cHE->Print(Form(
"ChkErrA_HF%d.png",
depth));
3451 std::cout <<
"************>>> average Amplitudes done" << std::endl;
3453 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3454 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3455 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3456 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3457 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3464 cout <<
" RBX analysis START for **************************" << endl;
3465 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3470 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax=2600; "
3473 double alexall[njeta][njphi][
lsmax];
3476 double alexhb[njphi][
lsmax];
3477 double alexhe[njphi][
lsmax];
3478 double alexho[njphi][
lsmax];
3479 double alexhf[njphi][
lsmax];
3482 double blexhb[njeta][
lsmax];
3483 double blexhe[njeta][
lsmax];
3484 double blexho[njeta][
lsmax];
3485 double blexhf[njeta][
lsmax];
3487 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alexall [njeta][njphi][lsmax]; " << endl;
3488 int maxbinsRBX = MaxLum;
3489 int nx = maxbinsRBX;
3490 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3492 cout <<
"*********************************** ERROR ERROR ERROR ERROR: MaxLum > 2600 " << endl;
3493 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3495 for (
int i = 0;
i < nx;
i++) {
3496 for (
int jphi = 0; jphi < njphi; jphi++) {
3497 alexhb[jphi][
i] = 0.;
3498 alexhe[jphi][
i] = 0.;
3499 alexho[jphi][
i] = 0.;
3500 alexhf[jphi][
i] = 0.;
3502 for (
int jeta = 0; jeta < njeta; jeta++) {
3504 blexhb[jeta][
i] = 0.;
3505 blexhe[jeta][
i] = 0.;
3506 blexho[jeta][
i] = 0.;
3507 blexhf[jeta][
i] = 0.;
3510 alexall[jeta][jphi][
i] = 0.;
3535 cout <<
" RBX general for HB **************************" << endl;
3536 TH2F *Ghb1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs0");
3537 TH2F *Ghb1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs00");
3538 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone(
"Ghb1");
3539 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1,
"B");
3542 int ny = Ghb1->GetYaxis()->GetNbins();
3544 for (
int j = 1;
j <= ny;
j++) {
3545 int jeta = (
j - 1) / njphi;
3546 if (jeta > 6 && jeta < 15) {
3547 int jphi = (
j - 1) - njphi * jeta;
3550 for (
int i = 1;
i <= nx;
i++) {
3551 double ccc1 = Ghb1->GetBinContent(
i,
j);
3552 alexall[jeta][jphi][
i - 1] = ccc1;
3567 for (
int jphi = 0; jphi < njphi; jphi++) {
3568 for (
int i = 0;
i < nx;
i++) {
3569 double sumccc1 = 0.;
3571 for (
int jeta = 0; jeta < njeta; jeta++) {
3572 double ccc1 = alexall[jeta][jphi][
i];
3580 alexhb[jphi][
i] = sumccc1;
3585 for (
int keta = 0; keta < njeta; keta++) {
3586 for (
int i = 0;
i < nx;
i++) {
3587 double sumccc1 = 0.;
3589 for (
int kphi = 0; kphi < njphi; kphi++) {
3590 double ccc1 = alexall[keta][kphi][
i];
3598 blexhb[keta][
i] = sumccc1;
3608 cout <<
" RBX HB 2D plot *****" << endl;
3611 cRBX1->Divide(1, 1);
3616 TH2F *Ghb42D =
new TH2F(
"Ghb42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
3617 TH2F *Ghb42D0 =
new TH2F(
"Ghb42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
3618 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone(
"Ghb42DF");
3619 for (
int jphi = 0; jphi < njphi; jphi++) {
3620 for (
int jeta = 0; jeta < njeta; jeta++) {
3621 for (
int i = 0;
i < nx;
i++) {
3622 double ccc1 = alexall[jeta][jphi][
i];
3623 int neweta = jeta - 11 - 0.5;
3625 neweta = jeta - 11 + 1.5;
3627 Ghb42D->Fill(neweta, jphi, ccc1);
3628 Ghb42D0->Fill(neweta, jphi, 1.);
3634 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1,
"B");
3638 Ghb42DF->SetMarkerStyle(20);
3639 Ghb42DF->SetMarkerSize(0.4);
3640 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3641 Ghb42DF->SetXTitle(
"<A>_RBX #eta \b");
3642 Ghb42DF->SetYTitle(
" #phi \b");
3643 Ghb42DF->SetZTitle(
"<A>_RBX - All \b");
3644 Ghb42DF->SetMarkerColor(2);
3645 Ghb42DF->SetLineColor(2);
3646 Ghb42DF->Draw(
"COLZ");
3650 cRBX1->Print(
"RBX-HB-2Dplot.png");
3665 cout <<
" RBX HB 1D plot *****" << endl;
3668 cRBX1->Divide(1, 1);
3670 TH1F *GphiHB1D =
new TH1F(
"GphiHB1D",
"", 18, 0., 18.);
3671 TH1F *GphiHB1D0 =
new TH1F(
"GphiHB1D0",
"", 18, 0., 18.);
3672 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone(
"GphiHB1DF");
3673 for (
int jphi = 0; jphi < 18; jphi++) {
3674 for (
int jeta = 0; jeta < 22; jeta++) {
3675 for (
int i = 0;
i < nx;
i++) {
3676 double ccc1 = alexall[jeta][jphi][
i];
3678 GphiHB1D->Fill(jphi, ccc1);
3679 GphiHB1D0->Fill(jphi, 1.);
3685 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1,
"B");
3687 for (
int jphi = 1; jphi < 19; jphi++) {
3688 GphiHB1DF->SetBinError(jphi, 0.01);
3692 GphiHB1DF->SetMarkerStyle(20);
3693 GphiHB1DF->SetMarkerSize(1.4);
3694 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3695 GphiHB1DF->SetXTitle(
"PHI of RBX\b");
3696 GphiHB1DF->SetYTitle(
" <Amplitude> \b");
3697 GphiHB1DF->SetZTitle(
"<A>_PHI - All \b");
3698 GphiHB1DF->SetMarkerColor(4);
3699 GphiHB1DF->SetLineColor(4);
3700 GphiHB1DF->SetMinimum(0.8);
3701 GphiHB1DF->Draw(
"Error");
3704 cRBX1->Print(
"RBX-HB-1Dplot.png");
3719 cout <<
" RBX HB 11D plot *eta*" << endl;
3722 cRBX1->Divide(1, 1);
3724 TH1F *GetaHB11D =
new TH1F(
"GetaHB11D",
"", 23, -11.5, 11.5);
3725 TH1F *GetaHB11D0 =
new TH1F(
"GetaHB11D0",
"", 23, -11.5, 11.5);
3726 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone(
"GetaHB11DF");
3728 for (
int jeta = 0; jeta < 22; jeta++) {
3729 for (
int jphi = 0; jphi < 18; jphi++) {
3730 for (
int i = 0;
i < nx;
i++) {
3731 double ccc1 = alexall[jeta][jphi][
i];
3732 int neweta = jeta - 11 - 0.5;
3734 neweta = jeta - 11 + 1.5;
3736 GetaHB11D->Fill(neweta, ccc1);
3737 GetaHB11D0->Fill(neweta, 1.);
3744 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1,
"B");
3746 for (
int jeta = 1; jeta < 24; jeta++) {
3747 GetaHB11DF->SetBinError(jeta, 0.01);
3751 GetaHB11DF->SetMarkerStyle(20);
3752 GetaHB11DF->SetMarkerSize(1.4);
3753 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3754 GetaHB11DF->SetXTitle(
"#eta \b");
3755 GetaHB11DF->SetYTitle(
" <A> \b");
3756 GetaHB11DF->SetZTitle(
"<A>_ETA - All \b");
3757 GetaHB11DF->SetMarkerColor(4);
3758 GetaHB11DF->SetLineColor(4);
3759 GetaHB11DF->SetMinimum(0.8);
3760 GetaHB11DF->Draw(
"Error");
3764 cRBX1->Print(
"RBX-HB-11Dplot.png");
3780 gStyle->SetOptStat(1110000);
3781 cout <<
" RBX HB Ratio plots *****" << endl;
3790 cRBX31->Divide(3, 1);
3794 TH1F *Ghb51 =
new TH1F(
"Ghb51",
"", nx, 1., nx + 1.);
3795 TH1F *Ghb50 =
new TH1F(
"Ghb50",
"", nx, 1., nx + 1.);
3796 TH1F *Ghb5 = (TH1F *)Ghb50->Clone(
"Ghb5");
3798 for (
int j = 1;
j <= ny;
j++) {
3799 ccc0HB = Ghb1->GetBinContent(1,
j);
3802 for (
int i = 1;
i <= nx;
i++) {
3803 double ccc2 = Ghb1->GetBinContent(
i,
j);
3811 for (
int i = 1;
i <= nx;
i++) {
3812 double ccc1 = Ghb1->GetBinContent(
i,
j);
3814 double Rij = ccc1 / ccc0HB;
3816 Ghb51->Fill(
float(
i), Rij);
3817 Ghb50->Fill(
float(
i), 1.);
3822 Ghb5->Divide(Ghb51, Ghb50, 1, 1,
"B");
3823 for (
int i = 1;
i <= nx;
i++) {
3824 Ghb5->SetBinError(
i, 0.0001);
3826 Ghb5->SetMarkerStyle(20);
3827 Ghb5->SetMarkerSize(0.4);
3828 Ghb5->GetYaxis()->SetLabelSize(0.04);
3829 Ghb5->SetMarkerColor(2);
3830 Ghb5->SetLineColor(0);
3831 Ghb5->SetXTitle(
" iLS \b");
3832 Ghb5->SetYTitle(
" <R> \b");
3833 Ghb5->SetTitle(
"<Ri> vs iLS \b");
3834 Ghb5->SetMinimum(0.);
3839 Ghb5->GetYaxis()->SetLabelSize(0.025);
3840 Ghb5->Draw(
"Error");
3843 TH2F *Ghb60 =
new TH2F(
"Ghb60",
"", 22, -11., 11., 18, 0., 18.);
3844 TH2F *Ghb61 =
new TH2F(
"Ghb61",
"", 22, -11., 11., 18, 0., 18.);
3845 TH2F *Ghb6 =
new TH2F(
"Ghb6",
"", 22, -11., 11., 18, 0., 18.);
3847 TH2F *G20hb60 =
new TH2F(
"G20hb60",
"", 22, -11., 11., 18, 0., 18.);
3848 TH2F *G20hb61 =
new TH2F(
"G20hb61",
"", 22, -11., 11., 18, 0., 18.);
3849 TH2F *G20hb6 =
new TH2F(
"G20hb6",
"", 22, -11., 11., 18, 0., 18.);
3850 TH2F *G30hb60 =
new TH2F(
"G30hb60",
"", 22, -11., 11., 18, 0., 18.);
3851 TH2F *G30hb61 =
new TH2F(
"G30hb61",
"", 22, -11., 11., 18, 0., 18.);
3852 TH2F *G30hb6 =
new TH2F(
"G30hb6",
"", 22, -11., 11., 18, 0., 18.);
3853 TH2F *G40hb60 =
new TH2F(
"G40hb60",
"", 22, -11., 11., 18, 0., 18.);
3854 TH2F *G40hb61 =
new TH2F(
"G40hb61",
"", 22, -11., 11., 18, 0., 18.);
3855 TH2F *G40hb6 =
new TH2F(
"G40hb6",
"", 22, -11., 11., 18, 0., 18.);
3861 double meanjHB = 0.;
3862 for (
int j = 1;
j <= ny;
j++) {
3863 ccc0HB = Ghb1->GetBinContent(1,
j);
3865 for (
int i = 1;
i <= nx;
i++) {
3866 double ccc2 = Ghb1->GetBinContent(
i,
j);
3873 for (
int i = 1;
i <= nx;
i++) {
3874 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3880 meanjHB = sumjHB / njHB;
3884 double ssumjHB = 0.;
3886 double sigmajHB = 0.;
3887 for (
int j = 1;
j <= ny;
j++) {
3888 ccc0HB = Ghb1->GetBinContent(1,
j);
3890 for (
int i = 1;
i <= nx;
i++) {
3891 double ccc2 = Ghb1->GetBinContent(
i,
j);
3898 for (
int i = 1;
i <= nx;
i++) {
3899 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3901 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3905 sigmajHB =
sqrt(ssumjHB / njHB);
3909 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3910 if (dif3rmsHBMIN < 0.)
3912 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3913 cout <<
"22HB-2 meanjHB= " << meanjHB <<
" sigmajHB= " << sigmajHB <<
" dif3rmsHBMIN= " << dif3rmsHBMIN
3914 <<
" dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3916 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3917 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3918 if (MAXdif3rmsHBMIN < 0.95)
3919 MAXdif3rmsHBMIN = 0.95;
3920 if (MINdif3rmsHBMAX > 1.05)
3921 MINdif3rmsHBMAX = 1.05;
3922 cout <<
"22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3924 for (
int j = 1;
j <= ny;
j++) {
3925 ccc0HB = Ghb1->GetBinContent(1,
j);
3927 for (
int i = 1;
i <= nx;
i++) {
3928 double ccc2 = Ghb1->GetBinContent(
i,
j);
3935 int jeta = (
j - 1) / 18;
3936 int jphi = (
j - 1) - 18 * jeta;
3938 for (
int i = 1;
i <= nx;
i++) {
3939 double ccc1 = Ghb1->GetBinContent(
i,
j);
3941 double Rij = ccc1 / ccc0HB;
3942 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3943 Ghb61->Fill(jeta - 11, jphi, Rij);
3944 Ghb60->Fill(jeta - 11, jphi, 1.);
3946 if (Rij < 0.8 || Rij > 1.2) {
3947 G20hb61->Fill(jeta - 11, jphi, Rij);
3948 G20hb60->Fill(jeta - 11, jphi, 1.);
3950 if (Rij < 0.7 || Rij > 1.3) {
3951 G30hb61->Fill(jeta - 11, jphi, Rij);
3952 G30hb60->Fill(jeta - 11, jphi, 1.);
3954 if (Rij < 0.6 || Rij > 1.4) {
3955 G40hb61->Fill(jeta - 11, jphi, Rij);
3956 G40hb60->Fill(jeta - 11, jphi, 1.);
3962 Ghb6->Divide(Ghb61, Ghb60, 1, 1,
"B");
3963 G20hb6->Divide(G20hb61, G20hb60, 1, 1,
"B");
3964 G30hb6->Divide(G30hb61, G30hb60, 1, 1,
"B");
3965 G40hb6->Divide(G40hb61, G40hb60, 1, 1,
"B");
3967 Ghb6->GetZaxis()->SetLabelSize(0.025);
3968 Ghb6->SetXTitle(
" #eta \b");
3969 Ghb6->SetYTitle(
" #phi \b");
3970 Ghb6->SetTitle(
"<Rj> for |1-<R>| > 0.05 \b");
3975 TH1F *Ghb7 =
new TH1F(
"Ghb7",
"", 120, 0.4, 1.6);
3977 for (
int j = 1;
j <= ny;
j++) {
3978 ccc0HB = Ghb1->GetBinContent(1,
j);
3980 for (
int i = 1;
i <= nx;
i++) {
3981 double ccc2 = Ghb1->GetBinContent(
i,
j);
3989 for (
int i = 1;
i <= nx;
i++) {
3990 double ccc1 = Ghb1->GetBinContent(
i,
j);
3992 double Rij = ccc1 / ccc0HB;
3998 Ghb7->SetMarkerStyle(20);
3999 Ghb7->SetMarkerSize(0.4);
4000 Ghb7->GetYaxis()->SetLabelSize(0.04);
4001 Ghb7->SetMarkerColor(2);
4002 Ghb7->SetLineColor(0);
4003 Ghb7->SetYTitle(
" N \b");
4004 Ghb7->SetXTitle(
" Rij \b");
4005 Ghb7->SetTitle(
" Rij \b");
4010 Ghb7->GetYaxis()->SetLabelSize(0.025);
4011 Ghb7->Draw(
"Error");
4012 Float_t ymaxHB = Ghb7->GetMaximum();
4013 cout <<
"22HB-3 ymaxHB= " << ymaxHB <<
" MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4014 <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4015 TLine *lineHB =
new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4016 lineHB->SetLineColor(kBlue);
4018 TLine *line1HB =
new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4019 line1HB->SetLineColor(kBlue);
4024 cRBX31->Print(
"RBX-HB-3plots.png");
4059 gStyle->SetOptStat(1110000);
4060 cout <<
" RBX HB Ratio plotsmore *****" << endl;
4063 cRBX31->Divide(3, 1);
4066 G20hb6->GetZaxis()->SetLabelSize(0.025);
4067 G20hb6->SetXTitle(
" #eta \b");
4068 G20hb6->SetYTitle(
" #phi \b");
4069 G20hb6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4070 G20hb6->SetStats(0);
4071 G20hb6->Draw(
"COLZ");
4074 G30hb6->GetZaxis()->SetLabelSize(0.025);
4075 G30hb6->SetXTitle(
" #eta \b");
4076 G30hb6->SetYTitle(
" #phi \b");
4077 G30hb6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4078 G30hb6->SetStats(0);
4079 G30hb6->Draw(
"COLZ");
4082 G40hb6->GetZaxis()->SetLabelSize(0.025);
4083 G40hb6->SetXTitle(
" #eta \b");
4084 G40hb6->SetYTitle(
" #phi \b");
4085 G40hb6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4086 G40hb6->SetStats(0);
4087 G40hb6->Draw(
"COLZ");
4092 cRBX31->Print(
"RBX-HB-3plotsmore.png");
4102 gStyle->SetOptStat(0);
4106 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4107 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4108 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4109 for (
int jphi = 0; jphi < njphi; jphi++) {
4110 for (
int jeta = 0; jeta < njeta; jeta++) {
4111 for (
int i = 0;
i < nx;
i++) {
4112 alexall[jeta][jphi][
i] = 0.;
4123 cout <<
" RBX general for HE **************************" << endl;
4124 TH2F *Ghe1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs1");
4125 TH2F *Ghe1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs10");
4126 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone(
"Ghe1");
4127 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1,
"B");
4131 ny = Ghe1->GetYaxis()->GetNbins();
4132 for (
int j = 1;
j <= ny;
j++) {
4133 int jeta = (
j - 1) / njphi;
4134 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4135 int jphi = (
j - 1) - njphi * jeta;
4138 for (
int i = 1;
i <= nx;
i++) {
4139 double ccc1 = Ghe1->GetBinContent(
i,
j);
4140 alexall[jeta][jphi][
i - 1] = ccc1;
4153 for (
int jphi = 0; jphi < njphi; jphi++) {
4154 for (
int i = 0;
i < nx;
i++) {
4155 double sumccc1 = 0.;
4157 for (
int jeta = 0; jeta < njeta; jeta++) {
4158 double ccc1 = alexall[jeta][jphi][
i];
4166 alexhe[jphi][
i] = sumccc1;
4170 for (
int keta = 0; keta < njeta; keta++) {
4171 for (
int i = 0;
i < nx;
i++) {
4172 double sumccc1 = 0.;
4174 for (
int kphi = 0; kphi < njphi; kphi++) {
4175 double ccc1 = alexall[keta][kphi][
i];
4183 blexhe[keta][
i] = sumccc1;
4192 cout <<
" RBX HE 2D plot *****" << endl;
4195 cRBX1->Divide(1, 1);
4198 TH2F *Ghe42D =
new TH2F(
"Ghe42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4199 TH2F *Ghe42D0 =
new TH2F(
"Ghe42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4202 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone(
"Ghe42DF");
4203 for (
int jphi = 0; jphi < njphi; jphi++) {
4204 for (
int jeta = 0; jeta < njeta; jeta++) {
4205 for (
int i = 0;
i < nx;
i++) {
4206 double ccc1 = alexall[jeta][jphi][
i];
4207 int neweta = jeta - 11 - 0.5;
4209 neweta = jeta - 11 + 1.5;
4211 Ghe42D->Fill(neweta, jphi, ccc1);
4212 Ghe42D0->Fill(neweta, jphi, 1.);
4218 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1,
"B");
4222 Ghe42DF->SetMarkerStyle(20);
4223 Ghe42DF->SetMarkerSize(0.4);
4224 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4225 Ghe42DF->SetXTitle(
"<A>_RBX #eta \b");
4226 Ghe42DF->SetYTitle(
" #phi \b");
4227 Ghe42DF->SetZTitle(
"<A>_RBX - All \b");
4228 Ghe42DF->SetMarkerColor(2);
4229 Ghe42DF->SetLineColor(2);
4230 Ghe42DF->Draw(
"COLZ");
4234 cRBX1->Print(
"RBX-HE-2Dplot.png");
4249 cout <<
" RBX HE 1D plot *****" << endl;
4252 cRBX1->Divide(1, 1);
4254 TH1F *GphiHE1D =
new TH1F(
"GphiHE1D",
"", 18, 0., 18.);
4255 TH1F *GphiHE1D0 =
new TH1F(
"GphiHE1D0",
"", 18, 0., 18.);
4256 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone(
"GphiHE1DF");
4257 for (
int jphi = 0; jphi < 18; jphi++) {
4258 for (
int jeta = 0; jeta < 22; jeta++) {
4259 for (
int i = 0;
i < nx;
i++) {
4260 double ccc1 = alexall[jeta][jphi][
i];
4262 GphiHE1D->Fill(jphi, ccc1);
4263 GphiHE1D0->Fill(jphi, 1.);
4269 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1,
"B");
4271 for (
int jphi = 1; jphi < 19; jphi++) {
4272 GphiHE1DF->SetBinError(jphi, 0.01);
4276 GphiHE1DF->SetMarkerStyle(20);
4277 GphiHE1DF->SetMarkerSize(1.4);
4278 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4279 GphiHE1DF->SetXTitle(
"PHI of RBX\b");
4280 GphiHE1DF->SetYTitle(
" <Amplitude> \b");
4281 GphiHE1DF->SetZTitle(
"<A>_PHI - All \b");
4282 GphiHE1DF->SetMarkerColor(4);
4283 GphiHE1DF->SetLineColor(4);
4284 GphiHE1DF->SetMinimum(0.8);
4285 GphiHE1DF->Draw(
"Error");
4288 cRBX1->Print(
"RBX-HE-1Dplot.png");
4303 cout <<
" RBX HE 11D plot *eta*" << endl;
4306 cRBX1->Divide(1, 1);
4308 TH1F *GetaHE11D =
new TH1F(
"GetaHE11D",
"", 23, -11.5, 11.5);
4309 TH1F *GetaHE11D0 =
new TH1F(
"GetaHE11D0",
"", 23, -11.5, 11.5);
4310 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone(
"GetaHE11DF");
4312 for (
int jeta = 0; jeta < 22; jeta++) {
4313 for (
int jphi = 0; jphi < 18; jphi++) {
4314 for (
int i = 0;
i < nx;
i++) {
4315 double ccc1 = alexall[jeta][jphi][
i];
4316 int neweta = jeta - 11 - 0.5;
4318 neweta = jeta - 11 + 1.5;
4320 GetaHE11D->Fill(neweta, ccc1);
4321 GetaHE11D0->Fill(neweta, 1.);
4328 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1,
"B");
4330 for (
int jeta = 1; jeta < 24; jeta++) {
4331 GetaHE11DF->SetBinError(jeta, 0.01);
4335 GetaHE11DF->SetMarkerStyle(20);
4336 GetaHE11DF->SetMarkerSize(1.4);
4337 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4338 GetaHE11DF->SetXTitle(
"#eta \b");
4339 GetaHE11DF->SetYTitle(
" <A> \b");
4340 GetaHE11DF->SetZTitle(
"<A>_ETA - All \b");
4341 GetaHE11DF->SetMarkerColor(4);
4342 GetaHE11DF->SetLineColor(4);
4343 GetaHE11DF->SetMinimum(0.8);
4344 GetaHE11DF->Draw(
"Error");
4348 cRBX1->Print(
"RBX-HE-11Dplot.png");
4364 gStyle->SetOptStat(1110000);
4365 cout <<
" RBX HE Ratio plots *****" << endl;
4374 cRBX31->Divide(3, 1);
4378 TH1F *Ghe51 =
new TH1F(
"Ghe51",
"", nx, 1., nx + 1.);
4379 TH1F *Ghe50 =
new TH1F(
"Ghe50",
"", nx, 1., nx + 1.);
4380 TH1F *Ghe5 = (TH1F *)Ghe50->Clone(
"Ghe5");
4382 for (
int j = 1;
j <= ny;
j++) {
4383 ccc0HE = Ghe1->GetBinContent(1,
j);
4386 for (
int i = 1;
i <= nx;
i++) {
4387 double ccc2 = Ghe1->GetBinContent(
i,
j);
4395 for (
int i = 1;
i <= nx;
i++) {
4396 double ccc1 = Ghe1->GetBinContent(
i,
j);
4398 double Rij = ccc1 / ccc0HE;
4400 Ghe51->Fill(
float(
i), Rij);
4401 Ghe50->Fill(
float(
i), 1.);
4406 Ghe5->Divide(Ghe51, Ghe50, 1, 1,
"B");
4407 for (
int i = 1;
i <= nx;
i++) {
4408 Ghe5->SetBinError(
i, 0.0001);
4410 Ghe5->SetMarkerStyle(20);
4411 Ghe5->SetMarkerSize(0.4);
4412 Ghe5->GetYaxis()->SetLabelSize(0.04);
4413 Ghe5->SetMarkerColor(2);
4414 Ghe5->SetLineColor(0);
4415 Ghe5->SetXTitle(
" iLS \b");
4416 Ghe5->SetYTitle(
" <R> \b");
4417 Ghe5->SetTitle(
"<Ri> vs iLS \b");
4418 Ghe5->SetMinimum(0.);
4423 Ghe5->GetYaxis()->SetLabelSize(0.025);
4424 Ghe5->Draw(
"Error");
4427 TH2F *Ghe60 =
new TH2F(
"Ghe60",
"", 22, -11., 11., 18, 0., 18.);
4428 TH2F *Ghe61 =
new TH2F(
"Ghe61",
"", 22, -11., 11., 18, 0., 18.);
4429 TH2F *Ghe6 =
new TH2F(
"Ghe6",
"", 22, -11., 11., 18, 0., 18.);
4431 TH2F *G20he60 =
new TH2F(
"G20he60",
"", 22, -11., 11., 18, 0., 18.);
4432 TH2F *G20he61 =
new TH2F(
"G20he61",
"", 22, -11., 11., 18, 0., 18.);
4433 TH2F *G20he6 =
new TH2F(
"G20he6",
"", 22, -11., 11., 18, 0., 18.);
4434 TH2F *G30he60 =
new TH2F(
"G30he60",
"", 22, -11., 11., 18, 0., 18.);
4435 TH2F *G30he61 =
new TH2F(
"G30he61",
"", 22, -11., 11., 18, 0., 18.);
4436 TH2F *G30he6 =
new TH2F(
"G30he6",
"", 22, -11., 11., 18, 0., 18.);
4437 TH2F *G40he60 =
new TH2F(
"G40he60",
"", 22, -11., 11., 18, 0., 18.);
4438 TH2F *G40he61 =
new TH2F(
"G40he61",
"", 22, -11., 11., 18, 0., 18.);
4439 TH2F *G40he6 =
new TH2F(
"G40he6",
"", 22, -11., 11., 18, 0., 18.);
4445 double meanjHE = 0.;
4446 for (
int j = 1;
j <= ny;
j++) {
4447 ccc0HE = Ghe1->GetBinContent(1,
j);
4449 for (
int i = 1;
i <= nx;
i++) {
4450 double ccc2 = Ghe1->GetBinContent(
i,
j);
4457 for (
int i = 1;
i <= nx;
i++) {
4458 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4464 meanjHE = sumjHE / njHE;
4468 double ssumjHE = 0.;
4470 double sigmajHE = 0.;
4471 for (
int j = 1;
j <= ny;
j++) {
4472 ccc0HE = Ghe1->GetBinContent(1,
j);
4474 for (
int i = 1;
i <= nx;
i++) {
4475 double ccc2 = Ghe1->GetBinContent(
i,
j);
4482 for (
int i = 1;
i <= nx;
i++) {
4483 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4485 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4489 sigmajHE =
sqrt(ssumjHE / njHE);
4493 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4494 if (dif3rmsHEMIN < 0.)
4496 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4497 cout <<
"22HE-2 meanjHE= " << meanjHE <<
" sigmajHE= " << sigmajHE <<
" dif3rmsHEMIN= " << dif3rmsHEMIN
4498 <<
" dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4500 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4501 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4502 if (MAXdif3rmsHEMIN < 0.95)
4503 MAXdif3rmsHEMIN = 0.95;
4504 if (MINdif3rmsHEMAX > 1.05)
4505 MINdif3rmsHEMAX = 1.05;
4506 cout <<
"22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4508 for (
int j = 1;
j <= ny;
j++) {
4509 ccc0HE = Ghe1->GetBinContent(1,
j);
4511 for (
int i = 1;
i <= nx;
i++) {
4512 double ccc2 = Ghe1->GetBinContent(
i,
j);
4519 int jeta = (
j - 1) / 18;
4520 int jphi = (
j - 1) - 18 * jeta;
4522 for (
int i = 1;
i <= nx;
i++) {
4523 double ccc1 = Ghe1->GetBinContent(
i,
j);
4525 double Rij = ccc1 / ccc0HE;
4526 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4527 Ghe61->Fill(jeta - 11, jphi, Rij);
4528 Ghe60->Fill(jeta - 11, jphi, 1.);
4530 if (Rij < 0.8 || Rij > 1.2) {
4531 G20he61->Fill(jeta - 11, jphi, Rij);
4532 G20he60->Fill(jeta - 11, jphi, 1.);
4534 if (Rij < 0.7 || Rij > 1.3) {
4535 G30he61->Fill(jeta - 11, jphi, Rij);
4536 G30he60->Fill(jeta - 11, jphi, 1.);
4538 if (Rij < 0.6 || Rij > 1.4) {
4539 G40he61->Fill(jeta - 11, jphi, Rij);
4540 G40he60->Fill(jeta - 11, jphi, 1.);
4546 Ghe6->Divide(Ghe61, Ghe60, 1, 1,
"B");
4547 G20he6->Divide(G20he61, G20he60, 1, 1,
"B");
4548 G30he6->Divide(G30he61, G30he60, 1, 1,
"B");
4549 G40he6->Divide(G40he61, G40he60, 1, 1,
"B");
4553 Ghe6->GetZaxis()->SetLabelSize(0.025);
4555 Ghe6->SetXTitle(
" #eta \b");
4556 Ghe6->SetYTitle(
" #phi \b");
4558 "<Rj> for |1-<R>| > 0.05 \b");
4564 TH1F *Ghe7 =
new TH1F(
"Ghe7",
"", 120, 0.4, 1.6);
4566 for (
int j = 1;
j <= ny;
j++) {
4567 ccc0HE = Ghe1->GetBinContent(1,
j);
4569 for (
int i = 1;
i <= nx;
i++) {
4570 double ccc2 = Ghe1->GetBinContent(
i,
j);
4578 for (
int i = 1;
i <= nx;
i++) {
4579 double ccc1 = Ghe1->GetBinContent(
i,
j);
4581 double Rij = ccc1 / ccc0HE;
4587 Ghe7->SetMarkerStyle(20);
4588 Ghe7->SetMarkerSize(0.4);
4589 Ghe7->GetYaxis()->SetLabelSize(0.04);
4590 Ghe7->SetMarkerColor(2);
4591 Ghe7->SetLineColor(0);
4592 Ghe7->SetYTitle(
" N \b");
4593 Ghe7->SetXTitle(
" Rij \b");
4594 Ghe7->SetTitle(
" Rij \b");
4599 Ghe7->GetYaxis()->SetLabelSize(0.025);
4600 Ghe7->Draw(
"Error");
4601 Float_t ymaxHE = Ghe7->GetMaximum();
4602 cout <<
"22HE-3 ymaxHE= " << ymaxHE <<
" MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4603 <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4604 TLine *lineHE =
new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4605 lineHE->SetLineColor(kBlue);
4607 TLine *line1HE =
new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4608 line1HE->SetLineColor(kBlue);
4613 cRBX31->Print(
"RBX-HE-3plots.png");
4648 gStyle->SetOptStat(1110000);
4649 cout <<
" RBX HE Ratio plotsmore *****" << endl;
4652 cRBX31->Divide(3, 1);
4655 G20he6->GetZaxis()->SetLabelSize(0.025);
4656 G20he6->SetXTitle(
" #eta \b");
4657 G20he6->SetYTitle(
" #phi \b");
4658 G20he6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4659 G20he6->SetStats(0);
4660 G20he6->Draw(
"COLZ");
4663 G30he6->GetZaxis()->SetLabelSize(0.025);
4664 G30he6->SetXTitle(
" #eta \b");
4665 G30he6->SetYTitle(
" #phi \b");
4666 G30he6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4667 G30he6->SetStats(0);
4668 G30he6->Draw(
"COLZ");
4671 G40he6->GetZaxis()->SetLabelSize(0.025);
4672 G40he6->SetXTitle(
" #eta \b");
4673 G40he6->SetYTitle(
" #phi \b");
4674 G40he6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4675 G40he6->SetStats(0);
4676 G40he6->Draw(
"COLZ");
4681 cRBX31->Print(
"RBX-HE-3plotsmore.png");
4691 gStyle->SetOptStat(0);
4694 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4695 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4696 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4697 for (
int jphi = 0; jphi < njphi; jphi++) {
4698 for (
int jeta = 0; jeta < njeta; jeta++) {
4699 for (
int i = 0;
i < nx;
i++) {
4700 alexall[jeta][jphi][
i] = 0.;
4711 cout <<
" RBX general for HO **************************" << endl;
4712 TH2F *Gho1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs2");
4713 TH2F *Gho1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs20");
4714 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone(
"Gho1");
4715 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1,
"B");
4719 ny = Gho1->GetYaxis()->GetNbins();
4720 for (
int j = 1;
j <= ny;
j++) {
4721 int jeta = (
j - 1) / njphi;
4722 if (jeta < 15 && jeta > 6) {
4723 int jphi = (
j - 1) - njphi * jeta;
4726 for (
int i = 1;
i <= nx;
i++) {
4727 double ccc1 = Gho1->GetBinContent(
i,
j);
4728 alexall[jeta][jphi][
i - 1] = ccc1;
4741 for (
int jphi = 0; jphi < njphi; jphi++) {
4742 for (
int i = 0;
i < nx;
i++) {
4743 double sumccc1 = 0.;
4745 for (
int jeta = 0; jeta < njeta; jeta++) {
4746 double ccc1 = alexall[jeta][jphi][
i];
4754 alexho[jphi][
i] = sumccc1;
4758 for (
int keta = 0; keta < njeta; keta++) {
4759 for (
int i = 0;
i < nx;
i++) {
4760 double sumccc1 = 0.;
4762 for (
int kphi = 0; kphi < njphi; kphi++) {
4763 double ccc1 = alexall[keta][kphi][
i];
4771 blexho[keta][
i] = sumccc1;
4781 cout <<
" RBX HO 2D plot *****" << endl;
4784 cRBX1->Divide(1, 1);
4787 TH2F *Gho42D =
new TH2F(
"Gho42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4788 TH2F *Gho42D0 =
new TH2F(
"Gho42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4791 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone(
"Gho42DF");
4792 for (
int jphi = 0; jphi < njphi; jphi++) {
4793 for (
int jeta = 0; jeta < njeta; jeta++) {
4794 for (
int i = 0;
i < nx;
i++) {
4795 double ccc1 = alexall[jeta][jphi][
i];
4796 int neweta = jeta - 11 - 0.5;
4798 neweta = jeta - 11 + 1.5;
4800 Gho42D->Fill(neweta, jphi, ccc1);
4801 Gho42D0->Fill(neweta, jphi, 1.);
4807 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1,
"B");
4811 Gho42DF->SetMarkerStyle(20);
4812 Gho42DF->SetMarkerSize(0.4);
4813 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4814 Gho42DF->SetXTitle(
"<A>_RBX #eta \b");
4815 Gho42DF->SetYTitle(
" #phi \b");
4816 Gho42DF->SetZTitle(
"<A>_RBX - All \b");
4817 Gho42DF->SetMarkerColor(2);
4818 Gho42DF->SetLineColor(2);
4819 Gho42DF->Draw(
"COLZ");
4823 cRBX1->Print(
"RBX-HO-2Dplot.png");
4838 cout <<
" RBX HO 1D plot *****" << endl;
4841 cRBX1->Divide(1, 1);
4843 TH1F *GphiHO1D =
new TH1F(
"GphiHO1D",
"", 18, 0., 18.);
4844 TH1F *GphiHO1D0 =
new TH1F(
"GphiHO1D0",
"", 18, 0., 18.);
4845 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone(
"GphiHO1DF");
4846 for (
int jphi = 0; jphi < 18; jphi++) {
4847 for (
int jeta = 0; jeta < 22; jeta++) {
4848 for (
int i = 0;
i < nx;
i++) {
4849 double ccc1 = alexall[jeta][jphi][
i];
4851 GphiHO1D->Fill(jphi, ccc1);
4852 GphiHO1D0->Fill(jphi, 1.);
4858 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1,
"B");
4860 for (
int jphi = 1; jphi < 19; jphi++) {
4861 GphiHO1DF->SetBinError(jphi, 0.01);
4865 GphiHO1DF->SetMarkerStyle(20);
4866 GphiHO1DF->SetMarkerSize(1.4);
4867 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4868 GphiHO1DF->SetXTitle(
"PHI of RBX\b");
4869 GphiHO1DF->SetYTitle(
" <Amplitude> \b");
4870 GphiHO1DF->SetZTitle(
"<A>_PHI - All \b");
4871 GphiHO1DF->SetMarkerColor(4);
4872 GphiHO1DF->SetLineColor(4);
4873 GphiHO1DF->SetMinimum(0.8);
4874 GphiHO1DF->Draw(
"Error");
4877 cRBX1->Print(
"RBX-HO-1Dplot.png");
4892 cout <<
" RBX HO 11D plot *eta*" << endl;
4895 cRBX1->Divide(1, 1);
4897 TH1F *GetaHO11D =
new TH1F(
"GetaHO11D",
"", 23, -11.5, 11.5);
4898 TH1F *GetaHO11D0 =
new TH1F(
"GetaHO11D0",
"", 23, -11.5, 11.5);
4899 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone(
"GetaHO11DF");
4901 for (
int jeta = 0; jeta < 22; jeta++) {
4902 for (
int jphi = 0; jphi < 18; jphi++) {
4903 for (
int i = 0;
i < nx;
i++) {
4904 double ccc1 = alexall[jeta][jphi][
i];
4905 int neweta = jeta - 11 - 0.5;
4907 neweta = jeta - 11 + 1.5;
4909 GetaHO11D->Fill(neweta, ccc1);
4910 GetaHO11D0->Fill(neweta, 1.);
4917 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1,
"B");
4919 for (
int jeta = 1; jeta < 24; jeta++) {
4920 GetaHO11DF->SetBinError(jeta, 0.01);
4924 GetaHO11DF->SetMarkerStyle(20);
4925 GetaHO11DF->SetMarkerSize(1.4);
4926 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4927 GetaHO11DF->SetXTitle(
"#eta \b");
4928 GetaHO11DF->SetYTitle(
" <A> \b");
4929 GetaHO11DF->SetZTitle(
"<A>_ETA - All \b");
4930 GetaHO11DF->SetMarkerColor(4);
4931 GetaHO11DF->SetLineColor(4);
4932 GetaHO11DF->SetMinimum(0.8);
4933 GetaHO11DF->Draw(
"Error");
4937 cRBX1->Print(
"RBX-HO-11Dplot.png");
4953 gStyle->SetOptStat(1110000);
4954 cout <<
" RBX HO Ratio plots *****" << endl;
4963 cRBX31->Divide(3, 1);
4967 TH1F *Gho51 =
new TH1F(
"Gho51",
"", nx, 1., nx + 1.);
4968 TH1F *Gho50 =
new TH1F(
"Gho50",
"", nx, 1., nx + 1.);
4969 TH1F *Gho5 = (TH1F *)Gho50->Clone(
"Gho5");
4971 for (
int j = 1;
j <= ny;
j++) {
4972 ccc0HO = Gho1->GetBinContent(1,
j);
4975 for (
int i = 1;
i <= nx;
i++) {
4976 double ccc2 = Gho1->GetBinContent(
i,
j);
4984 for (
int i = 1;
i <= nx;
i++) {
4985 double ccc1 = Gho1->GetBinContent(
i,
j);
4987 double Rij = ccc1 / ccc0HO;
4989 Gho51->Fill(
float(
i), Rij);
4990 Gho50->Fill(
float(
i), 1.);
4995 Gho5->Divide(Gho51, Gho50, 1, 1,
"B");
4996 for (
int i = 1;
i <= nx;
i++) {
4997 Gho5->SetBinError(
i, 0.0001);
4999 Gho5->SetMarkerStyle(20);
5000 Gho5->SetMarkerSize(0.4);
5001 Gho5->GetYaxis()->SetLabelSize(0.04);
5002 Gho5->SetMarkerColor(2);
5003 Gho5->SetLineColor(0);
5004 Gho5->SetXTitle(
" iLS \b");
5005 Gho5->SetYTitle(
" <R> \b");
5006 Gho5->SetTitle(
"<Ri> vs iLS \b");
5007 Gho5->SetMinimum(0.);
5012 Gho5->GetYaxis()->SetLabelSize(0.025);
5013 Gho5->Draw(
"Error");
5016 TH2F *Gho60 =
new TH2F(
"Gho60",
"", 22, -11., 11., 18, 0., 18.);
5017 TH2F *Gho61 =
new TH2F(
"Gho61",
"", 22, -11., 11., 18, 0., 18.);
5018 TH2F *Gho6 =
new TH2F(
"Gho6",
"", 22, -11., 11., 18, 0., 18.);
5020 TH2F *G20ho60 =
new TH2F(
"G20ho60",
"", 22, -11., 11., 18, 0., 18.);
5021 TH2F *G20ho61 =
new TH2F(
"G20ho61",
"", 22, -11., 11., 18, 0., 18.);
5022 TH2F *G20ho6 =
new TH2F(
"G20ho6",
"", 22, -11., 11., 18, 0., 18.);
5023 TH2F *G30ho60 =
new TH2F(
"G30ho60",
"", 22, -11., 11., 18, 0., 18.);
5024 TH2F *G30ho61 =
new TH2F(
"G30ho61",
"", 22, -11., 11., 18, 0., 18.);
5025 TH2F *G30ho6 =
new TH2F(
"G30ho6",
"", 22, -11., 11., 18, 0., 18.);
5026 TH2F *G40ho60 =
new TH2F(
"G40ho60",
"", 22, -11., 11., 18, 0., 18.);
5027 TH2F *G40ho61 =
new TH2F(
"G40ho61",
"", 22, -11., 11., 18, 0., 18.);
5028 TH2F *G40ho6 =
new TH2F(
"G40ho6",
"", 22, -11., 11., 18, 0., 18.);
5035 double meanjHO = 0.;
5036 for (
int j = 1;
j <= ny;
j++) {
5037 ccc0HO = Gho1->GetBinContent(1,
j);
5039 for (
int i = 1;
i <= nx;
i++) {
5040 double ccc2 = Gho1->GetBinContent(
i,
j);
5047 for (
int i = 1;
i <= nx;
i++) {
5048 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5054 meanjHO = sumjHO / njHO;
5058 double ssumjHO = 0.;
5060 double sigmajHO = 0.;
5061 for (
int j = 1;
j <= ny;
j++) {
5062 ccc0HO = Gho1->GetBinContent(1,
j);
5064 for (
int i = 1;
i <= nx;
i++) {
5065 double ccc2 = Gho1->GetBinContent(
i,
j);
5072 for (
int i = 1;
i <= nx;
i++) {
5073 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5075 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5079 sigmajHO =
sqrt(ssumjHO / njHO);
5083 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5084 if (dif3rmsHOMIN < 0.)
5086 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5087 cout <<
"22HO-2 meanjHO= " << meanjHO <<
" sigmajHO= " << sigmajHO <<
" dif3rmsHOMIN= " << dif3rmsHOMIN
5088 <<
" dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5090 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5091 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5092 if (MAXdif3rmsHOMIN < 0.95)
5093 MAXdif3rmsHOMIN = 0.95;
5094 if (MINdif3rmsHOMAX > 1.05)
5095 MINdif3rmsHOMAX = 1.05;
5096 cout <<
"22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5098 for (
int j = 1;
j <= ny;
j++) {
5099 ccc0HO = Gho1->GetBinContent(1,
j);
5101 for (
int i = 1;
i <= nx;
i++) {
5102 double ccc2 = Gho1->GetBinContent(
i,
j);
5109 int jeta = (
j - 1) / 18;
5110 int jphi = (
j - 1) - 18 * jeta;
5112 for (
int i = 1;
i <= nx;
i++) {
5113 double ccc1 = Gho1->GetBinContent(
i,
j);
5115 double Rij = ccc1 / ccc0HO;
5116 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5117 Gho61->Fill(jeta - 11, jphi, Rij);
5118 Gho60->Fill(jeta - 11, jphi, 1.);
5120 if (Rij < 0.8 || Rij > 1.2) {
5121 G20ho61->Fill(jeta - 11, jphi, Rij);
5122 G20ho60->Fill(jeta - 11, jphi, 1.);
5124 if (Rij < 0.7 || Rij > 1.3) {
5125 G30ho61->Fill(jeta - 11, jphi, Rij);
5126 G30ho60->Fill(jeta - 11, jphi, 1.);
5128 if (Rij < 0.6 || Rij > 1.4) {
5129 G40ho61->Fill(jeta - 11, jphi, Rij);
5130 G40ho60->Fill(jeta - 11, jphi, 1.);
5136 Gho6->Divide(Gho61, Gho60, 1, 1,
"B");
5137 G20ho6->Divide(G20ho61, G20ho60, 1, 1,
"B");
5138 G30ho6->Divide(G30ho61, G30ho60, 1, 1,
"B");
5139 G40ho6->Divide(G40ho61, G40ho60, 1, 1,
"B");
5142 Gho6->GetZaxis()->SetLabelSize(0.025);
5144 Gho6->SetXTitle(
" #eta \b");
5145 Gho6->SetYTitle(
" #phi \b");
5147 "<Rj> for |1-<R>| > 0.05 \b");
5153 TH1F *Gho7 =
new TH1F(
"Gho7",
"", 120, 0.4, 1.6);
5155 for (
int j = 1;
j <= ny;
j++) {
5156 ccc0HO = Gho1->GetBinContent(1,
j);
5158 for (
int i = 1;
i <= nx;
i++) {
5159 double ccc2 = Gho1->GetBinContent(
i,
j);
5167 for (
int i = 1;
i <= nx;
i++) {
5168 double ccc1 = Gho1->GetBinContent(
i,
j);
5170 double Rij = ccc1 / ccc0HO;
5176 Gho7->SetMarkerStyle(20);
5177 Gho7->SetMarkerSize(0.4);
5178 Gho7->GetYaxis()->SetLabelSize(0.04);
5179 Gho7->SetMarkerColor(2);
5180 Gho7->SetLineColor(0);
5181 Gho7->SetYTitle(
" N \b");
5182 Gho7->SetXTitle(
" Rij \b");
5183 Gho7->SetTitle(
" Rij \b");
5188 Gho7->GetYaxis()->SetLabelSize(0.025);
5189 Gho7->Draw(
"Error");
5190 Float_t ymaxHO = Gho7->GetMaximum();
5191 cout <<
"22HO-3 ymaxHO= " << ymaxHO <<
" MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5192 <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5193 TLine *lineHO =
new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5194 lineHO->SetLineColor(kBlue);
5196 TLine *line1HO =
new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5197 line1HO->SetLineColor(kBlue);
5202 cRBX31->Print(
"RBX-HO-3plots.png");
5237 gStyle->SetOptStat(1110000);
5238 cout <<
" RBX HO Ratio plotsmore *****" << endl;
5241 cRBX31->Divide(3, 1);
5244 G20ho6->GetZaxis()->SetLabelSize(0.025);
5245 G20ho6->SetXTitle(
" #eta \b");
5246 G20ho6->SetYTitle(
" #phi \b");
5247 G20ho6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5248 G20ho6->SetStats(0);
5249 G20ho6->Draw(
"COLZ");
5252 G30ho6->GetZaxis()->SetLabelSize(0.025);
5253 G30ho6->SetXTitle(
" #eta \b");
5254 G30ho6->SetYTitle(
" #phi \b");
5255 G30ho6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5256 G30ho6->SetStats(0);
5257 G30ho6->Draw(
"COLZ");
5260 G40ho6->GetZaxis()->SetLabelSize(0.025);
5261 G40ho6->SetXTitle(
" #eta \b");
5262 G40ho6->SetYTitle(
" #phi \b");
5263 G40ho6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5264 G40ho6->SetStats(0);
5265 G40ho6->Draw(
"COLZ");
5270 cRBX31->Print(
"RBX-HO-3plotsmore.png");
5280 gStyle->SetOptStat(0);
5283 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5284 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5285 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5286 for (
int jphi = 0; jphi < njphi; jphi++) {
5287 for (
int jeta = 0; jeta < njeta; jeta++) {
5288 for (
int i = 0;
i < nx;
i++) {
5289 alexall[jeta][jphi][
i] = 0.;
5300 cout <<
" RBX general for HF **************************" << endl;
5301 TH2F *Ghf1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs3");
5302 TH2F *Ghf1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs30");
5303 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone(
"Ghf1");
5304 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1,
"B");
5308 ny = Ghf1->GetYaxis()->GetNbins();
5309 for (
int j = 1;
j <= ny;
j++) {
5310 int jeta = (
j - 1) / njphi;
5311 if (jeta < 4 || jeta > 17) {
5312 int jphi = (
j - 1) - njphi * jeta;
5315 for (
int i = 1;
i <= nx;
i++) {
5316 double ccc1 = Ghf1->GetBinContent(
i,
j);
5317 alexall[jeta][jphi][
i - 1] = ccc1;
5330 for (
int jphi = 0; jphi < njphi; jphi++) {
5331 for (
int i = 0;
i < nx;
i++) {
5332 double sumccc1 = 0.;
5334 for (
int jeta = 0; jeta < njeta; jeta++) {
5335 double ccc1 = alexall[jeta][jphi][
i];
5343 alexhf[jphi][
i] = sumccc1;
5347 for (
int keta = 0; keta < njeta; keta++) {
5348 for (
int i = 0;
i < nx;
i++) {
5349 double sumccc1 = 0.;
5351 for (
int kphi = 0; kphi < njphi; kphi++) {
5352 double ccc1 = alexall[keta][kphi][
i];
5360 blexhf[keta][
i] = sumccc1;
5369 cout <<
" RBX HF 2D plot *****" << endl;
5372 cRBX1->Divide(1, 1);
5375 TH2F *Ghf42D =
new TH2F(
"Ghf42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
5376 TH2F *Ghf42D0 =
new TH2F(
"Ghf42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
5379 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone(
"Ghf42DF");
5380 for (
int jphi = 0; jphi < njphi; jphi++) {
5381 for (
int jeta = 0; jeta < njeta; jeta++) {
5382 for (
int i = 0;
i < nx;
i++) {
5383 double ccc1 = alexall[jeta][jphi][
i];
5384 int neweta = jeta - 11 - 0.5;
5386 neweta = jeta - 11 + 1.5;
5388 Ghf42D->Fill(neweta, jphi, ccc1);
5389 Ghf42D0->Fill(neweta, jphi, 1.);
5395 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1,
"B");
5399 Ghf42DF->SetMarkerStyle(20);
5400 Ghf42DF->SetMarkerSize(0.4);
5401 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5402 Ghf42DF->SetXTitle(
"<A>_RBX #eta \b");
5403 Ghf42DF->SetYTitle(
" #phi \b");
5404 Ghf42DF->SetZTitle(
"<A>_RBX - All \b");
5405 Ghf42DF->SetMarkerColor(2);
5406 Ghf42DF->SetLineColor(2);
5407 Ghf42DF->Draw(
"COLZ");
5411 cRBX1->Print(
"RBX-HF-2Dplot.png");
5426 cout <<
" RBX HF 1D plot *****" << endl;
5429 cRBX1->Divide(1, 1);
5431 TH1F *GphiHF1D =
new TH1F(
"GphiHF1D",
"", 18, 0., 18.);
5432 TH1F *GphiHF1D0 =
new TH1F(
"GphiHF1D0",
"", 18, 0., 18.);
5433 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone(
"GphiHF1DF");
5434 for (
int jphi = 0; jphi < 18; jphi++) {
5435 for (
int jeta = 0; jeta < 22; jeta++) {
5436 for (
int i = 0;
i < nx;
i++) {
5437 double ccc1 = alexall[jeta][jphi][
i];
5439 GphiHF1D->Fill(jphi, ccc1);
5440 GphiHF1D0->Fill(jphi, 1.);
5446 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1,
"B");
5448 for (
int jphi = 1; jphi < 19; jphi++) {
5449 GphiHF1DF->SetBinError(jphi, 0.01);
5453 GphiHF1DF->SetMarkerStyle(20);
5454 GphiHF1DF->SetMarkerSize(1.4);
5455 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5456 GphiHF1DF->SetXTitle(
"PHI of RBX\b");
5457 GphiHF1DF->SetYTitle(
" <Amplitude> \b");
5458 GphiHF1DF->SetZTitle(
"<A>_PHI - All \b");
5459 GphiHF1DF->SetMarkerColor(4);
5460 GphiHF1DF->SetLineColor(4);
5461 GphiHF1DF->SetMinimum(0.8);
5462 GphiHF1DF->Draw(
"Error");
5465 cRBX1->Print(
"RBX-HF-1Dplot.png");
5480 cout <<
" RBX HF 11D plot *eta*" << endl;
5483 cRBX1->Divide(1, 1);
5485 TH1F *GetaHF11D =
new TH1F(
"GetaHF11D",
"", 23, -11.5, 11.5);
5486 TH1F *GetaHF11D0 =
new TH1F(
"GetaHF11D0",
"", 23, -11.5, 11.5);
5487 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone(
"GetaHF11DF");
5489 for (
int jeta = 0; jeta < 22; jeta++) {
5490 for (
int jphi = 0; jphi < 18; jphi++) {
5491 for (
int i = 0;
i < nx;
i++) {
5492 double ccc1 = alexall[jeta][jphi][
i];
5493 int neweta = jeta - 11 - 0.5;
5495 neweta = jeta - 11 + 1.5;
5497 GetaHF11D->Fill(neweta, ccc1);
5498 GetaHF11D0->Fill(neweta, 1.);
5505 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1,
"B");
5507 for (
int jeta = 1; jeta < 24; jeta++) {
5508 GetaHF11DF->SetBinError(jeta, 0.01);
5512 GetaHF11DF->SetMarkerStyle(20);
5513 GetaHF11DF->SetMarkerSize(1.4);
5514 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5515 GetaHF11DF->SetXTitle(
"#eta \b");
5516 GetaHF11DF->SetYTitle(
" <A> \b");
5517 GetaHF11DF->SetZTitle(
"<A>_ETA - All \b");
5518 GetaHF11DF->SetMarkerColor(4);
5519 GetaHF11DF->SetLineColor(4);
5520 GetaHF11DF->SetMinimum(0.8);
5521 GetaHF11DF->Draw(
"Error");
5525 cRBX1->Print(
"RBX-HF-11Dplot.png");
5541 gStyle->SetOptStat(1110000);
5542 cout <<
" RBX HF Ratio plots *****" << endl;
5551 cRBX31->Divide(3, 1);
5555 TH1F *Ghf51 =
new TH1F(
"Ghf51",
"", nx, 1., nx + 1.);
5556 TH1F *Ghf50 =
new TH1F(
"Ghf50",
"", nx, 1., nx + 1.);
5557 TH1F *Ghf5 = (TH1F *)Ghf50->Clone(
"Ghf5");
5559 for (
int j = 1;
j <= ny;
j++) {
5560 ccc0HF = Ghf1->GetBinContent(1,
j);
5563 for (
int i = 1;
i <= nx;
i++) {
5564 double ccc2 = Ghf1->GetBinContent(
i,
j);
5572 for (
int i = 1;
i <= nx;
i++) {
5573 double ccc1 = Ghf1->GetBinContent(
i,
j);
5575 double Rij = ccc1 / ccc0HF;
5577 Ghf51->Fill(
float(
i), Rij);
5578 Ghf50->Fill(
float(
i), 1.);
5583 Ghf5->Divide(Ghf51, Ghf50, 1, 1,
"B");
5584 for (
int i = 1;
i <= nx;
i++) {
5585 Ghf5->SetBinError(
i, 0.0001);
5587 Ghf5->SetMarkerStyle(20);
5588 Ghf5->SetMarkerSize(0.4);
5589 Ghf5->GetYaxis()->SetLabelSize(0.04);
5590 Ghf5->SetMarkerColor(2);
5591 Ghf5->SetLineColor(0);
5592 Ghf5->SetXTitle(
" iLS \b");
5593 Ghf5->SetYTitle(
" <R> \b");
5594 Ghf5->SetTitle(
"<Ri> vs iLS \b");
5595 Ghf5->SetMinimum(0.);
5600 Ghf5->GetYaxis()->SetLabelSize(0.025);
5601 Ghf5->Draw(
"Error");
5604 TH2F *Ghf60 =
new TH2F(
"Ghf60",
"", 22, -11., 11., 18, 0., 18.);
5605 TH2F *Ghf61 =
new TH2F(
"Ghf61",
"", 22, -11., 11., 18, 0., 18.);
5606 TH2F *Ghf6 =
new TH2F(
"Ghf6",
"", 22, -11., 11., 18, 0., 18.);
5608 TH2F *G20hf60 =
new TH2F(
"G20hf60",
"", 22, -11., 11., 18, 0., 18.);
5609 TH2F *G20hf61 =
new TH2F(
"G20hf61",
"", 22, -11., 11., 18, 0., 18.);
5610 TH2F *G20hf6 =
new TH2F(
"G20hf6",
"", 22, -11., 11., 18, 0., 18.);
5611 TH2F *G30hf60 =
new TH2F(
"G30hf60",
"", 22, -11., 11., 18, 0., 18.);
5612 TH2F *G30hf61 =
new TH2F(
"G30hf61",
"", 22, -11., 11., 18, 0., 18.);
5613 TH2F *G30hf6 =
new TH2F(
"G30hf6",
"", 22, -11., 11., 18, 0., 18.);
5614 TH2F *G40hf60 =
new TH2F(
"G40hf60",
"", 22, -11., 11., 18, 0., 18.);
5615 TH2F *G40hf61 =
new TH2F(
"G40hf61",
"", 22, -11., 11., 18, 0., 18.);
5616 TH2F *G40hf6 =
new TH2F(
"G40hf6",
"", 22, -11., 11., 18, 0., 18.);
5622 double meanjHF = 0.;
5623 for (
int j = 1;
j <= ny;
j++) {
5624 ccc0HF = Ghf1->GetBinContent(1,
j);
5626 for (
int i = 1;
i <= nx;
i++) {
5627 double ccc2 = Ghf1->GetBinContent(
i,
j);
5634 for (
int i = 1;
i <= nx;
i++) {
5635 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5641 meanjHF = sumjHF / njHF;
5645 double ssumjHF = 0.;
5647 double sigmajHF = 0.;
5648 for (
int j = 1;
j <= ny;
j++) {
5649 ccc0HF = Ghf1->GetBinContent(1,
j);
5651 for (
int i = 1;
i <= nx;
i++) {
5652 double ccc2 = Ghf1->GetBinContent(
i,
j);
5659 for (
int i = 1;
i <= nx;
i++) {
5660 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5662 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5666 sigmajHF =
sqrt(ssumjHF / njHF);
5670 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5671 if (dif3rmsHFMIN < 0.)
5673 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5674 cout <<
"22HF-2 meanjHF= " << meanjHF <<
" sigmajHF= " << sigmajHF <<
" dif3rmsHFMIN= " << dif3rmsHFMIN
5675 <<
" dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5677 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5678 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5679 if (MAXdif3rmsHFMIN < 0.95)
5680 MAXdif3rmsHFMIN = 0.95;
5681 if (MINdif3rmsHFMAX > 1.05)
5682 MINdif3rmsHFMAX = 1.05;
5683 cout <<
"22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5685 for (
int j = 1;
j <= ny;
j++) {
5686 ccc0HF = Ghf1->GetBinContent(1,
j);
5688 for (
int i = 1;
i <= nx;
i++) {
5689 double ccc2 = Ghf1->GetBinContent(
i,
j);
5696 int jeta = (
j - 1) / 18;
5697 int jphi = (
j - 1) - 18 * jeta;
5699 for (
int i = 1;
i <= nx;
i++) {
5700 double ccc1 = Ghf1->GetBinContent(
i,
j);
5702 double Rij = ccc1 / ccc0HF;
5703 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5704 Ghf61->Fill(jeta - 11, jphi, Rij);
5705 Ghf60->Fill(jeta - 11, jphi, 1.);
5707 if (Rij < 0.8 || Rij > 1.2) {
5708 G20hf61->Fill(jeta - 11, jphi, Rij);
5709 G20hf60->Fill(jeta - 11, jphi, 1.);
5711 if (Rij < 0.7 || Rij > 1.3) {
5712 G30hf61->Fill(jeta - 11, jphi, Rij);
5713 G30hf60->Fill(jeta - 11, jphi, 1.);
5715 if (Rij < 0.6 || Rij > 1.4) {
5716 G40hf61->Fill(jeta - 11, jphi, Rij);
5717 G40hf60->Fill(jeta - 11, jphi, 1.);
5723 Ghf6->Divide(Ghf61, Ghf60, 1, 1,
"B");
5724 G20hf6->Divide(G20hf61, G20hf60, 1, 1,
"B");
5725 G30hf6->Divide(G30hf61, G30hf60, 1, 1,
"B");
5726 G40hf6->Divide(G40hf61, G40hf60, 1, 1,
"B");
5729 Ghf6->GetZaxis()->SetLabelSize(0.025);
5731 Ghf6->SetXTitle(
" #eta \b");
5732 Ghf6->SetYTitle(
" #phi \b");
5734 "<Rj> for |1-<R>| > 0.05 \b");
5740 TH1F *Ghf7 =
new TH1F(
"Ghf7",
"", 120, 0.4, 1.6);
5742 for (
int j = 1;
j <= ny;
j++) {
5743 ccc0HF = Ghf1->GetBinContent(1,
j);
5745 for (
int i = 1;
i <= nx;
i++) {
5746 double ccc2 = Ghf1->GetBinContent(
i,
j);
5754 for (
int i = 1;
i <= nx;
i++) {
5755 double ccc1 = Ghf1->GetBinContent(
i,
j);
5757 double Rij = ccc1 / ccc0HF;
5763 Ghf7->SetMarkerStyle(20);
5764 Ghf7->SetMarkerSize(0.4);
5765 Ghf7->GetYaxis()->SetLabelSize(0.04);
5766 Ghf7->SetMarkerColor(2);
5767 Ghf7->SetLineColor(0);
5768 Ghf7->SetYTitle(
" N \b");
5769 Ghf7->SetXTitle(
" Rij \b");
5770 Ghf7->SetTitle(
" Rij \b");
5775 Ghf7->GetYaxis()->SetLabelSize(0.025);
5776 Ghf7->Draw(
"Error");
5777 Float_t ymaxHF = Ghf7->GetMaximum();
5778 cout <<
"22HF-3 ymaxHF= " << ymaxHF <<
" MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5779 <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5780 TLine *lineHF =
new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5781 lineHF->SetLineColor(kBlue);
5783 TLine *line1HF =
new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5784 line1HF->SetLineColor(kBlue);
5789 cRBX31->Print(
"RBX-HF-3plots.png");
5824 gStyle->SetOptStat(1110000);
5825 cout <<
" RBX HF Ratio plotsmore *****" << endl;
5828 cRBX31->Divide(3, 1);
5831 G20hf6->GetZaxis()->SetLabelSize(0.025);
5832 G20hf6->SetXTitle(
" #eta \b");
5833 G20hf6->SetYTitle(
" #phi \b");
5834 G20hf6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5835 G20hf6->SetStats(0);
5836 G20hf6->Draw(
"COLZ");
5839 G30hf6->GetZaxis()->SetLabelSize(0.025);
5840 G30hf6->SetXTitle(
" #eta \b");
5841 G30hf6->SetYTitle(
" #phi \b");
5842 G30hf6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5843 G30hf6->SetStats(0);
5844 G30hf6->Draw(
"COLZ");
5847 G40hf6->GetZaxis()->SetLabelSize(0.025);
5848 G40hf6->SetXTitle(
" #eta \b");
5849 G40hf6->SetYTitle(
" #phi \b");
5850 G40hf6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5851 G40hf6->SetStats(0);
5852 G40hf6->Draw(
"COLZ");
5857 cRBX31->Print(
"RBX-HF-3plotsmore.png");
5867 gStyle->SetOptStat(0);
5869 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5870 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5871 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5879 int mymaxbins = MaxLum;
5885 TH2F *occhbm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBM");
5886 TH1F *uyhbm =
new TH1F(
"uyhbm",
"", mymaxbins, 1., mymaxbins + 1.);
5887 for (
int i = 1;
i <= occhbm->GetXaxis()->GetNbins();
i++) {
5888 double ccc1 = occhbm->GetBinContent(
i);
5891 uyhbm->Fill(
float(
i), ccc1);
5894 uyhbm->SetMarkerStyle(20);
5895 uyhbm->SetMarkerSize(0.6);
5896 uyhbm->GetYaxis()->SetLabelSize(0.04);
5897 uyhbm->SetXTitle(
"min/av occupancy - HBM \b");
5898 uyhbm->SetMarkerColor(2);
5899 uyhbm->SetLineColor(0);
5900 uyhbm->SetMaximum(1.0);
5901 uyhbm->SetMinimum(0.2);
5903 uyhbm->Draw(
"Error");
5906 TH2F *occhbp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBP");
5907 TH1F *uyhbp =
new TH1F(
"uyhbp",
"", mymaxbins, 1., mymaxbins + 1.);
5908 for (
int i = 1;
i <= occhbp->GetXaxis()->GetNbins();
i++) {
5909 double ccc1 = occhbp->GetBinContent(
i);
5912 uyhbp->Fill(
float(
i), ccc1);
5915 uyhbp->SetMarkerStyle(20);
5916 uyhbp->SetMarkerSize(0.6);
5917 uyhbp->GetYaxis()->SetLabelSize(0.04);
5918 uyhbp->SetXTitle(
"min/av occupancy - HBP \b");
5919 uyhbp->SetMarkerColor(2);
5920 uyhbp->SetLineColor(0);
5921 uyhbp->SetMaximum(1.0);
5922 uyhbp->SetMinimum(0.2);
5924 uyhbp->Draw(
"Error");
5929 cHB->Print(Form(
"OccPlots_HB.png"));
5949 TH2F *occhem = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEM");
5950 TH1F *uyhem =
new TH1F(
"uyhem",
"", mymaxbins, 1., mymaxbins + 1.);
5951 for (
int i = 1;
i <= occhem->GetXaxis()->GetNbins();
i++) {
5952 double ccc1 = occhem->GetBinContent(
i);
5955 uyhem->Fill(
float(
i), ccc1);
5958 uyhem->SetMarkerStyle(20);
5959 uyhem->SetMarkerSize(0.6);
5960 uyhem->GetYaxis()->SetLabelSize(0.04);
5961 uyhem->SetXTitle(
"min/av occupancy - HEM \b");
5962 uyhem->SetMarkerColor(2);
5963 uyhem->SetLineColor(0);
5964 uyhem->SetMaximum(1.0);
5965 uyhem->SetMinimum(0.2);
5967 uyhem->Draw(
"Error");
5970 TH2F *occhep = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEP");
5971 TH1F *uyhep =
new TH1F(
"uyhep",
"", mymaxbins, 1., mymaxbins + 1.);
5972 for (
int i = 1;
i <= occhep->GetXaxis()->GetNbins();
i++) {
5973 double ccc1 = occhep->GetBinContent(
i);
5976 uyhep->Fill(
float(
i), ccc1);
5979 uyhep->SetMarkerStyle(20);
5980 uyhep->SetMarkerSize(0.6);
5981 uyhep->GetYaxis()->SetLabelSize(0.04);
5982 uyhep->SetXTitle(
"min/av occupancy - HEP \b");
5983 uyhep->SetMarkerColor(2);
5984 uyhep->SetLineColor(0);
5985 uyhep->SetMaximum(1.0);
5986 uyhep->SetMinimum(0.2);
5988 uyhep->Draw(
"Error");
5993 cHB->Print(Form(
"OccPlots_HE.png"));
6013 TH2F *occhom = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOM");
6014 TH1F *uyhom =
new TH1F(
"uyhom",
"", mymaxbins, 1., mymaxbins + 1.);
6015 for (
int i = 1;
i <= occhom->GetXaxis()->GetNbins();
i++) {
6016 double ccc1 = occhom->GetBinContent(
i);
6019 uyhom->Fill(
float(
i), ccc1);
6022 uyhom->SetMarkerStyle(20);
6023 uyhom->SetMarkerSize(0.6);
6024 uyhom->GetYaxis()->SetLabelSize(0.04);
6025 uyhom->SetXTitle(
"min/av occupancy - HOM \b");
6026 uyhom->SetMarkerColor(2);
6027 uyhom->SetLineColor(0);
6028 uyhom->SetMaximum(1.0);
6029 uyhom->SetMinimum(0.2);
6031 uyhom->Draw(
"Error");
6034 TH2F *occhop = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOP");
6035 TH1F *uyhop =
new TH1F(
"uyhop",
"", mymaxbins, 1., mymaxbins + 1.);
6036 for (
int i = 1;
i <= occhop->GetXaxis()->GetNbins();
i++) {
6037 double ccc1 = occhop->GetBinContent(
i);
6040 uyhop->Fill(
float(
i), ccc1);
6043 uyhop->SetMarkerStyle(20);
6044 uyhop->SetMarkerSize(0.6);
6045 uyhop->GetYaxis()->SetLabelSize(0.04);
6046 uyhop->SetXTitle(
"min/av occupancy - HOP \b");
6047 uyhop->SetMarkerColor(2);
6048 uyhop->SetLineColor(0);
6049 uyhop->SetMaximum(1.0);
6050 uyhop->SetMinimum(0.2);
6052 uyhop->Draw(
"Error");
6057 cHB->Print(Form(
"OccPlots_HO.png"));
6077 TH2F *occhfm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFM");
6078 TH1F *uyhfm =
new TH1F(
"uyhfm",
"", mymaxbins, 1., mymaxbins + 1.);
6079 for (
int i = 1;
i <= occhfm->GetXaxis()->GetNbins();
i++) {
6080 double ccc1 = occhfm->GetBinContent(
i);
6083 uyhfm->Fill(
float(
i), ccc1);
6086 uyhfm->SetMarkerStyle(20);
6087 uyhfm->SetMarkerSize(0.6);
6088 uyhfm->GetYaxis()->SetLabelSize(0.04);
6089 uyhfm->SetXTitle(
"min/av occupancy - HFM \b");
6090 uyhfm->SetMarkerColor(2);
6091 uyhfm->SetLineColor(0);
6092 uyhfm->SetMaximum(1.0);
6093 uyhfm->SetMinimum(0.2);
6095 uyhfm->Draw(
"Error");
6098 TH2F *occhfp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFP");
6099 TH1F *uyhfp =
new TH1F(
"uyhfp",
"", mymaxbins, 1., mymaxbins + 1.);
6100 for (
int i = 1;
i <= occhfp->GetXaxis()->GetNbins();
i++) {
6101 double ccc1 = occhfp->GetBinContent(
i);
6104 uyhfp->Fill(
float(
i), ccc1);
6107 uyhfp->SetMarkerStyle(20);
6108 uyhfp->SetMarkerSize(0.6);
6109 uyhfp->GetYaxis()->SetLabelSize(0.04);
6110 uyhfp->SetXTitle(
"min/av occupancy - HFP \b");
6111 uyhfp->SetMarkerColor(2);
6112 uyhfp->SetLineColor(0);
6113 uyhfp->SetMaximum(1.0);
6114 uyhfp->SetMinimum(0.2);
6116 uyhfp->Draw(
"Error");
6121 cHB->Print(Form(
"OccPlots_HF.png"));
6134 std::cout <<
"************>>> occupancy plots done" << std::endl;
6141 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots " << endl;
6142 int maxbins = MaxLum;
6143 cout <<
">>>> maxbins = " << maxbins << endl;
6144 TH1F *SummedAmplitudeHisto[4];
6145 SummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HB");
6146 SummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HE");
6147 SummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HO");
6148 SummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HF");
6149 TH1F *SummedAmplitudeOccupancyHisto[4];
6150 SummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HB");
6151 SummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HE");
6152 SummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HO");
6153 SummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HF");
6154 for (
int sub = 0; sub < 4; sub++) {
6158 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6160 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6162 if (SummedAmplitudeHisto[sub])
6163 ccc1 = SummedAmplitudeHisto[sub]->GetBinContent(
i);
6166 kslpq->Fill(
float(
i), ccc1);
6169 kslpq->SetMarkerStyle(20);
6170 kslpq->SetMarkerSize(0.8);
6171 kslpq->GetYaxis()->SetLabelSize(0.04);
6172 kslpq->SetXTitle(
"SumA of channels w/ signal per LS \b");
6173 kslpq->SetMarkerColor(2);
6174 kslpq->SetLineColor(0);
6177 kslpq->Draw(
"Error");
6180 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6181 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6183 if (SummedAmplitudeOccupancyHisto[sub])
6184 ccc1 = SummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6187 pqmks->Fill(
float(
i), ccc1);
6190 pqmks->SetMarkerStyle(20);
6191 pqmks->SetMarkerSize(0.8);
6192 pqmks->GetYaxis()->SetLabelSize(0.04);
6193 pqmks->SetXTitle(
"Occupancy of channels w/ signal per LS \b");
6194 pqmks->SetMarkerColor(4);
6195 pqmks->SetLineColor(0);
6198 pqmks->Draw(
"Error");
6201 cHE->Print(
"SummedAmplitudesSignal_HB.png");
6203 cHE->Print(
"SummedAmplitudesSignal_HE.png");
6205 cHE->Print(
"SummedAmplitudesSignal_HO.png");
6207 cHE->Print(
"SummedAmplitudesSignal_HF.png");
6220 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots NoSignal " << endl;
6221 TH1F *NoSignalSummedAmplitudeHisto[4];
6222 NoSignalSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HB");
6223 NoSignalSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HE");
6224 NoSignalSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HO");
6225 NoSignalSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HF");
6226 TH1F *NoSignalSummedAmplitudeOccupancyHisto[4];
6227 NoSignalSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HB");
6228 NoSignalSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HE");
6229 NoSignalSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HO");
6230 NoSignalSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HF");
6231 for (
int sub = 0; sub < 4; sub++) {
6236 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6237 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6239 if (NoSignalSummedAmplitudeHisto[sub])
6240 ccc1 = NoSignalSummedAmplitudeHisto[sub]->GetBinContent(
i);
6243 kslpq->Fill(
float(
i), ccc1);
6246 kslpq->SetMarkerStyle(20);
6247 kslpq->SetMarkerSize(0.8);
6248 kslpq->GetYaxis()->SetLabelSize(0.04);
6249 kslpq->SetXTitle(
"SumA of channels w/o signal per LS \b");
6250 kslpq->SetMarkerColor(2);
6251 kslpq->SetLineColor(0);
6253 kslpq->SetMaximum(20000.);
6254 kslpq->SetMinimum(5000.);
6255 }
else if (sub == 1) {
6256 kslpq->SetMaximum(40000.);
6257 kslpq->SetMinimum(0.);
6258 }
else if (sub == 2) {
6259 kslpq->SetMaximum(10000.);
6260 kslpq->SetMinimum(15000.);
6261 }
else if (sub == 3) {
6262 kslpq->SetMaximum(100000.);
6263 kslpq->SetMinimum(0.);
6266 kslpq->Draw(
"Error");
6269 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6270 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6272 if (NoSignalSummedAmplitudeOccupancyHisto[sub])
6273 ccc1 = NoSignalSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6276 pqmks->Fill(
float(
i), ccc1);
6279 pqmks->SetMarkerStyle(20);
6280 pqmks->SetMarkerSize(0.8);
6281 pqmks->GetYaxis()->SetLabelSize(0.04);
6282 pqmks->SetXTitle(
"Occupancy of channels w/o signal per LS \b");
6283 pqmks->SetMarkerColor(4);
6284 pqmks->SetLineColor(0);
6286 pqmks->SetMaximum(600.);
6287 pqmks->SetMinimum(200.);
6288 }
else if (sub == 1) {
6289 pqmks->SetMaximum(910.);
6290 pqmks->SetMinimum(10.);
6291 }
else if (sub == 2) {
6292 pqmks->SetMaximum(200.);
6293 pqmks->SetMinimum(50.);
6294 }
else if (sub == 3) {
6295 pqmks->SetMaximum(866.);
6296 pqmks->SetMinimum(856.);
6299 pqmks->Draw(
"Error");
6302 cHE->Print(
"NoSignalSummedAmplitudes_HB.png");
6304 cHE->Print(
"NoSignalSummedAmplitudes_HE.png");
6306 cHE->Print(
"NoSignalSummedAmplitudes_HO.png");
6308 cHE->Print(
"NoSignalSummedAmplitudes_HF.png");
6322 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots Maxx " << endl;
6323 TH1F *MaxxSummedAmplitudeHisto[4];
6324 MaxxSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HB");
6325 MaxxSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HE");
6326 MaxxSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HO");
6327 MaxxSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HF");
6328 TH1F *MaxxSummedAmplitudeOccupancyHisto[4];
6329 MaxxSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HB");
6330 MaxxSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HE");
6331 MaxxSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HO");
6332 MaxxSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HF");
6333 TH1F *SAmplitudeHisto[4];
6334 SAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_eventamplitude_HB");
6335 SAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_eventamplitude_HE");
6336 SAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_eventamplitude_HO");
6337 SAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_eventamplitude_HF");
6338 TH1F *OccupancyHisto[4];
6339 OccupancyHisto[0] = (TH1F *)hfile->Get(
"h_eventoccupancy_HB");
6340 OccupancyHisto[1] = (TH1F *)hfile->Get(
"h_eventoccupancy_HE");
6341 OccupancyHisto[2] = (TH1F *)hfile->Get(
"h_eventoccupancy_HO");
6342 OccupancyHisto[3] = (TH1F *)hfile->Get(
"h_eventoccupancy_HF");
6344 int countamplmaxHB = 0;
6345 int countamplmaxHE = 0;
6346 int countamplmaxHO = 0;
6347 int countamplmaxHF = 0;
6348 int countoccumaxHB = 0;
6349 int countoccumaxHE = 0;
6350 int countoccumaxHO = 0;
6351 int countoccumaxHF = 0;
6352 unsigned long int countamplHB = 0;
6353 unsigned long int countamplHE = 0;
6354 unsigned long int countamplHO = 0;
6355 unsigned long int countamplHF = 0;
6356 unsigned long int countoccuHB = 0;
6357 unsigned long int countoccuHE = 0;
6358 unsigned long int countoccuHO = 0;
6359 unsigned long int countoccuHF = 0;
6360 gStyle->SetOptStat(110000);
6361 for (
int sub = 0; sub < 4; sub++) {
6363 cFour->Divide(2, 2);
6366 TH1F *lpqxc =
new TH1F(
"lpqxc",
"", maxbins, 1., maxbins + 1.);
6367 for (
int i = 1;
i <= lpqxc->GetXaxis()->GetNbins();
i++) {
6369 if (MaxxSummedAmplitudeHisto[sub])
6370 ccc1 = MaxxSummedAmplitudeHisto[sub]->GetBinContent(
i);
6373 lpqxc->Fill(
float(
i), ccc1);
6374 if (sub == 0 && ccc1 > 60000.)
6376 if (sub == 1 && ccc1 > 60000.)
6378 if (sub == 2 && ccc1 > 150000.)
6380 if (sub == 3 && ccc1 > 22000.)
6384 lpqxc->SetMarkerStyle(20);
6385 lpqxc->SetMarkerSize(0.8);
6388 lpqxc->SetXTitle(
"HB: max SA over LS-events per LS \b");
6390 lpqxc->SetXTitle(
"HE: max SA over LS-events per LS \b");
6392 lpqxc->SetXTitle(
"HO: max SA over LS-events per LS \b");
6394 lpqxc->SetXTitle(
"HF: max SA over LS-events per LS \b");
6395 lpqxc->SetMarkerColor(2);
6396 lpqxc->SetLineColor(0);
6398 lpqxc->Draw(
"Error");
6402 TH1F *hpzlm =
new TH1F(
"hpzlm",
"", maxbins, 1., maxbins + 1.);
6403 for (
int i = 1;
i <= hpzlm->GetXaxis()->GetNbins();
i++) {
6405 if (MaxxSummedAmplitudeOccupancyHisto[sub])
6406 ccc1 = MaxxSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6409 hpzlm->Fill(
float(
i), ccc1);
6410 if (sub == 0 && ccc1 > 2000.)
6412 if (sub == 1 && ccc1 > 1200.)
6414 if (sub == 2 && ccc1 > 2000.)
6416 if (sub == 3 && ccc1 > 860.)
6420 hpzlm->SetMarkerStyle(20);
6421 hpzlm->SetMarkerSize(0.8);
6424 hpzlm->SetXTitle(
"HB: max Occupancy over LS-events per LS \b");
6426 hpzlm->SetXTitle(
"HE: max Occupancy over LS-events per LS \b");
6428 hpzlm->SetXTitle(
"HO: max Occupancy over LS-events per LS \b");
6430 hpzlm->SetXTitle(
"HF: max Occupancy over LS-events per LS \b");
6431 hpzlm->SetMarkerColor(4);
6432 hpzlm->SetLineColor(0);
6435 hpzlm->SetMaximum(866.);
6436 hpzlm->SetMinimum(856.);
6438 hpzlm->Draw(
"Error");
6443 if (SAmplitudeHisto[sub]) {
6444 for (
int i = 1;
i <= SAmplitudeHisto[sub]->GetXaxis()->GetNbins();
i++) {
6449 if (sub == 0 &&
i * 800 > 60000.)
6450 countamplHB += SAmplitudeHisto[sub]->GetBinContent(
i);
6451 if (sub == 1 &&
i * 1000 > 60000.)
6452 countamplHE += SAmplitudeHisto[sub]->GetBinContent(
i);
6453 if (sub == 2 &&
i * 2500 > 150000.)
6454 countamplHO += SAmplitudeHisto[sub]->GetBinContent(
i);
6455 if (sub == 3 &&
i * 1400 > 22000.)
6456 countamplHF += SAmplitudeHisto[sub]->GetBinContent(
i);
6458 SAmplitudeHisto[sub]->SetMarkerStyle(20);
6459 SAmplitudeHisto[sub]->SetMarkerSize(0.8);
6461 SAmplitudeHisto[sub]->SetTitle(
"HB event Amplitude\b");
6463 SAmplitudeHisto[sub]->SetTitle(
"HE event Amplitude\b");
6465 SAmplitudeHisto[sub]->SetTitle(
"HO event Amplitude\b");
6467 SAmplitudeHisto[sub]->SetTitle(
"HF event Amplitude\b");
6469 SAmplitudeHisto[sub]->SetXTitle(
"event amplitude \b");
6470 SAmplitudeHisto[sub]->SetMarkerColor(2);
6471 SAmplitudeHisto[sub]->SetLineColor(2);
6472 SAmplitudeHisto[sub]->Draw(
"");
6477 if (OccupancyHisto[sub]) {
6478 for (
int i = 1;
i <= OccupancyHisto[sub]->GetXaxis()->GetNbins();
i++) {
6479 if (sub == 0 &&
i * 30 > 2000.)
6480 countoccuHB += OccupancyHisto[sub]->GetBinContent(
i);
6481 if (sub == 1 &&
i * 20 > 1200.)
6482 countoccuHE += OccupancyHisto[sub]->GetBinContent(
i);
6483 if (sub == 2 &&
i * 25 > 2000.)
6484 countoccuHO += OccupancyHisto[sub]->GetBinContent(
i);
6485 if (sub == 3 &&
i * 10 > 860.)
6486 countoccuHF += OccupancyHisto[sub]->GetBinContent(
i);
6488 OccupancyHisto[sub]->SetMarkerStyle(20);
6489 OccupancyHisto[sub]->SetMarkerSize(0.8);
6491 OccupancyHisto[sub]->SetTitle(
"HB event Occupancy\b");
6493 OccupancyHisto[sub]->SetTitle(
"HE event Occupancy\b");
6495 OccupancyHisto[sub]->SetTitle(
"HO event Occupancy\b");
6497 OccupancyHisto[sub]->SetTitle(
"HF event Occupancy\b");
6499 OccupancyHisto[sub]->SetXTitle(
"event occupancy \b");
6500 OccupancyHisto[sub]->SetMarkerColor(4);
6501 OccupancyHisto[sub]->SetLineColor(4);
6502 OccupancyHisto[sub]->Draw(
"");
6507 cFour->Print(
"MaxxSummedAmplitudes_HB.png");
6509 cFour->Print(
"MaxxSummedAmplitudes_HE.png");
6511 cFour->Print(
"MaxxSummedAmplitudes_HO.png");
6513 cFour->Print(
"MaxxSummedAmplitudes_HF.png");
6520 gStyle->SetOptStat(0);
6522 cout <<
">=>=>>=> countamplmaxHB= " << countamplmaxHB <<
" countamplmaxHE= " << countamplmaxHE
6523 <<
" countamplmaxHO= " << countamplmaxHO <<
" countamplmaxHF= " << countamplmaxHF << endl;
6524 cout <<
">=>=>>=> countoccumaxHB= " << countoccumaxHB <<
" countoccumaxHE= " << countoccumaxHE
6525 <<
" countoccumaxHO= " << countoccumaxHO <<
" countoccumaxHF= " << countoccumaxHF << endl;
6526 cout <<
">=>=>>=> countamplHB= " << countamplHB <<
" countamplHE= " << countamplHE <<
" countamplHO= " << countamplHO
6527 <<
" countamplHF= " << countamplHF << endl;
6528 cout <<
">=>=>>=> countoccuHB= " << countoccuHB <<
" countoccuHE= " << countoccuHE <<
" countoccuHO= " << countoccuHO
6529 <<
" countoccuHF= " << countoccuHF << endl;
6534 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>channelsummedA over depths " << endl;
6535 TH1F *ChannelDepthsummedAmplitudesPlots[4];
6536 ChannelDepthsummedAmplitudesPlots[0] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HB");
6537 ChannelDepthsummedAmplitudesPlots[1] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HE");
6538 ChannelDepthsummedAmplitudesPlots[2] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HO");
6539 ChannelDepthsummedAmplitudesPlots[3] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HF");
6541 if (ChannelDepthsummedAmplitudesPlots[0])
6542 litebdt[0] =
new TLine(80., 0.8, 80., ChannelDepthsummedAmplitudesPlots[0]->GetBinContent(4) + 100.);
6543 if (ChannelDepthsummedAmplitudesPlots[1])
6544 litebdt[1] =
new TLine(200., 0.8, 200., ChannelDepthsummedAmplitudesPlots[1]->GetBinContent(7) + 100.);
6545 if (ChannelDepthsummedAmplitudesPlots[2])
6546 litebdt[2] =
new TLine(1200., 0.8, 1200., ChannelDepthsummedAmplitudesPlots[2]->GetBinContent(17) + 100.);
6547 if (ChannelDepthsummedAmplitudesPlots[3])
6548 litebdt[3] =
new TLine(600., 0.8, 600., ChannelDepthsummedAmplitudesPlots[3]->GetBinContent(6) + 100.);
6550 gStyle->SetOptStat(110000);
6552 cFour1->Divide(2, 2);
6553 for (
int sub = 0; sub < 4; sub++) {
6563 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerStyle(20);
6564 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerSize(0.8);
6566 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HB channel Amplitudes\b");
6568 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HE channel Amplitudes\b");
6570 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HO channel Amplitudes\b");
6572 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HF channel Amplitudes\b");
6574 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HB channel depths summed Amplitudes \b");
6576 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HE channel depths summed Amplitudes \b");
6578 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HO channel depths summed Amplitudes \b");
6580 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HF channel depths summed Amplitudes \b");
6581 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerColor(2);
6582 ChannelDepthsummedAmplitudesPlots[sub]->SetLineColor(2);
6583 ChannelDepthsummedAmplitudesPlots[sub]->Draw(
"");
6584 litebdt[sub]->SetLineColor(kBlue);
6585 litebdt[sub]->Draw(
"s");
6588 cFour1->Print(
"ChannelDepthsummedAmplitudes.png");
6590 gStyle->SetOptStat(0);
6595 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>2DAtaildepth " << endl;
6600 TH2F *DAtaildepth1[2];
6601 DAtaildepth1[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth1_HB");
6602 DAtaildepth1[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth1_HB");
6604 if (!DAtaildepth1[0] || !DAtaildepth1[1]) {
6605 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 1" << endl;
6607 TH2F *tail1 = (TH2F *)DAtaildepth1[0]->Clone(
"tail1");
6608 tail1->Divide(DAtaildepth1[0], DAtaildepth1[1], 1, 1,
"B");
6613 tail1->SetMarkerStyle(20);
6614 tail1->SetMarkerSize(0.4);
6615 tail1->SetTitle(
"Amplitudes for tail-events (HBdepth1) \b");
6616 tail1->SetXTitle(
"#eta \b");
6617 tail1->SetYTitle(
"#phi \b");
6618 tail1->SetZTitle(
"2D <A> in the tail - HB Depth1 \b");
6619 tail1->SetMarkerColor(2);
6620 tail1->SetLineColor(2);
6621 tail1->Draw(
"COLZ");
6623 TH2F *DAtaildepth2[2];
6624 DAtaildepth2[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth2_HB");
6625 DAtaildepth2[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth2_HB");
6627 if (!DAtaildepth2[0] || !DAtaildepth2[1]) {
6628 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 2" << endl;
6630 TH2F *tail2 = (TH2F *)DAtaildepth2[0]->Clone(
"tail2");
6631 tail2->Divide(DAtaildepth2[0], DAtaildepth2[1], 1, 1,
"B");
6636 tail2->SetMarkerStyle(20);
6637 tail2->SetMarkerSize(0.4);
6638 tail2->SetTitle(
"Amplitudes for tail-events (HBdepth2) \b");
6639 tail2->SetXTitle(
"#eta \b");
6640 tail2->SetYTitle(
"#phi \b");
6641 tail2->SetZTitle(
"2D <A> in the tail - HB Depth2 \b");
6642 tail2->SetMarkerColor(2);
6643 tail2->SetLineColor(2);
6644 tail2->Draw(
"COLZ");
6648 cHB->Print(
"AtaildepthHB.png");
6654 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>sumOccupancyHF " << endl;
6659 if (SummedAmplitudeOccupancyHisto[3]) {
6660 TH1F *ufrew1 = (TH1F *)SummedAmplitudeOccupancyHisto[3]->Clone(
"ufrew1");
6661 if (SummedAmplitudeOccupancyHisto[3] && NoSignalSummedAmplitudeOccupancyHisto[3])
6662 ufrew1->Add(SummedAmplitudeOccupancyHisto[3], NoSignalSummedAmplitudeOccupancyHisto[3], 1, 1);
6663 ufrew1->GetXaxis()->SetRangeUser(1., maxbins + 1.);
6665 ufrew1->SetMarkerStyle(20);
6666 ufrew1->SetMarkerSize(0.8);
6667 ufrew1->GetYaxis()->SetLabelSize(0.04);
6668 ufrew1->SetTitle(
"HF Occupancy vs LS\b");
6669 ufrew1->SetXTitle(
"average occupancy per LS HF\b");
6670 ufrew1->SetMarkerColor(4);
6671 ufrew1->SetLineColor(0);
6672 ufrew1->SetMaximum(866.);
6673 ufrew1->SetMinimum(856.);
6674 ufrew1->Draw(
"Error");
6676 cHB->Print(
"sumOccupancyHF.png");
6690 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =====================================================================" << endl;
6693 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> ==================================================" << endl;
6696 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6697 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6698 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6699 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6701 cout <<
">>>>>>> START NOW CREATING OF HTML PAGES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
6708 for (
int sub = 1; sub <= 4; sub++) {
6713 htmlFile.open(
"HB_CapID.html");
6716 htmlFile.open(
"HE_CapID.html");
6719 htmlFile.open(
"HO_CapID.html");
6722 htmlFile.open(
"HF_CapID.html");
6727 htmlFile.open(
"HB_ADCampl.html");
6730 htmlFile.open(
"HE_ADCampl.html");
6733 htmlFile.open(
"HO_ADCampl.html");
6736 htmlFile.open(
"HF_ADCampl.html");
6741 htmlFile.open(
"HB_Width.html");
6744 htmlFile.open(
"HE_Width.html");
6747 htmlFile.open(
"HO_Width.html");
6750 htmlFile.open(
"HF_Width.html");
6755 htmlFile.open(
"HB_Ratio.html");
6758 htmlFile.open(
"HE_Ratio.html");
6761 htmlFile.open(
"HO_Ratio.html");
6764 htmlFile.open(
"HF_Ratio.html");
6769 htmlFile.open(
"HB_Tmean.html");
6772 htmlFile.open(
"HE_Tmean.html");
6775 htmlFile.open(
"HO_Tmean.html");
6778 htmlFile.open(
"HF_Tmean.html");
6783 htmlFile.open(
"HB_Tmax.html");
6786 htmlFile.open(
"HE_Tmax.html");
6789 htmlFile.open(
"HO_Tmax.html");
6792 htmlFile.open(
"HF_Tmax.html");
6796 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6797 htmlFile <<
"<head>" << std::endl;
6798 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6799 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
6800 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6801 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
6803 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6804 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
6805 "text-align: center;}"
6807 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6808 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6809 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6810 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
6811 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
6812 htmlFile <<
"</style>" << std::endl;
6813 htmlFile <<
"<body>" << std::endl;
6817 htmlFile <<
"<h1> Cap ID estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6819 htmlFile <<
"<h1> Cap ID estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6821 htmlFile <<
"<h1> Cap ID estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6823 htmlFile <<
"<h1> Cap ID estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6827 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6829 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6831 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6833 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6837 htmlFile <<
"<h1> Width estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6839 htmlFile <<
"<h1> Width estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6841 htmlFile <<
"<h1> Width estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6843 htmlFile <<
"<h1> Width estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6847 htmlFile <<
"<h1> Ratio estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6849 htmlFile <<
"<h1> Ratio estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6851 htmlFile <<
"<h1> Ratio estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6853 htmlFile <<
"<h1> Ratio estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6857 htmlFile <<
"<h1> Mean bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6859 htmlFile <<
"<h1> Mean bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6861 htmlFile <<
"<h1> Mean bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6863 htmlFile <<
"<h1> Mean bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6867 htmlFile <<
"<h1> Maximum bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6869 htmlFile <<
"<h1> Maximum bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6871 htmlFile <<
"<h1> Maximum bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6873 htmlFile <<
"<h1> Maximum bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6877 htmlFile <<
"<a name=\"Top\"></a>\n";
6878 htmlFile <<
"<b>Contents:<br>\n";
6879 htmlFile <<
"1. <a href=\"#Aij\">A_ij_LS (averaged over events in LS) </a><br>\n";
6880 htmlFile <<
"2. <a href=\"#OverflowAij\">A_ij_LS in overflow & underflow</a><br>\n";
6881 htmlFile <<
"3. <a href=\"#MainEstimator\">Main Estimator !!! </a><br>\n";
6882 htmlFile <<
"4. <a href=\"#ErrorA\">Error type A </a><br>\n";
6883 htmlFile <<
"5. <a href=\"#ErrorAaverage\">ErrorA cross check</a><br>\n";
6884 htmlFile <<
"6. <a href=\"#ErrorAoccupancy\">ErrorA occupancy plots</a><br>\n";
6885 htmlFile <<
"7. <a href=\"#ErrorB\">Error type B</a><br>\n";
6886 htmlFile <<
"8. <a href=\"#LSstatus\">Table of Average channel-Amplitude in Depthes over LSs </a><br>\n";
6887 htmlFile <<
"9. <a href=\"#RBXstatus\">RBX Status </a><br>\n";
6888 htmlFile <<
"10. <a href=\"#RBXPHItable\">Table of Average RBX-Amplitude in Phi over LSs </a><br>\n";
6889 htmlFile <<
"11. <a href=\"#RBXETAtable\">Table of Average RBX-Amplitude in Eta over LSs </a><br>\n";
6890 htmlFile <<
"12. <a href=\"#RBX3plots\">RBX A-Ratio to 1st LS: 3 plots </a><br>\n";
6896 htmlFile <<
"<br>" << std::endl;
6898 htmlFile <<
"<h2> 0. Rate of CapID failures over all events of Run </h2>" << std::endl;
6899 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
6901 htmlFile <<
" <img src=\"MapCapIdErrorHB.png\" />" << std::endl;
6903 htmlFile <<
" <img src=\"MapCapIdErrorHE.png\" />" << std::endl;
6905 htmlFile <<
" <img src=\"MapCapIdErrorHO.png\" />" << std::endl;
6907 htmlFile <<
" <img src=\"MapCapIdErrorHF.png\" />" << std::endl;
6910 htmlFile <<
"<a name=\"Aij\"></a>\n";
6912 htmlFile <<
"<h2> 1. Distribution of estimator averaged over events in LS, histogramed over all channels and "
6917 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6918 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6920 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6921 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2), " << CutAb[sub][3]
6922 <<
" (Depth3).</h2>" << std::endl;
6924 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6925 << CutAb[sub][1] <<
" (Depth4).</h2>" << std::endl;
6927 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6928 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6932 htmlFile <<
"<h3> see Overflow and Underflow </h3>" << std::endl;
6934 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
6938 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HB.png\" />" << std::endl;
6940 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HE.png\" />" << std::endl;
6942 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HO.png\" />" << std::endl;
6944 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HF.png\" />" << std::endl;
6948 htmlFile <<
" <img src=\"H_ADCamplHB.png\" />" << std::endl;
6950 htmlFile <<
" <img src=\"H_ADCamplHE.png\" />" << std::endl;
6952 htmlFile <<
" <img src=\"H_ADCamplHO.png\" />" << std::endl;
6954 htmlFile <<
" <img src=\"H_ADCamplHF.png\" />" << std::endl;
6958 htmlFile <<
" <img src=\"H_WidthHB.png\" />" << std::endl;
6960 htmlFile <<
" <img src=\"H_WidthHE.png\" />" << std::endl;
6962 htmlFile <<
" <img src=\"H_WidthHO.png\" />" << std::endl;
6964 htmlFile <<
" <img src=\"H_WidthHF.png\" />" << std::endl;
6968 htmlFile <<
" <img src=\"H_RatioHB.png\" />" << std::endl;
6970 htmlFile <<
" <img src=\"H_RatioHE.png\" />" << std::endl;
6972 htmlFile <<
" <img src=\"H_RatioHO.png\" />" << std::endl;
6974 htmlFile <<
" <img src=\"H_RatioHF.png\" />" << std::endl;
6978 htmlFile <<
" <img src=\"H_TmeanHB.png\" />" << std::endl;
6980 htmlFile <<
" <img src=\"H_TmeanHE.png\" />" << std::endl;
6982 htmlFile <<
" <img src=\"H_TmeanHO.png\" />" << std::endl;
6984 htmlFile <<
" <img src=\"H_TmeanHF.png\" />" << std::endl;
6988 htmlFile <<
" <img src=\"H_TmaxHB.png\" />" << std::endl;
6990 htmlFile <<
" <img src=\"H_TmaxHE.png\" />" << std::endl;
6992 htmlFile <<
" <img src=\"H_TmaxHO.png\" />" << std::endl;
6994 htmlFile <<
" <img src=\"H_TmaxHF.png\" />" << std::endl;
6996 htmlFile <<
"<br>" << std::endl;
6998 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7001 htmlFile <<
"<h2> 2a. Number of bad channels per event distribution in Run</h2>" << std::endl;
7003 htmlFile <<
"<h3> Legends: dots correspond to BAD LS candidates. </h3>" << std::endl;
7006 htmlFile <<
" <img src=\"HistNBadChsHB.png\" />" << std::endl;
7008 htmlFile <<
" <img src=\"HistNBadChsHE.png\" />" << std::endl;
7010 htmlFile <<
" <img src=\"HistNBadChsHO.png\" />" << std::endl;
7012 htmlFile <<
" <img src=\"HistNBadChsHF.png\" />" << std::endl;
7016 htmlFile <<
"<a name=\"OverflowAij\"></a>\n";
7018 htmlFile <<
"<h2> 2. Estimator averaged over all events in the RUN for entries in overflow and underflow of "
7019 "corresponding histogram above </h2>"
7023 htmlFile <<
"<h2> 2b. Averaged number of bad channels for each LS </h2>" << std::endl;
7027 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7028 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7029 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7031 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7032 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3) correspond BAD LS.</h3>"
7035 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7036 <<
" (Depth4) correspond BAD LS.</h3>" << std::endl;
7038 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7039 << Cut0[
test][sub][2] <<
" (Depth2) correspond BAD LS.</h3>" << std::endl;
7043 htmlFile <<
" <img src=\"HistNBCMNHB.png\" />" << std::endl;
7045 htmlFile <<
" <img src=\"HistNBCMNHE.png\" />" << std::endl;
7047 htmlFile <<
" <img src=\"HistNBCMNHO.png\" />" << std::endl;
7049 htmlFile <<
" <img src=\"HistNBCMNHF.png\" />" << std::endl;
7053 htmlFile <<
" <img src=\"MapADCamplHB.png\" />" << std::endl;
7055 htmlFile <<
" <img src=\"MapADCamplHE.png\" />" << std::endl;
7057 htmlFile <<
" <img src=\"MapADCamplHO.png\" />" << std::endl;
7059 htmlFile <<
" <img src=\"MapADCamplHF.png\" />" << std::endl;
7063 htmlFile <<
" <img src=\"MapWidthHB.png\" />" << std::endl;
7065 htmlFile <<
" <img src=\"MapWidthHE.png\" />" << std::endl;
7067 htmlFile <<
" <img src=\"MapWidthHO.png\" />" << std::endl;
7069 htmlFile <<
" <img src=\"MapWidthHF.png\" />" << std::endl;
7073 htmlFile <<
" <img src=\"MapRatioHB.png\" />" << std::endl;
7075 htmlFile <<
" <img src=\"MapRatioHE.png\" />" << std::endl;
7077 htmlFile <<
" <img src=\"MapRatioHO.png\" />" << std::endl;
7079 htmlFile <<
" <img src=\"MapRatioHF.png\" />" << std::endl;
7083 htmlFile <<
" <img src=\"MapTmeanHB.png\" />" << std::endl;
7085 htmlFile <<
" <img src=\"MapTmeanHE.png\" />" << std::endl;
7087 htmlFile <<
" <img src=\"MapTmeanHO.png\" />" << std::endl;
7089 htmlFile <<
" <img src=\"MapTmeanHF.png\" />" << std::endl;
7093 htmlFile <<
" <img src=\"MapTmaxHB.png\" />" << std::endl;
7095 htmlFile <<
" <img src=\"MapTmaxHE.png\" />" << std::endl;
7097 htmlFile <<
" <img src=\"MapTmaxHO.png\" />" << std::endl;
7099 htmlFile <<
" <img src=\"MapTmaxHF.png\" />" << std::endl;
7101 htmlFile <<
"<br>" << std::endl;
7103 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7106 htmlFile <<
"<a name=\"MainEstimator\"></a>\n";
7109 <<
"<h2> 3. Distribution of estimator averaged over events in LS and over all channels for each LS </h2>"
7113 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7114 <<
" (Depth2) in each LS.</h2>" << std::endl;
7116 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7117 <<
" (Depth2), " << CutPo[sub][3] <<
" (Depth3) in each LS.</h2>" << std::endl;
7119 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][4] <<
" (Depth4) in each LS.</h2>"
7122 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7123 <<
" (Depth2) in each LS.</h2>" << std::endl;
7124 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
7128 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7129 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7130 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7132 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7133 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7134 <<
" (Depth4), " << Cut0[
test][sub][5] <<
" (Depth5), " << Cut0[
test][sub][6] <<
" (Depth6), "
7135 << Cut0[
test][sub][7] <<
" (Depth7) correspond BAD LS. </h3>" << std::endl;
7137 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7138 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7140 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7141 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7142 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7146 htmlFile <<
" <img src=\"HistPortHB.png\" />" << std::endl;
7148 htmlFile <<
" <img src=\"HistPortHE.png\" />" << std::endl;
7150 htmlFile <<
" <img src=\"HistPortHO.png\" />" << std::endl;
7152 htmlFile <<
" <img src=\"HistPortHF.png\" />" << std::endl;
7156 htmlFile <<
" <img src=\"HistADCamplHB.png\" />" << std::endl;
7158 htmlFile <<
" <img src=\"HistADCamplHE.png\" />" << std::endl;
7160 htmlFile <<
" <img src=\"HistADCamplHO.png\" />" << std::endl;
7162 htmlFile <<
" <img src=\"HistADCamplHF.png\" />" << std::endl;
7166 htmlFile <<
" <img src=\"HistWidthHB.png\" />" << std::endl;
7168 htmlFile <<
" <img src=\"HistWidthHE.png\" />" << std::endl;
7170 htmlFile <<
" <img src=\"HistWidthHO.png\" />" << std::endl;
7172 htmlFile <<
" <img src=\"HistWidthHF.png\" />" << std::endl;
7176 htmlFile <<
" <img src=\"HistRatioHB.png\" />" << std::endl;
7178 htmlFile <<
" <img src=\"HistRatioHE.png\" />" << std::endl;
7180 htmlFile <<
" <img src=\"HistRatioHO.png\" />" << std::endl;
7182 htmlFile <<
" <img src=\"HistRatioHF.png\" />" << std::endl;
7186 htmlFile <<
" <img src=\"HistTmeanHB.png\" />" << std::endl;
7188 htmlFile <<
" <img src=\"HistTmeanHE.png\" />" << std::endl;
7190 htmlFile <<
" <img src=\"HistTmeanHO.png\" />" << std::endl;
7192 htmlFile <<
" <img src=\"HistTmeanHF.png\" />" << std::endl;
7196 htmlFile <<
" <img src=\"HistTmaxHB.png\" />" << std::endl;
7198 htmlFile <<
" <img src=\"HistTmaxHE.png\" />" << std::endl;
7200 htmlFile <<
" <img src=\"HistTmaxHO.png\" />" << std::endl;
7202 htmlFile <<
" <img src=\"HistTmaxHF.png\" />" << std::endl;
7204 htmlFile <<
"<br>" << std::endl;
7207 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7208 htmlFile <<
"<a name=\"ErrorA\"></a>\n";
7209 htmlFile <<
"<h2> 4. Error type A</h2>\n";
7210 htmlFile <<
"<h3> note: no sence to see plots of this item if max difference is too large(due to very high A "
7211 "of some channels)</h3>\n";
7212 htmlFile <<
"<br>\n";
7216 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.6 (p-p collisions) </h3>\n";
7217 htmlFile <<
" <img src=\"HistErrA_HB.png\" />\n";
7218 htmlFile <<
"<br>\n";
7219 if (flagErrAB_HB[0] == -1)
7220 htmlFile <<
"<h3>test was not possible</h3>\n";
7221 else if (flagErrAB_HB[0] == 0)
7222 htmlFile <<
"<h3> Fine:NoErrorA_HB (Mean of max difference " << avedelta_HB
7223 <<
" is within 0.1-1.6) </h3>\n";
7224 else if (flagErrAB_HB[0] == 1)
7225 htmlFile <<
"<<h3> ErrorA_HB is available once Mean of max difference " << avedelta_HB
7226 <<
" is out 0.1-1.6 (p-p collisions)</font></h3>\n";
7228 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7229 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7231 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7233 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7234 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >25), "
7235 "3) with channel Amplitude (A<35); </h2>\n";
7236 htmlFile <<
" <img src=\"ChkErrA_HB1.png\" /><br><br>\n";
7237 htmlFile <<
" <img src=\"ChkErrA_HB2.png\" /><br>\n";
7238 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7240 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7241 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 25 "
7242 "(HBM:neg.eta;HBP:pos.eta) </h2>\n";
7243 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7244 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.6 at least for HF- or "
7246 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.6 and is the same "
7247 "for HF- and HF+ </h2>\n";
7248 htmlFile <<
" <img src=\"OccPlots_HB.png\" /><br><br>\n";
7249 htmlFile <<
"<br>\n";
7250 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7252 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7253 htmlFile <<
"<h2> 7. Error type B\n";
7254 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10.</h3>\n";
7255 htmlFile <<
" <img src=\"HistErrB_HB_1.png\" />\n<br>\n";
7256 htmlFile <<
" <img src=\"HistErrB_HB_2.png\" />\n<br>\n";
7257 htmlFile <<
"<br>\n";
7258 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HB <<
" LS </h3>\n";
7259 htmlFile <<
"<br>\n";
7264 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.2-1.8 (p-p collisions) </h3>\n";
7265 htmlFile <<
" <img src=\"HistErrA_HE.png\" />\n";
7266 htmlFile <<
"<br>\n";
7267 if (flagErrAB_HE[0] == -1)
7268 htmlFile <<
"<h3>test was not possible</h3>\n";
7269 else if (flagErrAB_HE[0] == 0)
7270 htmlFile <<
"<h3> Fine:NoErrorA_HE (Mean of max difference " << avedelta_HE
7271 <<
" is within 0.2-1.8) </h3>\n";
7272 else if (flagErrAB_HE[0] == 1)
7273 htmlFile <<
"<<h3> ErrorA_HE is available once Mean of max difference " << avedelta_HE
7274 <<
" is out 0.2-1.8 (p-p collisions)</font></h3>\n";
7276 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7277 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7279 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7281 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7282 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> "
7283 ">1000.fC), 3) with channel Amplitude (A<500fC); </h2>\n";
7284 htmlFile <<
" <img src=\"ChkErrA_HE1.png\" /><br><br>\n";
7285 htmlFile <<
" <img src=\"ChkErrA_HE2.png\" /><br>\n";
7286 htmlFile <<
" <img src=\"ChkErrA_HE3.png\" /><br>\n";
7287 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7289 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7290 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 35 "
7291 "(HEM:neg.eta;HEP:pos.eta) </h2>\n";
7292 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7293 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.3 at least for HF- or "
7295 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.3 and is the same "
7296 "for HF- and HF+ </h2>\n";
7297 htmlFile <<
" <img src=\"OccPlots_HE.png\" /><br><br>\n";
7298 htmlFile <<
"<br>\n";
7299 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7301 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7302 htmlFile <<
"<h2> 7. Error type B\n";
7303 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7304 htmlFile <<
" <img src=\"HistErrB_HE_1.png\" />\n<br>\n";
7305 htmlFile <<
" <img src=\"HistErrB_HE_2.png\" />\n<br>\n";
7306 htmlFile <<
" <img src=\"HistErrB_HE_3.png\" />\n<br>\n";
7307 htmlFile <<
"<br>\n";
7308 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HE <<
" LS </h3>\n";
7309 htmlFile <<
"<br>\n";
7314 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.5 (p-p collisions) </h3>\n";
7315 htmlFile <<
" <img src=\"HistErrA_HO.png\" />\n";
7316 htmlFile <<
"<br>\n";
7317 if (flagErrAB_HO[0] == -1)
7318 htmlFile <<
"<h3>test was not possible</h3>\n";
7319 else if (flagErrAB_HO[0] == 0)
7320 htmlFile <<
"<h3> Fine:NoErrorA_HO (Mean of max difference " << avedelta_HO
7321 <<
" is within 0.1-1.5) </h3>\n";
7322 else if (flagErrAB_HO[0] == 1)
7323 htmlFile <<
"<<h3> ErrorA_HO is available once Mean of max difference " << avedelta_HO
7324 <<
" is out 0.1-1.5 (p-p collisions)</font></h3>\n";
7326 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7327 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7329 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7331 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7332 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >80), "
7333 "3) with channel Amplitude (A<100); </h2>\n";
7335 htmlFile <<
" <img src=\"ChkErrA_HO4.png\" /><br><br>\n";
7336 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7338 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7339 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 80 "
7340 "(HOM:neg.eta;HOP:pos.eta) </h2>\n";
7341 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7342 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7344 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7345 "for HF- and HF+ </h2>\n";
7346 htmlFile <<
" <img src=\"OccPlots_HO.png\" /><br><br>\n";
7347 htmlFile <<
"<br>\n";
7348 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7350 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7351 htmlFile <<
"<h2> 7. Error type B\n";
7352 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10. </h3>\n";
7353 htmlFile <<
" <img src=\"HistErrB_HO_4.png\" />\n<br>\n";
7354 htmlFile <<
"<br>\n";
7355 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HO <<
" LS </h3>\n";
7356 htmlFile <<
"<br>\n";
7362 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.8-2.4 (p-p collisions) </h3>\n";
7363 htmlFile <<
" <img src=\"HistErrA_HF.png\" />\n";
7364 htmlFile <<
"<br>\n";
7365 if (flagErrAB_HF[0] == -1)
7366 htmlFile <<
"<h3>test was not possible</h3>\n";
7367 else if (flagErrAB_HF[0] == 0)
7368 htmlFile <<
"<h3> Fine:NoErrorA_HF (Mean of max difference " << avedelta_HF
7369 <<
" is within 0.8-2.4) </h3>\n";
7370 else if (flagErrAB_HF[0] == 1)
7371 htmlFile <<
"<<h3> ErrorA_HF is available once Mean of max difference " << avedelta_HF
7372 <<
" is out 0.8-2.4 (p-p collisions)</font></h3>\n";
7374 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7375 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7377 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7379 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7380 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >20), "
7381 "3) with channel Amplitude (A<20); </h2>\n";
7383 htmlFile <<
" <img src=\"ChkErrA_HF1.png\" /><br><br>\n";
7384 htmlFile <<
" <img src=\"ChkErrA_HF2.png\" /><br>\n";
7385 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7387 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7388 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 20 "
7389 "(HFM:neg.eta;HFP:pos.eta) </h2>\n";
7390 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7391 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7393 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7394 "for HF- and HF+ </h2>\n";
7395 htmlFile <<
" <img src=\"OccPlots_HF.png\" /><br><br>\n";
7396 htmlFile <<
"<br>\n";
7397 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7399 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7400 htmlFile <<
"<h2> 7. Error type B\n";
7401 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 4. </h3>\n";
7402 htmlFile <<
" <img src=\"HistErrB_HF_1.png\" />\n<br>\n";
7403 htmlFile <<
" <img src=\"HistErrB_HF_2.png\" />\n<br>\n";
7404 htmlFile <<
"<br>\n";
7405 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HF <<
" LS </h3>\n";
7406 htmlFile <<
"<br>\n";
7408 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7413 htmlFile <<
"<a name=\"LSstatus\"></a>\n";
7416 htmlFile <<
"<h2> 8.Lumisection Status for HB: </h2>" << std::endl;
7417 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: <td class=\"s6\" "
7419 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2). </td></h3>" << std::endl;
7422 htmlFile <<
"<h2> 8.Lumisection Status for HE: </h2>" << std::endl;
7423 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7424 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3),"
7425 << Cut0[
test][sub][4] <<
" (Depth4)," << Cut0[
test][sub][5] <<
" (Depth5)," << Cut0[
test][sub][6]
7426 <<
" (Depth6)," << Cut0[
test][sub][7] <<
" (Depth7). </h3>" << std::endl;
7430 htmlFile <<
"<h2> 8.Lumisection Status for HO: </h2>" << std::endl;
7431 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][4]
7432 <<
" (Depth4). </h3>" << std::endl;
7435 htmlFile <<
"<h2> 8.Lumisection Status for HF: </h2>" << std::endl;
7436 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7437 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7438 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7440 htmlFile <<
"<br>" << std::endl;
7441 htmlFile <<
"<table>" << std::endl;
7443 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7445 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7448 int kkkkkkmax = k_max[sub];
7449 if ((sub == 4 || sub == 2) &&
test == 1)
7450 kkkkkkmax = k_maxHFupgrade[sub];
7454 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7455 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > Depth " <<
k <<
" </td>" << std::endl;
7457 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7458 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > Depth " <<
k <<
" </td>" << std::endl;
7460 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7461 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > Depth " <<
k <<
" </td>" << std::endl;
7463 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7464 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > Depth " <<
k <<
" </td>" << std::endl;
7466 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7467 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > Depth " <<
k <<
" </td>" << std::endl;
7469 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7470 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > Depth " <<
k <<
" </td>" << std::endl;
7471 htmlFile <<
"</tr>" << std::endl;
7474 for (
int i = 1;
i <= MaxLum;
i++) {
7476 raw_class =
"<td class=\"s2\" align=\"center\">";
7478 raw_class =
"<td class=\"s3\" align=\"center\">";
7479 htmlFile <<
"<tr>" << std::endl;
7480 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7482 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7483 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
7484 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k]) {
7486 htmlFile <<
"<td class=\"s6\" align=\"center\">"
7487 << int(HistNumBadChanDepth[
test][sub][k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7489 htmlFile <<
"<td class=\"s6\" align=\"center\">" << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i))
7490 <<
"</td>" << std::endl;
7493 htmlFile << raw_class << int(HistNumBadChanDepth[
test][sub][k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7495 htmlFile << raw_class << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7498 htmlFile <<
"</tr>" << std::endl;
7501 htmlFile <<
"</table>" << std::endl;
7503 htmlFile <<
"<br>" << std::endl;
7505 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7506 htmlFile <<
"<br>" << std::endl;
7513 htmlFile <<
"<a name=\"RBXstatus\"></a>\n";
7517 htmlFile <<
"<h2> 9. Average Amplitudes of RBX for HB: </h2>" << std::endl;
7518 htmlFile <<
"<h3> where </h3>" << std::endl;
7519 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7520 "(Positive direction); </h3>"
7522 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7524 htmlFile <<
" <img src=\"RBX-HB-2Dplot.png\" />\n";
7525 htmlFile <<
"<br>\n";
7527 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HB: </h2>" << std::endl;
7528 htmlFile <<
" <img src=\"RBX-HB-1Dplot.png\" />\n";
7529 htmlFile <<
"<br>\n";
7531 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HB: </h2>" << std::endl;
7532 htmlFile <<
" <img src=\"RBX-HB-11Dplot.png\" />\n";
7533 htmlFile <<
"<br>\n";
7535 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7539 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HE: </h2>" << std::endl;
7540 htmlFile <<
"<h3> where </h3>" << std::endl;
7541 htmlFile <<
"<h3> jeta = 3,4,5, 6, 7 (Negative direction); ............&& ............ jeta = "
7542 "14,15,16,17,18 (Positive direction); </h3>"
7544 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7546 htmlFile <<
" <img src=\"RBX-HE-2Dplot.png\" />\n";
7547 htmlFile <<
"<br>\n";
7549 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HE: </h2>" << std::endl;
7550 htmlFile <<
" <img src=\"RBX-HE-1Dplot.png\" />\n";
7551 htmlFile <<
"<br>\n";
7553 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HE: </h2>" << std::endl;
7554 htmlFile <<
" <img src=\"RBX-HE-11Dplot.png\" />\n";
7555 htmlFile <<
"<br>\n";
7557 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7561 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HO: </h2>" << std::endl;
7562 htmlFile <<
"<h3> where </h3>" << std::endl;
7563 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7564 "(Positive direction); </h3>"
7566 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7568 htmlFile <<
" <img src=\"RBX-HO-2Dplot.png\" />\n";
7569 htmlFile <<
"<br>\n";
7571 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HO: </h2>" << std::endl;
7572 htmlFile <<
" <img src=\"RBX-HO-1Dplot.png\" />\n";
7573 htmlFile <<
"<br>\n";
7575 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HO: </h2>" << std::endl;
7576 htmlFile <<
" <img src=\"RBX-HO-11Dplot.png\" />\n";
7577 htmlFile <<
"<br>\n";
7579 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7583 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HF: </h2>" << std::endl;
7584 htmlFile <<
"<h3> where </h3>" << std::endl;
7585 htmlFile <<
"<h3> jeta = 0,1,2, 3 (Negative direction); ............&& ............ jeta = 18,19,20,21 "
7586 "(Positive direction); </h3>"
7588 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7590 htmlFile <<
" <img src=\"RBX-HF-2Dplot.png\" />\n";
7591 htmlFile <<
"<br>\n";
7593 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HF: </h2>" << std::endl;
7594 htmlFile <<
" <img src=\"RBX-HF-1Dplot.png\" />\n";
7595 htmlFile <<
"<br>\n";
7597 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HF: </h2>" << std::endl;
7598 htmlFile <<
" <img src=\"RBX-HF-11Dplot.png\" />\n";
7599 htmlFile <<
"<br>\n";
7601 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7603 htmlFile <<
"<br>" << std::endl;
7608 htmlFile <<
"<a name=\"RBXPHItable\"></a>\n";
7612 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HB: </h2>" << std::endl;
7614 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7615 << cutA_HB << std::endl;
7619 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HE: </h2>" << std::endl;
7621 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7622 << cutA_HE << std::endl;
7626 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HO: </h2>" << std::endl;
7628 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7629 << cutA_HO << std::endl;
7633 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HF: </h2>" << std::endl;
7635 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7636 << cutA_HF << std::endl;
7640 htmlFile <<
"<br>" << std::endl;
7641 htmlFile <<
"<table>" << std::endl;
7643 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7645 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7649 for (
int k = 0;
k < njphi;
k++)
7650 htmlFile <<
"<td class=\"s1\" align=\"center\"> iPHI " <<
k <<
" </td>" << std::endl;
7651 htmlFile <<
"</tr>" << std::endl;
7656 for (
int i = 1;
i <= MaxLum;
i++) {
7658 raw_class =
"<td class=\"s2\" align=\"center\">";
7660 raw_class =
"<td class=\"s3\" align=\"center\">";
7661 htmlFile <<
"<tr>" << std::endl;
7662 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7664 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7667 for (
int k = 0;
k < njphi;
k++) {
7669 if (
int(alexhb[
k][
i - 1]) > cutA_ALL) {
7670 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7672 htmlFile << raw_class << int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7676 if (
int(alexhe[
k][
i - 1]) > cutA_ALL) {
7677 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7679 htmlFile << raw_class << int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7683 if (
int(alexho[
k][
i - 1]) > cutA_ALL) {
7684 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7686 htmlFile << raw_class << int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7690 if (
int(alexhf[
k][
i - 1]) > cutA_ALL) {
7691 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7693 htmlFile << raw_class << int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7698 htmlFile <<
"</tr>" << std::endl;
7701 htmlFile <<
"</table>" << std::endl;
7702 htmlFile <<
"<br>" << std::endl;
7703 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7704 htmlFile <<
"<br>" << std::endl;
7707 htmlFile <<
"<a name=\"RBXETAtable\"></a>\n";
7711 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HB: </h2>" << std::endl;
7713 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7714 << cutB_HB << std::endl;
7718 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HE: </h2>" << std::endl;
7720 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7721 << cutB_HE << std::endl;
7725 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HO: </h2>" << std::endl;
7727 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7728 << cutB_HO << std::endl;
7732 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HF: </h2>" << std::endl;
7734 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7735 << cutB_HF << std::endl;
7739 htmlFile <<
"<br>" << std::endl;
7740 htmlFile <<
"<table>" << std::endl;
7742 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7744 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7748 for (
int k = 0;
k < njeta;
k++)
7749 htmlFile <<
"<td class=\"s1\" align=\"center\"> iETA " <<
k <<
" </td>" << std::endl;
7750 htmlFile <<
"</tr>" << std::endl;
7755 for (
int i = 1;
i <= MaxLum;
i++) {
7757 raw_class =
"<td class=\"s2\" align=\"center\">";
7759 raw_class =
"<td class=\"s3\" align=\"center\">";
7760 htmlFile <<
"<tr>" << std::endl;
7761 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7763 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7766 for (
int k = 0;
k < njeta;
k++) {
7768 if (
int(blexhb[
k][
i - 1]) > cutB_ALL) {
7769 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7771 htmlFile << raw_class << int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7775 if (
int(blexhe[
k][
i - 1]) > cutB_ALL) {
7776 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7778 htmlFile << raw_class << int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7782 if (
int(blexho[
k][
i - 1]) > cutB_ALL) {
7783 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7785 htmlFile << raw_class << int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7789 if (
int(blexhf[
k][
i - 1]) > cutB_ALL) {
7790 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7792 htmlFile << raw_class << int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7797 htmlFile <<
"</tr>" << std::endl;
7800 htmlFile <<
"</table>" << std::endl;
7801 htmlFile <<
"<br>" << std::endl;
7802 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7803 htmlFile <<
"<br>" << std::endl;
7808 htmlFile <<
"<a name=\"RBX3plots\"></a>\n";
7809 htmlFile <<
"<br>\n";
7810 htmlFile <<
"<h2> 12. (Rij) - RBX-amplitudes normilized on reference LS (~=1st) </h2>" << std::endl;
7811 htmlFile <<
"<h3> ( Rji . . is ratio of . . . . A_j_i . . to . . A_j_ref . . . . for . . j-RBX . . and . . "
7815 htmlFile <<
"<br>\n";
7816 htmlFile <<
"<h2> . . . . . . . . . . . . . . 1) . average Ri vs iLS:. . . . . . . . . . . . . . . . . . . . . "
7817 ". . 2) . average Rj shown for Rij outside meanValue range either 0.95-1.05 or 3RMS: . . . . . . . "
7818 ". . . . . . . . . . . . . . . . . . 3) . Rij: </h2>"
7820 htmlFile <<
"<br>\n";
7822 htmlFile <<
" <img src=\"RBX-HB-3plots.png\" />\n";
7825 htmlFile <<
" <img src=\"RBX-HE-3plots.png\" />\n";
7828 htmlFile <<
" <img src=\"RBX-HO-3plots.png\" />\n";
7831 htmlFile <<
" <img src=\"RBX-HF-3plots.png\" />\n";
7833 htmlFile <<
"<br>\n";
7835 htmlFile <<
"<br>\n";
7836 htmlFile <<
"<h2> . 4). average Rj shown for Rij outside meanValue range 0.80-1.20: . . . . . . . .5) . "
7837 "average Rj shown for Rij outside meanValue range 0.70-1.30: . . . . . . . .6). average Rj shown "
7838 "for Rij outside meanValue range 0.60-1.40: </h2>"
7840 htmlFile <<
"<br>\n";
7842 htmlFile <<
" <img src=\"RBX-HB-3plotsmore.png\" />\n";
7845 htmlFile <<
" <img src=\"RBX-HE-3plotsmore.png\" />\n";
7848 htmlFile <<
" <img src=\"RBX-HO-3plotsmore.png\" />\n";
7851 htmlFile <<
" <img src=\"RBX-HF-3plotsmore.png\" />\n";
7853 htmlFile <<
"<br>\n";
7855 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7877 htmlFile.open(
"CapID_GL.html");
7879 htmlFile.open(
"ADCampl_GL.html");
7881 htmlFile.open(
"Width_GL.html");
7883 htmlFile.open(
"Ratio_GL.html");
7885 htmlFile.open(
"Tmean_GL.html");
7887 htmlFile.open(
"Tmax_GL.html");
7891 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
7892 htmlFile <<
"<head>" << std::endl;
7893 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
7894 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
7895 htmlFile <<
"<style type=\"text/css\">" << std::endl;
7896 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
7898 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
7899 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
7900 "text-align: center;}"
7902 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
7903 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
7904 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
7905 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
7906 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
7907 htmlFile <<
"</style>" << std::endl;
7908 htmlFile <<
"<body>" << std::endl;
7910 htmlFile <<
"<h1> CAP ID ERRORS, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7912 htmlFile <<
"<h1> ADC AMPLITIDE, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7914 htmlFile <<
"<h1> WIDTH, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7916 htmlFile <<
"<h1> RATIO, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7918 htmlFile <<
"<h1> TIMING MEAN, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7920 htmlFile <<
"<h1> TIMING MAX, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7921 htmlFile <<
"<br>" << std::endl;
7922 htmlFile <<
"<h2> 1. Map of suspicious channels with this criterion for whole HCAL </h2>" << std::endl;
7923 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
7924 htmlFile <<
"<br>" << std::endl;
7926 htmlFile <<
" <img src=\"MapCapIdError.png\" />" << std::endl;
7928 htmlFile <<
" <img src=\"MapADCAmpl.png\" />" << std::endl;
7930 htmlFile <<
" <img src=\"MapWidth.png\" />" << std::endl;
7932 htmlFile <<
" <img src=\"MapRatio.png\" />" << std::endl;
7934 htmlFile <<
" <img src=\"MapTmean.png\" />" << std::endl;
7936 htmlFile <<
" <img src=\"MapTmax.png\" />" << std::endl;
7937 htmlFile <<
"<br>" << std::endl;
7938 htmlFile <<
"<h2> 2. For whole HCAL: </h2>" << std::endl;
7939 htmlFile <<
"<br>" << std::endl;
7941 htmlFile <<
" <img src=\"HistCapID.png\" />" << std::endl;
7943 htmlFile <<
" <img src=\"HistADCAmpl.png\" />" << std::endl;
7945 htmlFile <<
" <img src=\"HistWidth.png\" />" << std::endl;
7947 htmlFile <<
" <img src=\"HistRatio.png\" />" << std::endl;
7949 htmlFile <<
" <img src=\"HistTmean.png\" />" << std::endl;
7951 htmlFile <<
" <img src=\"HistTmax.png\" />" << std::endl;
7952 htmlFile <<
"<br>" << std::endl;
7953 htmlFile <<
"<h2> 3. Status of subdetectors </h2>" << std::endl;
7954 htmlFile <<
"<table width=\"400\">" << std::endl;
7955 htmlFile <<
"<tr>" << std::endl;
7957 htmlFile <<
" <td><a "
7958 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7959 "HcalRemoteMonitoring/CMT/GLOBAL_"
7960 << runnumber <<
"/HB_CapID.html\">HB</a></td>" << std::endl;
7961 htmlFile <<
" <td><a "
7962 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7963 "HcalRemoteMonitoring/CMT/GLOBAL_"
7964 << runnumber <<
"/HE_CapID.html\">HE</a></td>" << std::endl;
7965 htmlFile <<
" <td><a "
7966 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7967 "HcalRemoteMonitoring/CMT/GLOBAL_"
7968 << runnumber <<
"/HO_CapID.html\">HO</a></td>" << std::endl;
7969 htmlFile <<
" <td><a "
7970 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7971 "HcalRemoteMonitoring/CMT/GLOBAL_"
7972 << runnumber <<
"/HF_CapID.html\">HF</a></td>" << std::endl;
7982 htmlFile <<
" <td><a "
7983 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7984 "HcalRemoteMonitoring/CMT/GLOBAL_"
7985 << runnumber <<
"/HB_ADCampl.html\">HB</a></td>" << std::endl;
7986 htmlFile <<
" <td><a "
7987 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7988 "HcalRemoteMonitoring/CMT/GLOBAL_"
7989 << runnumber <<
"/HE_ADCampl.html\">HE</a></td>" << std::endl;
7990 htmlFile <<
" <td><a "
7991 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7992 "HcalRemoteMonitoring/CMT/GLOBAL_"
7993 << runnumber <<
"/HO_ADCampl.html\">HO</a></td>" << std::endl;
7994 htmlFile <<
" <td><a "
7995 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7996 "HcalRemoteMonitoring/CMT/GLOBAL_"
7997 << runnumber <<
"/HF_ADCampl.html\">HF</a></td>" << std::endl;
8000 htmlFile <<
" <td><a "
8001 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8002 "HcalRemoteMonitoring/CMT/GLOBAL_"
8003 << runnumber <<
"/HB_Width.html\">HB</a></td>" << std::endl;
8004 htmlFile <<
" <td><a "
8005 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8006 "HcalRemoteMonitoring/CMT/GLOBAL_"
8007 << runnumber <<
"/HE_Width.html\">HE</a></td>" << std::endl;
8008 htmlFile <<
" <td><a "
8009 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8010 "HcalRemoteMonitoring/CMT/GLOBAL_"
8011 << runnumber <<
"/HO_Width.html\">HO</a></td>" << std::endl;
8012 htmlFile <<
" <td><a "
8013 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8014 "HcalRemoteMonitoring/CMT/GLOBAL_"
8015 << runnumber <<
"/HF_Width.html\">HF</a></td>" << std::endl;
8018 htmlFile <<
" <td><a "
8019 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8020 "HcalRemoteMonitoring/CMT/GLOBAL_"
8021 << runnumber <<
"/HB_Ratio.html\">HB</a></td>" << std::endl;
8022 htmlFile <<
" <td><a "
8023 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8024 "HcalRemoteMonitoring/CMT/GLOBAL_"
8025 << runnumber <<
"/HE_Ratio.html\">HE</a></td>" << std::endl;
8026 htmlFile <<
" <td><a "
8027 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8028 "HcalRemoteMonitoring/CMT/GLOBAL_"
8029 << runnumber <<
"/HO_Ratio.html\">HO</a></td>" << std::endl;
8030 htmlFile <<
" <td><a "
8031 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8032 "HcalRemoteMonitoring/CMT/GLOBAL_"
8033 << runnumber <<
"/HF_Ratio.html\">HF</a></td>" << std::endl;
8036 htmlFile <<
" <td><a "
8037 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8038 "HcalRemoteMonitoring/CMT/GLOBAL_"
8039 << runnumber <<
"/HB_Tmean.html\">HB</a></td>" << std::endl;
8040 htmlFile <<
" <td><a "
8041 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8042 "HcalRemoteMonitoring/CMT/GLOBAL_"
8043 << runnumber <<
"/HE_Tmean.html\">HE</a></td>" << std::endl;
8044 htmlFile <<
" <td><a "
8045 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8046 "HcalRemoteMonitoring/CMT/GLOBAL_"
8047 << runnumber <<
"/HO_Tmean.html\">HO</a></td>" << std::endl;
8048 htmlFile <<
" <td><a "
8049 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8050 "HcalRemoteMonitoring/CMT/GLOBAL_"
8051 << runnumber <<
"/HF_Tmean.html\">HF</a></td>" << std::endl;
8054 htmlFile <<
" <td><a "
8055 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8056 "HcalRemoteMonitoring/CMT/GLOBAL_"
8057 << runnumber <<
"/HB_Tmax.html\">HB</a></td>" << std::endl;
8058 htmlFile <<
" <td><a "
8059 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8060 "HcalRemoteMonitoring/CMT/GLOBAL_"
8061 << runnumber <<
"/HE_Tmax.html\">HE</a></td>" << std::endl;
8062 htmlFile <<
" <td><a "
8063 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8064 "HcalRemoteMonitoring/CMT/GLOBAL_"
8065 << runnumber <<
"/HO_Tmax.html\">HO</a></td>" << std::endl;
8066 htmlFile <<
" <td><a "
8067 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8068 "HcalRemoteMonitoring/CMT/GLOBAL_"
8069 << runnumber <<
"/HF_Tmax.html\">HF</a></td>" << std::endl;
8072 htmlFile <<
"</tr>" << std::endl;
8073 htmlFile <<
"</table>" << std::endl;
8074 htmlFile <<
"<br>" << std::endl;
8078 htmlFile <<
"<h2> 4. Table of estimator-values in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8080 htmlFile <<
"<h2> 4. Table of average Nbcs in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8081 htmlFile <<
"<table>" << std::endl;
8083 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8085 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
8087 for (
int sub = 1; sub <= 4; sub++) {
8090 int kkkkkkmax = k_max[sub];
8091 if ((sub == 4 || sub == 2) &&
test == 1)
8092 kkkkkkmax = k_maxHFupgrade[sub];
8096 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8097 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HBdep " <<
k <<
" </td>" << std::endl;
8099 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8100 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HBdepth " <<
k <<
" </td>" << std::endl;
8102 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8103 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HBdepth " <<
k <<
" </td>" << std::endl;
8105 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8106 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HBdepth " <<
k <<
" </td>" << std::endl;
8108 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8109 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HBdep " <<
k <<
" </td>" << std::endl;
8111 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8112 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HBdep " <<
k <<
" </td>" << std::endl;
8116 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8117 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HEdep " <<
k <<
" </td>" << std::endl;
8119 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8120 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HEdepth " <<
k <<
" </td>" << std::endl;
8122 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8123 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HEdepth " <<
k <<
" </td>" << std::endl;
8125 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8126 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HEdepth " <<
k <<
" </td>" << std::endl;
8128 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8129 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HEdep " <<
k <<
" </td>" << std::endl;
8131 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8132 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HEdep " <<
k <<
" </td>" << std::endl;
8136 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8137 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HOdep " <<
k <<
" </td>" << std::endl;
8139 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8140 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HOdepth " <<
k <<
" </td>" << std::endl;
8142 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8143 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HOdepth " <<
k <<
" </td>" << std::endl;
8145 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8146 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HOdepth " <<
k <<
" </td>" << std::endl;
8148 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8149 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HOdep " <<
k <<
" </td>" << std::endl;
8151 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8152 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HOdep " <<
k <<
" </td>" << std::endl;
8156 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8157 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HFdep " <<
k <<
" </td>" << std::endl;
8159 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8160 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HFdepth " <<
k <<
" </td>" << std::endl;
8162 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8163 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HFdepth " <<
k <<
" </td>" << std::endl;
8165 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8166 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HFdepth " <<
k <<
" </td>" << std::endl;
8168 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8169 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HFdep " <<
k <<
" </td>" << std::endl;
8171 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8172 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HFdep " <<
k <<
" </td>" << std::endl;
8175 htmlFile <<
"</tr>" << std::endl;
8195 for (
int i = 1;
i <= MaxLum;
i++) {
8198 for (
int sub = 1; sub <= 4; sub++) {
8199 int kkkkkkmax = k_max[sub];
8200 if ((sub == 4 || sub == 2) &&
test == 1)
8201 kkkkkkmax = k_maxHFupgrade[sub];
8202 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8204 if (sub == 2 &&
k > 3) {
8206 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8214 raw_class =
"<td class=\"s2\" align=\"center\">";
8216 raw_class =
"<td class=\"s3\" align=\"center\">";
8217 htmlFile <<
"<tr>" << std::endl;
8218 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8220 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8221 for (
int sub = 1; sub <= 4; sub++) {
8222 int kkkkkkmax = k_max[sub];
8223 if ((sub == 4 || sub == 2) &&
test == 1)
8224 kkkkkkmax = k_maxHFupgrade[sub];
8225 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8226 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8227 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8228 <<
"</td>" << std::endl;
8230 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8260 htmlFile <<
"</tr>" << std::endl;
8265 htmlFile <<
"</table>" << std::endl;
8266 htmlFile <<
"<br>" << std::endl;
8267 htmlFile <<
"</body> " << std::endl;
8268 htmlFile <<
"</html> " << std::endl;
8275 htmlFile.open(
"SummedAmplitudes_GL.html");
8276 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8277 htmlFile <<
"<head>" << std::endl;
8278 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8279 htmlFile <<
"<title> for summed Amplitudes of each sub-detector </title>" << std::endl;
8280 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8281 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8283 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8284 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8285 "text-align: center;}"
8287 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8288 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8289 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8290 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8291 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8293 htmlFile <<
"</style>" << std::endl;
8294 htmlFile <<
"<body>" << std::endl;
8295 htmlFile <<
"<h1> Averaged Summed Amplitudes & corresponding occupancy of each sub-detector in Global Run = "
8296 << runnumber <<
" </h1>" << std::endl;
8297 htmlFile <<
"<a name=\"Top\"></a>\n";
8298 htmlFile <<
"<b>Contents:<br>\n";
8299 htmlFile <<
"1. <a href=\"#SAhigh\">average SA&Occupancy for Signal </a><br>\n";
8300 htmlFile <<
"2. <a href=\"#SAlow\">average SA&Occupancy for NoSignal </a><br>\n";
8301 htmlFile <<
"3. <a href=\"#SAmax\"> maxSA & maxOccupancy; SA & Occupancy; </a><br>\n";
8302 htmlFile <<
"4. <a href=\"#FullTable\">Table(avA; avSA; avOccupancy; maxSA; maxOccupancy;) </a><br>\n";
8304 htmlFile <<
"<h2> Clarifying on averaged Summed Amplitude (avSA) : </h2>" << std::endl;
8305 htmlFile <<
"<h3> Summed Amplitudes (SA) are averaged over all events of each LS: avSA_LS = SUM (SA_eventsInLS) / "
8306 "N_eventsInLS ,</h3>"
8308 htmlFile <<
"<h3> where SA = SUM(A_i) ,and means that Amplitude is summed over all sub-detector channels, </h3>"
8310 htmlFile <<
"<h3> where A_i = SUM(A_depth) denotes channel amplitude summed over depths; </h3>" << std::endl;
8312 htmlFile <<
" <td><a "
8313 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8314 "HcalRemoteMonitoring/CMT/SAwriteup.html\"> see more details for SummedAmplitudes</a></td>"
8316 htmlFile <<
"<h2> Apply cuts on A_i to take into account channels with or/and without a'la Signal: </h2>"
8318 htmlFile <<
" <img src=\"ChannelDepthsummedAmplitudes.png\" />" << std::endl;
8319 htmlFile <<
"<br>" << std::endl;
8320 htmlFile <<
"<br>" << std::endl;
8321 htmlFile <<
"<a name=\"SAhigh\"></a>\n";
8322 htmlFile <<
"<h1> 1. for channels with signal </h1>" << std::endl;
8323 htmlFile <<
"<br>" << std::endl;
8324 htmlFile <<
"<h2> for HB: A_i> 80; </h2>" << std::endl;
8325 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HB.png\" />" << std::endl;
8326 htmlFile <<
"<br>" << std::endl;
8327 htmlFile <<
"<h2> for HE: A_i> 200;</h2>" << std::endl;
8328 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HE.png\" />" << std::endl;
8329 htmlFile <<
"<br>" << std::endl;
8330 htmlFile <<
"<h2> for HO: A_i> 1200;</h2>" << std::endl;
8331 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HO.png\" />" << std::endl;
8332 htmlFile <<
"<br>" << std::endl;
8333 htmlFile <<
"<h2> for HF: A_i> 600;</h2>" << std::endl;
8334 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HF.png\" />" << std::endl;
8335 htmlFile <<
"<br>" << std::endl;
8336 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8338 htmlFile <<
"<a name=\"SAlow\"></a>\n";
8339 htmlFile <<
"<h1> 2. for channels w/o signal </h1>" << std::endl;
8340 htmlFile <<
"<br>" << std::endl;
8341 htmlFile <<
"<h2> for HB: A_i< 80;</h2>" << std::endl;
8342 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HB.png\" />" << std::endl;
8343 htmlFile <<
"<br>" << std::endl;
8344 htmlFile <<
"<h2> for HE: A_i< 200;</h2>" << std::endl;
8345 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HE.png\" />" << std::endl;
8346 htmlFile <<
"<br>" << std::endl;
8347 htmlFile <<
"<h2> for HO: A_i< 1200;</h2>" << std::endl;
8348 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HO.png\" />" << std::endl;
8349 htmlFile <<
"<br>" << std::endl;
8350 htmlFile <<
"<h2> for HF: A_i< 600;</h2>" << std::endl;
8351 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HF.png\" />" << std::endl;
8352 htmlFile <<
"<br>" << std::endl;
8353 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8355 htmlFile <<
"<br>" << std::endl;
8356 htmlFile <<
"<br>" << std::endl;
8357 htmlFile <<
"<a name=\"SAmax\"></a>\n";
8358 htmlFile <<
"<h1> 3. four plots: ---1---> max SA ---2---> max Occupancy ---3---> SA ---4---> Occupancy over all "
8359 "events of LS </h1>"
8361 htmlFile <<
"<br>" << std::endl;
8363 htmlFile <<
"<h2> for HB: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8364 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HB.png\" />" << std::endl;
8366 " ......(forCut:SAmax>60000) N= "
8367 << countamplmaxHB <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHB <<
" </h2>" << std::endl;
8369 " ......(forCut:SA>60000) N= "
8370 << countamplHB <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHB <<
" </h2>" << std::endl;
8371 htmlFile <<
"<br>" << std::endl;
8372 htmlFile <<
"<h3> ONLY for HB (cross-check): channel Amplitudes for events in the Tail (averaged): </h3>"
8374 htmlFile <<
" <img src=\"AtaildepthHB.png\" />" << std::endl;
8375 htmlFile <<
"<br>" << std::endl;
8377 htmlFile <<
"<h2> for HE: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8378 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HE.png\" />" << std::endl;
8380 " ......(forCut:SAmax>60000) N= "
8381 << countamplmaxHE <<
" ...... (forCut:OCCUPmax>1200) N= " << countoccumaxHE <<
" </h2>" << std::endl;
8383 " ......(forCut:SA>60000) N= "
8384 << countamplHE <<
" ...... (forCut:OCCUP>1200) N= " << countoccuHE <<
" </h2>" << std::endl;
8385 htmlFile <<
"<br>" << std::endl;
8387 htmlFile <<
"<h2> for HO: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8388 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HO.png\" />" << std::endl;
8390 " ......(forCut:SAmax>150000) N= "
8391 << countamplmaxHO <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHO <<
" </h2>" << std::endl;
8393 " ......(forCut:SA>150000) N= "
8394 << countamplHO <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHO <<
" </h2>" << std::endl;
8395 htmlFile <<
"<br>" << std::endl;
8397 htmlFile <<
"<h2> for HF: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8398 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HF.png\" />" << std::endl;
8400 " ......(forCut:SAmax>22000) N= "
8401 << countamplmaxHF <<
" ...... (forCut:OCCUPmax>860) N= " << countoccumaxHF <<
" </h2>" << std::endl;
8403 " ......(forCut:SA>22000) N= "
8404 << countamplHF <<
" ...... (forCut:OCCUP>860) N= " << countoccuHF <<
" </h2>" << std::endl;
8405 htmlFile <<
"<br>" << std::endl;
8406 htmlFile <<
"<h2> Occupancy HF (ONLY) vs LS </h2>" << std::endl;
8407 htmlFile <<
" <img src=\"sumOccupancyHF.png\" />" << std::endl;
8408 htmlFile <<
"<br>" << std::endl;
8409 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8411 htmlFile <<
"<a name=\"FullTable\"></a>\n";
8412 htmlFile <<
"<h2> 4.Lumisection Status: </h2>" << std::endl;
8413 htmlFile <<
"<h3> Legends: HBdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8414 << Cut0[1][1][1] << std::endl;
8415 htmlFile <<
"<h3> Legends: HEdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8416 << Cut0[1][2][1] << std::endl;
8417 htmlFile <<
"<h3> Legends: HOdepth4 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8418 << Cut0[1][3][4] << std::endl;
8419 htmlFile <<
"<h3> Legends: HFdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8420 << Cut0[1][4][1] << std::endl;
8421 htmlFile <<
"<br>" << std::endl;
8423 htmlFile <<
"<br>" << std::endl;
8424 htmlFile <<
"<table>" << std::endl;
8426 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8428 htmlFile <<
"<td class=\"s1\" align=\"center\"> Num.of ev.</td>" << std::endl;
8433 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HB Depth1</td>" << std::endl;
8434 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HE Depth1</td>" << std::endl;
8435 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HO Depth4</td>" << std::endl;
8436 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HF Depth1</td>" << std::endl;
8438 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (Signal) </td>" << std::endl;
8439 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (Signal) </td>" << std::endl;
8440 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (Signal) </td>" << std::endl;
8441 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (Signal) </td>" << std::endl;
8443 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (NoSignal) </td>" << std::endl;
8444 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (NoSignal) </td>" << std::endl;
8445 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (NoSignal) </td>" << std::endl;
8446 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (NoSignal) </td>" << std::endl;
8448 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HB </td>" << std::endl;
8449 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HB </td>" << std::endl;
8450 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HF </td>" << std::endl;
8451 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HF </td>" << std::endl;
8453 htmlFile <<
"</tr>" << std::endl;
8456 for (
int i = 1;
i <= MaxLum;
i++) {
8458 raw_class =
"<td class=\"s2\" align=\"center\">";
8460 raw_class =
"<td class=\"s3\" align=\"center\">";
8461 htmlFile <<
"<tr>" << std::endl;
8463 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8466 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8471 for (
int sub = 1; sub <= 4; sub++) {
8472 for (
int k = k_min[sub];
k <= k_min[sub];
k++) {
8473 if (HistNumBadChanDepth[test][sub][
k]->GetBinContent(
i) > Cut0[test][sub][
k])
8474 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8475 <<
"</td>" << std::endl;
8478 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8481 if (SummedAmplitudeHisto[0]) {
8482 htmlFile << raw_class << SummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8483 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8484 htmlFile << raw_class << SummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8485 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8487 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8488 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8489 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8490 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8492 htmlFile << raw_class << MaxxSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8493 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8494 htmlFile << raw_class << MaxxSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8495 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8497 htmlFile <<
"</tr>" << std::endl;
8500 htmlFile <<
"</table>" << std::endl;
8501 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8503 htmlFile <<
"<br>" << std::endl;
8504 htmlFile <<
"</body> " << std::endl;
8505 htmlFile <<
"</html> " << std::endl;
8547 htmlFile.open(
"CMTresults.html");
8548 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8549 htmlFile <<
"<head>" << std::endl;
8550 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8551 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8552 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8553 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8555 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8556 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8557 "text-align: center;}"
8559 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8560 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8561 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8562 htmlFile <<
"</style>" << std::endl;
8563 htmlFile <<
"<body>" << std::endl;
8564 htmlFile <<
"<h1> LS-certification (recommendation) from analysis of CMT-dependencies of THIS run </h1>"
8566 htmlFile <<
"<br>" << std::endl;
8567 htmlFile <<
"<br>" << std::endl;
8568 htmlFile <<
"<h2> - List of suspicious LSs: </h2> " << std::endl;
8569 htmlFile <<
"<br>" << std::endl;
8570 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8571 htmlFile <<
"<br>" << std::endl;
8572 htmlFile <<
"<br>" << std::endl;
8573 htmlFile <<
"<br>" << std::endl;
8574 htmlFile <<
"<h2> - Comments: </h2> " << std::endl;
8575 htmlFile <<
"<br>" << std::endl;
8576 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8577 htmlFile <<
"<br>" << std::endl;
8578 htmlFile <<
"<br>" << std::endl;
8579 htmlFile <<
"<br>" << std::endl;
8580 htmlFile <<
"</body> " << std::endl;
8581 htmlFile <<
"</html> " << std::endl;
8587 htmlFile.open(
"LumiList.html");
8588 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8589 htmlFile <<
"<head>" << std::endl;
8590 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8591 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8592 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8593 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8595 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8596 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8597 "text-align: center;}"
8599 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8600 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8601 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8602 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8603 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8605 htmlFile <<
"</style>" << std::endl;
8606 htmlFile <<
"<body>" << std::endl;
8608 htmlFile <<
"<h1> Certification Monitoring Tool, GLOBAL RUN = " << runnumber <<
". </h1>" << std::endl;
8609 htmlFile <<
"<br>" << std::endl;
8610 htmlFile <<
" <td><a "
8611 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8612 "HcalRemoteMonitoring/CMT/GLOBAL_"
8613 << runnumber <<
"/CMTresults.html\"> CMT-analysis RESULTS (for this run) </a></td>" << std::endl;
8614 htmlFile <<
"<br>" << std::endl;
8615 htmlFile <<
"<br>" << std::endl;
8618 htmlFile <<
"<h2> 1. General information (Full number of LS = " << MaxLum <<
" ). </h2>" << std::endl;
8619 htmlFile <<
" <img src=\"LumiEvent.png\" />" << std::endl;
8620 htmlFile <<
"<br>" << std::endl;
8622 htmlFile <<
"<h2> 2. HCAL status for different criteria </h2>" << std::endl;
8624 htmlFile <<
" <td><a "
8625 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8626 "HcalRemoteMonitoring/CMT/HELP.html\"> Description of criteria for bad channel selection</a></td>"
8628 htmlFile <<
"<br>" << std::endl;
8629 htmlFile <<
"<table width=\"600\">" << std::endl;
8630 htmlFile <<
"<tr>" << std::endl;
8631 htmlFile <<
" <td><a "
8632 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8633 "HcalRemoteMonitoring/CMT/GLOBAL_"
8634 << runnumber <<
"/CapID_GL.html\">Cap ID errors</a></td>" << std::endl;
8636 htmlFile <<
" <td><a "
8637 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8638 "HcalRemoteMonitoring/CMT/GLOBAL_"
8639 << runnumber <<
"/ADCampl_GL.html\">Amplitude</a></td>" << std::endl;
8641 htmlFile <<
" <td><a "
8642 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8643 "HcalRemoteMonitoring/CMT/GLOBAL_"
8644 << runnumber <<
"/Width_GL.html\">Width</a></td>" << std::endl;
8645 htmlFile <<
" <td><a "
8646 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8647 "HcalRemoteMonitoring/CMT/GLOBAL_"
8648 << runnumber <<
"/Ratio_GL.html\">Ratio</a></td>" << std::endl;
8649 htmlFile <<
" <td><a "
8650 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8651 "HcalRemoteMonitoring/CMT/GLOBAL_"
8652 << runnumber <<
"/Tmean_GL.html\">TS mean</a></td>" << std::endl;
8653 htmlFile <<
" <td><a "
8654 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8655 "HcalRemoteMonitoring/CMT/GLOBAL_"
8656 << runnumber <<
"/Tmax_GL.html\">TS max</a></td>" << std::endl;
8658 htmlFile <<
" <td><a "
8659 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8660 "HcalRemoteMonitoring/CMT/GLOBAL_"
8661 << runnumber <<
"/SummedAmplitudes_GL.html\">SummedAmplitudes</a></td>" << std::endl;
8663 htmlFile <<
"</tr>" << std::endl;
8664 htmlFile <<
"</table>" << std::endl;
8665 htmlFile <<
"<br>" << std::endl;
8666 htmlFile <<
"</body> " << std::endl;
8667 htmlFile <<
"</html> " << std::endl;
8682 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin) {
8683 if (lastBin > hSrc->GetNbinsX()) {
8684 std::cout <<
"copyContents from " << hSrc->GetName() <<
": histo has " << hSrc->GetNbinsX()
8685 <<
" bins, when lastBin=" << lastBin <<
" was requested\n";
8689 (*hDest) =
new TH1F(hname, htitle, lastBin, 0, lastBin);
8690 (*hDest)->SetDirectory(0);
8691 (*hDest)->SetStats(0);
8693 for (
int ibin = 1; ibin <= lastBin; ibin++) {
8694 (*hDest)->SetBinContent(ibin, hSrc->GetBinContent(ibin));
8695 (*hDest)->SetBinError(ibin, hSrc->GetBinError(ibin));
int copyContents(TH1F **hDest, TString hname, TString htitle, const TH1F *hSrc, int lastBin)