24 #include <TPaveText.h>
31 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin);
37 gROOT->SetStyle(
"Plain");
38 gStyle->SetOptStat(0);
39 gStyle->SetOptTitle(1);
52 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
55 TFile *hfile =
new TFile(
fname,
"READ");
58 double Cut0[7][5][8] = {
59 {{0., 0., 0., 0., 0., 0., 0., 0.},
60 {0., 1.0, 1.0, 0., 0., 0., 0., 0.},
61 {0., 1., 1., 1., 0., 0., 0., 0.},
62 {0., 0., 0., 0., 1., 0., 0., 0.},
63 {0., 1., 1., 0., 0., 0., 0., 0.}},
65 {{0., 0., 0., 0., 0., 0., 0., 0.},
66 {0., 3500., 3500., 3500., 3500., 0., 0., 0.},
67 {0., 12000., 4500., 3500., 3500., 4000., 4500., 5500.},
68 {0., 0., 0., 0., 200., 0., 0., 0.},
69 {0., 4500., 4500., 4500., 4500., 0., 0., 0.}},
70 {{0., 0., 0., 0., 0., 0., 0., 0.},
71 {0., 3., 3., 0., 0., 0., 0., 0.},
72 {0., 3., 3., 3., 0., 0., 0., 0.},
73 {0., 0., 0., 0., 3., 0., 0., 0.},
74 {0., 2., 2., 0., 0., 0., 0., 0.}},
75 {{0., 0., 0., 0., 0., 0., 0., 0.},
76 {0., 0.4, 0.4, 0., 0., 0., 0., 0.},
77 {0., 0.4, 0.4, 0.4, 0., 0., 0., 0.},
78 {0., 0., 0., 0., 0.4, 0., 0., 0.},
79 {0., 0.8, 0.8, 0., 0., 0., 0., 0.}},
80 {{0., 0., 0., 0., 0., 0., 0., 0.},
81 {0., 4.7, 4.7, 0., 0., 0., 0., 0.},
82 {0., 4.8, 4.8, 5.0, 0., 0., 0., 0.},
83 {0., 0., 0., 0., 4.8, 0., 0., 0.},
84 {0., 4.0, 4.0, 0., 0., 0., 0., 0.}},
85 {{0., 0., 0., 0., 0., 0., 0., 0.},
86 {0., 3.5, 3.5, 0., 0., 0., 0., 0.},
87 {0., 4.0, 4.0, 4.0, 0., 0., 0., 0.},
88 {0., 0., 0., 0., 3., 0., 0., 0.},
89 {0., 3.5, 3.5, 0., 0., 0., 0., 0.}},
90 {{0., 0., 0., 0., 0., 0., 0., 0.},
91 {0., 0., 0., 0., 0., 0., 0., 0.},
92 {0., 0., 0., 0., 0., 0., 0., 0.},
93 {0., 0., 0., 0., 0., 0., 0., 0.},
94 {0., 0., 0., 0., 0., 0., 0., 0.}}};
96 double CutAb[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
97 {0., 20., 7., 0., 0., 0., 0., 0.},
98 {0., 16., 13., 4., 0., 0., 0., 0.},
99 {0., 0., 0., 0., 45., 0., 0., 0.},
100 {0., 10., 5., 0., 0., 0., 0., 0.}};
102 double CutPo[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
103 {0., 9., 3., 0., 0., 0., 0., 0.},
104 {0., 8., 6., 2., 0., 0., 0., 0.},
105 {0., 0., 0., 0., 20., 0., 0., 0.},
106 {0., 5., 3., 0., 0., 0., 0., 0.}};
123 TCanvas *
c1 =
new TCanvas(
"c1",
"Hcal4test", 200, 10, 700, 900);
125 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 500);
126 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 500);
127 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 500, 500);
128 TCanvas *cFour =
new TCanvas(
"cFour",
"cFour", 1500, 1000);
129 TCanvas *cFour1 =
new TCanvas(
"cFour1",
"cFour1", 1200, 800);
130 TCanvas *cNine =
new TCanvas(
"cNine",
"cNine", 1500, 1500);
134 TCanvas *c4x6 =
new TCanvas(
"c4x6",
"c4x6", 1200, 2400);
136 TCanvas *c5x6 =
new TCanvas(
"c5x6",
"c5x6", 1500, 2400);
138 TCanvas *cRBX1 =
new TCanvas(
"cRBX1",
"cRBX1", 1200, 1000);
141 TCanvas *cRBX31 =
new TCanvas(
"cRBX31",
"cRBX31", 1860, 600);
146 int k_min[5] = {0, 1, 1, 4, 1};
148 int k_max[5] = {0, 2, 3, 4, 2};
150 int k_maxupgrade[5] = {0, 4, 7, 4, 4};
157 TH1F *LumLum = (TH1F *)hfile->Get(
"h_lsnumber_per_eachLS");
158 int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin());
159 cout <<
" MaxLumDanila= " << MaxLumDanila << endl;
162 LumLum->SetMarkerStyle(10);
163 LumLum->SetMarkerSize(0.8);
164 LumLum->GetYaxis()->SetLabelSize(0.04);
165 LumLum->SetTitle(
"Cont. number per LS \b");
166 LumLum->SetXTitle(
"Cont.number \b");
167 LumLum->SetYTitle(
"Ls \b");
168 LumLum->SetMarkerColor(4);
169 LumLum->SetLineColor(0);
170 LumLum->SetMinimum(0.8);
171 LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila);
172 LumLum->Draw(
"Error");
175 TH1F *LumiEv = (TH1F *)hfile->Get(
"h_nevents_per_eachRealLS");
176 int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
178 for (
int i = 1;
i <= LumiEv->GetXaxis()->GetNbins();
i++) {
179 if (LumiEv->GetBinContent(
i)) {
183 cout <<
" MaxLum0= " << MaxLum0 <<
" MaxLum= " << MaxLum << endl;
189 LumiEv->GetYaxis()->SetLabelSize(0.04);
190 LumiEv->SetTitle(
"Number of events per LS");
191 LumiEv->SetXTitle(
"LS");
192 LumiEv->SetYTitle(
"Number of events ");
193 LumiEv->SetMarkerStyle(10);
194 LumiEv->SetMarkerSize(0.8);
195 LumiEv->SetMarkerColor(4);
196 LumiEv->SetLineColor(0);
198 LumiEv->GetXaxis()->SetRangeUser(0, MaxLum);
199 LumiEv->Draw(
"Error");
201 cHB->Print(
"LumiEvent.png");
207 TH1F *H_NumBadChanDepth[7][5][5];
213 H_NumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS1");
214 H_NumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS2");
216 H_NumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS3");
217 H_NumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS4");
218 H_NumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplLS5");
220 H_NumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplLS8");
222 H_NumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplLS6");
223 H_NumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplLS7");
229 H_NumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS1");
230 H_NumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS2");
232 H_NumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS3");
233 H_NumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS4");
234 H_NumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS5");
236 H_NumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS8");
238 H_NumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS6");
239 H_NumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeLS7");
245 H_NumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplLS1");
246 H_NumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplLS2");
248 H_NumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplLS3");
249 H_NumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplLS4");
250 H_NumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplLS5");
252 H_NumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplLS8");
254 H_NumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplLS6");
255 H_NumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplLS7");
261 H_NumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS1");
262 H_NumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS2");
264 H_NumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS3");
265 H_NumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS4");
266 H_NumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanALS5");
268 H_NumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanALS8");
270 H_NumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanALS6");
271 H_NumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanALS7");
277 H_NumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS1");
278 H_NumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS2");
280 H_NumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS3");
281 H_NumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS4");
282 H_NumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxALS5");
284 H_NumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxALS8");
286 H_NumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxALS6");
287 H_NumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxALS7");
289 gStyle->SetOptStat(110000);
292 for (
int sub = 1; sub <= 4; sub++) {
301 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
313 H_NumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
314 H_NumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.8);
316 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
318 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
320 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
322 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
324 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Amplitude> \b");
326 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Width> \b");
328 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Ratio> \b");
330 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS mean> \b");
332 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS max> \b");
333 H_NumBadChanDepth[
test][sub][
k]->SetYTitle(
"Number of channel-LSs\b");
334 H_NumBadChanDepth[
test][sub][
k]->SetMarkerColor(4);
335 H_NumBadChanDepth[
test][sub][
k]->SetLineColor(0);
337 H_NumBadChanDepth[
test][sub][
k]->SetMinimum(0.8);
338 H_NumBadChanDepth[
test][sub][
k]->Draw(
"Error");
342 cHB->Print(
"H_NBCMNHB.png");
346 cHE->Print(
"H_NBCMNHE.png");
350 cONE->Print(
"H_NBCMNHO.png");
354 cHB->Print(
"H_NBCMNHF.png");
361 cHB->Print(
"H_ADCamplHB.png");
365 cHE->Print(
"H_ADCamplHE.png");
369 cONE->Print(
"H_ADCamplHO.png");
373 cHB->Print(
"H_ADCamplHF.png");
379 cHB->Print(
"H_WidthHB.png");
383 cHE->Print(
"H_WidthHE.png");
387 cONE->Print(
"H_WidthHO.png");
391 cHB->Print(
"H_WidthHF.png");
397 cHB->Print(
"H_RatioHB.png");
401 cHE->Print(
"H_RatioHE.png");
405 cONE->Print(
"H_RatioHO.png");
409 cHB->Print(
"H_RatioHF.png");
415 cHB->Print(
"H_TmeanHB.png");
419 cHE->Print(
"H_TmeanHE.png");
423 cONE->Print(
"H_TmeanHO.png");
427 cHB->Print(
"H_TmeanHF.png");
433 cHB->Print(
"H_TmaxHB.png");
437 cHE->Print(
"H_TmaxHE.png");
441 cONE->Print(
"H_TmaxHO.png");
445 cHB->Print(
"H_TmaxHF.png");
452 gStyle->SetOptStat(0);
458 TH2F *MapNumBadChanDepth[7][5][5];
459 TH2F *MapNumChanDepth[7][5][5];
460 TH2F *MapNumBadChanFull[7];
461 TH2F *MapNumChanFull[7];
467 MapNumBadChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HB");
468 MapNumBadChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HB");
470 MapNumBadChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HE");
471 MapNumBadChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HE");
472 MapNumBadChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HE");
474 MapNumBadChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HO");
476 MapNumBadChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HF");
477 MapNumBadChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HF");
479 MapNumBadChanFull[0] = (TH2F *)MapNumBadChanDepth[0][1][1]->Clone();
481 MapNumChanDepth[0][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HB");
482 MapNumChanDepth[0][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HB");
484 MapNumChanDepth[0][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HE");
485 MapNumChanDepth[0][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HE");
486 MapNumChanDepth[0][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HE");
488 MapNumChanDepth[0][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HO");
490 MapNumChanDepth[0][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HF");
491 MapNumChanDepth[0][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HF");
493 MapNumChanFull[0] = (TH2F *)MapNumChanDepth[0][1][1]->Clone();
499 MapNumBadChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS1");
500 MapNumBadChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS2");
502 MapNumBadChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS3");
503 MapNumBadChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS4");
504 MapNumBadChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS5");
506 MapNumBadChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS8");
508 MapNumBadChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS6");
509 MapNumBadChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2DsumADCAmplLS7");
511 MapNumBadChanFull[1] = (TH2F *)MapNumBadChanDepth[1][1][1]->Clone();
513 MapNumChanDepth[1][1][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS1");
514 MapNumChanDepth[1][1][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS2");
516 MapNumChanDepth[1][2][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS3");
517 MapNumChanDepth[1][2][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS4");
518 MapNumChanDepth[1][2][3] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS5");
520 MapNumChanDepth[1][3][4] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS8");
522 MapNumChanDepth[1][4][1] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS6");
523 MapNumChanDepth[1][4][2] = (TH2F *)hfile->Get(
"h_2D0sumADCAmplLS7");
525 MapNumChanFull[1] = (TH2F *)MapNumChanDepth[1][1][1]->Clone();
531 MapNumBadChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS1");
532 MapNumBadChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS2");
534 MapNumBadChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS3");
535 MapNumBadChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS4");
536 MapNumBadChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS5");
538 MapNumBadChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS8");
540 MapNumBadChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS6");
541 MapNumBadChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplitudeLS7");
543 MapNumBadChanFull[2] = (TH2F *)MapNumBadChanDepth[2][1][1]->Clone();
545 MapNumChanDepth[2][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS1");
546 MapNumChanDepth[2][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS2");
548 MapNumChanDepth[2][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS3");
549 MapNumChanDepth[2][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS4");
550 MapNumChanDepth[2][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS5");
552 MapNumChanDepth[2][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS8");
554 MapNumChanDepth[2][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS6");
555 MapNumChanDepth[2][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplitudeLS7");
557 MapNumChanFull[2] = (TH2F *)MapNumChanDepth[2][1][1]->Clone();
563 MapNumBadChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS1");
564 MapNumBadChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS2");
566 MapNumBadChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS3");
567 MapNumBadChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS4");
568 MapNumBadChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2DsumAmplLS5");
570 MapNumBadChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2DsumAmplLS8");
572 MapNumBadChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2DsumAmplLS6");
573 MapNumBadChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2DsumAmplLS7");
575 MapNumBadChanFull[3] = (TH2F *)MapNumBadChanDepth[3][1][1]->Clone();
577 MapNumChanDepth[3][1][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS1");
578 MapNumChanDepth[3][1][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS2");
580 MapNumChanDepth[3][2][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS3");
581 MapNumChanDepth[3][2][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS4");
582 MapNumChanDepth[3][2][3] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS5");
584 MapNumChanDepth[3][3][4] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS8");
586 MapNumChanDepth[3][4][1] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS6");
587 MapNumChanDepth[3][4][2] = (TH2F *)hfile->Get(
"h_2D0sumAmplLS7");
589 MapNumChanFull[3] = (TH2F *)MapNumChanDepth[3][1][1]->Clone();
595 MapNumBadChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS1");
596 MapNumBadChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS2");
598 MapNumBadChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS3");
599 MapNumBadChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS4");
600 MapNumBadChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS5");
602 MapNumBadChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS8");
604 MapNumBadChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS6");
605 MapNumBadChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmeanALS7");
607 MapNumBadChanFull[4] = (TH2F *)MapNumBadChanDepth[4][1][1]->Clone();
609 MapNumChanDepth[4][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS1");
610 MapNumChanDepth[4][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS2");
612 MapNumChanDepth[4][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS3");
613 MapNumChanDepth[4][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS4");
614 MapNumChanDepth[4][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS5");
616 MapNumChanDepth[4][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS8");
618 MapNumChanDepth[4][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS6");
619 MapNumChanDepth[4][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmeanALS7");
621 MapNumChanFull[4] = (TH2F *)MapNumChanDepth[4][1][1]->Clone();
627 MapNumBadChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS1");
628 MapNumBadChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS2");
630 MapNumBadChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS3");
631 MapNumBadChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS4");
632 MapNumBadChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS5");
634 MapNumBadChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS8");
636 MapNumBadChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS6");
637 MapNumBadChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2DsumTSmaxALS7");
639 MapNumBadChanFull[5] = (TH2F *)MapNumBadChanDepth[5][1][1]->Clone();
641 MapNumChanDepth[5][1][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS1");
642 MapNumChanDepth[5][1][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS2");
644 MapNumChanDepth[5][2][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS3");
645 MapNumChanDepth[5][2][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS4");
646 MapNumChanDepth[5][2][3] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS5");
648 MapNumChanDepth[5][3][4] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS8");
650 MapNumChanDepth[5][4][1] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS6");
651 MapNumChanDepth[5][4][2] = (TH2F *)hfile->Get(
"h_2D0sumTSmaxALS7");
653 MapNumChanFull[5] = (TH2F *)MapNumChanDepth[5][1][1]->Clone();
656 for (
int sub = 1; sub <= 4; sub++) {
665 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
674 MapNumBadChanDepth[
test][sub][
k]->Divide(
675 MapNumBadChanDepth[
test][sub][
k], MapNumChanDepth[
test][sub][
k], 1, 1,
"B");
677 for (
int x = 1; x <= MapNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
678 for (
int y = 1; y <= MapNumBadChanFull[
test]->GetYaxis()->GetNbins(); y++) {
679 double ccc1 = MapNumBadChanDepth[
test][sub][
k]->GetBinContent(x, y);
680 MapNumBadChanFull[
test]->SetBinContent(x, y, MapNumBadChanFull[
test]->GetBinContent(x, y) + ccc1);
685 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
687 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
689 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
691 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
695 MapNumBadChanDepth[
test][sub][
k]->SetXTitle(
"#eta \b");
696 MapNumBadChanDepth[
test][sub][
k]->SetYTitle(
"#phi \b");
697 MapNumBadChanDepth[
test][sub][
k]->SetZTitle(
"Average estimator \b");
698 MapNumBadChanDepth[
test][sub][
k]->SetTitleOffset(0.75,
"Z");
699 MapNumBadChanDepth[
test][sub][
k]->Draw(
"COLZ");
700 MapNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
705 cHB->Print(
"MapCapIdErrorHB.png");
709 cHE->Print(
"MapCapIdErrorHE.png");
713 cONE->Print(
"MapCapIdErrorHO.png");
717 cHB->Print(
"MapCapIdErrorHF.png");
723 cHB->Print(
"MapADCamplHB.png");
727 cHE->Print(
"MapADCamplHE.png");
731 cONE->Print(
"MapADCamplHO.png");
735 cHB->Print(
"MapADCamplHF.png");
741 cHB->Print(
"MapWidthHB.png");
745 cHE->Print(
"MapWidthHE.png");
749 cONE->Print(
"MapWidthHO.png");
753 cHB->Print(
"MapWidthHF.png");
759 cHB->Print(
"MapRatioHB.png");
763 cHE->Print(
"MapRatioHE.png");
767 cONE->Print(
"MapRatioHO.png");
771 cHB->Print(
"MapRatioHF.png");
777 cHB->Print(
"MapTmeanHB.png");
781 cHE->Print(
"MapTmeanHE.png");
785 cONE->Print(
"MapTmeanHO.png");
789 cHB->Print(
"MapTmeanHF.png");
795 cHB->Print(
"MapTmaxHB.png");
799 cHE->Print(
"MapTmaxHE.png");
803 cONE->Print(
"MapTmaxHO.png");
807 cHB->Print(
"MapTmaxHF.png");
817 MapNumBadChanFull[
test]->SetTitle(
"All subdetectors\b");
818 MapNumBadChanFull[
test]->SetXTitle(
"#eta \b");
819 MapNumBadChanFull[
test]->SetYTitle(
"#phi \b");
821 MapNumBadChanFull[
test]->SetZTitle(
"Average Nbcs \b");
823 MapNumBadChanFull[
test]->SetZTitle(
"Average estimator \b");
825 MapNumBadChanFull[
test]->SetTitleOffset(0.75,
"Z");
826 MapNumBadChanFull[
test]->Draw(
"COLZ");
827 MapNumBadChanFull[
test]->GetYaxis()->SetRangeUser(0, 72.);
830 cONE->Print(
"MapCapIdError.png");
834 cONE->Print(
"MapADCAmpl.png");
838 cONE->Print(
"MapWidth.png");
842 cONE->Print(
"MapRatio.png");
846 cONE->Print(
"MapTmean.png");
850 cONE->Print(
"MapTmax.png");
860 TH1F *HistNumBadChanDepth[7][5][8];
861 TH1F *HistCutNumBadChanDepth[7][5][8];
862 TH1F *HistNumChanDepth[7][5][8];
868 TH1F *HistNumBadChanFull[7];
869 TH1F *HistNumChanFull[7];
875 HistNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
876 HistNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
878 HistNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
879 HistNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
880 HistNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
882 HistNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
884 HistNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
885 HistNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
887 HistNumBadChanFull[0] = (TH1F *)HistNumBadChanDepth[0][1][1]->Clone();
889 HistCutNumBadChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HB");
890 HistCutNumBadChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HB");
892 HistCutNumBadChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HE");
893 HistCutNumBadChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HE");
894 HistCutNumBadChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth3_HE");
896 HistCutNumBadChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth4_HO");
898 HistCutNumBadChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth1_HF");
899 HistCutNumBadChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runnbadchannels_depth2_HF");
901 HistNumChanDepth[0][1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
902 HistNumChanDepth[0][1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
904 HistNumChanDepth[0][2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
905 HistNumChanDepth[0][2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
906 HistNumChanDepth[0][2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
908 HistNumChanDepth[0][3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
910 HistNumChanDepth[0][4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
911 HistNumChanDepth[0][4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
913 HistNumChanFull[0] = (TH1F *)HistNumChanDepth[0][1][1]->Clone();
921 HistNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS1");
922 HistNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS2");
924 HistNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth3HBu");
925 HistNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HBu");
928 HistNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS3");
929 HistNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS4");
930 HistNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS5");
932 HistNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth4HEu");
933 HistNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth5HEu");
934 HistNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth6HEu");
935 HistNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumADCAmplperLSdepth7HEu");
938 HistNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS8");
941 HistNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6");
942 HistNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7");
944 HistNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS6u");
945 HistNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumADCAmplperLS7u");
948 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
952 HistCutNumBadChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS1");
953 HistCutNumBadChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS2");
955 HistCutNumBadChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth3HBu");
956 HistCutNumBadChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HBu");
959 HistCutNumBadChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS3");
960 HistCutNumBadChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS4");
961 HistCutNumBadChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS5");
963 HistCutNumBadChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth4HEu");
964 HistCutNumBadChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth5HEu");
965 HistCutNumBadChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth6HEu");
966 HistCutNumBadChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLSdepth7HEu");
969 HistCutNumBadChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS8");
972 HistCutNumBadChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6");
973 HistCutNumBadChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7");
975 HistCutNumBadChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS6u");
976 HistCutNumBadChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sumCutADCAmplperLS7u");
980 HistNumChanDepth[1][1][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS1");
981 HistNumChanDepth[1][1][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS2");
983 HistNumChanDepth[1][1][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth3HBu");
984 HistNumChanDepth[1][1][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HBu");
987 HistNumChanDepth[1][2][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS3");
988 HistNumChanDepth[1][2][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS4");
989 HistNumChanDepth[1][2][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS5");
991 HistNumChanDepth[1][2][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth4HEu");
992 HistNumChanDepth[1][2][5] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth5HEu");
993 HistNumChanDepth[1][2][6] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth6HEu");
994 HistNumChanDepth[1][2][7] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLSdepth7HEu");
997 HistNumChanDepth[1][3][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS8");
1000 HistNumChanDepth[1][4][1] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6");
1001 HistNumChanDepth[1][4][2] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7");
1003 HistNumChanDepth[1][4][3] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS6u");
1004 HistNumChanDepth[1][4][4] = (TH1F *)hfile->Get(
"h_sum0ADCAmplperLS7u");
1007 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1009 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1015 HistNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS1");
1016 HistNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS2");
1018 HistNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS3");
1019 HistNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS4");
1020 HistNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS5");
1022 HistNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS8");
1024 HistNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS6");
1025 HistNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumAmplitudeperLS7");
1027 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1029 HistCutNumBadChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS1");
1030 HistCutNumBadChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS2");
1032 HistCutNumBadChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS3");
1033 HistCutNumBadChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS4");
1034 HistCutNumBadChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS5");
1036 HistCutNumBadChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS8");
1038 HistCutNumBadChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS6");
1039 HistCutNumBadChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplitudeperLS7");
1041 HistNumChanDepth[2][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS1");
1042 HistNumChanDepth[2][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS2");
1044 HistNumChanDepth[2][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS3");
1045 HistNumChanDepth[2][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS4");
1046 HistNumChanDepth[2][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS5");
1048 HistNumChanDepth[2][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS8");
1050 HistNumChanDepth[2][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS6");
1051 HistNumChanDepth[2][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplitudeperLS7");
1053 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1058 HistNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS1");
1059 HistNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS2");
1061 HistNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS3");
1062 HistNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS4");
1063 HistNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumAmplperLS5");
1065 HistNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumAmplperLS8");
1067 HistNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumAmplperLS6");
1068 HistNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumAmplperLS7");
1070 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1072 HistCutNumBadChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS1");
1073 HistCutNumBadChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS2");
1075 HistCutNumBadChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS3");
1076 HistCutNumBadChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS4");
1077 HistCutNumBadChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS5");
1079 HistCutNumBadChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS8");
1081 HistCutNumBadChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS6");
1082 HistCutNumBadChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sumCutAmplperLS7");
1084 HistNumChanDepth[3][1][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS1");
1085 HistNumChanDepth[3][1][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS2");
1087 HistNumChanDepth[3][2][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS3");
1088 HistNumChanDepth[3][2][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS4");
1089 HistNumChanDepth[3][2][3] = (TH1F *)hfile->Get(
"h_sum0AmplperLS5");
1091 HistNumChanDepth[3][3][4] = (TH1F *)hfile->Get(
"h_sum0AmplperLS8");
1093 HistNumChanDepth[3][4][1] = (TH1F *)hfile->Get(
"h_sum0AmplperLS6");
1094 HistNumChanDepth[3][4][2] = (TH1F *)hfile->Get(
"h_sum0AmplperLS7");
1096 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1101 HistNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS1");
1102 HistNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS2");
1104 HistNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS3");
1105 HistNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS4");
1106 HistNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS5");
1108 HistNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS8");
1110 HistNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS6");
1111 HistNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumTSmeanAperLS7");
1113 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1115 HistCutNumBadChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS1");
1116 HistCutNumBadChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS2");
1118 HistCutNumBadChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS3");
1119 HistCutNumBadChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS4");
1120 HistCutNumBadChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS5");
1122 HistCutNumBadChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS8");
1124 HistCutNumBadChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS6");
1125 HistCutNumBadChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmeanAperLS7");
1127 HistNumChanDepth[4][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS1");
1128 HistNumChanDepth[4][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS2");
1130 HistNumChanDepth[4][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS3");
1131 HistNumChanDepth[4][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS4");
1132 HistNumChanDepth[4][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS5");
1134 HistNumChanDepth[4][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS8");
1136 HistNumChanDepth[4][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS6");
1137 HistNumChanDepth[4][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmeanAperLS7");
1139 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1144 HistNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS1");
1145 HistNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS2");
1147 HistNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS3");
1148 HistNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS4");
1149 HistNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS5");
1151 HistNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS8");
1153 HistNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS6");
1154 HistNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumTSmaxAperLS7");
1156 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1158 HistCutNumBadChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS1");
1159 HistCutNumBadChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS2");
1161 HistCutNumBadChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS3");
1162 HistCutNumBadChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS4");
1163 HistCutNumBadChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS5");
1165 HistCutNumBadChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS8");
1167 HistCutNumBadChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS6");
1168 HistCutNumBadChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sumCutTSmaxAperLS7");
1170 HistNumChanDepth[5][1][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS1");
1171 HistNumChanDepth[5][1][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS2");
1173 HistNumChanDepth[5][2][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS3");
1174 HistNumChanDepth[5][2][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS4");
1175 HistNumChanDepth[5][2][3] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS5");
1177 HistNumChanDepth[5][3][4] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS8");
1179 HistNumChanDepth[5][4][1] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS6");
1180 HistNumChanDepth[5][4][2] = (TH1F *)hfile->Get(
"h_sum0TSmaxAperLS7");
1182 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1185 for (
int sub = 1; sub <= 4; sub++) {
1186 if (sub == 1 &&
test != 1)
1188 if (sub == 1 &&
test == 1) {
1190 cFour1->Divide(2, 2);
1192 if (sub == 2 &&
test != 1)
1194 if (sub == 2 &&
test == 1) {
1196 cNine->Divide(3, 3);
1200 if (sub == 4 &&
test != 1)
1202 if (sub == 4 &&
test == 1) {
1204 cFour1->Divide(2, 2);
1207 int kkkkkkmax = k_max[sub];
1209 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
1210 kkkkkkmax = k_maxupgrade[sub];
1211 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1212 if (sub == 1 &&
test != 1)
1214 if (sub == 1 &&
test == 1)
1216 if (sub == 2 &&
test != 1)
1218 if (sub == 2 &&
test == 1)
1222 if (sub == 4 &&
test != 1)
1224 if (sub == 4 &&
test == 1)
1230 if (sub == 1 &&
k == 1) {
1233 for (
int x = 1; x <= HistNumBadChanFull[
test]->GetXaxis()->GetNbins(); x++) {
1234 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1235 HistNumBadChanFull[
test]->SetBinContent(x, HistNumBadChanFull[
test]->GetBinContent(x) + ccc1);
1236 double ccc2 = HistNumChanDepth[
test][sub][
k]->GetBinContent(x);
1237 HistNumChanFull[
test]->SetBinContent(x, HistNumChanFull[
test]->GetBinContent(x) + ccc2);
1242 HistNumBadChanDepth[
test][sub][
k]->Divide(
1243 HistNumBadChanDepth[
test][sub][
k], HistNumChanDepth[
test][sub][
k], 1, 1,
"B");
1245 for (
int x = 1; x <= HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->GetNbins(); x++) {
1246 HistNumBadChanDepth[
test][sub][
k]->SetBinError(
float(x), 0.01);
1251 HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1254 HistNumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
1255 HistNumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.4);
1256 HistNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetLabelSize(0.04);
1258 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
1260 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
1262 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
1264 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
1266 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 5\b");
1268 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 6\b");
1270 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 7\b");
1271 HistNumBadChanDepth[
test][sub][
k]->SetXTitle(
"LS \b");
1273 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"<Number of bad channels> \b");
1275 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"Averaged estimator \b");
1276 HistNumBadChanDepth[
test][sub][
k]->SetMarkerColor(2);
1277 HistNumBadChanDepth[
test][sub][
k]->SetLineColor(0);
1283 HistNumBadChanDepth[
test][sub][
k]->Draw(
"Error");
1321 if (sub == 1 &&
test != 1) {
1324 if (sub == 1 &&
test == 1) {
1327 if (sub == 2 &&
test != 1) {
1330 if (sub == 2 &&
test == 1) {
1336 if (sub == 4 &&
test != 1) {
1339 if (sub == 4 &&
test == 1) {
1347 cHE->Print(
"HistNBCMNHB.png");
1351 cHE->Print(
"HistNBCMNHE.png");
1355 cHB->Print(
"HistNBCMNHO.png");
1359 cHE->Print(
"HistNBCMNHF.png");
1366 cFour1->Print(
"HistADCamplHB.png");
1370 cNine->Print(
"HistADCamplHE.png");
1374 cHB->Print(
"HistADCamplHO.png");
1378 cFour1->Print(
"HistADCamplHF.png");
1384 cHE->Print(
"HistWidthHB.png");
1388 cHE->Print(
"HistWidthHE.png");
1392 cHB->Print(
"HistWidthHO.png");
1396 cHE->Print(
"HistWidthHF.png");
1402 cHE->Print(
"HistRatioHB.png");
1406 cHE->Print(
"HistRatioHE.png");
1410 cHB->Print(
"HistRatioHO.png");
1414 cHE->Print(
"HistRatioHF.png");
1420 cHE->Print(
"HistTmeanHB.png");
1424 cHE->Print(
"HistTmeanHE.png");
1428 cHB->Print(
"HistTmeanHO.png");
1432 cHE->Print(
"HistTmeanHF.png");
1438 cHE->Print(
"HistTmaxHB.png");
1442 cHE->Print(
"HistTmaxHE.png");
1446 cHB->Print(
"HistTmaxHO.png");
1450 cHE->Print(
"HistTmaxHF.png");
1457 for (
int x = 1; x <= HistNumChanFull[6]->GetXaxis()->GetNbins(); x++) {
1458 HistNumChanFull[6]->SetBinContent(x, 0.0);
1459 int depthsubcount = 0.;
1460 for (
int sub = 1; sub <= 4; sub++) {
1461 int kkkkkkmax = k_max[sub];
1462 if (sub == 4 || sub == 2 || sub == 1)
1463 kkkkkkmax = k_maxupgrade[sub];
1465 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1469 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(x);
1470 HistNumChanFull[6]->SetBinContent(x, HistNumChanFull[6]->GetBinContent(x) + ccc1);
1473 if (depthsubcount > 0.) {
1474 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / depthsubcount);
1476 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / 8.);
1488 HistNumBadChanFull[
test]->Divide(HistNumBadChanFull[
test], HistNumChanFull[
test], 1, 1,
"B");
1489 TH1F *kfitq =
new TH1F(
"kfitq",
"", MaxLum, 1., MaxLum + 1.);
1490 int nx = kfitq->GetXaxis()->GetNbins();
1491 for (
int i = 1;
i <= nx;
i++) {
1492 double ccc1 = HistNumBadChanFull[
test]->GetBinContent(
i);
1494 kfitq->Fill(
float(
i), ccc1);
1495 kfitq->SetBinError(
float(
i), 0.01);
1498 kfitq->SetMarkerStyle(20);
1499 kfitq->SetMarkerSize(0.4);
1500 kfitq->GetYaxis()->SetLabelSize(0.04);
1502 kfitq->SetTitle(
"Average Nbch for whole Hcal \b");
1504 kfitq->SetTitle(
"Averaged estimator for whole Hcal \b");
1505 kfitq->SetXTitle(
"LS \b");
1507 kfitq->SetYTitle(
"<Number of bad channels> \b");
1509 kfitq->SetYTitle(
"Averaged estimator \b");
1510 kfitq->SetMarkerColor(2);
1511 kfitq->SetLineColor(0);
1513 kfitq->Draw(
"Error");
1533 TH1F *lpuio =
new TH1F(
"lpuio",
"", MaxLum, 1., MaxLum + 1.);
1534 int nx = lpuio->GetXaxis()->GetNbins();
1535 for (
int i = 1;
i <= nx;
i++) {
1536 double ccc1 = HistNumChanFull[6]->GetBinContent(
i);
1538 lpuio->Fill(
float(
i), ccc1);
1539 lpuio->SetBinError(
float(
i), 0.01);
1542 lpuio->SetMarkerStyle(20);
1543 lpuio->SetMarkerSize(0.4);
1544 lpuio->GetYaxis()->SetLabelSize(0.04);
1545 lpuio->SetTitle(
"Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1546 lpuio->SetXTitle(
"LS \b");
1547 lpuio->SetYTitle(
"Mean of Averaged estimator \b");
1548 lpuio->SetMarkerColor(2);
1549 lpuio->SetLineColor(0);
1551 lpuio->Draw(
"Error");
1554 cHB->Print(
"HistCapID.png");
1558 cHE->Print(
"HistADCAmpl.png");
1562 cHB->Print(
"HistWidth.png");
1566 cHB->Print(
"HistRatio.png");
1570 cHB->Print(
"HistTmean.png");
1574 cHB->Print(
"HistTmax.png");
1588 TH1F *HistAbnormNumBadChanDepth[5][5];
1594 HistAbnormNumBadChanDepth[1][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HB");
1595 HistAbnormNumBadChanDepth[1][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HB");
1596 HistAbnormNumBadChanDepth[2][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HE");
1597 HistAbnormNumBadChanDepth[2][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HE");
1598 HistAbnormNumBadChanDepth[2][3] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth3_HE");
1599 HistAbnormNumBadChanDepth[3][4] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth4_HO");
1600 HistAbnormNumBadChanDepth[4][1] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth1_HF");
1601 HistAbnormNumBadChanDepth[4][2] = (TH1F *)hfile->Get(
"h_runnbadchannelsC_depth2_HF");
1603 for (
int sub = 1; sub <= 4; sub++) {
1612 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1624 HistAbnormNumBadChanDepth[sub][
k]->Divide(
1625 HistAbnormNumBadChanDepth[sub][
k], HistNumChanDepth[0][sub][
k], 1, 1,
"B");
1627 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 1\b");
1629 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 2\b");
1631 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 3\b");
1633 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 4\b");
1634 HistAbnormNumBadChanDepth[sub][
k]->SetXTitle(
"LS \b");
1635 HistAbnormNumBadChanDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1636 if (MaxLum <= 1000) {
1637 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerStyle(20);
1638 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerSize(0.5);
1639 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerColor(1);
1640 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(0);
1641 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1642 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"P");
1644 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(1);
1645 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1646 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"L");
1650 cHB->Print(
"Hist_CAPID_Abnorm_HB.png");
1654 cHE->Print(
"Hist_CAPID_Abnorm_HE.png");
1658 cONE->Print(
"Hist_CAPID_Abnorm_HO.png");
1662 cHB->Print(
"Hist_CAPID_Abnorm_HF.png");
1671 TH1F *HistPortBadEventsDepth[5][5];
1673 HistPortBadEventsDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HB");
1674 HistPortBadEventsDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HB");
1675 HistPortBadEventsDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HE");
1676 HistPortBadEventsDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HE");
1677 HistPortBadEventsDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrateC_depth3_HE");
1678 HistPortBadEventsDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrateC_depth4_HO");
1679 HistPortBadEventsDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrateC_depth1_HF");
1680 HistPortBadEventsDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrateC_depth2_HF");
1682 TH1F *HistNumRateDepth[5][5];
1683 HistNumRateDepth[1][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HB");
1684 HistNumRateDepth[1][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HB");
1685 HistNumRateDepth[2][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HE");
1686 HistNumRateDepth[2][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HE");
1687 HistNumRateDepth[2][3] = (TH1F *)hfile->Get(
"h_runbadrate0_depth3_HE");
1688 HistNumRateDepth[3][4] = (TH1F *)hfile->Get(
"h_runbadrate0_depth4_HO");
1689 HistNumRateDepth[4][1] = (TH1F *)hfile->Get(
"h_runbadrate0_depth1_HF");
1690 HistNumRateDepth[4][2] = (TH1F *)hfile->Get(
"h_runbadrate0_depth2_HF");
1692 for (
int sub = 1; sub <= 4; sub++) {
1701 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1713 HistPortBadEventsDepth[sub][
k]->Divide(HistPortBadEventsDepth[sub][
k], HistNumRateDepth[sub][
k], 1, 1,
"B");
1716 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1718 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1720 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1722 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1723 HistPortBadEventsDepth[sub][
k]->SetXTitle(
"LS \b");
1724 HistPortBadEventsDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1725 if (MaxLum <= 1000) {
1726 HistPortBadEventsDepth[sub][
k]->SetMarkerStyle(20);
1727 HistPortBadEventsDepth[sub][
k]->SetMarkerSize(0.5);
1728 HistPortBadEventsDepth[sub][
k]->SetMarkerColor(1);
1729 HistPortBadEventsDepth[sub][
k]->SetLineColor(0);
1730 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1731 HistPortBadEventsDepth[sub][
k]->Draw(
"P");
1733 HistPortBadEventsDepth[sub][
k]->SetLineColor(1);
1734 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1735 HistPortBadEventsDepth[sub][
k]->Draw(
"L");
1739 cHB->Print(
"HistPortHB.png");
1743 cHE->Print(
"HistPortHE.png");
1747 cONE->Print(
"HistPortHO.png");
1751 cHB->Print(
"HistPortHF.png");
1762 TH1F *HistNBadChsDepth[5][5];
1764 HistNBadChsDepth[1][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HB");
1765 HistNBadChsDepth[1][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HB");
1766 HistNBadChsDepth[2][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HE");
1767 HistNBadChsDepth[2][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HE");
1768 HistNBadChsDepth[2][3] = (TH1F *)hfile->Get(
"h_nbadchannels_depth3_HE");
1769 HistNBadChsDepth[3][4] = (TH1F *)hfile->Get(
"h_nbadchannels_depth4_HO");
1770 HistNBadChsDepth[4][1] = (TH1F *)hfile->Get(
"h_nbadchannels_depth1_HF");
1771 HistNBadChsDepth[4][2] = (TH1F *)hfile->Get(
"h_nbadchannels_depth2_HF");
1773 for (
int sub = 1; sub <= 4; sub++) {
1782 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1796 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1798 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1800 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1802 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1803 HistNBadChsDepth[sub][
k]->SetXTitle(
"Number of bad channels\b");
1804 HistNBadChsDepth[sub][
k]->SetYTitle(
"Number of events\b");
1809 HistNBadChsDepth[sub][
k]->Draw(
"");
1812 cHB->Print(
"HistNBadChsHB.png");
1816 cHE->Print(
"HistNBadChsHE.png");
1820 cONE->Print(
"HistNBadChsHO.png");
1824 cHB->Print(
"HistNBadChsHF.png");
1835 int flagErrAB_HB[2];
1836 flagErrAB_HB[0] = -1;
1837 flagErrAB_HB[1] = -1;
1838 double avedelta_HB = 0.;
1839 int lastLumiBin_HB = -1;
1840 int LSofFirstErrB_HB = -1;
1842 const int specCountA = 4;
1843 const int specColors[specCountA] = {1, 2, 3, 4};
1844 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS1_P1",
"h_sum0ADCAmplperLS1_P1"},
1845 {
"h_sumADCAmplperLS1_P2",
"h_sum0ADCAmplperLS1_P2"},
1846 {
"h_sumADCAmplperLS1_M1",
"h_sum0ADCAmplperLS1_M1"},
1847 {
"h_sumADCAmplperLS1_M2",
"h_sum0ADCAmplperLS1_M2"}};
1849 std::vector<TH1F *> hV;
1850 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
1857 for (
int i = 0;
i < specCountA;
i++) {
1859 std::cout <<
"debugger: errA_HB : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
1861 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
1862 TH1F *h0 = (TH1F *)hfile->Get(hnames[
i][1]);
1864 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1865 ptext->AddText(
"Missing histo");
1867 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
1868 ptext->AddText(hnames[
i][0]);
1871 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
1872 ptext->AddText(hnames[
i][1]);
1877 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
1878 hERT1orig->Divide(h1, h0, 1, 1,
"B");
1880 if ((lastLumiBin_HB < 0) && (
i == 0)) {
1881 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1882 if (hERT1orig->GetBinContent(ibin) == 0)
1883 lastLumiBin_HB = ibin;
1887 lastLumiBin_HB += 3;
1888 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1889 lastLumiBin_HB = -1;
1892 if (lastLumiBin_HB > 1) {
1893 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HB)) {
1894 std::cout <<
"code failed" << std::endl;
1900 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1901 hV.push_back(hERT1);
1902 hERT1->SetMarkerStyle(20);
1903 hERT1->SetMarkerSize(0.4);
1904 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1905 hERT1->SetMarkerColor(specColors[
i]);
1906 hERT1->SetLineColor(0);
1910 if (hERT1 != hERT1orig)
1913 hs->Draw(
"LPE1 nostack");
1915 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1916 hs->Draw(
"LPE1 nostack");
1922 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
1924 if (
int(hV.size()) == specCountA) {
1925 flagErrAB_HB[0] = 0;
1926 double sumdelta = 0.;
1928 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1930 double maxdelta = 0.;
1931 for (
unsigned int i = 0;
i < hV.size();
i++) {
1932 const TH1F *
hi = hV[
i];
1933 for (
unsigned int j = 1;
j < hV.size();
j++) {
1934 const TH1F *hj = hV[
j];
1935 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1936 if (
delta > maxdelta)
1940 if (maxdelta > 0.) {
1941 diff->Fill(maxdelta);
1942 sumdelta += maxdelta;
1947 avedelta_HB = sumdelta / nnndelta;
1948 std::cout <<
"******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1949 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1950 flagErrAB_HB[0] = 1;
1953 diff->SetMarkerStyle(20);
1954 diff->SetMarkerSize(0.8);
1955 diff->SetXTitle(
"max difference \b");
1956 diff->SetMarkerColor(2);
1957 diff->SetLineColor(0);
1960 diff->Draw(
"Error");
1963 cHB->Print(
"HistErrA_HB.png");
1970 for (
unsigned int i = 0;
i < hV.size();
i++)
1977 const int specCountB = 4;
1978 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS1",
"h_2D0sumErrorBLS1"},
1979 {
"h_sumErrorBperLS1",
"h_sum0ErrorBperLS1"},
1980 {
"h_2DsumErrorBLS2",
"h_2D0sumErrorBLS2"},
1981 {
"h_sumErrorBperLS2",
"h_sum0ErrorBperLS2"}};
1988 TH1F *hRate2orig =
NULL;
1989 TH2F *h2Cefz6 =
NULL;
1990 TString hname1 = hnames[2 *
depth - 2][0];
1991 TString hname0 = hnames[2 *
depth - 2][1];
1992 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
1993 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
1995 std::cout <<
"debugger: errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
1996 if (!twod1 || !twod0) {
1997 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1998 ptext->AddText(
"Missing histos");
2000 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2001 ptext->AddText(hname1);
2004 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2005 ptext->AddText(hname0);
2009 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2010 h2Cefz6->SetTitle(Form(
"HB Depth %d \b",
depth));
2011 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2016 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2017 h2Cefz6->SetMarkerStyle(20);
2018 h2Cefz6->SetMarkerSize(0.4);
2020 h2Cefz6->SetXTitle(
"#eta \b");
2021 h2Cefz6->SetYTitle(
"#phi \b");
2022 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HB Depth%d \b",
depth));
2023 h2Cefz6->SetMarkerColor(2);
2024 h2Cefz6->SetLineColor(2);
2025 h2Cefz6->Draw(
"COLZ");
2032 hname1 = hnames[2 *
depth - 1][0];
2033 hname0 = hnames[2 *
depth - 1][1];
2034 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2035 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2037 std::cout <<
"errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2039 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2040 ptext->AddText(
"Missing histo");
2042 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2043 ptext->AddText(hname1);
2046 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2047 ptext->AddText(hname0);
2054 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2055 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2057 TH1F *hRate2 =
NULL;
2058 if (lastLumiBin_HB > 1) {
2059 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HB)) {
2060 std::cout <<
"code failed" << std::endl;
2064 hRate2 = hRate2orig;
2066 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2067 hRate2->SetMarkerStyle(20);
2068 hRate2->SetMarkerSize(0.8);
2070 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b",
depth));
2071 hRate2->SetMarkerColor(2);
2072 hRate2->SetLineColor(0);
2073 hRate2->Draw(
"Error");
2075 if (LSofFirstErrB_HB == -1) {
2076 int nx = hRate2->GetXaxis()->GetNbins();
2077 for (
int i = 1;
i <= nx;
i++) {
2078 double ccc1 = hRate2->GetBinContent(
i);
2080 cout <<
"****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2082 LSofFirstErrB_HB =
i;
2090 if (hRate2 != hRate2orig) {
2092 hRate2orig = hRate2;
2097 cHB->Print(Form(
"HistErrB_HB_%d.png",
depth));
2112 int flagErrAB_HE[2];
2113 flagErrAB_HE[0] = -1;
2114 flagErrAB_HE[1] = -1;
2115 double avedelta_HE = 0.;
2116 int lastLumiBin_HE = -1;
2117 int LSofFirstErrB_HE = -1;
2119 const int specCountA = 4;
2120 const int specColors[specCountA] = {1, 2, 3, 4};
2121 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS3_P1",
"h_sum0ADCAmplperLS3_P1"},
2122 {
"h_sumADCAmplperLS3_P2",
"h_sum0ADCAmplperLS3_P2"},
2123 {
"h_sumADCAmplperLS3_M1",
"h_sum0ADCAmplperLS3_M1"},
2124 {
"h_sumADCAmplperLS3_M2",
"h_sum0ADCAmplperLS3_M2"}};
2126 std::vector<TH1F *> hV;
2127 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2134 for (
int i = 0;
i < specCountA;
i++) {
2136 std::cout <<
"debugger: errA_HE : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2138 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2139 TH1F *h0 = (TH1F *)hfile->Get(hnames[
i][1]);
2141 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2142 ptext->AddText(
"Missing histo");
2144 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2145 ptext->AddText(hnames[
i][0]);
2148 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2149 ptext->AddText(hnames[
i][1]);
2154 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2155 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2157 if ((lastLumiBin_HE < 0) && (
i == 0)) {
2158 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2159 if (hERT1orig->GetBinContent(ibin) == 0)
2160 lastLumiBin_HE = ibin;
2164 lastLumiBin_HE += 3;
2165 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2166 lastLumiBin_HE = -1;
2169 if (lastLumiBin_HE > 1) {
2170 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HE)) {
2171 std::cout <<
"code failed" << std::endl;
2177 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2178 hV.push_back(hERT1);
2179 hERT1->SetMarkerStyle(20);
2180 hERT1->SetMarkerSize(0.4);
2181 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2182 hERT1->SetMarkerColor(specColors[
i]);
2183 hERT1->SetLineColor(0);
2187 if (hERT1 != hERT1orig)
2190 hs->Draw(
"LPE1 nostack");
2192 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2193 hs->Draw(
"LPE1 nostack");
2199 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2201 if (
int(hV.size()) == specCountA) {
2202 flagErrAB_HE[0] = 0;
2203 double sumdelta = 0.;
2205 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2207 double maxdelta = 0.;
2208 for (
unsigned int i = 0;
i < hV.size();
i++) {
2209 const TH1F *
hi = hV[
i];
2210 for (
unsigned int j = 1;
j < hV.size();
j++) {
2211 const TH1F *hj = hV[
j];
2212 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2213 if (
delta > maxdelta)
2217 if (maxdelta > 0.) {
2218 diff->Fill(maxdelta);
2219 sumdelta += maxdelta;
2224 avedelta_HE = sumdelta / nnndelta;
2225 std::cout <<
"******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2226 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2227 flagErrAB_HE[0] = 1;
2230 diff->SetMarkerStyle(20);
2231 diff->SetMarkerSize(0.8);
2232 diff->SetXTitle(
"max difference \b");
2233 diff->SetMarkerColor(2);
2234 diff->SetLineColor(0);
2237 diff->Draw(
"Error");
2240 cHB->Print(
"HistErrA_HE.png");
2247 for (
unsigned int i = 0;
i < hV.size();
i++)
2254 const int specCountB = 6;
2255 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS3",
"h_2D0sumErrorBLS3"},
2256 {
"h_sumErrorBperLS3",
"h_sum0ErrorBperLS3"},
2257 {
"h_2DsumErrorBLS4",
"h_2D0sumErrorBLS4"},
2258 {
"h_sumErrorBperLS4",
"h_sum0ErrorBperLS4"},
2259 {
"h_2DsumErrorBLS5",
"h_2D0sumErrorBLS5"},
2260 {
"h_sumErrorBperLS5",
"h_sum0ErrorBperLS5"}};
2267 TH1F *hRate2orig =
NULL;
2268 TH2F *h2Cefz6 =
NULL;
2269 TString hname1 = hnames[2 *
depth - 2][0];
2270 TString hname0 = hnames[2 *
depth - 2][1];
2271 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2272 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2274 std::cout <<
"debugger: errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2275 if (!twod1 || !twod0) {
2276 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2277 ptext->AddText(
"Missing histos");
2279 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2280 ptext->AddText(hname1);
2283 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2284 ptext->AddText(hname0);
2288 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2289 h2Cefz6->SetTitle(Form(
"HE Depth %d \b",
depth));
2290 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2295 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2296 h2Cefz6->SetMarkerStyle(20);
2297 h2Cefz6->SetMarkerSize(0.4);
2299 h2Cefz6->SetXTitle(
"#eta \b");
2300 h2Cefz6->SetYTitle(
"#phi \b");
2301 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HE Depth%d \b",
depth));
2302 h2Cefz6->SetMarkerColor(2);
2303 h2Cefz6->SetLineColor(2);
2304 h2Cefz6->Draw(
"COLZ");
2311 hname1 = hnames[2 *
depth - 1][0];
2312 hname0 = hnames[2 *
depth - 1][1];
2313 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2314 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2316 std::cout <<
"errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2318 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2319 ptext->AddText(
"Missing histo");
2321 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2322 ptext->AddText(hname1);
2325 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2326 ptext->AddText(hname0);
2333 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2334 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2336 TH1F *hRate2 =
NULL;
2337 if (lastLumiBin_HE > 1) {
2338 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HE)) {
2339 std::cout <<
"code failed" << std::endl;
2343 hRate2 = hRate2orig;
2345 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2346 hRate2->SetMarkerStyle(20);
2347 hRate2->SetMarkerSize(0.8);
2349 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b",
depth));
2350 hRate2->SetMarkerColor(2);
2351 hRate2->SetLineColor(0);
2352 hRate2->Draw(
"Error");
2354 if (LSofFirstErrB_HE == -1) {
2355 int nx = hRate2->GetXaxis()->GetNbins();
2356 for (
int i = 1;
i <= nx;
i++) {
2357 double ccc1 = hRate2->GetBinContent(
i);
2359 cout <<
"****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2361 LSofFirstErrB_HE =
i;
2369 if (hRate2 != hRate2orig) {
2371 hRate2orig = hRate2;
2376 cHB->Print(Form(
"HistErrB_HE_%d.png",
depth));
2391 int flagErrAB_HO[2];
2392 flagErrAB_HO[0] = -1;
2393 flagErrAB_HO[1] = -1;
2394 double avedelta_HO = 0.;
2395 int lastLumiBin_HO = -1;
2396 int LSofFirstErrB_HO = -1;
2398 const int specCountA = 4;
2399 const int specColors[specCountA] = {1, 2, 3, 4};
2400 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS8_P1",
"h_sum0ADCAmplperLS8_P1"},
2401 {
"h_sumADCAmplperLS8_P2",
"h_sum0ADCAmplperLS8_P2"},
2402 {
"h_sumADCAmplperLS8_M1",
"h_sum0ADCAmplperLS8_M1"},
2403 {
"h_sumADCAmplperLS8_M2",
"h_sum0ADCAmplperLS8_M2"}};
2405 std::vector<TH1F *> hV;
2406 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2413 for (
int i = 0;
i < specCountA;
i++) {
2415 std::cout <<
"debugger: errA_HO : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2417 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2418 TH1F *h0 = (TH1F *)hfile->Get(hnames[
i][1]);
2420 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2421 ptext->AddText(
"Missing histo");
2423 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2424 ptext->AddText(hnames[
i][0]);
2427 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2428 ptext->AddText(hnames[
i][1]);
2433 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2434 hoRT1orig->Divide(h1, h0, 1, 1,
"B");
2436 if ((lastLumiBin_HO < 0) && (
i == 0)) {
2437 for (
int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2438 if (hoRT1orig->GetBinContent(ibin) == 0)
2439 lastLumiBin_HO = ibin;
2443 lastLumiBin_HO += 3;
2444 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2445 lastLumiBin_HO = -1;
2448 if (lastLumiBin_HO > 1) {
2449 if (!
copyContents(&hoRT1, Form(
"ERT1_%d",
i),
"", hoRT1orig, lastLumiBin_HO)) {
2450 std::cout <<
"code failed" << std::endl;
2456 hoRT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2457 hV.push_back(hoRT1);
2458 hoRT1->SetMarkerStyle(20);
2459 hoRT1->SetMarkerSize(0.4);
2460 hoRT1->SetXTitle(
"<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2461 hoRT1->SetMarkerColor(specColors[
i]);
2462 hoRT1->SetLineColor(0);
2466 if (hoRT1 != hoRT1orig)
2469 hs->Draw(
"LPE1 nostack");
2471 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2472 hs->Draw(
"LPE1 nostack");
2478 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2480 if (
int(hV.size()) == specCountA) {
2481 flagErrAB_HO[0] = 0;
2482 double sumdelta = 0.;
2484 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2486 double maxdelta = 0.;
2487 for (
unsigned int i = 0;
i < hV.size();
i++) {
2488 const TH1F *
hi = hV[
i];
2489 for (
unsigned int j = 1;
j < hV.size();
j++) {
2490 const TH1F *hj = hV[
j];
2491 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2492 if (
delta > maxdelta)
2496 if (maxdelta > 0.) {
2497 diff->Fill(maxdelta);
2498 sumdelta += maxdelta;
2503 avedelta_HO = sumdelta / nnndelta;
2504 std::cout <<
"******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2505 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2506 flagErrAB_HO[0] = 1;
2509 diff->SetMarkerStyle(20);
2510 diff->SetMarkerSize(0.8);
2511 diff->SetXTitle(
"max difference \b");
2512 diff->SetMarkerColor(2);
2513 diff->SetLineColor(0);
2516 diff->Draw(
"Error");
2519 cHB->Print(
"HistErrA_HO.png");
2526 for (
unsigned int i = 0;
i < hV.size();
i++)
2533 const int specCountB = 2;
2534 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS8",
"h_2D0sumErrorBLS8"},
2535 {
"h_sumErrorBperLS8",
"h_sum0ErrorBperLS8"}};
2542 TH1F *hRate2orig =
NULL;
2543 TH2F *h2Cefz6 =
NULL;
2544 TString hname1 = hnames[2 *
depth - 8][0];
2545 TString hname0 = hnames[2 *
depth - 8][1];
2546 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2547 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2549 std::cout <<
"debugger: errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2550 if (!twod1 || !twod0) {
2551 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2552 ptext->AddText(
"Missing histos");
2554 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2555 ptext->AddText(hname1);
2558 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2559 ptext->AddText(hname0);
2563 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2564 h2Cefz6->SetTitle(Form(
"HO Depth %d \b",
depth));
2565 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2570 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2571 h2Cefz6->SetMarkerStyle(20);
2572 h2Cefz6->SetMarkerSize(0.4);
2574 h2Cefz6->SetXTitle(
"#eta \b");
2575 h2Cefz6->SetYTitle(
"#phi \b");
2576 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HO Depth%d \b",
depth));
2577 h2Cefz6->SetMarkerColor(2);
2578 h2Cefz6->SetLineColor(2);
2579 h2Cefz6->Draw(
"COLZ");
2586 hname1 = hnames[2 *
depth - 7][0];
2587 hname0 = hnames[2 *
depth - 7][1];
2588 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2589 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2591 std::cout <<
"errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2593 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2594 ptext->AddText(
"Missing histo");
2596 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2597 ptext->AddText(hname1);
2600 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2601 ptext->AddText(hname0);
2608 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2609 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2611 TH1F *hRate2 =
NULL;
2612 if (lastLumiBin_HO > 1) {
2613 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HO)) {
2614 std::cout <<
"code failed" << std::endl;
2618 hRate2 = hRate2orig;
2620 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2621 hRate2->SetMarkerStyle(20);
2622 hRate2->SetMarkerSize(0.8);
2624 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b",
depth));
2625 hRate2->SetMarkerColor(2);
2626 hRate2->SetLineColor(0);
2627 hRate2->Draw(
"Error");
2629 if (LSofFirstErrB_HO == -1) {
2630 int nx = hRate2->GetXaxis()->GetNbins();
2631 for (
int i = 1;
i <= nx;
i++) {
2632 double ccc1 = hRate2->GetBinContent(
i);
2634 cout <<
"****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2636 LSofFirstErrB_HO =
i;
2644 if (hRate2 != hRate2orig) {
2646 hRate2orig = hRate2;
2651 cHB->Print(Form(
"HistErrB_HO_%d.png",
depth));
2665 int flagErrAB_HF[2];
2666 flagErrAB_HF[0] = -1;
2667 flagErrAB_HF[1] = -1;
2668 double avedelta_HF = 0.;
2669 int lastLumiBin_HF = -1;
2670 int LSofFirstErrB_HF = -1;
2672 const int specCountA = 4;
2673 const int specColors[specCountA] = {1, 2, 3, 4};
2674 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS6_P1",
"h_sum0ADCAmplperLS6_P1"},
2675 {
"h_sumADCAmplperLS6_P2",
"h_sum0ADCAmplperLS6_P2"},
2676 {
"h_sumADCAmplperLS6_M1",
"h_sum0ADCAmplperLS6_M1"},
2677 {
"h_sumADCAmplperLS6_M2",
"h_sum0ADCAmplperLS6_M2"}};
2679 std::vector<TH1F *> hV;
2680 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS6");
2687 for (
int i = 0;
i < specCountA;
i++) {
2689 std::cout <<
"debugger: errA_HF : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2691 TH1F *h1 = (TH1F *)hfile->Get(hnames[
i][0]);
2692 TH1F *h0 = (TH1F *)hfile->Get(hnames[
i][1]);
2694 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2695 ptext->AddText(
"Missing histo");
2697 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2698 ptext->AddText(hnames[
i][0]);
2701 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2702 ptext->AddText(hnames[
i][1]);
2707 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2708 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2710 if ((lastLumiBin_HF < 0) && (
i == 0)) {
2711 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2712 if (hERT1orig->GetBinContent(ibin) == 0)
2713 lastLumiBin_HF = ibin;
2717 lastLumiBin_HF += 3;
2718 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2719 lastLumiBin_HF = -1;
2722 if (lastLumiBin_HF > 1) {
2723 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HF)) {
2724 std::cout <<
"code failed" << std::endl;
2730 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2731 hV.push_back(hERT1);
2732 hERT1->SetMarkerStyle(20);
2733 hERT1->SetMarkerSize(0.4);
2734 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2735 hERT1->SetMarkerColor(specColors[
i]);
2736 hERT1->SetLineColor(0);
2740 if (hERT1 != hERT1orig)
2743 hs->Draw(
"LPE1 nostack");
2745 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2746 hs->Draw(
"LPE1 nostack");
2752 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2754 if (
int(hV.size()) == specCountA) {
2755 flagErrAB_HF[0] = 0;
2756 double sumdelta = 0.;
2758 std::cout <<
"******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2759 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2761 double maxdelta = 0.;
2762 for (
unsigned int i = 0;
i < hV.size();
i++) {
2763 const TH1F *
hi = hV[
i];
2764 for (
unsigned int j = 1;
j < hV.size();
j++) {
2765 const TH1F *hj = hV[
j];
2766 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2767 if (
delta > maxdelta)
2772 if (maxdelta > 0.) {
2773 diff->Fill(maxdelta);
2774 sumdelta += maxdelta;
2779 avedelta_HF = sumdelta / nnndelta;
2781 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2782 flagErrAB_HF[0] = 1;
2785 diff->SetMarkerStyle(20);
2786 diff->SetMarkerSize(0.8);
2787 diff->SetXTitle(
"max difference \b");
2788 diff->SetMarkerColor(2);
2789 diff->SetLineColor(0);
2792 diff->Draw(
"Error");
2795 cHB->Print(
"HistErrA_HF.png");
2801 for (
unsigned int i = 0;
i < hV.size();
i++)
2807 const int specCountB = 4;
2808 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS6",
"h_2D0sumErrorBLS6"},
2809 {
"h_sumErrorBperLS6",
"h_sum0ErrorBperLS6"},
2810 {
"h_2DsumErrorBLS7",
"h_2D0sumErrorBLS7"},
2811 {
"h_sumErrorBperLS7",
"h_sum0ErrorBperLS7"}};
2817 TH1F *hRate2orig =
NULL;
2818 TH2F *h2Cefz6 =
NULL;
2819 TString hname1 = hnames[2 *
depth - 2][0];
2820 TString hname0 = hnames[2 *
depth - 2][1];
2821 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2822 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2824 std::cout <<
"debugger: errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2825 if (!twod1 || !twod0) {
2826 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2827 ptext->AddText(
"Missing histos");
2829 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2830 ptext->AddText(hname1);
2833 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2834 ptext->AddText(hname0);
2838 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2839 h2Cefz6->SetTitle(Form(
"HF Depth %d \b",
depth));
2840 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2845 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2846 h2Cefz6->SetMarkerStyle(20);
2847 h2Cefz6->SetMarkerSize(0.4);
2849 h2Cefz6->SetXTitle(
"#eta \b");
2850 h2Cefz6->SetYTitle(
"#phi \b");
2851 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HF Depth%d \b",
depth));
2852 h2Cefz6->SetMarkerColor(2);
2853 h2Cefz6->SetLineColor(2);
2854 h2Cefz6->Draw(
"COLZ");
2859 hname1 = hnames[2 *
depth - 1][0];
2860 hname0 = hnames[2 *
depth - 1][1];
2861 TH1F *h1 = (TH1F *)hfile->Get(hname1);
2862 TH1F *h0 = (TH1F *)hfile->Get(hname0);
2864 std::cout <<
"errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2866 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2867 ptext->AddText(
"Missing histo");
2869 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2870 ptext->AddText(hname1);
2873 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2874 ptext->AddText(hname0);
2881 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2882 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2884 TH1F *hRate2 =
NULL;
2885 if (lastLumiBin_HF > 1) {
2886 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HF)) {
2887 std::cout <<
"code failed" << std::endl;
2891 hRate2 = hRate2orig;
2892 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2893 hRate2->SetMarkerStyle(20);
2894 hRate2->SetMarkerSize(0.8);
2896 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b",
depth));
2897 hRate2->SetMarkerColor(2);
2898 hRate2->SetLineColor(0);
2899 hRate2->Draw(
"Error");
2900 if (LSofFirstErrB_HF == -1) {
2901 int nx = hRate2->GetXaxis()->GetNbins();
2902 for (
int i = 1;
i <= nx;
i++) {
2903 double ccc1 = hRate2->GetBinContent(
i);
2905 cout <<
"****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2907 LSofFirstErrB_HF =
i;
2914 if (hRate2 != hRate2orig) {
2916 hRate2orig = hRate2;
2920 cHB->Print(Form(
"HistErrB_HF_%d.png",
depth));
2936 TH2F *h2Ceff =
NULL;
2937 TH2F *h2Diffe =
NULL;
2939 TH2F *h3Ceff =
NULL;
2946 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HB",
depth);
2947 TString hname0 = Form(
"h_mapDepth%d_HB",
depth);
2948 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
2949 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
2950 if (!twod1 || !twod0) {
2951 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2952 ptext->AddText(
"Missing histo");
2953 std::cout <<
"specHB test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
2955 ptext->AddText(hname1);
2957 ptext->AddText(hname0);
2962 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HB%d",
depth));
2963 h2Ceff->SetTitle(Form(
"HB Depth %d. (No cut) \b",
depth));
2964 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
2969 h2Ceff->SetMarkerStyle(20);
2970 h2Ceff->SetMarkerSize(0.4);
2972 h2Ceff->SetXTitle(
"#eta \b");
2973 h2Ceff->SetYTitle(
"#phi \b");
2974 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HB \b");
2975 h2Ceff->SetMarkerColor(2);
2976 h2Ceff->SetLineColor(2);
2977 h2Ceff->Draw(
"COLZ");
2984 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HB",
depth));
2985 h2Diffe->SetTitle(Form(
"HB Depth %d. Cut avg(ADCAmpl) > 25 \b",
depth));
2986 int nx = h2Ceff->GetXaxis()->GetNbins();
2987 int ny = h2Ceff->GetYaxis()->GetNbins();
2988 for (
int i = 1;
i <= nx;
i++) {
2989 for (
int j = 1;
j <= ny;
j++) {
2990 double ccc1 = h2Ceff->GetBinContent(
i,
j);
2991 h2Diffe->SetBinContent(
i,
j, 0.);
2993 h2Diffe->SetBinContent(
i,
j, ccc1);
2999 h2Diffe->SetMarkerStyle(20);
3000 h2Diffe->SetMarkerSize(0.4);
3002 h2Diffe->SetXTitle(
"#eta \b");
3003 h2Diffe->SetYTitle(
"#phi \b");
3004 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 25.- HB Depth1 \b");
3005 h2Diffe->SetMarkerColor(2);
3006 h2Diffe->SetLineColor(2);
3007 h2Diffe->Draw(
"COLZ");
3011 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HB",
depth);
3012 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3013 if (!twod3 || !twod0) {
3014 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3015 ptext->AddText(
"Missing histo");
3016 std::cout <<
"specHB test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3018 ptext->AddText(hname3);
3020 ptext->AddText(hname0);
3025 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HB%d",
depth));
3026 h3Ceff->SetTitle(Form(
"HB Depth %d. \b",
depth));
3027 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3031 h3Ceff->SetMarkerStyle(20);
3032 h3Ceff->SetMarkerSize(0.4);
3034 h3Ceff->SetXTitle(
"#eta \b");
3035 h3Ceff->SetYTitle(
"#phi \b");
3036 h3Ceff->SetZTitle(
"rate for channels of HB \b");
3037 h3Ceff->SetMarkerColor(2);
3038 h3Ceff->SetLineColor(2);
3039 h3Ceff->Draw(
"COLZ");
3043 cHE->Print(Form(
"ChkErrA_HB%d.png",
depth));
3065 TH2F *h2Ceff =
NULL;
3066 TH2F *h2Diffe =
NULL;
3068 TH2F *h3Ceff =
NULL;
3075 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HE",
depth);
3076 TString hname0 = Form(
"h_mapDepth%d_HE",
depth);
3077 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3078 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3079 if (!twod1 || !twod0) {
3080 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3081 ptext->AddText(
"Missing histo");
3082 std::cout <<
"specHE test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3084 ptext->AddText(hname1);
3086 ptext->AddText(hname0);
3091 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HE%d",
depth));
3092 h2Ceff->SetTitle(Form(
"HE Depth %d. (No cut) \b",
depth));
3093 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3098 h2Ceff->SetMarkerStyle(20);
3099 h2Ceff->SetMarkerSize(0.4);
3101 h2Ceff->SetXTitle(
"#eta \b");
3102 h2Ceff->SetYTitle(
"#phi \b");
3103 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HE \b");
3104 h2Ceff->SetMarkerColor(2);
3105 h2Ceff->SetLineColor(2);
3106 h2Ceff->Draw(
"COLZ");
3113 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HE",
depth));
3114 h2Diffe->SetTitle(Form(
"HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b",
depth));
3115 int nx = h2Ceff->GetXaxis()->GetNbins();
3116 int ny = h2Ceff->GetYaxis()->GetNbins();
3117 for (
int i = 1;
i <= nx;
i++) {
3118 for (
int j = 1;
j <= ny;
j++) {
3119 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3120 h2Diffe->SetBinContent(
i,
j, 0.);
3122 h2Diffe->SetBinContent(
i,
j, ccc1);
3128 h2Diffe->SetMarkerStyle(20);
3129 h2Diffe->SetMarkerSize(0.4);
3131 h2Diffe->SetXTitle(
"#eta \b");
3132 h2Diffe->SetYTitle(
"#phi \b");
3133 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3134 h2Diffe->SetMarkerColor(2);
3135 h2Diffe->SetLineColor(2);
3136 h2Diffe->Draw(
"COLZ");
3140 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HE",
depth);
3141 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3142 if (!twod3 || !twod0) {
3143 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3144 ptext->AddText(
"Missing histo");
3145 std::cout <<
"specHE test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3147 ptext->AddText(hname3);
3149 ptext->AddText(hname0);
3154 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HE%d",
depth));
3155 h3Ceff->SetTitle(Form(
"HE Depth %d. \b",
depth));
3156 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3160 h3Ceff->SetMarkerStyle(20);
3161 h3Ceff->SetMarkerSize(0.4);
3163 h3Ceff->SetXTitle(
"#eta \b");
3164 h3Ceff->SetYTitle(
"#phi \b");
3165 h3Ceff->SetZTitle(
"rate for channels of HE \b");
3166 h3Ceff->SetMarkerColor(2);
3167 h3Ceff->SetLineColor(2);
3168 h3Ceff->Draw(
"COLZ");
3172 cHE->Print(Form(
"ChkErrA_HE%d.png",
depth));
3194 TH2F *h2Ceff =
NULL;
3195 TH2F *h2Diffe =
NULL;
3197 TH2F *h3Ceff =
NULL;
3204 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HO",
depth);
3205 TString hname0 = Form(
"h_mapDepth%d_HO",
depth);
3206 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3207 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3208 if (!twod1 || !twod0) {
3209 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3210 ptext->AddText(
"Missing histo");
3211 std::cout <<
"specHO test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3213 ptext->AddText(hname1);
3215 ptext->AddText(hname0);
3220 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HO%d",
depth));
3221 h2Ceff->SetTitle(Form(
"HO Depth %d. (No cut) \b",
depth));
3222 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3227 h2Ceff->SetMarkerStyle(20);
3228 h2Ceff->SetMarkerSize(0.4);
3230 h2Ceff->SetXTitle(
"#eta \b");
3231 h2Ceff->SetYTitle(
"#phi \b");
3232 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HO \b");
3233 h2Ceff->SetMarkerColor(2);
3234 h2Ceff->SetLineColor(2);
3235 h2Ceff->Draw(
"COLZ");
3242 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HO",
depth));
3243 h2Diffe->SetTitle(Form(
"HO Depth %d. Cut avg(ADCAmpl) > 80 \b",
depth));
3244 int nx = h2Ceff->GetXaxis()->GetNbins();
3245 int ny = h2Ceff->GetYaxis()->GetNbins();
3246 for (
int i = 1;
i <= nx;
i++) {
3247 for (
int j = 1;
j <= ny;
j++) {
3248 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3249 h2Diffe->SetBinContent(
i,
j, 0.);
3251 h2Diffe->SetBinContent(
i,
j, ccc1);
3257 h2Diffe->SetMarkerStyle(20);
3258 h2Diffe->SetMarkerSize(0.4);
3260 h2Diffe->SetXTitle(
"#eta \b");
3261 h2Diffe->SetYTitle(
"#phi \b");
3262 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 80.- HO Depth1 \b");
3263 h2Diffe->SetMarkerColor(2);
3264 h2Diffe->SetLineColor(2);
3265 h2Diffe->Draw(
"COLZ");
3269 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HO",
depth);
3270 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3271 if (!twod3 || !twod0) {
3272 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3273 ptext->AddText(
"Missing histo");
3274 std::cout <<
"specHO test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3276 ptext->AddText(hname3);
3278 ptext->AddText(hname0);
3283 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HO%d",
depth));
3284 h3Ceff->SetTitle(Form(
"HO Depth %d. \b",
depth));
3285 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3289 h3Ceff->SetMarkerStyle(20);
3290 h3Ceff->SetMarkerSize(0.4);
3292 h3Ceff->SetXTitle(
"#eta \b");
3293 h3Ceff->SetYTitle(
"#phi \b");
3294 h3Ceff->SetZTitle(
"rate for channels of HO \b");
3295 h3Ceff->SetMarkerColor(2);
3296 h3Ceff->SetLineColor(2);
3297 h3Ceff->Draw(
"COLZ");
3301 cHE->Print(Form(
"ChkErrA_HO%d.png",
depth));
3323 TH2F *h2Ceff =
NULL;
3324 TH2F *h2Diffe =
NULL;
3326 TH2F *h3Ceff =
NULL;
3333 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HF",
depth);
3334 TString hname0 = Form(
"h_mapDepth%d_HF",
depth);
3335 TH2F *twod1 = (TH2F *)hfile->Get(hname1);
3336 TH2F *twod0 = (TH2F *)hfile->Get(hname0);
3337 if (!twod1 || !twod0) {
3338 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3339 ptext->AddText(
"Missing histo");
3340 std::cout <<
"specHF test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3342 ptext->AddText(hname1);
3344 ptext->AddText(hname0);
3349 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HF%d",
depth));
3350 h2Ceff->SetTitle(Form(
"HF Depth %d. (No cut) \b",
depth));
3351 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3356 h2Ceff->SetMarkerStyle(20);
3357 h2Ceff->SetMarkerSize(0.4);
3359 h2Ceff->SetXTitle(
"#eta \b");
3360 h2Ceff->SetYTitle(
"#phi \b");
3361 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HF \b");
3362 h2Ceff->SetMarkerColor(2);
3363 h2Ceff->SetLineColor(2);
3364 h2Ceff->Draw(
"COLZ");
3371 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HF",
depth));
3372 h2Diffe->SetTitle(Form(
"HF Depth %d. Cut avg(ADCAmpl) > 20 \b",
depth));
3373 int nx = h2Ceff->GetXaxis()->GetNbins();
3374 int ny = h2Ceff->GetYaxis()->GetNbins();
3375 for (
int i = 1;
i <= nx;
i++) {
3376 for (
int j = 1;
j <= ny;
j++) {
3377 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3378 h2Diffe->SetBinContent(
i,
j, 0.);
3380 h2Diffe->SetBinContent(
i,
j, ccc1);
3386 h2Diffe->SetMarkerStyle(20);
3387 h2Diffe->SetMarkerSize(0.4);
3389 h2Diffe->SetXTitle(
"#eta \b");
3390 h2Diffe->SetYTitle(
"#phi \b");
3391 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 20.- HF Depth1 \b");
3392 h2Diffe->SetMarkerColor(2);
3393 h2Diffe->SetLineColor(2);
3394 h2Diffe->Draw(
"COLZ");
3423 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HF",
depth);
3424 TH2F *twod3 = (TH2F *)hfile->Get(hname3);
3425 if (!twod3 || !twod0) {
3426 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3427 ptext->AddText(
"Missing histo");
3428 std::cout <<
"specHF test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3430 ptext->AddText(hname3);
3432 ptext->AddText(hname0);
3437 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HF%d",
depth));
3438 h3Ceff->SetTitle(Form(
"HF Depth %d. \b",
depth));
3439 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3443 h3Ceff->SetMarkerStyle(20);
3444 h3Ceff->SetMarkerSize(0.4);
3446 h3Ceff->SetXTitle(
"#eta \b");
3447 h3Ceff->SetYTitle(
"#phi \b");
3448 h3Ceff->SetZTitle(
"rate for channels of HF \b");
3449 h3Ceff->SetMarkerColor(2);
3450 h3Ceff->SetLineColor(2);
3451 h3Ceff->Draw(
"COLZ");
3455 cHE->Print(Form(
"ChkErrA_HF%d.png",
depth));
3472 std::cout <<
"************>>> average Amplitudes done" << std::endl;
3474 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3475 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3476 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3477 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3478 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3485 cout <<
" RBX analysis START for **************************" << endl;
3486 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3491 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax=1800; "
3494 double alexall[njeta][njphi][
lsmax];
3497 double alexhb[njphi][
lsmax];
3498 double alexhe[njphi][
lsmax];
3499 double alexho[njphi][
lsmax];
3500 double alexhf[njphi][
lsmax];
3503 double blexhb[njeta][
lsmax];
3504 double blexhe[njeta][
lsmax];
3505 double blexho[njeta][
lsmax];
3506 double blexhf[njeta][
lsmax];
3508 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alexall [njeta][njphi][lsmax]; " << endl;
3509 int maxbinsRBX = MaxLum;
3510 int nx = maxbinsRBX;
3511 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3513 cout <<
"*********************************** ERROR ERROR ERROR ERROR: MaxLum > 1800 " << endl;
3514 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3516 for (
int i = 0;
i < nx;
i++) {
3517 for (
int jphi = 0; jphi < njphi; jphi++) {
3518 alexhb[jphi][
i] = 0.;
3519 alexhe[jphi][
i] = 0.;
3520 alexho[jphi][
i] = 0.;
3521 alexhf[jphi][
i] = 0.;
3525 blexhb[
jeta][
i] = 0.;
3526 blexhe[
jeta][
i] = 0.;
3527 blexho[
jeta][
i] = 0.;
3528 blexhf[
jeta][
i] = 0.;
3531 alexall[
jeta][jphi][
i] = 0.;
3556 cout <<
" RBX general for HB **************************" << endl;
3557 TH2F *Ghb1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs0");
3558 TH2F *Ghb1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs00");
3559 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone(
"Ghb1");
3560 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1,
"B");
3563 int ny = Ghb1->GetYaxis()->GetNbins();
3565 for (
int j = 1;
j <= ny;
j++) {
3566 int jeta = (
j - 1) / njphi;
3568 int jphi = (
j - 1) - njphi *
jeta;
3571 for (
int i = 1;
i <= nx;
i++) {
3572 double ccc1 = Ghb1->GetBinContent(
i,
j);
3573 alexall[
jeta][jphi][
i - 1] = ccc1;
3588 for (
int jphi = 0; jphi < njphi; jphi++) {
3589 for (
int i = 0;
i < nx;
i++) {
3590 double sumccc1 = 0.;
3593 double ccc1 = alexall[
jeta][jphi][
i];
3601 alexhb[jphi][
i] = sumccc1;
3606 for (
int keta = 0; keta < njeta; keta++) {
3607 for (
int i = 0;
i < nx;
i++) {
3608 double sumccc1 = 0.;
3610 for (
int kphi = 0; kphi < njphi; kphi++) {
3611 double ccc1 = alexall[keta][kphi][
i];
3619 blexhb[keta][
i] = sumccc1;
3629 cout <<
" RBX HB 2D plot *****" << endl;
3632 cRBX1->Divide(1, 1);
3637 TH2F *Ghb42D =
new TH2F(
"Ghb42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
3638 TH2F *Ghb42D0 =
new TH2F(
"Ghb42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
3639 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone(
"Ghb42DF");
3640 for (
int jphi = 0; jphi < njphi; jphi++) {
3642 for (
int i = 0;
i < nx;
i++) {
3643 double ccc1 = alexall[
jeta][jphi][
i];
3644 int neweta =
jeta - 11 - 0.5;
3646 neweta =
jeta - 11 + 1.5;
3648 Ghb42D->Fill(neweta, jphi, ccc1);
3649 Ghb42D0->Fill(neweta, jphi, 1.);
3655 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1,
"B");
3659 Ghb42DF->SetMarkerStyle(20);
3660 Ghb42DF->SetMarkerSize(0.4);
3661 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3662 Ghb42DF->SetXTitle(
"<A>_RBX #eta \b");
3663 Ghb42DF->SetYTitle(
" #phi \b");
3664 Ghb42DF->SetZTitle(
"<A>_RBX - All \b");
3665 Ghb42DF->SetMarkerColor(2);
3666 Ghb42DF->SetLineColor(2);
3667 Ghb42DF->Draw(
"COLZ");
3671 cRBX1->Print(
"RBX-HB-2Dplot.png");
3686 cout <<
" RBX HB 1D plot *****" << endl;
3689 cRBX1->Divide(1, 1);
3691 TH1F *GphiHB1D =
new TH1F(
"GphiHB1D",
"", 18, 0., 18.);
3692 TH1F *GphiHB1D0 =
new TH1F(
"GphiHB1D0",
"", 18, 0., 18.);
3693 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone(
"GphiHB1DF");
3694 for (
int jphi = 0; jphi < 18; jphi++) {
3696 for (
int i = 0;
i < nx;
i++) {
3697 double ccc1 = alexall[
jeta][jphi][
i];
3699 GphiHB1D->Fill(jphi, ccc1);
3700 GphiHB1D0->Fill(jphi, 1.);
3706 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1,
"B");
3708 for (
int jphi = 1; jphi < 19; jphi++) {
3709 GphiHB1DF->SetBinError(jphi, 0.01);
3713 GphiHB1DF->SetMarkerStyle(20);
3714 GphiHB1DF->SetMarkerSize(1.4);
3715 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3716 GphiHB1DF->SetXTitle(
"PHI of RBX\b");
3717 GphiHB1DF->SetYTitle(
" <Amplitude> \b");
3718 GphiHB1DF->SetZTitle(
"<A>_PHI - All \b");
3719 GphiHB1DF->SetMarkerColor(4);
3720 GphiHB1DF->SetLineColor(4);
3721 GphiHB1DF->SetMinimum(0.8);
3722 GphiHB1DF->Draw(
"Error");
3725 cRBX1->Print(
"RBX-HB-1Dplot.png");
3740 cout <<
" RBX HB 11D plot *eta*" << endl;
3743 cRBX1->Divide(1, 1);
3745 TH1F *GetaHB11D =
new TH1F(
"GetaHB11D",
"", 23, -11.5, 11.5);
3746 TH1F *GetaHB11D0 =
new TH1F(
"GetaHB11D0",
"", 23, -11.5, 11.5);
3747 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone(
"GetaHB11DF");
3750 for (
int jphi = 0; jphi < 18; jphi++) {
3751 for (
int i = 0;
i < nx;
i++) {
3752 double ccc1 = alexall[
jeta][jphi][
i];
3753 int neweta =
jeta - 11 - 0.5;
3755 neweta =
jeta - 11 + 1.5;
3757 GetaHB11D->Fill(neweta, ccc1);
3758 GetaHB11D0->Fill(neweta, 1.);
3765 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1,
"B");
3768 GetaHB11DF->SetBinError(
jeta, 0.01);
3772 GetaHB11DF->SetMarkerStyle(20);
3773 GetaHB11DF->SetMarkerSize(1.4);
3774 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3775 GetaHB11DF->SetXTitle(
"#eta \b");
3776 GetaHB11DF->SetYTitle(
" <A> \b");
3777 GetaHB11DF->SetZTitle(
"<A>_ETA - All \b");
3778 GetaHB11DF->SetMarkerColor(4);
3779 GetaHB11DF->SetLineColor(4);
3780 GetaHB11DF->SetMinimum(0.8);
3781 GetaHB11DF->Draw(
"Error");
3785 cRBX1->Print(
"RBX-HB-11Dplot.png");
3801 gStyle->SetOptStat(1110000);
3802 cout <<
" RBX HB Ratio plots *****" << endl;
3811 cRBX31->Divide(3, 1);
3815 TH1F *Ghb51 =
new TH1F(
"Ghb51",
"", nx, 1., nx + 1.);
3816 TH1F *Ghb50 =
new TH1F(
"Ghb50",
"", nx, 1., nx + 1.);
3817 TH1F *Ghb5 = (TH1F *)Ghb50->Clone(
"Ghb5");
3819 for (
int j = 1;
j <= ny;
j++) {
3820 ccc0HB = Ghb1->GetBinContent(1,
j);
3823 for (
int i = 1;
i <= nx;
i++) {
3824 double ccc2 = Ghb1->GetBinContent(
i,
j);
3832 for (
int i = 1;
i <= nx;
i++) {
3833 double ccc1 = Ghb1->GetBinContent(
i,
j);
3835 double Rij = ccc1 / ccc0HB;
3837 Ghb51->Fill(
float(
i), Rij);
3838 Ghb50->Fill(
float(
i), 1.);
3843 Ghb5->Divide(Ghb51, Ghb50, 1, 1,
"B");
3844 for (
int i = 1;
i <= nx;
i++) {
3845 Ghb5->SetBinError(
i, 0.0001);
3847 Ghb5->SetMarkerStyle(20);
3848 Ghb5->SetMarkerSize(0.4);
3849 Ghb5->GetYaxis()->SetLabelSize(0.04);
3850 Ghb5->SetMarkerColor(2);
3851 Ghb5->SetLineColor(0);
3852 Ghb5->SetXTitle(
" iLS \b");
3853 Ghb5->SetYTitle(
" <R> \b");
3854 Ghb5->SetTitle(
"<Ri> vs iLS \b");
3855 Ghb5->SetMinimum(0.);
3860 Ghb5->GetYaxis()->SetLabelSize(0.025);
3861 Ghb5->Draw(
"Error");
3864 TH2F *Ghb60 =
new TH2F(
"Ghb60",
"", 22, -11., 11., 18, 0., 18.);
3865 TH2F *Ghb61 =
new TH2F(
"Ghb61",
"", 22, -11., 11., 18, 0., 18.);
3866 TH2F *Ghb6 =
new TH2F(
"Ghb6",
"", 22, -11., 11., 18, 0., 18.);
3868 TH2F *G20hb60 =
new TH2F(
"G20hb60",
"", 22, -11., 11., 18, 0., 18.);
3869 TH2F *G20hb61 =
new TH2F(
"G20hb61",
"", 22, -11., 11., 18, 0., 18.);
3870 TH2F *G20hb6 =
new TH2F(
"G20hb6",
"", 22, -11., 11., 18, 0., 18.);
3871 TH2F *G30hb60 =
new TH2F(
"G30hb60",
"", 22, -11., 11., 18, 0., 18.);
3872 TH2F *G30hb61 =
new TH2F(
"G30hb61",
"", 22, -11., 11., 18, 0., 18.);
3873 TH2F *G30hb6 =
new TH2F(
"G30hb6",
"", 22, -11., 11., 18, 0., 18.);
3874 TH2F *G40hb60 =
new TH2F(
"G40hb60",
"", 22, -11., 11., 18, 0., 18.);
3875 TH2F *G40hb61 =
new TH2F(
"G40hb61",
"", 22, -11., 11., 18, 0., 18.);
3876 TH2F *G40hb6 =
new TH2F(
"G40hb6",
"", 22, -11., 11., 18, 0., 18.);
3882 double meanjHB = 0.;
3883 for (
int j = 1;
j <= ny;
j++) {
3884 ccc0HB = Ghb1->GetBinContent(1,
j);
3886 for (
int i = 1;
i <= nx;
i++) {
3887 double ccc2 = Ghb1->GetBinContent(
i,
j);
3894 for (
int i = 1;
i <= nx;
i++) {
3895 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3901 meanjHB = sumjHB / njHB;
3905 double ssumjHB = 0.;
3907 double sigmajHB = 0.;
3908 for (
int j = 1;
j <= ny;
j++) {
3909 ccc0HB = Ghb1->GetBinContent(1,
j);
3911 for (
int i = 1;
i <= nx;
i++) {
3912 double ccc2 = Ghb1->GetBinContent(
i,
j);
3919 for (
int i = 1;
i <= nx;
i++) {
3920 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3922 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3926 sigmajHB =
sqrt(ssumjHB / njHB);
3930 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3931 if (dif3rmsHBMIN < 0.)
3933 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3934 cout <<
"22HB-2 meanjHB= " << meanjHB <<
" sigmajHB= " << sigmajHB <<
" dif3rmsHBMIN= " << dif3rmsHBMIN
3935 <<
" dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3937 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3938 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3939 if (MAXdif3rmsHBMIN < 0.95)
3940 MAXdif3rmsHBMIN = 0.95;
3941 if (MINdif3rmsHBMAX > 1.05)
3942 MINdif3rmsHBMAX = 1.05;
3943 cout <<
"22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3945 for (
int j = 1;
j <= ny;
j++) {
3946 ccc0HB = Ghb1->GetBinContent(1,
j);
3948 for (
int i = 1;
i <= nx;
i++) {
3949 double ccc2 = Ghb1->GetBinContent(
i,
j);
3956 int jeta = (
j - 1) / 18;
3957 int jphi = (
j - 1) - 18 *
jeta;
3959 for (
int i = 1;
i <= nx;
i++) {
3960 double ccc1 = Ghb1->GetBinContent(
i,
j);
3962 double Rij = ccc1 / ccc0HB;
3963 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3964 Ghb61->Fill(
jeta - 11, jphi, Rij);
3965 Ghb60->Fill(
jeta - 11, jphi, 1.);
3967 if (Rij < 0.8 || Rij > 1.2) {
3968 G20hb61->Fill(
jeta - 11, jphi, Rij);
3969 G20hb60->Fill(
jeta - 11, jphi, 1.);
3971 if (Rij < 0.7 || Rij > 1.3) {
3972 G30hb61->Fill(
jeta - 11, jphi, Rij);
3973 G30hb60->Fill(
jeta - 11, jphi, 1.);
3975 if (Rij < 0.6 || Rij > 1.4) {
3976 G40hb61->Fill(
jeta - 11, jphi, Rij);
3977 G40hb60->Fill(
jeta - 11, jphi, 1.);
3983 Ghb6->Divide(Ghb61, Ghb60, 1, 1,
"B");
3984 G20hb6->Divide(G20hb61, G20hb60, 1, 1,
"B");
3985 G30hb6->Divide(G30hb61, G30hb60, 1, 1,
"B");
3986 G40hb6->Divide(G40hb61, G40hb60, 1, 1,
"B");
3988 Ghb6->GetZaxis()->SetLabelSize(0.025);
3989 Ghb6->SetXTitle(
" #eta \b");
3990 Ghb6->SetYTitle(
" #phi \b");
3991 Ghb6->SetTitle(
"<Rj> for |1-<R>| > 0.05 \b");
3996 TH1F *Ghb7 =
new TH1F(
"Ghb7",
"", 120, 0.4, 1.6);
3998 for (
int j = 1;
j <= ny;
j++) {
3999 ccc0HB = Ghb1->GetBinContent(1,
j);
4001 for (
int i = 1;
i <= nx;
i++) {
4002 double ccc2 = Ghb1->GetBinContent(
i,
j);
4010 for (
int i = 1;
i <= nx;
i++) {
4011 double ccc1 = Ghb1->GetBinContent(
i,
j);
4013 double Rij = ccc1 / ccc0HB;
4019 Ghb7->SetMarkerStyle(20);
4020 Ghb7->SetMarkerSize(0.4);
4021 Ghb7->GetYaxis()->SetLabelSize(0.04);
4022 Ghb7->SetMarkerColor(2);
4023 Ghb7->SetLineColor(0);
4024 Ghb7->SetYTitle(
" N \b");
4025 Ghb7->SetXTitle(
" Rij \b");
4026 Ghb7->SetTitle(
" Rij \b");
4031 Ghb7->GetYaxis()->SetLabelSize(0.025);
4032 Ghb7->Draw(
"Error");
4033 Float_t ymaxHB = Ghb7->GetMaximum();
4034 cout <<
"22HB-3 ymaxHB= " << ymaxHB <<
" MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4035 <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4036 TLine *lineHB =
new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4037 lineHB->SetLineColor(kBlue);
4039 TLine *line1HB =
new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4040 line1HB->SetLineColor(kBlue);
4045 cRBX31->Print(
"RBX-HB-3plots.png");
4080 gStyle->SetOptStat(1110000);
4081 cout <<
" RBX HB Ratio plotsmore *****" << endl;
4084 cRBX31->Divide(3, 1);
4087 G20hb6->GetZaxis()->SetLabelSize(0.025);
4088 G20hb6->SetXTitle(
" #eta \b");
4089 G20hb6->SetYTitle(
" #phi \b");
4090 G20hb6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4091 G20hb6->SetStats(0);
4092 G20hb6->Draw(
"COLZ");
4095 G30hb6->GetZaxis()->SetLabelSize(0.025);
4096 G30hb6->SetXTitle(
" #eta \b");
4097 G30hb6->SetYTitle(
" #phi \b");
4098 G30hb6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4099 G30hb6->SetStats(0);
4100 G30hb6->Draw(
"COLZ");
4103 G40hb6->GetZaxis()->SetLabelSize(0.025);
4104 G40hb6->SetXTitle(
" #eta \b");
4105 G40hb6->SetYTitle(
" #phi \b");
4106 G40hb6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4107 G40hb6->SetStats(0);
4108 G40hb6->Draw(
"COLZ");
4113 cRBX31->Print(
"RBX-HB-3plotsmore.png");
4123 gStyle->SetOptStat(0);
4127 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4128 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4129 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4130 for (
int jphi = 0; jphi < njphi; jphi++) {
4132 for (
int i = 0;
i < nx;
i++) {
4133 alexall[
jeta][jphi][
i] = 0.;
4144 cout <<
" RBX general for HE **************************" << endl;
4145 TH2F *Ghe1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs1");
4146 TH2F *Ghe1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs10");
4147 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone(
"Ghe1");
4148 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1,
"B");
4152 ny = Ghe1->GetYaxis()->GetNbins();
4153 for (
int j = 1;
j <= ny;
j++) {
4154 int jeta = (
j - 1) / njphi;
4155 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4156 int jphi = (
j - 1) - njphi *
jeta;
4159 for (
int i = 1;
i <= nx;
i++) {
4160 double ccc1 = Ghe1->GetBinContent(
i,
j);
4161 alexall[
jeta][jphi][
i - 1] = ccc1;
4174 for (
int jphi = 0; jphi < njphi; jphi++) {
4175 for (
int i = 0;
i < nx;
i++) {
4176 double sumccc1 = 0.;
4179 double ccc1 = alexall[
jeta][jphi][
i];
4187 alexhe[jphi][
i] = sumccc1;
4191 for (
int keta = 0; keta < njeta; keta++) {
4192 for (
int i = 0;
i < nx;
i++) {
4193 double sumccc1 = 0.;
4195 for (
int kphi = 0; kphi < njphi; kphi++) {
4196 double ccc1 = alexall[keta][kphi][
i];
4204 blexhe[keta][
i] = sumccc1;
4213 cout <<
" RBX HE 2D plot *****" << endl;
4216 cRBX1->Divide(1, 1);
4219 TH2F *Ghe42D =
new TH2F(
"Ghe42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4220 TH2F *Ghe42D0 =
new TH2F(
"Ghe42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4223 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone(
"Ghe42DF");
4224 for (
int jphi = 0; jphi < njphi; jphi++) {
4226 for (
int i = 0;
i < nx;
i++) {
4227 double ccc1 = alexall[
jeta][jphi][
i];
4228 int neweta =
jeta - 11 - 0.5;
4230 neweta =
jeta - 11 + 1.5;
4232 Ghe42D->Fill(neweta, jphi, ccc1);
4233 Ghe42D0->Fill(neweta, jphi, 1.);
4239 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1,
"B");
4243 Ghe42DF->SetMarkerStyle(20);
4244 Ghe42DF->SetMarkerSize(0.4);
4245 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4246 Ghe42DF->SetXTitle(
"<A>_RBX #eta \b");
4247 Ghe42DF->SetYTitle(
" #phi \b");
4248 Ghe42DF->SetZTitle(
"<A>_RBX - All \b");
4249 Ghe42DF->SetMarkerColor(2);
4250 Ghe42DF->SetLineColor(2);
4251 Ghe42DF->Draw(
"COLZ");
4255 cRBX1->Print(
"RBX-HE-2Dplot.png");
4270 cout <<
" RBX HE 1D plot *****" << endl;
4273 cRBX1->Divide(1, 1);
4275 TH1F *GphiHE1D =
new TH1F(
"GphiHE1D",
"", 18, 0., 18.);
4276 TH1F *GphiHE1D0 =
new TH1F(
"GphiHE1D0",
"", 18, 0., 18.);
4277 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone(
"GphiHE1DF");
4278 for (
int jphi = 0; jphi < 18; jphi++) {
4280 for (
int i = 0;
i < nx;
i++) {
4281 double ccc1 = alexall[
jeta][jphi][
i];
4283 GphiHE1D->Fill(jphi, ccc1);
4284 GphiHE1D0->Fill(jphi, 1.);
4290 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1,
"B");
4292 for (
int jphi = 1; jphi < 19; jphi++) {
4293 GphiHE1DF->SetBinError(jphi, 0.01);
4297 GphiHE1DF->SetMarkerStyle(20);
4298 GphiHE1DF->SetMarkerSize(1.4);
4299 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4300 GphiHE1DF->SetXTitle(
"PHI of RBX\b");
4301 GphiHE1DF->SetYTitle(
" <Amplitude> \b");
4302 GphiHE1DF->SetZTitle(
"<A>_PHI - All \b");
4303 GphiHE1DF->SetMarkerColor(4);
4304 GphiHE1DF->SetLineColor(4);
4305 GphiHE1DF->SetMinimum(0.8);
4306 GphiHE1DF->Draw(
"Error");
4309 cRBX1->Print(
"RBX-HE-1Dplot.png");
4324 cout <<
" RBX HE 11D plot *eta*" << endl;
4327 cRBX1->Divide(1, 1);
4329 TH1F *GetaHE11D =
new TH1F(
"GetaHE11D",
"", 23, -11.5, 11.5);
4330 TH1F *GetaHE11D0 =
new TH1F(
"GetaHE11D0",
"", 23, -11.5, 11.5);
4331 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone(
"GetaHE11DF");
4334 for (
int jphi = 0; jphi < 18; jphi++) {
4335 for (
int i = 0;
i < nx;
i++) {
4336 double ccc1 = alexall[
jeta][jphi][
i];
4337 int neweta =
jeta - 11 - 0.5;
4339 neweta =
jeta - 11 + 1.5;
4341 GetaHE11D->Fill(neweta, ccc1);
4342 GetaHE11D0->Fill(neweta, 1.);
4349 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1,
"B");
4352 GetaHE11DF->SetBinError(
jeta, 0.01);
4356 GetaHE11DF->SetMarkerStyle(20);
4357 GetaHE11DF->SetMarkerSize(1.4);
4358 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4359 GetaHE11DF->SetXTitle(
"#eta \b");
4360 GetaHE11DF->SetYTitle(
" <A> \b");
4361 GetaHE11DF->SetZTitle(
"<A>_ETA - All \b");
4362 GetaHE11DF->SetMarkerColor(4);
4363 GetaHE11DF->SetLineColor(4);
4364 GetaHE11DF->SetMinimum(0.8);
4365 GetaHE11DF->Draw(
"Error");
4369 cRBX1->Print(
"RBX-HE-11Dplot.png");
4385 gStyle->SetOptStat(1110000);
4386 cout <<
" RBX HE Ratio plots *****" << endl;
4395 cRBX31->Divide(3, 1);
4399 TH1F *Ghe51 =
new TH1F(
"Ghe51",
"", nx, 1., nx + 1.);
4400 TH1F *Ghe50 =
new TH1F(
"Ghe50",
"", nx, 1., nx + 1.);
4401 TH1F *Ghe5 = (TH1F *)Ghe50->Clone(
"Ghe5");
4403 for (
int j = 1;
j <= ny;
j++) {
4404 ccc0HE = Ghe1->GetBinContent(1,
j);
4407 for (
int i = 1;
i <= nx;
i++) {
4408 double ccc2 = Ghe1->GetBinContent(
i,
j);
4416 for (
int i = 1;
i <= nx;
i++) {
4417 double ccc1 = Ghe1->GetBinContent(
i,
j);
4419 double Rij = ccc1 / ccc0HE;
4421 Ghe51->Fill(
float(
i), Rij);
4422 Ghe50->Fill(
float(
i), 1.);
4427 Ghe5->Divide(Ghe51, Ghe50, 1, 1,
"B");
4428 for (
int i = 1;
i <= nx;
i++) {
4429 Ghe5->SetBinError(
i, 0.0001);
4431 Ghe5->SetMarkerStyle(20);
4432 Ghe5->SetMarkerSize(0.4);
4433 Ghe5->GetYaxis()->SetLabelSize(0.04);
4434 Ghe5->SetMarkerColor(2);
4435 Ghe5->SetLineColor(0);
4436 Ghe5->SetXTitle(
" iLS \b");
4437 Ghe5->SetYTitle(
" <R> \b");
4438 Ghe5->SetTitle(
"<Ri> vs iLS \b");
4439 Ghe5->SetMinimum(0.);
4444 Ghe5->GetYaxis()->SetLabelSize(0.025);
4445 Ghe5->Draw(
"Error");
4448 TH2F *Ghe60 =
new TH2F(
"Ghe60",
"", 22, -11., 11., 18, 0., 18.);
4449 TH2F *Ghe61 =
new TH2F(
"Ghe61",
"", 22, -11., 11., 18, 0., 18.);
4450 TH2F *Ghe6 =
new TH2F(
"Ghe6",
"", 22, -11., 11., 18, 0., 18.);
4452 TH2F *G20he60 =
new TH2F(
"G20he60",
"", 22, -11., 11., 18, 0., 18.);
4453 TH2F *G20he61 =
new TH2F(
"G20he61",
"", 22, -11., 11., 18, 0., 18.);
4454 TH2F *G20he6 =
new TH2F(
"G20he6",
"", 22, -11., 11., 18, 0., 18.);
4455 TH2F *G30he60 =
new TH2F(
"G30he60",
"", 22, -11., 11., 18, 0., 18.);
4456 TH2F *G30he61 =
new TH2F(
"G30he61",
"", 22, -11., 11., 18, 0., 18.);
4457 TH2F *G30he6 =
new TH2F(
"G30he6",
"", 22, -11., 11., 18, 0., 18.);
4458 TH2F *G40he60 =
new TH2F(
"G40he60",
"", 22, -11., 11., 18, 0., 18.);
4459 TH2F *G40he61 =
new TH2F(
"G40he61",
"", 22, -11., 11., 18, 0., 18.);
4460 TH2F *G40he6 =
new TH2F(
"G40he6",
"", 22, -11., 11., 18, 0., 18.);
4466 double meanjHE = 0.;
4467 for (
int j = 1;
j <= ny;
j++) {
4468 ccc0HE = Ghe1->GetBinContent(1,
j);
4470 for (
int i = 1;
i <= nx;
i++) {
4471 double ccc2 = Ghe1->GetBinContent(
i,
j);
4478 for (
int i = 1;
i <= nx;
i++) {
4479 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4485 meanjHE = sumjHE / njHE;
4489 double ssumjHE = 0.;
4491 double sigmajHE = 0.;
4492 for (
int j = 1;
j <= ny;
j++) {
4493 ccc0HE = Ghe1->GetBinContent(1,
j);
4495 for (
int i = 1;
i <= nx;
i++) {
4496 double ccc2 = Ghe1->GetBinContent(
i,
j);
4503 for (
int i = 1;
i <= nx;
i++) {
4504 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4506 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4510 sigmajHE =
sqrt(ssumjHE / njHE);
4514 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4515 if (dif3rmsHEMIN < 0.)
4517 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4518 cout <<
"22HE-2 meanjHE= " << meanjHE <<
" sigmajHE= " << sigmajHE <<
" dif3rmsHEMIN= " << dif3rmsHEMIN
4519 <<
" dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4521 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4522 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4523 if (MAXdif3rmsHEMIN < 0.95)
4524 MAXdif3rmsHEMIN = 0.95;
4525 if (MINdif3rmsHEMAX > 1.05)
4526 MINdif3rmsHEMAX = 1.05;
4527 cout <<
"22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4529 for (
int j = 1;
j <= ny;
j++) {
4530 ccc0HE = Ghe1->GetBinContent(1,
j);
4532 for (
int i = 1;
i <= nx;
i++) {
4533 double ccc2 = Ghe1->GetBinContent(
i,
j);
4540 int jeta = (
j - 1) / 18;
4541 int jphi = (
j - 1) - 18 *
jeta;
4543 for (
int i = 1;
i <= nx;
i++) {
4544 double ccc1 = Ghe1->GetBinContent(
i,
j);
4546 double Rij = ccc1 / ccc0HE;
4547 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4548 Ghe61->Fill(
jeta - 11, jphi, Rij);
4549 Ghe60->Fill(
jeta - 11, jphi, 1.);
4551 if (Rij < 0.8 || Rij > 1.2) {
4552 G20he61->Fill(
jeta - 11, jphi, Rij);
4553 G20he60->Fill(
jeta - 11, jphi, 1.);
4555 if (Rij < 0.7 || Rij > 1.3) {
4556 G30he61->Fill(
jeta - 11, jphi, Rij);
4557 G30he60->Fill(
jeta - 11, jphi, 1.);
4559 if (Rij < 0.6 || Rij > 1.4) {
4560 G40he61->Fill(
jeta - 11, jphi, Rij);
4561 G40he60->Fill(
jeta - 11, jphi, 1.);
4567 Ghe6->Divide(Ghe61, Ghe60, 1, 1,
"B");
4568 G20he6->Divide(G20he61, G20he60, 1, 1,
"B");
4569 G30he6->Divide(G30he61, G30he60, 1, 1,
"B");
4570 G40he6->Divide(G40he61, G40he60, 1, 1,
"B");
4574 Ghe6->GetZaxis()->SetLabelSize(0.025);
4576 Ghe6->SetXTitle(
" #eta \b");
4577 Ghe6->SetYTitle(
" #phi \b");
4579 "<Rj> for |1-<R>| > 0.05 \b");
4585 TH1F *Ghe7 =
new TH1F(
"Ghe7",
"", 120, 0.4, 1.6);
4587 for (
int j = 1;
j <= ny;
j++) {
4588 ccc0HE = Ghe1->GetBinContent(1,
j);
4590 for (
int i = 1;
i <= nx;
i++) {
4591 double ccc2 = Ghe1->GetBinContent(
i,
j);
4599 for (
int i = 1;
i <= nx;
i++) {
4600 double ccc1 = Ghe1->GetBinContent(
i,
j);
4602 double Rij = ccc1 / ccc0HE;
4608 Ghe7->SetMarkerStyle(20);
4609 Ghe7->SetMarkerSize(0.4);
4610 Ghe7->GetYaxis()->SetLabelSize(0.04);
4611 Ghe7->SetMarkerColor(2);
4612 Ghe7->SetLineColor(0);
4613 Ghe7->SetYTitle(
" N \b");
4614 Ghe7->SetXTitle(
" Rij \b");
4615 Ghe7->SetTitle(
" Rij \b");
4620 Ghe7->GetYaxis()->SetLabelSize(0.025);
4621 Ghe7->Draw(
"Error");
4622 Float_t ymaxHE = Ghe7->GetMaximum();
4623 cout <<
"22HE-3 ymaxHE= " << ymaxHE <<
" MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4624 <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4625 TLine *lineHE =
new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4626 lineHE->SetLineColor(kBlue);
4628 TLine *line1HE =
new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4629 line1HE->SetLineColor(kBlue);
4634 cRBX31->Print(
"RBX-HE-3plots.png");
4669 gStyle->SetOptStat(1110000);
4670 cout <<
" RBX HE Ratio plotsmore *****" << endl;
4673 cRBX31->Divide(3, 1);
4676 G20he6->GetZaxis()->SetLabelSize(0.025);
4677 G20he6->SetXTitle(
" #eta \b");
4678 G20he6->SetYTitle(
" #phi \b");
4679 G20he6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4680 G20he6->SetStats(0);
4681 G20he6->Draw(
"COLZ");
4684 G30he6->GetZaxis()->SetLabelSize(0.025);
4685 G30he6->SetXTitle(
" #eta \b");
4686 G30he6->SetYTitle(
" #phi \b");
4687 G30he6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4688 G30he6->SetStats(0);
4689 G30he6->Draw(
"COLZ");
4692 G40he6->GetZaxis()->SetLabelSize(0.025);
4693 G40he6->SetXTitle(
" #eta \b");
4694 G40he6->SetYTitle(
" #phi \b");
4695 G40he6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4696 G40he6->SetStats(0);
4697 G40he6->Draw(
"COLZ");
4702 cRBX31->Print(
"RBX-HE-3plotsmore.png");
4712 gStyle->SetOptStat(0);
4715 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4716 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4717 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4718 for (
int jphi = 0; jphi < njphi; jphi++) {
4720 for (
int i = 0;
i < nx;
i++) {
4721 alexall[
jeta][jphi][
i] = 0.;
4732 cout <<
" RBX general for HO **************************" << endl;
4733 TH2F *Gho1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs2");
4734 TH2F *Gho1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs20");
4735 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone(
"Gho1");
4736 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1,
"B");
4740 ny = Gho1->GetYaxis()->GetNbins();
4741 for (
int j = 1;
j <= ny;
j++) {
4742 int jeta = (
j - 1) / njphi;
4743 if (jeta < 15 && jeta > 6) {
4744 int jphi = (
j - 1) - njphi *
jeta;
4747 for (
int i = 1;
i <= nx;
i++) {
4748 double ccc1 = Gho1->GetBinContent(
i,
j);
4749 alexall[
jeta][jphi][
i - 1] = ccc1;
4762 for (
int jphi = 0; jphi < njphi; jphi++) {
4763 for (
int i = 0;
i < nx;
i++) {
4764 double sumccc1 = 0.;
4767 double ccc1 = alexall[
jeta][jphi][
i];
4775 alexho[jphi][
i] = sumccc1;
4779 for (
int keta = 0; keta < njeta; keta++) {
4780 for (
int i = 0;
i < nx;
i++) {
4781 double sumccc1 = 0.;
4783 for (
int kphi = 0; kphi < njphi; kphi++) {
4784 double ccc1 = alexall[keta][kphi][
i];
4792 blexho[keta][
i] = sumccc1;
4802 cout <<
" RBX HO 2D plot *****" << endl;
4805 cRBX1->Divide(1, 1);
4808 TH2F *Gho42D =
new TH2F(
"Gho42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4809 TH2F *Gho42D0 =
new TH2F(
"Gho42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4812 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone(
"Gho42DF");
4813 for (
int jphi = 0; jphi < njphi; jphi++) {
4815 for (
int i = 0;
i < nx;
i++) {
4816 double ccc1 = alexall[
jeta][jphi][
i];
4817 int neweta =
jeta - 11 - 0.5;
4819 neweta =
jeta - 11 + 1.5;
4821 Gho42D->Fill(neweta, jphi, ccc1);
4822 Gho42D0->Fill(neweta, jphi, 1.);
4828 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1,
"B");
4832 Gho42DF->SetMarkerStyle(20);
4833 Gho42DF->SetMarkerSize(0.4);
4834 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4835 Gho42DF->SetXTitle(
"<A>_RBX #eta \b");
4836 Gho42DF->SetYTitle(
" #phi \b");
4837 Gho42DF->SetZTitle(
"<A>_RBX - All \b");
4838 Gho42DF->SetMarkerColor(2);
4839 Gho42DF->SetLineColor(2);
4840 Gho42DF->Draw(
"COLZ");
4844 cRBX1->Print(
"RBX-HO-2Dplot.png");
4859 cout <<
" RBX HO 1D plot *****" << endl;
4862 cRBX1->Divide(1, 1);
4864 TH1F *GphiHO1D =
new TH1F(
"GphiHO1D",
"", 18, 0., 18.);
4865 TH1F *GphiHO1D0 =
new TH1F(
"GphiHO1D0",
"", 18, 0., 18.);
4866 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone(
"GphiHO1DF");
4867 for (
int jphi = 0; jphi < 18; jphi++) {
4869 for (
int i = 0;
i < nx;
i++) {
4870 double ccc1 = alexall[
jeta][jphi][
i];
4872 GphiHO1D->Fill(jphi, ccc1);
4873 GphiHO1D0->Fill(jphi, 1.);
4879 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1,
"B");
4881 for (
int jphi = 1; jphi < 19; jphi++) {
4882 GphiHO1DF->SetBinError(jphi, 0.01);
4886 GphiHO1DF->SetMarkerStyle(20);
4887 GphiHO1DF->SetMarkerSize(1.4);
4888 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4889 GphiHO1DF->SetXTitle(
"PHI of RBX\b");
4890 GphiHO1DF->SetYTitle(
" <Amplitude> \b");
4891 GphiHO1DF->SetZTitle(
"<A>_PHI - All \b");
4892 GphiHO1DF->SetMarkerColor(4);
4893 GphiHO1DF->SetLineColor(4);
4894 GphiHO1DF->SetMinimum(0.8);
4895 GphiHO1DF->Draw(
"Error");
4898 cRBX1->Print(
"RBX-HO-1Dplot.png");
4913 cout <<
" RBX HO 11D plot *eta*" << endl;
4916 cRBX1->Divide(1, 1);
4918 TH1F *GetaHO11D =
new TH1F(
"GetaHO11D",
"", 23, -11.5, 11.5);
4919 TH1F *GetaHO11D0 =
new TH1F(
"GetaHO11D0",
"", 23, -11.5, 11.5);
4920 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone(
"GetaHO11DF");
4923 for (
int jphi = 0; jphi < 18; jphi++) {
4924 for (
int i = 0;
i < nx;
i++) {
4925 double ccc1 = alexall[
jeta][jphi][
i];
4926 int neweta =
jeta - 11 - 0.5;
4928 neweta =
jeta - 11 + 1.5;
4930 GetaHO11D->Fill(neweta, ccc1);
4931 GetaHO11D0->Fill(neweta, 1.);
4938 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1,
"B");
4941 GetaHO11DF->SetBinError(
jeta, 0.01);
4945 GetaHO11DF->SetMarkerStyle(20);
4946 GetaHO11DF->SetMarkerSize(1.4);
4947 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4948 GetaHO11DF->SetXTitle(
"#eta \b");
4949 GetaHO11DF->SetYTitle(
" <A> \b");
4950 GetaHO11DF->SetZTitle(
"<A>_ETA - All \b");
4951 GetaHO11DF->SetMarkerColor(4);
4952 GetaHO11DF->SetLineColor(4);
4953 GetaHO11DF->SetMinimum(0.8);
4954 GetaHO11DF->Draw(
"Error");
4958 cRBX1->Print(
"RBX-HO-11Dplot.png");
4974 gStyle->SetOptStat(1110000);
4975 cout <<
" RBX HO Ratio plots *****" << endl;
4984 cRBX31->Divide(3, 1);
4988 TH1F *Gho51 =
new TH1F(
"Gho51",
"", nx, 1., nx + 1.);
4989 TH1F *Gho50 =
new TH1F(
"Gho50",
"", nx, 1., nx + 1.);
4990 TH1F *Gho5 = (TH1F *)Gho50->Clone(
"Gho5");
4992 for (
int j = 1;
j <= ny;
j++) {
4993 ccc0HO = Gho1->GetBinContent(1,
j);
4996 for (
int i = 1;
i <= nx;
i++) {
4997 double ccc2 = Gho1->GetBinContent(
i,
j);
5005 for (
int i = 1;
i <= nx;
i++) {
5006 double ccc1 = Gho1->GetBinContent(
i,
j);
5008 double Rij = ccc1 / ccc0HO;
5010 Gho51->Fill(
float(
i), Rij);
5011 Gho50->Fill(
float(
i), 1.);
5016 Gho5->Divide(Gho51, Gho50, 1, 1,
"B");
5017 for (
int i = 1;
i <= nx;
i++) {
5018 Gho5->SetBinError(
i, 0.0001);
5020 Gho5->SetMarkerStyle(20);
5021 Gho5->SetMarkerSize(0.4);
5022 Gho5->GetYaxis()->SetLabelSize(0.04);
5023 Gho5->SetMarkerColor(2);
5024 Gho5->SetLineColor(0);
5025 Gho5->SetXTitle(
" iLS \b");
5026 Gho5->SetYTitle(
" <R> \b");
5027 Gho5->SetTitle(
"<Ri> vs iLS \b");
5028 Gho5->SetMinimum(0.);
5033 Gho5->GetYaxis()->SetLabelSize(0.025);
5034 Gho5->Draw(
"Error");
5037 TH2F *Gho60 =
new TH2F(
"Gho60",
"", 22, -11., 11., 18, 0., 18.);
5038 TH2F *Gho61 =
new TH2F(
"Gho61",
"", 22, -11., 11., 18, 0., 18.);
5039 TH2F *Gho6 =
new TH2F(
"Gho6",
"", 22, -11., 11., 18, 0., 18.);
5041 TH2F *G20ho60 =
new TH2F(
"G20ho60",
"", 22, -11., 11., 18, 0., 18.);
5042 TH2F *G20ho61 =
new TH2F(
"G20ho61",
"", 22, -11., 11., 18, 0., 18.);
5043 TH2F *G20ho6 =
new TH2F(
"G20ho6",
"", 22, -11., 11., 18, 0., 18.);
5044 TH2F *G30ho60 =
new TH2F(
"G30ho60",
"", 22, -11., 11., 18, 0., 18.);
5045 TH2F *G30ho61 =
new TH2F(
"G30ho61",
"", 22, -11., 11., 18, 0., 18.);
5046 TH2F *G30ho6 =
new TH2F(
"G30ho6",
"", 22, -11., 11., 18, 0., 18.);
5047 TH2F *G40ho60 =
new TH2F(
"G40ho60",
"", 22, -11., 11., 18, 0., 18.);
5048 TH2F *G40ho61 =
new TH2F(
"G40ho61",
"", 22, -11., 11., 18, 0., 18.);
5049 TH2F *G40ho6 =
new TH2F(
"G40ho6",
"", 22, -11., 11., 18, 0., 18.);
5056 double meanjHO = 0.;
5057 for (
int j = 1;
j <= ny;
j++) {
5058 ccc0HO = Gho1->GetBinContent(1,
j);
5060 for (
int i = 1;
i <= nx;
i++) {
5061 double ccc2 = Gho1->GetBinContent(
i,
j);
5068 for (
int i = 1;
i <= nx;
i++) {
5069 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5075 meanjHO = sumjHO / njHO;
5079 double ssumjHO = 0.;
5081 double sigmajHO = 0.;
5082 for (
int j = 1;
j <= ny;
j++) {
5083 ccc0HO = Gho1->GetBinContent(1,
j);
5085 for (
int i = 1;
i <= nx;
i++) {
5086 double ccc2 = Gho1->GetBinContent(
i,
j);
5093 for (
int i = 1;
i <= nx;
i++) {
5094 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5096 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5100 sigmajHO =
sqrt(ssumjHO / njHO);
5104 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5105 if (dif3rmsHOMIN < 0.)
5107 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5108 cout <<
"22HO-2 meanjHO= " << meanjHO <<
" sigmajHO= " << sigmajHO <<
" dif3rmsHOMIN= " << dif3rmsHOMIN
5109 <<
" dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5111 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5112 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5113 if (MAXdif3rmsHOMIN < 0.95)
5114 MAXdif3rmsHOMIN = 0.95;
5115 if (MINdif3rmsHOMAX > 1.05)
5116 MINdif3rmsHOMAX = 1.05;
5117 cout <<
"22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5119 for (
int j = 1;
j <= ny;
j++) {
5120 ccc0HO = Gho1->GetBinContent(1,
j);
5122 for (
int i = 1;
i <= nx;
i++) {
5123 double ccc2 = Gho1->GetBinContent(
i,
j);
5130 int jeta = (
j - 1) / 18;
5131 int jphi = (
j - 1) - 18 *
jeta;
5133 for (
int i = 1;
i <= nx;
i++) {
5134 double ccc1 = Gho1->GetBinContent(
i,
j);
5136 double Rij = ccc1 / ccc0HO;
5137 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5138 Gho61->Fill(
jeta - 11, jphi, Rij);
5139 Gho60->Fill(
jeta - 11, jphi, 1.);
5141 if (Rij < 0.8 || Rij > 1.2) {
5142 G20ho61->Fill(
jeta - 11, jphi, Rij);
5143 G20ho60->Fill(
jeta - 11, jphi, 1.);
5145 if (Rij < 0.7 || Rij > 1.3) {
5146 G30ho61->Fill(
jeta - 11, jphi, Rij);
5147 G30ho60->Fill(
jeta - 11, jphi, 1.);
5149 if (Rij < 0.6 || Rij > 1.4) {
5150 G40ho61->Fill(
jeta - 11, jphi, Rij);
5151 G40ho60->Fill(
jeta - 11, jphi, 1.);
5157 Gho6->Divide(Gho61, Gho60, 1, 1,
"B");
5158 G20ho6->Divide(G20ho61, G20ho60, 1, 1,
"B");
5159 G30ho6->Divide(G30ho61, G30ho60, 1, 1,
"B");
5160 G40ho6->Divide(G40ho61, G40ho60, 1, 1,
"B");
5163 Gho6->GetZaxis()->SetLabelSize(0.025);
5165 Gho6->SetXTitle(
" #eta \b");
5166 Gho6->SetYTitle(
" #phi \b");
5168 "<Rj> for |1-<R>| > 0.05 \b");
5174 TH1F *Gho7 =
new TH1F(
"Gho7",
"", 120, 0.4, 1.6);
5176 for (
int j = 1;
j <= ny;
j++) {
5177 ccc0HO = Gho1->GetBinContent(1,
j);
5179 for (
int i = 1;
i <= nx;
i++) {
5180 double ccc2 = Gho1->GetBinContent(
i,
j);
5188 for (
int i = 1;
i <= nx;
i++) {
5189 double ccc1 = Gho1->GetBinContent(
i,
j);
5191 double Rij = ccc1 / ccc0HO;
5197 Gho7->SetMarkerStyle(20);
5198 Gho7->SetMarkerSize(0.4);
5199 Gho7->GetYaxis()->SetLabelSize(0.04);
5200 Gho7->SetMarkerColor(2);
5201 Gho7->SetLineColor(0);
5202 Gho7->SetYTitle(
" N \b");
5203 Gho7->SetXTitle(
" Rij \b");
5204 Gho7->SetTitle(
" Rij \b");
5209 Gho7->GetYaxis()->SetLabelSize(0.025);
5210 Gho7->Draw(
"Error");
5211 Float_t ymaxHO = Gho7->GetMaximum();
5212 cout <<
"22HO-3 ymaxHO= " << ymaxHO <<
" MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5213 <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5214 TLine *lineHO =
new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5215 lineHO->SetLineColor(kBlue);
5217 TLine *line1HO =
new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5218 line1HO->SetLineColor(kBlue);
5223 cRBX31->Print(
"RBX-HO-3plots.png");
5258 gStyle->SetOptStat(1110000);
5259 cout <<
" RBX HO Ratio plotsmore *****" << endl;
5262 cRBX31->Divide(3, 1);
5265 G20ho6->GetZaxis()->SetLabelSize(0.025);
5266 G20ho6->SetXTitle(
" #eta \b");
5267 G20ho6->SetYTitle(
" #phi \b");
5268 G20ho6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5269 G20ho6->SetStats(0);
5270 G20ho6->Draw(
"COLZ");
5273 G30ho6->GetZaxis()->SetLabelSize(0.025);
5274 G30ho6->SetXTitle(
" #eta \b");
5275 G30ho6->SetYTitle(
" #phi \b");
5276 G30ho6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5277 G30ho6->SetStats(0);
5278 G30ho6->Draw(
"COLZ");
5281 G40ho6->GetZaxis()->SetLabelSize(0.025);
5282 G40ho6->SetXTitle(
" #eta \b");
5283 G40ho6->SetYTitle(
" #phi \b");
5284 G40ho6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5285 G40ho6->SetStats(0);
5286 G40ho6->Draw(
"COLZ");
5291 cRBX31->Print(
"RBX-HO-3plotsmore.png");
5301 gStyle->SetOptStat(0);
5304 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5305 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5306 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5307 for (
int jphi = 0; jphi < njphi; jphi++) {
5309 for (
int i = 0;
i < nx;
i++) {
5310 alexall[
jeta][jphi][
i] = 0.;
5321 cout <<
" RBX general for HF **************************" << endl;
5322 TH2F *Ghf1KKK = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs3");
5323 TH2F *Ghf1LLL = (TH2F *)hfile->Get(
"h_2DsumADCAmplEtaPhiLs30");
5324 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone(
"Ghf1");
5325 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1,
"B");
5329 ny = Ghf1->GetYaxis()->GetNbins();
5330 for (
int j = 1;
j <= ny;
j++) {
5331 int jeta = (
j - 1) / njphi;
5332 if (jeta < 4 || jeta > 17) {
5333 int jphi = (
j - 1) - njphi *
jeta;
5336 for (
int i = 1;
i <= nx;
i++) {
5337 double ccc1 = Ghf1->GetBinContent(
i,
j);
5338 alexall[
jeta][jphi][
i - 1] = ccc1;
5351 for (
int jphi = 0; jphi < njphi; jphi++) {
5352 for (
int i = 0;
i < nx;
i++) {
5353 double sumccc1 = 0.;
5356 double ccc1 = alexall[
jeta][jphi][
i];
5364 alexhf[jphi][
i] = sumccc1;
5368 for (
int keta = 0; keta < njeta; keta++) {
5369 for (
int i = 0;
i < nx;
i++) {
5370 double sumccc1 = 0.;
5372 for (
int kphi = 0; kphi < njphi; kphi++) {
5373 double ccc1 = alexall[keta][kphi][
i];
5381 blexhf[keta][
i] = sumccc1;
5390 cout <<
" RBX HF 2D plot *****" << endl;
5393 cRBX1->Divide(1, 1);
5396 TH2F *Ghf42D =
new TH2F(
"Ghf42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
5397 TH2F *Ghf42D0 =
new TH2F(
"Ghf42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
5400 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone(
"Ghf42DF");
5401 for (
int jphi = 0; jphi < njphi; jphi++) {
5403 for (
int i = 0;
i < nx;
i++) {
5404 double ccc1 = alexall[
jeta][jphi][
i];
5405 int neweta =
jeta - 11 - 0.5;
5407 neweta =
jeta - 11 + 1.5;
5409 Ghf42D->Fill(neweta, jphi, ccc1);
5410 Ghf42D0->Fill(neweta, jphi, 1.);
5416 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1,
"B");
5420 Ghf42DF->SetMarkerStyle(20);
5421 Ghf42DF->SetMarkerSize(0.4);
5422 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5423 Ghf42DF->SetXTitle(
"<A>_RBX #eta \b");
5424 Ghf42DF->SetYTitle(
" #phi \b");
5425 Ghf42DF->SetZTitle(
"<A>_RBX - All \b");
5426 Ghf42DF->SetMarkerColor(2);
5427 Ghf42DF->SetLineColor(2);
5428 Ghf42DF->Draw(
"COLZ");
5432 cRBX1->Print(
"RBX-HF-2Dplot.png");
5447 cout <<
" RBX HF 1D plot *****" << endl;
5450 cRBX1->Divide(1, 1);
5452 TH1F *GphiHF1D =
new TH1F(
"GphiHF1D",
"", 18, 0., 18.);
5453 TH1F *GphiHF1D0 =
new TH1F(
"GphiHF1D0",
"", 18, 0., 18.);
5454 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone(
"GphiHF1DF");
5455 for (
int jphi = 0; jphi < 18; jphi++) {
5457 for (
int i = 0;
i < nx;
i++) {
5458 double ccc1 = alexall[
jeta][jphi][
i];
5460 GphiHF1D->Fill(jphi, ccc1);
5461 GphiHF1D0->Fill(jphi, 1.);
5467 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1,
"B");
5469 for (
int jphi = 1; jphi < 19; jphi++) {
5470 GphiHF1DF->SetBinError(jphi, 0.01);
5474 GphiHF1DF->SetMarkerStyle(20);
5475 GphiHF1DF->SetMarkerSize(1.4);
5476 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5477 GphiHF1DF->SetXTitle(
"PHI of RBX\b");
5478 GphiHF1DF->SetYTitle(
" <Amplitude> \b");
5479 GphiHF1DF->SetZTitle(
"<A>_PHI - All \b");
5480 GphiHF1DF->SetMarkerColor(4);
5481 GphiHF1DF->SetLineColor(4);
5482 GphiHF1DF->SetMinimum(0.8);
5483 GphiHF1DF->Draw(
"Error");
5486 cRBX1->Print(
"RBX-HF-1Dplot.png");
5501 cout <<
" RBX HF 11D plot *eta*" << endl;
5504 cRBX1->Divide(1, 1);
5506 TH1F *GetaHF11D =
new TH1F(
"GetaHF11D",
"", 23, -11.5, 11.5);
5507 TH1F *GetaHF11D0 =
new TH1F(
"GetaHF11D0",
"", 23, -11.5, 11.5);
5508 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone(
"GetaHF11DF");
5511 for (
int jphi = 0; jphi < 18; jphi++) {
5512 for (
int i = 0;
i < nx;
i++) {
5513 double ccc1 = alexall[
jeta][jphi][
i];
5514 int neweta =
jeta - 11 - 0.5;
5516 neweta =
jeta - 11 + 1.5;
5518 GetaHF11D->Fill(neweta, ccc1);
5519 GetaHF11D0->Fill(neweta, 1.);
5526 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1,
"B");
5529 GetaHF11DF->SetBinError(
jeta, 0.01);
5533 GetaHF11DF->SetMarkerStyle(20);
5534 GetaHF11DF->SetMarkerSize(1.4);
5535 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5536 GetaHF11DF->SetXTitle(
"#eta \b");
5537 GetaHF11DF->SetYTitle(
" <A> \b");
5538 GetaHF11DF->SetZTitle(
"<A>_ETA - All \b");
5539 GetaHF11DF->SetMarkerColor(4);
5540 GetaHF11DF->SetLineColor(4);
5541 GetaHF11DF->SetMinimum(0.8);
5542 GetaHF11DF->Draw(
"Error");
5546 cRBX1->Print(
"RBX-HF-11Dplot.png");
5562 gStyle->SetOptStat(1110000);
5563 cout <<
" RBX HF Ratio plots *****" << endl;
5572 cRBX31->Divide(3, 1);
5576 TH1F *Ghf51 =
new TH1F(
"Ghf51",
"", nx, 1., nx + 1.);
5577 TH1F *Ghf50 =
new TH1F(
"Ghf50",
"", nx, 1., nx + 1.);
5578 TH1F *Ghf5 = (TH1F *)Ghf50->Clone(
"Ghf5");
5580 for (
int j = 1;
j <= ny;
j++) {
5581 ccc0HF = Ghf1->GetBinContent(1,
j);
5584 for (
int i = 1;
i <= nx;
i++) {
5585 double ccc2 = Ghf1->GetBinContent(
i,
j);
5593 for (
int i = 1;
i <= nx;
i++) {
5594 double ccc1 = Ghf1->GetBinContent(
i,
j);
5596 double Rij = ccc1 / ccc0HF;
5598 Ghf51->Fill(
float(
i), Rij);
5599 Ghf50->Fill(
float(
i), 1.);
5604 Ghf5->Divide(Ghf51, Ghf50, 1, 1,
"B");
5605 for (
int i = 1;
i <= nx;
i++) {
5606 Ghf5->SetBinError(
i, 0.0001);
5608 Ghf5->SetMarkerStyle(20);
5609 Ghf5->SetMarkerSize(0.4);
5610 Ghf5->GetYaxis()->SetLabelSize(0.04);
5611 Ghf5->SetMarkerColor(2);
5612 Ghf5->SetLineColor(0);
5613 Ghf5->SetXTitle(
" iLS \b");
5614 Ghf5->SetYTitle(
" <R> \b");
5615 Ghf5->SetTitle(
"<Ri> vs iLS \b");
5616 Ghf5->SetMinimum(0.);
5621 Ghf5->GetYaxis()->SetLabelSize(0.025);
5622 Ghf5->Draw(
"Error");
5625 TH2F *Ghf60 =
new TH2F(
"Ghf60",
"", 22, -11., 11., 18, 0., 18.);
5626 TH2F *Ghf61 =
new TH2F(
"Ghf61",
"", 22, -11., 11., 18, 0., 18.);
5627 TH2F *Ghf6 =
new TH2F(
"Ghf6",
"", 22, -11., 11., 18, 0., 18.);
5629 TH2F *G20hf60 =
new TH2F(
"G20hf60",
"", 22, -11., 11., 18, 0., 18.);
5630 TH2F *G20hf61 =
new TH2F(
"G20hf61",
"", 22, -11., 11., 18, 0., 18.);
5631 TH2F *G20hf6 =
new TH2F(
"G20hf6",
"", 22, -11., 11., 18, 0., 18.);
5632 TH2F *G30hf60 =
new TH2F(
"G30hf60",
"", 22, -11., 11., 18, 0., 18.);
5633 TH2F *G30hf61 =
new TH2F(
"G30hf61",
"", 22, -11., 11., 18, 0., 18.);
5634 TH2F *G30hf6 =
new TH2F(
"G30hf6",
"", 22, -11., 11., 18, 0., 18.);
5635 TH2F *G40hf60 =
new TH2F(
"G40hf60",
"", 22, -11., 11., 18, 0., 18.);
5636 TH2F *G40hf61 =
new TH2F(
"G40hf61",
"", 22, -11., 11., 18, 0., 18.);
5637 TH2F *G40hf6 =
new TH2F(
"G40hf6",
"", 22, -11., 11., 18, 0., 18.);
5643 double meanjHF = 0.;
5644 for (
int j = 1;
j <= ny;
j++) {
5645 ccc0HF = Ghf1->GetBinContent(1,
j);
5647 for (
int i = 1;
i <= nx;
i++) {
5648 double ccc2 = Ghf1->GetBinContent(
i,
j);
5655 for (
int i = 1;
i <= nx;
i++) {
5656 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5662 meanjHF = sumjHF / njHF;
5666 double ssumjHF = 0.;
5668 double sigmajHF = 0.;
5669 for (
int j = 1;
j <= ny;
j++) {
5670 ccc0HF = Ghf1->GetBinContent(1,
j);
5672 for (
int i = 1;
i <= nx;
i++) {
5673 double ccc2 = Ghf1->GetBinContent(
i,
j);
5680 for (
int i = 1;
i <= nx;
i++) {
5681 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5683 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5687 sigmajHF =
sqrt(ssumjHF / njHF);
5691 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5692 if (dif3rmsHFMIN < 0.)
5694 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5695 cout <<
"22HF-2 meanjHF= " << meanjHF <<
" sigmajHF= " << sigmajHF <<
" dif3rmsHFMIN= " << dif3rmsHFMIN
5696 <<
" dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5698 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5699 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5700 if (MAXdif3rmsHFMIN < 0.95)
5701 MAXdif3rmsHFMIN = 0.95;
5702 if (MINdif3rmsHFMAX > 1.05)
5703 MINdif3rmsHFMAX = 1.05;
5704 cout <<
"22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5706 for (
int j = 1;
j <= ny;
j++) {
5707 ccc0HF = Ghf1->GetBinContent(1,
j);
5709 for (
int i = 1;
i <= nx;
i++) {
5710 double ccc2 = Ghf1->GetBinContent(
i,
j);
5717 int jeta = (
j - 1) / 18;
5718 int jphi = (
j - 1) - 18 *
jeta;
5720 for (
int i = 1;
i <= nx;
i++) {
5721 double ccc1 = Ghf1->GetBinContent(
i,
j);
5723 double Rij = ccc1 / ccc0HF;
5724 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5725 Ghf61->Fill(
jeta - 11, jphi, Rij);
5726 Ghf60->Fill(
jeta - 11, jphi, 1.);
5728 if (Rij < 0.8 || Rij > 1.2) {
5729 G20hf61->Fill(
jeta - 11, jphi, Rij);
5730 G20hf60->Fill(
jeta - 11, jphi, 1.);
5732 if (Rij < 0.7 || Rij > 1.3) {
5733 G30hf61->Fill(
jeta - 11, jphi, Rij);
5734 G30hf60->Fill(
jeta - 11, jphi, 1.);
5736 if (Rij < 0.6 || Rij > 1.4) {
5737 G40hf61->Fill(
jeta - 11, jphi, Rij);
5738 G40hf60->Fill(
jeta - 11, jphi, 1.);
5744 Ghf6->Divide(Ghf61, Ghf60, 1, 1,
"B");
5745 G20hf6->Divide(G20hf61, G20hf60, 1, 1,
"B");
5746 G30hf6->Divide(G30hf61, G30hf60, 1, 1,
"B");
5747 G40hf6->Divide(G40hf61, G40hf60, 1, 1,
"B");
5750 Ghf6->GetZaxis()->SetLabelSize(0.025);
5752 Ghf6->SetXTitle(
" #eta \b");
5753 Ghf6->SetYTitle(
" #phi \b");
5755 "<Rj> for |1-<R>| > 0.05 \b");
5761 TH1F *Ghf7 =
new TH1F(
"Ghf7",
"", 120, 0.4, 1.6);
5763 for (
int j = 1;
j <= ny;
j++) {
5764 ccc0HF = Ghf1->GetBinContent(1,
j);
5766 for (
int i = 1;
i <= nx;
i++) {
5767 double ccc2 = Ghf1->GetBinContent(
i,
j);
5775 for (
int i = 1;
i <= nx;
i++) {
5776 double ccc1 = Ghf1->GetBinContent(
i,
j);
5778 double Rij = ccc1 / ccc0HF;
5784 Ghf7->SetMarkerStyle(20);
5785 Ghf7->SetMarkerSize(0.4);
5786 Ghf7->GetYaxis()->SetLabelSize(0.04);
5787 Ghf7->SetMarkerColor(2);
5788 Ghf7->SetLineColor(0);
5789 Ghf7->SetYTitle(
" N \b");
5790 Ghf7->SetXTitle(
" Rij \b");
5791 Ghf7->SetTitle(
" Rij \b");
5796 Ghf7->GetYaxis()->SetLabelSize(0.025);
5797 Ghf7->Draw(
"Error");
5798 Float_t ymaxHF = Ghf7->GetMaximum();
5799 cout <<
"22HF-3 ymaxHF= " << ymaxHF <<
" MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5800 <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5801 TLine *lineHF =
new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5802 lineHF->SetLineColor(kBlue);
5804 TLine *line1HF =
new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5805 line1HF->SetLineColor(kBlue);
5810 cRBX31->Print(
"RBX-HF-3plots.png");
5845 gStyle->SetOptStat(1110000);
5846 cout <<
" RBX HF Ratio plotsmore *****" << endl;
5849 cRBX31->Divide(3, 1);
5852 G20hf6->GetZaxis()->SetLabelSize(0.025);
5853 G20hf6->SetXTitle(
" #eta \b");
5854 G20hf6->SetYTitle(
" #phi \b");
5855 G20hf6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5856 G20hf6->SetStats(0);
5857 G20hf6->Draw(
"COLZ");
5860 G30hf6->GetZaxis()->SetLabelSize(0.025);
5861 G30hf6->SetXTitle(
" #eta \b");
5862 G30hf6->SetYTitle(
" #phi \b");
5863 G30hf6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5864 G30hf6->SetStats(0);
5865 G30hf6->Draw(
"COLZ");
5868 G40hf6->GetZaxis()->SetLabelSize(0.025);
5869 G40hf6->SetXTitle(
" #eta \b");
5870 G40hf6->SetYTitle(
" #phi \b");
5871 G40hf6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5872 G40hf6->SetStats(0);
5873 G40hf6->Draw(
"COLZ");
5878 cRBX31->Print(
"RBX-HF-3plotsmore.png");
5888 gStyle->SetOptStat(0);
5890 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5891 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5892 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5900 int mymaxbins = MaxLum;
5906 TH2F *occhbm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBM");
5907 TH1F *uyhbm =
new TH1F(
"uyhbm",
"", mymaxbins, 1., mymaxbins + 1.);
5908 for (
int i = 1;
i <= occhbm->GetXaxis()->GetNbins();
i++) {
5909 double ccc1 = occhbm->GetBinContent(
i);
5912 uyhbm->Fill(
float(
i), ccc1);
5915 uyhbm->SetMarkerStyle(20);
5916 uyhbm->SetMarkerSize(0.6);
5917 uyhbm->GetYaxis()->SetLabelSize(0.04);
5918 uyhbm->SetXTitle(
"min/av occupancy - HBM \b");
5919 uyhbm->SetMarkerColor(2);
5920 uyhbm->SetLineColor(0);
5921 uyhbm->SetMaximum(1.0);
5922 uyhbm->SetMinimum(0.2);
5924 uyhbm->Draw(
"Error");
5927 TH2F *occhbp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HBP");
5928 TH1F *uyhbp =
new TH1F(
"uyhbp",
"", mymaxbins, 1., mymaxbins + 1.);
5929 for (
int i = 1;
i <= occhbp->GetXaxis()->GetNbins();
i++) {
5930 double ccc1 = occhbp->GetBinContent(
i);
5933 uyhbp->Fill(
float(
i), ccc1);
5936 uyhbp->SetMarkerStyle(20);
5937 uyhbp->SetMarkerSize(0.6);
5938 uyhbp->GetYaxis()->SetLabelSize(0.04);
5939 uyhbp->SetXTitle(
"min/av occupancy - HBP \b");
5940 uyhbp->SetMarkerColor(2);
5941 uyhbp->SetLineColor(0);
5942 uyhbp->SetMaximum(1.0);
5943 uyhbp->SetMinimum(0.2);
5945 uyhbp->Draw(
"Error");
5950 cHB->Print(Form(
"OccPlots_HB.png"));
5970 TH2F *occhem = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEM");
5971 TH1F *uyhem =
new TH1F(
"uyhem",
"", mymaxbins, 1., mymaxbins + 1.);
5972 for (
int i = 1;
i <= occhem->GetXaxis()->GetNbins();
i++) {
5973 double ccc1 = occhem->GetBinContent(
i);
5976 uyhem->Fill(
float(
i), ccc1);
5979 uyhem->SetMarkerStyle(20);
5980 uyhem->SetMarkerSize(0.6);
5981 uyhem->GetYaxis()->SetLabelSize(0.04);
5982 uyhem->SetXTitle(
"min/av occupancy - HEM \b");
5983 uyhem->SetMarkerColor(2);
5984 uyhem->SetLineColor(0);
5985 uyhem->SetMaximum(1.0);
5986 uyhem->SetMinimum(0.2);
5988 uyhem->Draw(
"Error");
5991 TH2F *occhep = (TH2F *)hfile->Get(
"h_RatioOccupancy_HEP");
5992 TH1F *uyhep =
new TH1F(
"uyhep",
"", mymaxbins, 1., mymaxbins + 1.);
5993 for (
int i = 1;
i <= occhep->GetXaxis()->GetNbins();
i++) {
5994 double ccc1 = occhep->GetBinContent(
i);
5997 uyhep->Fill(
float(
i), ccc1);
6000 uyhep->SetMarkerStyle(20);
6001 uyhep->SetMarkerSize(0.6);
6002 uyhep->GetYaxis()->SetLabelSize(0.04);
6003 uyhep->SetXTitle(
"min/av occupancy - HEP \b");
6004 uyhep->SetMarkerColor(2);
6005 uyhep->SetLineColor(0);
6006 uyhep->SetMaximum(1.0);
6007 uyhep->SetMinimum(0.2);
6009 uyhep->Draw(
"Error");
6014 cHB->Print(Form(
"OccPlots_HE.png"));
6034 TH2F *occhom = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOM");
6035 TH1F *uyhom =
new TH1F(
"uyhom",
"", mymaxbins, 1., mymaxbins + 1.);
6036 for (
int i = 1;
i <= occhom->GetXaxis()->GetNbins();
i++) {
6037 double ccc1 = occhom->GetBinContent(
i);
6040 uyhom->Fill(
float(
i), ccc1);
6043 uyhom->SetMarkerStyle(20);
6044 uyhom->SetMarkerSize(0.6);
6045 uyhom->GetYaxis()->SetLabelSize(0.04);
6046 uyhom->SetXTitle(
"min/av occupancy - HOM \b");
6047 uyhom->SetMarkerColor(2);
6048 uyhom->SetLineColor(0);
6049 uyhom->SetMaximum(1.0);
6050 uyhom->SetMinimum(0.2);
6052 uyhom->Draw(
"Error");
6055 TH2F *occhop = (TH2F *)hfile->Get(
"h_RatioOccupancy_HOP");
6056 TH1F *uyhop =
new TH1F(
"uyhop",
"", mymaxbins, 1., mymaxbins + 1.);
6057 for (
int i = 1;
i <= occhop->GetXaxis()->GetNbins();
i++) {
6058 double ccc1 = occhop->GetBinContent(
i);
6061 uyhop->Fill(
float(
i), ccc1);
6064 uyhop->SetMarkerStyle(20);
6065 uyhop->SetMarkerSize(0.6);
6066 uyhop->GetYaxis()->SetLabelSize(0.04);
6067 uyhop->SetXTitle(
"min/av occupancy - HOP \b");
6068 uyhop->SetMarkerColor(2);
6069 uyhop->SetLineColor(0);
6070 uyhop->SetMaximum(1.0);
6071 uyhop->SetMinimum(0.2);
6073 uyhop->Draw(
"Error");
6078 cHB->Print(Form(
"OccPlots_HO.png"));
6098 TH2F *occhfm = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFM");
6099 TH1F *uyhfm =
new TH1F(
"uyhfm",
"", mymaxbins, 1., mymaxbins + 1.);
6100 for (
int i = 1;
i <= occhfm->GetXaxis()->GetNbins();
i++) {
6101 double ccc1 = occhfm->GetBinContent(
i);
6104 uyhfm->Fill(
float(
i), ccc1);
6107 uyhfm->SetMarkerStyle(20);
6108 uyhfm->SetMarkerSize(0.6);
6109 uyhfm->GetYaxis()->SetLabelSize(0.04);
6110 uyhfm->SetXTitle(
"min/av occupancy - HFM \b");
6111 uyhfm->SetMarkerColor(2);
6112 uyhfm->SetLineColor(0);
6113 uyhfm->SetMaximum(1.0);
6114 uyhfm->SetMinimum(0.2);
6116 uyhfm->Draw(
"Error");
6119 TH2F *occhfp = (TH2F *)hfile->Get(
"h_RatioOccupancy_HFP");
6120 TH1F *uyhfp =
new TH1F(
"uyhfp",
"", mymaxbins, 1., mymaxbins + 1.);
6121 for (
int i = 1;
i <= occhfp->GetXaxis()->GetNbins();
i++) {
6122 double ccc1 = occhfp->GetBinContent(
i);
6125 uyhfp->Fill(
float(
i), ccc1);
6128 uyhfp->SetMarkerStyle(20);
6129 uyhfp->SetMarkerSize(0.6);
6130 uyhfp->GetYaxis()->SetLabelSize(0.04);
6131 uyhfp->SetXTitle(
"min/av occupancy - HFP \b");
6132 uyhfp->SetMarkerColor(2);
6133 uyhfp->SetLineColor(0);
6134 uyhfp->SetMaximum(1.0);
6135 uyhfp->SetMinimum(0.2);
6137 uyhfp->Draw(
"Error");
6142 cHB->Print(Form(
"OccPlots_HF.png"));
6155 std::cout <<
"************>>> occupancy plots done" << std::endl;
6162 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots " << endl;
6163 int maxbins = MaxLum;
6164 cout <<
">>>> maxbins = " << maxbins << endl;
6165 TH1F *SummedAmplitudeHisto[4];
6166 SummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HB");
6167 SummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HE");
6168 SummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HO");
6169 SummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALsumamplitude_HF");
6170 TH1F *SummedAmplitudeOccupancyHisto[4];
6171 SummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HB");
6172 SummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HE");
6173 SummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HO");
6174 SummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averSIGNALoccupancy_HF");
6175 for (
int sub = 0; sub < 4; sub++) {
6179 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6181 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6183 if (SummedAmplitudeHisto[sub])
6184 ccc1 = SummedAmplitudeHisto[sub]->GetBinContent(
i);
6187 kslpq->Fill(
float(
i), ccc1);
6190 kslpq->SetMarkerStyle(20);
6191 kslpq->SetMarkerSize(0.8);
6192 kslpq->GetYaxis()->SetLabelSize(0.04);
6193 kslpq->SetXTitle(
"SumA of channels w/ signal per LS \b");
6194 kslpq->SetMarkerColor(2);
6195 kslpq->SetLineColor(0);
6198 kslpq->Draw(
"Error");
6201 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6202 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6204 if (SummedAmplitudeOccupancyHisto[sub])
6205 ccc1 = SummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6208 pqmks->Fill(
float(
i), ccc1);
6211 pqmks->SetMarkerStyle(20);
6212 pqmks->SetMarkerSize(0.8);
6213 pqmks->GetYaxis()->SetLabelSize(0.04);
6214 pqmks->SetXTitle(
"Occupancy of channels w/ signal per LS \b");
6215 pqmks->SetMarkerColor(4);
6216 pqmks->SetLineColor(0);
6219 pqmks->Draw(
"Error");
6222 cHE->Print(
"SummedAmplitudesSignal_HB.png");
6224 cHE->Print(
"SummedAmplitudesSignal_HE.png");
6226 cHE->Print(
"SummedAmplitudesSignal_HO.png");
6228 cHE->Print(
"SummedAmplitudesSignal_HF.png");
6241 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots NoSignal " << endl;
6242 TH1F *NoSignalSummedAmplitudeHisto[4];
6243 NoSignalSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HB");
6244 NoSignalSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HE");
6245 NoSignalSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HO");
6246 NoSignalSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALsumamplitude_HF");
6247 TH1F *NoSignalSummedAmplitudeOccupancyHisto[4];
6248 NoSignalSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HB");
6249 NoSignalSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HE");
6250 NoSignalSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HO");
6251 NoSignalSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_averNOSIGNALoccupancy_HF");
6252 for (
int sub = 0; sub < 4; sub++) {
6257 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6258 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6260 if (NoSignalSummedAmplitudeHisto[sub])
6261 ccc1 = NoSignalSummedAmplitudeHisto[sub]->GetBinContent(
i);
6264 kslpq->Fill(
float(
i), ccc1);
6267 kslpq->SetMarkerStyle(20);
6268 kslpq->SetMarkerSize(0.8);
6269 kslpq->GetYaxis()->SetLabelSize(0.04);
6270 kslpq->SetXTitle(
"SumA of channels w/o signal per LS \b");
6271 kslpq->SetMarkerColor(2);
6272 kslpq->SetLineColor(0);
6274 kslpq->SetMaximum(20000.);
6275 kslpq->SetMinimum(5000.);
6276 }
else if (sub == 1) {
6277 kslpq->SetMaximum(40000.);
6278 kslpq->SetMinimum(0.);
6279 }
else if (sub == 2) {
6280 kslpq->SetMaximum(10000.);
6281 kslpq->SetMinimum(15000.);
6282 }
else if (sub == 3) {
6283 kslpq->SetMaximum(100000.);
6284 kslpq->SetMinimum(0.);
6287 kslpq->Draw(
"Error");
6290 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6291 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6293 if (NoSignalSummedAmplitudeOccupancyHisto[sub])
6294 ccc1 = NoSignalSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6297 pqmks->Fill(
float(
i), ccc1);
6300 pqmks->SetMarkerStyle(20);
6301 pqmks->SetMarkerSize(0.8);
6302 pqmks->GetYaxis()->SetLabelSize(0.04);
6303 pqmks->SetXTitle(
"Occupancy of channels w/o signal per LS \b");
6304 pqmks->SetMarkerColor(4);
6305 pqmks->SetLineColor(0);
6307 pqmks->SetMaximum(600.);
6308 pqmks->SetMinimum(200.);
6309 }
else if (sub == 1) {
6310 pqmks->SetMaximum(910.);
6311 pqmks->SetMinimum(10.);
6312 }
else if (sub == 2) {
6313 pqmks->SetMaximum(200.);
6314 pqmks->SetMinimum(50.);
6315 }
else if (sub == 3) {
6316 pqmks->SetMaximum(866.);
6317 pqmks->SetMinimum(856.);
6320 pqmks->Draw(
"Error");
6323 cHE->Print(
"NoSignalSummedAmplitudes_HB.png");
6325 cHE->Print(
"NoSignalSummedAmplitudes_HE.png");
6327 cHE->Print(
"NoSignalSummedAmplitudes_HO.png");
6329 cHE->Print(
"NoSignalSummedAmplitudes_HF.png");
6343 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots Maxx " << endl;
6344 TH1F *MaxxSummedAmplitudeHisto[4];
6345 MaxxSummedAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HB");
6346 MaxxSummedAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HE");
6347 MaxxSummedAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HO");
6348 MaxxSummedAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_maxxSUMAmpl_HF");
6349 TH1F *MaxxSummedAmplitudeOccupancyHisto[4];
6350 MaxxSummedAmplitudeOccupancyHisto[0] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HB");
6351 MaxxSummedAmplitudeOccupancyHisto[1] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HE");
6352 MaxxSummedAmplitudeOccupancyHisto[2] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HO");
6353 MaxxSummedAmplitudeOccupancyHisto[3] = (TH1F *)hfile->Get(
"h_maxxOCCUP_HF");
6354 TH1F *SAmplitudeHisto[4];
6355 SAmplitudeHisto[0] = (TH1F *)hfile->Get(
"h_eventamplitude_HB");
6356 SAmplitudeHisto[1] = (TH1F *)hfile->Get(
"h_eventamplitude_HE");
6357 SAmplitudeHisto[2] = (TH1F *)hfile->Get(
"h_eventamplitude_HO");
6358 SAmplitudeHisto[3] = (TH1F *)hfile->Get(
"h_eventamplitude_HF");
6359 TH1F *OccupancyHisto[4];
6360 OccupancyHisto[0] = (TH1F *)hfile->Get(
"h_eventoccupancy_HB");
6361 OccupancyHisto[1] = (TH1F *)hfile->Get(
"h_eventoccupancy_HE");
6362 OccupancyHisto[2] = (TH1F *)hfile->Get(
"h_eventoccupancy_HO");
6363 OccupancyHisto[3] = (TH1F *)hfile->Get(
"h_eventoccupancy_HF");
6365 int countamplmaxHB = 0;
6366 int countamplmaxHE = 0;
6367 int countamplmaxHO = 0;
6368 int countamplmaxHF = 0;
6369 int countoccumaxHB = 0;
6370 int countoccumaxHE = 0;
6371 int countoccumaxHO = 0;
6372 int countoccumaxHF = 0;
6373 unsigned long int countamplHB = 0;
6374 unsigned long int countamplHE = 0;
6375 unsigned long int countamplHO = 0;
6376 unsigned long int countamplHF = 0;
6377 unsigned long int countoccuHB = 0;
6378 unsigned long int countoccuHE = 0;
6379 unsigned long int countoccuHO = 0;
6380 unsigned long int countoccuHF = 0;
6381 gStyle->SetOptStat(110000);
6382 for (
int sub = 0; sub < 4; sub++) {
6384 cFour->Divide(2, 2);
6387 TH1F *lpqxc =
new TH1F(
"lpqxc",
"", maxbins, 1., maxbins + 1.);
6388 for (
int i = 1;
i <= lpqxc->GetXaxis()->GetNbins();
i++) {
6390 if (MaxxSummedAmplitudeHisto[sub])
6391 ccc1 = MaxxSummedAmplitudeHisto[sub]->GetBinContent(
i);
6394 lpqxc->Fill(
float(
i), ccc1);
6395 if (sub == 0 && ccc1 > 60000.)
6397 if (sub == 1 && ccc1 > 60000.)
6399 if (sub == 2 && ccc1 > 150000.)
6401 if (sub == 3 && ccc1 > 22000.)
6405 lpqxc->SetMarkerStyle(20);
6406 lpqxc->SetMarkerSize(0.8);
6409 lpqxc->SetXTitle(
"HB: max SA over LS-events per LS \b");
6411 lpqxc->SetXTitle(
"HE: max SA over LS-events per LS \b");
6413 lpqxc->SetXTitle(
"HO: max SA over LS-events per LS \b");
6415 lpqxc->SetXTitle(
"HF: max SA over LS-events per LS \b");
6416 lpqxc->SetMarkerColor(2);
6417 lpqxc->SetLineColor(0);
6419 lpqxc->Draw(
"Error");
6423 TH1F *hpzlm =
new TH1F(
"hpzlm",
"", maxbins, 1., maxbins + 1.);
6424 for (
int i = 1;
i <= hpzlm->GetXaxis()->GetNbins();
i++) {
6426 if (MaxxSummedAmplitudeOccupancyHisto[sub])
6427 ccc1 = MaxxSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6430 hpzlm->Fill(
float(
i), ccc1);
6431 if (sub == 0 && ccc1 > 2000.)
6433 if (sub == 1 && ccc1 > 1200.)
6435 if (sub == 2 && ccc1 > 2000.)
6437 if (sub == 3 && ccc1 > 860.)
6441 hpzlm->SetMarkerStyle(20);
6442 hpzlm->SetMarkerSize(0.8);
6445 hpzlm->SetXTitle(
"HB: max Occupancy over LS-events per LS \b");
6447 hpzlm->SetXTitle(
"HE: max Occupancy over LS-events per LS \b");
6449 hpzlm->SetXTitle(
"HO: max Occupancy over LS-events per LS \b");
6451 hpzlm->SetXTitle(
"HF: max Occupancy over LS-events per LS \b");
6452 hpzlm->SetMarkerColor(4);
6453 hpzlm->SetLineColor(0);
6456 hpzlm->SetMaximum(866.);
6457 hpzlm->SetMinimum(856.);
6459 hpzlm->Draw(
"Error");
6464 if (SAmplitudeHisto[sub]) {
6465 for (
int i = 1;
i <= SAmplitudeHisto[sub]->GetXaxis()->GetNbins();
i++) {
6470 if (sub == 0 &&
i * 800 > 60000.)
6471 countamplHB += SAmplitudeHisto[sub]->GetBinContent(
i);
6472 if (sub == 1 &&
i * 1000 > 60000.)
6473 countamplHE += SAmplitudeHisto[sub]->GetBinContent(
i);
6474 if (sub == 2 &&
i * 2500 > 150000.)
6475 countamplHO += SAmplitudeHisto[sub]->GetBinContent(
i);
6476 if (sub == 3 &&
i * 1400 > 22000.)
6477 countamplHF += SAmplitudeHisto[sub]->GetBinContent(
i);
6479 SAmplitudeHisto[sub]->SetMarkerStyle(20);
6480 SAmplitudeHisto[sub]->SetMarkerSize(0.8);
6482 SAmplitudeHisto[sub]->SetTitle(
"HB event Amplitude\b");
6484 SAmplitudeHisto[sub]->SetTitle(
"HE event Amplitude\b");
6486 SAmplitudeHisto[sub]->SetTitle(
"HO event Amplitude\b");
6488 SAmplitudeHisto[sub]->SetTitle(
"HF event Amplitude\b");
6490 SAmplitudeHisto[sub]->SetXTitle(
"event amplitude \b");
6491 SAmplitudeHisto[sub]->SetMarkerColor(2);
6492 SAmplitudeHisto[sub]->SetLineColor(2);
6493 SAmplitudeHisto[sub]->Draw(
"");
6498 if (OccupancyHisto[sub]) {
6499 for (
int i = 1;
i <= OccupancyHisto[sub]->GetXaxis()->GetNbins();
i++) {
6500 if (sub == 0 &&
i * 30 > 2000.)
6501 countoccuHB += OccupancyHisto[sub]->GetBinContent(
i);
6502 if (sub == 1 &&
i * 20 > 1200.)
6503 countoccuHE += OccupancyHisto[sub]->GetBinContent(
i);
6504 if (sub == 2 &&
i * 25 > 2000.)
6505 countoccuHO += OccupancyHisto[sub]->GetBinContent(
i);
6506 if (sub == 3 &&
i * 10 > 860.)
6507 countoccuHF += OccupancyHisto[sub]->GetBinContent(
i);
6509 OccupancyHisto[sub]->SetMarkerStyle(20);
6510 OccupancyHisto[sub]->SetMarkerSize(0.8);
6512 OccupancyHisto[sub]->SetTitle(
"HB event Occupancy\b");
6514 OccupancyHisto[sub]->SetTitle(
"HE event Occupancy\b");
6516 OccupancyHisto[sub]->SetTitle(
"HO event Occupancy\b");
6518 OccupancyHisto[sub]->SetTitle(
"HF event Occupancy\b");
6520 OccupancyHisto[sub]->SetXTitle(
"event occupancy \b");
6521 OccupancyHisto[sub]->SetMarkerColor(4);
6522 OccupancyHisto[sub]->SetLineColor(4);
6523 OccupancyHisto[sub]->Draw(
"");
6528 cFour->Print(
"MaxxSummedAmplitudes_HB.png");
6530 cFour->Print(
"MaxxSummedAmplitudes_HE.png");
6532 cFour->Print(
"MaxxSummedAmplitudes_HO.png");
6534 cFour->Print(
"MaxxSummedAmplitudes_HF.png");
6541 gStyle->SetOptStat(0);
6543 cout <<
">=>=>>=> countamplmaxHB= " << countamplmaxHB <<
" countamplmaxHE= " << countamplmaxHE
6544 <<
" countamplmaxHO= " << countamplmaxHO <<
" countamplmaxHF= " << countamplmaxHF << endl;
6545 cout <<
">=>=>>=> countoccumaxHB= " << countoccumaxHB <<
" countoccumaxHE= " << countoccumaxHE
6546 <<
" countoccumaxHO= " << countoccumaxHO <<
" countoccumaxHF= " << countoccumaxHF << endl;
6547 cout <<
">=>=>>=> countamplHB= " << countamplHB <<
" countamplHE= " << countamplHE <<
" countamplHO= " << countamplHO
6548 <<
" countamplHF= " << countamplHF << endl;
6549 cout <<
">=>=>>=> countoccuHB= " << countoccuHB <<
" countoccuHE= " << countoccuHE <<
" countoccuHO= " << countoccuHO
6550 <<
" countoccuHF= " << countoccuHF << endl;
6555 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>channelsummedA over depths " << endl;
6556 TH1F *ChannelDepthsummedAmplitudesPlots[4];
6557 ChannelDepthsummedAmplitudesPlots[0] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HB");
6558 ChannelDepthsummedAmplitudesPlots[1] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HE");
6559 ChannelDepthsummedAmplitudesPlots[2] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HO");
6560 ChannelDepthsummedAmplitudesPlots[3] = (TH1F *)hfile->Get(
"h_sumamplitudechannel_HF");
6562 if (ChannelDepthsummedAmplitudesPlots[0])
6563 litebdt[0] =
new TLine(80., 0.8, 80., ChannelDepthsummedAmplitudesPlots[0]->GetBinContent(4) + 100.);
6564 if (ChannelDepthsummedAmplitudesPlots[1])
6565 litebdt[1] =
new TLine(200., 0.8, 200., ChannelDepthsummedAmplitudesPlots[1]->GetBinContent(7) + 100.);
6566 if (ChannelDepthsummedAmplitudesPlots[2])
6567 litebdt[2] =
new TLine(1200., 0.8, 1200., ChannelDepthsummedAmplitudesPlots[2]->GetBinContent(17) + 100.);
6568 if (ChannelDepthsummedAmplitudesPlots[3])
6569 litebdt[3] =
new TLine(600., 0.8, 600., ChannelDepthsummedAmplitudesPlots[3]->GetBinContent(6) + 100.);
6571 gStyle->SetOptStat(110000);
6573 cFour1->Divide(2, 2);
6574 for (
int sub = 0; sub < 4; sub++) {
6584 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerStyle(20);
6585 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerSize(0.8);
6587 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HB channel Amplitudes\b");
6589 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HE channel Amplitudes\b");
6591 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HO channel Amplitudes\b");
6593 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HF channel Amplitudes\b");
6595 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HB channel depths summed Amplitudes \b");
6597 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HE channel depths summed Amplitudes \b");
6599 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HO channel depths summed Amplitudes \b");
6601 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HF channel depths summed Amplitudes \b");
6602 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerColor(2);
6603 ChannelDepthsummedAmplitudesPlots[sub]->SetLineColor(2);
6604 ChannelDepthsummedAmplitudesPlots[sub]->Draw(
"");
6605 litebdt[sub]->SetLineColor(kBlue);
6606 litebdt[sub]->Draw(
"s");
6609 cFour1->Print(
"ChannelDepthsummedAmplitudes.png");
6611 gStyle->SetOptStat(0);
6616 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>2DAtaildepth " << endl;
6621 TH2F *DAtaildepth1[2];
6622 DAtaildepth1[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth1_HB");
6623 DAtaildepth1[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth1_HB");
6625 if (!DAtaildepth1[0] || !DAtaildepth1[1]) {
6626 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 1" << endl;
6628 TH2F *tail1 = (TH2F *)DAtaildepth1[0]->Clone(
"tail1");
6629 tail1->Divide(DAtaildepth1[0], DAtaildepth1[1], 1, 1,
"B");
6634 tail1->SetMarkerStyle(20);
6635 tail1->SetMarkerSize(0.4);
6636 tail1->SetTitle(
"Amplitudes for tail-events (HBdepth1) \b");
6637 tail1->SetXTitle(
"#eta \b");
6638 tail1->SetYTitle(
"#phi \b");
6639 tail1->SetZTitle(
"2D <A> in the tail - HB Depth1 \b");
6640 tail1->SetMarkerColor(2);
6641 tail1->SetLineColor(2);
6642 tail1->Draw(
"COLZ");
6644 TH2F *DAtaildepth2[2];
6645 DAtaildepth2[0] = (TH2F *)hfile->Get(
"h_2DAtaildepth2_HB");
6646 DAtaildepth2[1] = (TH2F *)hfile->Get(
"h_2D0Ataildepth2_HB");
6648 if (!DAtaildepth2[0] || !DAtaildepth2[1]) {
6649 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 2" << endl;
6651 TH2F *tail2 = (TH2F *)DAtaildepth2[0]->Clone(
"tail2");
6652 tail2->Divide(DAtaildepth2[0], DAtaildepth2[1], 1, 1,
"B");
6657 tail2->SetMarkerStyle(20);
6658 tail2->SetMarkerSize(0.4);
6659 tail2->SetTitle(
"Amplitudes for tail-events (HBdepth2) \b");
6660 tail2->SetXTitle(
"#eta \b");
6661 tail2->SetYTitle(
"#phi \b");
6662 tail2->SetZTitle(
"2D <A> in the tail - HB Depth2 \b");
6663 tail2->SetMarkerColor(2);
6664 tail2->SetLineColor(2);
6665 tail2->Draw(
"COLZ");
6669 cHB->Print(
"AtaildepthHB.png");
6675 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>sumOccupancyHF " << endl;
6680 if (SummedAmplitudeOccupancyHisto[3]) {
6681 TH1F *ufrew1 = (TH1F *)SummedAmplitudeOccupancyHisto[3]->Clone(
"ufrew1");
6682 if (SummedAmplitudeOccupancyHisto[3] && NoSignalSummedAmplitudeOccupancyHisto[3])
6683 ufrew1->Add(SummedAmplitudeOccupancyHisto[3], NoSignalSummedAmplitudeOccupancyHisto[3], 1, 1);
6684 ufrew1->GetXaxis()->SetRangeUser(1., maxbins + 1.);
6686 ufrew1->SetMarkerStyle(20);
6687 ufrew1->SetMarkerSize(0.8);
6688 ufrew1->GetYaxis()->SetLabelSize(0.04);
6689 ufrew1->SetTitle(
"HF Occupancy vs LS\b");
6690 ufrew1->SetXTitle(
"average occupancy per LS HF\b");
6691 ufrew1->SetMarkerColor(4);
6692 ufrew1->SetLineColor(0);
6693 ufrew1->SetMaximum(866.);
6694 ufrew1->SetMinimum(856.);
6695 ufrew1->Draw(
"Error");
6697 cHB->Print(
"sumOccupancyHF.png");
6711 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =====================================================================" << endl;
6714 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> ==================================================" << endl;
6717 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6718 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6719 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6720 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6722 cout <<
">>>>>>> START NOW CREATING OF HTML PAGES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
6729 for (
int sub = 1; sub <= 4; sub++) {
6734 htmlFile.open(
"HB_CapID.html");
6737 htmlFile.open(
"HE_CapID.html");
6740 htmlFile.open(
"HO_CapID.html");
6743 htmlFile.open(
"HF_CapID.html");
6748 htmlFile.open(
"HB_ADCampl.html");
6751 htmlFile.open(
"HE_ADCampl.html");
6754 htmlFile.open(
"HO_ADCampl.html");
6757 htmlFile.open(
"HF_ADCampl.html");
6762 htmlFile.open(
"HB_Width.html");
6765 htmlFile.open(
"HE_Width.html");
6768 htmlFile.open(
"HO_Width.html");
6771 htmlFile.open(
"HF_Width.html");
6776 htmlFile.open(
"HB_Ratio.html");
6779 htmlFile.open(
"HE_Ratio.html");
6782 htmlFile.open(
"HO_Ratio.html");
6785 htmlFile.open(
"HF_Ratio.html");
6790 htmlFile.open(
"HB_Tmean.html");
6793 htmlFile.open(
"HE_Tmean.html");
6796 htmlFile.open(
"HO_Tmean.html");
6799 htmlFile.open(
"HF_Tmean.html");
6804 htmlFile.open(
"HB_Tmax.html");
6807 htmlFile.open(
"HE_Tmax.html");
6810 htmlFile.open(
"HO_Tmax.html");
6813 htmlFile.open(
"HF_Tmax.html");
6817 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6818 htmlFile <<
"<head>" << std::endl;
6819 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6820 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
6821 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6822 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
6824 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6825 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
6826 "text-align: center;}"
6828 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6829 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6830 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6831 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
6832 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
6833 htmlFile <<
"</style>" << std::endl;
6834 htmlFile <<
"<body>" << std::endl;
6838 htmlFile <<
"<h1> Cap ID estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6840 htmlFile <<
"<h1> Cap ID estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6842 htmlFile <<
"<h1> Cap ID estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6844 htmlFile <<
"<h1> Cap ID estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6848 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6850 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6852 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6854 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6858 htmlFile <<
"<h1> Width estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6860 htmlFile <<
"<h1> Width estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6862 htmlFile <<
"<h1> Width estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6864 htmlFile <<
"<h1> Width estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6868 htmlFile <<
"<h1> Ratio estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6870 htmlFile <<
"<h1> Ratio estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6872 htmlFile <<
"<h1> Ratio estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6874 htmlFile <<
"<h1> Ratio estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6878 htmlFile <<
"<h1> Mean bin timing estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6880 htmlFile <<
"<h1> Mean bin timing estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6882 htmlFile <<
"<h1> Mean bin timing estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6884 htmlFile <<
"<h1> Mean bin timing estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6888 htmlFile <<
"<h1> Maximum bin timing estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6890 htmlFile <<
"<h1> Maximum bin timing estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6892 htmlFile <<
"<h1> Maximum bin timing estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6894 htmlFile <<
"<h1> Maximum bin timing estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6898 htmlFile <<
"<a name=\"Top\"></a>\n";
6899 htmlFile <<
"<b>Contents:<br>\n";
6900 htmlFile <<
"1. <a href=\"#Aij\">A_ij_LS (averaged over events in LS) </a><br>\n";
6901 htmlFile <<
"2. <a href=\"#OverflowAij\">A_ij_LS in overflow & underflow</a><br>\n";
6902 htmlFile <<
"3. <a href=\"#MainEstimator\">Main Estimator !!! </a><br>\n";
6903 htmlFile <<
"4. <a href=\"#ErrorA\">Error type A </a><br>\n";
6904 htmlFile <<
"5. <a href=\"#ErrorAaverage\">ErrorA cross check</a><br>\n";
6905 htmlFile <<
"6. <a href=\"#ErrorAoccupancy\">ErrorA occupancy plots</a><br>\n";
6906 htmlFile <<
"7. <a href=\"#ErrorB\">Error type B</a><br>\n";
6907 htmlFile <<
"8. <a href=\"#LSstatus\">Table of Average channel-Amplitude in Depthes over LSs </a><br>\n";
6908 htmlFile <<
"9. <a href=\"#RBXstatus\">RBX Status </a><br>\n";
6909 htmlFile <<
"10. <a href=\"#RBXPHItable\">Table of Average RBX-Amplitude in Phi over LSs </a><br>\n";
6910 htmlFile <<
"11. <a href=\"#RBXETAtable\">Table of Average RBX-Amplitude in Eta over LSs </a><br>\n";
6911 htmlFile <<
"12. <a href=\"#RBX3plots\">RBX A-Ratio to 1st LS: 3 plots </a><br>\n";
6917 htmlFile <<
"<br>" << std::endl;
6919 htmlFile <<
"<h2> 0. Rate of CapID failures over all events of Run </h2>" << std::endl;
6920 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
6922 htmlFile <<
" <img src=\"MapCapIdErrorHB.png\" />" << std::endl;
6924 htmlFile <<
" <img src=\"MapCapIdErrorHE.png\" />" << std::endl;
6926 htmlFile <<
" <img src=\"MapCapIdErrorHO.png\" />" << std::endl;
6928 htmlFile <<
" <img src=\"MapCapIdErrorHF.png\" />" << std::endl;
6931 htmlFile <<
"<a name=\"Aij\"></a>\n";
6933 htmlFile <<
"<h2> 1. Distribution of estimator averaged over events in LS, histogramed over all channels and "
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).</h2>" << std::endl;
6941 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6942 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2), " << CutAb[sub][3]
6943 <<
" (Depth3).</h2>" << std::endl;
6945 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6946 << CutAb[sub][1] <<
" (Depth4).</h2>" << std::endl;
6948 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >"
6949 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6953 htmlFile <<
"<h3> see Overflow and Underflow </h3>" << std::endl;
6955 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
6959 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HB.png\" />" << std::endl;
6961 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HE.png\" />" << std::endl;
6963 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HO.png\" />" << std::endl;
6965 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HF.png\" />" << std::endl;
6969 htmlFile <<
" <img src=\"H_ADCamplHB.png\" />" << std::endl;
6971 htmlFile <<
" <img src=\"H_ADCamplHE.png\" />" << std::endl;
6973 htmlFile <<
" <img src=\"H_ADCamplHO.png\" />" << std::endl;
6975 htmlFile <<
" <img src=\"H_ADCamplHF.png\" />" << std::endl;
6979 htmlFile <<
" <img src=\"H_WidthHB.png\" />" << std::endl;
6981 htmlFile <<
" <img src=\"H_WidthHE.png\" />" << std::endl;
6983 htmlFile <<
" <img src=\"H_WidthHO.png\" />" << std::endl;
6985 htmlFile <<
" <img src=\"H_WidthHF.png\" />" << std::endl;
6989 htmlFile <<
" <img src=\"H_RatioHB.png\" />" << std::endl;
6991 htmlFile <<
" <img src=\"H_RatioHE.png\" />" << std::endl;
6993 htmlFile <<
" <img src=\"H_RatioHO.png\" />" << std::endl;
6995 htmlFile <<
" <img src=\"H_RatioHF.png\" />" << std::endl;
6999 htmlFile <<
" <img src=\"H_TmeanHB.png\" />" << std::endl;
7001 htmlFile <<
" <img src=\"H_TmeanHE.png\" />" << std::endl;
7003 htmlFile <<
" <img src=\"H_TmeanHO.png\" />" << std::endl;
7005 htmlFile <<
" <img src=\"H_TmeanHF.png\" />" << std::endl;
7009 htmlFile <<
" <img src=\"H_TmaxHB.png\" />" << std::endl;
7011 htmlFile <<
" <img src=\"H_TmaxHE.png\" />" << std::endl;
7013 htmlFile <<
" <img src=\"H_TmaxHO.png\" />" << std::endl;
7015 htmlFile <<
" <img src=\"H_TmaxHF.png\" />" << std::endl;
7017 htmlFile <<
"<br>" << std::endl;
7019 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7022 htmlFile <<
"<h2> 2a. Number of bad channels per event distribution in Run</h2>" << std::endl;
7024 htmlFile <<
"<h3> Legends: dots correspond to BAD LS candidates. </h3>" << std::endl;
7027 htmlFile <<
" <img src=\"HistNBadChsHB.png\" />" << std::endl;
7029 htmlFile <<
" <img src=\"HistNBadChsHE.png\" />" << std::endl;
7031 htmlFile <<
" <img src=\"HistNBadChsHO.png\" />" << std::endl;
7033 htmlFile <<
" <img src=\"HistNBadChsHF.png\" />" << std::endl;
7037 htmlFile <<
"<a name=\"OverflowAij\"></a>\n";
7039 htmlFile <<
"<h2> 2. Estimator averaged over all events in the RUN for entries in overflow and underflow of "
7040 "corresponding histogram above </h2>"
7044 htmlFile <<
"<h2> 2b. Averaged number of bad channels for each LS </h2>" << std::endl;
7048 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7049 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7050 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7052 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7053 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3) correspond BAD LS.</h3>"
7056 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7057 <<
" (Depth4) correspond BAD LS.</h3>" << std::endl;
7059 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7060 << Cut0[
test][sub][2] <<
" (Depth2) correspond BAD LS.</h3>" << std::endl;
7064 htmlFile <<
" <img src=\"HistNBCMNHB.png\" />" << std::endl;
7066 htmlFile <<
" <img src=\"HistNBCMNHE.png\" />" << std::endl;
7068 htmlFile <<
" <img src=\"HistNBCMNHO.png\" />" << std::endl;
7070 htmlFile <<
" <img src=\"HistNBCMNHF.png\" />" << std::endl;
7074 htmlFile <<
" <img src=\"MapADCamplHB.png\" />" << std::endl;
7076 htmlFile <<
" <img src=\"MapADCamplHE.png\" />" << std::endl;
7078 htmlFile <<
" <img src=\"MapADCamplHO.png\" />" << std::endl;
7080 htmlFile <<
" <img src=\"MapADCamplHF.png\" />" << std::endl;
7084 htmlFile <<
" <img src=\"MapWidthHB.png\" />" << std::endl;
7086 htmlFile <<
" <img src=\"MapWidthHE.png\" />" << std::endl;
7088 htmlFile <<
" <img src=\"MapWidthHO.png\" />" << std::endl;
7090 htmlFile <<
" <img src=\"MapWidthHF.png\" />" << std::endl;
7094 htmlFile <<
" <img src=\"MapRatioHB.png\" />" << std::endl;
7096 htmlFile <<
" <img src=\"MapRatioHE.png\" />" << std::endl;
7098 htmlFile <<
" <img src=\"MapRatioHO.png\" />" << std::endl;
7100 htmlFile <<
" <img src=\"MapRatioHF.png\" />" << std::endl;
7104 htmlFile <<
" <img src=\"MapTmeanHB.png\" />" << std::endl;
7106 htmlFile <<
" <img src=\"MapTmeanHE.png\" />" << std::endl;
7108 htmlFile <<
" <img src=\"MapTmeanHO.png\" />" << std::endl;
7110 htmlFile <<
" <img src=\"MapTmeanHF.png\" />" << std::endl;
7114 htmlFile <<
" <img src=\"MapTmaxHB.png\" />" << std::endl;
7116 htmlFile <<
" <img src=\"MapTmaxHE.png\" />" << std::endl;
7118 htmlFile <<
" <img src=\"MapTmaxHO.png\" />" << std::endl;
7120 htmlFile <<
" <img src=\"MapTmaxHF.png\" />" << std::endl;
7122 htmlFile <<
"<br>" << std::endl;
7124 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7127 htmlFile <<
"<a name=\"MainEstimator\"></a>\n";
7130 <<
"<h2> 3. Distribution of estimator averaged over events in LS and over all channels for each LS </h2>"
7134 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7135 <<
" (Depth2) in each LS.</h2>" << std::endl;
7137 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7138 <<
" (Depth2), " << CutPo[sub][3] <<
" (Depth3) in each LS.</h2>" << std::endl;
7140 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][4] <<
" (Depth4) in each LS.</h2>"
7143 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7144 <<
" (Depth2) in each LS.</h2>" << std::endl;
7145 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
7149 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">"
7150 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7151 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7153 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7154 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7155 <<
" (Depth4), " << Cut0[
test][sub][5] <<
" (Depth5), " << Cut0[
test][sub][6] <<
" (Depth6), "
7156 << Cut0[
test][sub][7] <<
" (Depth7) correspond BAD LS. </h3>" << std::endl;
7158 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7159 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7161 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), "
7162 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7163 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7167 htmlFile <<
" <img src=\"HistPortHB.png\" />" << std::endl;
7169 htmlFile <<
" <img src=\"HistPortHE.png\" />" << std::endl;
7171 htmlFile <<
" <img src=\"HistPortHO.png\" />" << std::endl;
7173 htmlFile <<
" <img src=\"HistPortHF.png\" />" << std::endl;
7177 htmlFile <<
" <img src=\"HistADCamplHB.png\" />" << std::endl;
7179 htmlFile <<
" <img src=\"HistADCamplHE.png\" />" << std::endl;
7181 htmlFile <<
" <img src=\"HistADCamplHO.png\" />" << std::endl;
7183 htmlFile <<
" <img src=\"HistADCamplHF.png\" />" << std::endl;
7187 htmlFile <<
" <img src=\"HistWidthHB.png\" />" << std::endl;
7189 htmlFile <<
" <img src=\"HistWidthHE.png\" />" << std::endl;
7191 htmlFile <<
" <img src=\"HistWidthHO.png\" />" << std::endl;
7193 htmlFile <<
" <img src=\"HistWidthHF.png\" />" << std::endl;
7197 htmlFile <<
" <img src=\"HistRatioHB.png\" />" << std::endl;
7199 htmlFile <<
" <img src=\"HistRatioHE.png\" />" << std::endl;
7201 htmlFile <<
" <img src=\"HistRatioHO.png\" />" << std::endl;
7203 htmlFile <<
" <img src=\"HistRatioHF.png\" />" << std::endl;
7207 htmlFile <<
" <img src=\"HistTmeanHB.png\" />" << std::endl;
7209 htmlFile <<
" <img src=\"HistTmeanHE.png\" />" << std::endl;
7211 htmlFile <<
" <img src=\"HistTmeanHO.png\" />" << std::endl;
7213 htmlFile <<
" <img src=\"HistTmeanHF.png\" />" << std::endl;
7217 htmlFile <<
" <img src=\"HistTmaxHB.png\" />" << std::endl;
7219 htmlFile <<
" <img src=\"HistTmaxHE.png\" />" << std::endl;
7221 htmlFile <<
" <img src=\"HistTmaxHO.png\" />" << std::endl;
7223 htmlFile <<
" <img src=\"HistTmaxHF.png\" />" << std::endl;
7225 htmlFile <<
"<br>" << std::endl;
7228 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7229 htmlFile <<
"<a name=\"ErrorA\"></a>\n";
7230 htmlFile <<
"<h2> 4. Error type A</h2>\n";
7231 htmlFile <<
"<h3> note: no sence to see plots of this item if max difference is too large(due to very high A "
7232 "of some channels)</h3>\n";
7233 htmlFile <<
"<br>\n";
7237 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.6 (p-p collisions) </h3>\n";
7238 htmlFile <<
" <img src=\"HistErrA_HB.png\" />\n";
7239 htmlFile <<
"<br>\n";
7240 if (flagErrAB_HB[0] == -1)
7241 htmlFile <<
"<h3>test was not possible</h3>\n";
7242 else if (flagErrAB_HB[0] == 0)
7243 htmlFile <<
"<h3> Fine:NoErrorA_HB (Mean of max difference " << avedelta_HB
7244 <<
" is within 0.1-1.6) </h3>\n";
7245 else if (flagErrAB_HB[0] == 1)
7246 htmlFile <<
"<<h3> ErrorA_HB is available once Mean of max difference " << avedelta_HB
7247 <<
" is out 0.1-1.6 (p-p collisions)</font></h3>\n";
7249 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7250 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7252 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7254 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7255 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >25), "
7256 "3) with channel Amplitude (A<35); </h2>\n";
7257 htmlFile <<
" <img src=\"ChkErrA_HB1.png\" /><br><br>\n";
7258 htmlFile <<
" <img src=\"ChkErrA_HB2.png\" /><br>\n";
7259 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7261 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7262 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 25 "
7263 "(HBM:neg.eta;HBP:pos.eta) </h2>\n";
7264 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7265 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.6 at least for HF- or "
7267 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.6 and is the same "
7268 "for HF- and HF+ </h2>\n";
7269 htmlFile <<
" <img src=\"OccPlots_HB.png\" /><br><br>\n";
7270 htmlFile <<
"<br>\n";
7271 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7273 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7274 htmlFile <<
"<h2> 7. Error type B\n";
7275 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10.</h3>\n";
7276 htmlFile <<
" <img src=\"HistErrB_HB_1.png\" />\n<br>\n";
7277 htmlFile <<
" <img src=\"HistErrB_HB_2.png\" />\n<br>\n";
7278 htmlFile <<
"<br>\n";
7279 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HB <<
" LS </h3>\n";
7280 htmlFile <<
"<br>\n";
7285 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.2-1.8 (p-p collisions) </h3>\n";
7286 htmlFile <<
" <img src=\"HistErrA_HE.png\" />\n";
7287 htmlFile <<
"<br>\n";
7288 if (flagErrAB_HE[0] == -1)
7289 htmlFile <<
"<h3>test was not possible</h3>\n";
7290 else if (flagErrAB_HE[0] == 0)
7291 htmlFile <<
"<h3> Fine:NoErrorA_HE (Mean of max difference " << avedelta_HE
7292 <<
" is within 0.2-1.8) </h3>\n";
7293 else if (flagErrAB_HE[0] == 1)
7294 htmlFile <<
"<<h3> ErrorA_HE is available once Mean of max difference " << avedelta_HE
7295 <<
" is out 0.2-1.8 (p-p collisions)</font></h3>\n";
7297 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7298 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7300 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7302 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7303 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> "
7304 ">1000.fC), 3) with channel Amplitude (A<500fC); </h2>\n";
7305 htmlFile <<
" <img src=\"ChkErrA_HE1.png\" /><br><br>\n";
7306 htmlFile <<
" <img src=\"ChkErrA_HE2.png\" /><br>\n";
7307 htmlFile <<
" <img src=\"ChkErrA_HE3.png\" /><br>\n";
7308 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7310 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7311 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 35 "
7312 "(HEM:neg.eta;HEP:pos.eta) </h2>\n";
7313 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7314 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.3 at least for HF- or "
7316 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.3 and is the same "
7317 "for HF- and HF+ </h2>\n";
7318 htmlFile <<
" <img src=\"OccPlots_HE.png\" /><br><br>\n";
7319 htmlFile <<
"<br>\n";
7320 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7322 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7323 htmlFile <<
"<h2> 7. Error type B\n";
7324 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7325 htmlFile <<
" <img src=\"HistErrB_HE_1.png\" />\n<br>\n";
7326 htmlFile <<
" <img src=\"HistErrB_HE_2.png\" />\n<br>\n";
7327 htmlFile <<
" <img src=\"HistErrB_HE_3.png\" />\n<br>\n";
7328 htmlFile <<
"<br>\n";
7329 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HE <<
" LS </h3>\n";
7330 htmlFile <<
"<br>\n";
7335 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.5 (p-p collisions) </h3>\n";
7336 htmlFile <<
" <img src=\"HistErrA_HO.png\" />\n";
7337 htmlFile <<
"<br>\n";
7338 if (flagErrAB_HO[0] == -1)
7339 htmlFile <<
"<h3>test was not possible</h3>\n";
7340 else if (flagErrAB_HO[0] == 0)
7341 htmlFile <<
"<h3> Fine:NoErrorA_HO (Mean of max difference " << avedelta_HO
7342 <<
" is within 0.1-1.5) </h3>\n";
7343 else if (flagErrAB_HO[0] == 1)
7344 htmlFile <<
"<<h3> ErrorA_HO is available once Mean of max difference " << avedelta_HO
7345 <<
" is out 0.1-1.5 (p-p collisions)</font></h3>\n";
7347 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7348 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7350 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7352 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7353 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >80), "
7354 "3) with channel Amplitude (A<100); </h2>\n";
7356 htmlFile <<
" <img src=\"ChkErrA_HO4.png\" /><br><br>\n";
7357 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7359 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7360 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 80 "
7361 "(HOM:neg.eta;HOP:pos.eta) </h2>\n";
7362 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7363 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7365 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7366 "for HF- and HF+ </h2>\n";
7367 htmlFile <<
" <img src=\"OccPlots_HO.png\" /><br><br>\n";
7368 htmlFile <<
"<br>\n";
7369 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7371 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7372 htmlFile <<
"<h2> 7. Error type B\n";
7373 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10. </h3>\n";
7374 htmlFile <<
" <img src=\"HistErrB_HO_4.png\" />\n<br>\n";
7375 htmlFile <<
"<br>\n";
7376 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HO <<
" LS </h3>\n";
7377 htmlFile <<
"<br>\n";
7383 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.8-2.4 (p-p collisions) </h3>\n";
7384 htmlFile <<
" <img src=\"HistErrA_HF.png\" />\n";
7385 htmlFile <<
"<br>\n";
7386 if (flagErrAB_HF[0] == -1)
7387 htmlFile <<
"<h3>test was not possible</h3>\n";
7388 else if (flagErrAB_HF[0] == 0)
7389 htmlFile <<
"<h3> Fine:NoErrorA_HF (Mean of max difference " << avedelta_HF
7390 <<
" is within 0.8-2.4) </h3>\n";
7391 else if (flagErrAB_HF[0] == 1)
7392 htmlFile <<
"<<h3> ErrorA_HF is available once Mean of max difference " << avedelta_HF
7393 <<
" is out 0.8-2.4 (p-p collisions)</font></h3>\n";
7395 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7396 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7398 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7400 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7401 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >20), "
7402 "3) with channel Amplitude (A<20); </h2>\n";
7404 htmlFile <<
" <img src=\"ChkErrA_HF1.png\" /><br><br>\n";
7405 htmlFile <<
" <img src=\"ChkErrA_HF2.png\" /><br>\n";
7406 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7408 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7409 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 20 "
7410 "(HFM:neg.eta;HFP:pos.eta) </h2>\n";
7411 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7412 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or "
7414 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same "
7415 "for HF- and HF+ </h2>\n";
7416 htmlFile <<
" <img src=\"OccPlots_HF.png\" /><br><br>\n";
7417 htmlFile <<
"<br>\n";
7418 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7420 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7421 htmlFile <<
"<h2> 7. Error type B\n";
7422 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 4. </h3>\n";
7423 htmlFile <<
" <img src=\"HistErrB_HF_1.png\" />\n<br>\n";
7424 htmlFile <<
" <img src=\"HistErrB_HF_2.png\" />\n<br>\n";
7425 htmlFile <<
"<br>\n";
7426 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HF <<
" LS </h3>\n";
7427 htmlFile <<
"<br>\n";
7429 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7434 htmlFile <<
"<a name=\"LSstatus\"></a>\n";
7437 htmlFile <<
"<h2> 8.Lumisection Status for HB: </h2>" << std::endl;
7439 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7440 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7441 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7444 htmlFile <<
"<h2> 8.Lumisection Status for HE: </h2>" << std::endl;
7445 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7446 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3),"
7447 << Cut0[
test][sub][4] <<
" (Depth4)," << Cut0[
test][sub][5] <<
" (Depth5)," << Cut0[
test][sub][6]
7448 <<
" (Depth6)," << Cut0[
test][sub][7] <<
" (Depth7). </h3>" << std::endl;
7452 htmlFile <<
"<h2> 8.Lumisection Status for HO: </h2>" << std::endl;
7453 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][4]
7454 <<
" (Depth4). </h3>" << std::endl;
7457 htmlFile <<
"<h2> 8.Lumisection Status for HF: </h2>" << std::endl;
7458 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7459 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), "
7460 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7462 htmlFile <<
"<br>" << std::endl;
7463 htmlFile <<
"<table>" << std::endl;
7465 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7467 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7470 int kkkkkkmax = k_max[sub];
7471 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
7472 kkkkkkmax = k_maxupgrade[sub];
7477 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7478 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > Depth " <<
k <<
" </td>" << std::endl;
7480 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7481 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > Depth " <<
k <<
" </td>" << std::endl;
7483 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7484 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > Depth " <<
k <<
" </td>" << std::endl;
7486 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7487 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > Depth " <<
k <<
" </td>" << std::endl;
7489 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7490 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > Depth " <<
k <<
" </td>" << std::endl;
7492 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7493 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > Depth " <<
k <<
" </td>" << std::endl;
7494 htmlFile <<
"</tr>" << std::endl;
7497 for (
int i = 1;
i <= MaxLum;
i++) {
7499 raw_class =
"<td class=\"s2\" align=\"center\">";
7501 raw_class =
"<td class=\"s3\" align=\"center\">";
7502 htmlFile <<
"<tr>" << std::endl;
7503 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7505 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7506 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
7507 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k]) {
7509 htmlFile <<
"<td class=\"s6\" align=\"center\">"
7510 <<
int(HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7512 htmlFile <<
"<td class=\"s6\" align=\"center\">" << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i))
7513 <<
"</td>" << std::endl;
7516 htmlFile << raw_class <<
int(HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7518 htmlFile << raw_class << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7521 htmlFile <<
"</tr>" << std::endl;
7524 htmlFile <<
"</table>" << std::endl;
7526 htmlFile <<
"<br>" << std::endl;
7528 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7529 htmlFile <<
"<br>" << std::endl;
7536 htmlFile <<
"<a name=\"RBXstatus\"></a>\n";
7540 htmlFile <<
"<h2> 9. Average Amplitudes of RBX for HB: </h2>" << std::endl;
7541 htmlFile <<
"<h3> where </h3>" << std::endl;
7542 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7543 "(Positive direction); </h3>"
7545 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7547 htmlFile <<
" <img src=\"RBX-HB-2Dplot.png\" />\n";
7548 htmlFile <<
"<br>\n";
7550 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HB: </h2>" << std::endl;
7551 htmlFile <<
" <img src=\"RBX-HB-1Dplot.png\" />\n";
7552 htmlFile <<
"<br>\n";
7554 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HB: </h2>" << std::endl;
7555 htmlFile <<
" <img src=\"RBX-HB-11Dplot.png\" />\n";
7556 htmlFile <<
"<br>\n";
7558 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7562 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HE: </h2>" << std::endl;
7563 htmlFile <<
"<h3> where </h3>" << std::endl;
7564 htmlFile <<
"<h3> jeta = 3,4,5, 6, 7 (Negative direction); ............&& ............ jeta = "
7565 "14,15,16,17,18 (Positive direction); </h3>"
7567 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7569 htmlFile <<
" <img src=\"RBX-HE-2Dplot.png\" />\n";
7570 htmlFile <<
"<br>\n";
7572 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HE: </h2>" << std::endl;
7573 htmlFile <<
" <img src=\"RBX-HE-1Dplot.png\" />\n";
7574 htmlFile <<
"<br>\n";
7576 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HE: </h2>" << std::endl;
7577 htmlFile <<
" <img src=\"RBX-HE-11Dplot.png\" />\n";
7578 htmlFile <<
"<br>\n";
7580 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7584 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HO: </h2>" << std::endl;
7585 htmlFile <<
"<h3> where </h3>" << std::endl;
7586 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 "
7587 "(Positive direction); </h3>"
7589 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7591 htmlFile <<
" <img src=\"RBX-HO-2Dplot.png\" />\n";
7592 htmlFile <<
"<br>\n";
7594 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HO: </h2>" << std::endl;
7595 htmlFile <<
" <img src=\"RBX-HO-1Dplot.png\" />\n";
7596 htmlFile <<
"<br>\n";
7598 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HO: </h2>" << std::endl;
7599 htmlFile <<
" <img src=\"RBX-HO-11Dplot.png\" />\n";
7600 htmlFile <<
"<br>\n";
7602 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7606 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HF: </h2>" << std::endl;
7607 htmlFile <<
"<h3> where </h3>" << std::endl;
7608 htmlFile <<
"<h3> jeta = 0,1,2, 3 (Negative direction); ............&& ............ jeta = 18,19,20,21 "
7609 "(Positive direction); </h3>"
7611 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7613 htmlFile <<
" <img src=\"RBX-HF-2Dplot.png\" />\n";
7614 htmlFile <<
"<br>\n";
7616 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HF: </h2>" << std::endl;
7617 htmlFile <<
" <img src=\"RBX-HF-1Dplot.png\" />\n";
7618 htmlFile <<
"<br>\n";
7620 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HF: </h2>" << std::endl;
7621 htmlFile <<
" <img src=\"RBX-HF-11Dplot.png\" />\n";
7622 htmlFile <<
"<br>\n";
7624 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7626 htmlFile <<
"<br>" << std::endl;
7631 htmlFile <<
"<a name=\"RBXPHItable\"></a>\n";
7635 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HB: </h2>" << std::endl;
7637 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7638 << cutA_HB << std::endl;
7642 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HE: </h2>" << std::endl;
7644 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7645 << cutA_HE << std::endl;
7649 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HO: </h2>" << std::endl;
7651 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7652 << cutA_HO << std::endl;
7656 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HF: </h2>" << std::endl;
7658 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7659 << cutA_HF << std::endl;
7663 htmlFile <<
"<br>" << std::endl;
7664 htmlFile <<
"<table>" << std::endl;
7666 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7668 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7672 for (
int k = 0;
k < njphi;
k++)
7673 htmlFile <<
"<td class=\"s1\" align=\"center\"> iPHI " <<
k <<
" </td>" << std::endl;
7674 htmlFile <<
"</tr>" << std::endl;
7679 for (
int i = 1;
i <= MaxLum;
i++) {
7681 raw_class =
"<td class=\"s2\" align=\"center\">";
7683 raw_class =
"<td class=\"s3\" align=\"center\">";
7684 htmlFile <<
"<tr>" << std::endl;
7685 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7687 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7690 for (
int k = 0;
k < njphi;
k++) {
7692 if (
int(alexhb[
k][
i - 1]) > cutA_ALL) {
7693 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7695 htmlFile << raw_class <<
int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7699 if (
int(alexhe[
k][
i - 1]) > cutA_ALL) {
7700 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7702 htmlFile << raw_class <<
int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7706 if (
int(alexho[
k][
i - 1]) > cutA_ALL) {
7707 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7709 htmlFile << raw_class <<
int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7713 if (
int(alexhf[
k][
i - 1]) > cutA_ALL) {
7714 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7716 htmlFile << raw_class <<
int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7721 htmlFile <<
"</tr>" << std::endl;
7724 htmlFile <<
"</table>" << std::endl;
7725 htmlFile <<
"<br>" << std::endl;
7726 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7727 htmlFile <<
"<br>" << std::endl;
7730 htmlFile <<
"<a name=\"RBXETAtable\"></a>\n";
7734 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HB: </h2>" << std::endl;
7736 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7737 << cutB_HB << std::endl;
7741 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HE: </h2>" << std::endl;
7743 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7744 << cutB_HE << std::endl;
7748 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HO: </h2>" << std::endl;
7750 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7751 << cutB_HO << std::endl;
7755 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HF: </h2>" << std::endl;
7757 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">"
7758 << cutB_HF << std::endl;
7762 htmlFile <<
"<br>" << std::endl;
7763 htmlFile <<
"<table>" << std::endl;
7765 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7767 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7771 for (
int k = 0;
k < njeta;
k++)
7772 htmlFile <<
"<td class=\"s1\" align=\"center\"> iETA " <<
k <<
" </td>" << std::endl;
7773 htmlFile <<
"</tr>" << std::endl;
7778 for (
int i = 1;
i <= MaxLum;
i++) {
7780 raw_class =
"<td class=\"s2\" align=\"center\">";
7782 raw_class =
"<td class=\"s3\" align=\"center\">";
7783 htmlFile <<
"<tr>" << std::endl;
7784 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7786 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7789 for (
int k = 0;
k < njeta;
k++) {
7791 if (
int(blexhb[
k][
i - 1]) > cutB_ALL) {
7792 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7794 htmlFile << raw_class <<
int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7798 if (
int(blexhe[
k][
i - 1]) > cutB_ALL) {
7799 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7801 htmlFile << raw_class <<
int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7805 if (
int(blexho[
k][
i - 1]) > cutB_ALL) {
7806 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7808 htmlFile << raw_class <<
int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7812 if (
int(blexhf[
k][
i - 1]) > cutB_ALL) {
7813 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7815 htmlFile << raw_class <<
int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7820 htmlFile <<
"</tr>" << std::endl;
7823 htmlFile <<
"</table>" << std::endl;
7824 htmlFile <<
"<br>" << std::endl;
7825 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7826 htmlFile <<
"<br>" << std::endl;
7831 htmlFile <<
"<a name=\"RBX3plots\"></a>\n";
7832 htmlFile <<
"<br>\n";
7833 htmlFile <<
"<h2> 12. (Rij) - RBX-amplitudes normilized on reference LS (~=1st) </h2>" << std::endl;
7834 htmlFile <<
"<h3> ( Rji . . is ratio of . . . . A_j_i . . to . . A_j_ref . . . . for . . j-RBX . . and . . "
7838 htmlFile <<
"<br>\n";
7839 htmlFile <<
"<h2> . . . . . . . . . . . . . . 1) . average Ri vs iLS:. . . . . . . . . . . . . . . . . . . . . "
7840 ". . 2) . average Rj shown for Rij outside meanValue range either 0.95-1.05 or 3RMS: . . . . . . . "
7841 ". . . . . . . . . . . . . . . . . . 3) . Rij: </h2>"
7843 htmlFile <<
"<br>\n";
7845 htmlFile <<
" <img src=\"RBX-HB-3plots.png\" />\n";
7848 htmlFile <<
" <img src=\"RBX-HE-3plots.png\" />\n";
7851 htmlFile <<
" <img src=\"RBX-HO-3plots.png\" />\n";
7854 htmlFile <<
" <img src=\"RBX-HF-3plots.png\" />\n";
7856 htmlFile <<
"<br>\n";
7858 htmlFile <<
"<br>\n";
7859 htmlFile <<
"<h2> . 4). average Rj shown for Rij outside meanValue range 0.80-1.20: . . . . . . . .5) . "
7860 "average Rj shown for Rij outside meanValue range 0.70-1.30: . . . . . . . .6). average Rj shown "
7861 "for Rij outside meanValue range 0.60-1.40: </h2>"
7863 htmlFile <<
"<br>\n";
7865 htmlFile <<
" <img src=\"RBX-HB-3plotsmore.png\" />\n";
7868 htmlFile <<
" <img src=\"RBX-HE-3plotsmore.png\" />\n";
7871 htmlFile <<
" <img src=\"RBX-HO-3plotsmore.png\" />\n";
7874 htmlFile <<
" <img src=\"RBX-HF-3plotsmore.png\" />\n";
7876 htmlFile <<
"<br>\n";
7878 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7900 htmlFile.open(
"CapID_GL.html");
7902 htmlFile.open(
"ADCampl_GL.html");
7904 htmlFile.open(
"Width_GL.html");
7906 htmlFile.open(
"Ratio_GL.html");
7908 htmlFile.open(
"Tmean_GL.html");
7910 htmlFile.open(
"Tmax_GL.html");
7914 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
7915 htmlFile <<
"<head>" << std::endl;
7916 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
7917 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
7918 htmlFile <<
"<style type=\"text/css\">" << std::endl;
7919 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
7921 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
7922 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
7923 "text-align: center;}"
7925 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
7926 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
7927 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
7928 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
7929 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
7930 htmlFile <<
"</style>" << std::endl;
7931 htmlFile <<
"<body>" << std::endl;
7933 htmlFile <<
"<h1> CAP ID ERRORS, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7935 htmlFile <<
"<h1> ADC AMPLITIDE, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7937 htmlFile <<
"<h1> WIDTH, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7939 htmlFile <<
"<h1> RATIO, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7941 htmlFile <<
"<h1> TIMING MEAN, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7943 htmlFile <<
"<h1> TIMING MAX, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7944 htmlFile <<
"<br>" << std::endl;
7945 htmlFile <<
"<h2> 1. Map of suspicious channels with this criterion for whole HCAL </h2>" << std::endl;
7946 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
7947 htmlFile <<
"<br>" << std::endl;
7949 htmlFile <<
" <img src=\"MapCapIdError.png\" />" << std::endl;
7951 htmlFile <<
" <img src=\"MapADCAmpl.png\" />" << std::endl;
7953 htmlFile <<
" <img src=\"MapWidth.png\" />" << std::endl;
7955 htmlFile <<
" <img src=\"MapRatio.png\" />" << std::endl;
7957 htmlFile <<
" <img src=\"MapTmean.png\" />" << std::endl;
7959 htmlFile <<
" <img src=\"MapTmax.png\" />" << std::endl;
7960 htmlFile <<
"<br>" << std::endl;
7961 htmlFile <<
"<h2> 2. For whole HCAL: </h2>" << std::endl;
7962 htmlFile <<
"<br>" << std::endl;
7964 htmlFile <<
" <img src=\"HistCapID.png\" />" << std::endl;
7966 htmlFile <<
" <img src=\"HistADCAmpl.png\" />" << std::endl;
7968 htmlFile <<
" <img src=\"HistWidth.png\" />" << std::endl;
7970 htmlFile <<
" <img src=\"HistRatio.png\" />" << std::endl;
7972 htmlFile <<
" <img src=\"HistTmean.png\" />" << std::endl;
7974 htmlFile <<
" <img src=\"HistTmax.png\" />" << std::endl;
7975 htmlFile <<
"<br>" << std::endl;
7976 htmlFile <<
"<h2> 3. Status of subdetectors </h2>" << std::endl;
7977 htmlFile <<
"<table width=\"400\">" << std::endl;
7978 htmlFile <<
"<tr>" << std::endl;
7980 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
7981 <<
"/HB_CapID.html\">HB</a></td>" << std::endl;
7982 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
7983 <<
"/HE_CapID.html\">HE</a></td>" << std::endl;
7984 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
7985 <<
"/HO_CapID.html\">HO</a></td>" << std::endl;
7986 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
7987 <<
"/HF_CapID.html\">HF</a></td>" << std::endl;
7998 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
7999 <<
"/HB_ADCampl.html\">HB</a></td>" << std::endl;
8000 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8001 <<
"/HE_ADCampl.html\">HE</a></td>" << std::endl;
8002 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8003 <<
"/HO_ADCampl.html\">HO</a></td>" << std::endl;
8004 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8005 <<
"/HF_ADCampl.html\">HF</a></td>" << std::endl;
8008 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8009 <<
"/HB_Width.html\">HB</a></td>" << std::endl;
8010 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8011 <<
"/HE_Width.html\">HE</a></td>" << std::endl;
8012 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8013 <<
"/HO_Width.html\">HO</a></td>" << std::endl;
8014 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8015 <<
"/HF_Width.html\">HF</a></td>" << std::endl;
8018 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8019 <<
"/HB_Ratio.html\">HB</a></td>" << std::endl;
8020 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8021 <<
"/HE_Ratio.html\">HE</a></td>" << std::endl;
8022 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8023 <<
"/HO_Ratio.html\">HO</a></td>" << std::endl;
8024 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8025 <<
"/HF_Ratio.html\">HF</a></td>" << std::endl;
8028 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8029 <<
"/HB_Tmean.html\">HB</a></td>" << std::endl;
8030 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8031 <<
"/HE_Tmean.html\">HE</a></td>" << std::endl;
8032 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8033 <<
"/HO_Tmean.html\">HO</a></td>" << std::endl;
8034 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8035 <<
"/HF_Tmean.html\">HF</a></td>" << std::endl;
8038 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8039 <<
"/HB_Tmax.html\">HB</a></td>" << std::endl;
8040 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8041 <<
"/HE_Tmax.html\">HE</a></td>" << std::endl;
8042 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8043 <<
"/HO_Tmax.html\">HO</a></td>" << std::endl;
8044 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8045 <<
"/HF_Tmax.html\">HF</a></td>" << std::endl;
8048 htmlFile <<
"</tr>" << std::endl;
8049 htmlFile <<
"</table>" << std::endl;
8050 htmlFile <<
"<br>" << std::endl;
8054 htmlFile <<
"<h2> 4. Table of estimator-values in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8056 htmlFile <<
"<h2> 4. Table of average Nbcs in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8057 htmlFile <<
"<table>" << std::endl;
8059 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8061 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
8063 for (
int sub = 1; sub <= 4; sub++) {
8066 int kkkkkkmax = k_max[sub];
8067 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8068 kkkkkkmax = k_maxupgrade[sub];
8073 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8074 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HBdep " <<
k <<
" </td>" << std::endl;
8076 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8077 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HBdepth " <<
k <<
" </td>" << std::endl;
8079 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8080 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HBdepth " <<
k <<
" </td>" << std::endl;
8082 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8083 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HBdepth " <<
k <<
" </td>" << std::endl;
8085 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8086 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HBdep " <<
k <<
" </td>" << std::endl;
8088 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8089 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HBdep " <<
k <<
" </td>" << std::endl;
8093 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8094 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HEdep " <<
k <<
" </td>" << std::endl;
8096 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8097 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HEdepth " <<
k <<
" </td>" << std::endl;
8099 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8100 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HEdepth " <<
k <<
" </td>" << std::endl;
8102 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8103 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HEdepth " <<
k <<
" </td>" << std::endl;
8105 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8106 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HEdep " <<
k <<
" </td>" << std::endl;
8108 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8109 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HEdep " <<
k <<
" </td>" << std::endl;
8113 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8114 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HOdep " <<
k <<
" </td>" << std::endl;
8116 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8117 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HOdepth " <<
k <<
" </td>" << std::endl;
8119 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8120 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HOdepth " <<
k <<
" </td>" << std::endl;
8122 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8123 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HOdepth " <<
k <<
" </td>" << std::endl;
8125 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8126 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HOdep " <<
k <<
" </td>" << std::endl;
8128 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8129 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HOdep " <<
k <<
" </td>" << std::endl;
8133 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8134 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HFdep " <<
k <<
" </td>" << std::endl;
8136 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8137 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HFdepth " <<
k <<
" </td>" << std::endl;
8139 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8140 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HFdepth " <<
k <<
" </td>" << std::endl;
8142 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8143 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HFdepth " <<
k <<
" </td>" << std::endl;
8145 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8146 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HFdep " <<
k <<
" </td>" << std::endl;
8148 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8149 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HFdep " <<
k <<
" </td>" << std::endl;
8152 htmlFile <<
"</tr>" << std::endl;
8172 for (
int i = 1;
i <= MaxLum;
i++) {
8175 for (
int sub = 1; sub <= 4; sub++) {
8176 int kkkkkkmax = k_max[sub];
8177 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8178 kkkkkkmax = k_maxupgrade[sub];
8180 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8182 if (sub == 2 &&
k > 3) {
8184 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8192 raw_class =
"<td class=\"s2\" align=\"center\">";
8194 raw_class =
"<td class=\"s3\" align=\"center\">";
8195 htmlFile <<
"<tr>" << std::endl;
8196 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8198 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8199 for (
int sub = 1; sub <= 4; sub++) {
8200 int kkkkkkmax = k_max[sub];
8201 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8202 kkkkkkmax = k_maxupgrade[sub];
8204 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8205 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8206 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8207 <<
"</td>" << std::endl;
8209 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8239 htmlFile <<
"</tr>" << std::endl;
8244 htmlFile <<
"</table>" << std::endl;
8245 htmlFile <<
"<br>" << std::endl;
8246 htmlFile <<
"</body> " << std::endl;
8247 htmlFile <<
"</html> " << std::endl;
8254 htmlFile.open(
"SummedAmplitudes_GL.html");
8255 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8256 htmlFile <<
"<head>" << std::endl;
8257 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8258 htmlFile <<
"<title> for summed Amplitudes of each sub-detector </title>" << std::endl;
8259 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8260 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8262 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8263 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8264 "text-align: center;}"
8266 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8267 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8268 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8269 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8270 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8272 htmlFile <<
"</style>" << std::endl;
8273 htmlFile <<
"<body>" << std::endl;
8274 htmlFile <<
"<h1> Averaged Summed Amplitudes & corresponding occupancy of each sub-detector in Global Run = "
8276 htmlFile <<
"<a name=\"Top\"></a>\n";
8277 htmlFile <<
"<b>Contents:<br>\n";
8278 htmlFile <<
"1. <a href=\"#SAhigh\">average SA&Occupancy for Signal </a><br>\n";
8279 htmlFile <<
"2. <a href=\"#SAlow\">average SA&Occupancy for NoSignal </a><br>\n";
8280 htmlFile <<
"3. <a href=\"#SAmax\"> maxSA & maxOccupancy; SA & Occupancy; </a><br>\n";
8281 htmlFile <<
"4. <a href=\"#FullTable\">Table(avA; avSA; avOccupancy; maxSA; maxOccupancy;) </a><br>\n";
8283 htmlFile <<
"<h2> Clarifying on averaged Summed Amplitude (avSA) : </h2>" << std::endl;
8284 htmlFile <<
"<h3> Summed Amplitudes (SA) are averaged over all events of each LS: avSA_LS = SUM (SA_eventsInLS) / "
8285 "N_eventsInLS ,</h3>"
8287 htmlFile <<
"<h3> where SA = SUM(A_i) ,and means that Amplitude is summed over all sub-detector channels, </h3>"
8289 htmlFile <<
"<h3> where A_i = SUM(A_depth) denotes channel amplitude summed over depths; </h3>" << std::endl;
8291 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/SAwriteup.html\"> see "
8292 "more details for SummedAmplitudes</a></td>"
8294 htmlFile <<
"<h2> Apply cuts on A_i to take into account channels with or/and without a'la Signal: </h2>"
8296 htmlFile <<
" <img src=\"ChannelDepthsummedAmplitudes.png\" />" << std::endl;
8297 htmlFile <<
"<br>" << std::endl;
8298 htmlFile <<
"<br>" << std::endl;
8299 htmlFile <<
"<a name=\"SAhigh\"></a>\n";
8300 htmlFile <<
"<h1> 1. for channels with signal </h1>" << std::endl;
8301 htmlFile <<
"<br>" << std::endl;
8302 htmlFile <<
"<h2> for HB: A_i> 80; </h2>" << std::endl;
8303 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HB.png\" />" << std::endl;
8304 htmlFile <<
"<br>" << std::endl;
8305 htmlFile <<
"<h2> for HE: A_i> 200;</h2>" << std::endl;
8306 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HE.png\" />" << std::endl;
8307 htmlFile <<
"<br>" << std::endl;
8308 htmlFile <<
"<h2> for HO: A_i> 1200;</h2>" << std::endl;
8309 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HO.png\" />" << std::endl;
8310 htmlFile <<
"<br>" << std::endl;
8311 htmlFile <<
"<h2> for HF: A_i> 600;</h2>" << std::endl;
8312 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HF.png\" />" << std::endl;
8313 htmlFile <<
"<br>" << std::endl;
8314 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8316 htmlFile <<
"<a name=\"SAlow\"></a>\n";
8317 htmlFile <<
"<h1> 2. for channels w/o signal </h1>" << std::endl;
8318 htmlFile <<
"<br>" << std::endl;
8319 htmlFile <<
"<h2> for HB: A_i< 80;</h2>" << std::endl;
8320 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HB.png\" />" << std::endl;
8321 htmlFile <<
"<br>" << std::endl;
8322 htmlFile <<
"<h2> for HE: A_i< 200;</h2>" << std::endl;
8323 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HE.png\" />" << std::endl;
8324 htmlFile <<
"<br>" << std::endl;
8325 htmlFile <<
"<h2> for HO: A_i< 1200;</h2>" << std::endl;
8326 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HO.png\" />" << std::endl;
8327 htmlFile <<
"<br>" << std::endl;
8328 htmlFile <<
"<h2> for HF: A_i< 600;</h2>" << std::endl;
8329 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HF.png\" />" << std::endl;
8330 htmlFile <<
"<br>" << std::endl;
8331 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8333 htmlFile <<
"<br>" << std::endl;
8334 htmlFile <<
"<br>" << std::endl;
8335 htmlFile <<
"<a name=\"SAmax\"></a>\n";
8336 htmlFile <<
"<h1> 3. four plots: ---1---> max SA ---2---> max Occupancy ---3---> SA ---4---> Occupancy over all "
8337 "events of LS </h1>"
8339 htmlFile <<
"<br>" << std::endl;
8341 htmlFile <<
"<h2> for HB: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8342 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HB.png\" />" << std::endl;
8344 " ......(forCut:SAmax>60000) N= "
8345 << countamplmaxHB <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHB <<
" </h2>" << std::endl;
8347 " ......(forCut:SA>60000) N= "
8348 << countamplHB <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHB <<
" </h2>" << std::endl;
8349 htmlFile <<
"<br>" << std::endl;
8350 htmlFile <<
"<h3> ONLY for HB (cross-check): channel Amplitudes for events in the Tail (averaged): </h3>"
8352 htmlFile <<
" <img src=\"AtaildepthHB.png\" />" << std::endl;
8353 htmlFile <<
"<br>" << std::endl;
8355 htmlFile <<
"<h2> for HE: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8356 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HE.png\" />" << std::endl;
8358 " ......(forCut:SAmax>60000) N= "
8359 << countamplmaxHE <<
" ...... (forCut:OCCUPmax>1200) N= " << countoccumaxHE <<
" </h2>" << std::endl;
8361 " ......(forCut:SA>60000) N= "
8362 << countamplHE <<
" ...... (forCut:OCCUP>1200) N= " << countoccuHE <<
" </h2>" << std::endl;
8363 htmlFile <<
"<br>" << std::endl;
8365 htmlFile <<
"<h2> for HO: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8366 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HO.png\" />" << std::endl;
8368 " ......(forCut:SAmax>150000) N= "
8369 << countamplmaxHO <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHO <<
" </h2>" << std::endl;
8371 " ......(forCut:SA>150000) N= "
8372 << countamplHO <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHO <<
" </h2>" << std::endl;
8373 htmlFile <<
"<br>" << std::endl;
8375 htmlFile <<
"<h2> for HF: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8376 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HF.png\" />" << std::endl;
8378 " ......(forCut:SAmax>22000) N= "
8379 << countamplmaxHF <<
" ...... (forCut:OCCUPmax>860) N= " << countoccumaxHF <<
" </h2>" << std::endl;
8381 " ......(forCut:SA>22000) N= "
8382 << countamplHF <<
" ...... (forCut:OCCUP>860) N= " << countoccuHF <<
" </h2>" << std::endl;
8383 htmlFile <<
"<br>" << std::endl;
8384 htmlFile <<
"<h2> Occupancy HF (ONLY) vs LS </h2>" << std::endl;
8385 htmlFile <<
" <img src=\"sumOccupancyHF.png\" />" << std::endl;
8386 htmlFile <<
"<br>" << std::endl;
8387 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8389 htmlFile <<
"<a name=\"FullTable\"></a>\n";
8390 htmlFile <<
"<h2> 4.Lumisection Status: </h2>" << std::endl;
8391 htmlFile <<
"<h3> Legends: HBdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8392 << Cut0[1][1][1] << std::endl;
8393 htmlFile <<
"<h3> Legends: HEdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8394 << Cut0[1][2][1] << std::endl;
8395 htmlFile <<
"<h3> Legends: HOdepth4 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8396 << Cut0[1][3][4] << std::endl;
8397 htmlFile <<
"<h3> Legends: HFdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">"
8398 << Cut0[1][4][1] << std::endl;
8399 htmlFile <<
"<br>" << std::endl;
8401 htmlFile <<
"<br>" << std::endl;
8402 htmlFile <<
"<table>" << std::endl;
8404 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8406 htmlFile <<
"<td class=\"s1\" align=\"center\"> Num.of ev.</td>" << std::endl;
8411 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HB Depth1</td>" << std::endl;
8412 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HE Depth1</td>" << std::endl;
8413 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HO Depth4</td>" << std::endl;
8414 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HF Depth1</td>" << std::endl;
8416 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (Signal) </td>" << std::endl;
8417 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (Signal) </td>" << std::endl;
8418 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (Signal) </td>" << std::endl;
8419 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (Signal) </td>" << std::endl;
8421 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (NoSignal) </td>" << std::endl;
8422 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (NoSignal) </td>" << std::endl;
8423 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (NoSignal) </td>" << std::endl;
8424 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (NoSignal) </td>" << std::endl;
8426 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HB </td>" << std::endl;
8427 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HB </td>" << std::endl;
8428 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HF </td>" << std::endl;
8429 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HF </td>" << std::endl;
8431 htmlFile <<
"</tr>" << std::endl;
8434 for (
int i = 1;
i <= MaxLum;
i++) {
8436 raw_class =
"<td class=\"s2\" align=\"center\">";
8438 raw_class =
"<td class=\"s3\" align=\"center\">";
8439 htmlFile <<
"<tr>" << std::endl;
8441 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8444 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8449 for (
int sub = 1; sub <= 4; sub++) {
8450 for (
int k = k_min[sub];
k <= k_min[sub];
k++) {
8451 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8452 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8453 <<
"</td>" << std::endl;
8456 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8459 if (SummedAmplitudeHisto[0]) {
8460 htmlFile << raw_class << SummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8461 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8462 htmlFile << raw_class << SummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8463 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8465 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8466 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8467 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8468 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8470 htmlFile << raw_class << MaxxSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8471 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8472 htmlFile << raw_class << MaxxSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8473 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8475 htmlFile <<
"</tr>" << std::endl;
8478 htmlFile <<
"</table>" << std::endl;
8479 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8481 htmlFile <<
"<br>" << std::endl;
8482 htmlFile <<
"</body> " << std::endl;
8483 htmlFile <<
"</html> " << std::endl;
8525 htmlFile.open(
"CMTresults.html");
8526 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8527 htmlFile <<
"<head>" << std::endl;
8528 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8529 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8530 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8531 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8533 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8534 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8535 "text-align: center;}"
8537 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8538 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8539 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8540 htmlFile <<
"</style>" << std::endl;
8541 htmlFile <<
"<body>" << std::endl;
8542 htmlFile <<
"<h1> LS-certification (recommendation) from analysis of CMT-dependencies of THIS run </h1>"
8544 htmlFile <<
"<br>" << std::endl;
8545 htmlFile <<
"<br>" << std::endl;
8546 htmlFile <<
"<h2> - List of suspicious LSs: </h2> " << std::endl;
8547 htmlFile <<
"<br>" << std::endl;
8548 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8549 htmlFile <<
"<br>" << std::endl;
8550 htmlFile <<
"<br>" << std::endl;
8551 htmlFile <<
"<br>" << std::endl;
8552 htmlFile <<
"<h2> - Comments: </h2> " << std::endl;
8553 htmlFile <<
"<br>" << std::endl;
8554 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8555 htmlFile <<
"<br>" << std::endl;
8556 htmlFile <<
"<br>" << std::endl;
8557 htmlFile <<
"<br>" << std::endl;
8558 htmlFile <<
"</body> " << std::endl;
8559 htmlFile <<
"</html> " << std::endl;
8565 htmlFile.open(
"LumiList.html");
8566 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8567 htmlFile <<
"<head>" << std::endl;
8568 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8569 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8570 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8571 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
8573 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8574 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
8575 "text-align: center;}"
8577 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8578 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8579 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8580 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8581 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8583 htmlFile <<
"</style>" << std::endl;
8584 htmlFile <<
"<body>" << std::endl;
8586 htmlFile <<
"<h1> Certification Monitoring Tool, GLOBAL RUN = " <<
runnumber <<
". </h1>" << std::endl;
8587 htmlFile <<
"<br>" << std::endl;
8588 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8589 <<
"/CMTresults.html\"> CMT-analysis RESULTS (for this run) </a></td>" << std::endl;
8590 htmlFile <<
"<br>" << std::endl;
8591 htmlFile <<
"<br>" << std::endl;
8594 htmlFile <<
"<h2> 1. General information (Full number of LS = " << MaxLum <<
" ). </h2>" << std::endl;
8595 htmlFile <<
" <img src=\"LumiEvent.png\" />" << std::endl;
8596 htmlFile <<
"<br>" << std::endl;
8598 htmlFile <<
"<h2> 2. HCAL status for different criteria </h2>" << std::endl;
8600 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/HELP.html\"> "
8601 "Description of criteria for bad channel selection</a></td>"
8603 htmlFile <<
"<br>" << std::endl;
8604 htmlFile <<
"<table width=\"600\">" << std::endl;
8605 htmlFile <<
"<tr>" << std::endl;
8606 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8607 <<
"/CapID_GL.html\">Cap ID errors</a></td>" << std::endl;
8609 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8610 <<
"/ADCampl_GL.html\">Amplitude</a></td>" << std::endl;
8612 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8613 <<
"/Width_GL.html\">Width</a></td>" << std::endl;
8614 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8615 <<
"/Ratio_GL.html\">Ratio</a></td>" << std::endl;
8616 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8617 <<
"/Tmean_GL.html\">TS mean</a></td>" << std::endl;
8618 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8619 <<
"/Tmax_GL.html\">TS max</a></td>" << std::endl;
8621 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber
8622 <<
"/SummedAmplitudes_GL.html\">SummedAmplitudes</a></td>" << std::endl;
8624 htmlFile <<
"</tr>" << std::endl;
8625 htmlFile <<
"</table>" << std::endl;
8626 htmlFile <<
"<br>" << std::endl;
8627 htmlFile <<
"</body> " << std::endl;
8628 htmlFile <<
"</html> " << std::endl;
8643 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin) {
8644 if (lastBin > hSrc->GetNbinsX()) {
8645 std::cout <<
"copyContents from " << hSrc->GetName() <<
": histo has " << hSrc->GetNbinsX()
8646 <<
" bins, when lastBin=" << lastBin <<
" was requested\n";
8650 (*hDest) =
new TH1F(hname, htitle, lastBin, 0, lastBin);
8651 (*hDest)->SetDirectory(0);
8652 (*hDest)->SetStats(0);
8654 for (
int ibin = 1; ibin <= lastBin; ibin++) {
8655 (*hDest)->SetBinContent(ibin, hSrc->GetBinContent(ibin));
8656 (*hDest)->SetBinError(ibin, hSrc->GetBinError(ibin));