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., 3500., 3500., 3500., 3500., 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_maxupgrade[5] = {0, 4, 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");
921 HistNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth3HBu");
922 HistNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HBu");
925 HistNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS3");
926 HistNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS4");
927 HistNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS5");
929 HistNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HEu");
930 HistNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth5HEu");
931 HistNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth6HEu");
932 HistNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth7HEu");
935 HistNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS8");
938 HistNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6");
939 HistNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7");
941 HistNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6u");
942 HistNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7u");
945 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
949 HistCutNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS1");
950 HistCutNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS2");
952 HistCutNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth3HBu");
953 HistCutNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HBu");
956 HistCutNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS3");
957 HistCutNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS4");
958 HistCutNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS5");
960 HistCutNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HEu");
961 HistCutNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth5HEu");
962 HistCutNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth6HEu");
963 HistCutNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth7HEu");
966 HistCutNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS8");
969 HistCutNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6");
970 HistCutNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7");
972 HistCutNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6u");
973 HistCutNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7u");
977 HistNumChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS1");
978 HistNumChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS2");
980 HistNumChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth3HBu");
981 HistNumChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HBu");
984 HistNumChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS3");
985 HistNumChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS4");
986 HistNumChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS5");
988 HistNumChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HEu");
989 HistNumChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth5HEu");
990 HistNumChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth6HEu");
991 HistNumChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth7HEu");
994 HistNumChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS8");
997 HistNumChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6");
998 HistNumChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7");
1000 HistNumChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6u");
1001 HistNumChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7u");
1004 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1006 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1012 HistNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS1");
1013 HistNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS2");
1015 HistNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS3");
1016 HistNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS4");
1017 HistNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS5");
1019 HistNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS8");
1021 HistNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS6");
1022 HistNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS7");
1024 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1026 HistCutNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS1");
1027 HistCutNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS2");
1029 HistCutNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS3");
1030 HistCutNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS4");
1031 HistCutNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS5");
1033 HistCutNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS8");
1035 HistCutNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS6");
1036 HistCutNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS7");
1038 HistNumChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS1");
1039 HistNumChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS2");
1041 HistNumChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS3");
1042 HistNumChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS4");
1043 HistNumChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS5");
1045 HistNumChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS8");
1047 HistNumChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS6");
1048 HistNumChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS7");
1050 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1055 HistNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS1");
1056 HistNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS2");
1058 HistNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS3");
1059 HistNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS4");
1060 HistNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplperLS5");
1062 HistNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplperLS8");
1064 HistNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS6");
1065 HistNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS7");
1067 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1069 HistCutNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS1");
1070 HistCutNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS2");
1072 HistCutNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS3");
1073 HistCutNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS4");
1074 HistCutNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS5");
1076 HistCutNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS8");
1078 HistCutNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS6");
1079 HistCutNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS7");
1081 HistNumChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS1");
1082 HistNumChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS2");
1084 HistNumChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS3");
1085 HistNumChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS4");
1086 HistNumChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplperLS5");
1088 HistNumChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplperLS8");
1090 HistNumChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS6");
1091 HistNumChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS7");
1093 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1098 HistNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS1");
1099 HistNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS2");
1101 HistNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS3");
1102 HistNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS4");
1103 HistNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS5");
1105 HistNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS8");
1107 HistNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS6");
1108 HistNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS7");
1110 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1112 HistCutNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS1");
1113 HistCutNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS2");
1115 HistCutNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS3");
1116 HistCutNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS4");
1117 HistCutNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS5");
1119 HistCutNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS8");
1121 HistCutNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS6");
1122 HistCutNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS7");
1124 HistNumChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS1");
1125 HistNumChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS2");
1127 HistNumChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS3");
1128 HistNumChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS4");
1129 HistNumChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS5");
1131 HistNumChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS8");
1133 HistNumChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS6");
1134 HistNumChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS7");
1136 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1141 HistNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS1");
1142 HistNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS2");
1144 HistNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS3");
1145 HistNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS4");
1146 HistNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS5");
1148 HistNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS8");
1150 HistNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS6");
1151 HistNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS7");
1153 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1155 HistCutNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS1");
1156 HistCutNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS2");
1158 HistCutNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS3");
1159 HistCutNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS4");
1160 HistCutNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS5");
1162 HistCutNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS8");
1164 HistCutNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS6");
1165 HistCutNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS7");
1167 HistNumChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS1");
1168 HistNumChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS2");
1170 HistNumChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS3");
1171 HistNumChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS4");
1172 HistNumChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS5");
1174 HistNumChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS8");
1176 HistNumChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS6");
1177 HistNumChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS7");
1179 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1182 for (
int sub = 1; sub <= 4; sub++) {
1183 if (sub == 1 &&
test != 1)
1185 if (sub == 1 &&
test == 1) {
1187 cFour1->Divide(2, 2);
1189 if (sub == 2 &&
test != 1)
1191 if (sub == 2 &&
test == 1) {
1193 cNine->Divide(3, 3);
1197 if (sub == 4 &&
test != 1)
1199 if (sub == 4 &&
test == 1) {
1201 cFour1->Divide(2, 2);
1204 int kkkkkkmax = k_max[sub];
1206 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
1207 kkkkkkmax = k_maxupgrade[sub];
1208 for (
int k = k_min[sub]; k <= kkkkkkmax; k++) {
1209 if (sub == 1 &&
test != 1)
1211 if (sub == 1 &&
test == 1)
1213 if (sub == 2 &&
test != 1)
1215 if (sub == 2 &&
test == 1)
1219 if (sub == 4 &&
test != 1)
1221 if (sub == 4 &&
test == 1)
1227 if (sub == 1 && k == 1) {
1230 for (
int x = 1;
x <= HistNumBadChanFull[
test]->GetXaxis()->GetNbins();
x++) {
1231 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
x);
1232 HistNumBadChanFull[
test]->SetBinContent(
x, HistNumBadChanFull[
test]->GetBinContent(
x) + ccc1);
1233 double ccc2 = HistNumChanDepth[
test][sub][
k]->GetBinContent(
x);
1234 HistNumChanFull[
test]->SetBinContent(
x, HistNumChanFull[
test]->GetBinContent(
x) + ccc2);
1239 HistNumBadChanDepth[
test][sub][
k]->Divide(
1240 HistNumBadChanDepth[
test][sub][k], HistNumChanDepth[
test][sub][k], 1, 1,
"B");
1242 for (
int x = 1;
x <= HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->GetNbins();
x++) {
1243 HistNumBadChanDepth[
test][sub][
k]->SetBinError(
float(
x), 0.01);
1248 HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1251 HistNumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
1252 HistNumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.4);
1253 HistNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetLabelSize(0.04);
1255 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
1257 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
1259 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
1261 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
1263 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 5\b");
1265 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 6\b");
1267 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 7\b");
1268 HistNumBadChanDepth[
test][sub][
k]->SetXTitle(
"LS \b");
1270 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"<Number of bad channels> \b");
1272 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"Averaged estimator \b");
1273 HistNumBadChanDepth[
test][sub][
k]->SetMarkerColor(2);
1274 HistNumBadChanDepth[
test][sub][
k]->SetLineColor(0);
1280 HistNumBadChanDepth[
test][sub][
k]->Draw(
"Error");
1318 if (sub == 1 &&
test != 1) {
1321 if (sub == 1 &&
test == 1) {
1324 if (sub == 2 &&
test != 1) {
1327 if (sub == 2 &&
test == 1) {
1333 if (sub == 4 &&
test != 1) {
1336 if (sub == 4 &&
test == 1) {
1344 cHE->Print(
"HistNBCMNHB.png");
1348 cHE->Print(
"HistNBCMNHE.png");
1352 cHB->Print(
"HistNBCMNHO.png");
1356 cHE->Print(
"HistNBCMNHF.png");
1363 cFour1->Print(
"HistADCamplHB.png");
1367 cNine->Print(
"HistADCamplHE.png");
1371 cHB->Print(
"HistADCamplHO.png");
1375 cFour1->Print(
"HistADCamplHF.png");
1381 cHE->Print(
"HistWidthHB.png");
1385 cHE->Print(
"HistWidthHE.png");
1389 cHB->Print(
"HistWidthHO.png");
1393 cHE->Print(
"HistWidthHF.png");
1399 cHE->Print(
"HistRatioHB.png");
1403 cHE->Print(
"HistRatioHE.png");
1407 cHB->Print(
"HistRatioHO.png");
1411 cHE->Print(
"HistRatioHF.png");
1417 cHE->Print(
"HistTmeanHB.png");
1421 cHE->Print(
"HistTmeanHE.png");
1425 cHB->Print(
"HistTmeanHO.png");
1429 cHE->Print(
"HistTmeanHF.png");
1435 cHE->Print(
"HistTmaxHB.png");
1439 cHE->Print(
"HistTmaxHE.png");
1443 cHB->Print(
"HistTmaxHO.png");
1447 cHE->Print(
"HistTmaxHF.png");
1454 for (
int x = 1;
x <= HistNumChanFull[6]->GetXaxis()->GetNbins();
x++) {
1455 HistNumChanFull[6]->SetBinContent(
x, 0.0);
1456 int depthsubcount = 0.;
1457 for (
int sub = 1; sub <= 4; sub++) {
1458 int kkkkkkmax = k_max[sub];
1459 if (sub == 4 || sub == 2 || sub == 1)
1460 kkkkkkmax = k_maxupgrade[sub];
1462 for (
int k = k_min[sub]; k <= kkkkkkmax; k++) {
1466 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
x);
1467 HistNumChanFull[6]->SetBinContent(
x, HistNumChanFull[6]->GetBinContent(
x) + ccc1);
1470 if (depthsubcount > 0.) {
1471 HistNumChanFull[6]->SetBinContent(
x, (HistNumChanFull[6]->GetBinContent(
x)) / depthsubcount);
1473 HistNumChanFull[6]->SetBinContent(
x, (HistNumChanFull[6]->GetBinContent(
x)) / 8.);
1485 HistNumBadChanFull[
test]->Divide(HistNumBadChanFull[
test], HistNumChanFull[test], 1, 1,
"B");
1486 TH1F *kfitq =
new TH1F(
"kfitq",
"", MaxLum, 1., MaxLum + 1.);
1487 int nx = kfitq->GetXaxis()->GetNbins();
1488 for (
int i = 1;
i <= nx;
i++) {
1489 double ccc1 = HistNumBadChanFull[
test]->GetBinContent(
i);
1491 kfitq->Fill(
float(
i), ccc1);
1492 kfitq->SetBinError(
float(
i), 0.01);
1495 kfitq->SetMarkerStyle(20);
1496 kfitq->SetMarkerSize(0.4);
1497 kfitq->GetYaxis()->SetLabelSize(0.04);
1499 kfitq->SetTitle(
"Average Nbch for whole Hcal \b");
1501 kfitq->SetTitle(
"Averaged estimator for whole Hcal \b");
1502 kfitq->SetXTitle(
"LS \b");
1504 kfitq->SetYTitle(
"<Number of bad channels> \b");
1506 kfitq->SetYTitle(
"Averaged estimator \b");
1507 kfitq->SetMarkerColor(2);
1508 kfitq->SetLineColor(0);
1510 kfitq->Draw(
"Error");
1530 TH1F *lpuio =
new TH1F(
"lpuio",
"", MaxLum, 1., MaxLum + 1.);
1531 int nx = lpuio->GetXaxis()->GetNbins();
1532 for (
int i = 1;
i <= nx;
i++) {
1533 double ccc1 = HistNumChanFull[6]->GetBinContent(
i);
1535 lpuio->Fill(
float(
i), ccc1);
1536 lpuio->SetBinError(
float(
i), 0.01);
1539 lpuio->SetMarkerStyle(20);
1540 lpuio->SetMarkerSize(0.4);
1541 lpuio->GetYaxis()->SetLabelSize(0.04);
1542 lpuio->SetTitle(
"Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1543 lpuio->SetXTitle(
"LS \b");
1544 lpuio->SetYTitle(
"Mean of Averaged estimator \b");
1545 lpuio->SetMarkerColor(2);
1546 lpuio->SetLineColor(0);
1548 lpuio->Draw(
"Error");
1551 cHB->Print(
"HistCapID.png");
1555 cHE->Print(
"HistADCAmpl.png");
1559 cHB->Print(
"HistWidth.png");
1563 cHB->Print(
"HistRatio.png");
1567 cHB->Print(
"HistTmean.png");
1571 cHB->Print(
"HistTmax.png");
1585 TH1F *HistAbnormNumBadChanDepth[5][5];
1591 HistAbnormNumBadChanDepth[1][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HB");
1592 HistAbnormNumBadChanDepth[1][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HB");
1593 HistAbnormNumBadChanDepth[2][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HE");
1594 HistAbnormNumBadChanDepth[2][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HE");
1595 HistAbnormNumBadChanDepth[2][3] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth3_HE");
1596 HistAbnormNumBadChanDepth[3][4] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth4_HO");
1597 HistAbnormNumBadChanDepth[4][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HF");
1598 HistAbnormNumBadChanDepth[4][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HF");
1600 for (
int sub = 1; sub <= 4; sub++) {
1609 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1621 HistAbnormNumBadChanDepth[sub][
k]->Divide(
1622 HistAbnormNumBadChanDepth[sub][k], HistNumChanDepth[0][sub][k], 1, 1,
"B");
1624 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 1\b");
1626 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 2\b");
1628 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 3\b");
1630 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 4\b");
1631 HistAbnormNumBadChanDepth[sub][
k]->SetXTitle(
"LS \b");
1632 HistAbnormNumBadChanDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1633 if (MaxLum <= 1000) {
1634 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerStyle(20);
1635 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerSize(0.5);
1636 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerColor(1);
1637 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(0);
1638 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1639 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"P");
1641 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(1);
1642 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1643 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"L");
1647 cHB->Print(
"Hist_CAPID_Abnorm_HB.png");
1651 cHE->Print(
"Hist_CAPID_Abnorm_HE.png");
1655 cONE->Print(
"Hist_CAPID_Abnorm_HO.png");
1659 cHB->Print(
"Hist_CAPID_Abnorm_HF.png");
1668 TH1F *HistPortBadEventsDepth[5][5];
1670 HistPortBadEventsDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HB");
1671 HistPortBadEventsDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HB");
1672 HistPortBadEventsDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HE");
1673 HistPortBadEventsDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HE");
1674 HistPortBadEventsDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrateC_depth3_HE");
1675 HistPortBadEventsDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrateC_depth4_HO");
1676 HistPortBadEventsDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HF");
1677 HistPortBadEventsDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HF");
1679 TH1F *HistNumRateDepth[5][5];
1680 HistNumRateDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
1681 HistNumRateDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
1682 HistNumRateDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
1683 HistNumRateDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
1684 HistNumRateDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
1685 HistNumRateDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
1686 HistNumRateDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
1687 HistNumRateDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
1689 for (
int sub = 1; sub <= 4; sub++) {
1698 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1710 HistPortBadEventsDepth[sub][
k]->Divide(HistPortBadEventsDepth[sub][k], HistNumRateDepth[sub][k], 1, 1,
"B");
1713 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1715 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1717 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1719 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1720 HistPortBadEventsDepth[sub][
k]->SetXTitle(
"LS \b");
1721 HistPortBadEventsDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1722 if (MaxLum <= 1000) {
1723 HistPortBadEventsDepth[sub][
k]->SetMarkerStyle(20);
1724 HistPortBadEventsDepth[sub][
k]->SetMarkerSize(0.5);
1725 HistPortBadEventsDepth[sub][
k]->SetMarkerColor(1);
1726 HistPortBadEventsDepth[sub][
k]->SetLineColor(0);
1727 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1728 HistPortBadEventsDepth[sub][
k]->Draw(
"P");
1730 HistPortBadEventsDepth[sub][
k]->SetLineColor(1);
1731 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1732 HistPortBadEventsDepth[sub][
k]->Draw(
"L");
1736 cHB->Print(
"HistPortHB.png");
1740 cHE->Print(
"HistPortHE.png");
1744 cONE->Print(
"HistPortHO.png");
1748 cHB->Print(
"HistPortHF.png");
1759 TH1F *HistNBadChsDepth[5][5];
1761 HistNBadChsDepth[1][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HB");
1762 HistNBadChsDepth[1][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HB");
1763 HistNBadChsDepth[2][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HE");
1764 HistNBadChsDepth[2][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HE");
1765 HistNBadChsDepth[2][3] = (TH1F *)hfile->Get(
"h_nbadchannels_depth3_HE");
1766 HistNBadChsDepth[3][4] = (TH1F *)hfile->Get(
"h_nbadchannels_depth4_HO");
1767 HistNBadChsDepth[4][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HF");
1768 HistNBadChsDepth[4][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HF");
1770 for (
int sub = 1; sub <= 4; sub++) {
1779 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1793 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1795 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1797 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1799 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1800 HistNBadChsDepth[sub][
k]->SetXTitle(
"Number of bad channels\b");
1801 HistNBadChsDepth[sub][
k]->SetYTitle(
"Number of events\b");
1806 HistNBadChsDepth[sub][
k]->Draw(
"");
1809 cHB->Print(
"HistNBadChsHB.png");
1813 cHE->Print(
"HistNBadChsHE.png");
1817 cONE->Print(
"HistNBadChsHO.png");
1821 cHB->Print(
"HistNBadChsHF.png");
1832 int flagErrAB_HB[2];
1833 flagErrAB_HB[0] = -1;
1834 flagErrAB_HB[1] = -1;
1835 double avedelta_HB = 0.;
1836 int lastLumiBin_HB = -1;
1837 int LSofFirstErrB_HB = -1;
1839 const int specCountA = 4;
1840 const int specColors[specCountA] = {1, 2, 3, 4};
1841 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS1_P1",
"h_sum0ADCAmplperLS1_P1"},
1842 {
"h_sumADCAmplperLS1_P2",
"h_sum0ADCAmplperLS1_P2"},
1843 {
"h_sumADCAmplperLS1_M1",
"h_sum0ADCAmplperLS1_M1"},
1844 {
"h_sumADCAmplperLS1_M2",
"h_sum0ADCAmplperLS1_M2"}};
1846 std::vector<TH1F *> hV;
1847 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
1854 for (
int i = 0;
i < specCountA;
i++) {
1856 std::cout <<
"debugger: errA_HB : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
1858 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
1859 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
1861 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1862 ptext->AddText(
"Missing histo");
1864 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
1865 ptext->AddText(hnames[i][0]);
1868 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
1869 ptext->AddText(hnames[i][1]);
1874 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
1875 hERT1orig->Divide(h1, h0, 1, 1,
"B");
1877 if ((lastLumiBin_HB < 0) && (i == 0)) {
1878 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1879 if (hERT1orig->GetBinContent(ibin) == 0)
1880 lastLumiBin_HB = ibin;
1884 lastLumiBin_HB += 3;
1885 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1886 lastLumiBin_HB = -1;
1889 if (lastLumiBin_HB > 1) {
1890 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HB)) {
1891 std::cout <<
"code failed" << std::endl;
1897 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1898 hV.push_back(hERT1);
1899 hERT1->SetMarkerStyle(20);
1900 hERT1->SetMarkerSize(0.4);
1901 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1902 hERT1->SetMarkerColor(specColors[i]);
1903 hERT1->SetLineColor(0);
1907 if (hERT1 != hERT1orig)
1910 hs->Draw(
"LPE1 nostack");
1912 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1913 hs->Draw(
"LPE1 nostack");
1919 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
1921 if (
int(hV.size()) == specCountA) {
1922 flagErrAB_HB[0] = 0;
1923 double sumdelta = 0.;
1925 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1927 double maxdelta = 0.;
1928 for (
unsigned int i = 0; i < hV.size(); i++) {
1929 const TH1F *hi = hV[
i];
1930 for (
unsigned int j = 1;
j < hV.size();
j++) {
1931 const TH1F *hj = hV[
j];
1932 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1933 if (delta > maxdelta)
1937 if (maxdelta > 0.) {
1938 diff->Fill(maxdelta);
1939 sumdelta += maxdelta;
1944 avedelta_HB = sumdelta / nnndelta;
1945 std::cout <<
"******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1946 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1947 flagErrAB_HB[0] = 1;
1950 diff->SetMarkerStyle(20);
1951 diff->SetMarkerSize(0.8);
1952 diff->SetXTitle(
"max difference \b");
1953 diff->SetMarkerColor(2);
1954 diff->SetLineColor(0);
1957 diff->Draw(
"Error");
1960 cHB->Print(
"HistErrA_HB.png");
1967 for (
unsigned int i = 0; i < hV.size(); i++)
1974 const int specCountB = 4;
1975 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS1",
"h_2D0sumErrorBLS1"},
1976 {
"h_sumErrorBperLS1",
"h_sum0ErrorBperLS1"},
1977 {
"h_2DsumErrorBLS2",
"h_2D0sumErrorBLS2"},
1978 {
"h_sumErrorBperLS2",
"h_sum0ErrorBperLS2"}};
1985 TH1F *hRate2orig =
NULL;
1986 TH2F *h2Cefz6 =
NULL;
1987 TString hname1 = hnames[2 *
depth - 2][0];
1988 TString hname0 = hnames[2 *
depth - 2][1];
1989 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
1990 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
1992 std::cout <<
"debugger: errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
1993 if (!twod1 || !twod0) {
1994 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1995 ptext->AddText(
"Missing histos");
1997 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
1998 ptext->AddText(hname1);
2001 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2002 ptext->AddText(hname0);
2006 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2007 h2Cefz6->SetTitle(Form(
"HB Depth %d \b",
depth));
2008 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2013 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2014 h2Cefz6->SetMarkerStyle(20);
2015 h2Cefz6->SetMarkerSize(0.4);
2017 h2Cefz6->SetXTitle(
"#eta \b");
2018 h2Cefz6->SetYTitle(
"#phi \b");
2019 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HB Depth%d \b",
depth));
2020 h2Cefz6->SetMarkerColor(2);
2021 h2Cefz6->SetLineColor(2);
2022 h2Cefz6->Draw(
"COLZ");
2029 hname1 = hnames[2 *
depth - 1][0];
2030 hname0 = hnames[2 *
depth - 1][1];
2031 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2032 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2034 std::cout <<
"errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2036 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2037 ptext->AddText(
"Missing histo");
2039 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2040 ptext->AddText(hname1);
2043 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2044 ptext->AddText(hname0);
2051 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2052 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2054 TH1F *hRate2 =
NULL;
2055 if (lastLumiBin_HB > 1) {
2056 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HB)) {
2057 std::cout <<
"code failed" << std::endl;
2061 hRate2 = hRate2orig;
2063 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2064 hRate2->SetMarkerStyle(20);
2065 hRate2->SetMarkerSize(0.8);
2067 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b",
depth));
2068 hRate2->SetMarkerColor(2);
2069 hRate2->SetLineColor(0);
2070 hRate2->Draw(
"Error");
2072 if (LSofFirstErrB_HB == -1) {
2073 int nx = hRate2->GetXaxis()->GetNbins();
2074 for (
int i = 1; i <= nx; i++) {
2075 double ccc1 = hRate2->GetBinContent(i);
2077 cout <<
"****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " << i <<
" with rate = " << ccc1
2079 LSofFirstErrB_HB =
i;
2087 if (hRate2 != hRate2orig) {
2089 hRate2orig = hRate2;
2094 cHB->Print(Form(
"HistErrB_HB_%d.png",
depth));
2109 int flagErrAB_HE[2];
2110 flagErrAB_HE[0] = -1;
2111 flagErrAB_HE[1] = -1;
2112 double avedelta_HE = 0.;
2113 int lastLumiBin_HE = -1;
2114 int LSofFirstErrB_HE = -1;
2116 const int specCountA = 4;
2117 const int specColors[specCountA] = {1, 2, 3, 4};
2118 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS3_P1",
"h_sum0ADCAmplperLS3_P1"},
2119 {
"h_sumADCAmplperLS3_P2",
"h_sum0ADCAmplperLS3_P2"},
2120 {
"h_sumADCAmplperLS3_M1",
"h_sum0ADCAmplperLS3_M1"},
2121 {
"h_sumADCAmplperLS3_M2",
"h_sum0ADCAmplperLS3_M2"}};
2123 std::vector<TH1F *> hV;
2124 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2131 for (
int i = 0; i < specCountA; i++) {
2133 std::cout <<
"debugger: errA_HE : get histos for i=" << i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2135 TH1F *h1 = (TH1F *)hfile->Get(hnames[i][0]);
2136 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2138 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2139 ptext->AddText(
"Missing histo");
2141 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2142 ptext->AddText(hnames[i][0]);
2145 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2146 ptext->AddText(hnames[i][1]);
2151 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2152 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2154 if ((lastLumiBin_HE < 0) && (i == 0)) {
2155 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2156 if (hERT1orig->GetBinContent(ibin) == 0)
2157 lastLumiBin_HE = ibin;
2161 lastLumiBin_HE += 3;
2162 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2163 lastLumiBin_HE = -1;
2166 if (lastLumiBin_HE > 1) {
2167 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HE)) {
2168 std::cout <<
"code failed" << std::endl;
2174 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2175 hV.push_back(hERT1);
2176 hERT1->SetMarkerStyle(20);
2177 hERT1->SetMarkerSize(0.4);
2178 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2179 hERT1->SetMarkerColor(specColors[i]);
2180 hERT1->SetLineColor(0);
2184 if (hERT1 != hERT1orig)
2187 hs->Draw(
"LPE1 nostack");
2189 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2190 hs->Draw(
"LPE1 nostack");
2196 TH1F *diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2198 if (
int(hV.size()) == specCountA) {
2199 flagErrAB_HE[0] = 0;
2200 double sumdelta = 0.;
2202 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2204 double maxdelta = 0.;
2205 for (
unsigned int i = 0; i < hV.size(); i++) {
2206 const TH1F *hi = hV[
i];
2207 for (
unsigned int j = 1;
j < hV.size();
j++) {
2208 const TH1F *hj = hV[
j];
2209 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2210 if (delta > maxdelta)
2214 if (maxdelta > 0.) {
2215 diff->Fill(maxdelta);
2216 sumdelta += maxdelta;
2221 avedelta_HE = sumdelta / nnndelta;
2222 std::cout <<
"******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2223 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2224 flagErrAB_HE[0] = 1;
2227 diff->SetMarkerStyle(20);
2228 diff->SetMarkerSize(0.8);
2229 diff->SetXTitle(
"max difference \b");
2230 diff->SetMarkerColor(2);
2231 diff->SetLineColor(0);
2234 diff->Draw(
"Error");
2237 cHB->Print(
"HistErrA_HE.png");
2244 for (
unsigned int i = 0; i < hV.size(); i++)
2251 const int specCountB = 6;
2252 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS3",
"h_2D0sumErrorBLS3"},
2253 {
"h_sumErrorBperLS3",
"h_sum0ErrorBperLS3"},
2254 {
"h_2DsumErrorBLS4",
"h_2D0sumErrorBLS4"},
2255 {
"h_sumErrorBperLS4",
"h_sum0ErrorBperLS4"},
2256 {
"h_2DsumErrorBLS5",
"h_2D0sumErrorBLS5"},
2257 {
"h_sumErrorBperLS5",
"h_sum0ErrorBperLS5"}};
2264 TH1F *hRate2orig =
NULL;
2265 TH2F *h2Cefz6 =
NULL;
2266 TString hname1 = hnames[2 *
depth - 2][0];
2267 TString hname0 = hnames[2 *
depth - 2][1];
2268 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2269 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2271 std::cout <<
"debugger: errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2272 if (!twod1 || !twod0) {
2273 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2274 ptext->AddText(
"Missing histos");
2276 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2277 ptext->AddText(hname1);
2280 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2281 ptext->AddText(hname0);
2285 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2286 h2Cefz6->SetTitle(Form(
"HE Depth %d \b",
depth));
2287 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2292 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2293 h2Cefz6->SetMarkerStyle(20);
2294 h2Cefz6->SetMarkerSize(0.4);
2296 h2Cefz6->SetXTitle(
"#eta \b");
2297 h2Cefz6->SetYTitle(
"#phi \b");
2298 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HE Depth%d \b",
depth));
2299 h2Cefz6->SetMarkerColor(2);
2300 h2Cefz6->SetLineColor(2);
2301 h2Cefz6->Draw(
"COLZ");
2308 hname1 = hnames[2 *
depth - 1][0];
2309 hname0 = hnames[2 *
depth - 1][1];
2310 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2311 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2313 std::cout <<
"errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2315 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2316 ptext->AddText(
"Missing histo");
2318 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2319 ptext->AddText(hname1);
2322 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2323 ptext->AddText(hname0);
2330 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2331 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2333 TH1F *hRate2 =
NULL;
2334 if (lastLumiBin_HE > 1) {
2335 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HE)) {
2336 std::cout <<
"code failed" << std::endl;
2340 hRate2 = hRate2orig;
2342 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2343 hRate2->SetMarkerStyle(20);
2344 hRate2->SetMarkerSize(0.8);
2346 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b",
depth));
2347 hRate2->SetMarkerColor(2);
2348 hRate2->SetLineColor(0);
2349 hRate2->Draw(
"Error");
2351 if (LSofFirstErrB_HE == -1) {
2352 int nx = hRate2->GetXaxis()->GetNbins();
2353 for (
int i = 1; i <= nx; i++) {
2354 double ccc1 = hRate2->GetBinContent(i);
2356 cout <<
"****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " << i <<
" with rate = " << ccc1
2358 LSofFirstErrB_HE =
i;
2366 if (hRate2 != hRate2orig) {
2368 hRate2orig = hRate2;
2373 cHB->Print(Form(
"HistErrB_HE_%d.png",
depth));
2388 int flagErrAB_HO[2];
2389 flagErrAB_HO[0] = -1;
2390 flagErrAB_HO[1] = -1;
2391 double avedelta_HO = 0.;
2392 int lastLumiBin_HO = -1;
2393 int LSofFirstErrB_HO = -1;
2395 const int specCountA = 4;
2396 const int specColors[specCountA] = {1, 2, 3, 4};
2397 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS8_P1",
"h_sum0ADCAmplperLS8_P1"},
2398 {
"h_sumADCAmplperLS8_P2",
"h_sum0ADCAmplperLS8_P2"},
2399 {
"h_sumADCAmplperLS8_M1",
"h_sum0ADCAmplperLS8_M1"},
2400 {
"h_sumADCAmplperLS8_M2",
"h_sum0ADCAmplperLS8_M2"}};
2402 std::vector<TH1F *> hV;
2403 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2410 for (
int i = 0; i < specCountA; i++) {
2412 std::cout <<
"debugger: errA_HO : get histos for i=" << i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2414 TH1F *h1 = (TH1F *)hfile->Get(hnames[i][0]);
2415 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2417 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2418 ptext->AddText(
"Missing histo");
2420 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2421 ptext->AddText(hnames[i][0]);
2424 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2425 ptext->AddText(hnames[i][1]);
2430 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2431 hoRT1orig->Divide(h1, h0, 1, 1,
"B");
2433 if ((lastLumiBin_HO < 0) && (i == 0)) {
2434 for (
int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2435 if (hoRT1orig->GetBinContent(ibin) == 0)
2436 lastLumiBin_HO = ibin;
2440 lastLumiBin_HO += 3;
2441 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2442 lastLumiBin_HO = -1;
2445 if (lastLumiBin_HO > 1) {
2446 if (!
copyContents(&hoRT1, Form(
"ERT1_%d", i),
"", hoRT1orig, lastLumiBin_HO)) {
2447 std::cout <<
"code failed" << std::endl;
2453 hoRT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2454 hV.push_back(hoRT1);
2455 hoRT1->SetMarkerStyle(20);
2456 hoRT1->SetMarkerSize(0.4);
2457 hoRT1->SetXTitle(
"<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2458 hoRT1->SetMarkerColor(specColors[i]);
2459 hoRT1->SetLineColor(0);
2463 if (hoRT1 != hoRT1orig)
2466 hs->Draw(
"LPE1 nostack");
2468 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2469 hs->Draw(
"LPE1 nostack");
2475 TH1F *diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2477 if (
int(hV.size()) == specCountA) {
2478 flagErrAB_HO[0] = 0;
2479 double sumdelta = 0.;
2481 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2483 double maxdelta = 0.;
2484 for (
unsigned int i = 0; i < hV.size(); i++) {
2485 const TH1F *hi = hV[
i];
2486 for (
unsigned int j = 1;
j < hV.size();
j++) {
2487 const TH1F *hj = hV[
j];
2488 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2489 if (delta > maxdelta)
2493 if (maxdelta > 0.) {
2494 diff->Fill(maxdelta);
2495 sumdelta += maxdelta;
2500 avedelta_HO = sumdelta / nnndelta;
2501 std::cout <<
"******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2502 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2503 flagErrAB_HO[0] = 1;
2506 diff->SetMarkerStyle(20);
2507 diff->SetMarkerSize(0.8);
2508 diff->SetXTitle(
"max difference \b");
2509 diff->SetMarkerColor(2);
2510 diff->SetLineColor(0);
2513 diff->Draw(
"Error");
2516 cHB->Print(
"HistErrA_HO.png");
2523 for (
unsigned int i = 0; i < hV.size(); i++)
2530 const int specCountB = 2;
2531 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS8",
"h_2D0sumErrorBLS8"},
2532 {
"h_sumErrorBperLS8",
"h_sum0ErrorBperLS8"}};
2539 TH1F *hRate2orig =
NULL;
2540 TH2F *h2Cefz6 =
NULL;
2541 TString hname1 = hnames[2 *
depth - 8][0];
2542 TString hname0 = hnames[2 *
depth - 8][1];
2543 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2544 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2546 std::cout <<
"debugger: errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2547 if (!twod1 || !twod0) {
2548 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2549 ptext->AddText(
"Missing histos");
2551 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2552 ptext->AddText(hname1);
2555 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2556 ptext->AddText(hname0);
2560 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2561 h2Cefz6->SetTitle(Form(
"HO Depth %d \b",
depth));
2562 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2567 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2568 h2Cefz6->SetMarkerStyle(20);
2569 h2Cefz6->SetMarkerSize(0.4);
2571 h2Cefz6->SetXTitle(
"#eta \b");
2572 h2Cefz6->SetYTitle(
"#phi \b");
2573 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HO Depth%d \b",
depth));
2574 h2Cefz6->SetMarkerColor(2);
2575 h2Cefz6->SetLineColor(2);
2576 h2Cefz6->Draw(
"COLZ");
2583 hname1 = hnames[2 *
depth - 7][0];
2584 hname0 = hnames[2 *
depth - 7][1];
2585 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2586 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2588 std::cout <<
"errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2590 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2591 ptext->AddText(
"Missing histo");
2593 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2594 ptext->AddText(hname1);
2597 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2598 ptext->AddText(hname0);
2605 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2606 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2608 TH1F *hRate2 =
NULL;
2609 if (lastLumiBin_HO > 1) {
2610 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HO)) {
2611 std::cout <<
"code failed" << std::endl;
2615 hRate2 = hRate2orig;
2617 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2618 hRate2->SetMarkerStyle(20);
2619 hRate2->SetMarkerSize(0.8);
2621 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b",
depth));
2622 hRate2->SetMarkerColor(2);
2623 hRate2->SetLineColor(0);
2624 hRate2->Draw(
"Error");
2626 if (LSofFirstErrB_HO == -1) {
2627 int nx = hRate2->GetXaxis()->GetNbins();
2628 for (
int i = 1; i <= nx; i++) {
2629 double ccc1 = hRate2->GetBinContent(i);
2631 cout <<
"****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " << i <<
" with rate = " << ccc1
2633 LSofFirstErrB_HO =
i;
2641 if (hRate2 != hRate2orig) {
2643 hRate2orig = hRate2;
2648 cHB->Print(Form(
"HistErrB_HO_%d.png",
depth));
2662 int flagErrAB_HF[2];
2663 flagErrAB_HF[0] = -1;
2664 flagErrAB_HF[1] = -1;
2665 double avedelta_HF = 0.;
2666 int lastLumiBin_HF = -1;
2667 int LSofFirstErrB_HF = -1;
2669 const int specCountA = 4;
2670 const int specColors[specCountA] = {1, 2, 3, 4};
2671 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS6_P1",
"h_sum0ADCAmplperLS6_P1"},
2672 {
"h_sumADCAmplperLS6_P2",
"h_sum0ADCAmplperLS6_P2"},
2673 {
"h_sumADCAmplperLS6_M1",
"h_sum0ADCAmplperLS6_M1"},
2674 {
"h_sumADCAmplperLS6_M2",
"h_sum0ADCAmplperLS6_M2"}};
2676 std::vector<TH1F *> hV;
2677 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS6");
2684 for (
int i = 0; i < specCountA; i++) {
2686 std::cout <<
"debugger: errA_HF : get histos for i=" << i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2688 TH1F *h1 = (TH1F *)hfile->Get(hnames[i][0]);
2689 TH1F *h0 = (TH1F *)hfile->Get(hnames[i][1]);
2691 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2692 ptext->AddText(
"Missing histo");
2694 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2695 ptext->AddText(hnames[i][0]);
2698 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2699 ptext->AddText(hnames[i][1]);
2704 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d", i));
2705 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2707 if ((lastLumiBin_HF < 0) && (i == 0)) {
2708 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2709 if (hERT1orig->GetBinContent(ibin) == 0)
2710 lastLumiBin_HF = ibin;
2714 lastLumiBin_HF += 3;
2715 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2716 lastLumiBin_HF = -1;
2719 if (lastLumiBin_HF > 1) {
2720 if (!
copyContents(&hERT1, Form(
"ERT1_%d", i),
"", hERT1orig, lastLumiBin_HF)) {
2721 std::cout <<
"code failed" << std::endl;
2727 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2728 hV.push_back(hERT1);
2729 hERT1->SetMarkerStyle(20);
2730 hERT1->SetMarkerSize(0.4);
2731 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2732 hERT1->SetMarkerColor(specColors[i]);
2733 hERT1->SetLineColor(0);
2737 if (hERT1 != hERT1orig)
2740 hs->Draw(
"LPE1 nostack");
2742 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2743 hs->Draw(
"LPE1 nostack");
2749 TH1F *diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2751 if (
int(hV.size()) == specCountA) {
2752 flagErrAB_HF[0] = 0;
2753 double sumdelta = 0.;
2755 std::cout <<
"******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2756 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2758 double maxdelta = 0.;
2759 for (
unsigned int i = 0; i < hV.size(); i++) {
2760 const TH1F *hi = hV[
i];
2761 for (
unsigned int j = 1;
j < hV.size();
j++) {
2762 const TH1F *hj = hV[
j];
2763 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2764 if (delta > maxdelta)
2769 if (maxdelta > 0.) {
2770 diff->Fill(maxdelta);
2771 sumdelta += maxdelta;
2776 avedelta_HF = sumdelta / nnndelta;
2778 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2779 flagErrAB_HF[0] = 1;
2782 diff->SetMarkerStyle(20);
2783 diff->SetMarkerSize(0.8);
2784 diff->SetXTitle(
"max difference \b");
2785 diff->SetMarkerColor(2);
2786 diff->SetLineColor(0);
2789 diff->Draw(
"Error");
2792 cHB->Print(
"HistErrA_HF.png");
2798 for (
unsigned int i = 0; i < hV.size(); i++)
2804 const int specCountB = 4;
2805 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS6",
"h_2D0sumErrorBLS6"},
2806 {
"h_sumErrorBperLS6",
"h_sum0ErrorBperLS6"},
2807 {
"h_2DsumErrorBLS7",
"h_2D0sumErrorBLS7"},
2808 {
"h_sumErrorBperLS7",
"h_sum0ErrorBperLS7"}};
2814 TH1F *hRate2orig =
NULL;
2815 TH2F *h2Cefz6 =
NULL;
2816 TString hname1 = hnames[2 *
depth - 2][0];
2817 TString hname0 = hnames[2 *
depth - 2][1];
2818 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2819 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2821 std::cout <<
"debugger: errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2822 if (!twod1 || !twod0) {
2823 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2824 ptext->AddText(
"Missing histos");
2826 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2827 ptext->AddText(hname1);
2830 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2831 ptext->AddText(hname0);
2835 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2836 h2Cefz6->SetTitle(Form(
"HF Depth %d \b",
depth));
2837 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2842 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2843 h2Cefz6->SetMarkerStyle(20);
2844 h2Cefz6->SetMarkerSize(0.4);
2846 h2Cefz6->SetXTitle(
"#eta \b");
2847 h2Cefz6->SetYTitle(
"#phi \b");
2848 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HF Depth%d \b",
depth));
2849 h2Cefz6->SetMarkerColor(2);
2850 h2Cefz6->SetLineColor(2);
2851 h2Cefz6->Draw(
"COLZ");
2856 hname1 = hnames[2 *
depth - 1][0];
2857 hname0 = hnames[2 *
depth - 1][1];
2858 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2859 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2861 std::cout <<
"errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2863 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2864 ptext->AddText(
"Missing histo");
2866 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2867 ptext->AddText(hname1);
2870 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2871 ptext->AddText(hname0);
2878 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2879 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2881 TH1F *hRate2 =
NULL;
2882 if (lastLumiBin_HF > 1) {
2883 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HF)) {
2884 std::cout <<
"code failed" << std::endl;
2888 hRate2 = hRate2orig;
2889 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2890 hRate2->SetMarkerStyle(20);
2891 hRate2->SetMarkerSize(0.8);
2893 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b",
depth));
2894 hRate2->SetMarkerColor(2);
2895 hRate2->SetLineColor(0);
2896 hRate2->Draw(
"Error");
2897 if (LSofFirstErrB_HF == -1) {
2898 int nx = hRate2->GetXaxis()->GetNbins();
2899 for (
int i = 1; i <= nx; i++) {
2900 double ccc1 = hRate2->GetBinContent(i);
2902 cout <<
"****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " << i <<
" with rate = " << ccc1
2904 LSofFirstErrB_HF =
i;
2911 if (hRate2 != hRate2orig) {
2913 hRate2orig = hRate2;
2917 cHB->Print(Form(
"HistErrB_HF_%d.png",
depth));
2933 TH2F *h2Ceff =
NULL;
2934 TH2F *h2Diffe =
NULL;
2936 TH2F *h3Ceff =
NULL;
2943 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HB",
depth);
2944 TString hname0 = Form(
"h_mapDepth%d_HB",
depth);
2945 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2946 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2947 if (!twod1 || !twod0) {
2948 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2949 ptext->AddText(
"Missing histo");
2950 std::cout <<
"specHB test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
2952 ptext->AddText(hname1);
2954 ptext->AddText(hname0);
2959 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HB%d",
depth));
2960 h2Ceff->SetTitle(Form(
"HB Depth %d. (No cut) \b",
depth));
2961 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
2966 h2Ceff->SetMarkerStyle(20);
2967 h2Ceff->SetMarkerSize(0.4);
2969 h2Ceff->SetXTitle(
"#eta \b");
2970 h2Ceff->SetYTitle(
"#phi \b");
2971 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HB \b");
2972 h2Ceff->SetMarkerColor(2);
2973 h2Ceff->SetLineColor(2);
2974 h2Ceff->Draw(
"COLZ");
2981 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HB",
depth));
2982 h2Diffe->SetTitle(Form(
"HB Depth %d. Cut avg(ADCAmpl) > 25 \b",
depth));
2983 int nx = h2Ceff->GetXaxis()->GetNbins();
2984 int ny = h2Ceff->GetYaxis()->GetNbins();
2985 for (
int i = 1; i <= nx; i++) {
2986 for (
int j = 1;
j <= ny;
j++) {
2987 double ccc1 = h2Ceff->GetBinContent(i,
j);
2988 h2Diffe->SetBinContent(i,
j, 0.);
2990 h2Diffe->SetBinContent(i,
j, ccc1);
2996 h2Diffe->SetMarkerStyle(20);
2997 h2Diffe->SetMarkerSize(0.4);
2999 h2Diffe->SetXTitle(
"#eta \b");
3000 h2Diffe->SetYTitle(
"#phi \b");
3001 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 25.- HB Depth1 \b");
3002 h2Diffe->SetMarkerColor(2);
3003 h2Diffe->SetLineColor(2);
3004 h2Diffe->Draw(
"COLZ");
3008 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HB",
depth);
3009 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3010 if (!twod3 || !twod0) {
3011 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3012 ptext->AddText(
"Missing histo");
3013 std::cout <<
"specHB test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3015 ptext->AddText(hname3);
3017 ptext->AddText(hname0);
3022 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HB%d",
depth));
3023 h3Ceff->SetTitle(Form(
"HB Depth %d. \b",
depth));
3024 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3028 h3Ceff->SetMarkerStyle(20);
3029 h3Ceff->SetMarkerSize(0.4);
3031 h3Ceff->SetXTitle(
"#eta \b");
3032 h3Ceff->SetYTitle(
"#phi \b");
3033 h3Ceff->SetZTitle(
"rate for channels of HB \b");
3034 h3Ceff->SetMarkerColor(2);
3035 h3Ceff->SetLineColor(2);
3036 h3Ceff->Draw(
"COLZ");
3040 cHE->Print(Form(
"ChkErrA_HB%d.png",
depth));
3062 TH2F *h2Ceff =
NULL;
3063 TH2F *h2Diffe =
NULL;
3065 TH2F *h3Ceff =
NULL;
3072 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HE",
depth);
3073 TString hname0 = Form(
"h_mapDepth%d_HE",
depth);
3074 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3075 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3076 if (!twod1 || !twod0) {
3077 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3078 ptext->AddText(
"Missing histo");
3079 std::cout <<
"specHE test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3081 ptext->AddText(hname1);
3083 ptext->AddText(hname0);
3088 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HE%d",
depth));
3089 h2Ceff->SetTitle(Form(
"HE Depth %d. (No cut) \b",
depth));
3090 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3095 h2Ceff->SetMarkerStyle(20);
3096 h2Ceff->SetMarkerSize(0.4);
3098 h2Ceff->SetXTitle(
"#eta \b");
3099 h2Ceff->SetYTitle(
"#phi \b");
3100 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HE \b");
3101 h2Ceff->SetMarkerColor(2);
3102 h2Ceff->SetLineColor(2);
3103 h2Ceff->Draw(
"COLZ");
3110 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HE",
depth));
3111 h2Diffe->SetTitle(Form(
"HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b",
depth));
3112 int nx = h2Ceff->GetXaxis()->GetNbins();
3113 int ny = h2Ceff->GetYaxis()->GetNbins();
3114 for (
int i = 1; i <= nx; i++) {
3115 for (
int j = 1;
j <= ny;
j++) {
3116 double ccc1 = h2Ceff->GetBinContent(i,
j);
3117 h2Diffe->SetBinContent(i,
j, 0.);
3119 h2Diffe->SetBinContent(i,
j, ccc1);
3125 h2Diffe->SetMarkerStyle(20);
3126 h2Diffe->SetMarkerSize(0.4);
3128 h2Diffe->SetXTitle(
"#eta \b");
3129 h2Diffe->SetYTitle(
"#phi \b");
3130 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3131 h2Diffe->SetMarkerColor(2);
3132 h2Diffe->SetLineColor(2);
3133 h2Diffe->Draw(
"COLZ");
3137 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HE",
depth);
3138 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3139 if (!twod3 || !twod0) {
3140 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3141 ptext->AddText(
"Missing histo");
3142 std::cout <<
"specHE test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3144 ptext->AddText(hname3);
3146 ptext->AddText(hname0);
3151 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HE%d",
depth));
3152 h3Ceff->SetTitle(Form(
"HE Depth %d. \b",
depth));
3153 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3157 h3Ceff->SetMarkerStyle(20);
3158 h3Ceff->SetMarkerSize(0.4);
3160 h3Ceff->SetXTitle(
"#eta \b");
3161 h3Ceff->SetYTitle(
"#phi \b");
3162 h3Ceff->SetZTitle(
"rate for channels of HE \b");
3163 h3Ceff->SetMarkerColor(2);
3164 h3Ceff->SetLineColor(2);
3165 h3Ceff->Draw(
"COLZ");
3169 cHE->Print(Form(
"ChkErrA_HE%d.png",
depth));
3191 TH2F *h2Ceff =
NULL;
3192 TH2F *h2Diffe =
NULL;
3194 TH2F *h3Ceff =
NULL;
3201 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HO",
depth);
3202 TString hname0 = Form(
"h_mapDepth%d_HO",
depth);
3203 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3204 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3205 if (!twod1 || !twod0) {
3206 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3207 ptext->AddText(
"Missing histo");
3208 std::cout <<
"specHO test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3210 ptext->AddText(hname1);
3212 ptext->AddText(hname0);
3217 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HO%d",
depth));
3218 h2Ceff->SetTitle(Form(
"HO Depth %d. (No cut) \b",
depth));
3219 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3224 h2Ceff->SetMarkerStyle(20);
3225 h2Ceff->SetMarkerSize(0.4);
3227 h2Ceff->SetXTitle(
"#eta \b");
3228 h2Ceff->SetYTitle(
"#phi \b");
3229 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HO \b");
3230 h2Ceff->SetMarkerColor(2);
3231 h2Ceff->SetLineColor(2);
3232 h2Ceff->Draw(
"COLZ");
3239 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HO",
depth));
3240 h2Diffe->SetTitle(Form(
"HO Depth %d. Cut avg(ADCAmpl) > 80 \b",
depth));
3241 int nx = h2Ceff->GetXaxis()->GetNbins();
3242 int ny = h2Ceff->GetYaxis()->GetNbins();
3243 for (
int i = 1; i <= nx; i++) {
3244 for (
int j = 1;
j <= ny;
j++) {
3245 double ccc1 = h2Ceff->GetBinContent(i,
j);
3246 h2Diffe->SetBinContent(i,
j, 0.);
3248 h2Diffe->SetBinContent(i,
j, ccc1);
3254 h2Diffe->SetMarkerStyle(20);
3255 h2Diffe->SetMarkerSize(0.4);
3257 h2Diffe->SetXTitle(
"#eta \b");
3258 h2Diffe->SetYTitle(
"#phi \b");
3259 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 80.- HO Depth1 \b");
3260 h2Diffe->SetMarkerColor(2);
3261 h2Diffe->SetLineColor(2);
3262 h2Diffe->Draw(
"COLZ");
3266 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HO",
depth);
3267 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3268 if (!twod3 || !twod0) {
3269 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3270 ptext->AddText(
"Missing histo");
3271 std::cout <<
"specHO test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3273 ptext->AddText(hname3);
3275 ptext->AddText(hname0);
3280 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HO%d",
depth));
3281 h3Ceff->SetTitle(Form(
"HO Depth %d. \b",
depth));
3282 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3286 h3Ceff->SetMarkerStyle(20);
3287 h3Ceff->SetMarkerSize(0.4);
3289 h3Ceff->SetXTitle(
"#eta \b");
3290 h3Ceff->SetYTitle(
"#phi \b");
3291 h3Ceff->SetZTitle(
"rate for channels of HO \b");
3292 h3Ceff->SetMarkerColor(2);
3293 h3Ceff->SetLineColor(2);
3294 h3Ceff->Draw(
"COLZ");
3298 cHE->Print(Form(
"ChkErrA_HO%d.png",
depth));
3320 TH2F *h2Ceff =
NULL;
3321 TH2F *h2Diffe =
NULL;
3323 TH2F *h3Ceff =
NULL;
3330 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HF",
depth);
3331 TString hname0 = Form(
"h_mapDepth%d_HF",
depth);
3332 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3333 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3334 if (!twod1 || !twod0) {
3335 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3336 ptext->AddText(
"Missing histo");
3337 std::cout <<
"specHF test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3339 ptext->AddText(hname1);
3341 ptext->AddText(hname0);
3346 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HF%d",
depth));
3347 h2Ceff->SetTitle(Form(
"HF Depth %d. (No cut) \b",
depth));
3348 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3353 h2Ceff->SetMarkerStyle(20);
3354 h2Ceff->SetMarkerSize(0.4);
3356 h2Ceff->SetXTitle(
"#eta \b");
3357 h2Ceff->SetYTitle(
"#phi \b");
3358 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HF \b");
3359 h2Ceff->SetMarkerColor(2);
3360 h2Ceff->SetLineColor(2);
3361 h2Ceff->Draw(
"COLZ");
3368 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HF",
depth));
3369 h2Diffe->SetTitle(Form(
"HF Depth %d. Cut avg(ADCAmpl) > 20 \b",
depth));
3370 int nx = h2Ceff->GetXaxis()->GetNbins();
3371 int ny = h2Ceff->GetYaxis()->GetNbins();
3372 for (
int i = 1; i <= nx; i++) {
3373 for (
int j = 1;
j <= ny;
j++) {
3374 double ccc1 = h2Ceff->GetBinContent(i,
j);
3375 h2Diffe->SetBinContent(i,
j, 0.);
3377 h2Diffe->SetBinContent(i,
j, ccc1);
3383 h2Diffe->SetMarkerStyle(20);
3384 h2Diffe->SetMarkerSize(0.4);
3386 h2Diffe->SetXTitle(
"#eta \b");
3387 h2Diffe->SetYTitle(
"#phi \b");
3388 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 20.- HF Depth1 \b");
3389 h2Diffe->SetMarkerColor(2);
3390 h2Diffe->SetLineColor(2);
3391 h2Diffe->Draw(
"COLZ");
3420 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HF",
depth);
3421 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3422 if (!twod3 || !twod0) {
3423 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3424 ptext->AddText(
"Missing histo");
3425 std::cout <<
"specHF test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3427 ptext->AddText(hname3);
3429 ptext->AddText(hname0);
3434 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HF%d",
depth));
3435 h3Ceff->SetTitle(Form(
"HF Depth %d. \b",
depth));
3436 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3440 h3Ceff->SetMarkerStyle(20);
3441 h3Ceff->SetMarkerSize(0.4);
3443 h3Ceff->SetXTitle(
"#eta \b");
3444 h3Ceff->SetYTitle(
"#phi \b");
3445 h3Ceff->SetZTitle(
"rate for channels of HF \b");
3446 h3Ceff->SetMarkerColor(2);
3447 h3Ceff->SetLineColor(2);
3448 h3Ceff->Draw(
"COLZ");
3452 cHE->Print(Form(
"ChkErrA_HF%d.png",
depth));
3469 std::cout <<
"************>>> average Amplitudes done" << std::endl;
3471 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3472 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3473 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3474 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3475 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3482 cout <<
" RBX analysis START for **************************" << endl;
3483 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3488 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax=2600; "
3491 double alexall[njeta][njphi][
lsmax];
3494 double alexhb[njphi][
lsmax];
3495 double alexhe[njphi][
lsmax];
3496 double alexho[njphi][
lsmax];
3497 double alexhf[njphi][
lsmax];
3500 double blexhb[njeta][
lsmax];
3501 double blexhe[njeta][
lsmax];
3502 double blexho[njeta][
lsmax];
3503 double blexhf[njeta][
lsmax];
3505 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alexall [njeta][njphi][lsmax]; " << endl;
3506 int maxbinsRBX = MaxLum;
3507 int nx = maxbinsRBX;
3508 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3510 cout <<
"*********************************** ERROR ERROR ERROR ERROR: MaxLum > 2600 " << endl;
3511 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3513 for (
int i = 0; i < nx; i++) {
3514 for (
int jphi = 0; jphi < njphi; jphi++) {
3515 alexhb[jphi][
i] = 0.;
3516 alexhe[jphi][
i] = 0.;
3517 alexho[jphi][
i] = 0.;
3518 alexhf[jphi][
i] = 0.;
3520 for (
int jeta = 0; jeta < njeta; jeta++) {
3522 blexhb[jeta][
i] = 0.;
3523 blexhe[jeta][
i] = 0.;
3524 blexho[jeta][
i] = 0.;
3525 blexhf[jeta][
i] = 0.;
3528 alexall[jeta][jphi][
i] = 0.;
3553 cout <<
" RBX general for HB **************************" << endl;
3554 TH2F *Ghb1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs0");
3555 TH2F *Ghb1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs00");
3556 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone(
"Ghb1");
3557 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1,
"B");
3560 int ny = Ghb1->GetYaxis()->GetNbins();
3562 for (
int j = 1;
j <= ny;
j++) {
3563 int jeta = (
j - 1) / njphi;
3564 if (jeta > 6 && jeta < 15) {
3565 int jphi = (
j - 1) - njphi * jeta;
3568 for (
int i = 1; i <= nx; i++) {
3569 double ccc1 = Ghb1->GetBinContent(i,
j);
3570 alexall[jeta][jphi][i - 1] = ccc1;
3585 for (
int jphi = 0; jphi < njphi; jphi++) {
3586 for (
int i = 0; i < nx; i++) {
3587 double sumccc1 = 0.;
3589 for (
int jeta = 0; jeta < njeta; jeta++) {
3590 double ccc1 = alexall[jeta][jphi][
i];
3598 alexhb[jphi][
i] = sumccc1;
3603 for (
int keta = 0; keta < njeta; keta++) {
3604 for (
int i = 0; i < nx; i++) {
3605 double sumccc1 = 0.;
3607 for (
int kphi = 0; kphi < njphi; kphi++) {
3608 double ccc1 = alexall[keta][kphi][
i];
3616 blexhb[keta][
i] = sumccc1;
3626 cout <<
" RBX HB 2D plot *****" << endl;
3629 cRBX1->Divide(1, 1);
3634 TH2F *Ghb42D =
new TH2F(
"Ghb42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
3635 TH2F *Ghb42D0 =
new TH2F(
"Ghb42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
3636 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone(
"Ghb42DF");
3637 for (
int jphi = 0; jphi < njphi; jphi++) {
3638 for (
int jeta = 0; jeta < njeta; jeta++) {
3639 for (
int i = 0; i < nx; i++) {
3640 double ccc1 = alexall[jeta][jphi][
i];
3641 int neweta = jeta - 11 - 0.5;
3643 neweta = jeta - 11 + 1.5;
3645 Ghb42D->Fill(neweta, jphi, ccc1);
3646 Ghb42D0->Fill(neweta, jphi, 1.);
3652 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1,
"B");
3656 Ghb42DF->SetMarkerStyle(20);
3657 Ghb42DF->SetMarkerSize(0.4);
3658 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3659 Ghb42DF->SetXTitle(
"<A>_RBX #eta \b");
3660 Ghb42DF->SetYTitle(
" #phi \b");
3661 Ghb42DF->SetZTitle(
"<A>_RBX - All \b");
3662 Ghb42DF->SetMarkerColor(2);
3663 Ghb42DF->SetLineColor(2);
3664 Ghb42DF->Draw(
"COLZ");
3668 cRBX1->Print(
"RBX-HB-2Dplot.png");
3683 cout <<
" RBX HB 1D plot *****" << endl;
3686 cRBX1->Divide(1, 1);
3688 TH1F *GphiHB1D =
new TH1F(
"GphiHB1D",
"", 18, 0., 18.);
3689 TH1F *GphiHB1D0 =
new TH1F(
"GphiHB1D0",
"", 18, 0., 18.);
3690 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone(
"GphiHB1DF");
3691 for (
int jphi = 0; jphi < 18; jphi++) {
3692 for (
int jeta = 0; jeta < 22; jeta++) {
3693 for (
int i = 0; i < nx; i++) {
3694 double ccc1 = alexall[jeta][jphi][
i];
3696 GphiHB1D->Fill(jphi, ccc1);
3697 GphiHB1D0->Fill(jphi, 1.);
3703 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1,
"B");
3705 for (
int jphi = 1; jphi < 19; jphi++) {
3706 GphiHB1DF->SetBinError(jphi, 0.01);
3710 GphiHB1DF->SetMarkerStyle(20);
3711 GphiHB1DF->SetMarkerSize(1.4);
3712 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3713 GphiHB1DF->SetXTitle(
"PHI of RBX\b");
3714 GphiHB1DF->SetYTitle(
" <Amplitude> \b");
3715 GphiHB1DF->SetZTitle(
"<A>_PHI - All \b");
3716 GphiHB1DF->SetMarkerColor(4);
3717 GphiHB1DF->SetLineColor(4);
3718 GphiHB1DF->SetMinimum(0.8);
3719 GphiHB1DF->Draw(
"Error");
3722 cRBX1->Print(
"RBX-HB-1Dplot.png");
3737 cout <<
" RBX HB 11D plot *eta*" << endl;
3740 cRBX1->Divide(1, 1);
3742 TH1F *GetaHB11D =
new TH1F(
"GetaHB11D",
"", 23, -11.5, 11.5);
3743 TH1F *GetaHB11D0 =
new TH1F(
"GetaHB11D0",
"", 23, -11.5, 11.5);
3744 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone(
"GetaHB11DF");
3746 for (
int jeta = 0; jeta < 22; jeta++) {
3747 for (
int jphi = 0; jphi < 18; jphi++) {
3748 for (
int i = 0; i < nx; i++) {
3749 double ccc1 = alexall[jeta][jphi][
i];
3750 int neweta = jeta - 11 - 0.5;
3752 neweta = jeta - 11 + 1.5;
3754 GetaHB11D->Fill(neweta, ccc1);
3755 GetaHB11D0->Fill(neweta, 1.);
3762 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1,
"B");
3764 for (
int jeta = 1; jeta < 24; jeta++) {
3765 GetaHB11DF->SetBinError(jeta, 0.01);
3769 GetaHB11DF->SetMarkerStyle(20);
3770 GetaHB11DF->SetMarkerSize(1.4);
3771 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3772 GetaHB11DF->SetXTitle(
"#eta \b");
3773 GetaHB11DF->SetYTitle(
" <A> \b");
3774 GetaHB11DF->SetZTitle(
"<A>_ETA - All \b");
3775 GetaHB11DF->SetMarkerColor(4);
3776 GetaHB11DF->SetLineColor(4);
3777 GetaHB11DF->SetMinimum(0.8);
3778 GetaHB11DF->Draw(
"Error");
3782 cRBX1->Print(
"RBX-HB-11Dplot.png");
3798 gStyle->SetOptStat(1110000);
3799 cout <<
" RBX HB Ratio plots *****" << endl;
3808 cRBX31->Divide(3, 1);
3812 TH1F *Ghb51 =
new TH1F(
"Ghb51",
"", nx, 1., nx + 1.);
3813 TH1F *Ghb50 =
new TH1F(
"Ghb50",
"", nx, 1., nx + 1.);
3814 TH1F *Ghb5 = (TH1F *)Ghb50->Clone(
"Ghb5");
3816 for (
int j = 1;
j <= ny;
j++) {
3817 ccc0HB = Ghb1->GetBinContent(1,
j);
3820 for (
int i = 1; i <= nx; i++) {
3821 double ccc2 = Ghb1->GetBinContent(i,
j);
3829 for (
int i = 1; i <= nx; i++) {
3830 double ccc1 = Ghb1->GetBinContent(i,
j);
3832 double Rij = ccc1 / ccc0HB;
3834 Ghb51->Fill(
float(i), Rij);
3835 Ghb50->Fill(
float(i), 1.);
3840 Ghb5->Divide(Ghb51, Ghb50, 1, 1,
"B");
3841 for (
int i = 1; i <= nx; i++) {
3842 Ghb5->SetBinError(i, 0.0001);
3844 Ghb5->SetMarkerStyle(20);
3845 Ghb5->SetMarkerSize(0.4);
3846 Ghb5->GetYaxis()->SetLabelSize(0.04);
3847 Ghb5->SetMarkerColor(2);
3848 Ghb5->SetLineColor(0);
3849 Ghb5->SetXTitle(
" iLS \b");
3850 Ghb5->SetYTitle(
" <R> \b");
3851 Ghb5->SetTitle(
"<Ri> vs iLS \b");
3852 Ghb5->SetMinimum(0.);
3857 Ghb5->GetYaxis()->SetLabelSize(0.025);
3858 Ghb5->Draw(
"Error");
3861 TH2F *Ghb60 =
new TH2F(
"Ghb60",
"", 22, -11., 11., 18, 0., 18.);
3862 TH2F *Ghb61 =
new TH2F(
"Ghb61",
"", 22, -11., 11., 18, 0., 18.);
3863 TH2F *Ghb6 =
new TH2F(
"Ghb6",
"", 22, -11., 11., 18, 0., 18.);
3865 TH2F *G20hb60 =
new TH2F(
"G20hb60",
"", 22, -11., 11., 18, 0., 18.);
3866 TH2F *G20hb61 =
new TH2F(
"G20hb61",
"", 22, -11., 11., 18, 0., 18.);
3867 TH2F *G20hb6 =
new TH2F(
"G20hb6",
"", 22, -11., 11., 18, 0., 18.);
3868 TH2F *G30hb60 =
new TH2F(
"G30hb60",
"", 22, -11., 11., 18, 0., 18.);
3869 TH2F *G30hb61 =
new TH2F(
"G30hb61",
"", 22, -11., 11., 18, 0., 18.);
3870 TH2F *G30hb6 =
new TH2F(
"G30hb6",
"", 22, -11., 11., 18, 0., 18.);
3871 TH2F *G40hb60 =
new TH2F(
"G40hb60",
"", 22, -11., 11., 18, 0., 18.);
3872 TH2F *G40hb61 =
new TH2F(
"G40hb61",
"", 22, -11., 11., 18, 0., 18.);
3873 TH2F *G40hb6 =
new TH2F(
"G40hb6",
"", 22, -11., 11., 18, 0., 18.);
3879 double meanjHB = 0.;
3880 for (
int j = 1;
j <= ny;
j++) {
3881 ccc0HB = Ghb1->GetBinContent(1,
j);
3883 for (
int i = 1; i <= nx; i++) {
3884 double ccc2 = Ghb1->GetBinContent(i,
j);
3891 for (
int i = 1; i <= nx; i++) {
3892 double ccc1 = Ghb1->GetBinContent(i,
j) / ccc0HB;
3898 meanjHB = sumjHB / njHB;
3902 double ssumjHB = 0.;
3904 double sigmajHB = 0.;
3905 for (
int j = 1;
j <= ny;
j++) {
3906 ccc0HB = Ghb1->GetBinContent(1,
j);
3908 for (
int i = 1; i <= nx; i++) {
3909 double ccc2 = Ghb1->GetBinContent(i,
j);
3916 for (
int i = 1; i <= nx; i++) {
3917 double ccc1 = Ghb1->GetBinContent(i,
j) / ccc0HB;
3919 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3923 sigmajHB =
sqrt(ssumjHB / njHB);
3927 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3928 if (dif3rmsHBMIN < 0.)
3930 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3931 cout <<
"22HB-2 meanjHB= " << meanjHB <<
" sigmajHB= " << sigmajHB <<
" dif3rmsHBMIN= " << dif3rmsHBMIN
3932 <<
" dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3934 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3935 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3936 if (MAXdif3rmsHBMIN < 0.95)
3937 MAXdif3rmsHBMIN = 0.95;
3938 if (MINdif3rmsHBMAX > 1.05)
3939 MINdif3rmsHBMAX = 1.05;
3940 cout <<
"22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3942 for (
int j = 1;
j <= ny;
j++) {
3943 ccc0HB = Ghb1->GetBinContent(1,
j);
3945 for (
int i = 1; i <= nx; i++) {
3946 double ccc2 = Ghb1->GetBinContent(i,
j);
3953 int jeta = (
j - 1) / 18;
3954 int jphi = (
j - 1) - 18 * jeta;
3956 for (
int i = 1; i <= nx; i++) {
3957 double ccc1 = Ghb1->GetBinContent(i,
j);
3959 double Rij = ccc1 / ccc0HB;
3960 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3961 Ghb61->Fill(jeta - 11, jphi, Rij);
3962 Ghb60->Fill(jeta - 11, jphi, 1.);
3964 if (Rij < 0.8 || Rij > 1.2) {
3965 G20hb61->Fill(jeta - 11, jphi, Rij);
3966 G20hb60->Fill(jeta - 11, jphi, 1.);
3968 if (Rij < 0.7 || Rij > 1.3) {
3969 G30hb61->Fill(jeta - 11, jphi, Rij);
3970 G30hb60->Fill(jeta - 11, jphi, 1.);
3972 if (Rij < 0.6 || Rij > 1.4) {
3973 G40hb61->Fill(jeta - 11, jphi, Rij);
3974 G40hb60->Fill(jeta - 11, jphi, 1.);
3980 Ghb6->Divide(Ghb61, Ghb60, 1, 1,
"B");
3981 G20hb6->Divide(G20hb61, G20hb60, 1, 1,
"B");
3982 G30hb6->Divide(G30hb61, G30hb60, 1, 1,
"B");
3983 G40hb6->Divide(G40hb61, G40hb60, 1, 1,
"B");
3985 Ghb6->GetZaxis()->SetLabelSize(0.025);
3986 Ghb6->SetXTitle(
" #eta \b");
3987 Ghb6->SetYTitle(
" #phi \b");
3988 Ghb6->SetTitle(
"<Rj> for |1-<R>| > 0.05 \b");
3993 TH1F *Ghb7 =
new TH1F(
"Ghb7",
"", 120, 0.4, 1.6);
3995 for (
int j = 1;
j <= ny;
j++) {
3996 ccc0HB = Ghb1->GetBinContent(1,
j);
3998 for (
int i = 1; i <= nx; i++) {
3999 double ccc2 = Ghb1->GetBinContent(i,
j);
4007 for (
int i = 1; i <= nx; i++) {
4008 double ccc1 = Ghb1->GetBinContent(i,
j);
4010 double Rij = ccc1 / ccc0HB;
4016 Ghb7->SetMarkerStyle(20);
4017 Ghb7->SetMarkerSize(0.4);
4018 Ghb7->GetYaxis()->SetLabelSize(0.04);
4019 Ghb7->SetMarkerColor(2);
4020 Ghb7->SetLineColor(0);
4021 Ghb7->SetYTitle(
" N \b");
4022 Ghb7->SetXTitle(
" Rij \b");
4023 Ghb7->SetTitle(
" Rij \b");
4028 Ghb7->GetYaxis()->SetLabelSize(0.025);
4029 Ghb7->Draw(
"Error");
4030 Float_t ymaxHB = Ghb7->GetMaximum();
4031 cout <<
"22HB-3 ymaxHB= " << ymaxHB <<
" MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4032 <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4033 TLine *lineHB =
new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4034 lineHB->SetLineColor(kBlue);
4036 TLine *line1HB =
new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4037 line1HB->SetLineColor(kBlue);
4042 cRBX31->Print(
"RBX-HB-3plots.png");
4077 gStyle->SetOptStat(1110000);
4078 cout <<
" RBX HB Ratio plotsmore *****" << endl;
4081 cRBX31->Divide(3, 1);
4084 G20hb6->GetZaxis()->SetLabelSize(0.025);
4085 G20hb6->SetXTitle(
" #eta \b");
4086 G20hb6->SetYTitle(
" #phi \b");
4087 G20hb6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4088 G20hb6->SetStats(0);
4089 G20hb6->Draw(
"COLZ");
4092 G30hb6->GetZaxis()->SetLabelSize(0.025);
4093 G30hb6->SetXTitle(
" #eta \b");
4094 G30hb6->SetYTitle(
" #phi \b");
4095 G30hb6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4096 G30hb6->SetStats(0);
4097 G30hb6->Draw(
"COLZ");
4100 G40hb6->GetZaxis()->SetLabelSize(0.025);
4101 G40hb6->SetXTitle(
" #eta \b");
4102 G40hb6->SetYTitle(
" #phi \b");
4103 G40hb6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4104 G40hb6->SetStats(0);
4105 G40hb6->Draw(
"COLZ");
4110 cRBX31->Print(
"RBX-HB-3plotsmore.png");
4120 gStyle->SetOptStat(0);
4124 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4125 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4126 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4127 for (
int jphi = 0; jphi < njphi; jphi++) {
4128 for (
int jeta = 0; jeta < njeta; jeta++) {
4129 for (
int i = 0; i < nx; i++) {
4130 alexall[jeta][jphi][
i] = 0.;
4141 cout <<
" RBX general for HE **************************" << endl;
4142 TH2F *Ghe1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs1");
4143 TH2F *Ghe1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs10");
4144 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone(
"Ghe1");
4145 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1,
"B");
4149 ny = Ghe1->GetYaxis()->GetNbins();
4150 for (
int j = 1;
j <= ny;
j++) {
4151 int jeta = (
j - 1) / njphi;
4152 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4153 int jphi = (
j - 1) - njphi * jeta;
4156 for (
int i = 1; i <= nx; i++) {
4157 double ccc1 = Ghe1->GetBinContent(i,
j);
4158 alexall[jeta][jphi][i - 1] = ccc1;
4171 for (
int jphi = 0; jphi < njphi; jphi++) {
4172 for (
int i = 0; i < nx; i++) {
4173 double sumccc1 = 0.;
4175 for (
int jeta = 0; jeta < njeta; jeta++) {
4176 double ccc1 = alexall[jeta][jphi][
i];
4184 alexhe[jphi][
i] = sumccc1;
4188 for (
int keta = 0; keta < njeta; keta++) {
4189 for (
int i = 0; i < nx; i++) {
4190 double sumccc1 = 0.;
4192 for (
int kphi = 0; kphi < njphi; kphi++) {
4193 double ccc1 = alexall[keta][kphi][
i];
4201 blexhe[keta][
i] = sumccc1;
4210 cout <<
" RBX HE 2D plot *****" << endl;
4213 cRBX1->Divide(1, 1);
4216 TH2F *Ghe42D =
new TH2F(
"Ghe42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4217 TH2F *Ghe42D0 =
new TH2F(
"Ghe42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4220 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone(
"Ghe42DF");
4221 for (
int jphi = 0; jphi < njphi; jphi++) {
4222 for (
int jeta = 0; jeta < njeta; jeta++) {
4223 for (
int i = 0; i < nx; i++) {
4224 double ccc1 = alexall[jeta][jphi][
i];
4225 int neweta = jeta - 11 - 0.5;
4227 neweta = jeta - 11 + 1.5;
4229 Ghe42D->Fill(neweta, jphi, ccc1);
4230 Ghe42D0->Fill(neweta, jphi, 1.);
4236 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1,
"B");
4240 Ghe42DF->SetMarkerStyle(20);
4241 Ghe42DF->SetMarkerSize(0.4);
4242 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4243 Ghe42DF->SetXTitle(
"<A>_RBX #eta \b");
4244 Ghe42DF->SetYTitle(
" #phi \b");
4245 Ghe42DF->SetZTitle(
"<A>_RBX - All \b");
4246 Ghe42DF->SetMarkerColor(2);
4247 Ghe42DF->SetLineColor(2);
4248 Ghe42DF->Draw(
"COLZ");
4252 cRBX1->Print(
"RBX-HE-2Dplot.png");
4267 cout <<
" RBX HE 1D plot *****" << endl;
4270 cRBX1->Divide(1, 1);
4272 TH1F *GphiHE1D =
new TH1F(
"GphiHE1D",
"", 18, 0., 18.);
4273 TH1F *GphiHE1D0 =
new TH1F(
"GphiHE1D0",
"", 18, 0., 18.);
4274 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone(
"GphiHE1DF");
4275 for (
int jphi = 0; jphi < 18; jphi++) {
4276 for (
int jeta = 0; jeta < 22; jeta++) {
4277 for (
int i = 0; i < nx; i++) {
4278 double ccc1 = alexall[jeta][jphi][
i];
4280 GphiHE1D->Fill(jphi, ccc1);
4281 GphiHE1D0->Fill(jphi, 1.);
4287 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1,
"B");
4289 for (
int jphi = 1; jphi < 19; jphi++) {
4290 GphiHE1DF->SetBinError(jphi, 0.01);
4294 GphiHE1DF->SetMarkerStyle(20);
4295 GphiHE1DF->SetMarkerSize(1.4);
4296 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4297 GphiHE1DF->SetXTitle(
"PHI of RBX\b");
4298 GphiHE1DF->SetYTitle(
" <Amplitude> \b");
4299 GphiHE1DF->SetZTitle(
"<A>_PHI - All \b");
4300 GphiHE1DF->SetMarkerColor(4);
4301 GphiHE1DF->SetLineColor(4);
4302 GphiHE1DF->SetMinimum(0.8);
4303 GphiHE1DF->Draw(
"Error");
4306 cRBX1->Print(
"RBX-HE-1Dplot.png");
4321 cout <<
" RBX HE 11D plot *eta*" << endl;
4324 cRBX1->Divide(1, 1);
4326 TH1F *GetaHE11D =
new TH1F(
"GetaHE11D",
"", 23, -11.5, 11.5);
4327 TH1F *GetaHE11D0 =
new TH1F(
"GetaHE11D0",
"", 23, -11.5, 11.5);
4328 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone(
"GetaHE11DF");
4330 for (
int jeta = 0; jeta < 22; jeta++) {
4331 for (
int jphi = 0; jphi < 18; jphi++) {
4332 for (
int i = 0; i < nx; i++) {
4333 double ccc1 = alexall[jeta][jphi][
i];
4334 int neweta = jeta - 11 - 0.5;
4336 neweta = jeta - 11 + 1.5;
4338 GetaHE11D->Fill(neweta, ccc1);
4339 GetaHE11D0->Fill(neweta, 1.);
4346 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1,
"B");
4348 for (
int jeta = 1; jeta < 24; jeta++) {
4349 GetaHE11DF->SetBinError(jeta, 0.01);
4353 GetaHE11DF->SetMarkerStyle(20);
4354 GetaHE11DF->SetMarkerSize(1.4);
4355 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4356 GetaHE11DF->SetXTitle(
"#eta \b");
4357 GetaHE11DF->SetYTitle(
" <A> \b");
4358 GetaHE11DF->SetZTitle(
"<A>_ETA - All \b");
4359 GetaHE11DF->SetMarkerColor(4);
4360 GetaHE11DF->SetLineColor(4);
4361 GetaHE11DF->SetMinimum(0.8);
4362 GetaHE11DF->Draw(
"Error");
4366 cRBX1->Print(
"RBX-HE-11Dplot.png");
4382 gStyle->SetOptStat(1110000);
4383 cout <<
" RBX HE Ratio plots *****" << endl;
4392 cRBX31->Divide(3, 1);
4396 TH1F *Ghe51 =
new TH1F(
"Ghe51",
"", nx, 1., nx + 1.);
4397 TH1F *Ghe50 =
new TH1F(
"Ghe50",
"", nx, 1., nx + 1.);
4398 TH1F *Ghe5 = (TH1F *)Ghe50->Clone(
"Ghe5");
4400 for (
int j = 1;
j <= ny;
j++) {
4401 ccc0HE = Ghe1->GetBinContent(1,
j);
4404 for (
int i = 1; i <= nx; i++) {
4405 double ccc2 = Ghe1->GetBinContent(i,
j);
4413 for (
int i = 1; i <= nx; i++) {
4414 double ccc1 = Ghe1->GetBinContent(i,
j);
4416 double Rij = ccc1 / ccc0HE;
4418 Ghe51->Fill(
float(i), Rij);
4419 Ghe50->Fill(
float(i), 1.);
4424 Ghe5->Divide(Ghe51, Ghe50, 1, 1,
"B");
4425 for (
int i = 1; i <= nx; i++) {
4426 Ghe5->SetBinError(i, 0.0001);
4428 Ghe5->SetMarkerStyle(20);
4429 Ghe5->SetMarkerSize(0.4);
4430 Ghe5->GetYaxis()->SetLabelSize(0.04);
4431 Ghe5->SetMarkerColor(2);
4432 Ghe5->SetLineColor(0);
4433 Ghe5->SetXTitle(
" iLS \b");
4434 Ghe5->SetYTitle(
" <R> \b");
4435 Ghe5->SetTitle(
"<Ri> vs iLS \b");
4436 Ghe5->SetMinimum(0.);
4441 Ghe5->GetYaxis()->SetLabelSize(0.025);
4442 Ghe5->Draw(
"Error");
4445 TH2F *Ghe60 =
new TH2F(
"Ghe60",
"", 22, -11., 11., 18, 0., 18.);
4446 TH2F *Ghe61 =
new TH2F(
"Ghe61",
"", 22, -11., 11., 18, 0., 18.);
4447 TH2F *Ghe6 =
new TH2F(
"Ghe6",
"", 22, -11., 11., 18, 0., 18.);
4449 TH2F *G20he60 =
new TH2F(
"G20he60",
"", 22, -11., 11., 18, 0., 18.);
4450 TH2F *G20he61 =
new TH2F(
"G20he61",
"", 22, -11., 11., 18, 0., 18.);
4451 TH2F *G20he6 =
new TH2F(
"G20he6",
"", 22, -11., 11., 18, 0., 18.);
4452 TH2F *G30he60 =
new TH2F(
"G30he60",
"", 22, -11., 11., 18, 0., 18.);
4453 TH2F *G30he61 =
new TH2F(
"G30he61",
"", 22, -11., 11., 18, 0., 18.);
4454 TH2F *G30he6 =
new TH2F(
"G30he6",
"", 22, -11., 11., 18, 0., 18.);
4455 TH2F *G40he60 =
new TH2F(
"G40he60",
"", 22, -11., 11., 18, 0., 18.);
4456 TH2F *G40he61 =
new TH2F(
"G40he61",
"", 22, -11., 11., 18, 0., 18.);
4457 TH2F *G40he6 =
new TH2F(
"G40he6",
"", 22, -11., 11., 18, 0., 18.);
4463 double meanjHE = 0.;
4464 for (
int j = 1;
j <= ny;
j++) {
4465 ccc0HE = Ghe1->GetBinContent(1,
j);
4467 for (
int i = 1; i <= nx; i++) {
4468 double ccc2 = Ghe1->GetBinContent(i,
j);
4475 for (
int i = 1; i <= nx; i++) {
4476 double ccc1 = Ghe1->GetBinContent(i,
j) / ccc0HE;
4482 meanjHE = sumjHE / njHE;
4486 double ssumjHE = 0.;
4488 double sigmajHE = 0.;
4489 for (
int j = 1;
j <= ny;
j++) {
4490 ccc0HE = Ghe1->GetBinContent(1,
j);
4492 for (
int i = 1; i <= nx; i++) {
4493 double ccc2 = Ghe1->GetBinContent(i,
j);
4500 for (
int i = 1; i <= nx; i++) {
4501 double ccc1 = Ghe1->GetBinContent(i,
j) / ccc0HE;
4503 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4507 sigmajHE =
sqrt(ssumjHE / njHE);
4511 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4512 if (dif3rmsHEMIN < 0.)
4514 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4515 cout <<
"22HE-2 meanjHE= " << meanjHE <<
" sigmajHE= " << sigmajHE <<
" dif3rmsHEMIN= " << dif3rmsHEMIN
4516 <<
" dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4518 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4519 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4520 if (MAXdif3rmsHEMIN < 0.95)
4521 MAXdif3rmsHEMIN = 0.95;
4522 if (MINdif3rmsHEMAX > 1.05)
4523 MINdif3rmsHEMAX = 1.05;
4524 cout <<
"22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4526 for (
int j = 1;
j <= ny;
j++) {
4527 ccc0HE = Ghe1->GetBinContent(1,
j);
4529 for (
int i = 1; i <= nx; i++) {
4530 double ccc2 = Ghe1->GetBinContent(i,
j);
4537 int jeta = (
j - 1) / 18;
4538 int jphi = (
j - 1) - 18 * jeta;
4540 for (
int i = 1; i <= nx; i++) {
4541 double ccc1 = Ghe1->GetBinContent(i,
j);
4543 double Rij = ccc1 / ccc0HE;
4544 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4545 Ghe61->Fill(jeta - 11, jphi, Rij);
4546 Ghe60->Fill(jeta - 11, jphi, 1.);
4548 if (Rij < 0.8 || Rij > 1.2) {
4549 G20he61->Fill(jeta - 11, jphi, Rij);
4550 G20he60->Fill(jeta - 11, jphi, 1.);
4552 if (Rij < 0.7 || Rij > 1.3) {
4553 G30he61->Fill(jeta - 11, jphi, Rij);
4554 G30he60->Fill(jeta - 11, jphi, 1.);
4556 if (Rij < 0.6 || Rij > 1.4) {
4557 G40he61->Fill(jeta - 11, jphi, Rij);
4558 G40he60->Fill(jeta - 11, jphi, 1.);
4564 Ghe6->Divide(Ghe61, Ghe60, 1, 1,
"B");
4565 G20he6->Divide(G20he61, G20he60, 1, 1,
"B");
4566 G30he6->Divide(G30he61, G30he60, 1, 1,
"B");
4567 G40he6->Divide(G40he61, G40he60, 1, 1,
"B");
4571 Ghe6->GetZaxis()->SetLabelSize(0.025);
4573 Ghe6->SetXTitle(
" #eta \b");
4574 Ghe6->SetYTitle(
" #phi \b");
4576 "<Rj> for |1-<R>| > 0.05 \b");
4582 TH1F *Ghe7 =
new TH1F(
"Ghe7",
"", 120, 0.4, 1.6);
4584 for (
int j = 1;
j <= ny;
j++) {
4585 ccc0HE = Ghe1->GetBinContent(1,
j);
4587 for (
int i = 1; i <= nx; i++) {
4588 double ccc2 = Ghe1->GetBinContent(i,
j);
4596 for (
int i = 1; i <= nx; i++) {
4597 double ccc1 = Ghe1->GetBinContent(i,
j);
4599 double Rij = ccc1 / ccc0HE;
4605 Ghe7->SetMarkerStyle(20);
4606 Ghe7->SetMarkerSize(0.4);
4607 Ghe7->GetYaxis()->SetLabelSize(0.04);
4608 Ghe7->SetMarkerColor(2);
4609 Ghe7->SetLineColor(0);
4610 Ghe7->SetYTitle(
" N \b");
4611 Ghe7->SetXTitle(
" Rij \b");
4612 Ghe7->SetTitle(
" Rij \b");
4617 Ghe7->GetYaxis()->SetLabelSize(0.025);
4618 Ghe7->Draw(
"Error");
4619 Float_t ymaxHE = Ghe7->GetMaximum();
4620 cout <<
"22HE-3 ymaxHE= " << ymaxHE <<
" MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4621 <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4622 TLine *lineHE =
new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4623 lineHE->SetLineColor(kBlue);
4625 TLine *line1HE =
new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4626 line1HE->SetLineColor(kBlue);
4631 cRBX31->Print(
"RBX-HE-3plots.png");
4666 gStyle->SetOptStat(1110000);
4667 cout <<
" RBX HE Ratio plotsmore *****" << endl;
4670 cRBX31->Divide(3, 1);
4673 G20he6->GetZaxis()->SetLabelSize(0.025);
4674 G20he6->SetXTitle(
" #eta \b");
4675 G20he6->SetYTitle(
" #phi \b");
4676 G20he6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4677 G20he6->SetStats(0);
4678 G20he6->Draw(
"COLZ");
4681 G30he6->GetZaxis()->SetLabelSize(0.025);
4682 G30he6->SetXTitle(
" #eta \b");
4683 G30he6->SetYTitle(
" #phi \b");
4684 G30he6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4685 G30he6->SetStats(0);
4686 G30he6->Draw(
"COLZ");
4689 G40he6->GetZaxis()->SetLabelSize(0.025);
4690 G40he6->SetXTitle(
" #eta \b");
4691 G40he6->SetYTitle(
" #phi \b");
4692 G40he6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4693 G40he6->SetStats(0);
4694 G40he6->Draw(
"COLZ");
4699 cRBX31->Print(
"RBX-HE-3plotsmore.png");
4709 gStyle->SetOptStat(0);
4712 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4713 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4714 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4715 for (
int jphi = 0; jphi < njphi; jphi++) {
4716 for (
int jeta = 0; jeta < njeta; jeta++) {
4717 for (
int i = 0; i < nx; i++) {
4718 alexall[jeta][jphi][
i] = 0.;
4729 cout <<
" RBX general for HO **************************" << endl;
4730 TH2F *Gho1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs2");
4731 TH2F *Gho1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs20");
4732 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone(
"Gho1");
4733 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1,
"B");
4737 ny = Gho1->GetYaxis()->GetNbins();
4738 for (
int j = 1;
j <= ny;
j++) {
4739 int jeta = (
j - 1) / njphi;
4740 if (jeta < 15 && jeta > 6) {
4741 int jphi = (
j - 1) - njphi * jeta;
4744 for (
int i = 1; i <= nx; i++) {
4745 double ccc1 = Gho1->GetBinContent(i,
j);
4746 alexall[jeta][jphi][i - 1] = ccc1;
4759 for (
int jphi = 0; jphi < njphi; jphi++) {
4760 for (
int i = 0; i < nx; i++) {
4761 double sumccc1 = 0.;
4763 for (
int jeta = 0; jeta < njeta; jeta++) {
4764 double ccc1 = alexall[jeta][jphi][
i];
4772 alexho[jphi][
i] = sumccc1;
4776 for (
int keta = 0; keta < njeta; keta++) {
4777 for (
int i = 0; i < nx; i++) {
4778 double sumccc1 = 0.;
4780 for (
int kphi = 0; kphi < njphi; kphi++) {
4781 double ccc1 = alexall[keta][kphi][
i];
4789 blexho[keta][
i] = sumccc1;
4799 cout <<
" RBX HO 2D plot *****" << endl;
4802 cRBX1->Divide(1, 1);
4805 TH2F *Gho42D =
new TH2F(
"Gho42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4806 TH2F *Gho42D0 =
new TH2F(
"Gho42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4809 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone(
"Gho42DF");
4810 for (
int jphi = 0; jphi < njphi; jphi++) {
4811 for (
int jeta = 0; jeta < njeta; jeta++) {
4812 for (
int i = 0; i < nx; i++) {
4813 double ccc1 = alexall[jeta][jphi][
i];
4814 int neweta = jeta - 11 - 0.5;
4816 neweta = jeta - 11 + 1.5;
4818 Gho42D->Fill(neweta, jphi, ccc1);
4819 Gho42D0->Fill(neweta, jphi, 1.);
4825 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1,
"B");
4829 Gho42DF->SetMarkerStyle(20);
4830 Gho42DF->SetMarkerSize(0.4);
4831 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4832 Gho42DF->SetXTitle(
"<A>_RBX #eta \b");
4833 Gho42DF->SetYTitle(
" #phi \b");
4834 Gho42DF->SetZTitle(
"<A>_RBX - All \b");
4835 Gho42DF->SetMarkerColor(2);
4836 Gho42DF->SetLineColor(2);
4837 Gho42DF->Draw(
"COLZ");
4841 cRBX1->Print(
"RBX-HO-2Dplot.png");
4856 cout <<
" RBX HO 1D plot *****" << endl;
4859 cRBX1->Divide(1, 1);
4861 TH1F *GphiHO1D =
new TH1F(
"GphiHO1D",
"", 18, 0., 18.);
4862 TH1F *GphiHO1D0 =
new TH1F(
"GphiHO1D0",
"", 18, 0., 18.);
4863 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone(
"GphiHO1DF");
4864 for (
int jphi = 0; jphi < 18; jphi++) {
4865 for (
int jeta = 0; jeta < 22; jeta++) {
4866 for (
int i = 0; i < nx; i++) {
4867 double ccc1 = alexall[jeta][jphi][
i];
4869 GphiHO1D->Fill(jphi, ccc1);
4870 GphiHO1D0->Fill(jphi, 1.);
4876 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1,
"B");
4878 for (
int jphi = 1; jphi < 19; jphi++) {
4879 GphiHO1DF->SetBinError(jphi, 0.01);
4883 GphiHO1DF->SetMarkerStyle(20);
4884 GphiHO1DF->SetMarkerSize(1.4);
4885 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4886 GphiHO1DF->SetXTitle(
"PHI of RBX\b");
4887 GphiHO1DF->SetYTitle(
" <Amplitude> \b");
4888 GphiHO1DF->SetZTitle(
"<A>_PHI - All \b");
4889 GphiHO1DF->SetMarkerColor(4);
4890 GphiHO1DF->SetLineColor(4);
4891 GphiHO1DF->SetMinimum(0.8);
4892 GphiHO1DF->Draw(
"Error");
4895 cRBX1->Print(
"RBX-HO-1Dplot.png");
4910 cout <<
" RBX HO 11D plot *eta*" << endl;
4913 cRBX1->Divide(1, 1);
4915 TH1F *GetaHO11D =
new TH1F(
"GetaHO11D",
"", 23, -11.5, 11.5);
4916 TH1F *GetaHO11D0 =
new TH1F(
"GetaHO11D0",
"", 23, -11.5, 11.5);
4917 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone(
"GetaHO11DF");
4919 for (
int jeta = 0; jeta < 22; jeta++) {
4920 for (
int jphi = 0; jphi < 18; jphi++) {
4921 for (
int i = 0; i < nx; i++) {
4922 double ccc1 = alexall[jeta][jphi][
i];
4923 int neweta = jeta - 11 - 0.5;
4925 neweta = jeta - 11 + 1.5;
4927 GetaHO11D->Fill(neweta, ccc1);
4928 GetaHO11D0->Fill(neweta, 1.);
4935 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1,
"B");
4937 for (
int jeta = 1; jeta < 24; jeta++) {
4938 GetaHO11DF->SetBinError(jeta, 0.01);
4942 GetaHO11DF->SetMarkerStyle(20);
4943 GetaHO11DF->SetMarkerSize(1.4);
4944 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4945 GetaHO11DF->SetXTitle(
"#eta \b");
4946 GetaHO11DF->SetYTitle(
" <A> \b");
4947 GetaHO11DF->SetZTitle(
"<A>_ETA - All \b");
4948 GetaHO11DF->SetMarkerColor(4);
4949 GetaHO11DF->SetLineColor(4);
4950 GetaHO11DF->SetMinimum(0.8);
4951 GetaHO11DF->Draw(
"Error");
4955 cRBX1->Print(
"RBX-HO-11Dplot.png");
4971 gStyle->SetOptStat(1110000);
4972 cout <<
" RBX HO Ratio plots *****" << endl;
4981 cRBX31->Divide(3, 1);
4985 TH1F *Gho51 =
new TH1F(
"Gho51",
"", nx, 1., nx + 1.);
4986 TH1F *Gho50 =
new TH1F(
"Gho50",
"", nx, 1., nx + 1.);
4987 TH1F *Gho5 = (TH1F *)Gho50->Clone(
"Gho5");
4989 for (
int j = 1;
j <= ny;
j++) {
4990 ccc0HO = Gho1->GetBinContent(1,
j);
4993 for (
int i = 1; i <= nx; i++) {
4994 double ccc2 = Gho1->GetBinContent(i,
j);
5002 for (
int i = 1; i <= nx; i++) {
5003 double ccc1 = Gho1->GetBinContent(i,
j);
5005 double Rij = ccc1 / ccc0HO;
5007 Gho51->Fill(
float(i), Rij);
5008 Gho50->Fill(
float(i), 1.);
5013 Gho5->Divide(Gho51, Gho50, 1, 1,
"B");
5014 for (
int i = 1; i <= nx; i++) {
5015 Gho5->SetBinError(i, 0.0001);
5017 Gho5->SetMarkerStyle(20);
5018 Gho5->SetMarkerSize(0.4);
5019 Gho5->GetYaxis()->SetLabelSize(0.04);
5020 Gho5->SetMarkerColor(2);
5021 Gho5->SetLineColor(0);
5022 Gho5->SetXTitle(
" iLS \b");
5023 Gho5->SetYTitle(
" <R> \b");
5024 Gho5->SetTitle(
"<Ri> vs iLS \b");
5025 Gho5->SetMinimum(0.);
5030 Gho5->GetYaxis()->SetLabelSize(0.025);
5031 Gho5->Draw(
"Error");
5034 TH2F *Gho60 =
new TH2F(
"Gho60",
"", 22, -11., 11., 18, 0., 18.);
5035 TH2F *Gho61 =
new TH2F(
"Gho61",
"", 22, -11., 11., 18, 0., 18.);
5036 TH2F *Gho6 =
new TH2F(
"Gho6",
"", 22, -11., 11., 18, 0., 18.);
5038 TH2F *G20ho60 =
new TH2F(
"G20ho60",
"", 22, -11., 11., 18, 0., 18.);
5039 TH2F *G20ho61 =
new TH2F(
"G20ho61",
"", 22, -11., 11., 18, 0., 18.);
5040 TH2F *G20ho6 =
new TH2F(
"G20ho6",
"", 22, -11., 11., 18, 0., 18.);
5041 TH2F *G30ho60 =
new TH2F(
"G30ho60",
"", 22, -11., 11., 18, 0., 18.);
5042 TH2F *G30ho61 =
new TH2F(
"G30ho61",
"", 22, -11., 11., 18, 0., 18.);
5043 TH2F *G30ho6 =
new TH2F(
"G30ho6",
"", 22, -11., 11., 18, 0., 18.);
5044 TH2F *G40ho60 =
new TH2F(
"G40ho60",
"", 22, -11., 11., 18, 0., 18.);
5045 TH2F *G40ho61 =
new TH2F(
"G40ho61",
"", 22, -11., 11., 18, 0., 18.);
5046 TH2F *G40ho6 =
new TH2F(
"G40ho6",
"", 22, -11., 11., 18, 0., 18.);
5053 double meanjHO = 0.;
5054 for (
int j = 1;
j <= ny;
j++) {
5055 ccc0HO = Gho1->GetBinContent(1,
j);
5057 for (
int i = 1; i <= nx; i++) {
5058 double ccc2 = Gho1->GetBinContent(i,
j);
5065 for (
int i = 1; i <= nx; i++) {
5066 double ccc1 = Gho1->GetBinContent(i,
j) / ccc0HO;
5072 meanjHO = sumjHO / njHO;
5076 double ssumjHO = 0.;
5078 double sigmajHO = 0.;
5079 for (
int j = 1;
j <= ny;
j++) {
5080 ccc0HO = Gho1->GetBinContent(1,
j);
5082 for (
int i = 1; i <= nx; i++) {
5083 double ccc2 = Gho1->GetBinContent(i,
j);
5090 for (
int i = 1; i <= nx; i++) {
5091 double ccc1 = Gho1->GetBinContent(i,
j) / ccc0HO;
5093 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5097 sigmajHO =
sqrt(ssumjHO / njHO);
5101 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5102 if (dif3rmsHOMIN < 0.)
5104 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5105 cout <<
"22HO-2 meanjHO= " << meanjHO <<
" sigmajHO= " << sigmajHO <<
" dif3rmsHOMIN= " << dif3rmsHOMIN
5106 <<
" dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5108 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5109 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5110 if (MAXdif3rmsHOMIN < 0.95)
5111 MAXdif3rmsHOMIN = 0.95;
5112 if (MINdif3rmsHOMAX > 1.05)
5113 MINdif3rmsHOMAX = 1.05;
5114 cout <<
"22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5116 for (
int j = 1;
j <= ny;
j++) {
5117 ccc0HO = Gho1->GetBinContent(1,
j);
5119 for (
int i = 1; i <= nx; i++) {
5120 double ccc2 = Gho1->GetBinContent(i,
j);
5127 int jeta = (
j - 1) / 18;
5128 int jphi = (
j - 1) - 18 * jeta;
5130 for (
int i = 1; i <= nx; i++) {
5131 double ccc1 = Gho1->GetBinContent(i,
j);
5133 double Rij = ccc1 / ccc0HO;
5134 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5135 Gho61->Fill(jeta - 11, jphi, Rij);
5136 Gho60->Fill(jeta - 11, jphi, 1.);
5138 if (Rij < 0.8 || Rij > 1.2) {
5139 G20ho61->Fill(jeta - 11, jphi, Rij);
5140 G20ho60->Fill(jeta - 11, jphi, 1.);
5142 if (Rij < 0.7 || Rij > 1.3) {
5143 G30ho61->Fill(jeta - 11, jphi, Rij);
5144 G30ho60->Fill(jeta - 11, jphi, 1.);
5146 if (Rij < 0.6 || Rij > 1.4) {
5147 G40ho61->Fill(jeta - 11, jphi, Rij);
5148 G40ho60->Fill(jeta - 11, jphi, 1.);
5154 Gho6->Divide(Gho61, Gho60, 1, 1,
"B");
5155 G20ho6->Divide(G20ho61, G20ho60, 1, 1,
"B");
5156 G30ho6->Divide(G30ho61, G30ho60, 1, 1,
"B");
5157 G40ho6->Divide(G40ho61, G40ho60, 1, 1,
"B");
5160 Gho6->GetZaxis()->SetLabelSize(0.025);
5162 Gho6->SetXTitle(
" #eta \b");
5163 Gho6->SetYTitle(
" #phi \b");
5165 "<Rj> for |1-<R>| > 0.05 \b");
5171 TH1F *Gho7 =
new TH1F(
"Gho7",
"", 120, 0.4, 1.6);
5173 for (
int j = 1;
j <= ny;
j++) {
5174 ccc0HO = Gho1->GetBinContent(1,
j);
5176 for (
int i = 1; i <= nx; i++) {
5177 double ccc2 = Gho1->GetBinContent(i,
j);
5185 for (
int i = 1; i <= nx; i++) {
5186 double ccc1 = Gho1->GetBinContent(i,
j);
5188 double Rij = ccc1 / ccc0HO;
5194 Gho7->SetMarkerStyle(20);
5195 Gho7->SetMarkerSize(0.4);
5196 Gho7->GetYaxis()->SetLabelSize(0.04);
5197 Gho7->SetMarkerColor(2);
5198 Gho7->SetLineColor(0);
5199 Gho7->SetYTitle(
" N \b");
5200 Gho7->SetXTitle(
" Rij \b");
5201 Gho7->SetTitle(
" Rij \b");
5206 Gho7->GetYaxis()->SetLabelSize(0.025);
5207 Gho7->Draw(
"Error");
5208 Float_t ymaxHO = Gho7->GetMaximum();
5209 cout <<
"22HO-3 ymaxHO= " << ymaxHO <<
" MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5210 <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5211 TLine *lineHO =
new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5212 lineHO->SetLineColor(kBlue);
5214 TLine *line1HO =
new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5215 line1HO->SetLineColor(kBlue);
5220 cRBX31->Print(
"RBX-HO-3plots.png");
5255 gStyle->SetOptStat(1110000);
5256 cout <<
" RBX HO Ratio plotsmore *****" << endl;
5259 cRBX31->Divide(3, 1);
5262 G20ho6->GetZaxis()->SetLabelSize(0.025);
5263 G20ho6->SetXTitle(
" #eta \b");
5264 G20ho6->SetYTitle(
" #phi \b");
5265 G20ho6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5266 G20ho6->SetStats(0);
5267 G20ho6->Draw(
"COLZ");
5270 G30ho6->GetZaxis()->SetLabelSize(0.025);
5271 G30ho6->SetXTitle(
" #eta \b");
5272 G30ho6->SetYTitle(
" #phi \b");
5273 G30ho6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5274 G30ho6->SetStats(0);
5275 G30ho6->Draw(
"COLZ");
5278 G40ho6->GetZaxis()->SetLabelSize(0.025);
5279 G40ho6->SetXTitle(
" #eta \b");
5280 G40ho6->SetYTitle(
" #phi \b");
5281 G40ho6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5282 G40ho6->SetStats(0);
5283 G40ho6->Draw(
"COLZ");
5288 cRBX31->Print(
"RBX-HO-3plotsmore.png");
5298 gStyle->SetOptStat(0);
5301 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5302 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5303 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5304 for (
int jphi = 0; jphi < njphi; jphi++) {
5305 for (
int jeta = 0; jeta < njeta; jeta++) {
5306 for (
int i = 0; i < nx; i++) {
5307 alexall[jeta][jphi][
i] = 0.;
5318 cout <<
" RBX general for HF **************************" << endl;
5319 TH2F *Ghf1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs3");
5320 TH2F *Ghf1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs30");
5321 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone(
"Ghf1");
5322 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1,
"B");
5326 ny = Ghf1->GetYaxis()->GetNbins();
5327 for (
int j = 1;
j <= ny;
j++) {
5328 int jeta = (
j - 1) / njphi;
5329 if (jeta < 4 || jeta > 17) {
5330 int jphi = (
j - 1) - njphi * jeta;
5333 for (
int i = 1; i <= nx; i++) {
5334 double ccc1 = Ghf1->GetBinContent(i,
j);
5335 alexall[jeta][jphi][i - 1] = ccc1;
5348 for (
int jphi = 0; jphi < njphi; jphi++) {
5349 for (
int i = 0; i < nx; i++) {
5350 double sumccc1 = 0.;
5352 for (
int jeta = 0; jeta < njeta; jeta++) {
5353 double ccc1 = alexall[jeta][jphi][
i];
5361 alexhf[jphi][
i] = sumccc1;
5365 for (
int keta = 0; keta < njeta; keta++) {
5366 for (
int i = 0; i < nx; i++) {
5367 double sumccc1 = 0.;
5369 for (
int kphi = 0; kphi < njphi; kphi++) {
5370 double ccc1 = alexall[keta][kphi][
i];
5378 blexhf[keta][
i] = sumccc1;
5387 cout <<
" RBX HF 2D plot *****" << endl;
5390 cRBX1->Divide(1, 1);
5393 TH2F *Ghf42D =
new TH2F(
"Ghf42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
5394 TH2F *Ghf42D0 =
new TH2F(
"Ghf42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
5397 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone(
"Ghf42DF");
5398 for (
int jphi = 0; jphi < njphi; jphi++) {
5399 for (
int jeta = 0; jeta < njeta; jeta++) {
5400 for (
int i = 0; i < nx; i++) {
5401 double ccc1 = alexall[jeta][jphi][
i];
5402 int neweta = jeta - 11 - 0.5;
5404 neweta = jeta - 11 + 1.5;
5406 Ghf42D->Fill(neweta, jphi, ccc1);
5407 Ghf42D0->Fill(neweta, jphi, 1.);
5413 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1,
"B");
5417 Ghf42DF->SetMarkerStyle(20);
5418 Ghf42DF->SetMarkerSize(0.4);
5419 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5420 Ghf42DF->SetXTitle(
"<A>_RBX #eta \b");
5421 Ghf42DF->SetYTitle(
" #phi \b");
5422 Ghf42DF->SetZTitle(
"<A>_RBX - All \b");
5423 Ghf42DF->SetMarkerColor(2);
5424 Ghf42DF->SetLineColor(2);
5425 Ghf42DF->Draw(
"COLZ");
5429 cRBX1->Print(
"RBX-HF-2Dplot.png");
5444 cout <<
" RBX HF 1D plot *****" << endl;
5447 cRBX1->Divide(1, 1);
5449 TH1F *GphiHF1D =
new TH1F(
"GphiHF1D",
"", 18, 0., 18.);
5450 TH1F *GphiHF1D0 =
new TH1F(
"GphiHF1D0",
"", 18, 0., 18.);
5451 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone(
"GphiHF1DF");
5452 for (
int jphi = 0; jphi < 18; jphi++) {
5453 for (
int jeta = 0; jeta < 22; jeta++) {
5454 for (
int i = 0; i < nx; i++) {
5455 double ccc1 = alexall[jeta][jphi][
i];
5457 GphiHF1D->Fill(jphi, ccc1);
5458 GphiHF1D0->Fill(jphi, 1.);
5464 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1,
"B");
5466 for (
int jphi = 1; jphi < 19; jphi++) {
5467 GphiHF1DF->SetBinError(jphi, 0.01);
5471 GphiHF1DF->SetMarkerStyle(20);
5472 GphiHF1DF->SetMarkerSize(1.4);
5473 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5474 GphiHF1DF->SetXTitle(
"PHI of RBX\b");
5475 GphiHF1DF->SetYTitle(
" <Amplitude> \b");
5476 GphiHF1DF->SetZTitle(
"<A>_PHI - All \b");
5477 GphiHF1DF->SetMarkerColor(4);
5478 GphiHF1DF->SetLineColor(4);
5479 GphiHF1DF->SetMinimum(0.8);
5480 GphiHF1DF->Draw(
"Error");
5483 cRBX1->Print(
"RBX-HF-1Dplot.png");
5498 cout <<
" RBX HF 11D plot *eta*" << endl;
5501 cRBX1->Divide(1, 1);
5503 TH1F *GetaHF11D =
new TH1F(
"GetaHF11D",
"", 23, -11.5, 11.5);
5504 TH1F *GetaHF11D0 =
new TH1F(
"GetaHF11D0",
"", 23, -11.5, 11.5);
5505 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone(
"GetaHF11DF");
5507 for (
int jeta = 0; jeta < 22; jeta++) {
5508 for (
int jphi = 0; jphi < 18; jphi++) {
5509 for (
int i = 0; i < nx; i++) {
5510 double ccc1 = alexall[jeta][jphi][
i];
5511 int neweta = jeta - 11 - 0.5;
5513 neweta = jeta - 11 + 1.5;
5515 GetaHF11D->Fill(neweta, ccc1);
5516 GetaHF11D0->Fill(neweta, 1.);
5523 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1,
"B");
5525 for (
int jeta = 1; jeta < 24; jeta++) {
5526 GetaHF11DF->SetBinError(jeta, 0.01);
5530 GetaHF11DF->SetMarkerStyle(20);
5531 GetaHF11DF->SetMarkerSize(1.4);
5532 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5533 GetaHF11DF->SetXTitle(
"#eta \b");
5534 GetaHF11DF->SetYTitle(
" <A> \b");
5535 GetaHF11DF->SetZTitle(
"<A>_ETA - All \b");
5536 GetaHF11DF->SetMarkerColor(4);
5537 GetaHF11DF->SetLineColor(4);
5538 GetaHF11DF->SetMinimum(0.8);
5539 GetaHF11DF->Draw(
"Error");
5543 cRBX1->Print(
"RBX-HF-11Dplot.png");
5559 gStyle->SetOptStat(1110000);
5560 cout <<
" RBX HF Ratio plots *****" << endl;
5569 cRBX31->Divide(3, 1);
5573 TH1F *Ghf51 =
new TH1F(
"Ghf51",
"", nx, 1., nx + 1.);
5574 TH1F *Ghf50 =
new TH1F(
"Ghf50",
"", nx, 1., nx + 1.);
5575 TH1F *Ghf5 = (TH1F *)Ghf50->Clone(
"Ghf5");
5577 for (
int j = 1;
j <= ny;
j++) {
5578 ccc0HF = Ghf1->GetBinContent(1,
j);
5581 for (
int i = 1; i <= nx; i++) {
5582 double ccc2 = Ghf1->GetBinContent(i,
j);
5590 for (
int i = 1; i <= nx; i++) {
5591 double ccc1 = Ghf1->GetBinContent(i,
j);
5593 double Rij = ccc1 / ccc0HF;
5595 Ghf51->Fill(
float(i), Rij);
5596 Ghf50->Fill(
float(i), 1.);
5601 Ghf5->Divide(Ghf51, Ghf50, 1, 1,
"B");
5602 for (
int i = 1; i <= nx; i++) {
5603 Ghf5->SetBinError(i, 0.0001);
5605 Ghf5->SetMarkerStyle(20);
5606 Ghf5->SetMarkerSize(0.4);
5607 Ghf5->GetYaxis()->SetLabelSize(0.04);
5608 Ghf5->SetMarkerColor(2);
5609 Ghf5->SetLineColor(0);
5610 Ghf5->SetXTitle(
" iLS \b");
5611 Ghf5->SetYTitle(
" <R> \b");
5612 Ghf5->SetTitle(
"<Ri> vs iLS \b");
5613 Ghf5->SetMinimum(0.);
5618 Ghf5->GetYaxis()->SetLabelSize(0.025);
5619 Ghf5->Draw(
"Error");
5622 TH2F *Ghf60 =
new TH2F(
"Ghf60",
"", 22, -11., 11., 18, 0., 18.);
5623 TH2F *Ghf61 =
new TH2F(
"Ghf61",
"", 22, -11., 11., 18, 0., 18.);
5624 TH2F *Ghf6 =
new TH2F(
"Ghf6",
"", 22, -11., 11., 18, 0., 18.);
5626 TH2F *G20hf60 =
new TH2F(
"G20hf60",
"", 22, -11., 11., 18, 0., 18.);
5627 TH2F *G20hf61 =
new TH2F(
"G20hf61",
"", 22, -11., 11., 18, 0., 18.);
5628 TH2F *G20hf6 =
new TH2F(
"G20hf6",
"", 22, -11., 11., 18, 0., 18.);
5629 TH2F *G30hf60 =
new TH2F(
"G30hf60",
"", 22, -11., 11., 18, 0., 18.);
5630 TH2F *G30hf61 =
new TH2F(
"G30hf61",
"", 22, -11., 11., 18, 0., 18.);
5631 TH2F *G30hf6 =
new TH2F(
"G30hf6",
"", 22, -11., 11., 18, 0., 18.);
5632 TH2F *G40hf60 =
new TH2F(
"G40hf60",
"", 22, -11., 11., 18, 0., 18.);
5633 TH2F *G40hf61 =
new TH2F(
"G40hf61",
"", 22, -11., 11., 18, 0., 18.);
5634 TH2F *G40hf6 =
new TH2F(
"G40hf6",
"", 22, -11., 11., 18, 0., 18.);
5640 double meanjHF = 0.;
5641 for (
int j = 1;
j <= ny;
j++) {
5642 ccc0HF = Ghf1->GetBinContent(1,
j);
5644 for (
int i = 1; i <= nx; i++) {
5645 double ccc2 = Ghf1->GetBinContent(i,
j);
5652 for (
int i = 1; i <= nx; i++) {
5653 double ccc1 = Ghf1->GetBinContent(i,
j) / ccc0HF;
5659 meanjHF = sumjHF / njHF;
5663 double ssumjHF = 0.;
5665 double sigmajHF = 0.;
5666 for (
int j = 1;
j <= ny;
j++) {
5667 ccc0HF = Ghf1->GetBinContent(1,
j);
5669 for (
int i = 1; i <= nx; i++) {
5670 double ccc2 = Ghf1->GetBinContent(i,
j);
5677 for (
int i = 1; i <= nx; i++) {
5678 double ccc1 = Ghf1->GetBinContent(i,
j) / ccc0HF;
5680 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5684 sigmajHF =
sqrt(ssumjHF / njHF);
5688 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5689 if (dif3rmsHFMIN < 0.)
5691 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5692 cout <<
"22HF-2 meanjHF= " << meanjHF <<
" sigmajHF= " << sigmajHF <<
" dif3rmsHFMIN= " << dif3rmsHFMIN
5693 <<
" dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5695 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5696 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5697 if (MAXdif3rmsHFMIN < 0.95)
5698 MAXdif3rmsHFMIN = 0.95;
5699 if (MINdif3rmsHFMAX > 1.05)
5700 MINdif3rmsHFMAX = 1.05;
5701 cout <<
"22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5703 for (
int j = 1;
j <= ny;
j++) {
5704 ccc0HF = Ghf1->GetBinContent(1,
j);
5706 for (
int i = 1; i <= nx; i++) {
5707 double ccc2 = Ghf1->GetBinContent(i,
j);
5714 int jeta = (
j - 1) / 18;
5715 int jphi = (
j - 1) - 18 * jeta;
5717 for (
int i = 1; i <= nx; i++) {
5718 double ccc1 = Ghf1->GetBinContent(i,
j);
5720 double Rij = ccc1 / ccc0HF;
5721 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5722 Ghf61->Fill(jeta - 11, jphi, Rij);
5723 Ghf60->Fill(jeta - 11, jphi, 1.);
5725 if (Rij < 0.8 || Rij > 1.2) {
5726 G20hf61->Fill(jeta - 11, jphi, Rij);
5727 G20hf60->Fill(jeta - 11, jphi, 1.);
5729 if (Rij < 0.7 || Rij > 1.3) {
5730 G30hf61->Fill(jeta - 11, jphi, Rij);
5731 G30hf60->Fill(jeta - 11, jphi, 1.);
5733 if (Rij < 0.6 || Rij > 1.4) {
5734 G40hf61->Fill(jeta - 11, jphi, Rij);
5735 G40hf60->Fill(jeta - 11, jphi, 1.);
5741 Ghf6->Divide(Ghf61, Ghf60, 1, 1,
"B");
5742 G20hf6->Divide(G20hf61, G20hf60, 1, 1,
"B");
5743 G30hf6->Divide(G30hf61, G30hf60, 1, 1,
"B");
5744 G40hf6->Divide(G40hf61, G40hf60, 1, 1,
"B");
5747 Ghf6->GetZaxis()->SetLabelSize(0.025);
5749 Ghf6->SetXTitle(
" #eta \b");
5750 Ghf6->SetYTitle(
" #phi \b");
5752 "<Rj> for |1-<R>| > 0.05 \b");
5758 TH1F *Ghf7 =
new TH1F(
"Ghf7",
"", 120, 0.4, 1.6);
5760 for (
int j = 1;
j <= ny;
j++) {
5761 ccc0HF = Ghf1->GetBinContent(1,
j);
5763 for (
int i = 1; i <= nx; i++) {
5764 double ccc2 = Ghf1->GetBinContent(i,
j);
5772 for (
int i = 1; i <= nx; i++) {
5773 double ccc1 = Ghf1->GetBinContent(i,
j);
5775 double Rij = ccc1 / ccc0HF;
5781 Ghf7->SetMarkerStyle(20);
5782 Ghf7->SetMarkerSize(0.4);
5783 Ghf7->GetYaxis()->SetLabelSize(0.04);
5784 Ghf7->SetMarkerColor(2);
5785 Ghf7->SetLineColor(0);
5786 Ghf7->SetYTitle(
" N \b");
5787 Ghf7->SetXTitle(
" Rij \b");
5788 Ghf7->SetTitle(
" Rij \b");
5793 Ghf7->GetYaxis()->SetLabelSize(0.025);
5794 Ghf7->Draw(
"Error");
5795 Float_t ymaxHF = Ghf7->GetMaximum();
5796 cout <<
"22HF-3 ymaxHF= " << ymaxHF <<
" MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5797 <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5798 TLine *lineHF =
new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5799 lineHF->SetLineColor(kBlue);
5801 TLine *line1HF =
new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5802 line1HF->SetLineColor(kBlue);
5807 cRBX31->Print(
"RBX-HF-3plots.png");
5842 gStyle->SetOptStat(1110000);
5843 cout <<
" RBX HF Ratio plotsmore *****" << endl;
5846 cRBX31->Divide(3, 1);
5849 G20hf6->GetZaxis()->SetLabelSize(0.025);
5850 G20hf6->SetXTitle(
" #eta \b");
5851 G20hf6->SetYTitle(
" #phi \b");
5852 G20hf6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5853 G20hf6->SetStats(0);
5854 G20hf6->Draw(
"COLZ");
5857 G30hf6->GetZaxis()->SetLabelSize(0.025);
5858 G30hf6->SetXTitle(
" #eta \b");
5859 G30hf6->SetYTitle(
" #phi \b");
5860 G30hf6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5861 G30hf6->SetStats(0);
5862 G30hf6->Draw(
"COLZ");
5865 G40hf6->GetZaxis()->SetLabelSize(0.025);
5866 G40hf6->SetXTitle(
" #eta \b");
5867 G40hf6->SetYTitle(
" #phi \b");
5868 G40hf6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5869 G40hf6->SetStats(0);
5870 G40hf6->Draw(
"COLZ");
5875 cRBX31->Print(
"RBX-HF-3plotsmore.png");
5885 gStyle->SetOptStat(0);
5887 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5888 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5889 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5897 int mymaxbins = MaxLum;
5903 TH2F *occhbm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBM");
5904 TH1F *uyhbm =
new TH1F(
"uyhbm",
"", mymaxbins, 1., mymaxbins + 1.);
5905 for (
int i = 1; i <= occhbm->GetXaxis()->GetNbins(); i++) {
5906 double ccc1 = occhbm->GetBinContent(i);
5909 uyhbm->Fill(
float(i), ccc1);
5912 uyhbm->SetMarkerStyle(20);
5913 uyhbm->SetMarkerSize(0.6);
5914 uyhbm->GetYaxis()->SetLabelSize(0.04);
5915 uyhbm->SetXTitle(
"min/av occupancy - HBM \b");
5916 uyhbm->SetMarkerColor(2);
5917 uyhbm->SetLineColor(0);
5918 uyhbm->SetMaximum(1.0);
5919 uyhbm->SetMinimum(0.2);
5921 uyhbm->Draw(
"Error");
5924 TH2F *occhbp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBP");
5925 TH1F *uyhbp =
new TH1F(
"uyhbp",
"", mymaxbins, 1., mymaxbins + 1.);
5926 for (
int i = 1; i <= occhbp->GetXaxis()->GetNbins(); i++) {
5927 double ccc1 = occhbp->GetBinContent(i);
5930 uyhbp->Fill(
float(i), ccc1);
5933 uyhbp->SetMarkerStyle(20);
5934 uyhbp->SetMarkerSize(0.6);
5935 uyhbp->GetYaxis()->SetLabelSize(0.04);
5936 uyhbp->SetXTitle(
"min/av occupancy - HBP \b");
5937 uyhbp->SetMarkerColor(2);
5938 uyhbp->SetLineColor(0);
5939 uyhbp->SetMaximum(1.0);
5940 uyhbp->SetMinimum(0.2);
5942 uyhbp->Draw(
"Error");
5947 cHB->Print(Form(
"OccPlots_HB.png"));
5967 TH2F *occhem = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEM");
5968 TH1F *uyhem =
new TH1F(
"uyhem",
"", mymaxbins, 1., mymaxbins + 1.);
5969 for (
int i = 1; i <= occhem->GetXaxis()->GetNbins(); i++) {
5970 double ccc1 = occhem->GetBinContent(i);
5973 uyhem->Fill(
float(i), ccc1);
5976 uyhem->SetMarkerStyle(20);
5977 uyhem->SetMarkerSize(0.6);
5978 uyhem->GetYaxis()->SetLabelSize(0.04);
5979 uyhem->SetXTitle(
"min/av occupancy - HEM \b");
5980 uyhem->SetMarkerColor(2);
5981 uyhem->SetLineColor(0);
5982 uyhem->SetMaximum(1.0);
5983 uyhem->SetMinimum(0.2);
5985 uyhem->Draw(
"Error");
5988 TH2F *occhep = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEP");
5989 TH1F *uyhep =
new TH1F(
"uyhep",
"", mymaxbins, 1., mymaxbins + 1.);
5990 for (
int i = 1; i <= occhep->GetXaxis()->GetNbins(); i++) {
5991 double ccc1 = occhep->GetBinContent(i);
5994 uyhep->Fill(
float(i), ccc1);
5997 uyhep->SetMarkerStyle(20);
5998 uyhep->SetMarkerSize(0.6);
5999 uyhep->GetYaxis()->SetLabelSize(0.04);
6000 uyhep->SetXTitle(
"min/av occupancy - HEP \b");
6001 uyhep->SetMarkerColor(2);
6002 uyhep->SetLineColor(0);
6003 uyhep->SetMaximum(1.0);
6004 uyhep->SetMinimum(0.2);
6006 uyhep->Draw(
"Error");
6011 cHB->Print(Form(
"OccPlots_HE.png"));
6031 TH2F *occhom = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOM");
6032 TH1F *uyhom =
new TH1F(
"uyhom",
"", mymaxbins, 1., mymaxbins + 1.);
6033 for (
int i = 1; i <= occhom->GetXaxis()->GetNbins(); i++) {
6034 double ccc1 = occhom->GetBinContent(i);
6037 uyhom->Fill(
float(i), ccc1);
6040 uyhom->SetMarkerStyle(20);
6041 uyhom->SetMarkerSize(0.6);
6042 uyhom->GetYaxis()->SetLabelSize(0.04);
6043 uyhom->SetXTitle(
"min/av occupancy - HOM \b");
6044 uyhom->SetMarkerColor(2);
6045 uyhom->SetLineColor(0);
6046 uyhom->SetMaximum(1.0);
6047 uyhom->SetMinimum(0.2);
6049 uyhom->Draw(
"Error");
6052 TH2F *occhop = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOP");
6053 TH1F *uyhop =
new TH1F(
"uyhop",
"", mymaxbins, 1., mymaxbins + 1.);
6054 for (
int i = 1; i <= occhop->GetXaxis()->GetNbins(); i++) {
6055 double ccc1 = occhop->GetBinContent(i);
6058 uyhop->Fill(
float(i), ccc1);
6061 uyhop->SetMarkerStyle(20);
6062 uyhop->SetMarkerSize(0.6);
6063 uyhop->GetYaxis()->SetLabelSize(0.04);
6064 uyhop->SetXTitle(
"min/av occupancy - HOP \b");
6065 uyhop->SetMarkerColor(2);
6066 uyhop->SetLineColor(0);
6067 uyhop->SetMaximum(1.0);
6068 uyhop->SetMinimum(0.2);
6070 uyhop->Draw(
"Error");
6075 cHB->Print(Form(
"OccPlots_HO.png"));
6095 TH2F *occhfm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFM");
6096 TH1F *uyhfm =
new TH1F(
"uyhfm",
"", mymaxbins, 1., mymaxbins + 1.);
6097 for (
int i = 1; i <= occhfm->GetXaxis()->GetNbins(); i++) {
6098 double ccc1 = occhfm->GetBinContent(i);
6101 uyhfm->Fill(
float(i), ccc1);
6104 uyhfm->SetMarkerStyle(20);
6105 uyhfm->SetMarkerSize(0.6);
6106 uyhfm->GetYaxis()->SetLabelSize(0.04);
6107 uyhfm->SetXTitle(
"min/av occupancy - HFM \b");
6108 uyhfm->SetMarkerColor(2);
6109 uyhfm->SetLineColor(0);
6110 uyhfm->SetMaximum(1.0);
6111 uyhfm->SetMinimum(0.2);
6113 uyhfm->Draw(
"Error");
6116 TH2F *occhfp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFP");
6117 TH1F *uyhfp =
new TH1F(
"uyhfp",
"", mymaxbins, 1., mymaxbins + 1.);
6118 for (
int i = 1; i <= occhfp->GetXaxis()->GetNbins(); i++) {
6119 double ccc1 = occhfp->GetBinContent(i);
6122 uyhfp->Fill(
float(i), ccc1);
6125 uyhfp->SetMarkerStyle(20);
6126 uyhfp->SetMarkerSize(0.6);
6127 uyhfp->GetYaxis()->SetLabelSize(0.04);
6128 uyhfp->SetXTitle(
"min/av occupancy - HFP \b");
6129 uyhfp->SetMarkerColor(2);
6130 uyhfp->SetLineColor(0);
6131 uyhfp->SetMaximum(1.0);
6132 uyhfp->SetMinimum(0.2);
6134 uyhfp->Draw(
"Error");
6139 cHB->Print(Form(
"OccPlots_HF.png"));
6152 std::cout <<
"************>>> occupancy plots done" << std::endl;
6159 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots " << endl;
6160 int maxbins = MaxLum;
6161 cout <<
">>>> maxbins = " << maxbins << endl;
6162 TH1F *SummedAmplitudeHisto[4];
6163 SummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HB");
6164 SummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HE");
6165 SummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HO");
6166 SummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HF");
6167 TH1F *SummedAmplitudeOccupancyHisto[4];
6168 SummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HB");
6169 SummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HE");
6170 SummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HO");
6171 SummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HF");
6172 for (
int sub = 0; sub < 4; sub++) {
6176 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6178 for (
int i = 1; i <= kslpq->GetXaxis()->GetNbins(); i++) {
6180 if (SummedAmplitudeHisto[sub])
6181 ccc1 = SummedAmplitudeHisto[sub]->GetBinContent(i);
6184 kslpq->Fill(
float(i), ccc1);
6187 kslpq->SetMarkerStyle(20);
6188 kslpq->SetMarkerSize(0.8);
6189 kslpq->GetYaxis()->SetLabelSize(0.04);
6190 kslpq->SetXTitle(
"SumA of channels w/ signal per LS \b");
6191 kslpq->SetMarkerColor(2);
6192 kslpq->SetLineColor(0);
6195 kslpq->Draw(
"Error");
6198 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6199 for (
int i = 1; i <= pqmks->GetXaxis()->GetNbins(); i++) {
6201 if (SummedAmplitudeOccupancyHisto[sub])
6202 ccc1 = SummedAmplitudeOccupancyHisto[sub]->GetBinContent(i);
6205 pqmks->Fill(
float(i), ccc1);
6208 pqmks->SetMarkerStyle(20);
6209 pqmks->SetMarkerSize(0.8);
6210 pqmks->GetYaxis()->SetLabelSize(0.04);
6211 pqmks->SetXTitle(
"Occupancy of channels w/ signal per LS \b");
6212 pqmks->SetMarkerColor(4);
6213 pqmks->SetLineColor(0);
6216 pqmks->Draw(
"Error");
6219 cHE->Print(
"SummedAmplitudesSignal_HB.png");
6221 cHE->Print(
"SummedAmplitudesSignal_HE.png");
6223 cHE->Print(
"SummedAmplitudesSignal_HO.png");
6225 cHE->Print(
"SummedAmplitudesSignal_HF.png");
6238 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots NoSignal " << endl;
6239 TH1F *NoSignalSummedAmplitudeHisto[4];
6240 NoSignalSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HB");
6241 NoSignalSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HE");
6242 NoSignalSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HO");
6243 NoSignalSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HF");
6244 TH1F *NoSignalSummedAmplitudeOccupancyHisto[4];
6245 NoSignalSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HB");
6246 NoSignalSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HE");
6247 NoSignalSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HO");
6248 NoSignalSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HF");
6249 for (
int sub = 0; sub < 4; sub++) {
6254 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6255 for (
int i = 1; i <= kslpq->GetXaxis()->GetNbins(); i++) {
6257 if (NoSignalSummedAmplitudeHisto[sub])
6258 ccc1 = NoSignalSummedAmplitudeHisto[sub]->GetBinContent(i);
6261 kslpq->Fill(
float(i), ccc1);
6264 kslpq->SetMarkerStyle(20);
6265 kslpq->SetMarkerSize(0.8);
6266 kslpq->GetYaxis()->SetLabelSize(0.04);
6267 kslpq->SetXTitle(
"SumA of channels w/o signal per LS \b");
6268 kslpq->SetMarkerColor(2);
6269 kslpq->SetLineColor(0);
6271 kslpq->SetMaximum(20000.);
6272 kslpq->SetMinimum(5000.);
6273 }
else if (sub == 1) {
6274 kslpq->SetMaximum(40000.);
6275 kslpq->SetMinimum(0.);
6276 }
else if (sub == 2) {
6277 kslpq->SetMaximum(10000.);
6278 kslpq->SetMinimum(15000.);
6279 }
else if (sub == 3) {
6280 kslpq->SetMaximum(100000.);
6281 kslpq->SetMinimum(0.);
6284 kslpq->Draw(
"Error");
6287 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6288 for (
int i = 1; i <= pqmks->GetXaxis()->GetNbins(); i++) {
6290 if (NoSignalSummedAmplitudeOccupancyHisto[sub])
6291 ccc1 = NoSignalSummedAmplitudeOccupancyHisto[sub]->GetBinContent(i);
6294 pqmks->Fill(
float(i), ccc1);
6297 pqmks->SetMarkerStyle(20);
6298 pqmks->SetMarkerSize(0.8);
6299 pqmks->GetYaxis()->SetLabelSize(0.04);
6300 pqmks->SetXTitle(
"Occupancy of channels w/o signal per LS \b");
6301 pqmks->SetMarkerColor(4);
6302 pqmks->SetLineColor(0);
6304 pqmks->SetMaximum(600.);
6305 pqmks->SetMinimum(200.);
6306 }
else if (sub == 1) {
6307 pqmks->SetMaximum(910.);
6308 pqmks->SetMinimum(10.);
6309 }
else if (sub == 2) {
6310 pqmks->SetMaximum(200.);
6311 pqmks->SetMinimum(50.);
6312 }
else if (sub == 3) {
6313 pqmks->SetMaximum(866.);
6314 pqmks->SetMinimum(856.);
6317 pqmks->Draw(
"Error");
6320 cHE->Print(
"NoSignalSummedAmplitudes_HB.png");
6322 cHE->Print(
"NoSignalSummedAmplitudes_HE.png");
6324 cHE->Print(
"NoSignalSummedAmplitudes_HO.png");
6326 cHE->Print(
"NoSignalSummedAmplitudes_HF.png");
6340 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots Maxx " << endl;
6341 TH1F *MaxxSummedAmplitudeHisto[4];
6342 MaxxSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HB");
6343 MaxxSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HE");
6344 MaxxSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HO");
6345 MaxxSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HF");
6346 TH1F *MaxxSummedAmplitudeOccupancyHisto[4];
6347 MaxxSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HB");
6348 MaxxSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HE");
6349 MaxxSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HO");
6350 MaxxSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HF");
6351 TH1F *SAmplitudeHisto[4];
6352 SAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_eventamplitude_HB");
6353 SAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_eventamplitude_HE");
6354 SAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_eventamplitude_HO");
6355 SAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_eventamplitude_HF");
6356 TH1F *OccupancyHisto[4];
6357 OccupancyHisto[0] = (TH1F *)hfile->Get(
"h_eventoccupancy_HB");
6358 OccupancyHisto[1] = (TH1F *)hfile->Get(
"h_eventoccupancy_HE");
6359 OccupancyHisto[2] = (TH1F *)hfile->Get(
"h_eventoccupancy_HO");
6360 OccupancyHisto[3] = (TH1F *)hfile->Get(
"h_eventoccupancy_HF");
6362 int countamplmaxHB = 0;
6363 int countamplmaxHE = 0;
6364 int countamplmaxHO = 0;
6365 int countamplmaxHF = 0;
6366 int countoccumaxHB = 0;
6367 int countoccumaxHE = 0;
6368 int countoccumaxHO = 0;
6369 int countoccumaxHF = 0;
6370 unsigned long int countamplHB = 0;
6371 unsigned long int countamplHE = 0;
6372 unsigned long int countamplHO = 0;
6373 unsigned long int countamplHF = 0;
6374 unsigned long int countoccuHB = 0;
6375 unsigned long int countoccuHE = 0;
6376 unsigned long int countoccuHO = 0;
6377 unsigned long int countoccuHF = 0;
6378 gStyle->SetOptStat(110000);
6379 for (
int sub = 0; sub < 4; sub++) {
6381 cFour->Divide(2, 2);
6384 TH1F *lpqxc =
new TH1F(
"lpqxc",
"", maxbins, 1., maxbins + 1.);
6385 for (
int i = 1; i <= lpqxc->GetXaxis()->GetNbins(); i++) {
6387 if (MaxxSummedAmplitudeHisto[sub])
6388 ccc1 = MaxxSummedAmplitudeHisto[sub]->GetBinContent(i);
6391 lpqxc->Fill(
float(i), ccc1);
6392 if (sub == 0 && ccc1 > 60000.)
6394 if (sub == 1 && ccc1 > 60000.)
6396 if (sub == 2 && ccc1 > 150000.)
6398 if (sub == 3 && ccc1 > 22000.)
6402 lpqxc->SetMarkerStyle(20);
6403 lpqxc->SetMarkerSize(0.8);
6406 lpqxc->SetXTitle(
"HB: max SA over LS-events per LS \b");
6408 lpqxc->SetXTitle(
"HE: max SA over LS-events per LS \b");
6410 lpqxc->SetXTitle(
"HO: max SA over LS-events per LS \b");
6412 lpqxc->SetXTitle(
"HF: max SA over LS-events per LS \b");
6413 lpqxc->SetMarkerColor(2);
6414 lpqxc->SetLineColor(0);
6416 lpqxc->Draw(
"Error");
6420 TH1F *hpzlm =
new TH1F(
"hpzlm",
"", maxbins, 1., maxbins + 1.);
6421 for (
int i = 1; i <= hpzlm->GetXaxis()->GetNbins(); i++) {
6423 if (MaxxSummedAmplitudeOccupancyHisto[sub])
6424 ccc1 = MaxxSummedAmplitudeOccupancyHisto[sub]->GetBinContent(i);
6427 hpzlm->Fill(
float(i), ccc1);
6428 if (sub == 0 && ccc1 > 2000.)
6430 if (sub == 1 && ccc1 > 1200.)
6432 if (sub == 2 && ccc1 > 2000.)
6434 if (sub == 3 && ccc1 > 860.)
6438 hpzlm->SetMarkerStyle(20);
6439 hpzlm->SetMarkerSize(0.8);
6442 hpzlm->SetXTitle(
"HB: max Occupancy over LS-events per LS \b");
6444 hpzlm->SetXTitle(
"HE: max Occupancy over LS-events per LS \b");
6446 hpzlm->SetXTitle(
"HO: max Occupancy over LS-events per LS \b");
6448 hpzlm->SetXTitle(
"HF: max Occupancy over LS-events per LS \b");
6449 hpzlm->SetMarkerColor(4);
6450 hpzlm->SetLineColor(0);
6453 hpzlm->SetMaximum(866.);
6454 hpzlm->SetMinimum(856.);
6456 hpzlm->Draw(
"Error");
6461 if (SAmplitudeHisto[sub]) {
6462 for (
int i = 1; i <= SAmplitudeHisto[sub]->GetXaxis()->GetNbins(); i++) {
6467 if (sub == 0 && i * 800 > 60000.)
6468 countamplHB += SAmplitudeHisto[sub]->GetBinContent(i);
6469 if (sub == 1 && i * 1000 > 60000.)
6470 countamplHE += SAmplitudeHisto[sub]->GetBinContent(i);
6471 if (sub == 2 && i * 2500 > 150000.)
6472 countamplHO += SAmplitudeHisto[sub]->GetBinContent(i);
6473 if (sub == 3 && i * 1400 > 22000.)
6474 countamplHF += SAmplitudeHisto[sub]->GetBinContent(i);
6476 SAmplitudeHisto[sub]->SetMarkerStyle(20);
6477 SAmplitudeHisto[sub]->SetMarkerSize(0.8);
6479 SAmplitudeHisto[sub]->SetTitle(
"HB event Amplitude\b");
6481 SAmplitudeHisto[sub]->SetTitle(
"HE event Amplitude\b");
6483 SAmplitudeHisto[sub]->SetTitle(
"HO event Amplitude\b");
6485 SAmplitudeHisto[sub]->SetTitle(
"HF event Amplitude\b");
6487 SAmplitudeHisto[sub]->SetXTitle(
"event amplitude \b");
6488 SAmplitudeHisto[sub]->SetMarkerColor(2);
6489 SAmplitudeHisto[sub]->SetLineColor(2);
6490 SAmplitudeHisto[sub]->Draw(
"");
6495 if (OccupancyHisto[sub]) {
6496 for (
int i = 1; i <= OccupancyHisto[sub]->GetXaxis()->GetNbins(); i++) {
6497 if (sub == 0 && i * 30 > 2000.)
6498 countoccuHB += OccupancyHisto[sub]->GetBinContent(i);
6499 if (sub == 1 && i * 20 > 1200.)
6500 countoccuHE += OccupancyHisto[sub]->GetBinContent(i);
6501 if (sub == 2 && i * 25 > 2000.)
6502 countoccuHO += OccupancyHisto[sub]->GetBinContent(i);
6503 if (sub == 3 && i * 10 > 860.)
6504 countoccuHF += OccupancyHisto[sub]->GetBinContent(i);
6506 OccupancyHisto[sub]->SetMarkerStyle(20);
6507 OccupancyHisto[sub]->SetMarkerSize(0.8);
6509 OccupancyHisto[sub]->SetTitle(
"HB event Occupancy\b");
6511 OccupancyHisto[sub]->SetTitle(
"HE event Occupancy\b");
6513 OccupancyHisto[sub]->SetTitle(
"HO event Occupancy\b");
6515 OccupancyHisto[sub]->SetTitle(
"HF event Occupancy\b");
6517 OccupancyHisto[sub]->SetXTitle(
"event occupancy \b");
6518 OccupancyHisto[sub]->SetMarkerColor(4);
6519 OccupancyHisto[sub]->SetLineColor(4);
6520 OccupancyHisto[sub]->Draw(
"");
6525 cFour->Print(
"MaxxSummedAmplitudes_HB.png");
6527 cFour->Print(
"MaxxSummedAmplitudes_HE.png");
6529 cFour->Print(
"MaxxSummedAmplitudes_HO.png");
6531 cFour->Print(
"MaxxSummedAmplitudes_HF.png");
6538 gStyle->SetOptStat(0);
6540 cout <<
">=>=>>=> countamplmaxHB= " << countamplmaxHB <<
" countamplmaxHE= " << countamplmaxHE
6541 <<
" countamplmaxHO= " << countamplmaxHO <<
" countamplmaxHF= " << countamplmaxHF << endl;
6542 cout <<
">=>=>>=> countoccumaxHB= " << countoccumaxHB <<
" countoccumaxHE= " << countoccumaxHE
6543 <<
" countoccumaxHO= " << countoccumaxHO <<
" countoccumaxHF= " << countoccumaxHF << endl;
6544 cout <<
">=>=>>=> countamplHB= " << countamplHB <<
" countamplHE= " << countamplHE <<
" countamplHO= " << countamplHO
6545 <<
" countamplHF= " << countamplHF << endl;
6546 cout <<
">=>=>>=> countoccuHB= " << countoccuHB <<
" countoccuHE= " << countoccuHE <<
" countoccuHO= " << countoccuHO
6547 <<
" countoccuHF= " << countoccuHF << endl;
6552 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>channelsummedA over depths " << endl;
6553 TH1F *ChannelDepthsummedAmplitudesPlots[4];
6554 ChannelDepthsummedAmplitudesPlots[0] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HB");
6555 ChannelDepthsummedAmplitudesPlots[1] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HE");
6556 ChannelDepthsummedAmplitudesPlots[2] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HO");
6557 ChannelDepthsummedAmplitudesPlots[3] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HF");
6559 if (ChannelDepthsummedAmplitudesPlots[0])
6560 litebdt[0] =
new TLine(80., 0.8, 80., ChannelDepthsummedAmplitudesPlots[0]->GetBinContent(4) + 100.);
6561 if (ChannelDepthsummedAmplitudesPlots[1])
6562 litebdt[1] =
new TLine(200., 0.8, 200., ChannelDepthsummedAmplitudesPlots[1]->GetBinContent(7) + 100.);
6563 if (ChannelDepthsummedAmplitudesPlots[2])
6564 litebdt[2] =
new TLine(1200., 0.8, 1200., ChannelDepthsummedAmplitudesPlots[2]->GetBinContent(17) + 100.);
6565 if (ChannelDepthsummedAmplitudesPlots[3])
6566 litebdt[3] =
new TLine(600., 0.8, 600., ChannelDepthsummedAmplitudesPlots[3]->GetBinContent(6) + 100.);
6568 gStyle->SetOptStat(110000);
6570 cFour1->Divide(2, 2);
6571 for (
int sub = 0; sub < 4; sub++) {
6581 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerStyle(20);
6582 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerSize(0.8);
6584 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HB channel Amplitudes\b");
6586 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HE channel Amplitudes\b");
6588 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HO channel Amplitudes\b");
6590 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HF channel Amplitudes\b");
6592 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HB channel depths summed Amplitudes \b");
6594 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HE channel depths summed Amplitudes \b");
6596 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HO channel depths summed Amplitudes \b");
6598 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HF channel depths summed Amplitudes \b");
6599 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerColor(2);
6600 ChannelDepthsummedAmplitudesPlots[sub]->SetLineColor(2);
6601 ChannelDepthsummedAmplitudesPlots[sub]->Draw(
"");
6602 litebdt[sub]->SetLineColor(kBlue);
6603 litebdt[sub]->Draw(
"s");
6606 cFour1->Print(
"ChannelDepthsummedAmplitudes.png");
6608 gStyle->SetOptStat(0);
6613 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>2DAtaildepth " << endl;
6618 TH2F *DAtaildepth1[2];
6619 DAtaildepth1[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth1_HB");
6620 DAtaildepth1[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth1_HB");
6622 if (!DAtaildepth1[0] || !DAtaildepth1[1]) {
6623 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 1" << endl;
6625 TH2F *tail1 = (TH2F *)DAtaildepth1[0]->Clone(
"tail1");
6626 tail1->Divide(DAtaildepth1[0], DAtaildepth1[1], 1, 1,
"B");
6631 tail1->SetMarkerStyle(20);
6632 tail1->SetMarkerSize(0.4);
6633 tail1->SetTitle(
"Amplitudes for tail-events (HBdepth1) \b");
6634 tail1->SetXTitle(
"#eta \b");
6635 tail1->SetYTitle(
"#phi \b");
6636 tail1->SetZTitle(
"2D <A> in the tail - HB Depth1 \b");
6637 tail1->SetMarkerColor(2);
6638 tail1->SetLineColor(2);
6639 tail1->Draw(
"COLZ");
6641 TH2F *DAtaildepth2[2];
6642 DAtaildepth2[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth2_HB");
6643 DAtaildepth2[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth2_HB");
6645 if (!DAtaildepth2[0] || !DAtaildepth2[1]) {
6646 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 2" << endl;
6648 TH2F *tail2 = (TH2F *)DAtaildepth2[0]->Clone(
"tail2");
6649 tail2->Divide(DAtaildepth2[0], DAtaildepth2[1], 1, 1,
"B");
6654 tail2->SetMarkerStyle(20);
6655 tail2->SetMarkerSize(0.4);
6656 tail2->SetTitle(
"Amplitudes for tail-events (HBdepth2) \b");
6657 tail2->SetXTitle(
"#eta \b");
6658 tail2->SetYTitle(
"#phi \b");
6659 tail2->SetZTitle(
"2D <A> in the tail - HB Depth2 \b");
6660 tail2->SetMarkerColor(2);
6661 tail2->SetLineColor(2);
6662 tail2->Draw(
"COLZ");
6666 cHB->Print(
"AtaildepthHB.png");
6672 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>sumOccupancyHF " << endl;
6677 if (SummedAmplitudeOccupancyHisto[3]) {
6678 TH1F *ufrew1 = (TH1F *)SummedAmplitudeOccupancyHisto[3]->Clone(
"ufrew1");
6679 if (SummedAmplitudeOccupancyHisto[3] && NoSignalSummedAmplitudeOccupancyHisto[3])
6680 ufrew1->Add(SummedAmplitudeOccupancyHisto[3], NoSignalSummedAmplitudeOccupancyHisto[3], 1, 1);
6681 ufrew1->GetXaxis()->SetRangeUser(1., maxbins + 1.);
6683 ufrew1->SetMarkerStyle(20);
6684 ufrew1->SetMarkerSize(0.8);
6685 ufrew1->GetYaxis()->SetLabelSize(0.04);
6686 ufrew1->SetTitle(
"HF Occupancy vs LS\b");
6687 ufrew1->SetXTitle(
"average occupancy per LS HF\b");
6688 ufrew1->SetMarkerColor(4);
6689 ufrew1->SetLineColor(0);
6690 ufrew1->SetMaximum(866.);
6691 ufrew1->SetMinimum(856.);
6692 ufrew1->Draw(
"Error");
6694 cHB->Print(
"sumOccupancyHF.png");
6708 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =====================================================================" << endl;
6711 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> ==================================================" << endl;
6714 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6715 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6716 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6717 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6719 cout <<
">>>>>>> START NOW CREATING OF HTML PAGES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
6725 for (
int test = 0; test <= 5; test++) {
6726 for (
int sub = 1; sub <= 4; sub++) {
6731 htmlFile.open(
"HB_CapID.html");
6734 htmlFile.open(
"HE_CapID.html");
6737 htmlFile.open(
"HO_CapID.html");
6740 htmlFile.open(
"HF_CapID.html");
6745 htmlFile.open(
"HB_ADCampl.html");
6748 htmlFile.open(
"HE_ADCampl.html");
6751 htmlFile.open(
"HO_ADCampl.html");
6754 htmlFile.open(
"HF_ADCampl.html");
6759 htmlFile.open(
"HB_Width.html");
6762 htmlFile.open(
"HE_Width.html");
6765 htmlFile.open(
"HO_Width.html");
6768 htmlFile.open(
"HF_Width.html");
6773 htmlFile.open(
"HB_Ratio.html");
6776 htmlFile.open(
"HE_Ratio.html");
6779 htmlFile.open(
"HO_Ratio.html");
6782 htmlFile.open(
"HF_Ratio.html");
6787 htmlFile.open(
"HB_Tmean.html");
6790 htmlFile.open(
"HE_Tmean.html");
6793 htmlFile.open(
"HO_Tmean.html");
6796 htmlFile.open(
"HF_Tmean.html");
6801 htmlFile.open(
"HB_Tmax.html");
6804 htmlFile.open(
"HE_Tmax.html");
6807 htmlFile.open(
"HO_Tmax.html");
6810 htmlFile.open(
"HF_Tmax.html");
6814 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6815 htmlFile <<
"<head>" << std::endl;
6816 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6817 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
6818 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6819 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
6821 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6822 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
6823 "text-align: center;}"
6825 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6826 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6827 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6828 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
6829 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
6830 htmlFile <<
"</style>" << std::endl;
6831 htmlFile <<
"<body>" << std::endl;
6835 htmlFile <<
"<h1> Cap ID estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6837 htmlFile <<
"<h1> Cap ID estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6839 htmlFile <<
"<h1> Cap ID estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6841 htmlFile <<
"<h1> Cap ID estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6845 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6847 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6849 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6851 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6855 htmlFile <<
"<h1> Width estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6857 htmlFile <<
"<h1> Width estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6859 htmlFile <<
"<h1> Width estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6861 htmlFile <<
"<h1> Width estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6865 htmlFile <<
"<h1> Ratio estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6867 htmlFile <<
"<h1> Ratio estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6869 htmlFile <<
"<h1> Ratio estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6871 htmlFile <<
"<h1> Ratio estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6875 htmlFile <<
"<h1> Mean bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6877 htmlFile <<
"<h1> Mean bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6879 htmlFile <<
"<h1> Mean bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6881 htmlFile <<
"<h1> Mean bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6885 htmlFile <<
"<h1> Maximum bin timing estimator for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
6887 htmlFile <<
"<h1> Maximum bin timing estimator for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
6889 htmlFile <<
"<h1> Maximum bin timing estimator for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
6891 htmlFile <<
"<h1> Maximum bin timing estimator for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
6895 htmlFile <<
"<a name=\"Top\"></a>\n";
6896 htmlFile <<
"<b>Contents:<br>\n";
6897 htmlFile <<
"1. <a href=\"#Aij\">A_ij_LS (averaged over events in LS) </a><br>\n";
6898 htmlFile <<
"2. <a href=\"#OverflowAij\">A_ij_LS in overflow & underflow</a><br>\n";
6899 htmlFile <<
"3. <a href=\"#MainEstimator\">Main Estimator !!! </a><br>\n";
6900 htmlFile <<
"4. <a href=\"#ErrorA\">Error type A </a><br>\n";
6901 htmlFile <<
"5. <a href=\"#ErrorAaverage\">ErrorA cross check</a><br>\n";
6902 htmlFile <<
"6. <a href=\"#ErrorAoccupancy\">ErrorA occupancy plots</a><br>\n";
6903 htmlFile <<
"7. <a href=\"#ErrorB\">Error type B</a><br>\n";
6904 htmlFile <<
"8. <a href=\"#LSstatus\">Table of Average channel-Amplitude in Depthes over LSs </a><br>\n";
6905 htmlFile <<
"9. <a href=\"#RBXstatus\">RBX Status </a><br>\n";
6906 htmlFile <<
"10. <a href=\"#RBXPHItable\">Table of Average RBX-Amplitude in Phi over LSs </a><br>\n";
6907 htmlFile <<
"11. <a href=\"#RBXETAtable\">Table of Average RBX-Amplitude in Eta over LSs </a><br>\n";
6908 htmlFile <<
"12. <a href=\"#RBX3plots\">RBX A-Ratio to 1st LS: 3 plots </a><br>\n";
6914 htmlFile <<
"<br>" << std::endl;
6916 htmlFile <<
"<h2> 0. Rate of CapID failures over all events of Run </h2>" << std::endl;
6917 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
6919 htmlFile <<
" <img src=\"MapCapIdErrorHB.png\" />" << std::endl;
6921 htmlFile <<
" <img src=\"MapCapIdErrorHE.png\" />" << std::endl;
6923 htmlFile <<
" <img src=\"MapCapIdErrorHO.png\" />" << std::endl;
6925 htmlFile <<
" <img src=\"MapCapIdErrorHF.png\" />" << std::endl;
6928 htmlFile <<
"<a name=\"Aij\"></a>\n";
6930 htmlFile <<
"<h2> 1. Distribution of estimator averaged over events in LS, histogramed over all channels and "
6935 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6936 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6938 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6939 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2), " << CutAb[sub][3]
6940 <<
" (Depth3).</h2>" << std::endl;
6942 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6943 << CutAb[sub][1] <<
" (Depth4).</h2>" << std::endl;
6945 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6946 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6950 htmlFile <<
"<h3> see Overflow and Underflow </h3>" << std::endl;
6952 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
6956 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HB.png\" />" << std::endl;
6958 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HE.png\" />" << std::endl;
6960 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HO.png\" />" << std::endl;
6962 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HF.png\" />" << std::endl;
6966 htmlFile <<
" <img src=\"H_ADCamplHB.png\" />" << std::endl;
6968 htmlFile <<
" <img src=\"H_ADCamplHE.png\" />" << std::endl;
6970 htmlFile <<
" <img src=\"H_ADCamplHO.png\" />" << std::endl;
6972 htmlFile <<
" <img src=\"H_ADCamplHF.png\" />" << std::endl;
6976 htmlFile <<
" <img src=\"H_WidthHB.png\" />" << std::endl;
6978 htmlFile <<
" <img src=\"H_WidthHE.png\" />" << std::endl;
6980 htmlFile <<
" <img src=\"H_WidthHO.png\" />" << std::endl;
6982 htmlFile <<
" <img src=\"H_WidthHF.png\" />" << std::endl;
6986 htmlFile <<
" <img src=\"H_RatioHB.png\" />" << std::endl;
6988 htmlFile <<
" <img src=\"H_RatioHE.png\" />" << std::endl;
6990 htmlFile <<
" <img src=\"H_RatioHO.png\" />" << std::endl;
6992 htmlFile <<
" <img src=\"H_RatioHF.png\" />" << std::endl;
6996 htmlFile <<
" <img src=\"H_TmeanHB.png\" />" << std::endl;
6998 htmlFile <<
" <img src=\"H_TmeanHE.png\" />" << std::endl;
7000 htmlFile <<
" <img src=\"H_TmeanHO.png\" />" << std::endl;
7002 htmlFile <<
" <img src=\"H_TmeanHF.png\" />" << std::endl;
7006 htmlFile <<
" <img src=\"H_TmaxHB.png\" />" << std::endl;
7008 htmlFile <<
" <img src=\"H_TmaxHE.png\" />" << std::endl;
7010 htmlFile <<
" <img src=\"H_TmaxHO.png\" />" << std::endl;
7012 htmlFile <<
" <img src=\"H_TmaxHF.png\" />" << std::endl;
7014 htmlFile <<
"<br>" << std::endl;
7016 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7019 htmlFile <<
"<h2> 2a. Number of bad channels per event distribution in Run</h2>" << std::endl;
7021 htmlFile <<
"<h3> Legends: dots correspond to BAD LS candidates. </h3>" << std::endl;
7024 htmlFile <<
" <img src=\"HistNBadChsHB.png\" />" << std::endl;
7026 htmlFile <<
" <img src=\"HistNBadChsHE.png\" />" << std::endl;
7028 htmlFile <<
" <img src=\"HistNBadChsHO.png\" />" << std::endl;
7030 htmlFile <<
" <img src=\"HistNBadChsHF.png\" />" << std::endl;
7034 htmlFile <<
"<a name=\"OverflowAij\"></a>\n";
7036 htmlFile <<
"<h2> 2. Estimator averaged over all events in the RUN for entries in overflow and underflow of "
7037 "corresponding histogram above </h2>"
7041 htmlFile <<
"<h2> 2b. Averaged number of bad channels for each LS </h2>" << std::endl;
7045 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7046 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7047 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7049 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7050 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3) correspond BAD LS.</h3>"
7053 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7054 <<
" (Depth4) correspond BAD LS.</h3>" << std::endl;
7056 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7057 << Cut0[
test][sub][2] <<
" (Depth2) correspond BAD LS.</h3>" << std::endl;
7061 htmlFile <<
" <img src=\"HistNBCMNHB.png\" />" << std::endl;
7063 htmlFile <<
" <img src=\"HistNBCMNHE.png\" />" << std::endl;
7065 htmlFile <<
" <img src=\"HistNBCMNHO.png\" />" << std::endl;
7067 htmlFile <<
" <img src=\"HistNBCMNHF.png\" />" << std::endl;
7071 htmlFile <<
" <img src=\"MapADCamplHB.png\" />" << std::endl;
7073 htmlFile <<
" <img src=\"MapADCamplHE.png\" />" << std::endl;
7075 htmlFile <<
" <img src=\"MapADCamplHO.png\" />" << std::endl;
7077 htmlFile <<
" <img src=\"MapADCamplHF.png\" />" << std::endl;
7081 htmlFile <<
" <img src=\"MapWidthHB.png\" />" << std::endl;
7083 htmlFile <<
" <img src=\"MapWidthHE.png\" />" << std::endl;
7085 htmlFile <<
" <img src=\"MapWidthHO.png\" />" << std::endl;
7087 htmlFile <<
" <img src=\"MapWidthHF.png\" />" << std::endl;
7091 htmlFile <<
" <img src=\"MapRatioHB.png\" />" << std::endl;
7093 htmlFile <<
" <img src=\"MapRatioHE.png\" />" << std::endl;
7095 htmlFile <<
" <img src=\"MapRatioHO.png\" />" << std::endl;
7097 htmlFile <<
" <img src=\"MapRatioHF.png\" />" << std::endl;
7101 htmlFile <<
" <img src=\"MapTmeanHB.png\" />" << std::endl;
7103 htmlFile <<
" <img src=\"MapTmeanHE.png\" />" << std::endl;
7105 htmlFile <<
" <img src=\"MapTmeanHO.png\" />" << std::endl;
7107 htmlFile <<
" <img src=\"MapTmeanHF.png\" />" << std::endl;
7111 htmlFile <<
" <img src=\"MapTmaxHB.png\" />" << std::endl;
7113 htmlFile <<
" <img src=\"MapTmaxHE.png\" />" << std::endl;
7115 htmlFile <<
" <img src=\"MapTmaxHO.png\" />" << std::endl;
7117 htmlFile <<
" <img src=\"MapTmaxHF.png\" />" << std::endl;
7119 htmlFile <<
"<br>" << std::endl;
7121 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7124 htmlFile <<
"<a name=\"MainEstimator\"></a>\n";
7127 <<
"<h2> 3. Distribution of estimator averaged over events in LS and over all channels for each LS </h2>"
7131 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7132 <<
" (Depth2) in each LS.</h2>" << std::endl;
7134 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7135 <<
" (Depth2), " << CutPo[sub][3] <<
" (Depth3) in each LS.</h2>" << std::endl;
7137 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][4] <<
" (Depth4) in each LS.</h2>"
7140 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7141 <<
" (Depth2) in each LS.</h2>" << std::endl;
7142 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
7146 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7147 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7148 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7150 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7151 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7152 <<
" (Depth4), " << Cut0[
test][sub][5] <<
" (Depth5), " << Cut0[
test][sub][6] <<
" (Depth6), "
7153 << Cut0[
test][sub][7] <<
" (Depth7) correspond BAD LS. </h3>" << std::endl;
7155 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7156 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7158 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7159 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7160 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7164 htmlFile <<
" <img src=\"HistPortHB.png\" />" << std::endl;
7166 htmlFile <<
" <img src=\"HistPortHE.png\" />" << std::endl;
7168 htmlFile <<
" <img src=\"HistPortHO.png\" />" << std::endl;
7170 htmlFile <<
" <img src=\"HistPortHF.png\" />" << std::endl;
7174 htmlFile <<
" <img src=\"HistADCamplHB.png\" />" << std::endl;
7176 htmlFile <<
" <img src=\"HistADCamplHE.png\" />" << std::endl;
7178 htmlFile <<
" <img src=\"HistADCamplHO.png\" />" << std::endl;
7180 htmlFile <<
" <img src=\"HistADCamplHF.png\" />" << std::endl;
7184 htmlFile <<
" <img src=\"HistWidthHB.png\" />" << std::endl;
7186 htmlFile <<
" <img src=\"HistWidthHE.png\" />" << std::endl;
7188 htmlFile <<
" <img src=\"HistWidthHO.png\" />" << std::endl;
7190 htmlFile <<
" <img src=\"HistWidthHF.png\" />" << std::endl;
7194 htmlFile <<
" <img src=\"HistRatioHB.png\" />" << std::endl;
7196 htmlFile <<
" <img src=\"HistRatioHE.png\" />" << std::endl;
7198 htmlFile <<
" <img src=\"HistRatioHO.png\" />" << std::endl;
7200 htmlFile <<
" <img src=\"HistRatioHF.png\" />" << std::endl;
7204 htmlFile <<
" <img src=\"HistTmeanHB.png\" />" << std::endl;
7206 htmlFile <<
" <img src=\"HistTmeanHE.png\" />" << std::endl;
7208 htmlFile <<
" <img src=\"HistTmeanHO.png\" />" << std::endl;
7210 htmlFile <<
" <img src=\"HistTmeanHF.png\" />" << std::endl;
7214 htmlFile <<
" <img src=\"HistTmaxHB.png\" />" << std::endl;
7216 htmlFile <<
" <img src=\"HistTmaxHE.png\" />" << std::endl;
7218 htmlFile <<
" <img src=\"HistTmaxHO.png\" />" << std::endl;
7220 htmlFile <<
" <img src=\"HistTmaxHF.png\" />" << std::endl;
7222 htmlFile <<
"<br>" << std::endl;
7225 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7226 htmlFile <<
"<a name=\"ErrorA\"></a>\n";
7227 htmlFile <<
"<h2> 4. Error type A</h2>\n";
7228 htmlFile <<
"<h3> note: no sence to see plots of this item if max difference is too large(due to very high A "
7229 "of some channels)</h3>\n";
7230 htmlFile <<
"<br>\n";
7234 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.6 (p-p collisions) </h3>\n";
7235 htmlFile <<
" <img src=\"HistErrA_HB.png\" />\n";
7236 htmlFile <<
"<br>\n";
7237 if (flagErrAB_HB[0] == -1)
7238 htmlFile <<
"<h3>test was not possible</h3>\n";
7239 else if (flagErrAB_HB[0] == 0)
7240 htmlFile <<
"<h3> Fine:NoErrorA_HB (Mean of max difference " << avedelta_HB
7241 <<
" is within 0.1-1.6) </h3>\n";
7242 else if (flagErrAB_HB[0] == 1)
7243 htmlFile <<
"<<h3> ErrorA_HB is available once Mean of max difference " << avedelta_HB
7244 <<
" is out 0.1-1.6 (p-p collisions)</font></h3>\n";
7246 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7247 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7249 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7251 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7252 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >25), "
7253 "3) with channel Amplitude (A<35); </h2>\n";
7254 htmlFile <<
" <img src=\"ChkErrA_HB1.png\" /><br><br>\n";
7255 htmlFile <<
" <img src=\"ChkErrA_HB2.png\" /><br>\n";
7256 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7258 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7259 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 25 "
7260 "(HBM:neg.eta;HBP:pos.eta) </h2>\n";
7261 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7262 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.6 at least for HF- or "
7264 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.6 and is the same "
7265 "for HF- and HF+ </h2>\n";
7266 htmlFile <<
" <img src=\"OccPlots_HB.png\" /><br><br>\n";
7267 htmlFile <<
"<br>\n";
7268 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7270 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7271 htmlFile <<
"<h2> 7. Error type B\n";
7272 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10.</h3>\n";
7273 htmlFile <<
" <img src=\"HistErrB_HB_1.png\" />\n<br>\n";
7274 htmlFile <<
" <img src=\"HistErrB_HB_2.png\" />\n<br>\n";
7275 htmlFile <<
"<br>\n";
7276 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HB <<
" LS </h3>\n";
7277 htmlFile <<
"<br>\n";
7282 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.2-1.8 (p-p collisions) </h3>\n";
7283 htmlFile <<
" <img src=\"HistErrA_HE.png\" />\n";
7284 htmlFile <<
"<br>\n";
7285 if (flagErrAB_HE[0] == -1)
7286 htmlFile <<
"<h3>test was not possible</h3>\n";
7287 else if (flagErrAB_HE[0] == 0)
7288 htmlFile <<
"<h3> Fine:NoErrorA_HE (Mean of max difference " << avedelta_HE
7289 <<
" is within 0.2-1.8) </h3>\n";
7290 else if (flagErrAB_HE[0] == 1)
7291 htmlFile <<
"<<h3> ErrorA_HE is available once Mean of max difference " << avedelta_HE
7292 <<
" is out 0.2-1.8 (p-p collisions)</font></h3>\n";
7294 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7295 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7297 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7299 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7300 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> "
7301 ">1000.fC), 3) with channel Amplitude (A<500fC); </h2>\n";
7302 htmlFile <<
" <img src=\"ChkErrA_HE1.png\" /><br><br>\n";
7303 htmlFile <<
" <img src=\"ChkErrA_HE2.png\" /><br>\n";
7304 htmlFile <<
" <img src=\"ChkErrA_HE3.png\" /><br>\n";
7305 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7307 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7308 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 35 "
7309 "(HEM:neg.eta;HEP:pos.eta) </h2>\n";
7310 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7311 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.3 at least for HF- or "
7313 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.3 and is the same "
7314 "for HF- and HF+ </h2>\n";
7315 htmlFile <<
" <img src=\"OccPlots_HE.png\" /><br><br>\n";
7316 htmlFile <<
"<br>\n";
7317 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7319 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7320 htmlFile <<
"<h2> 7. Error type B\n";
7321 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7322 htmlFile <<
" <img src=\"HistErrB_HE_1.png\" />\n<br>\n";
7323 htmlFile <<
" <img src=\"HistErrB_HE_2.png\" />\n<br>\n";
7324 htmlFile <<
" <img src=\"HistErrB_HE_3.png\" />\n<br>\n";
7325 htmlFile <<
"<br>\n";
7326 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HE <<
" LS </h3>\n";
7327 htmlFile <<
"<br>\n";
7332 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.5 (p-p collisions) </h3>\n";
7333 htmlFile <<
" <img src=\"HistErrA_HO.png\" />\n";
7334 htmlFile <<
"<br>\n";
7335 if (flagErrAB_HO[0] == -1)
7336 htmlFile <<
"<h3>test was not possible</h3>\n";
7337 else if (flagErrAB_HO[0] == 0)
7338 htmlFile <<
"<h3> Fine:NoErrorA_HO (Mean of max difference " << avedelta_HO
7339 <<
" is within 0.1-1.5) </h3>\n";
7340 else if (flagErrAB_HO[0] == 1)
7341 htmlFile <<
"<<h3> ErrorA_HO is available once Mean of max difference " << avedelta_HO
7342 <<
" is out 0.1-1.5 (p-p collisions)</font></h3>\n";
7344 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7345 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7347 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7349 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7350 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >80), "
7351 "3) with channel Amplitude (A<100); </h2>\n";
7353 htmlFile <<
" <img src=\"ChkErrA_HO4.png\" /><br><br>\n";
7354 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7356 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7357 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 80 "
7358 "(HOM:neg.eta;HOP:pos.eta) </h2>\n";
7359 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7360 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7362 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7363 "for HF- and HF+ </h2>\n";
7364 htmlFile <<
" <img src=\"OccPlots_HO.png\" /><br><br>\n";
7365 htmlFile <<
"<br>\n";
7366 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7368 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7369 htmlFile <<
"<h2> 7. Error type B\n";
7370 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10. </h3>\n";
7371 htmlFile <<
" <img src=\"HistErrB_HO_4.png\" />\n<br>\n";
7372 htmlFile <<
"<br>\n";
7373 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HO <<
" LS </h3>\n";
7374 htmlFile <<
"<br>\n";
7380 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.8-2.4 (p-p collisions) </h3>\n";
7381 htmlFile <<
" <img src=\"HistErrA_HF.png\" />\n";
7382 htmlFile <<
"<br>\n";
7383 if (flagErrAB_HF[0] == -1)
7384 htmlFile <<
"<h3>test was not possible</h3>\n";
7385 else if (flagErrAB_HF[0] == 0)
7386 htmlFile <<
"<h3> Fine:NoErrorA_HF (Mean of max difference " << avedelta_HF
7387 <<
" is within 0.8-2.4) </h3>\n";
7388 else if (flagErrAB_HF[0] == 1)
7389 htmlFile <<
"<<h3> ErrorA_HF is available once Mean of max difference " << avedelta_HF
7390 <<
" is out 0.8-2.4 (p-p collisions)</font></h3>\n";
7392 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7393 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7395 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7397 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7398 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >20), "
7399 "3) with channel Amplitude (A<20); </h2>\n";
7401 htmlFile <<
" <img src=\"ChkErrA_HF1.png\" /><br><br>\n";
7402 htmlFile <<
" <img src=\"ChkErrA_HF2.png\" /><br>\n";
7403 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7405 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7406 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 20 "
7407 "(HFM:neg.eta;HFP:pos.eta) </h2>\n";
7408 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7409 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7411 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7412 "for HF- and HF+ </h2>\n";
7413 htmlFile <<
" <img src=\"OccPlots_HF.png\" /><br><br>\n";
7414 htmlFile <<
"<br>\n";
7415 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7417 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7418 htmlFile <<
"<h2> 7. Error type B\n";
7419 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 4. </h3>\n";
7420 htmlFile <<
" <img src=\"HistErrB_HF_1.png\" />\n<br>\n";
7421 htmlFile <<
" <img src=\"HistErrB_HF_2.png\" />\n<br>\n";
7422 htmlFile <<
"<br>\n";
7423 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HF <<
" LS </h3>\n";
7424 htmlFile <<
"<br>\n";
7426 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7431 htmlFile <<
"<a name=\"LSstatus\"></a>\n";
7434 htmlFile <<
"<h2> 8.Lumisection Status for HB: </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;
7441 htmlFile <<
"<h2> 8.Lumisection Status for HE: </h2>" << std::endl;
7442 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7443 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3),"
7444 << Cut0[
test][sub][4] <<
" (Depth4)," << Cut0[
test][sub][5] <<
" (Depth5)," << Cut0[
test][sub][6]
7445 <<
" (Depth6)," << Cut0[
test][sub][7] <<
" (Depth7). </h3>" << std::endl;
7449 htmlFile <<
"<h2> 8.Lumisection Status for HO: </h2>" << std::endl;
7450 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][4]
7451 <<
" (Depth4). </h3>" << std::endl;
7454 htmlFile <<
"<h2> 8.Lumisection Status for HF: </h2>" << std::endl;
7455 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7456 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7457 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7459 htmlFile <<
"<br>" << std::endl;
7460 htmlFile <<
"<table>" << std::endl;
7462 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7464 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7467 int kkkkkkmax = k_max[sub];
7468 if ((sub == 4 || sub == 2 || sub == 1) && test == 1)
7469 kkkkkkmax = k_maxupgrade[sub];
7474 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7475 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > Depth " << k <<
" </td>" << std::endl;
7477 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7478 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > Depth " << k <<
" </td>" << std::endl;
7480 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7481 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > Depth " << k <<
" </td>" << std::endl;
7483 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7484 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > Depth " << k <<
" </td>" << std::endl;
7486 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7487 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > Depth " << k <<
" </td>" << std::endl;
7489 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
7490 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > Depth " << k <<
" </td>" << std::endl;
7491 htmlFile <<
"</tr>" << std::endl;
7494 for (
int i = 1; i <= MaxLum; i++) {
7496 raw_class =
"<td class=\"s2\" align=\"center\">";
7498 raw_class =
"<td class=\"s3\" align=\"center\">";
7499 htmlFile <<
"<tr>" << std::endl;
7500 htmlFile <<
"<td class=\"s4\" align=\"center\">" << i <<
"</td>" << std::endl;
7502 htmlFile << raw_class << LumiEv->GetBinContent(i) <<
"</td>" << std::endl;
7503 for (
int k = k_min[sub]; k <= kkkkkkmax; k++) {
7504 if (HistNumBadChanDepth[test][sub][k]->GetBinContent(i) > Cut0[test][sub][k]) {
7506 htmlFile <<
"<td class=\"s6\" align=\"center\">"
7507 << int(HistNumBadChanDepth[test][sub][k]->GetBinContent(i)) <<
"</td>" << std::endl;
7509 htmlFile <<
"<td class=\"s6\" align=\"center\">" << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i))
7510 <<
"</td>" << std::endl;
7513 htmlFile << raw_class << int(HistNumBadChanDepth[test][sub][k]->GetBinContent(i)) <<
"</td>" << std::endl;
7515 htmlFile << raw_class << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i)) <<
"</td>" << std::endl;
7518 htmlFile <<
"</tr>" << std::endl;
7521 htmlFile <<
"</table>" << std::endl;
7523 htmlFile <<
"<br>" << std::endl;
7525 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7526 htmlFile <<
"<br>" << std::endl;
7533 htmlFile <<
"<a name=\"RBXstatus\"></a>\n";
7537 htmlFile <<
"<h2> 9. Average Amplitudes of RBX for HB: </h2>" << std::endl;
7538 htmlFile <<
"<h3> where </h3>" << std::endl;
7539 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7540 "(Positive direction); </h3>"
7542 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7544 htmlFile <<
" <img src=\"RBX-HB-2Dplot.png\" />\n";
7545 htmlFile <<
"<br>\n";
7547 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HB: </h2>" << std::endl;
7548 htmlFile <<
" <img src=\"RBX-HB-1Dplot.png\" />\n";
7549 htmlFile <<
"<br>\n";
7551 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HB: </h2>" << std::endl;
7552 htmlFile <<
" <img src=\"RBX-HB-11Dplot.png\" />\n";
7553 htmlFile <<
"<br>\n";
7555 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7559 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HE: </h2>" << std::endl;
7560 htmlFile <<
"<h3> where </h3>" << std::endl;
7561 htmlFile <<
"<h3> jeta = 3,4,5, 6, 7 (Negative direction); ............&& ............ jeta = "
7562 "14,15,16,17,18 (Positive direction); </h3>"
7564 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7566 htmlFile <<
" <img src=\"RBX-HE-2Dplot.png\" />\n";
7567 htmlFile <<
"<br>\n";
7569 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HE: </h2>" << std::endl;
7570 htmlFile <<
" <img src=\"RBX-HE-1Dplot.png\" />\n";
7571 htmlFile <<
"<br>\n";
7573 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HE: </h2>" << std::endl;
7574 htmlFile <<
" <img src=\"RBX-HE-11Dplot.png\" />\n";
7575 htmlFile <<
"<br>\n";
7577 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7581 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HO: </h2>" << std::endl;
7582 htmlFile <<
"<h3> where </h3>" << std::endl;
7583 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7584 "(Positive direction); </h3>"
7586 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7588 htmlFile <<
" <img src=\"RBX-HO-2Dplot.png\" />\n";
7589 htmlFile <<
"<br>\n";
7591 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HO: </h2>" << std::endl;
7592 htmlFile <<
" <img src=\"RBX-HO-1Dplot.png\" />\n";
7593 htmlFile <<
"<br>\n";
7595 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HO: </h2>" << std::endl;
7596 htmlFile <<
" <img src=\"RBX-HO-11Dplot.png\" />\n";
7597 htmlFile <<
"<br>\n";
7599 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7603 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HF: </h2>" << std::endl;
7604 htmlFile <<
"<h3> where </h3>" << std::endl;
7605 htmlFile <<
"<h3> jeta = 0,1,2, 3 (Negative direction); ............&& ............ jeta = 18,19,20,21 "
7606 "(Positive direction); </h3>"
7608 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7610 htmlFile <<
" <img src=\"RBX-HF-2Dplot.png\" />\n";
7611 htmlFile <<
"<br>\n";
7613 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HF: </h2>" << std::endl;
7614 htmlFile <<
" <img src=\"RBX-HF-1Dplot.png\" />\n";
7615 htmlFile <<
"<br>\n";
7617 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HF: </h2>" << std::endl;
7618 htmlFile <<
" <img src=\"RBX-HF-11Dplot.png\" />\n";
7619 htmlFile <<
"<br>\n";
7621 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7623 htmlFile <<
"<br>" << std::endl;
7628 htmlFile <<
"<a name=\"RBXPHItable\"></a>\n";
7632 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HB: </h2>" << std::endl;
7634 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7635 << cutA_HB << std::endl;
7639 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HE: </h2>" << std::endl;
7641 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7642 << cutA_HE << std::endl;
7646 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HO: </h2>" << std::endl;
7648 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7649 << cutA_HO << std::endl;
7653 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HF: </h2>" << std::endl;
7655 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7656 << cutA_HF << std::endl;
7660 htmlFile <<
"<br>" << std::endl;
7661 htmlFile <<
"<table>" << std::endl;
7663 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7665 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7669 for (
int k = 0; k < njphi; k++)
7670 htmlFile <<
"<td class=\"s1\" align=\"center\"> iPHI " << k <<
" </td>" << std::endl;
7671 htmlFile <<
"</tr>" << std::endl;
7676 for (
int i = 1; i <= MaxLum; i++) {
7678 raw_class =
"<td class=\"s2\" align=\"center\">";
7680 raw_class =
"<td class=\"s3\" align=\"center\">";
7681 htmlFile <<
"<tr>" << std::endl;
7682 htmlFile <<
"<td class=\"s4\" align=\"center\">" << i <<
"</td>" << std::endl;
7684 htmlFile << raw_class << LumiEv->GetBinContent(i) <<
"</td>" << std::endl;
7687 for (
int k = 0; k < njphi; k++) {
7689 if (
int(alexhb[k][i - 1]) > cutA_ALL) {
7690 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhb[k][i - 1]) <<
"</td>" << std::endl;
7692 htmlFile << raw_class << int(alexhb[k][i - 1]) <<
"</td>" << std::endl;
7696 if (
int(alexhe[k][i - 1]) > cutA_ALL) {
7697 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhe[k][i - 1]) <<
"</td>" << std::endl;
7699 htmlFile << raw_class << int(alexhe[k][i - 1]) <<
"</td>" << std::endl;
7703 if (
int(alexho[k][i - 1]) > cutA_ALL) {
7704 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexho[k][i - 1]) <<
"</td>" << std::endl;
7706 htmlFile << raw_class << int(alexho[k][i - 1]) <<
"</td>" << std::endl;
7710 if (
int(alexhf[k][i - 1]) > cutA_ALL) {
7711 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(alexhf[k][i - 1]) <<
"</td>" << std::endl;
7713 htmlFile << raw_class << int(alexhf[k][i - 1]) <<
"</td>" << std::endl;
7718 htmlFile <<
"</tr>" << std::endl;
7721 htmlFile <<
"</table>" << std::endl;
7722 htmlFile <<
"<br>" << std::endl;
7723 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7724 htmlFile <<
"<br>" << std::endl;
7727 htmlFile <<
"<a name=\"RBXETAtable\"></a>\n";
7731 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HB: </h2>" << std::endl;
7733 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7734 << cutB_HB << std::endl;
7738 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HE: </h2>" << std::endl;
7740 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7741 << cutB_HE << std::endl;
7745 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HO: </h2>" << std::endl;
7747 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7748 << cutB_HO << std::endl;
7752 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HF: </h2>" << std::endl;
7754 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7755 << cutB_HF << std::endl;
7759 htmlFile <<
"<br>" << std::endl;
7760 htmlFile <<
"<table>" << std::endl;
7762 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7764 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7768 for (
int k = 0; k < njeta; k++)
7769 htmlFile <<
"<td class=\"s1\" align=\"center\"> iETA " << k <<
" </td>" << std::endl;
7770 htmlFile <<
"</tr>" << std::endl;
7775 for (
int i = 1; i <= MaxLum; i++) {
7777 raw_class =
"<td class=\"s2\" align=\"center\">";
7779 raw_class =
"<td class=\"s3\" align=\"center\">";
7780 htmlFile <<
"<tr>" << std::endl;
7781 htmlFile <<
"<td class=\"s4\" align=\"center\">" << i <<
"</td>" << std::endl;
7783 htmlFile << raw_class << LumiEv->GetBinContent(i) <<
"</td>" << std::endl;
7786 for (
int k = 0; k < njeta; k++) {
7788 if (
int(blexhb[k][i - 1]) > cutB_ALL) {
7789 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhb[k][i - 1]) <<
"</td>" << std::endl;
7791 htmlFile << raw_class << int(blexhb[k][i - 1]) <<
"</td>" << std::endl;
7795 if (
int(blexhe[k][i - 1]) > cutB_ALL) {
7796 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhe[k][i - 1]) <<
"</td>" << std::endl;
7798 htmlFile << raw_class << int(blexhe[k][i - 1]) <<
"</td>" << std::endl;
7802 if (
int(blexho[k][i - 1]) > cutB_ALL) {
7803 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexho[k][i - 1]) <<
"</td>" << std::endl;
7805 htmlFile << raw_class << int(blexho[k][i - 1]) <<
"</td>" << std::endl;
7809 if (
int(blexhf[k][i - 1]) > cutB_ALL) {
7810 htmlFile <<
"<td class=\"s6\" align=\"center\">" << int(blexhf[k][i - 1]) <<
"</td>" << std::endl;
7812 htmlFile << raw_class << int(blexhf[k][i - 1]) <<
"</td>" << std::endl;
7817 htmlFile <<
"</tr>" << std::endl;
7820 htmlFile <<
"</table>" << std::endl;
7821 htmlFile <<
"<br>" << std::endl;
7822 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7823 htmlFile <<
"<br>" << std::endl;
7828 htmlFile <<
"<a name=\"RBX3plots\"></a>\n";
7829 htmlFile <<
"<br>\n";
7830 htmlFile <<
"<h2> 12. (Rij) - RBX-amplitudes normilized on reference LS (~=1st) </h2>" << std::endl;
7831 htmlFile <<
"<h3> ( Rji . . is ratio of . . . . A_j_i . . to . . A_j_ref . . . . for . . j-RBX . . and . . "
7835 htmlFile <<
"<br>\n";
7836 htmlFile <<
"<h2> . . . . . . . . . . . . . . 1) . average Ri vs iLS:. . . . . . . . . . . . . . . . . . . . . "
7837 ". . 2) . average Rj shown for Rij outside meanValue range either 0.95-1.05 or 3RMS: . . . . . . . "
7838 ". . . . . . . . . . . . . . . . . . 3) . Rij: </h2>"
7840 htmlFile <<
"<br>\n";
7842 htmlFile <<
" <img src=\"RBX-HB-3plots.png\" />\n";
7845 htmlFile <<
" <img src=\"RBX-HE-3plots.png\" />\n";
7848 htmlFile <<
" <img src=\"RBX-HO-3plots.png\" />\n";
7851 htmlFile <<
" <img src=\"RBX-HF-3plots.png\" />\n";
7853 htmlFile <<
"<br>\n";
7855 htmlFile <<
"<br>\n";
7856 htmlFile <<
"<h2> . 4). average Rj shown for Rij outside meanValue range 0.80-1.20: . . . . . . . .5) . "
7857 "average Rj shown for Rij outside meanValue range 0.70-1.30: . . . . . . . .6). average Rj shown "
7858 "for Rij outside meanValue range 0.60-1.40: </h2>"
7860 htmlFile <<
"<br>\n";
7862 htmlFile <<
" <img src=\"RBX-HB-3plotsmore.png\" />\n";
7865 htmlFile <<
" <img src=\"RBX-HE-3plotsmore.png\" />\n";
7868 htmlFile <<
" <img src=\"RBX-HO-3plotsmore.png\" />\n";
7871 htmlFile <<
" <img src=\"RBX-HF-3plotsmore.png\" />\n";
7873 htmlFile <<
"<br>\n";
7875 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7895 for (
int test = 0; test <= 5; test++) {
7897 htmlFile.open(
"CapID_GL.html");
7899 htmlFile.open(
"ADCampl_GL.html");
7901 htmlFile.open(
"Width_GL.html");
7903 htmlFile.open(
"Ratio_GL.html");
7905 htmlFile.open(
"Tmean_GL.html");
7907 htmlFile.open(
"Tmax_GL.html");
7911 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
7912 htmlFile <<
"<head>" << std::endl;
7913 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
7914 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
7915 htmlFile <<
"<style type=\"text/css\">" << std::endl;
7916 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
7918 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
7919 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
7920 "text-align: center;}"
7922 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
7923 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
7924 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
7925 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
7926 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
7927 htmlFile <<
"</style>" << std::endl;
7928 htmlFile <<
"<body>" << std::endl;
7930 htmlFile <<
"<h1> CAP ID ERRORS, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7932 htmlFile <<
"<h1> ADC AMPLITIDE, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7934 htmlFile <<
"<h1> WIDTH, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7936 htmlFile <<
"<h1> RATIO, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7938 htmlFile <<
"<h1> TIMING MEAN, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7940 htmlFile <<
"<h1> TIMING MAX, GLOBAL RUN = " << runnumber <<
" </h1>" << std::endl;
7941 htmlFile <<
"<br>" << std::endl;
7942 htmlFile <<
"<h2> 1. Map of suspicious channels with this criterion for whole HCAL </h2>" << std::endl;
7943 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
7944 htmlFile <<
"<br>" << std::endl;
7946 htmlFile <<
" <img src=\"MapCapIdError.png\" />" << std::endl;
7948 htmlFile <<
" <img src=\"MapADCAmpl.png\" />" << std::endl;
7950 htmlFile <<
" <img src=\"MapWidth.png\" />" << std::endl;
7952 htmlFile <<
" <img src=\"MapRatio.png\" />" << std::endl;
7954 htmlFile <<
" <img src=\"MapTmean.png\" />" << std::endl;
7956 htmlFile <<
" <img src=\"MapTmax.png\" />" << std::endl;
7957 htmlFile <<
"<br>" << std::endl;
7958 htmlFile <<
"<h2> 2. For whole HCAL: </h2>" << std::endl;
7959 htmlFile <<
"<br>" << std::endl;
7961 htmlFile <<
" <img src=\"HistCapID.png\" />" << std::endl;
7963 htmlFile <<
" <img src=\"HistADCAmpl.png\" />" << std::endl;
7965 htmlFile <<
" <img src=\"HistWidth.png\" />" << std::endl;
7967 htmlFile <<
" <img src=\"HistRatio.png\" />" << std::endl;
7969 htmlFile <<
" <img src=\"HistTmean.png\" />" << std::endl;
7971 htmlFile <<
" <img src=\"HistTmax.png\" />" << std::endl;
7972 htmlFile <<
"<br>" << std::endl;
7973 htmlFile <<
"<h2> 3. Status of subdetectors </h2>" << std::endl;
7974 htmlFile <<
"<table width=\"400\">" << std::endl;
7975 htmlFile <<
"<tr>" << std::endl;
7977 htmlFile <<
" <td><a "
7978 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7979 "HcalRemoteMonitoring/CMT/GLOBAL_"
7980 << runnumber <<
"/HB_CapID.html\">HB</a></td>" << std::endl;
7981 htmlFile <<
" <td><a "
7982 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7983 "HcalRemoteMonitoring/CMT/GLOBAL_"
7984 << runnumber <<
"/HE_CapID.html\">HE</a></td>" << std::endl;
7985 htmlFile <<
" <td><a "
7986 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7987 "HcalRemoteMonitoring/CMT/GLOBAL_"
7988 << runnumber <<
"/HO_CapID.html\">HO</a></td>" << std::endl;
7989 htmlFile <<
" <td><a "
7990 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
7991 "HcalRemoteMonitoring/CMT/GLOBAL_"
7992 << runnumber <<
"/HF_CapID.html\">HF</a></td>" << std::endl;
7996 htmlFile <<
" <td><a href=\"HB_ADCampl.html\">HB</a></td>" << std::endl;
7997 htmlFile <<
" <td><a href=\"HE_ADCampl.html\">HE</a></td>" << std::endl;
7998 htmlFile <<
" <td><a href=\"HO_ADCampl.html\">HO</a></td>" << std::endl;
7999 htmlFile <<
" <td><a href=\"HF_ADCampl.html\">HF</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 <<
"/HB_Width.html\">HB</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 <<
"/HE_Width.html\">HE</a></td>" << std::endl;
8016 htmlFile <<
" <td><a "
8017 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8018 "HcalRemoteMonitoring/CMT/GLOBAL_"
8019 << runnumber <<
"/HO_Width.html\">HO</a></td>" << std::endl;
8020 htmlFile <<
" <td><a "
8021 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8022 "HcalRemoteMonitoring/CMT/GLOBAL_"
8023 << runnumber <<
"/HF_Width.html\">HF</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 <<
"/HB_Ratio.html\">HB</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 <<
"/HE_Ratio.html\">HE</a></td>" << std::endl;
8034 htmlFile <<
" <td><a "
8035 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8036 "HcalRemoteMonitoring/CMT/GLOBAL_"
8037 << runnumber <<
"/HO_Ratio.html\">HO</a></td>" << std::endl;
8038 htmlFile <<
" <td><a "
8039 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8040 "HcalRemoteMonitoring/CMT/GLOBAL_"
8041 << runnumber <<
"/HF_Ratio.html\">HF</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 <<
"/HB_Tmean.html\">HB</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 <<
"/HE_Tmean.html\">HE</a></td>" << std::endl;
8052 htmlFile <<
" <td><a "
8053 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8054 "HcalRemoteMonitoring/CMT/GLOBAL_"
8055 << runnumber <<
"/HO_Tmean.html\">HO</a></td>" << std::endl;
8056 htmlFile <<
" <td><a "
8057 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8058 "HcalRemoteMonitoring/CMT/GLOBAL_"
8059 << runnumber <<
"/HF_Tmean.html\">HF</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 <<
"/HB_Tmax.html\">HB</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 <<
"/HE_Tmax.html\">HE</a></td>" << std::endl;
8070 htmlFile <<
" <td><a "
8071 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8072 "HcalRemoteMonitoring/CMT/GLOBAL_"
8073 << runnumber <<
"/HO_Tmax.html\">HO</a></td>" << std::endl;
8074 htmlFile <<
" <td><a "
8075 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8076 "HcalRemoteMonitoring/CMT/GLOBAL_"
8077 << runnumber <<
"/HF_Tmax.html\">HF</a></td>" << std::endl;
8080 htmlFile <<
"</tr>" << std::endl;
8081 htmlFile <<
"</table>" << std::endl;
8082 htmlFile <<
"<br>" << std::endl;
8086 htmlFile <<
"<h2> 4. Table of estimator-values in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8088 htmlFile <<
"<h2> 4. Table of average Nbcs in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8089 htmlFile <<
"<table>" << std::endl;
8091 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8093 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
8095 for (
int sub = 1; sub <= 4; sub++) {
8098 int kkkkkkmax = k_max[sub];
8099 if ((sub == 4 || sub == 2 || sub == 1) && test == 1)
8100 kkkkkkmax = k_maxupgrade[sub];
8105 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8106 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HBdep " << k <<
" </td>" << std::endl;
8108 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8109 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HBdepth " << k <<
" </td>" << std::endl;
8111 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8112 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HBdepth " << k <<
" </td>" << std::endl;
8114 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8115 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HBdepth " << k <<
" </td>" << std::endl;
8117 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8118 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HBdep " << k <<
" </td>" << std::endl;
8120 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8121 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HBdep " << k <<
" </td>" << std::endl;
8125 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8126 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HEdep " << k <<
" </td>" << std::endl;
8128 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8129 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HEdepth " << k <<
" </td>" << std::endl;
8131 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8132 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HEdepth " << k <<
" </td>" << std::endl;
8134 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8135 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HEdepth " << k <<
" </td>" << std::endl;
8137 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8138 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HEdep " << k <<
" </td>" << std::endl;
8140 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8141 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HEdep " << k <<
" </td>" << std::endl;
8145 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8146 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HOdep " << k <<
" </td>" << std::endl;
8148 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8149 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HOdepth " << k <<
" </td>" << std::endl;
8151 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8152 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HOdepth " << k <<
" </td>" << std::endl;
8154 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8155 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HOdepth " << k <<
" </td>" << std::endl;
8157 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8158 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HOdep " << k <<
" </td>" << std::endl;
8160 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8161 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HOdep " << k <<
" </td>" << std::endl;
8165 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8166 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HFdep " << k <<
" </td>" << std::endl;
8168 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8169 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HFdepth " << k <<
" </td>" << std::endl;
8171 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8172 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HFdepth " << k <<
" </td>" << std::endl;
8174 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8175 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HFdepth " << k <<
" </td>" << std::endl;
8177 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8178 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HFdep " << k <<
" </td>" << std::endl;
8180 for (
int k = k_min[sub]; k <= kkkkkkmax; k++)
8181 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HFdep " << k <<
" </td>" << std::endl;
8184 htmlFile <<
"</tr>" << std::endl;
8204 for (
int i = 1; i <= MaxLum; i++) {
8207 for (
int sub = 1; sub <= 4; sub++) {
8208 int kkkkkkmax = k_max[sub];
8209 if ((sub == 4 || sub == 2 || sub == 1) && test == 1)
8210 kkkkkkmax = k_maxupgrade[sub];
8212 for (
int k = k_min[sub]; k <= kkkkkkmax; k++) {
8214 if (sub == 2 && k > 3) {
8216 if (HistNumBadChanDepth[test][sub][k]->GetBinContent(i) > Cut0[test][sub][k])
8224 raw_class =
"<td class=\"s2\" align=\"center\">";
8226 raw_class =
"<td class=\"s3\" align=\"center\">";
8227 htmlFile <<
"<tr>" << std::endl;
8228 htmlFile <<
"<td class=\"s4\" align=\"center\">" << i <<
"</td>" << std::endl;
8230 htmlFile << raw_class << LumiEv->GetBinContent(i) <<
"</td>" << std::endl;
8231 for (
int sub = 1; sub <= 4; sub++) {
8232 int kkkkkkmax = k_max[sub];
8233 if ((sub == 4 || sub == 2 || sub == 1) && test == 1)
8234 kkkkkkmax = k_maxupgrade[sub];
8236 for (
int k = k_min[sub]; k <= kkkkkkmax; k++) {
8237 if (HistNumBadChanDepth[test][sub][k]->GetBinContent(i) > Cut0[test][sub][k])
8238 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i)
8239 <<
"</td>" << std::endl;
8241 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i) <<
"</td>" << std::endl;
8271 htmlFile <<
"</tr>" << std::endl;
8276 htmlFile <<
"</table>" << std::endl;
8277 htmlFile <<
"<br>" << std::endl;
8278 htmlFile <<
"</body> " << std::endl;
8279 htmlFile <<
"</html> " << std::endl;
8286 htmlFile.open(
"SummedAmplitudes_GL.html");
8287 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8288 htmlFile <<
"<head>" << std::endl;
8289 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8290 htmlFile <<
"<title> for summed Amplitudes of each sub-detector </title>" << std::endl;
8291 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8292 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8294 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8295 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8296 "text-align: center;}"
8298 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8299 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8300 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8301 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8302 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8304 htmlFile <<
"</style>" << std::endl;
8305 htmlFile <<
"<body>" << std::endl;
8306 htmlFile <<
"<h1> Averaged Summed Amplitudes & corresponding occupancy of each sub-detector in Global Run = "
8307 << runnumber <<
" </h1>" << std::endl;
8308 htmlFile <<
"<a name=\"Top\"></a>\n";
8309 htmlFile <<
"<b>Contents:<br>\n";
8310 htmlFile <<
"1. <a href=\"#SAhigh\">average SA&Occupancy for Signal </a><br>\n";
8311 htmlFile <<
"2. <a href=\"#SAlow\">average SA&Occupancy for NoSignal </a><br>\n";
8312 htmlFile <<
"3. <a href=\"#SAmax\"> maxSA & maxOccupancy; SA & Occupancy; </a><br>\n";
8313 htmlFile <<
"4. <a href=\"#FullTable\">Table(avA; avSA; avOccupancy; maxSA; maxOccupancy;) </a><br>\n";
8315 htmlFile <<
"<h2> Clarifying on averaged Summed Amplitude (avSA) : </h2>" << std::endl;
8316 htmlFile <<
"<h3> Summed Amplitudes (SA) are averaged over all events of each LS: avSA_LS = SUM (SA_eventsInLS) / "
8317 "N_eventsInLS ,</h3>"
8319 htmlFile <<
"<h3> where SA = SUM(A_i) ,and means that Amplitude is summed over all sub-detector channels, </h3>"
8321 htmlFile <<
"<h3> where A_i = SUM(A_depth) denotes channel amplitude summed over depths; </h3>" << std::endl;
8323 htmlFile <<
" <td><a "
8324 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8325 "HcalRemoteMonitoring/CMT/SAwriteup.html\"> see more details for SummedAmplitudes</a></td>"
8327 htmlFile <<
"<h2> Apply cuts on A_i to take into account channels with or/and without a'la Signal: </h2>"
8329 htmlFile <<
" <img src=\"ChannelDepthsummedAmplitudes.png\" />" << std::endl;
8330 htmlFile <<
"<br>" << std::endl;
8331 htmlFile <<
"<br>" << std::endl;
8332 htmlFile <<
"<a name=\"SAhigh\"></a>\n";
8333 htmlFile <<
"<h1> 1. for channels with signal </h1>" << std::endl;
8334 htmlFile <<
"<br>" << std::endl;
8335 htmlFile <<
"<h2> for HB: A_i> 80; </h2>" << std::endl;
8336 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HB.png\" />" << std::endl;
8337 htmlFile <<
"<br>" << std::endl;
8338 htmlFile <<
"<h2> for HE: A_i> 200;</h2>" << std::endl;
8339 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HE.png\" />" << std::endl;
8340 htmlFile <<
"<br>" << std::endl;
8341 htmlFile <<
"<h2> for HO: A_i> 1200;</h2>" << std::endl;
8342 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HO.png\" />" << std::endl;
8343 htmlFile <<
"<br>" << std::endl;
8344 htmlFile <<
"<h2> for HF: A_i> 600;</h2>" << std::endl;
8345 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HF.png\" />" << std::endl;
8346 htmlFile <<
"<br>" << std::endl;
8347 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8349 htmlFile <<
"<a name=\"SAlow\"></a>\n";
8350 htmlFile <<
"<h1> 2. for channels w/o signal </h1>" << std::endl;
8351 htmlFile <<
"<br>" << std::endl;
8352 htmlFile <<
"<h2> for HB: A_i< 80;</h2>" << std::endl;
8353 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HB.png\" />" << std::endl;
8354 htmlFile <<
"<br>" << std::endl;
8355 htmlFile <<
"<h2> for HE: A_i< 200;</h2>" << std::endl;
8356 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HE.png\" />" << std::endl;
8357 htmlFile <<
"<br>" << std::endl;
8358 htmlFile <<
"<h2> for HO: A_i< 1200;</h2>" << std::endl;
8359 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HO.png\" />" << std::endl;
8360 htmlFile <<
"<br>" << std::endl;
8361 htmlFile <<
"<h2> for HF: A_i< 600;</h2>" << std::endl;
8362 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HF.png\" />" << std::endl;
8363 htmlFile <<
"<br>" << std::endl;
8364 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8366 htmlFile <<
"<br>" << std::endl;
8367 htmlFile <<
"<br>" << std::endl;
8368 htmlFile <<
"<a name=\"SAmax\"></a>\n";
8369 htmlFile <<
"<h1> 3. four plots: ---1---> max SA ---2---> max Occupancy ---3---> SA ---4---> Occupancy over all "
8370 "events of LS </h1>"
8372 htmlFile <<
"<br>" << std::endl;
8374 htmlFile <<
"<h2> for HB: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8375 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HB.png\" />" << std::endl;
8377 " ......(forCut:SAmax>60000) N= "
8378 << countamplmaxHB <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHB <<
" </h2>" << std::endl;
8380 " ......(forCut:SA>60000) N= "
8381 << countamplHB <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHB <<
" </h2>" << std::endl;
8382 htmlFile <<
"<br>" << std::endl;
8383 htmlFile <<
"<h3> ONLY for HB (cross-check): channel Amplitudes for events in the Tail (averaged): </h3>"
8385 htmlFile <<
" <img src=\"AtaildepthHB.png\" />" << std::endl;
8386 htmlFile <<
"<br>" << std::endl;
8388 htmlFile <<
"<h2> for HE: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8389 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HE.png\" />" << std::endl;
8391 " ......(forCut:SAmax>60000) N= "
8392 << countamplmaxHE <<
" ...... (forCut:OCCUPmax>1200) N= " << countoccumaxHE <<
" </h2>" << std::endl;
8394 " ......(forCut:SA>60000) N= "
8395 << countamplHE <<
" ...... (forCut:OCCUP>1200) N= " << countoccuHE <<
" </h2>" << std::endl;
8396 htmlFile <<
"<br>" << std::endl;
8398 htmlFile <<
"<h2> for HO: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8399 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HO.png\" />" << std::endl;
8401 " ......(forCut:SAmax>150000) N= "
8402 << countamplmaxHO <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHO <<
" </h2>" << std::endl;
8404 " ......(forCut:SA>150000) N= "
8405 << countamplHO <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHO <<
" </h2>" << std::endl;
8406 htmlFile <<
"<br>" << std::endl;
8408 htmlFile <<
"<h2> for HF: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8409 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HF.png\" />" << std::endl;
8411 " ......(forCut:SAmax>22000) N= "
8412 << countamplmaxHF <<
" ...... (forCut:OCCUPmax>860) N= " << countoccumaxHF <<
" </h2>" << std::endl;
8414 " ......(forCut:SA>22000) N= "
8415 << countamplHF <<
" ...... (forCut:OCCUP>860) N= " << countoccuHF <<
" </h2>" << std::endl;
8416 htmlFile <<
"<br>" << std::endl;
8417 htmlFile <<
"<h2> Occupancy HF (ONLY) vs LS </h2>" << std::endl;
8418 htmlFile <<
" <img src=\"sumOccupancyHF.png\" />" << std::endl;
8419 htmlFile <<
"<br>" << std::endl;
8420 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8422 htmlFile <<
"<a name=\"FullTable\"></a>\n";
8423 htmlFile <<
"<h2> 4.Lumisection Status: </h2>" << std::endl;
8424 htmlFile <<
"<h3> Legends: HBdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8425 << Cut0[1][1][1] << std::endl;
8426 htmlFile <<
"<h3> Legends: HEdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8427 << Cut0[1][2][1] << std::endl;
8428 htmlFile <<
"<h3> Legends: HOdepth4 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8429 << Cut0[1][3][4] << std::endl;
8430 htmlFile <<
"<h3> Legends: HFdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8431 << Cut0[1][4][1] << std::endl;
8432 htmlFile <<
"<br>" << std::endl;
8434 htmlFile <<
"<br>" << std::endl;
8435 htmlFile <<
"<table>" << std::endl;
8437 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8439 htmlFile <<
"<td class=\"s1\" align=\"center\"> Num.of ev.</td>" << std::endl;
8444 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HB Depth1</td>" << std::endl;
8445 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HE Depth1</td>" << std::endl;
8446 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HO Depth4</td>" << std::endl;
8447 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HF Depth1</td>" << std::endl;
8449 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (Signal) </td>" << std::endl;
8450 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (Signal) </td>" << std::endl;
8451 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (Signal) </td>" << std::endl;
8452 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (Signal) </td>" << std::endl;
8454 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (NoSignal) </td>" << std::endl;
8455 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (NoSignal) </td>" << std::endl;
8456 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (NoSignal) </td>" << std::endl;
8457 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (NoSignal) </td>" << std::endl;
8459 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HB </td>" << std::endl;
8460 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HB </td>" << std::endl;
8461 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HF </td>" << std::endl;
8462 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HF </td>" << std::endl;
8464 htmlFile <<
"</tr>" << std::endl;
8467 for (
int i = 1; i <= MaxLum; i++) {
8469 raw_class =
"<td class=\"s2\" align=\"center\">";
8471 raw_class =
"<td class=\"s3\" align=\"center\">";
8472 htmlFile <<
"<tr>" << std::endl;
8474 htmlFile <<
"<td class=\"s4\" align=\"center\">" << i <<
"</td>" << std::endl;
8477 htmlFile << raw_class << LumiEv->GetBinContent(i) <<
"</td>" << std::endl;
8482 for (
int sub = 1; sub <= 4; sub++) {
8483 for (
int k = k_min[sub]; k <= k_min[sub]; k++) {
8484 if (HistNumBadChanDepth[test][sub][k]->GetBinContent(i) > Cut0[test][sub][k])
8485 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i)
8486 <<
"</td>" << std::endl;
8489 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(i) <<
"</td>" << std::endl;
8492 if (SummedAmplitudeHisto[0]) {
8493 htmlFile << raw_class << SummedAmplitudeHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8494 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8495 htmlFile << raw_class << SummedAmplitudeHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8496 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8498 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8499 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8500 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8501 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8503 htmlFile << raw_class << MaxxSummedAmplitudeHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8504 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[0]->GetBinContent(i) <<
"</td>" << std::endl;
8505 htmlFile << raw_class << MaxxSummedAmplitudeHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8506 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[3]->GetBinContent(i) <<
"</td>" << std::endl;
8508 htmlFile <<
"</tr>" << std::endl;
8511 htmlFile <<
"</table>" << std::endl;
8512 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8514 htmlFile <<
"<br>" << std::endl;
8515 htmlFile <<
"</body> " << std::endl;
8516 htmlFile <<
"</html> " << std::endl;
8558 htmlFile.open(
"CMTresults.html");
8559 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8560 htmlFile <<
"<head>" << std::endl;
8561 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8562 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8563 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8564 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8566 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8567 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8568 "text-align: center;}"
8570 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8571 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8572 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8573 htmlFile <<
"</style>" << std::endl;
8574 htmlFile <<
"<body>" << std::endl;
8575 htmlFile <<
"<h1> LS-certification (recommendation) from analysis of CMT-dependencies of THIS run </h1>"
8577 htmlFile <<
"<br>" << std::endl;
8578 htmlFile <<
"<br>" << std::endl;
8579 htmlFile <<
"<h2> - List of suspicious LSs: </h2> " << std::endl;
8580 htmlFile <<
"<br>" << std::endl;
8581 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8582 htmlFile <<
"<br>" << std::endl;
8583 htmlFile <<
"<br>" << std::endl;
8584 htmlFile <<
"<br>" << std::endl;
8585 htmlFile <<
"<h2> - Comments: </h2> " << std::endl;
8586 htmlFile <<
"<br>" << std::endl;
8587 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8588 htmlFile <<
"<br>" << std::endl;
8589 htmlFile <<
"<br>" << std::endl;
8590 htmlFile <<
"<br>" << std::endl;
8591 htmlFile <<
"</body> " << std::endl;
8592 htmlFile <<
"</html> " << std::endl;
8598 htmlFile.open(
"LumiList.html");
8599 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8600 htmlFile <<
"<head>" << std::endl;
8601 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8602 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8603 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8604 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8606 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8607 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8608 "text-align: center;}"
8610 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8611 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8612 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8613 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8614 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8616 htmlFile <<
"</style>" << std::endl;
8617 htmlFile <<
"<body>" << std::endl;
8619 htmlFile <<
"<h1> Certification Monitoring Tool, GLOBAL RUN = " << runnumber <<
". </h1>" << std::endl;
8620 htmlFile <<
"<br>" << std::endl;
8621 htmlFile <<
" <td><a "
8622 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8623 "HcalRemoteMonitoring/CMT/GLOBAL_"
8624 << runnumber <<
"/CMTresults.html\"> CMT-analysis RESULTS (for this run) </a></td>" << std::endl;
8625 htmlFile <<
"<br>" << std::endl;
8626 htmlFile <<
"<br>" << std::endl;
8629 htmlFile <<
"<h2> 1. General information (Full number of LS = " << MaxLum <<
" ). </h2>" << std::endl;
8630 htmlFile <<
" <img src=\"LumiEvent.png\" />" << std::endl;
8631 htmlFile <<
"<br>" << std::endl;
8633 htmlFile <<
"<h2> 2. HCAL status for different criteria </h2>" << std::endl;
8635 htmlFile <<
" <td><a "
8636 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8637 "HcalRemoteMonitoring/CMT/HELP.html\"> Description of criteria for bad channel selection</a></td>"
8639 htmlFile <<
"<br>" << std::endl;
8640 htmlFile <<
"<table width=\"600\">" << std::endl;
8641 htmlFile <<
"<tr>" << std::endl;
8642 htmlFile <<
" <td><a "
8643 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8644 "HcalRemoteMonitoring/CMT/GLOBAL_"
8645 << runnumber <<
"/CapID_GL.html\">Cap ID errors</a></td>" << std::endl;
8648 htmlFile <<
" <td><a href=\"ADCampl_GL.html\">Amplitude</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 <<
"/Width_GL.html\">Width</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 <<
"/Ratio_GL.html\">Ratio</a></td>" << std::endl;
8657 htmlFile <<
" <td><a "
8658 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8659 "HcalRemoteMonitoring/CMT/GLOBAL_"
8660 << runnumber <<
"/Tmean_GL.html\">TS mean</a></td>" << std::endl;
8661 htmlFile <<
" <td><a "
8662 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8663 "HcalRemoteMonitoring/CMT/GLOBAL_"
8664 << runnumber <<
"/Tmax_GL.html\">TS max</a></td>" << std::endl;
8666 htmlFile <<
" <td><a "
8667 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
8668 "HcalRemoteMonitoring/CMT/GLOBAL_"
8669 << runnumber <<
"/SummedAmplitudes_GL.html\">SummedAmplitudes</a></td>" << std::endl;
8671 htmlFile <<
"</tr>" << std::endl;
8672 htmlFile <<
"</table>" << std::endl;
8673 htmlFile <<
"<br>" << std::endl;
8674 htmlFile <<
"</body> " << std::endl;
8675 htmlFile <<
"</html> " << std::endl;
uint16_t const *__restrict__ x
int copyContents(TH1F **hDest, TString hname, TString htitle, const TH1F *hSrc, int lastBin)