26 #include <TPaveText.h> 33 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin);
40 gROOT->SetStyle(
"Plain");
41 gStyle->SetOptStat(0);
42 gStyle->SetOptTitle(1);
55 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
58 TFile *hfile =
new TFile(
fname,
"READ");
60 TDirectory *
dir = (TDirectory *)hfile->FindObjectAny(dirnm.c_str());
63 double Cut0[7][5][8] = {
64 {{0., 0., 0., 0., 0., 0., 0., 0.},
65 {0., 1.0, 1.0, 0., 0., 0., 0., 0.},
66 {0., 1., 1., 1., 0., 0., 0., 0.},
67 {0., 0., 0., 0., 1., 0., 0., 0.},
68 {0., 1., 1., 0., 0., 0., 0., 0.}},
76 {{0., 0., 0., 0., 0., 0., 0., 0.},
77 {0., 3500., 3500., 3500., 3500., 0., 0., 0.},
78 {0., 12000., 4500., 3500., 3500., 4000., 4500., 5500.},
79 {0., 0., 0., 0., 200., 0., 0., 0.},
80 {0., 4500., 4500., 4500., 4500., 0., 0., 0.}},
81 {{0., 0., 0., 0., 0., 0., 0., 0.},
82 {0., 3., 3., 0., 0., 0., 0., 0.},
83 {0., 3., 3., 3., 0., 0., 0., 0.},
84 {0., 0., 0., 0., 3., 0., 0., 0.},
85 {0., 2., 2., 0., 0., 0., 0., 0.}},
86 {{0., 0., 0., 0., 0., 0., 0., 0.},
87 {0., 0.4, 0.4, 0., 0., 0., 0., 0.},
88 {0., 0.4, 0.4, 0.4, 0., 0., 0., 0.},
89 {0., 0., 0., 0., 0.4, 0., 0., 0.},
90 {0., 0.8, 0.8, 0., 0., 0., 0., 0.}},
91 {{0., 0., 0., 0., 0., 0., 0., 0.},
92 {0., 4.7, 4.7, 0., 0., 0., 0., 0.},
93 {0., 4.8, 4.8, 5.0, 0., 0., 0., 0.},
94 {0., 0., 0., 0., 4.8, 0., 0., 0.},
95 {0., 4.0, 4.0, 0., 0., 0., 0., 0.}},
96 {{0., 0., 0., 0., 0., 0., 0., 0.},
97 {0., 3.5, 3.5, 0., 0., 0., 0., 0.},
98 {0., 4.0, 4.0, 4.0, 0., 0., 0., 0.},
99 {0., 0., 0., 0., 3., 0., 0., 0.},
100 {0., 3.5, 3.5, 0., 0., 0., 0., 0.}},
101 {{0., 0., 0., 0., 0., 0., 0., 0.},
102 {0., 0., 0., 0., 0., 0., 0., 0.},
103 {0., 0., 0., 0., 0., 0., 0., 0.},
104 {0., 0., 0., 0., 0., 0., 0., 0.},
105 {0., 0., 0., 0., 0., 0., 0., 0.}}};
107 double CutAb[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
108 {0., 20., 7., 0., 0., 0., 0., 0.},
109 {0., 16., 13., 4., 0., 0., 0., 0.},
110 {0., 0., 0., 0., 45., 0., 0., 0.},
111 {0., 10., 5., 0., 0., 0., 0., 0.}};
113 double CutPo[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
114 {0., 9., 3., 0., 0., 0., 0., 0.},
115 {0., 8., 6., 2., 0., 0., 0., 0.},
116 {0., 0., 0., 0., 20., 0., 0., 0.},
117 {0., 5., 3., 0., 0., 0., 0., 0.}};
135 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 500);
136 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 500);
137 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 500, 500);
138 TCanvas *cFour =
new TCanvas(
"cFour",
"cFour", 1500, 1000);
139 TCanvas *cFour1 =
new TCanvas(
"cFour1",
"cFour1", 1200, 800);
140 TCanvas *cNine =
new TCanvas(
"cNine",
"cNine", 1500, 1500);
144 TCanvas *c4x6 =
new TCanvas(
"c4x6",
"c4x6", 1200, 2400);
146 TCanvas *c5x6 =
new TCanvas(
"c5x6",
"c5x6", 1500, 2400);
148 TCanvas *cRBX1 =
new TCanvas(
"cRBX1",
"cRBX1", 1200, 1000);
151 TCanvas *cRBX31 =
new TCanvas(
"cRBX31",
"cRBX31", 1860, 600);
156 int k_min[5] = {0, 1, 1, 4, 1};
158 int k_max[5] = {0, 2, 3, 4, 2};
160 int k_maxupgrade[5] = {0, 4, 7, 4, 4};
168 TH1F *LumLum = (TH1F *)
dir->FindObjectAny(
"h_lsnumber_per_eachLS");
169 int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin());
170 cout <<
" MaxLumDanila= " << MaxLumDanila << endl;
171 gStyle->SetOptStat(110000);
174 LumLum->SetMarkerStyle(21);
175 LumLum->SetMarkerSize(0.8);
176 LumLum->GetYaxis()->SetLabelSize(0.04);
177 LumLum->SetTitle(
"Cont. number per LS \b");
178 LumLum->SetXTitle(
"Cont.number \b");
179 LumLum->SetYTitle(
"Ls \b");
180 LumLum->SetMarkerColor(4);
181 LumLum->SetLineColor(0);
182 LumLum->SetMinimum(0.8);
183 LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila + 5.);
184 LumLum->Draw(
"Error");
187 TH1F *LumiEv = (TH1F *)
dir->FindObjectAny(
"h_nevents_per_eachRealLS");
188 int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
190 for (
int i = 1;
i <= LumiEv->GetXaxis()->GetNbins();
i++) {
191 if (LumiEv->GetBinContent(
i)) {
195 cout <<
" Nev in bin of MaxLum = " << MaxLum0 <<
" MaxLum= " << MaxLum << endl;
197 gStyle->SetOptStat(110000);
202 LumiEv->GetYaxis()->SetLabelSize(0.04);
203 LumiEv->SetTitle(
"Number of events per LS");
204 LumiEv->SetXTitle(
"LS");
205 LumiEv->SetYTitle(
"Number of events ");
206 LumiEv->SetMarkerStyle(21);
207 LumiEv->SetMarkerSize(0.8);
208 LumiEv->SetMarkerColor(4);
209 LumiEv->SetLineColor(0);
211 LumiEv->GetXaxis()->SetRangeUser(0, MaxLum + 5.);
212 LumiEv->Draw(
"Error");
214 cHB->Print(
"LumiEvent.png");
220 TH1F *H_NumBadChanDepth[7][5][5];
226 H_NumBadChanDepth[1][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS1");
227 H_NumBadChanDepth[1][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS2");
229 H_NumBadChanDepth[1][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS3");
230 H_NumBadChanDepth[1][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS4");
231 H_NumBadChanDepth[1][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS5");
233 H_NumBadChanDepth[1][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS8");
235 H_NumBadChanDepth[1][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS6");
236 H_NumBadChanDepth[1][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplLS7");
242 H_NumBadChanDepth[2][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS1");
243 H_NumBadChanDepth[2][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS2");
245 H_NumBadChanDepth[2][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS3");
246 H_NumBadChanDepth[2][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS4");
247 H_NumBadChanDepth[2][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS5");
249 H_NumBadChanDepth[2][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS8");
251 H_NumBadChanDepth[2][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS6");
252 H_NumBadChanDepth[2][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeLS7");
258 H_NumBadChanDepth[3][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS1");
259 H_NumBadChanDepth[3][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS2");
261 H_NumBadChanDepth[3][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS3");
262 H_NumBadChanDepth[3][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS4");
263 H_NumBadChanDepth[3][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS5");
265 H_NumBadChanDepth[3][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS8");
267 H_NumBadChanDepth[3][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS6");
268 H_NumBadChanDepth[3][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplLS7");
274 H_NumBadChanDepth[4][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS1");
275 H_NumBadChanDepth[4][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS2");
277 H_NumBadChanDepth[4][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS3");
278 H_NumBadChanDepth[4][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS4");
279 H_NumBadChanDepth[4][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS5");
281 H_NumBadChanDepth[4][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS8");
283 H_NumBadChanDepth[4][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS6");
284 H_NumBadChanDepth[4][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanALS7");
290 H_NumBadChanDepth[5][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS1");
291 H_NumBadChanDepth[5][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS2");
293 H_NumBadChanDepth[5][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS3");
294 H_NumBadChanDepth[5][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS4");
295 H_NumBadChanDepth[5][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS5");
297 H_NumBadChanDepth[5][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS8");
299 H_NumBadChanDepth[5][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS6");
300 H_NumBadChanDepth[5][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxALS7");
302 gStyle->SetOptStat(110000);
305 for (
int sub = 1; sub <= 4; sub++) {
314 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
326 H_NumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
327 H_NumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.8);
329 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
331 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
333 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
335 H_NumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
337 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Amplitude> \b");
339 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Width> \b");
341 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <Ratio> \b");
343 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS mean> \b");
345 H_NumBadChanDepth[
test][sub][
k]->SetXTitle(
" <TS max> \b");
346 H_NumBadChanDepth[
test][sub][
k]->SetYTitle(
"Number of channel-LSs\b");
347 H_NumBadChanDepth[
test][sub][
k]->SetMarkerColor(4);
348 H_NumBadChanDepth[
test][sub][
k]->SetLineColor(0);
350 H_NumBadChanDepth[
test][sub][
k]->SetMinimum(0.8);
351 H_NumBadChanDepth[
test][sub][
k]->Draw(
"Error");
355 cHB->Print(
"H_NBCMNHB.png");
359 cHE->Print(
"H_NBCMNHE.png");
363 cONE->Print(
"H_NBCMNHO.png");
367 cHB->Print(
"H_NBCMNHF.png");
374 cHB->Print(
"H_ADCamplHB.png");
378 cHE->Print(
"H_ADCamplHE.png");
382 cONE->Print(
"H_ADCamplHO.png");
386 cHB->Print(
"H_ADCamplHF.png");
392 cHB->Print(
"H_WidthHB.png");
396 cHE->Print(
"H_WidthHE.png");
400 cONE->Print(
"H_WidthHO.png");
404 cHB->Print(
"H_WidthHF.png");
410 cHB->Print(
"H_RatioHB.png");
414 cHE->Print(
"H_RatioHE.png");
418 cONE->Print(
"H_RatioHO.png");
422 cHB->Print(
"H_RatioHF.png");
428 cHB->Print(
"H_TmeanHB.png");
432 cHE->Print(
"H_TmeanHE.png");
436 cONE->Print(
"H_TmeanHO.png");
440 cHB->Print(
"H_TmeanHF.png");
446 cHB->Print(
"H_TmaxHB.png");
450 cHE->Print(
"H_TmaxHE.png");
454 cONE->Print(
"H_TmaxHO.png");
458 cHB->Print(
"H_TmaxHF.png");
465 gStyle->SetOptStat(0);
471 TH2F *MapNumBadChanDepth[7][5][5];
472 TH2F *MapNumChanDepth[7][5][5];
473 TH2F *MapNumBadChanFull[7];
474 TH2F *MapNumChanFull[7];
480 MapNumBadChanDepth[0][1][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1Error_HB");
481 MapNumBadChanDepth[0][1][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2Error_HB");
483 MapNumBadChanDepth[0][2][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1Error_HE");
484 MapNumBadChanDepth[0][2][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2Error_HE");
485 MapNumBadChanDepth[0][2][3] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth3Error_HE");
487 MapNumBadChanDepth[0][3][4] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth4Error_HO");
489 MapNumBadChanDepth[0][4][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1Error_HF");
490 MapNumBadChanDepth[0][4][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2Error_HF");
492 MapNumBadChanFull[0] = (TH2F *)MapNumBadChanDepth[0][1][1]->Clone();
494 MapNumChanDepth[0][1][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1_HB");
495 MapNumChanDepth[0][1][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2_HB");
497 MapNumChanDepth[0][2][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1_HE");
498 MapNumChanDepth[0][2][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2_HE");
499 MapNumChanDepth[0][2][3] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth3_HE");
501 MapNumChanDepth[0][3][4] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth4_HO");
503 MapNumChanDepth[0][4][1] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth1_HF");
504 MapNumChanDepth[0][4][2] = (TH2F *)
dir->FindObjectAny(
"h_mapDepth2_HF");
506 MapNumChanFull[0] = (TH2F *)MapNumChanDepth[0][1][1]->Clone();
512 MapNumBadChanDepth[1][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS1");
513 MapNumBadChanDepth[1][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS2");
515 MapNumBadChanDepth[1][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS3");
516 MapNumBadChanDepth[1][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS4");
517 MapNumBadChanDepth[1][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS5");
519 MapNumBadChanDepth[1][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS8");
521 MapNumBadChanDepth[1][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS6");
522 MapNumBadChanDepth[1][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplLS7");
524 MapNumBadChanFull[1] = (TH2F *)MapNumBadChanDepth[1][1][1]->Clone();
526 MapNumChanDepth[1][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS1");
527 MapNumChanDepth[1][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS2");
529 MapNumChanDepth[1][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS3");
530 MapNumChanDepth[1][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS4");
531 MapNumChanDepth[1][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS5");
533 MapNumChanDepth[1][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS8");
535 MapNumChanDepth[1][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS6");
536 MapNumChanDepth[1][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumADCAmplLS7");
538 MapNumChanFull[1] = (TH2F *)MapNumChanDepth[1][1][1]->Clone();
544 MapNumBadChanDepth[2][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS1");
545 MapNumBadChanDepth[2][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS2");
547 MapNumBadChanDepth[2][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS3");
548 MapNumBadChanDepth[2][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS4");
549 MapNumBadChanDepth[2][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS5");
551 MapNumBadChanDepth[2][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS8");
553 MapNumBadChanDepth[2][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS6");
554 MapNumBadChanDepth[2][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplitudeLS7");
556 MapNumBadChanFull[2] = (TH2F *)MapNumBadChanDepth[2][1][1]->Clone();
558 MapNumChanDepth[2][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS1");
559 MapNumChanDepth[2][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS2");
561 MapNumChanDepth[2][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS3");
562 MapNumChanDepth[2][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS4");
563 MapNumChanDepth[2][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS5");
565 MapNumChanDepth[2][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS8");
567 MapNumChanDepth[2][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS6");
568 MapNumChanDepth[2][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplitudeLS7");
570 MapNumChanFull[2] = (TH2F *)MapNumChanDepth[2][1][1]->Clone();
576 MapNumBadChanDepth[3][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS1");
577 MapNumBadChanDepth[3][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS2");
579 MapNumBadChanDepth[3][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS3");
580 MapNumBadChanDepth[3][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS4");
581 MapNumBadChanDepth[3][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS5");
583 MapNumBadChanDepth[3][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS8");
585 MapNumBadChanDepth[3][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS6");
586 MapNumBadChanDepth[3][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumAmplLS7");
588 MapNumBadChanFull[3] = (TH2F *)MapNumBadChanDepth[3][1][1]->Clone();
590 MapNumChanDepth[3][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS1");
591 MapNumChanDepth[3][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS2");
593 MapNumChanDepth[3][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS3");
594 MapNumChanDepth[3][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS4");
595 MapNumChanDepth[3][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS5");
597 MapNumChanDepth[3][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS8");
599 MapNumChanDepth[3][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS6");
600 MapNumChanDepth[3][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumAmplLS7");
602 MapNumChanFull[3] = (TH2F *)MapNumChanDepth[3][1][1]->Clone();
608 MapNumBadChanDepth[4][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS1");
609 MapNumBadChanDepth[4][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS2");
611 MapNumBadChanDepth[4][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS3");
612 MapNumBadChanDepth[4][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS4");
613 MapNumBadChanDepth[4][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS5");
615 MapNumBadChanDepth[4][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS8");
617 MapNumBadChanDepth[4][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS6");
618 MapNumBadChanDepth[4][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmeanALS7");
620 MapNumBadChanFull[4] = (TH2F *)MapNumBadChanDepth[4][1][1]->Clone();
622 MapNumChanDepth[4][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS1");
623 MapNumChanDepth[4][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS2");
625 MapNumChanDepth[4][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS3");
626 MapNumChanDepth[4][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS4");
627 MapNumChanDepth[4][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS5");
629 MapNumChanDepth[4][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS8");
631 MapNumChanDepth[4][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS6");
632 MapNumChanDepth[4][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmeanALS7");
634 MapNumChanFull[4] = (TH2F *)MapNumChanDepth[4][1][1]->Clone();
640 MapNumBadChanDepth[5][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS1");
641 MapNumBadChanDepth[5][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS2");
643 MapNumBadChanDepth[5][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS3");
644 MapNumBadChanDepth[5][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS4");
645 MapNumBadChanDepth[5][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS5");
647 MapNumBadChanDepth[5][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS8");
649 MapNumBadChanDepth[5][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS6");
650 MapNumBadChanDepth[5][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2DsumTSmaxALS7");
652 MapNumBadChanFull[5] = (TH2F *)MapNumBadChanDepth[5][1][1]->Clone();
654 MapNumChanDepth[5][1][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS1");
655 MapNumChanDepth[5][1][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS2");
657 MapNumChanDepth[5][2][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS3");
658 MapNumChanDepth[5][2][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS4");
659 MapNumChanDepth[5][2][3] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS5");
661 MapNumChanDepth[5][3][4] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS8");
663 MapNumChanDepth[5][4][1] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS6");
664 MapNumChanDepth[5][4][2] = (TH2F *)
dir->FindObjectAny(
"h_2D0sumTSmaxALS7");
666 MapNumChanFull[5] = (TH2F *)MapNumChanDepth[5][1][1]->Clone();
669 for (
int sub = 1; sub <= 4; sub++) {
678 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
687 MapNumBadChanDepth[
test][sub][
k]->Divide(
688 MapNumBadChanDepth[
test][sub][
k], MapNumChanDepth[
test][sub][
k], 1, 1,
"B");
690 for (
int x = 1;
x <= MapNumBadChanFull[
test]->GetXaxis()->GetNbins();
x++) {
691 for (
int y = 1; y <= MapNumBadChanFull[
test]->GetYaxis()->GetNbins(); y++) {
692 double ccc1 = MapNumBadChanDepth[
test][sub][
k]->GetBinContent(
x, y);
693 MapNumBadChanFull[
test]->SetBinContent(
x, y, MapNumBadChanFull[
test]->GetBinContent(
x, y) + ccc1);
698 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
700 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
702 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
704 MapNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
711 MapNumBadChanDepth[
test][sub][
k]->SetXTitle(
"#eta \b");
712 MapNumBadChanDepth[
test][sub][
k]->SetYTitle(
"#phi \b");
713 MapNumBadChanDepth[
test][sub][
k]->SetZTitle(
"Average estimator \b");
716 MapNumBadChanDepth[
test][sub][
k]->Draw(
"COLZ");
718 MapNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
719 MapNumBadChanDepth[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
723 cHB->Print(
"MapCapIdErrorHB.png");
727 cHE->Print(
"MapCapIdErrorHE.png");
731 cONE->Print(
"MapCapIdErrorHO.png");
735 cHB->Print(
"MapCapIdErrorHF.png");
741 cHB->Print(
"MapADCamplHB.png");
745 cHE->Print(
"MapADCamplHE.png");
749 cONE->Print(
"MapADCamplHO.png");
753 cHB->Print(
"MapADCamplHF.png");
759 cHB->Print(
"MapWidthHB.png");
763 cHE->Print(
"MapWidthHE.png");
767 cONE->Print(
"MapWidthHO.png");
771 cHB->Print(
"MapWidthHF.png");
777 cHB->Print(
"MapRatioHB.png");
781 cHE->Print(
"MapRatioHE.png");
785 cONE->Print(
"MapRatioHO.png");
789 cHB->Print(
"MapRatioHF.png");
795 cHB->Print(
"MapTmeanHB.png");
799 cHE->Print(
"MapTmeanHE.png");
803 cONE->Print(
"MapTmeanHO.png");
807 cHB->Print(
"MapTmeanHF.png");
813 cHB->Print(
"MapTmaxHB.png");
817 cHE->Print(
"MapTmaxHE.png");
821 cONE->Print(
"MapTmaxHO.png");
825 cHB->Print(
"MapTmaxHF.png");
835 MapNumBadChanFull[
test]->SetTitle(
"All subdetectors\b");
836 MapNumBadChanFull[
test]->SetXTitle(
"#eta \b");
837 MapNumBadChanFull[
test]->SetYTitle(
"#phi \b");
839 MapNumBadChanFull[
test]->SetZTitle(
"Average Nbcs \b");
841 MapNumBadChanFull[
test]->SetZTitle(
"Average estimator \b");
843 MapNumBadChanFull[
test]->SetTitleOffset(0.75,
"Z");
844 MapNumBadChanFull[
test]->Draw(
"COLZ");
845 MapNumBadChanFull[
test]->GetYaxis()->SetRangeUser(0, 72.);
848 cONE->Print(
"MapCapIdError.png");
852 cONE->Print(
"MapADCAmpl.png");
856 cONE->Print(
"MapWidth.png");
860 cONE->Print(
"MapRatio.png");
864 cONE->Print(
"MapTmean.png");
868 cONE->Print(
"MapTmax.png");
878 TH1F *HistNumBadChanDepth[7][5][8];
879 TH1F *HistCutNumBadChanDepth[7][5][8];
880 TH1F *HistNumChanDepth[7][5][8];
886 TH1F *HistNumBadChanFull[7];
887 TH1F *HistNumChanFull[7];
893 HistNumBadChanDepth[0][1][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HB");
894 HistNumBadChanDepth[0][1][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HB");
896 HistNumBadChanDepth[0][2][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HE");
897 HistNumBadChanDepth[0][2][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HE");
898 HistNumBadChanDepth[0][2][3] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth3_HE");
900 HistNumBadChanDepth[0][3][4] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth4_HO");
902 HistNumBadChanDepth[0][4][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HF");
903 HistNumBadChanDepth[0][4][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HF");
905 HistNumBadChanFull[0] = (TH1F *)HistNumBadChanDepth[0][1][1]->Clone();
907 HistCutNumBadChanDepth[0][1][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HB");
908 HistCutNumBadChanDepth[0][1][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HB");
910 HistCutNumBadChanDepth[0][2][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HE");
911 HistCutNumBadChanDepth[0][2][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HE");
912 HistCutNumBadChanDepth[0][2][3] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth3_HE");
914 HistCutNumBadChanDepth[0][3][4] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth4_HO");
916 HistCutNumBadChanDepth[0][4][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth1_HF");
917 HistCutNumBadChanDepth[0][4][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannels_depth2_HF");
919 HistNumChanDepth[0][1][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HB");
920 HistNumChanDepth[0][1][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HB");
922 HistNumChanDepth[0][2][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HE");
923 HistNumChanDepth[0][2][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HE");
924 HistNumChanDepth[0][2][3] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth3_HE");
926 HistNumChanDepth[0][3][4] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth4_HO");
928 HistNumChanDepth[0][4][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HF");
929 HistNumChanDepth[0][4][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HF");
931 HistNumChanFull[0] = (TH1F *)HistNumChanDepth[0][1][1]->Clone();
939 HistNumBadChanDepth[1][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS1");
940 HistNumBadChanDepth[1][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS2");
942 HistNumBadChanDepth[1][1][3] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth3HBu");
943 HistNumBadChanDepth[1][1][4] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth4HBu");
946 HistNumBadChanDepth[1][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS3");
947 HistNumBadChanDepth[1][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS4");
948 HistNumBadChanDepth[1][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS5");
950 HistNumBadChanDepth[1][2][4] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth4HEu");
951 HistNumBadChanDepth[1][2][5] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth5HEu");
952 HistNumBadChanDepth[1][2][6] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth6HEu");
953 HistNumBadChanDepth[1][2][7] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLSdepth7HEu");
956 HistNumBadChanDepth[1][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS8");
959 HistNumBadChanDepth[1][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS6");
960 HistNumBadChanDepth[1][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS7");
962 HistNumBadChanDepth[1][4][3] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS6u");
963 HistNumBadChanDepth[1][4][4] = (TH1F *)
dir->FindObjectAny(
"h_sumADCAmplperLS7u");
966 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
970 HistCutNumBadChanDepth[1][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS1");
971 HistCutNumBadChanDepth[1][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS2");
973 HistCutNumBadChanDepth[1][1][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth3HBu");
974 HistCutNumBadChanDepth[1][1][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth4HBu");
977 HistCutNumBadChanDepth[1][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS3");
978 HistCutNumBadChanDepth[1][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS4");
979 HistCutNumBadChanDepth[1][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS5");
981 HistCutNumBadChanDepth[1][2][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth4HEu");
982 HistCutNumBadChanDepth[1][2][5] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth5HEu");
983 HistCutNumBadChanDepth[1][2][6] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth6HEu");
984 HistCutNumBadChanDepth[1][2][7] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLSdepth7HEu");
987 HistCutNumBadChanDepth[1][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS8");
990 HistCutNumBadChanDepth[1][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS6");
991 HistCutNumBadChanDepth[1][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS7");
993 HistCutNumBadChanDepth[1][4][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS6u");
994 HistCutNumBadChanDepth[1][4][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutADCAmplperLS7u");
998 HistNumChanDepth[1][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS1");
999 HistNumChanDepth[1][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS2");
1001 HistNumChanDepth[1][1][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth3HBu");
1002 HistNumChanDepth[1][1][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth4HBu");
1005 HistNumChanDepth[1][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS3");
1006 HistNumChanDepth[1][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS4");
1007 HistNumChanDepth[1][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS5");
1009 HistNumChanDepth[1][2][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth4HEu");
1010 HistNumChanDepth[1][2][5] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth5HEu");
1011 HistNumChanDepth[1][2][6] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth6HEu");
1012 HistNumChanDepth[1][2][7] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLSdepth7HEu");
1015 HistNumChanDepth[1][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS8");
1018 HistNumChanDepth[1][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS6");
1019 HistNumChanDepth[1][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS7");
1021 HistNumChanDepth[1][4][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS6u");
1022 HistNumChanDepth[1][4][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0ADCAmplperLS7u");
1025 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1027 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1033 HistNumBadChanDepth[2][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS1");
1034 HistNumBadChanDepth[2][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS2");
1036 HistNumBadChanDepth[2][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS3");
1037 HistNumBadChanDepth[2][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS4");
1038 HistNumBadChanDepth[2][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS5");
1040 HistNumBadChanDepth[2][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS8");
1042 HistNumBadChanDepth[2][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS6");
1043 HistNumBadChanDepth[2][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplitudeperLS7");
1045 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1047 HistCutNumBadChanDepth[2][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS1");
1048 HistCutNumBadChanDepth[2][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS2");
1050 HistCutNumBadChanDepth[2][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS3");
1051 HistCutNumBadChanDepth[2][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS4");
1052 HistCutNumBadChanDepth[2][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS5");
1054 HistCutNumBadChanDepth[2][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS8");
1056 HistCutNumBadChanDepth[2][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS6");
1057 HistCutNumBadChanDepth[2][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplitudeperLS7");
1059 HistNumChanDepth[2][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS1");
1060 HistNumChanDepth[2][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS2");
1062 HistNumChanDepth[2][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS3");
1063 HistNumChanDepth[2][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS4");
1064 HistNumChanDepth[2][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS5");
1066 HistNumChanDepth[2][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS8");
1068 HistNumChanDepth[2][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS6");
1069 HistNumChanDepth[2][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplitudeperLS7");
1071 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1076 HistNumBadChanDepth[3][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS1");
1077 HistNumBadChanDepth[3][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS2");
1079 HistNumBadChanDepth[3][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS3");
1080 HistNumBadChanDepth[3][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS4");
1081 HistNumBadChanDepth[3][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS5");
1083 HistNumBadChanDepth[3][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS8");
1085 HistNumBadChanDepth[3][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS6");
1086 HistNumBadChanDepth[3][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumAmplperLS7");
1088 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1090 HistCutNumBadChanDepth[3][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS1");
1091 HistCutNumBadChanDepth[3][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS2");
1093 HistCutNumBadChanDepth[3][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS3");
1094 HistCutNumBadChanDepth[3][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS4");
1095 HistCutNumBadChanDepth[3][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS5");
1097 HistCutNumBadChanDepth[3][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS8");
1099 HistCutNumBadChanDepth[3][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS6");
1100 HistCutNumBadChanDepth[3][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutAmplperLS7");
1102 HistNumChanDepth[3][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS1");
1103 HistNumChanDepth[3][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS2");
1105 HistNumChanDepth[3][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS3");
1106 HistNumChanDepth[3][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS4");
1107 HistNumChanDepth[3][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS5");
1109 HistNumChanDepth[3][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS8");
1111 HistNumChanDepth[3][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS6");
1112 HistNumChanDepth[3][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0AmplperLS7");
1114 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1119 HistNumBadChanDepth[4][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS1");
1120 HistNumBadChanDepth[4][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS2");
1122 HistNumBadChanDepth[4][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS3");
1123 HistNumBadChanDepth[4][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS4");
1124 HistNumBadChanDepth[4][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS5");
1126 HistNumBadChanDepth[4][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS8");
1128 HistNumBadChanDepth[4][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS6");
1129 HistNumBadChanDepth[4][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmeanAperLS7");
1131 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1133 HistCutNumBadChanDepth[4][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS1");
1134 HistCutNumBadChanDepth[4][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS2");
1136 HistCutNumBadChanDepth[4][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS3");
1137 HistCutNumBadChanDepth[4][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS4");
1138 HistCutNumBadChanDepth[4][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS5");
1140 HistCutNumBadChanDepth[4][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS8");
1142 HistCutNumBadChanDepth[4][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS6");
1143 HistCutNumBadChanDepth[4][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmeanAperLS7");
1145 HistNumChanDepth[4][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS1");
1146 HistNumChanDepth[4][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS2");
1148 HistNumChanDepth[4][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS3");
1149 HistNumChanDepth[4][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS4");
1150 HistNumChanDepth[4][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS5");
1152 HistNumChanDepth[4][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS8");
1154 HistNumChanDepth[4][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS6");
1155 HistNumChanDepth[4][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmeanAperLS7");
1157 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1162 HistNumBadChanDepth[5][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS1");
1163 HistNumBadChanDepth[5][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS2");
1165 HistNumBadChanDepth[5][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS3");
1166 HistNumBadChanDepth[5][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS4");
1167 HistNumBadChanDepth[5][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS5");
1169 HistNumBadChanDepth[5][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS8");
1171 HistNumBadChanDepth[5][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS6");
1172 HistNumBadChanDepth[5][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumTSmaxAperLS7");
1174 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1176 HistCutNumBadChanDepth[5][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS1");
1177 HistCutNumBadChanDepth[5][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS2");
1179 HistCutNumBadChanDepth[5][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS3");
1180 HistCutNumBadChanDepth[5][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS4");
1181 HistCutNumBadChanDepth[5][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS5");
1183 HistCutNumBadChanDepth[5][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS8");
1185 HistCutNumBadChanDepth[5][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS6");
1186 HistCutNumBadChanDepth[5][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sumCutTSmaxAperLS7");
1188 HistNumChanDepth[5][1][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS1");
1189 HistNumChanDepth[5][1][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS2");
1191 HistNumChanDepth[5][2][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS3");
1192 HistNumChanDepth[5][2][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS4");
1193 HistNumChanDepth[5][2][3] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS5");
1195 HistNumChanDepth[5][3][4] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS8");
1197 HistNumChanDepth[5][4][1] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS6");
1198 HistNumChanDepth[5][4][2] = (TH1F *)
dir->FindObjectAny(
"h_sum0TSmaxAperLS7");
1200 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1203 for (
int sub = 1; sub <= 4; sub++) {
1204 if (sub == 1 &&
test != 1)
1206 if (sub == 1 &&
test == 1) {
1208 cFour1->Divide(2, 2);
1210 if (sub == 2 &&
test != 1)
1212 if (sub == 2 &&
test == 1) {
1214 cNine->Divide(3, 3);
1218 if (sub == 4 &&
test != 1)
1220 if (sub == 4 &&
test == 1) {
1222 cFour1->Divide(2, 2);
1225 int kkkkkkmax = k_max[sub];
1227 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
1228 kkkkkkmax = k_maxupgrade[sub];
1229 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1230 if (sub == 1 &&
test != 1)
1232 if (sub == 1 &&
test == 1)
1234 if (sub == 2 &&
test != 1)
1236 if (sub == 2 &&
test == 1)
1240 if (sub == 4 &&
test != 1)
1242 if (sub == 4 &&
test == 1)
1248 if (sub == 1 &&
k == 1) {
1251 for (
int x = 1;
x <= HistNumBadChanFull[
test]->GetXaxis()->GetNbins();
x++) {
1252 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
x);
1253 HistNumBadChanFull[
test]->SetBinContent(
x, HistNumBadChanFull[
test]->GetBinContent(
x) + ccc1);
1254 double ccc2 = HistNumChanDepth[
test][sub][
k]->GetBinContent(
x);
1255 HistNumChanFull[
test]->SetBinContent(
x, HistNumChanFull[
test]->GetBinContent(
x) + ccc2);
1260 HistNumBadChanDepth[
test][sub][
k]->Divide(
1261 HistNumBadChanDepth[
test][sub][
k], HistNumChanDepth[
test][sub][
k], 1, 1,
"B");
1263 for (
int x = 1;
x <= HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->GetNbins();
x++) {
1264 HistNumBadChanDepth[
test][sub][
k]->SetBinError(
float(
x), 0.01);
1269 HistNumBadChanDepth[
test][sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1272 HistNumBadChanDepth[
test][sub][
k]->SetMarkerStyle(20);
1273 HistNumBadChanDepth[
test][sub][
k]->SetMarkerSize(0.4);
1274 HistNumBadChanDepth[
test][sub][
k]->GetYaxis()->SetLabelSize(0.04);
1276 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 1\b");
1278 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 2\b");
1280 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 3\b");
1282 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 4\b");
1284 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 5\b");
1286 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 6\b");
1288 HistNumBadChanDepth[
test][sub][
k]->SetTitle(
"Depth 7\b");
1289 HistNumBadChanDepth[
test][sub][
k]->SetXTitle(
"LS \b");
1291 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"<Number of bad channels> \b");
1293 HistNumBadChanDepth[
test][sub][
k]->SetYTitle(
"Averaged estimator \b");
1294 HistNumBadChanDepth[
test][sub][
k]->SetMarkerColor(2);
1295 HistNumBadChanDepth[
test][sub][
k]->SetLineColor(0);
1301 HistNumBadChanDepth[
test][sub][
k]->Draw(
"Error");
1339 if (sub == 1 &&
test != 1) {
1342 if (sub == 1 &&
test == 1) {
1345 if (sub == 2 &&
test != 1) {
1348 if (sub == 2 &&
test == 1) {
1354 if (sub == 4 &&
test != 1) {
1357 if (sub == 4 &&
test == 1) {
1365 cHE->Print(
"HistNBCMNHB.png");
1369 cHE->Print(
"HistNBCMNHE.png");
1373 cHB->Print(
"HistNBCMNHO.png");
1377 cHE->Print(
"HistNBCMNHF.png");
1384 cFour1->Print(
"HistADCamplHB.png");
1388 cNine->Print(
"HistADCamplHE.png");
1392 cHB->Print(
"HistADCamplHO.png");
1396 cFour1->Print(
"HistADCamplHF.png");
1402 cHE->Print(
"HistWidthHB.png");
1406 cHE->Print(
"HistWidthHE.png");
1410 cHB->Print(
"HistWidthHO.png");
1414 cHE->Print(
"HistWidthHF.png");
1420 cHE->Print(
"HistRatioHB.png");
1424 cHE->Print(
"HistRatioHE.png");
1428 cHB->Print(
"HistRatioHO.png");
1432 cHE->Print(
"HistRatioHF.png");
1438 cHE->Print(
"HistTmeanHB.png");
1442 cHE->Print(
"HistTmeanHE.png");
1446 cHB->Print(
"HistTmeanHO.png");
1450 cHE->Print(
"HistTmeanHF.png");
1456 cHE->Print(
"HistTmaxHB.png");
1460 cHE->Print(
"HistTmaxHE.png");
1464 cHB->Print(
"HistTmaxHO.png");
1468 cHE->Print(
"HistTmaxHF.png");
1475 for (
int x = 1;
x <= HistNumChanFull[6]->GetXaxis()->GetNbins();
x++) {
1476 HistNumChanFull[6]->SetBinContent(
x, 0.0);
1477 int depthsubcount = 0.;
1478 for (
int sub = 1; sub <= 4; sub++) {
1479 int kkkkkkmax = k_max[sub];
1480 if (sub == 4 || sub == 2 || sub == 1)
1481 kkkkkkmax = k_maxupgrade[sub];
1483 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
1487 double ccc1 = HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
x);
1488 HistNumChanFull[6]->SetBinContent(
x, HistNumChanFull[6]->GetBinContent(
x) + ccc1);
1491 if (depthsubcount > 0.) {
1492 HistNumChanFull[6]->SetBinContent(
x, (HistNumChanFull[6]->GetBinContent(
x)) / depthsubcount);
1494 HistNumChanFull[6]->SetBinContent(
x, (HistNumChanFull[6]->GetBinContent(
x)) / 8.);
1506 HistNumBadChanFull[
test]->Divide(HistNumBadChanFull[
test], HistNumChanFull[
test], 1, 1,
"B");
1507 TH1F *kfitq =
new TH1F(
"kfitq",
"", MaxLum, 1., MaxLum + 1.);
1508 int nx = kfitq->GetXaxis()->GetNbins();
1509 for (
int i = 1;
i <= nx;
i++) {
1510 double ccc1 = HistNumBadChanFull[
test]->GetBinContent(
i);
1512 kfitq->Fill(
float(
i), ccc1);
1513 kfitq->SetBinError(
float(
i), 0.01);
1516 kfitq->SetMarkerStyle(20);
1517 kfitq->SetMarkerSize(0.4);
1518 kfitq->GetYaxis()->SetLabelSize(0.04);
1520 kfitq->SetTitle(
"Average Nbch for whole Hcal \b");
1522 kfitq->SetTitle(
"Averaged estimator for whole Hcal \b");
1523 kfitq->SetXTitle(
"LS \b");
1525 kfitq->SetYTitle(
"<Number of bad channels> \b");
1527 kfitq->SetYTitle(
"Averaged estimator \b");
1528 kfitq->SetMarkerColor(2);
1529 kfitq->SetLineColor(0);
1531 kfitq->Draw(
"Error");
1551 TH1F *lpuio =
new TH1F(
"lpuio",
"", MaxLum, 1., MaxLum + 1.);
1552 int nx = lpuio->GetXaxis()->GetNbins();
1553 for (
int i = 1;
i <= nx;
i++) {
1554 double ccc1 = HistNumChanFull[6]->GetBinContent(
i);
1556 lpuio->Fill(
float(
i), ccc1);
1557 lpuio->SetBinError(
float(
i), 0.01);
1560 lpuio->SetMarkerStyle(20);
1561 lpuio->SetMarkerSize(0.4);
1562 lpuio->GetYaxis()->SetLabelSize(0.04);
1563 lpuio->SetTitle(
"Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1564 lpuio->SetXTitle(
"LS \b");
1565 lpuio->SetYTitle(
"Mean of Averaged estimator \b");
1566 lpuio->SetMarkerColor(2);
1567 lpuio->SetLineColor(0);
1569 lpuio->Draw(
"Error");
1572 cHB->Print(
"HistCapID.png");
1576 cHE->Print(
"HistADCAmpl.png");
1580 cHB->Print(
"HistWidth.png");
1584 cHB->Print(
"HistRatio.png");
1588 cHB->Print(
"HistTmean.png");
1592 cHB->Print(
"HistTmax.png");
1606 TH1F *HistAbnormNumBadChanDepth[5][5];
1612 HistAbnormNumBadChanDepth[1][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth1_HB");
1613 HistAbnormNumBadChanDepth[1][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth2_HB");
1614 HistAbnormNumBadChanDepth[2][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth1_HE");
1615 HistAbnormNumBadChanDepth[2][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth2_HE");
1616 HistAbnormNumBadChanDepth[2][3] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth3_HE");
1617 HistAbnormNumBadChanDepth[3][4] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth4_HO");
1618 HistAbnormNumBadChanDepth[4][1] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth1_HF");
1619 HistAbnormNumBadChanDepth[4][2] = (TH1F *)
dir->FindObjectAny(
"h_runnbadchannelsC_depth2_HF");
1621 for (
int sub = 1; sub <= 4; sub++) {
1630 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1642 HistAbnormNumBadChanDepth[sub][
k]->Divide(
1643 HistAbnormNumBadChanDepth[sub][
k], HistNumChanDepth[0][sub][
k], 1, 1,
"B");
1645 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 1\b");
1647 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 2\b");
1649 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 3\b");
1651 HistAbnormNumBadChanDepth[sub][
k]->SetTitle(
"Depth 4\b");
1652 HistAbnormNumBadChanDepth[sub][
k]->SetXTitle(
"LS \b");
1653 HistAbnormNumBadChanDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1654 if (MaxLum <= 1000) {
1655 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerStyle(20);
1656 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerSize(0.5);
1657 HistAbnormNumBadChanDepth[sub][
k]->SetMarkerColor(1);
1658 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(0);
1659 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1660 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"P");
1662 HistAbnormNumBadChanDepth[sub][
k]->SetLineColor(1);
1663 HistAbnormNumBadChanDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1664 HistAbnormNumBadChanDepth[sub][
k]->Draw(
"L");
1668 cHB->Print(
"Hist_CAPID_Abnorm_HB.png");
1672 cHE->Print(
"Hist_CAPID_Abnorm_HE.png");
1676 cONE->Print(
"Hist_CAPID_Abnorm_HO.png");
1680 cHB->Print(
"Hist_CAPID_Abnorm_HF.png");
1689 TH1F *HistPortBadEventsDepth[5][5];
1691 HistPortBadEventsDepth[1][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth1_HB");
1692 HistPortBadEventsDepth[1][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth2_HB");
1693 HistPortBadEventsDepth[2][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth1_HE");
1694 HistPortBadEventsDepth[2][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth2_HE");
1695 HistPortBadEventsDepth[2][3] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth3_HE");
1696 HistPortBadEventsDepth[3][4] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth4_HO");
1697 HistPortBadEventsDepth[4][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth1_HF");
1698 HistPortBadEventsDepth[4][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrateC_depth2_HF");
1700 TH1F *HistNumRateDepth[5][5];
1701 HistNumRateDepth[1][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HB");
1702 HistNumRateDepth[1][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HB");
1703 HistNumRateDepth[2][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HE");
1704 HistNumRateDepth[2][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HE");
1705 HistNumRateDepth[2][3] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth3_HE");
1706 HistNumRateDepth[3][4] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth4_HO");
1707 HistNumRateDepth[4][1] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth1_HF");
1708 HistNumRateDepth[4][2] = (TH1F *)
dir->FindObjectAny(
"h_runbadrate0_depth2_HF");
1710 for (
int sub = 1; sub <= 4; sub++) {
1719 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1731 HistPortBadEventsDepth[sub][
k]->Divide(HistPortBadEventsDepth[sub][
k], HistNumRateDepth[sub][
k], 1, 1,
"B");
1734 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1736 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1738 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1740 HistPortBadEventsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1741 HistPortBadEventsDepth[sub][
k]->SetXTitle(
"LS \b");
1742 HistPortBadEventsDepth[sub][
k]->SetYTitle(
"< Number of bad channels > \b");
1743 if (MaxLum <= 1000) {
1744 HistPortBadEventsDepth[sub][
k]->SetMarkerStyle(20);
1745 HistPortBadEventsDepth[sub][
k]->SetMarkerSize(0.5);
1746 HistPortBadEventsDepth[sub][
k]->SetMarkerColor(1);
1747 HistPortBadEventsDepth[sub][
k]->SetLineColor(0);
1748 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1749 HistPortBadEventsDepth[sub][
k]->Draw(
"P");
1751 HistPortBadEventsDepth[sub][
k]->SetLineColor(1);
1752 HistPortBadEventsDepth[sub][
k]->GetXaxis()->SetRangeUser(0, MaxLum);
1753 HistPortBadEventsDepth[sub][
k]->Draw(
"L");
1757 cHB->Print(
"HistPortHB.png");
1761 cHE->Print(
"HistPortHE.png");
1765 cONE->Print(
"HistPortHO.png");
1769 cHB->Print(
"HistPortHF.png");
1780 TH1F *HistNBadChsDepth[5][5];
1782 HistNBadChsDepth[1][1] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth1_HB");
1783 HistNBadChsDepth[1][2] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth2_HB");
1784 HistNBadChsDepth[2][1] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth1_HE");
1785 HistNBadChsDepth[2][2] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth2_HE");
1786 HistNBadChsDepth[2][3] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth3_HE");
1787 HistNBadChsDepth[3][4] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth4_HO");
1788 HistNBadChsDepth[4][1] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth1_HF");
1789 HistNBadChsDepth[4][2] = (TH1F *)
dir->FindObjectAny(
"h_nbadchannels_depth2_HF");
1791 for (
int sub = 1; sub <= 4; sub++) {
1800 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1814 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 1\b");
1816 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 2\b");
1818 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 3\b");
1820 HistNBadChsDepth[sub][
k]->SetTitle(
"Depth 4\b");
1821 HistNBadChsDepth[sub][
k]->SetXTitle(
"Number of bad channels\b");
1822 HistNBadChsDepth[sub][
k]->SetYTitle(
"Number of events\b");
1827 HistNBadChsDepth[sub][
k]->Draw(
"");
1830 cHB->Print(
"HistNBadChsHB.png");
1834 cHE->Print(
"HistNBadChsHE.png");
1838 cONE->Print(
"HistNBadChsHO.png");
1842 cHB->Print(
"HistNBadChsHF.png");
1853 int flagErrAB_HB[2];
1854 flagErrAB_HB[0] = -1;
1855 flagErrAB_HB[1] = -1;
1856 double avedelta_HB = 0.;
1857 int lastLumiBin_HB = -1;
1858 int LSofFirstErrB_HB = -1;
1860 const int specCountA = 4;
1861 const int specColors[specCountA] = {1, 2, 3, 4};
1862 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS1_P1",
"h_sum0ADCAmplperLS1_P1"},
1863 {
"h_sumADCAmplperLS1_P2",
"h_sum0ADCAmplperLS1_P2"},
1864 {
"h_sumADCAmplperLS1_M1",
"h_sum0ADCAmplperLS1_M1"},
1865 {
"h_sumADCAmplperLS1_M2",
"h_sum0ADCAmplperLS1_M2"}};
1867 std::vector<TH1F *> hV;
1868 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
1875 for (
int i = 0;
i < specCountA;
i++) {
1877 std::cout <<
"debugger: errA_HB : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
1879 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hnames[
i][0]);
1880 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hnames[
i][1]);
1882 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
1883 ptext->AddText(
"Missing histo");
1885 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
1886 ptext->AddText(hnames[
i][0]);
1889 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
1890 ptext->AddText(hnames[
i][1]);
1895 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
1896 hERT1orig->Divide(h1, h0, 1, 1,
"B");
1898 if ((lastLumiBin_HB < 0) && (
i == 0)) {
1899 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1900 if (hERT1orig->GetBinContent(ibin) == 0)
1901 lastLumiBin_HB = ibin;
1905 lastLumiBin_HB += 3;
1906 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1907 lastLumiBin_HB = -1;
1910 if (lastLumiBin_HB > 1) {
1911 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HB)) {
1912 std::cout <<
"code failed" << std::endl;
1918 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1919 hV.push_back(hERT1);
1920 hERT1->SetMarkerStyle(20);
1921 hERT1->SetMarkerSize(0.4);
1922 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1923 hERT1->SetMarkerColor(specColors[
i]);
1924 hERT1->SetLineColor(0);
1928 if (hERT1 != hERT1orig)
1931 hs->Draw(
"LPE1 nostack");
1933 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1934 hs->Draw(
"LPE1 nostack");
1940 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
1942 if (
int(hV.size()) == specCountA) {
1943 flagErrAB_HB[0] = 0;
1944 double sumdelta = 0.;
1946 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1948 double maxdelta = 0.;
1949 for (
unsigned int i = 0;
i < hV.size();
i++) {
1950 const TH1F *
hi = hV[
i];
1951 for (
unsigned int j = 1;
j < hV.size();
j++) {
1952 const TH1F *hj = hV[
j];
1953 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1954 if (
delta > maxdelta)
1958 if (maxdelta > 0.) {
1959 diff->Fill(maxdelta);
1960 sumdelta += maxdelta;
1965 avedelta_HB = sumdelta / nnndelta;
1966 std::cout <<
"******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1967 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1968 flagErrAB_HB[0] = 1;
1971 diff->SetMarkerStyle(20);
1972 diff->SetMarkerSize(0.8);
1973 diff->SetXTitle(
"max difference \b");
1974 diff->SetMarkerColor(2);
1975 diff->SetLineColor(0);
1978 diff->Draw(
"Error");
1981 cHB->Print(
"HistErrA_HB.png");
1988 for (
unsigned int i = 0;
i < hV.size();
i++)
1995 const int specCountB = 4;
1996 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS1",
"h_2D0sumErrorBLS1"},
1997 {
"h_sumErrorBperLS1",
"h_sum0ErrorBperLS1"},
1998 {
"h_2DsumErrorBLS2",
"h_2D0sumErrorBLS2"},
1999 {
"h_sumErrorBperLS2",
"h_sum0ErrorBperLS2"}};
2006 TH1F *hRate2orig =
NULL;
2007 TH2F *h2Cefz6 =
NULL;
2008 TString hname1 = hnames[2 *
depth - 2][0];
2009 TString hname0 = hnames[2 *
depth - 2][1];
2010 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
2011 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
2013 std::cout <<
"debugger: errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2014 if (!twod1 || !twod0) {
2015 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2016 ptext->AddText(
"Missing histos");
2018 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2019 ptext->AddText(hname1);
2022 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2023 ptext->AddText(hname0);
2027 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2028 h2Cefz6->SetTitle(Form(
"HB Depth %d \b",
depth));
2029 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2034 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2035 h2Cefz6->SetMarkerStyle(20);
2036 h2Cefz6->SetMarkerSize(0.4);
2038 h2Cefz6->SetXTitle(
"#eta \b");
2039 h2Cefz6->SetYTitle(
"#phi \b");
2040 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HB Depth%d \b",
depth));
2041 h2Cefz6->SetMarkerColor(2);
2042 h2Cefz6->SetLineColor(2);
2043 h2Cefz6->Draw(
"COLZ");
2050 hname1 = hnames[2 *
depth - 1][0];
2051 hname0 = hnames[2 *
depth - 1][1];
2052 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hname1);
2053 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hname0);
2055 std::cout <<
"errB_HB depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2057 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2058 ptext->AddText(
"Missing histo");
2060 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2061 ptext->AddText(hname1);
2064 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2065 ptext->AddText(hname0);
2072 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2073 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2075 TH1F *hRate2 =
NULL;
2076 if (lastLumiBin_HB > 1) {
2077 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HB)) {
2078 std::cout <<
"code failed" << std::endl;
2082 hRate2 = hRate2orig;
2084 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2085 hRate2->SetMarkerStyle(20);
2086 hRate2->SetMarkerSize(0.8);
2088 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b",
depth));
2089 hRate2->SetMarkerColor(2);
2090 hRate2->SetLineColor(0);
2091 hRate2->Draw(
"Error");
2093 if (LSofFirstErrB_HB == -1) {
2094 int nx = hRate2->GetXaxis()->GetNbins();
2095 for (
int i = 1;
i <= nx;
i++) {
2096 double ccc1 = hRate2->GetBinContent(
i);
2098 cout <<
"****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2100 LSofFirstErrB_HB =
i;
2108 if (hRate2 != hRate2orig) {
2110 hRate2orig = hRate2;
2115 cHB->Print(Form(
"HistErrB_HB_%d.png",
depth));
2130 int flagErrAB_HE[2];
2131 flagErrAB_HE[0] = -1;
2132 flagErrAB_HE[1] = -1;
2133 double avedelta_HE = 0.;
2134 int lastLumiBin_HE = -1;
2135 int LSofFirstErrB_HE = -1;
2137 const int specCountA = 4;
2138 const int specColors[specCountA] = {1, 2, 3, 4};
2139 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS3_P1",
"h_sum0ADCAmplperLS3_P1"},
2140 {
"h_sumADCAmplperLS3_P2",
"h_sum0ADCAmplperLS3_P2"},
2141 {
"h_sumADCAmplperLS3_M1",
"h_sum0ADCAmplperLS3_M1"},
2142 {
"h_sumADCAmplperLS3_M2",
"h_sum0ADCAmplperLS3_M2"}};
2144 std::vector<TH1F *> hV;
2145 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2152 for (
int i = 0;
i < specCountA;
i++) {
2154 std::cout <<
"debugger: errA_HE : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2156 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hnames[
i][0]);
2157 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hnames[
i][1]);
2159 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2160 ptext->AddText(
"Missing histo");
2162 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2163 ptext->AddText(hnames[
i][0]);
2166 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2167 ptext->AddText(hnames[
i][1]);
2172 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2173 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2175 if ((lastLumiBin_HE < 0) && (
i == 0)) {
2176 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2177 if (hERT1orig->GetBinContent(ibin) == 0)
2178 lastLumiBin_HE = ibin;
2182 lastLumiBin_HE += 3;
2183 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2184 lastLumiBin_HE = -1;
2187 if (lastLumiBin_HE > 1) {
2188 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HE)) {
2189 std::cout <<
"code failed" << std::endl;
2195 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2196 hV.push_back(hERT1);
2197 hERT1->SetMarkerStyle(20);
2198 hERT1->SetMarkerSize(0.4);
2199 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2200 hERT1->SetMarkerColor(specColors[
i]);
2201 hERT1->SetLineColor(0);
2205 if (hERT1 != hERT1orig)
2208 hs->Draw(
"LPE1 nostack");
2210 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2211 hs->Draw(
"LPE1 nostack");
2217 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2219 if (
int(hV.size()) == specCountA) {
2220 flagErrAB_HE[0] = 0;
2221 double sumdelta = 0.;
2223 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2225 double maxdelta = 0.;
2226 for (
unsigned int i = 0;
i < hV.size();
i++) {
2227 const TH1F *
hi = hV[
i];
2228 for (
unsigned int j = 1;
j < hV.size();
j++) {
2229 const TH1F *hj = hV[
j];
2230 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2231 if (
delta > maxdelta)
2235 if (maxdelta > 0.) {
2236 diff->Fill(maxdelta);
2237 sumdelta += maxdelta;
2242 avedelta_HE = sumdelta / nnndelta;
2243 std::cout <<
"******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2244 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2245 flagErrAB_HE[0] = 1;
2248 diff->SetMarkerStyle(20);
2249 diff->SetMarkerSize(0.8);
2250 diff->SetXTitle(
"max difference \b");
2251 diff->SetMarkerColor(2);
2252 diff->SetLineColor(0);
2255 diff->Draw(
"Error");
2258 cHB->Print(
"HistErrA_HE.png");
2265 for (
unsigned int i = 0;
i < hV.size();
i++)
2272 const int specCountB = 6;
2273 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS3",
"h_2D0sumErrorBLS3"},
2274 {
"h_sumErrorBperLS3",
"h_sum0ErrorBperLS3"},
2275 {
"h_2DsumErrorBLS4",
"h_2D0sumErrorBLS4"},
2276 {
"h_sumErrorBperLS4",
"h_sum0ErrorBperLS4"},
2277 {
"h_2DsumErrorBLS5",
"h_2D0sumErrorBLS5"},
2278 {
"h_sumErrorBperLS5",
"h_sum0ErrorBperLS5"}};
2285 TH1F *hRate2orig =
NULL;
2286 TH2F *h2Cefz6 =
NULL;
2287 TString hname1 = hnames[2 *
depth - 2][0];
2288 TString hname0 = hnames[2 *
depth - 2][1];
2289 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
2290 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
2292 std::cout <<
"debugger: errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2293 if (!twod1 || !twod0) {
2294 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2295 ptext->AddText(
"Missing histos");
2297 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2298 ptext->AddText(hname1);
2301 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2302 ptext->AddText(hname0);
2306 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2307 h2Cefz6->SetTitle(Form(
"HE Depth %d \b",
depth));
2308 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2313 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2314 h2Cefz6->SetMarkerStyle(20);
2315 h2Cefz6->SetMarkerSize(0.4);
2317 h2Cefz6->SetXTitle(
"#eta \b");
2318 h2Cefz6->SetYTitle(
"#phi \b");
2319 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HE Depth%d \b",
depth));
2320 h2Cefz6->SetMarkerColor(2);
2321 h2Cefz6->SetLineColor(2);
2322 h2Cefz6->Draw(
"COLZ");
2329 hname1 = hnames[2 *
depth - 1][0];
2330 hname0 = hnames[2 *
depth - 1][1];
2331 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hname1);
2332 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hname0);
2334 std::cout <<
"errB_HE depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2336 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2337 ptext->AddText(
"Missing histo");
2339 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2340 ptext->AddText(hname1);
2343 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2344 ptext->AddText(hname0);
2351 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2352 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2354 TH1F *hRate2 =
NULL;
2355 if (lastLumiBin_HE > 1) {
2356 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HE)) {
2357 std::cout <<
"code failed" << std::endl;
2361 hRate2 = hRate2orig;
2363 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2364 hRate2->SetMarkerStyle(20);
2365 hRate2->SetMarkerSize(0.8);
2367 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b",
depth));
2368 hRate2->SetMarkerColor(2);
2369 hRate2->SetLineColor(0);
2370 hRate2->Draw(
"Error");
2372 if (LSofFirstErrB_HE == -1) {
2373 int nx = hRate2->GetXaxis()->GetNbins();
2374 for (
int i = 1;
i <= nx;
i++) {
2375 double ccc1 = hRate2->GetBinContent(
i);
2377 cout <<
"****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2379 LSofFirstErrB_HE =
i;
2387 if (hRate2 != hRate2orig) {
2389 hRate2orig = hRate2;
2394 cHB->Print(Form(
"HistErrB_HE_%d.png",
depth));
2409 int flagErrAB_HO[2];
2410 flagErrAB_HO[0] = -1;
2411 flagErrAB_HO[1] = -1;
2412 double avedelta_HO = 0.;
2413 int lastLumiBin_HO = -1;
2414 int LSofFirstErrB_HO = -1;
2416 const int specCountA = 4;
2417 const int specColors[specCountA] = {1, 2, 3, 4};
2418 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS8_P1",
"h_sum0ADCAmplperLS8_P1"},
2419 {
"h_sumADCAmplperLS8_P2",
"h_sum0ADCAmplperLS8_P2"},
2420 {
"h_sumADCAmplperLS8_M1",
"h_sum0ADCAmplperLS8_M1"},
2421 {
"h_sumADCAmplperLS8_M2",
"h_sum0ADCAmplperLS8_M2"}};
2423 std::vector<TH1F *> hV;
2424 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS1");
2431 for (
int i = 0;
i < specCountA;
i++) {
2433 std::cout <<
"debugger: errA_HO : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2435 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hnames[
i][0]);
2436 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hnames[
i][1]);
2438 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2439 ptext->AddText(
"Missing histo");
2441 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2442 ptext->AddText(hnames[
i][0]);
2445 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2446 ptext->AddText(hnames[
i][1]);
2451 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2452 hoRT1orig->Divide(h1, h0, 1, 1,
"B");
2454 if ((lastLumiBin_HO < 0) && (
i == 0)) {
2455 for (
int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2456 if (hoRT1orig->GetBinContent(ibin) == 0)
2457 lastLumiBin_HO = ibin;
2461 lastLumiBin_HO += 3;
2462 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2463 lastLumiBin_HO = -1;
2466 if (lastLumiBin_HO > 1) {
2467 if (!
copyContents(&hoRT1, Form(
"ERT1_%d",
i),
"", hoRT1orig, lastLumiBin_HO)) {
2468 std::cout <<
"code failed" << std::endl;
2474 hoRT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2475 hV.push_back(hoRT1);
2476 hoRT1->SetMarkerStyle(20);
2477 hoRT1->SetMarkerSize(0.4);
2478 hoRT1->SetXTitle(
"<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2479 hoRT1->SetMarkerColor(specColors[
i]);
2480 hoRT1->SetLineColor(0);
2484 if (hoRT1 != hoRT1orig)
2487 hs->Draw(
"LPE1 nostack");
2489 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2490 hs->Draw(
"LPE1 nostack");
2496 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2498 if (
int(hV.size()) == specCountA) {
2499 flagErrAB_HO[0] = 0;
2500 double sumdelta = 0.;
2502 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2504 double maxdelta = 0.;
2505 for (
unsigned int i = 0;
i < hV.size();
i++) {
2506 const TH1F *
hi = hV[
i];
2507 for (
unsigned int j = 1;
j < hV.size();
j++) {
2508 const TH1F *hj = hV[
j];
2509 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2510 if (
delta > maxdelta)
2514 if (maxdelta > 0.) {
2515 diff->Fill(maxdelta);
2516 sumdelta += maxdelta;
2521 avedelta_HO = sumdelta / nnndelta;
2522 std::cout <<
"******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2523 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2524 flagErrAB_HO[0] = 1;
2527 diff->SetMarkerStyle(20);
2528 diff->SetMarkerSize(0.8);
2529 diff->SetXTitle(
"max difference \b");
2530 diff->SetMarkerColor(2);
2531 diff->SetLineColor(0);
2534 diff->Draw(
"Error");
2537 cHB->Print(
"HistErrA_HO.png");
2544 for (
unsigned int i = 0;
i < hV.size();
i++)
2551 const int specCountB = 2;
2552 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS8",
"h_2D0sumErrorBLS8"},
2553 {
"h_sumErrorBperLS8",
"h_sum0ErrorBperLS8"}};
2560 TH1F *hRate2orig =
NULL;
2561 TH2F *h2Cefz6 =
NULL;
2562 TString hname1 = hnames[2 *
depth - 8][0];
2563 TString hname0 = hnames[2 *
depth - 8][1];
2564 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
2565 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
2567 std::cout <<
"debugger: errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2568 if (!twod1 || !twod0) {
2569 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2570 ptext->AddText(
"Missing histos");
2572 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2573 ptext->AddText(hname1);
2576 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2577 ptext->AddText(hname0);
2581 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2582 h2Cefz6->SetTitle(Form(
"HO Depth %d \b",
depth));
2583 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2588 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2589 h2Cefz6->SetMarkerStyle(20);
2590 h2Cefz6->SetMarkerSize(0.4);
2592 h2Cefz6->SetXTitle(
"#eta \b");
2593 h2Cefz6->SetYTitle(
"#phi \b");
2594 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HO Depth%d \b",
depth));
2595 h2Cefz6->SetMarkerColor(2);
2596 h2Cefz6->SetLineColor(2);
2597 h2Cefz6->Draw(
"COLZ");
2604 hname1 = hnames[2 *
depth - 7][0];
2605 hname0 = hnames[2 *
depth - 7][1];
2606 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hname1);
2607 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hname0);
2609 std::cout <<
"errB_HO depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2611 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2612 ptext->AddText(
"Missing histo");
2614 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2615 ptext->AddText(hname1);
2618 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2619 ptext->AddText(hname0);
2626 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2627 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2629 TH1F *hRate2 =
NULL;
2630 if (lastLumiBin_HO > 1) {
2631 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HO)) {
2632 std::cout <<
"code failed" << std::endl;
2636 hRate2 = hRate2orig;
2638 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2639 hRate2->SetMarkerStyle(20);
2640 hRate2->SetMarkerSize(0.8);
2642 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b",
depth));
2643 hRate2->SetMarkerColor(2);
2644 hRate2->SetLineColor(0);
2645 hRate2->Draw(
"Error");
2647 if (LSofFirstErrB_HO == -1) {
2648 int nx = hRate2->GetXaxis()->GetNbins();
2649 for (
int i = 1;
i <= nx;
i++) {
2650 double ccc1 = hRate2->GetBinContent(
i);
2652 cout <<
"****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2654 LSofFirstErrB_HO =
i;
2662 if (hRate2 != hRate2orig) {
2664 hRate2orig = hRate2;
2669 cHB->Print(Form(
"HistErrB_HO_%d.png",
depth));
2683 int flagErrAB_HF[2];
2684 flagErrAB_HF[0] = -1;
2685 flagErrAB_HF[1] = -1;
2686 double avedelta_HF = 0.;
2687 int lastLumiBin_HF = -1;
2688 int LSofFirstErrB_HF = -1;
2690 const int specCountA = 4;
2691 const int specColors[specCountA] = {1, 2, 3, 4};
2692 const TString hnames[specCountA][2] = {{
"h_sumADCAmplperLS6_P1",
"h_sum0ADCAmplperLS6_P1"},
2693 {
"h_sumADCAmplperLS6_P2",
"h_sum0ADCAmplperLS6_P2"},
2694 {
"h_sumADCAmplperLS6_M1",
"h_sum0ADCAmplperLS6_M1"},
2695 {
"h_sumADCAmplperLS6_M2",
"h_sum0ADCAmplperLS6_M2"}};
2697 std::vector<TH1F *> hV;
2698 THStack *hs =
new THStack(
"hs",
"ADCAmplerLS6");
2705 for (
int i = 0;
i < specCountA;
i++) {
2707 std::cout <<
"debugger: errA_HF : get histos for i=" <<
i <<
" " << hnames[
i][0] <<
" and " << hnames[
i][1]
2709 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hnames[
i][0]);
2710 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hnames[
i][1]);
2712 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2713 ptext->AddText(
"Missing histo");
2715 std::cout <<
"\tfailed to get " << hnames[
i][0] <<
"\n";
2716 ptext->AddText(hnames[
i][0]);
2719 std::cout <<
"\tfailed to get " << hnames[
i][1] <<
"\n";
2720 ptext->AddText(hnames[
i][1]);
2725 TH1F *hERT1orig = (TH1F *)h1->Clone(Form(
"ERT1orig_%d",
i));
2726 hERT1orig->Divide(h1, h0, 1, 1,
"B");
2728 if ((lastLumiBin_HF < 0) && (
i == 0)) {
2729 for (
int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2730 if (hERT1orig->GetBinContent(ibin) == 0)
2731 lastLumiBin_HF = ibin;
2735 lastLumiBin_HF += 3;
2736 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2737 lastLumiBin_HF = -1;
2740 if (lastLumiBin_HF > 1) {
2741 if (!
copyContents(&hERT1, Form(
"ERT1_%d",
i),
"", hERT1orig, lastLumiBin_HF)) {
2742 std::cout <<
"code failed" << std::endl;
2748 hERT1->GetXaxis()->SetTitle(
"<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2749 hV.push_back(hERT1);
2750 hERT1->SetMarkerStyle(20);
2751 hERT1->SetMarkerSize(0.4);
2752 hERT1->SetXTitle(
"<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2753 hERT1->SetMarkerColor(specColors[
i]);
2754 hERT1->SetLineColor(0);
2758 if (hERT1 != hERT1orig)
2761 hs->Draw(
"LPE1 nostack");
2763 hs->GetXaxis()->SetTitle(
"<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2764 hs->Draw(
"LPE1 nostack");
2770 TH1F *
diff =
new TH1F(
"diff",
"", 100, 0., 4.);
2772 if (
int(hV.size()) == specCountA) {
2773 flagErrAB_HF[0] = 0;
2774 double sumdelta = 0.;
2776 std::cout <<
"******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2777 for (
int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2779 double maxdelta = 0.;
2780 for (
unsigned int i = 0;
i < hV.size();
i++) {
2781 const TH1F *
hi = hV[
i];
2782 for (
unsigned int j = 1;
j < hV.size();
j++) {
2783 const TH1F *hj = hV[
j];
2784 delta = fabs(
hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2785 if (
delta > maxdelta)
2790 if (maxdelta > 0.) {
2791 diff->Fill(maxdelta);
2792 sumdelta += maxdelta;
2797 avedelta_HF = sumdelta / nnndelta;
2799 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2800 flagErrAB_HF[0] = 1;
2803 diff->SetMarkerStyle(20);
2804 diff->SetMarkerSize(0.8);
2805 diff->SetXTitle(
"max difference \b");
2806 diff->SetMarkerColor(2);
2807 diff->SetLineColor(0);
2810 diff->Draw(
"Error");
2813 cHB->Print(
"HistErrA_HF.png");
2819 for (
unsigned int i = 0;
i < hV.size();
i++)
2825 const int specCountB = 4;
2826 const TString hnames[specCountB][2] = {{
"h_2DsumErrorBLS6",
"h_2D0sumErrorBLS6"},
2827 {
"h_sumErrorBperLS6",
"h_sum0ErrorBperLS6"},
2828 {
"h_2DsumErrorBLS7",
"h_2D0sumErrorBLS7"},
2829 {
"h_sumErrorBperLS7",
"h_sum0ErrorBperLS7"}};
2835 TH1F *hRate2orig =
NULL;
2836 TH2F *h2Cefz6 =
NULL;
2837 TString hname1 = hnames[2 *
depth - 2][0];
2838 TString hname0 = hnames[2 *
depth - 2][1];
2839 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
2840 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
2842 std::cout <<
"debugger: errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2843 if (!twod1 || !twod0) {
2844 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2845 ptext->AddText(
"Missing histos");
2847 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2848 ptext->AddText(hname1);
2851 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2852 ptext->AddText(hname0);
2856 h2Cefz6 = (TH2F *)twod1->Clone(Form(
"Cefz6_%d",
depth));
2857 h2Cefz6->SetTitle(Form(
"HF Depth %d \b",
depth));
2858 h2Cefz6->Divide(twod1, twod0, 1, 1,
"B");
2863 h2Cefz6->SetTitle(Form(
"Depth %d \b",
depth));
2864 h2Cefz6->SetMarkerStyle(20);
2865 h2Cefz6->SetMarkerSize(0.4);
2867 h2Cefz6->SetXTitle(
"#eta \b");
2868 h2Cefz6->SetYTitle(
"#phi \b");
2869 h2Cefz6->SetZTitle(Form(
"<ErrorB> - HF Depth%d \b",
depth));
2870 h2Cefz6->SetMarkerColor(2);
2871 h2Cefz6->SetLineColor(2);
2872 h2Cefz6->Draw(
"COLZ");
2877 hname1 = hnames[2 *
depth - 1][0];
2878 hname0 = hnames[2 *
depth - 1][1];
2879 TH1F *h1 = (TH1F *)
dir->FindObjectAny(hname1);
2880 TH1F *h0 = (TH1F *)
dir->FindObjectAny(hname0);
2882 std::cout <<
"errB_HF depth=" <<
depth <<
". get 2D histos " << hname1 <<
" and " << hname0 <<
"\n";
2884 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2885 ptext->AddText(
"Missing histo");
2887 std::cout <<
"\tfailed to get " << hname1 <<
"\n";
2888 ptext->AddText(hname1);
2891 std::cout <<
"\tfailed to get " << hname0 <<
"\n";
2892 ptext->AddText(hname0);
2899 hRate2orig = (TH1F *)h1->Clone(Form(
"Rate2orig_%d",
depth));
2900 hRate2orig->Divide(h1, h0, 1, 1,
"B");
2902 TH1F *hRate2 =
NULL;
2903 if (lastLumiBin_HF > 1) {
2904 if (!
copyContents(&hRate2, Form(
"Rate2_%d",
depth),
"", hRate2orig, lastLumiBin_HF)) {
2905 std::cout <<
"code failed" << std::endl;
2909 hRate2 = hRate2orig;
2910 hRate2->SetTitle(Form(
"Depth %d \b",
depth));
2911 hRate2->SetMarkerStyle(20);
2912 hRate2->SetMarkerSize(0.8);
2914 hRate2->SetXTitle(Form(
"<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b",
depth));
2915 hRate2->SetMarkerColor(2);
2916 hRate2->SetLineColor(0);
2917 hRate2->Draw(
"Error");
2918 if (LSofFirstErrB_HF == -1) {
2919 int nx = hRate2->GetXaxis()->GetNbins();
2920 for (
int i = 1;
i <= nx;
i++) {
2921 double ccc1 = hRate2->GetBinContent(
i);
2923 cout <<
"****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " <<
i <<
" with rate = " << ccc1
2925 LSofFirstErrB_HF =
i;
2932 if (hRate2 != hRate2orig) {
2934 hRate2orig = hRate2;
2938 cHB->Print(Form(
"HistErrB_HF_%d.png",
depth));
2954 TH2F *h2Ceff =
NULL;
2955 TH2F *h2Diffe =
NULL;
2957 TH2F *h3Ceff =
NULL;
2964 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HB",
depth);
2965 TString hname0 = Form(
"h_mapDepth%d_HB",
depth);
2966 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
2967 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
2968 if (!twod1 || !twod0) {
2969 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
2970 ptext->AddText(
"Missing histo");
2971 std::cout <<
"specHB test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
2973 ptext->AddText(hname1);
2975 ptext->AddText(hname0);
2980 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HB%d",
depth));
2981 h2Ceff->SetTitle(Form(
"HB Depth %d. (No cut) \b",
depth));
2982 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
2987 h2Ceff->SetMarkerStyle(20);
2988 h2Ceff->SetMarkerSize(0.4);
2990 h2Ceff->SetXTitle(
"#eta \b");
2991 h2Ceff->SetYTitle(
"#phi \b");
2992 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HB \b");
2993 h2Ceff->SetMarkerColor(2);
2994 h2Ceff->SetLineColor(2);
2995 h2Ceff->Draw(
"COLZ");
3002 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HB",
depth));
3003 h2Diffe->SetTitle(Form(
"HB Depth %d. Cut avg(ADCAmpl) > 25 \b",
depth));
3004 int nx = h2Ceff->GetXaxis()->GetNbins();
3005 int ny = h2Ceff->GetYaxis()->GetNbins();
3006 for (
int i = 1;
i <= nx;
i++) {
3007 for (
int j = 1;
j <= ny;
j++) {
3008 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3009 h2Diffe->SetBinContent(
i,
j, 0.);
3011 h2Diffe->SetBinContent(
i,
j, ccc1);
3017 h2Diffe->SetMarkerStyle(20);
3018 h2Diffe->SetMarkerSize(0.4);
3020 h2Diffe->SetXTitle(
"#eta \b");
3021 h2Diffe->SetYTitle(
"#phi \b");
3022 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 25.- HB Depth1 \b");
3023 h2Diffe->SetMarkerColor(2);
3024 h2Diffe->SetLineColor(2);
3025 h2Diffe->Draw(
"COLZ");
3029 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HB",
depth);
3030 TH2F *twod3 = (TH2F *)
dir->FindObjectAny(hname3);
3031 if (!twod3 || !twod0) {
3032 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3033 ptext->AddText(
"Missing histo");
3034 std::cout <<
"specHB test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3036 ptext->AddText(hname3);
3038 ptext->AddText(hname0);
3043 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HB%d",
depth));
3044 h3Ceff->SetTitle(Form(
"HB Depth %d. \b",
depth));
3045 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3049 h3Ceff->SetMarkerStyle(20);
3050 h3Ceff->SetMarkerSize(0.4);
3052 h3Ceff->SetXTitle(
"#eta \b");
3053 h3Ceff->SetYTitle(
"#phi \b");
3054 h3Ceff->SetZTitle(
"rate for channels of HB \b");
3055 h3Ceff->SetMarkerColor(2);
3056 h3Ceff->SetLineColor(2);
3057 h3Ceff->Draw(
"COLZ");
3061 cHE->Print(Form(
"ChkErrA_HB%d.png",
depth));
3083 TH2F *h2Ceff =
NULL;
3084 TH2F *h2Diffe =
NULL;
3086 TH2F *h3Ceff =
NULL;
3093 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HE",
depth);
3094 TString hname0 = Form(
"h_mapDepth%d_HE",
depth);
3095 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
3096 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
3097 if (!twod1 || !twod0) {
3098 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3099 ptext->AddText(
"Missing histo");
3100 std::cout <<
"specHE test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3102 ptext->AddText(hname1);
3104 ptext->AddText(hname0);
3109 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HE%d",
depth));
3110 h2Ceff->SetTitle(Form(
"HE Depth %d. (No cut) \b",
depth));
3111 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3116 h2Ceff->SetTitleOffset(0.75,
"Z");
3117 h2Ceff->SetMarkerStyle(20);
3118 h2Ceff->SetMarkerSize(0.4);
3120 h2Ceff->SetXTitle(
"#eta \b");
3121 h2Ceff->SetYTitle(
"#phi \b");
3122 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HE \b");
3123 h2Ceff->SetMarkerColor(2);
3124 h2Ceff->SetLineColor(2);
3125 h2Ceff->Draw(
"COLZ");
3132 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HE",
depth));
3133 h2Diffe->SetTitle(Form(
"HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b",
depth));
3134 int nx = h2Ceff->GetXaxis()->GetNbins();
3135 int ny = h2Ceff->GetYaxis()->GetNbins();
3136 for (
int i = 1;
i <= nx;
i++) {
3137 for (
int j = 1;
j <= ny;
j++) {
3138 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3139 h2Diffe->SetBinContent(
i,
j, 0.);
3141 h2Diffe->SetBinContent(
i,
j, ccc1);
3147 h2Diffe->SetMarkerStyle(20);
3148 h2Diffe->SetMarkerSize(0.4);
3150 h2Diffe->SetXTitle(
"#eta \b");
3151 h2Diffe->SetYTitle(
"#phi \b");
3152 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3153 h2Diffe->SetMarkerColor(2);
3154 h2Diffe->SetLineColor(2);
3155 h2Diffe->Draw(
"COLZ");
3159 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HE",
depth);
3160 TH2F *twod3 = (TH2F *)
dir->FindObjectAny(hname3);
3161 if (!twod3 || !twod0) {
3162 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3163 ptext->AddText(
"Missing histo");
3164 std::cout <<
"specHE test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3166 ptext->AddText(hname3);
3168 ptext->AddText(hname0);
3173 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HE%d",
depth));
3174 h3Ceff->SetTitle(Form(
"HE Depth %d. \b",
depth));
3175 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3179 h3Ceff->SetMarkerStyle(20);
3180 h3Ceff->SetMarkerSize(0.4);
3182 h3Ceff->SetXTitle(
"#eta \b");
3183 h3Ceff->SetYTitle(
"#phi \b");
3184 h3Ceff->SetZTitle(
"rate for channels of HE \b");
3185 h3Ceff->SetMarkerColor(2);
3186 h3Ceff->SetLineColor(2);
3187 h3Ceff->Draw(
"COLZ");
3191 cHE->Print(Form(
"ChkErrA_HE%d.png",
depth));
3213 TH2F *h2Ceff =
NULL;
3214 TH2F *h2Diffe =
NULL;
3216 TH2F *h3Ceff =
NULL;
3223 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HO",
depth);
3224 TString hname0 = Form(
"h_mapDepth%d_HO",
depth);
3225 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
3226 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
3227 if (!twod1 || !twod0) {
3228 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3229 ptext->AddText(
"Missing histo");
3230 std::cout <<
"specHO test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3232 ptext->AddText(hname1);
3234 ptext->AddText(hname0);
3239 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HO%d",
depth));
3240 h2Ceff->SetTitle(Form(
"HO Depth %d. (No cut) \b",
depth));
3241 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3246 h2Ceff->SetMarkerStyle(20);
3247 h2Ceff->SetMarkerSize(0.4);
3249 h2Ceff->SetXTitle(
"#eta \b");
3250 h2Ceff->SetYTitle(
"#phi \b");
3251 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HO \b");
3252 h2Ceff->SetMarkerColor(2);
3253 h2Ceff->SetLineColor(2);
3254 h2Ceff->Draw(
"COLZ");
3261 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HO",
depth));
3262 h2Diffe->SetTitle(Form(
"HO Depth %d. Cut avg(ADCAmpl) > 80 \b",
depth));
3263 int nx = h2Ceff->GetXaxis()->GetNbins();
3264 int ny = h2Ceff->GetYaxis()->GetNbins();
3265 for (
int i = 1;
i <= nx;
i++) {
3266 for (
int j = 1;
j <= ny;
j++) {
3267 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3268 h2Diffe->SetBinContent(
i,
j, 0.);
3270 h2Diffe->SetBinContent(
i,
j, ccc1);
3276 h2Diffe->SetMarkerStyle(20);
3277 h2Diffe->SetMarkerSize(0.4);
3279 h2Diffe->SetXTitle(
"#eta \b");
3280 h2Diffe->SetYTitle(
"#phi \b");
3281 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 80.- HO Depth1 \b");
3282 h2Diffe->SetMarkerColor(2);
3283 h2Diffe->SetLineColor(2);
3284 h2Diffe->Draw(
"COLZ");
3288 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HO",
depth);
3289 TH2F *twod3 = (TH2F *)
dir->FindObjectAny(hname3);
3290 if (!twod3 || !twod0) {
3291 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3292 ptext->AddText(
"Missing histo");
3293 std::cout <<
"specHO test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3295 ptext->AddText(hname3);
3297 ptext->AddText(hname0);
3302 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HO%d",
depth));
3303 h3Ceff->SetTitle(Form(
"HO Depth %d. \b",
depth));
3304 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3308 h3Ceff->SetMarkerStyle(20);
3309 h3Ceff->SetMarkerSize(0.4);
3311 h3Ceff->SetXTitle(
"#eta \b");
3312 h3Ceff->SetYTitle(
"#phi \b");
3313 h3Ceff->SetZTitle(
"rate for channels of HO \b");
3314 h3Ceff->SetMarkerColor(2);
3315 h3Ceff->SetLineColor(2);
3316 h3Ceff->Draw(
"COLZ");
3320 cHE->Print(Form(
"ChkErrA_HO%d.png",
depth));
3342 TH2F *h2Ceff =
NULL;
3343 TH2F *h2Diffe =
NULL;
3345 TH2F *h3Ceff =
NULL;
3352 TString hname1 = Form(
"h_mapDepth%dADCAmpl_HF",
depth);
3353 TString hname0 = Form(
"h_mapDepth%d_HF",
depth);
3354 TH2F *twod1 = (TH2F *)
dir->FindObjectAny(hname1);
3355 TH2F *twod0 = (TH2F *)
dir->FindObjectAny(hname0);
3356 if (!twod1 || !twod0) {
3357 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3358 ptext->AddText(
"Missing histo");
3359 std::cout <<
"specHF test: failed to load " << hname1 <<
" and/or " << hname0 <<
"\n";
3361 ptext->AddText(hname1);
3363 ptext->AddText(hname0);
3368 h2Ceff = (TH2F *)twod1->Clone(Form(
"Ceff_HF%d",
depth));
3369 h2Ceff->SetTitle(Form(
"HF Depth %d. (No cut) \b",
depth));
3370 h2Ceff->Divide(twod1, twod0, 1, 1,
"B");
3375 h2Ceff->SetMarkerStyle(20);
3376 h2Ceff->SetMarkerSize(0.4);
3378 h2Ceff->SetXTitle(
"#eta \b");
3379 h2Ceff->SetYTitle(
"#phi \b");
3380 h2Ceff->SetZTitle(
"h_mapDepth1ADCAmpl_HF \b");
3381 h2Ceff->SetMarkerColor(2);
3382 h2Ceff->SetLineColor(2);
3383 h2Ceff->Draw(
"COLZ");
3390 h2Diffe = (TH2F *)h2Ceff->Clone(Form(
"Diffe_Depth%d_HF",
depth));
3391 h2Diffe->SetTitle(Form(
"HF Depth %d. Cut avg(ADCAmpl) > 20 \b",
depth));
3392 int nx = h2Ceff->GetXaxis()->GetNbins();
3393 int ny = h2Ceff->GetYaxis()->GetNbins();
3394 for (
int i = 1;
i <= nx;
i++) {
3395 for (
int j = 1;
j <= ny;
j++) {
3396 double ccc1 = h2Ceff->GetBinContent(
i,
j);
3397 h2Diffe->SetBinContent(
i,
j, 0.);
3399 h2Diffe->SetBinContent(
i,
j, ccc1);
3405 h2Diffe->SetMarkerStyle(20);
3406 h2Diffe->SetMarkerSize(0.4);
3408 h2Diffe->SetXTitle(
"#eta \b");
3409 h2Diffe->SetYTitle(
"#phi \b");
3410 h2Diffe->SetZTitle(
"<ADCAmpl> bigger 20.- HF Depth1 \b");
3411 h2Diffe->SetMarkerColor(2);
3412 h2Diffe->SetLineColor(2);
3413 h2Diffe->Draw(
"COLZ");
3442 TString hname3 = Form(
"h_mapDepth%dADCAmpl225Copy_HF",
depth);
3443 TH2F *twod3 = (TH2F *)
dir->FindObjectAny(hname3);
3444 if (!twod3 || !twod0) {
3445 TPaveText *ptext =
new TPaveText(0.05, 0.85, 0.95, 0.95);
3446 ptext->AddText(
"Missing histo");
3447 std::cout <<
"specHF test: failed to load " << hname3 <<
" and/or " << hname0 <<
"\n";
3449 ptext->AddText(hname3);
3451 ptext->AddText(hname0);
3456 h3Ceff = (TH2F *)twod3->Clone(Form(
"CeffA_HF%d",
depth));
3457 h3Ceff->SetTitle(Form(
"HF Depth %d. \b",
depth));
3458 h3Ceff->Divide(twod3, twod0, 1, 1,
"B");
3462 h3Ceff->SetMarkerStyle(20);
3463 h3Ceff->SetMarkerSize(0.4);
3465 h3Ceff->SetXTitle(
"#eta \b");
3466 h3Ceff->SetYTitle(
"#phi \b");
3467 h3Ceff->SetZTitle(
"rate for channels of HF \b");
3468 h3Ceff->SetMarkerColor(2);
3469 h3Ceff->SetLineColor(2);
3470 h3Ceff->Draw(
"COLZ");
3474 cHE->Print(Form(
"ChkErrA_HF%d.png",
depth));
3491 std::cout <<
"************>>> average Amplitudes done" << std::endl;
3493 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3494 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3495 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3496 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3497 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3503 int MaxLum000000 = 0;
3504 MaxLum000000 = MaxLum;
3506 cout <<
" RBX analysis START for **************************" << endl;
3507 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3512 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax0=1850; MaxLum = " << MaxLum << endl;
3513 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3515 if (MaxLum > lsmax0) {
3517 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3518 cout <<
"*********************************** EXCEEDED limit for MaxLum, it's bigger lsmax0. So we do limit " 3521 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3526 double alexall[njeta][njphi][
lsmax];
3529 double alexhb[njphi][
lsmax];
3530 double alexhe[njphi][
lsmax];
3531 double alexho[njphi][
lsmax];
3532 double alexhf[njphi][
lsmax];
3535 double blexhb[njeta][
lsmax];
3536 double blexhe[njeta][
lsmax];
3537 double blexho[njeta][
lsmax];
3538 double blexhf[njeta][
lsmax];
3540 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> For massive:alexall AND for eta and phi tables:::: " << endl;
3541 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alex... [njeta][njphi][lsmax]; lsmax = MaxLum; " << endl;
3542 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> alex... BUT, Max of lsmax = 1800 " << endl;
3543 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3544 int maxbinsRBX = MaxLum;
3545 int nx = maxbinsRBX;
3546 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3547 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3549 for (
int i = 0;
i < nx;
i++) {
3550 for (
int jphi = 0; jphi < njphi; jphi++) {
3551 alexhb[jphi][
i] = 0.;
3552 alexhe[jphi][
i] = 0.;
3553 alexho[jphi][
i] = 0.;
3554 alexhf[jphi][
i] = 0.;
3558 blexhb[
jeta][
i] = 0.;
3559 blexhe[
jeta][
i] = 0.;
3560 blexho[
jeta][
i] = 0.;
3561 blexhf[
jeta][
i] = 0.;
3564 alexall[
jeta][jphi][
i] = 0.;
3589 cout <<
" RBX general for HB **************************" << endl;
3590 TH2F *Ghb1KKK = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs0");
3591 TH2F *Ghb1LLL = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs00");
3592 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone(
"Ghb1");
3593 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1,
"B");
3596 int ny = Ghb1->GetYaxis()->GetNbins();
3598 for (
int j = 1;
j <= ny;
j++) {
3599 int jeta = (
j - 1) / njphi;
3601 int jphi = (
j - 1) - njphi *
jeta;
3604 for (
int i = 1;
i <= nx;
i++) {
3605 double ccc1 = Ghb1->GetBinContent(
i,
j);
3606 alexall[
jeta][jphi][
i - 1] = ccc1;
3621 for (
int jphi = 0; jphi < njphi; jphi++) {
3622 for (
int i = 0;
i < nx;
i++) {
3623 double sumccc1 = 0.;
3626 double ccc1 = alexall[
jeta][jphi][
i];
3634 alexhb[jphi][
i] = sumccc1;
3639 for (
int keta = 0; keta < njeta; keta++) {
3640 for (
int i = 0;
i < nx;
i++) {
3641 double sumccc1 = 0.;
3643 for (
int kphi = 0; kphi < njphi; kphi++) {
3644 double ccc1 = alexall[keta][kphi][
i];
3652 blexhb[keta][
i] = sumccc1;
3662 cout <<
" RBX HB 2D plot *****" << endl;
3665 cRBX1->Divide(1, 1);
3670 TH2F *Ghb42D =
new TH2F(
"Ghb42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
3671 TH2F *Ghb42D0 =
new TH2F(
"Ghb42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
3672 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone(
"Ghb42DF");
3673 for (
int jphi = 0; jphi < njphi; jphi++) {
3675 for (
int i = 0;
i < nx;
i++) {
3676 double ccc1 = alexall[
jeta][jphi][
i];
3677 int neweta =
jeta - 11 - 0.5;
3679 neweta =
jeta - 11 + 1.5;
3681 Ghb42D->Fill(neweta, jphi, ccc1);
3682 Ghb42D0->Fill(neweta, jphi, 1.);
3688 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1,
"B");
3692 Ghb42DF->SetMarkerStyle(20);
3693 Ghb42DF->SetMarkerSize(0.4);
3694 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3695 Ghb42DF->SetXTitle(
"<A>_RBX #eta \b");
3696 Ghb42DF->SetYTitle(
" #phi \b");
3697 Ghb42DF->SetZTitle(
"<A>_RBX - All \b");
3698 Ghb42DF->SetMarkerColor(2);
3699 Ghb42DF->SetLineColor(2);
3700 Ghb42DF->Draw(
"COLZ");
3704 cRBX1->Print(
"RBX-HB-2Dplot.png");
3719 cout <<
" RBX HB 1D plot *****" << endl;
3722 cRBX1->Divide(1, 1);
3724 TH1F *GphiHB1D =
new TH1F(
"GphiHB1D",
"", 18, 0., 18.);
3725 TH1F *GphiHB1D0 =
new TH1F(
"GphiHB1D0",
"", 18, 0., 18.);
3726 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone(
"GphiHB1DF");
3727 for (
int jphi = 0; jphi < 18; jphi++) {
3729 for (
int i = 0;
i < nx;
i++) {
3730 double ccc1 = alexall[
jeta][jphi][
i];
3732 GphiHB1D->Fill(jphi, ccc1);
3733 GphiHB1D0->Fill(jphi, 1.);
3739 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1,
"B");
3741 for (
int jphi = 1; jphi < 19; jphi++) {
3742 GphiHB1DF->SetBinError(jphi, 0.01);
3746 GphiHB1DF->SetMarkerStyle(20);
3747 GphiHB1DF->SetMarkerSize(1.4);
3748 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3749 GphiHB1DF->SetXTitle(
"PHI of RBX\b");
3750 GphiHB1DF->SetYTitle(
" <Amplitude> \b");
3751 GphiHB1DF->SetZTitle(
"<A>_PHI - All \b");
3752 GphiHB1DF->SetMarkerColor(4);
3753 GphiHB1DF->SetLineColor(4);
3754 GphiHB1DF->SetMinimum(0.8);
3755 GphiHB1DF->Draw(
"Error");
3758 cRBX1->Print(
"RBX-HB-1Dplot.png");
3773 cout <<
" RBX HB 11D plot *eta*" << endl;
3776 cRBX1->Divide(1, 1);
3778 TH1F *GetaHB11D =
new TH1F(
"GetaHB11D",
"", 23, -11.5, 11.5);
3779 TH1F *GetaHB11D0 =
new TH1F(
"GetaHB11D0",
"", 23, -11.5, 11.5);
3780 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone(
"GetaHB11DF");
3783 for (
int jphi = 0; jphi < 18; jphi++) {
3784 for (
int i = 0;
i < nx;
i++) {
3785 double ccc1 = alexall[
jeta][jphi][
i];
3786 int neweta =
jeta - 11 - 0.5;
3788 neweta =
jeta - 11 + 1.5;
3790 GetaHB11D->Fill(neweta, ccc1);
3791 GetaHB11D0->Fill(neweta, 1.);
3798 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1,
"B");
3801 GetaHB11DF->SetBinError(
jeta, 0.01);
3805 GetaHB11DF->SetMarkerStyle(20);
3806 GetaHB11DF->SetMarkerSize(1.4);
3807 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3808 GetaHB11DF->SetXTitle(
"#eta \b");
3809 GetaHB11DF->SetYTitle(
" <A> \b");
3810 GetaHB11DF->SetZTitle(
"<A>_ETA - All \b");
3811 GetaHB11DF->SetMarkerColor(4);
3812 GetaHB11DF->SetLineColor(4);
3813 GetaHB11DF->SetMinimum(0.8);
3814 GetaHB11DF->Draw(
"Error");
3818 cRBX1->Print(
"RBX-HB-11Dplot.png");
3834 gStyle->SetOptStat(1110000);
3835 cout <<
" RBX HB Ratio plots *****" << endl;
3844 cRBX31->Divide(3, 1);
3848 TH1F *Ghb51 =
new TH1F(
"Ghb51",
"", nx, 1., nx + 1.);
3849 TH1F *Ghb50 =
new TH1F(
"Ghb50",
"", nx, 1., nx + 1.);
3850 TH1F *Ghb5 = (TH1F *)Ghb50->Clone(
"Ghb5");
3852 for (
int j = 1;
j <= ny;
j++) {
3853 ccc0HB = Ghb1->GetBinContent(1,
j);
3856 for (
int i = 1;
i <= nx;
i++) {
3857 double ccc2 = Ghb1->GetBinContent(
i,
j);
3865 for (
int i = 1;
i <= nx;
i++) {
3866 double ccc1 = Ghb1->GetBinContent(
i,
j);
3868 double Rij = ccc1 / ccc0HB;
3870 Ghb51->Fill(
float(
i), Rij);
3871 Ghb50->Fill(
float(
i), 1.);
3876 Ghb5->Divide(Ghb51, Ghb50, 1, 1,
"B");
3877 for (
int i = 1;
i <= nx;
i++) {
3878 Ghb5->SetBinError(
i, 0.0001);
3880 Ghb5->SetMarkerStyle(20);
3881 Ghb5->SetMarkerSize(0.4);
3882 Ghb5->GetYaxis()->SetLabelSize(0.04);
3883 Ghb5->SetMarkerColor(2);
3884 Ghb5->SetLineColor(0);
3885 Ghb5->SetXTitle(
" iLS \b");
3886 Ghb5->SetYTitle(
" <R> \b");
3887 Ghb5->SetTitle(
"<Ri> vs iLS \b");
3888 Ghb5->SetMinimum(0.);
3893 Ghb5->GetYaxis()->SetLabelSize(0.025);
3894 Ghb5->Draw(
"Error");
3897 TH2F *Ghb60 =
new TH2F(
"Ghb60",
"", 22, -11., 11., 18, 0., 18.);
3898 TH2F *Ghb61 =
new TH2F(
"Ghb61",
"", 22, -11., 11., 18, 0., 18.);
3899 TH2F *Ghb6 =
new TH2F(
"Ghb6",
"", 22, -11., 11., 18, 0., 18.);
3901 TH2F *G20hb60 =
new TH2F(
"G20hb60",
"", 22, -11., 11., 18, 0., 18.);
3902 TH2F *G20hb61 =
new TH2F(
"G20hb61",
"", 22, -11., 11., 18, 0., 18.);
3903 TH2F *G20hb6 =
new TH2F(
"G20hb6",
"", 22, -11., 11., 18, 0., 18.);
3904 TH2F *G30hb60 =
new TH2F(
"G30hb60",
"", 22, -11., 11., 18, 0., 18.);
3905 TH2F *G30hb61 =
new TH2F(
"G30hb61",
"", 22, -11., 11., 18, 0., 18.);
3906 TH2F *G30hb6 =
new TH2F(
"G30hb6",
"", 22, -11., 11., 18, 0., 18.);
3907 TH2F *G40hb60 =
new TH2F(
"G40hb60",
"", 22, -11., 11., 18, 0., 18.);
3908 TH2F *G40hb61 =
new TH2F(
"G40hb61",
"", 22, -11., 11., 18, 0., 18.);
3909 TH2F *G40hb6 =
new TH2F(
"G40hb6",
"", 22, -11., 11., 18, 0., 18.);
3915 double meanjHB = 0.;
3916 for (
int j = 1;
j <= ny;
j++) {
3917 ccc0HB = Ghb1->GetBinContent(1,
j);
3919 for (
int i = 1;
i <= nx;
i++) {
3920 double ccc2 = Ghb1->GetBinContent(
i,
j);
3927 for (
int i = 1;
i <= nx;
i++) {
3928 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3934 meanjHB = sumjHB / njHB;
3938 double ssumjHB = 0.;
3940 double sigmajHB = 0.;
3941 for (
int j = 1;
j <= ny;
j++) {
3942 ccc0HB = Ghb1->GetBinContent(1,
j);
3944 for (
int i = 1;
i <= nx;
i++) {
3945 double ccc2 = Ghb1->GetBinContent(
i,
j);
3952 for (
int i = 1;
i <= nx;
i++) {
3953 double ccc1 = Ghb1->GetBinContent(
i,
j) / ccc0HB;
3955 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3959 sigmajHB =
sqrt(ssumjHB / njHB);
3963 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3964 if (dif3rmsHBMIN < 0.)
3966 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3967 cout <<
"22HB-2 meanjHB= " << meanjHB <<
" sigmajHB= " << sigmajHB <<
" dif3rmsHBMIN= " << dif3rmsHBMIN
3968 <<
" dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3970 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3971 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3972 if (MAXdif3rmsHBMIN < 0.95)
3973 MAXdif3rmsHBMIN = 0.95;
3974 if (MINdif3rmsHBMAX > 1.05)
3975 MINdif3rmsHBMAX = 1.05;
3976 cout <<
"22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3978 for (
int j = 1;
j <= ny;
j++) {
3979 ccc0HB = Ghb1->GetBinContent(1,
j);
3981 for (
int i = 1;
i <= nx;
i++) {
3982 double ccc2 = Ghb1->GetBinContent(
i,
j);
3989 int jeta = (
j - 1) / 18;
3990 int jphi = (
j - 1) - 18 *
jeta;
3992 for (
int i = 1;
i <= nx;
i++) {
3993 double ccc1 = Ghb1->GetBinContent(
i,
j);
3995 double Rij = ccc1 / ccc0HB;
3996 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3997 Ghb61->Fill(
jeta - 11, jphi, Rij);
3998 Ghb60->Fill(
jeta - 11, jphi, 1.);
4000 if (Rij < 0.8 || Rij > 1.2) {
4001 G20hb61->Fill(
jeta - 11, jphi, Rij);
4002 G20hb60->Fill(
jeta - 11, jphi, 1.);
4004 if (Rij < 0.7 || Rij > 1.3) {
4005 G30hb61->Fill(
jeta - 11, jphi, Rij);
4006 G30hb60->Fill(
jeta - 11, jphi, 1.);
4008 if (Rij < 0.6 || Rij > 1.4) {
4009 G40hb61->Fill(
jeta - 11, jphi, Rij);
4010 G40hb60->Fill(
jeta - 11, jphi, 1.);
4016 Ghb6->Divide(Ghb61, Ghb60, 1, 1,
"B");
4017 G20hb6->Divide(G20hb61, G20hb60, 1, 1,
"B");
4018 G30hb6->Divide(G30hb61, G30hb60, 1, 1,
"B");
4019 G40hb6->Divide(G40hb61, G40hb60, 1, 1,
"B");
4021 Ghb6->GetZaxis()->SetLabelSize(0.025);
4022 Ghb6->SetXTitle(
" #eta \b");
4023 Ghb6->SetYTitle(
" #phi \b");
4024 Ghb6->SetTitle(
"<Rj> for |1-<R>| > 0.05 \b");
4029 TH1F *Ghb7 =
new TH1F(
"Ghb7",
"", 120, 0.4, 1.6);
4031 for (
int j = 1;
j <= ny;
j++) {
4032 ccc0HB = Ghb1->GetBinContent(1,
j);
4034 for (
int i = 1;
i <= nx;
i++) {
4035 double ccc2 = Ghb1->GetBinContent(
i,
j);
4043 for (
int i = 1;
i <= nx;
i++) {
4044 double ccc1 = Ghb1->GetBinContent(
i,
j);
4046 double Rij = ccc1 / ccc0HB;
4052 Ghb7->SetMarkerStyle(20);
4053 Ghb7->SetMarkerSize(0.4);
4054 Ghb7->GetYaxis()->SetLabelSize(0.04);
4055 Ghb7->SetMarkerColor(2);
4056 Ghb7->SetLineColor(0);
4057 Ghb7->SetYTitle(
" N \b");
4058 Ghb7->SetXTitle(
" Rij \b");
4059 Ghb7->SetTitle(
" Rij \b");
4064 Ghb7->GetYaxis()->SetLabelSize(0.025);
4065 Ghb7->Draw(
"Error");
4066 Float_t ymaxHB = Ghb7->GetMaximum();
4067 cout <<
"22HB-3 ymaxHB= " << ymaxHB <<
" MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4068 <<
" MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4069 TLine *lineHB =
new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4070 lineHB->SetLineColor(kBlue);
4072 TLine *line1HB =
new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4073 line1HB->SetLineColor(kBlue);
4078 cRBX31->Print(
"RBX-HB-3plots.png");
4113 gStyle->SetOptStat(1110000);
4114 cout <<
" RBX HB Ratio plotsmore *****" << endl;
4117 cRBX31->Divide(3, 1);
4120 G20hb6->GetZaxis()->SetLabelSize(0.025);
4121 G20hb6->SetXTitle(
" #eta \b");
4122 G20hb6->SetYTitle(
" #phi \b");
4123 G20hb6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4124 G20hb6->SetStats(0);
4125 G20hb6->Draw(
"COLZ");
4128 G30hb6->GetZaxis()->SetLabelSize(0.025);
4129 G30hb6->SetXTitle(
" #eta \b");
4130 G30hb6->SetYTitle(
" #phi \b");
4131 G30hb6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4132 G30hb6->SetStats(0);
4133 G30hb6->Draw(
"COLZ");
4136 G40hb6->GetZaxis()->SetLabelSize(0.025);
4137 G40hb6->SetXTitle(
" #eta \b");
4138 G40hb6->SetYTitle(
" #phi \b");
4139 G40hb6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4140 G40hb6->SetStats(0);
4141 G40hb6->Draw(
"COLZ");
4146 cRBX31->Print(
"RBX-HB-3plotsmore.png");
4156 gStyle->SetOptStat(0);
4160 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4161 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4162 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4163 for (
int jphi = 0; jphi < njphi; jphi++) {
4165 for (
int i = 0;
i < nx;
i++) {
4166 alexall[
jeta][jphi][
i] = 0.;
4177 cout <<
" RBX general for HE **************************" << endl;
4178 TH2F *Ghe1KKK = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs1");
4179 TH2F *Ghe1LLL = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs10");
4180 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone(
"Ghe1");
4181 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1,
"B");
4185 ny = Ghe1->GetYaxis()->GetNbins();
4186 for (
int j = 1;
j <= ny;
j++) {
4187 int jeta = (
j - 1) / njphi;
4188 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4189 int jphi = (
j - 1) - njphi *
jeta;
4192 for (
int i = 1;
i <= nx;
i++) {
4193 double ccc1 = Ghe1->GetBinContent(
i,
j);
4194 alexall[
jeta][jphi][
i - 1] = ccc1;
4207 for (
int jphi = 0; jphi < njphi; jphi++) {
4208 for (
int i = 0;
i < nx;
i++) {
4209 double sumccc1 = 0.;
4212 double ccc1 = alexall[
jeta][jphi][
i];
4220 alexhe[jphi][
i] = sumccc1;
4224 for (
int keta = 0; keta < njeta; keta++) {
4225 for (
int i = 0;
i < nx;
i++) {
4226 double sumccc1 = 0.;
4228 for (
int kphi = 0; kphi < njphi; kphi++) {
4229 double ccc1 = alexall[keta][kphi][
i];
4237 blexhe[keta][
i] = sumccc1;
4246 cout <<
" RBX HE 2D plot *****" << endl;
4249 cRBX1->Divide(1, 1);
4252 TH2F *Ghe42D =
new TH2F(
"Ghe42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4253 TH2F *Ghe42D0 =
new TH2F(
"Ghe42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4256 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone(
"Ghe42DF");
4257 for (
int jphi = 0; jphi < njphi; jphi++) {
4259 for (
int i = 0;
i < nx;
i++) {
4260 double ccc1 = alexall[
jeta][jphi][
i];
4261 int neweta =
jeta - 11 - 0.5;
4263 neweta =
jeta - 11 + 1.5;
4265 Ghe42D->Fill(neweta, jphi, ccc1);
4266 Ghe42D0->Fill(neweta, jphi, 1.);
4272 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1,
"B");
4276 Ghe42DF->SetMarkerStyle(20);
4277 Ghe42DF->SetMarkerSize(0.4);
4278 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4279 Ghe42DF->SetXTitle(
"<A>_RBX #eta \b");
4280 Ghe42DF->SetYTitle(
" #phi \b");
4281 Ghe42DF->SetZTitle(
"<A>_RBX - All \b");
4282 Ghe42DF->SetMarkerColor(2);
4283 Ghe42DF->SetLineColor(2);
4284 Ghe42DF->Draw(
"COLZ");
4288 cRBX1->Print(
"RBX-HE-2Dplot.png");
4303 cout <<
" RBX HE 1D plot *****" << endl;
4306 cRBX1->Divide(1, 1);
4308 TH1F *GphiHE1D =
new TH1F(
"GphiHE1D",
"", 18, 0., 18.);
4309 TH1F *GphiHE1D0 =
new TH1F(
"GphiHE1D0",
"", 18, 0., 18.);
4310 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone(
"GphiHE1DF");
4311 for (
int jphi = 0; jphi < 18; jphi++) {
4313 for (
int i = 0;
i < nx;
i++) {
4314 double ccc1 = alexall[
jeta][jphi][
i];
4316 GphiHE1D->Fill(jphi, ccc1);
4317 GphiHE1D0->Fill(jphi, 1.);
4323 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1,
"B");
4325 for (
int jphi = 1; jphi < 19; jphi++) {
4326 GphiHE1DF->SetBinError(jphi, 0.01);
4330 GphiHE1DF->SetMarkerStyle(20);
4331 GphiHE1DF->SetMarkerSize(1.4);
4332 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4333 GphiHE1DF->SetXTitle(
"PHI of RBX\b");
4334 GphiHE1DF->SetYTitle(
" <Amplitude> \b");
4335 GphiHE1DF->SetZTitle(
"<A>_PHI - All \b");
4336 GphiHE1DF->SetMarkerColor(4);
4337 GphiHE1DF->SetLineColor(4);
4338 GphiHE1DF->SetMinimum(0.8);
4339 GphiHE1DF->Draw(
"Error");
4342 cRBX1->Print(
"RBX-HE-1Dplot.png");
4357 cout <<
" RBX HE 11D plot *eta*" << endl;
4360 cRBX1->Divide(1, 1);
4362 TH1F *GetaHE11D =
new TH1F(
"GetaHE11D",
"", 23, -11.5, 11.5);
4363 TH1F *GetaHE11D0 =
new TH1F(
"GetaHE11D0",
"", 23, -11.5, 11.5);
4364 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone(
"GetaHE11DF");
4367 for (
int jphi = 0; jphi < 18; jphi++) {
4368 for (
int i = 0;
i < nx;
i++) {
4369 double ccc1 = alexall[
jeta][jphi][
i];
4370 int neweta =
jeta - 11 - 0.5;
4372 neweta =
jeta - 11 + 1.5;
4374 GetaHE11D->Fill(neweta, ccc1);
4375 GetaHE11D0->Fill(neweta, 1.);
4382 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1,
"B");
4385 GetaHE11DF->SetBinError(
jeta, 0.01);
4389 GetaHE11DF->SetMarkerStyle(20);
4390 GetaHE11DF->SetMarkerSize(1.4);
4391 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4392 GetaHE11DF->SetXTitle(
"#eta \b");
4393 GetaHE11DF->SetYTitle(
" <A> \b");
4394 GetaHE11DF->SetZTitle(
"<A>_ETA - All \b");
4395 GetaHE11DF->SetMarkerColor(4);
4396 GetaHE11DF->SetLineColor(4);
4397 GetaHE11DF->SetMinimum(0.8);
4398 GetaHE11DF->Draw(
"Error");
4402 cRBX1->Print(
"RBX-HE-11Dplot.png");
4418 gStyle->SetOptStat(1110000);
4419 cout <<
" RBX HE Ratio plots *****" << endl;
4428 cRBX31->Divide(3, 1);
4432 TH1F *Ghe51 =
new TH1F(
"Ghe51",
"", nx, 1., nx + 1.);
4433 TH1F *Ghe50 =
new TH1F(
"Ghe50",
"", nx, 1., nx + 1.);
4434 TH1F *Ghe5 = (TH1F *)Ghe50->Clone(
"Ghe5");
4436 for (
int j = 1;
j <= ny;
j++) {
4437 ccc0HE = Ghe1->GetBinContent(1,
j);
4440 for (
int i = 1;
i <= nx;
i++) {
4441 double ccc2 = Ghe1->GetBinContent(
i,
j);
4449 for (
int i = 1;
i <= nx;
i++) {
4450 double ccc1 = Ghe1->GetBinContent(
i,
j);
4452 double Rij = ccc1 / ccc0HE;
4454 Ghe51->Fill(
float(
i), Rij);
4455 Ghe50->Fill(
float(
i), 1.);
4460 Ghe5->Divide(Ghe51, Ghe50, 1, 1,
"B");
4461 for (
int i = 1;
i <= nx;
i++) {
4462 Ghe5->SetBinError(
i, 0.0001);
4464 Ghe5->SetMarkerStyle(20);
4465 Ghe5->SetMarkerSize(0.4);
4466 Ghe5->GetYaxis()->SetLabelSize(0.04);
4467 Ghe5->SetMarkerColor(2);
4468 Ghe5->SetLineColor(0);
4469 Ghe5->SetXTitle(
" iLS \b");
4470 Ghe5->SetYTitle(
" <R> \b");
4471 Ghe5->SetTitle(
"<Ri> vs iLS \b");
4472 Ghe5->SetMinimum(0.);
4477 Ghe5->GetYaxis()->SetLabelSize(0.025);
4478 Ghe5->Draw(
"Error");
4481 TH2F *Ghe60 =
new TH2F(
"Ghe60",
"", 22, -11., 11., 18, 0., 18.);
4482 TH2F *Ghe61 =
new TH2F(
"Ghe61",
"", 22, -11., 11., 18, 0., 18.);
4483 TH2F *Ghe6 =
new TH2F(
"Ghe6",
"", 22, -11., 11., 18, 0., 18.);
4485 TH2F *G20he60 =
new TH2F(
"G20he60",
"", 22, -11., 11., 18, 0., 18.);
4486 TH2F *G20he61 =
new TH2F(
"G20he61",
"", 22, -11., 11., 18, 0., 18.);
4487 TH2F *G20he6 =
new TH2F(
"G20he6",
"", 22, -11., 11., 18, 0., 18.);
4488 TH2F *G30he60 =
new TH2F(
"G30he60",
"", 22, -11., 11., 18, 0., 18.);
4489 TH2F *G30he61 =
new TH2F(
"G30he61",
"", 22, -11., 11., 18, 0., 18.);
4490 TH2F *G30he6 =
new TH2F(
"G30he6",
"", 22, -11., 11., 18, 0., 18.);
4491 TH2F *G40he60 =
new TH2F(
"G40he60",
"", 22, -11., 11., 18, 0., 18.);
4492 TH2F *G40he61 =
new TH2F(
"G40he61",
"", 22, -11., 11., 18, 0., 18.);
4493 TH2F *G40he6 =
new TH2F(
"G40he6",
"", 22, -11., 11., 18, 0., 18.);
4499 double meanjHE = 0.;
4500 for (
int j = 1;
j <= ny;
j++) {
4501 ccc0HE = Ghe1->GetBinContent(1,
j);
4503 for (
int i = 1;
i <= nx;
i++) {
4504 double ccc2 = Ghe1->GetBinContent(
i,
j);
4511 for (
int i = 1;
i <= nx;
i++) {
4512 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4518 meanjHE = sumjHE / njHE;
4522 double ssumjHE = 0.;
4524 double sigmajHE = 0.;
4525 for (
int j = 1;
j <= ny;
j++) {
4526 ccc0HE = Ghe1->GetBinContent(1,
j);
4528 for (
int i = 1;
i <= nx;
i++) {
4529 double ccc2 = Ghe1->GetBinContent(
i,
j);
4536 for (
int i = 1;
i <= nx;
i++) {
4537 double ccc1 = Ghe1->GetBinContent(
i,
j) / ccc0HE;
4539 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4543 sigmajHE =
sqrt(ssumjHE / njHE);
4547 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4548 if (dif3rmsHEMIN < 0.)
4550 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4551 cout <<
"22HE-2 meanjHE= " << meanjHE <<
" sigmajHE= " << sigmajHE <<
" dif3rmsHEMIN= " << dif3rmsHEMIN
4552 <<
" dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4554 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4555 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4556 if (MAXdif3rmsHEMIN < 0.95)
4557 MAXdif3rmsHEMIN = 0.95;
4558 if (MINdif3rmsHEMAX > 1.05)
4559 MINdif3rmsHEMAX = 1.05;
4560 cout <<
"22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4562 for (
int j = 1;
j <= ny;
j++) {
4563 ccc0HE = Ghe1->GetBinContent(1,
j);
4565 for (
int i = 1;
i <= nx;
i++) {
4566 double ccc2 = Ghe1->GetBinContent(
i,
j);
4573 int jeta = (
j - 1) / 18;
4574 int jphi = (
j - 1) - 18 *
jeta;
4576 for (
int i = 1;
i <= nx;
i++) {
4577 double ccc1 = Ghe1->GetBinContent(
i,
j);
4579 double Rij = ccc1 / ccc0HE;
4580 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4581 Ghe61->Fill(
jeta - 11, jphi, Rij);
4582 Ghe60->Fill(
jeta - 11, jphi, 1.);
4584 if (Rij < 0.8 || Rij > 1.2) {
4585 G20he61->Fill(
jeta - 11, jphi, Rij);
4586 G20he60->Fill(
jeta - 11, jphi, 1.);
4588 if (Rij < 0.7 || Rij > 1.3) {
4589 G30he61->Fill(
jeta - 11, jphi, Rij);
4590 G30he60->Fill(
jeta - 11, jphi, 1.);
4592 if (Rij < 0.6 || Rij > 1.4) {
4593 G40he61->Fill(
jeta - 11, jphi, Rij);
4594 G40he60->Fill(
jeta - 11, jphi, 1.);
4600 Ghe6->Divide(Ghe61, Ghe60, 1, 1,
"B");
4601 G20he6->Divide(G20he61, G20he60, 1, 1,
"B");
4602 G30he6->Divide(G30he61, G30he60, 1, 1,
"B");
4603 G40he6->Divide(G40he61, G40he60, 1, 1,
"B");
4607 Ghe6->GetZaxis()->SetLabelSize(0.025);
4609 Ghe6->SetXTitle(
" #eta \b");
4610 Ghe6->SetYTitle(
" #phi \b");
4612 "<Rj> for |1-<R>| > 0.05 \b");
4618 TH1F *Ghe7 =
new TH1F(
"Ghe7",
"", 120, 0.4, 1.6);
4620 for (
int j = 1;
j <= ny;
j++) {
4621 ccc0HE = Ghe1->GetBinContent(1,
j);
4623 for (
int i = 1;
i <= nx;
i++) {
4624 double ccc2 = Ghe1->GetBinContent(
i,
j);
4632 for (
int i = 1;
i <= nx;
i++) {
4633 double ccc1 = Ghe1->GetBinContent(
i,
j);
4635 double Rij = ccc1 / ccc0HE;
4641 Ghe7->SetMarkerStyle(20);
4642 Ghe7->SetMarkerSize(0.4);
4643 Ghe7->GetYaxis()->SetLabelSize(0.04);
4644 Ghe7->SetMarkerColor(2);
4645 Ghe7->SetLineColor(0);
4646 Ghe7->SetYTitle(
" N \b");
4647 Ghe7->SetXTitle(
" Rij \b");
4648 Ghe7->SetTitle(
" Rij \b");
4653 Ghe7->GetYaxis()->SetLabelSize(0.025);
4654 Ghe7->Draw(
"Error");
4655 Float_t ymaxHE = Ghe7->GetMaximum();
4656 cout <<
"22HE-3 ymaxHE= " << ymaxHE <<
" MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4657 <<
" MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4658 TLine *lineHE =
new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4659 lineHE->SetLineColor(kBlue);
4661 TLine *line1HE =
new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4662 line1HE->SetLineColor(kBlue);
4667 cRBX31->Print(
"RBX-HE-3plots.png");
4702 gStyle->SetOptStat(1110000);
4703 cout <<
" RBX HE Ratio plotsmore *****" << endl;
4706 cRBX31->Divide(3, 1);
4709 G20he6->GetZaxis()->SetLabelSize(0.025);
4710 G20he6->SetXTitle(
" #eta \b");
4711 G20he6->SetYTitle(
" #phi \b");
4712 G20he6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
4713 G20he6->SetStats(0);
4714 G20he6->Draw(
"COLZ");
4717 G30he6->GetZaxis()->SetLabelSize(0.025);
4718 G30he6->SetXTitle(
" #eta \b");
4719 G30he6->SetYTitle(
" #phi \b");
4720 G30he6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
4721 G30he6->SetStats(0);
4722 G30he6->Draw(
"COLZ");
4725 G40he6->GetZaxis()->SetLabelSize(0.025);
4726 G40he6->SetXTitle(
" #eta \b");
4727 G40he6->SetYTitle(
" #phi \b");
4728 G40he6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
4729 G40he6->SetStats(0);
4730 G40he6->Draw(
"COLZ");
4735 cRBX31->Print(
"RBX-HE-3plotsmore.png");
4745 gStyle->SetOptStat(0);
4748 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4749 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4750 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4751 for (
int jphi = 0; jphi < njphi; jphi++) {
4753 for (
int i = 0;
i < nx;
i++) {
4754 alexall[
jeta][jphi][
i] = 0.;
4765 cout <<
" RBX general for HO **************************" << endl;
4766 TH2F *Gho1KKK = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs2");
4767 TH2F *Gho1LLL = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs20");
4768 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone(
"Gho1");
4769 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1,
"B");
4773 ny = Gho1->GetYaxis()->GetNbins();
4774 for (
int j = 1;
j <= ny;
j++) {
4775 int jeta = (
j - 1) / njphi;
4776 if (jeta < 15 && jeta > 6) {
4777 int jphi = (
j - 1) - njphi *
jeta;
4780 for (
int i = 1;
i <= nx;
i++) {
4781 double ccc1 = Gho1->GetBinContent(
i,
j);
4782 alexall[
jeta][jphi][
i - 1] = ccc1;
4795 for (
int jphi = 0; jphi < njphi; jphi++) {
4796 for (
int i = 0;
i < nx;
i++) {
4797 double sumccc1 = 0.;
4800 double ccc1 = alexall[
jeta][jphi][
i];
4808 alexho[jphi][
i] = sumccc1;
4812 for (
int keta = 0; keta < njeta; keta++) {
4813 for (
int i = 0;
i < nx;
i++) {
4814 double sumccc1 = 0.;
4816 for (
int kphi = 0; kphi < njphi; kphi++) {
4817 double ccc1 = alexall[keta][kphi][
i];
4825 blexho[keta][
i] = sumccc1;
4835 cout <<
" RBX HO 2D plot *****" << endl;
4838 cRBX1->Divide(1, 1);
4841 TH2F *Gho42D =
new TH2F(
"Gho42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
4842 TH2F *Gho42D0 =
new TH2F(
"Gho42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
4845 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone(
"Gho42DF");
4846 for (
int jphi = 0; jphi < njphi; jphi++) {
4848 for (
int i = 0;
i < nx;
i++) {
4849 double ccc1 = alexall[
jeta][jphi][
i];
4850 int neweta =
jeta - 11 - 0.5;
4852 neweta =
jeta - 11 + 1.5;
4854 Gho42D->Fill(neweta, jphi, ccc1);
4855 Gho42D0->Fill(neweta, jphi, 1.);
4861 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1,
"B");
4865 Gho42DF->SetMarkerStyle(20);
4866 Gho42DF->SetMarkerSize(0.4);
4867 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4868 Gho42DF->SetXTitle(
"<A>_RBX #eta \b");
4869 Gho42DF->SetYTitle(
" #phi \b");
4870 Gho42DF->SetZTitle(
"<A>_RBX - All \b");
4871 Gho42DF->SetMarkerColor(2);
4872 Gho42DF->SetLineColor(2);
4873 Gho42DF->Draw(
"COLZ");
4877 cRBX1->Print(
"RBX-HO-2Dplot.png");
4892 cout <<
" RBX HO 1D plot *****" << endl;
4895 cRBX1->Divide(1, 1);
4897 TH1F *GphiHO1D =
new TH1F(
"GphiHO1D",
"", 18, 0., 18.);
4898 TH1F *GphiHO1D0 =
new TH1F(
"GphiHO1D0",
"", 18, 0., 18.);
4899 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone(
"GphiHO1DF");
4900 for (
int jphi = 0; jphi < 18; jphi++) {
4902 for (
int i = 0;
i < nx;
i++) {
4903 double ccc1 = alexall[
jeta][jphi][
i];
4905 GphiHO1D->Fill(jphi, ccc1);
4906 GphiHO1D0->Fill(jphi, 1.);
4912 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1,
"B");
4914 for (
int jphi = 1; jphi < 19; jphi++) {
4915 GphiHO1DF->SetBinError(jphi, 0.01);
4919 GphiHO1DF->SetMarkerStyle(20);
4920 GphiHO1DF->SetMarkerSize(1.4);
4921 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4922 GphiHO1DF->SetXTitle(
"PHI of RBX\b");
4923 GphiHO1DF->SetYTitle(
" <Amplitude> \b");
4924 GphiHO1DF->SetZTitle(
"<A>_PHI - All \b");
4925 GphiHO1DF->SetMarkerColor(4);
4926 GphiHO1DF->SetLineColor(4);
4927 GphiHO1DF->SetMinimum(0.8);
4928 GphiHO1DF->Draw(
"Error");
4931 cRBX1->Print(
"RBX-HO-1Dplot.png");
4946 cout <<
" RBX HO 11D plot *eta*" << endl;
4949 cRBX1->Divide(1, 1);
4951 TH1F *GetaHO11D =
new TH1F(
"GetaHO11D",
"", 23, -11.5, 11.5);
4952 TH1F *GetaHO11D0 =
new TH1F(
"GetaHO11D0",
"", 23, -11.5, 11.5);
4953 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone(
"GetaHO11DF");
4956 for (
int jphi = 0; jphi < 18; jphi++) {
4957 for (
int i = 0;
i < nx;
i++) {
4958 double ccc1 = alexall[
jeta][jphi][
i];
4959 int neweta =
jeta - 11 - 0.5;
4961 neweta =
jeta - 11 + 1.5;
4963 GetaHO11D->Fill(neweta, ccc1);
4964 GetaHO11D0->Fill(neweta, 1.);
4971 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1,
"B");
4974 GetaHO11DF->SetBinError(
jeta, 0.01);
4978 GetaHO11DF->SetMarkerStyle(20);
4979 GetaHO11DF->SetMarkerSize(1.4);
4980 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4981 GetaHO11DF->SetXTitle(
"#eta \b");
4982 GetaHO11DF->SetYTitle(
" <A> \b");
4983 GetaHO11DF->SetZTitle(
"<A>_ETA - All \b");
4984 GetaHO11DF->SetMarkerColor(4);
4985 GetaHO11DF->SetLineColor(4);
4986 GetaHO11DF->SetMinimum(0.8);
4987 GetaHO11DF->Draw(
"Error");
4991 cRBX1->Print(
"RBX-HO-11Dplot.png");
5007 gStyle->SetOptStat(1110000);
5008 cout <<
" RBX HO Ratio plots *****" << endl;
5017 cRBX31->Divide(3, 1);
5021 TH1F *Gho51 =
new TH1F(
"Gho51",
"", nx, 1., nx + 1.);
5022 TH1F *Gho50 =
new TH1F(
"Gho50",
"", nx, 1., nx + 1.);
5023 TH1F *Gho5 = (TH1F *)Gho50->Clone(
"Gho5");
5025 for (
int j = 1;
j <= ny;
j++) {
5026 ccc0HO = Gho1->GetBinContent(1,
j);
5029 for (
int i = 1;
i <= nx;
i++) {
5030 double ccc2 = Gho1->GetBinContent(
i,
j);
5038 for (
int i = 1;
i <= nx;
i++) {
5039 double ccc1 = Gho1->GetBinContent(
i,
j);
5041 double Rij = ccc1 / ccc0HO;
5043 Gho51->Fill(
float(
i), Rij);
5044 Gho50->Fill(
float(
i), 1.);
5049 Gho5->Divide(Gho51, Gho50, 1, 1,
"B");
5050 for (
int i = 1;
i <= nx;
i++) {
5051 Gho5->SetBinError(
i, 0.0001);
5053 Gho5->SetMarkerStyle(20);
5054 Gho5->SetMarkerSize(0.4);
5055 Gho5->GetYaxis()->SetLabelSize(0.04);
5056 Gho5->SetMarkerColor(2);
5057 Gho5->SetLineColor(0);
5058 Gho5->SetXTitle(
" iLS \b");
5059 Gho5->SetYTitle(
" <R> \b");
5060 Gho5->SetTitle(
"<Ri> vs iLS \b");
5061 Gho5->SetMinimum(0.);
5066 Gho5->GetYaxis()->SetLabelSize(0.025);
5067 Gho5->Draw(
"Error");
5070 TH2F *Gho60 =
new TH2F(
"Gho60",
"", 22, -11., 11., 18, 0., 18.);
5071 TH2F *Gho61 =
new TH2F(
"Gho61",
"", 22, -11., 11., 18, 0., 18.);
5072 TH2F *Gho6 =
new TH2F(
"Gho6",
"", 22, -11., 11., 18, 0., 18.);
5074 TH2F *G20ho60 =
new TH2F(
"G20ho60",
"", 22, -11., 11., 18, 0., 18.);
5075 TH2F *G20ho61 =
new TH2F(
"G20ho61",
"", 22, -11., 11., 18, 0., 18.);
5076 TH2F *G20ho6 =
new TH2F(
"G20ho6",
"", 22, -11., 11., 18, 0., 18.);
5077 TH2F *G30ho60 =
new TH2F(
"G30ho60",
"", 22, -11., 11., 18, 0., 18.);
5078 TH2F *G30ho61 =
new TH2F(
"G30ho61",
"", 22, -11., 11., 18, 0., 18.);
5079 TH2F *G30ho6 =
new TH2F(
"G30ho6",
"", 22, -11., 11., 18, 0., 18.);
5080 TH2F *G40ho60 =
new TH2F(
"G40ho60",
"", 22, -11., 11., 18, 0., 18.);
5081 TH2F *G40ho61 =
new TH2F(
"G40ho61",
"", 22, -11., 11., 18, 0., 18.);
5082 TH2F *G40ho6 =
new TH2F(
"G40ho6",
"", 22, -11., 11., 18, 0., 18.);
5089 double meanjHO = 0.;
5090 for (
int j = 1;
j <= ny;
j++) {
5091 ccc0HO = Gho1->GetBinContent(1,
j);
5093 for (
int i = 1;
i <= nx;
i++) {
5094 double ccc2 = Gho1->GetBinContent(
i,
j);
5101 for (
int i = 1;
i <= nx;
i++) {
5102 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5108 meanjHO = sumjHO / njHO;
5112 double ssumjHO = 0.;
5114 double sigmajHO = 0.;
5115 for (
int j = 1;
j <= ny;
j++) {
5116 ccc0HO = Gho1->GetBinContent(1,
j);
5118 for (
int i = 1;
i <= nx;
i++) {
5119 double ccc2 = Gho1->GetBinContent(
i,
j);
5126 for (
int i = 1;
i <= nx;
i++) {
5127 double ccc1 = Gho1->GetBinContent(
i,
j) / ccc0HO;
5129 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5133 sigmajHO =
sqrt(ssumjHO / njHO);
5137 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5138 if (dif3rmsHOMIN < 0.)
5140 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5141 cout <<
"22HO-2 meanjHO= " << meanjHO <<
" sigmajHO= " << sigmajHO <<
" dif3rmsHOMIN= " << dif3rmsHOMIN
5142 <<
" dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5144 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5145 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5146 if (MAXdif3rmsHOMIN < 0.95)
5147 MAXdif3rmsHOMIN = 0.95;
5148 if (MINdif3rmsHOMAX > 1.05)
5149 MINdif3rmsHOMAX = 1.05;
5150 cout <<
"22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5152 for (
int j = 1;
j <= ny;
j++) {
5153 ccc0HO = Gho1->GetBinContent(1,
j);
5155 for (
int i = 1;
i <= nx;
i++) {
5156 double ccc2 = Gho1->GetBinContent(
i,
j);
5163 int jeta = (
j - 1) / 18;
5164 int jphi = (
j - 1) - 18 *
jeta;
5166 for (
int i = 1;
i <= nx;
i++) {
5167 double ccc1 = Gho1->GetBinContent(
i,
j);
5169 double Rij = ccc1 / ccc0HO;
5170 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5171 Gho61->Fill(
jeta - 11, jphi, Rij);
5172 Gho60->Fill(
jeta - 11, jphi, 1.);
5174 if (Rij < 0.8 || Rij > 1.2) {
5175 G20ho61->Fill(
jeta - 11, jphi, Rij);
5176 G20ho60->Fill(
jeta - 11, jphi, 1.);
5178 if (Rij < 0.7 || Rij > 1.3) {
5179 G30ho61->Fill(
jeta - 11, jphi, Rij);
5180 G30ho60->Fill(
jeta - 11, jphi, 1.);
5182 if (Rij < 0.6 || Rij > 1.4) {
5183 G40ho61->Fill(
jeta - 11, jphi, Rij);
5184 G40ho60->Fill(
jeta - 11, jphi, 1.);
5190 Gho6->Divide(Gho61, Gho60, 1, 1,
"B");
5191 G20ho6->Divide(G20ho61, G20ho60, 1, 1,
"B");
5192 G30ho6->Divide(G30ho61, G30ho60, 1, 1,
"B");
5193 G40ho6->Divide(G40ho61, G40ho60, 1, 1,
"B");
5196 Gho6->GetZaxis()->SetLabelSize(0.025);
5198 Gho6->SetXTitle(
" #eta \b");
5199 Gho6->SetYTitle(
" #phi \b");
5201 "<Rj> for |1-<R>| > 0.05 \b");
5207 TH1F *Gho7 =
new TH1F(
"Gho7",
"", 120, 0.4, 1.6);
5209 for (
int j = 1;
j <= ny;
j++) {
5210 ccc0HO = Gho1->GetBinContent(1,
j);
5212 for (
int i = 1;
i <= nx;
i++) {
5213 double ccc2 = Gho1->GetBinContent(
i,
j);
5221 for (
int i = 1;
i <= nx;
i++) {
5222 double ccc1 = Gho1->GetBinContent(
i,
j);
5224 double Rij = ccc1 / ccc0HO;
5230 Gho7->SetMarkerStyle(20);
5231 Gho7->SetMarkerSize(0.4);
5232 Gho7->GetYaxis()->SetLabelSize(0.04);
5233 Gho7->SetMarkerColor(2);
5234 Gho7->SetLineColor(0);
5235 Gho7->SetYTitle(
" N \b");
5236 Gho7->SetXTitle(
" Rij \b");
5237 Gho7->SetTitle(
" Rij \b");
5242 Gho7->GetYaxis()->SetLabelSize(0.025);
5243 Gho7->Draw(
"Error");
5244 Float_t ymaxHO = Gho7->GetMaximum();
5245 cout <<
"22HO-3 ymaxHO= " << ymaxHO <<
" MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5246 <<
" MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5247 TLine *lineHO =
new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5248 lineHO->SetLineColor(kBlue);
5250 TLine *line1HO =
new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5251 line1HO->SetLineColor(kBlue);
5256 cRBX31->Print(
"RBX-HO-3plots.png");
5291 gStyle->SetOptStat(1110000);
5292 cout <<
" RBX HO Ratio plotsmore *****" << endl;
5295 cRBX31->Divide(3, 1);
5298 G20ho6->GetZaxis()->SetLabelSize(0.025);
5299 G20ho6->SetXTitle(
" #eta \b");
5300 G20ho6->SetYTitle(
" #phi \b");
5301 G20ho6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5302 G20ho6->SetStats(0);
5303 G20ho6->Draw(
"COLZ");
5306 G30ho6->GetZaxis()->SetLabelSize(0.025);
5307 G30ho6->SetXTitle(
" #eta \b");
5308 G30ho6->SetYTitle(
" #phi \b");
5309 G30ho6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5310 G30ho6->SetStats(0);
5311 G30ho6->Draw(
"COLZ");
5314 G40ho6->GetZaxis()->SetLabelSize(0.025);
5315 G40ho6->SetXTitle(
" #eta \b");
5316 G40ho6->SetYTitle(
" #phi \b");
5317 G40ho6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5318 G40ho6->SetStats(0);
5319 G40ho6->Draw(
"COLZ");
5324 cRBX31->Print(
"RBX-HO-3plotsmore.png");
5334 gStyle->SetOptStat(0);
5337 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5338 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5339 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5340 for (
int jphi = 0; jphi < njphi; jphi++) {
5342 for (
int i = 0;
i < nx;
i++) {
5343 alexall[
jeta][jphi][
i] = 0.;
5354 cout <<
" RBX general for HF **************************" << endl;
5355 TH2F *Ghf1KKK = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs3");
5356 TH2F *Ghf1LLL = (TH2F *)
dir->FindObjectAny(
"h_2DsumADCAmplEtaPhiLs30");
5357 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone(
"Ghf1");
5358 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1,
"B");
5362 ny = Ghf1->GetYaxis()->GetNbins();
5363 for (
int j = 1;
j <= ny;
j++) {
5364 int jeta = (
j - 1) / njphi;
5365 if (jeta < 4 || jeta > 17) {
5366 int jphi = (
j - 1) - njphi *
jeta;
5369 for (
int i = 1;
i <= nx;
i++) {
5370 double ccc1 = Ghf1->GetBinContent(
i,
j);
5371 alexall[
jeta][jphi][
i - 1] = ccc1;
5384 for (
int jphi = 0; jphi < njphi; jphi++) {
5385 for (
int i = 0;
i < nx;
i++) {
5386 double sumccc1 = 0.;
5389 double ccc1 = alexall[
jeta][jphi][
i];
5397 alexhf[jphi][
i] = sumccc1;
5401 for (
int keta = 0; keta < njeta; keta++) {
5402 for (
int i = 0;
i < nx;
i++) {
5403 double sumccc1 = 0.;
5405 for (
int kphi = 0; kphi < njphi; kphi++) {
5406 double ccc1 = alexall[keta][kphi][
i];
5414 blexhf[keta][
i] = sumccc1;
5423 cout <<
" RBX HF 2D plot *****" << endl;
5426 cRBX1->Divide(1, 1);
5429 TH2F *Ghf42D =
new TH2F(
"Ghf42D",
"", 23, -11.5, 11.5, 18, 0., 18.);
5430 TH2F *Ghf42D0 =
new TH2F(
"Ghf42D0",
"", 23, -11.5, 11.5, 18, 0., 18.);
5433 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone(
"Ghf42DF");
5434 for (
int jphi = 0; jphi < njphi; jphi++) {
5436 for (
int i = 0;
i < nx;
i++) {
5437 double ccc1 = alexall[
jeta][jphi][
i];
5438 int neweta =
jeta - 11 - 0.5;
5440 neweta =
jeta - 11 + 1.5;
5442 Ghf42D->Fill(neweta, jphi, ccc1);
5443 Ghf42D0->Fill(neweta, jphi, 1.);
5449 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1,
"B");
5453 Ghf42DF->SetMarkerStyle(20);
5454 Ghf42DF->SetMarkerSize(0.4);
5455 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5456 Ghf42DF->SetXTitle(
"<A>_RBX #eta \b");
5457 Ghf42DF->SetYTitle(
" #phi \b");
5458 Ghf42DF->SetZTitle(
"<A>_RBX - All \b");
5459 Ghf42DF->SetMarkerColor(2);
5460 Ghf42DF->SetLineColor(2);
5461 Ghf42DF->Draw(
"COLZ");
5465 cRBX1->Print(
"RBX-HF-2Dplot.png");
5480 cout <<
" RBX HF 1D plot *****" << endl;
5483 cRBX1->Divide(1, 1);
5485 TH1F *GphiHF1D =
new TH1F(
"GphiHF1D",
"", 18, 0., 18.);
5486 TH1F *GphiHF1D0 =
new TH1F(
"GphiHF1D0",
"", 18, 0., 18.);
5487 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone(
"GphiHF1DF");
5488 for (
int jphi = 0; jphi < 18; jphi++) {
5490 for (
int i = 0;
i < nx;
i++) {
5491 double ccc1 = alexall[
jeta][jphi][
i];
5493 GphiHF1D->Fill(jphi, ccc1);
5494 GphiHF1D0->Fill(jphi, 1.);
5500 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1,
"B");
5502 for (
int jphi = 1; jphi < 19; jphi++) {
5503 GphiHF1DF->SetBinError(jphi, 0.01);
5507 GphiHF1DF->SetMarkerStyle(20);
5508 GphiHF1DF->SetMarkerSize(1.4);
5509 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5510 GphiHF1DF->SetXTitle(
"PHI of RBX\b");
5511 GphiHF1DF->SetYTitle(
" <Amplitude> \b");
5512 GphiHF1DF->SetZTitle(
"<A>_PHI - All \b");
5513 GphiHF1DF->SetMarkerColor(4);
5514 GphiHF1DF->SetLineColor(4);
5515 GphiHF1DF->SetMinimum(0.8);
5516 GphiHF1DF->Draw(
"Error");
5519 cRBX1->Print(
"RBX-HF-1Dplot.png");
5534 cout <<
" RBX HF 11D plot *eta*" << endl;
5537 cRBX1->Divide(1, 1);
5539 TH1F *GetaHF11D =
new TH1F(
"GetaHF11D",
"", 23, -11.5, 11.5);
5540 TH1F *GetaHF11D0 =
new TH1F(
"GetaHF11D0",
"", 23, -11.5, 11.5);
5541 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone(
"GetaHF11DF");
5544 for (
int jphi = 0; jphi < 18; jphi++) {
5545 for (
int i = 0;
i < nx;
i++) {
5546 double ccc1 = alexall[
jeta][jphi][
i];
5547 int neweta =
jeta - 11 - 0.5;
5549 neweta =
jeta - 11 + 1.5;
5551 GetaHF11D->Fill(neweta, ccc1);
5552 GetaHF11D0->Fill(neweta, 1.);
5559 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1,
"B");
5562 GetaHF11DF->SetBinError(
jeta, 0.01);
5566 GetaHF11DF->SetMarkerStyle(20);
5567 GetaHF11DF->SetMarkerSize(1.4);
5568 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5569 GetaHF11DF->SetXTitle(
"#eta \b");
5570 GetaHF11DF->SetYTitle(
" <A> \b");
5571 GetaHF11DF->SetZTitle(
"<A>_ETA - All \b");
5572 GetaHF11DF->SetMarkerColor(4);
5573 GetaHF11DF->SetLineColor(4);
5574 GetaHF11DF->SetMinimum(0.8);
5575 GetaHF11DF->Draw(
"Error");
5579 cRBX1->Print(
"RBX-HF-11Dplot.png");
5595 gStyle->SetOptStat(1110000);
5596 cout <<
" RBX HF Ratio plots *****" << endl;
5605 cRBX31->Divide(3, 1);
5609 TH1F *Ghf51 =
new TH1F(
"Ghf51",
"", nx, 1., nx + 1.);
5610 TH1F *Ghf50 =
new TH1F(
"Ghf50",
"", nx, 1., nx + 1.);
5611 TH1F *Ghf5 = (TH1F *)Ghf50->Clone(
"Ghf5");
5613 for (
int j = 1;
j <= ny;
j++) {
5614 ccc0HF = Ghf1->GetBinContent(1,
j);
5617 for (
int i = 1;
i <= nx;
i++) {
5618 double ccc2 = Ghf1->GetBinContent(
i,
j);
5626 for (
int i = 1;
i <= nx;
i++) {
5627 double ccc1 = Ghf1->GetBinContent(
i,
j);
5629 double Rij = ccc1 / ccc0HF;
5631 Ghf51->Fill(
float(
i), Rij);
5632 Ghf50->Fill(
float(
i), 1.);
5637 Ghf5->Divide(Ghf51, Ghf50, 1, 1,
"B");
5638 for (
int i = 1;
i <= nx;
i++) {
5639 Ghf5->SetBinError(
i, 0.0001);
5641 Ghf5->SetMarkerStyle(20);
5642 Ghf5->SetMarkerSize(0.4);
5643 Ghf5->GetYaxis()->SetLabelSize(0.04);
5644 Ghf5->SetMarkerColor(2);
5645 Ghf5->SetLineColor(0);
5646 Ghf5->SetXTitle(
" iLS \b");
5647 Ghf5->SetYTitle(
" <R> \b");
5648 Ghf5->SetTitle(
"<Ri> vs iLS \b");
5649 Ghf5->SetMinimum(0.);
5654 Ghf5->GetYaxis()->SetLabelSize(0.025);
5655 Ghf5->Draw(
"Error");
5658 TH2F *Ghf60 =
new TH2F(
"Ghf60",
"", 22, -11., 11., 18, 0., 18.);
5659 TH2F *Ghf61 =
new TH2F(
"Ghf61",
"", 22, -11., 11., 18, 0., 18.);
5660 TH2F *Ghf6 =
new TH2F(
"Ghf6",
"", 22, -11., 11., 18, 0., 18.);
5662 TH2F *G20hf60 =
new TH2F(
"G20hf60",
"", 22, -11., 11., 18, 0., 18.);
5663 TH2F *G20hf61 =
new TH2F(
"G20hf61",
"", 22, -11., 11., 18, 0., 18.);
5664 TH2F *G20hf6 =
new TH2F(
"G20hf6",
"", 22, -11., 11., 18, 0., 18.);
5665 TH2F *G30hf60 =
new TH2F(
"G30hf60",
"", 22, -11., 11., 18, 0., 18.);
5666 TH2F *G30hf61 =
new TH2F(
"G30hf61",
"", 22, -11., 11., 18, 0., 18.);
5667 TH2F *G30hf6 =
new TH2F(
"G30hf6",
"", 22, -11., 11., 18, 0., 18.);
5668 TH2F *G40hf60 =
new TH2F(
"G40hf60",
"", 22, -11., 11., 18, 0., 18.);
5669 TH2F *G40hf61 =
new TH2F(
"G40hf61",
"", 22, -11., 11., 18, 0., 18.);
5670 TH2F *G40hf6 =
new TH2F(
"G40hf6",
"", 22, -11., 11., 18, 0., 18.);
5676 double meanjHF = 0.;
5677 for (
int j = 1;
j <= ny;
j++) {
5678 ccc0HF = Ghf1->GetBinContent(1,
j);
5680 for (
int i = 1;
i <= nx;
i++) {
5681 double ccc2 = Ghf1->GetBinContent(
i,
j);
5688 for (
int i = 1;
i <= nx;
i++) {
5689 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5695 meanjHF = sumjHF / njHF;
5699 double ssumjHF = 0.;
5701 double sigmajHF = 0.;
5702 for (
int j = 1;
j <= ny;
j++) {
5703 ccc0HF = Ghf1->GetBinContent(1,
j);
5705 for (
int i = 1;
i <= nx;
i++) {
5706 double ccc2 = Ghf1->GetBinContent(
i,
j);
5713 for (
int i = 1;
i <= nx;
i++) {
5714 double ccc1 = Ghf1->GetBinContent(
i,
j) / ccc0HF;
5716 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5720 sigmajHF =
sqrt(ssumjHF / njHF);
5724 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5725 if (dif3rmsHFMIN < 0.)
5727 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5728 cout <<
"22HF-2 meanjHF= " << meanjHF <<
" sigmajHF= " << sigmajHF <<
" dif3rmsHFMIN= " << dif3rmsHFMIN
5729 <<
" dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5731 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5732 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5733 if (MAXdif3rmsHFMIN < 0.95)
5734 MAXdif3rmsHFMIN = 0.95;
5735 if (MINdif3rmsHFMAX > 1.05)
5736 MINdif3rmsHFMAX = 1.05;
5737 cout <<
"22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5739 for (
int j = 1;
j <= ny;
j++) {
5740 ccc0HF = Ghf1->GetBinContent(1,
j);
5742 for (
int i = 1;
i <= nx;
i++) {
5743 double ccc2 = Ghf1->GetBinContent(
i,
j);
5750 int jeta = (
j - 1) / 18;
5751 int jphi = (
j - 1) - 18 *
jeta;
5753 for (
int i = 1;
i <= nx;
i++) {
5754 double ccc1 = Ghf1->GetBinContent(
i,
j);
5756 double Rij = ccc1 / ccc0HF;
5757 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5758 Ghf61->Fill(
jeta - 11, jphi, Rij);
5759 Ghf60->Fill(
jeta - 11, jphi, 1.);
5761 if (Rij < 0.8 || Rij > 1.2) {
5762 G20hf61->Fill(
jeta - 11, jphi, Rij);
5763 G20hf60->Fill(
jeta - 11, jphi, 1.);
5765 if (Rij < 0.7 || Rij > 1.3) {
5766 G30hf61->Fill(
jeta - 11, jphi, Rij);
5767 G30hf60->Fill(
jeta - 11, jphi, 1.);
5769 if (Rij < 0.6 || Rij > 1.4) {
5770 G40hf61->Fill(
jeta - 11, jphi, Rij);
5771 G40hf60->Fill(
jeta - 11, jphi, 1.);
5777 Ghf6->Divide(Ghf61, Ghf60, 1, 1,
"B");
5778 G20hf6->Divide(G20hf61, G20hf60, 1, 1,
"B");
5779 G30hf6->Divide(G30hf61, G30hf60, 1, 1,
"B");
5780 G40hf6->Divide(G40hf61, G40hf60, 1, 1,
"B");
5783 Ghf6->GetZaxis()->SetLabelSize(0.025);
5785 Ghf6->SetXTitle(
" #eta \b");
5786 Ghf6->SetYTitle(
" #phi \b");
5788 "<Rj> for |1-<R>| > 0.05 \b");
5794 TH1F *Ghf7 =
new TH1F(
"Ghf7",
"", 120, 0.4, 1.6);
5796 for (
int j = 1;
j <= ny;
j++) {
5797 ccc0HF = Ghf1->GetBinContent(1,
j);
5799 for (
int i = 1;
i <= nx;
i++) {
5800 double ccc2 = Ghf1->GetBinContent(
i,
j);
5808 for (
int i = 1;
i <= nx;
i++) {
5809 double ccc1 = Ghf1->GetBinContent(
i,
j);
5811 double Rij = ccc1 / ccc0HF;
5817 Ghf7->SetMarkerStyle(20);
5818 Ghf7->SetMarkerSize(0.4);
5819 Ghf7->GetYaxis()->SetLabelSize(0.04);
5820 Ghf7->SetMarkerColor(2);
5821 Ghf7->SetLineColor(0);
5822 Ghf7->SetYTitle(
" N \b");
5823 Ghf7->SetXTitle(
" Rij \b");
5824 Ghf7->SetTitle(
" Rij \b");
5829 Ghf7->GetYaxis()->SetLabelSize(0.025);
5830 Ghf7->Draw(
"Error");
5831 Float_t ymaxHF = Ghf7->GetMaximum();
5832 cout <<
"22HF-3 ymaxHF= " << ymaxHF <<
" MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5833 <<
" MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5834 TLine *lineHF =
new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5835 lineHF->SetLineColor(kBlue);
5837 TLine *line1HF =
new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5838 line1HF->SetLineColor(kBlue);
5843 cRBX31->Print(
"RBX-HF-3plots.png");
5878 gStyle->SetOptStat(1110000);
5879 cout <<
" RBX HF Ratio plotsmore *****" << endl;
5882 cRBX31->Divide(3, 1);
5885 G20hf6->GetZaxis()->SetLabelSize(0.025);
5886 G20hf6->SetXTitle(
" #eta \b");
5887 G20hf6->SetYTitle(
" #phi \b");
5888 G20hf6->SetTitle(
"<Rj> for |1-<R>| > 0.20 \b");
5889 G20hf6->SetStats(0);
5890 G20hf6->Draw(
"COLZ");
5893 G30hf6->GetZaxis()->SetLabelSize(0.025);
5894 G30hf6->SetXTitle(
" #eta \b");
5895 G30hf6->SetYTitle(
" #phi \b");
5896 G30hf6->SetTitle(
"<Rj> for |1-<R>| > 0.30 \b");
5897 G30hf6->SetStats(0);
5898 G30hf6->Draw(
"COLZ");
5901 G40hf6->GetZaxis()->SetLabelSize(0.025);
5902 G40hf6->SetXTitle(
" #eta \b");
5903 G40hf6->SetYTitle(
" #phi \b");
5904 G40hf6->SetTitle(
"<Rj> for |1-<R>| > 0.40 \b");
5905 G40hf6->SetStats(0);
5906 G40hf6->Draw(
"COLZ");
5911 cRBX31->Print(
"RBX-HF-3plotsmore.png");
5921 gStyle->SetOptStat(0);
5923 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5924 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5925 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5933 int mymaxbins = MaxLum;
5939 TH2F *occhbm = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HBM");
5940 TH1F *uyhbm =
new TH1F(
"uyhbm",
"", mymaxbins, 1., mymaxbins + 1.);
5941 for (
int i = 1;
i <= occhbm->GetXaxis()->GetNbins();
i++) {
5942 double ccc1 = occhbm->GetBinContent(
i);
5945 uyhbm->Fill(
float(
i), ccc1);
5948 uyhbm->SetMarkerStyle(20);
5949 uyhbm->SetMarkerSize(0.6);
5950 uyhbm->GetYaxis()->SetLabelSize(0.04);
5951 uyhbm->SetXTitle(
"min/av occupancy - HBM \b");
5952 uyhbm->SetMarkerColor(2);
5953 uyhbm->SetLineColor(0);
5954 uyhbm->SetMaximum(1.0);
5955 uyhbm->SetMinimum(0.2);
5957 uyhbm->Draw(
"Error");
5960 TH2F *occhbp = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HBP");
5961 TH1F *uyhbp =
new TH1F(
"uyhbp",
"", mymaxbins, 1., mymaxbins + 1.);
5962 for (
int i = 1;
i <= occhbp->GetXaxis()->GetNbins();
i++) {
5963 double ccc1 = occhbp->GetBinContent(
i);
5966 uyhbp->Fill(
float(
i), ccc1);
5969 uyhbp->SetMarkerStyle(20);
5970 uyhbp->SetMarkerSize(0.6);
5971 uyhbp->GetYaxis()->SetLabelSize(0.04);
5972 uyhbp->SetXTitle(
"min/av occupancy - HBP \b");
5973 uyhbp->SetMarkerColor(2);
5974 uyhbp->SetLineColor(0);
5975 uyhbp->SetMaximum(1.0);
5976 uyhbp->SetMinimum(0.2);
5978 uyhbp->Draw(
"Error");
5983 cHB->Print(Form(
"OccPlots_HB.png"));
6003 TH2F *occhem = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HEM");
6004 TH1F *uyhem =
new TH1F(
"uyhem",
"", mymaxbins, 1., mymaxbins + 1.);
6005 for (
int i = 1;
i <= occhem->GetXaxis()->GetNbins();
i++) {
6006 double ccc1 = occhem->GetBinContent(
i);
6009 uyhem->Fill(
float(
i), ccc1);
6012 uyhem->SetMarkerStyle(20);
6013 uyhem->SetMarkerSize(0.6);
6014 uyhem->GetYaxis()->SetLabelSize(0.04);
6015 uyhem->SetXTitle(
"min/av occupancy - HEM \b");
6016 uyhem->SetMarkerColor(2);
6017 uyhem->SetLineColor(0);
6018 uyhem->SetMaximum(1.0);
6019 uyhem->SetMinimum(0.2);
6021 uyhem->Draw(
"Error");
6024 TH2F *occhep = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HEP");
6025 TH1F *uyhep =
new TH1F(
"uyhep",
"", mymaxbins, 1., mymaxbins + 1.);
6026 for (
int i = 1;
i <= occhep->GetXaxis()->GetNbins();
i++) {
6027 double ccc1 = occhep->GetBinContent(
i);
6030 uyhep->Fill(
float(
i), ccc1);
6033 uyhep->SetMarkerStyle(20);
6034 uyhep->SetMarkerSize(0.6);
6035 uyhep->GetYaxis()->SetLabelSize(0.04);
6036 uyhep->SetXTitle(
"min/av occupancy - HEP \b");
6037 uyhep->SetMarkerColor(2);
6038 uyhep->SetLineColor(0);
6039 uyhep->SetMaximum(1.0);
6040 uyhep->SetMinimum(0.2);
6042 uyhep->Draw(
"Error");
6047 cHB->Print(Form(
"OccPlots_HE.png"));
6067 TH2F *occhom = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HOM");
6068 TH1F *uyhom =
new TH1F(
"uyhom",
"", mymaxbins, 1., mymaxbins + 1.);
6069 for (
int i = 1;
i <= occhom->GetXaxis()->GetNbins();
i++) {
6070 double ccc1 = occhom->GetBinContent(
i);
6073 uyhom->Fill(
float(
i), ccc1);
6076 uyhom->SetMarkerStyle(20);
6077 uyhom->SetMarkerSize(0.6);
6078 uyhom->GetYaxis()->SetLabelSize(0.04);
6079 uyhom->SetXTitle(
"min/av occupancy - HOM \b");
6080 uyhom->SetMarkerColor(2);
6081 uyhom->SetLineColor(0);
6082 uyhom->SetMaximum(1.0);
6083 uyhom->SetMinimum(0.2);
6085 uyhom->Draw(
"Error");
6088 TH2F *occhop = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HOP");
6089 TH1F *uyhop =
new TH1F(
"uyhop",
"", mymaxbins, 1., mymaxbins + 1.);
6090 for (
int i = 1;
i <= occhop->GetXaxis()->GetNbins();
i++) {
6091 double ccc1 = occhop->GetBinContent(
i);
6094 uyhop->Fill(
float(
i), ccc1);
6097 uyhop->SetMarkerStyle(20);
6098 uyhop->SetMarkerSize(0.6);
6099 uyhop->GetYaxis()->SetLabelSize(0.04);
6100 uyhop->SetXTitle(
"min/av occupancy - HOP \b");
6101 uyhop->SetMarkerColor(2);
6102 uyhop->SetLineColor(0);
6103 uyhop->SetMaximum(1.0);
6104 uyhop->SetMinimum(0.2);
6106 uyhop->Draw(
"Error");
6111 cHB->Print(Form(
"OccPlots_HO.png"));
6131 TH2F *occhfm = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HFM");
6132 TH1F *uyhfm =
new TH1F(
"uyhfm",
"", mymaxbins, 1., mymaxbins + 1.);
6133 for (
int i = 1;
i <= occhfm->GetXaxis()->GetNbins();
i++) {
6134 double ccc1 = occhfm->GetBinContent(
i);
6137 uyhfm->Fill(
float(
i), ccc1);
6140 uyhfm->SetMarkerStyle(20);
6141 uyhfm->SetMarkerSize(0.6);
6142 uyhfm->GetYaxis()->SetLabelSize(0.04);
6143 uyhfm->SetXTitle(
"min/av occupancy - HFM \b");
6144 uyhfm->SetMarkerColor(2);
6145 uyhfm->SetLineColor(0);
6146 uyhfm->SetMaximum(1.0);
6147 uyhfm->SetMinimum(0.2);
6149 uyhfm->Draw(
"Error");
6152 TH2F *occhfp = (TH2F *)
dir->FindObjectAny(
"h_RatioOccupancy_HFP");
6153 TH1F *uyhfp =
new TH1F(
"uyhfp",
"", mymaxbins, 1., mymaxbins + 1.);
6154 for (
int i = 1;
i <= occhfp->GetXaxis()->GetNbins();
i++) {
6155 double ccc1 = occhfp->GetBinContent(
i);
6158 uyhfp->Fill(
float(
i), ccc1);
6161 uyhfp->SetMarkerStyle(20);
6162 uyhfp->SetMarkerSize(0.6);
6163 uyhfp->GetYaxis()->SetLabelSize(0.04);
6164 uyhfp->SetXTitle(
"min/av occupancy - HFP \b");
6165 uyhfp->SetMarkerColor(2);
6166 uyhfp->SetLineColor(0);
6167 uyhfp->SetMaximum(1.0);
6168 uyhfp->SetMinimum(0.2);
6170 uyhfp->Draw(
"Error");
6175 cHB->Print(Form(
"OccPlots_HF.png"));
6188 std::cout <<
"************>>> occupancy plots done" << std::endl;
6195 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots " << endl;
6196 int maxbins = MaxLum;
6197 cout <<
">>>> maxbins = " << maxbins << endl;
6198 TH1F *SummedAmplitudeHisto[4];
6199 SummedAmplitudeHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALsumamplitude_HB");
6200 SummedAmplitudeHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALsumamplitude_HE");
6201 SummedAmplitudeHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALsumamplitude_HO");
6202 SummedAmplitudeHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALsumamplitude_HF");
6203 TH1F *SummedAmplitudeOccupancyHisto[4];
6204 SummedAmplitudeOccupancyHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALoccupancy_HB");
6205 SummedAmplitudeOccupancyHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALoccupancy_HE");
6206 SummedAmplitudeOccupancyHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALoccupancy_HO");
6207 SummedAmplitudeOccupancyHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_averSIGNALoccupancy_HF");
6208 for (
int sub = 0; sub < 4; sub++) {
6212 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6214 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6216 if (SummedAmplitudeHisto[sub])
6217 ccc1 = SummedAmplitudeHisto[sub]->GetBinContent(
i);
6220 kslpq->Fill(
float(
i), ccc1);
6223 kslpq->SetMarkerStyle(20);
6224 kslpq->SetMarkerSize(0.8);
6225 kslpq->GetYaxis()->SetLabelSize(0.04);
6226 kslpq->SetXTitle(
"SumA of channels w/ signal per LS \b");
6227 kslpq->SetMarkerColor(2);
6228 kslpq->SetLineColor(0);
6231 kslpq->Draw(
"Error");
6234 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6235 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6237 if (SummedAmplitudeOccupancyHisto[sub])
6238 ccc1 = SummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6241 pqmks->Fill(
float(
i), ccc1);
6244 pqmks->SetMarkerStyle(20);
6245 pqmks->SetMarkerSize(0.8);
6246 pqmks->GetYaxis()->SetLabelSize(0.04);
6247 pqmks->SetXTitle(
"Occupancy of channels w/ signal per LS \b");
6248 pqmks->SetMarkerColor(4);
6249 pqmks->SetLineColor(0);
6252 pqmks->Draw(
"Error");
6255 cHE->Print(
"SummedAmplitudesSignal_HB.png");
6257 cHE->Print(
"SummedAmplitudesSignal_HE.png");
6259 cHE->Print(
"SummedAmplitudesSignal_HO.png");
6261 cHE->Print(
"SummedAmplitudesSignal_HF.png");
6274 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots NoSignal " << endl;
6275 TH1F *NoSignalSummedAmplitudeHisto[4];
6276 NoSignalSummedAmplitudeHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALsumamplitude_HB");
6277 NoSignalSummedAmplitudeHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALsumamplitude_HE");
6278 NoSignalSummedAmplitudeHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALsumamplitude_HO");
6279 NoSignalSummedAmplitudeHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALsumamplitude_HF");
6280 TH1F *NoSignalSummedAmplitudeOccupancyHisto[4];
6281 NoSignalSummedAmplitudeOccupancyHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALoccupancy_HB");
6282 NoSignalSummedAmplitudeOccupancyHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALoccupancy_HE");
6283 NoSignalSummedAmplitudeOccupancyHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALoccupancy_HO");
6284 NoSignalSummedAmplitudeOccupancyHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_averNOSIGNALoccupancy_HF");
6285 for (
int sub = 0; sub < 4; sub++) {
6290 TH1F *kslpq =
new TH1F(
"kslpq",
"", maxbins, 1., maxbins + 1.);
6291 for (
int i = 1;
i <= kslpq->GetXaxis()->GetNbins();
i++) {
6293 if (NoSignalSummedAmplitudeHisto[sub])
6294 ccc1 = NoSignalSummedAmplitudeHisto[sub]->GetBinContent(
i);
6297 kslpq->Fill(
float(
i), ccc1);
6300 kslpq->SetMarkerStyle(20);
6301 kslpq->SetMarkerSize(0.8);
6302 kslpq->GetYaxis()->SetLabelSize(0.04);
6303 kslpq->SetXTitle(
"SumA of channels w/o signal per LS \b");
6304 kslpq->SetMarkerColor(2);
6305 kslpq->SetLineColor(0);
6307 kslpq->SetMaximum(20000.);
6308 kslpq->SetMinimum(5000.);
6309 }
else if (sub == 1) {
6310 kslpq->SetMaximum(40000.);
6311 kslpq->SetMinimum(0.);
6312 }
else if (sub == 2) {
6313 kslpq->SetMaximum(10000.);
6314 kslpq->SetMinimum(15000.);
6315 }
else if (sub == 3) {
6316 kslpq->SetMaximum(100000.);
6317 kslpq->SetMinimum(0.);
6320 kslpq->Draw(
"Error");
6323 TH1F *pqmks =
new TH1F(
"pqmks",
"", maxbins, 1., maxbins + 1.);
6324 for (
int i = 1;
i <= pqmks->GetXaxis()->GetNbins();
i++) {
6326 if (NoSignalSummedAmplitudeOccupancyHisto[sub])
6327 ccc1 = NoSignalSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6330 pqmks->Fill(
float(
i), ccc1);
6333 pqmks->SetMarkerStyle(20);
6334 pqmks->SetMarkerSize(0.8);
6335 pqmks->GetYaxis()->SetLabelSize(0.04);
6336 pqmks->SetXTitle(
"Occupancy of channels w/o signal per LS \b");
6337 pqmks->SetMarkerColor(4);
6338 pqmks->SetLineColor(0);
6340 pqmks->SetMaximum(600.);
6341 pqmks->SetMinimum(200.);
6342 }
else if (sub == 1) {
6343 pqmks->SetMaximum(910.);
6344 pqmks->SetMinimum(10.);
6345 }
else if (sub == 2) {
6346 pqmks->SetMaximum(200.);
6347 pqmks->SetMinimum(50.);
6348 }
else if (sub == 3) {
6349 pqmks->SetMaximum(866.);
6350 pqmks->SetMinimum(856.);
6353 pqmks->Draw(
"Error");
6356 cHE->Print(
"NoSignalSummedAmplitudes_HB.png");
6358 cHE->Print(
"NoSignalSummedAmplitudes_HE.png");
6360 cHE->Print(
"NoSignalSummedAmplitudes_HO.png");
6362 cHE->Print(
"NoSignalSummedAmplitudes_HF.png");
6376 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>start Summed Amplitude Plots Maxx " << endl;
6377 TH1F *MaxxSummedAmplitudeHisto[4];
6378 MaxxSummedAmplitudeHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_maxxSUMAmpl_HB");
6379 MaxxSummedAmplitudeHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_maxxSUMAmpl_HE");
6380 MaxxSummedAmplitudeHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_maxxSUMAmpl_HO");
6381 MaxxSummedAmplitudeHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_maxxSUMAmpl_HF");
6382 TH1F *MaxxSummedAmplitudeOccupancyHisto[4];
6383 MaxxSummedAmplitudeOccupancyHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_maxxOCCUP_HB");
6384 MaxxSummedAmplitudeOccupancyHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_maxxOCCUP_HE");
6385 MaxxSummedAmplitudeOccupancyHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_maxxOCCUP_HO");
6386 MaxxSummedAmplitudeOccupancyHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_maxxOCCUP_HF");
6387 TH1F *SAmplitudeHisto[4];
6388 SAmplitudeHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_eventamplitude_HB");
6389 SAmplitudeHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_eventamplitude_HE");
6390 SAmplitudeHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_eventamplitude_HO");
6391 SAmplitudeHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_eventamplitude_HF");
6392 TH1F *OccupancyHisto[4];
6393 OccupancyHisto[0] = (TH1F *)
dir->FindObjectAny(
"h_eventoccupancy_HB");
6394 OccupancyHisto[1] = (TH1F *)
dir->FindObjectAny(
"h_eventoccupancy_HE");
6395 OccupancyHisto[2] = (TH1F *)
dir->FindObjectAny(
"h_eventoccupancy_HO");
6396 OccupancyHisto[3] = (TH1F *)
dir->FindObjectAny(
"h_eventoccupancy_HF");
6398 int countamplmaxHB = 0;
6399 int countamplmaxHE = 0;
6400 int countamplmaxHO = 0;
6401 int countamplmaxHF = 0;
6402 int countoccumaxHB = 0;
6403 int countoccumaxHE = 0;
6404 int countoccumaxHO = 0;
6405 int countoccumaxHF = 0;
6406 unsigned long int countamplHB = 0;
6407 unsigned long int countamplHE = 0;
6408 unsigned long int countamplHO = 0;
6409 unsigned long int countamplHF = 0;
6410 unsigned long int countoccuHB = 0;
6411 unsigned long int countoccuHE = 0;
6412 unsigned long int countoccuHO = 0;
6413 unsigned long int countoccuHF = 0;
6414 gStyle->SetOptStat(110000);
6415 for (
int sub = 0; sub < 4; sub++) {
6417 cFour->Divide(2, 2);
6420 TH1F *lpqxc =
new TH1F(
"lpqxc",
"", maxbins, 1., maxbins + 1.);
6421 for (
int i = 1;
i <= lpqxc->GetXaxis()->GetNbins();
i++) {
6423 if (MaxxSummedAmplitudeHisto[sub])
6424 ccc1 = MaxxSummedAmplitudeHisto[sub]->GetBinContent(
i);
6427 lpqxc->Fill(
float(
i), ccc1);
6428 if (sub == 0 && ccc1 > 60000.)
6430 if (sub == 1 && ccc1 > 60000.)
6432 if (sub == 2 && ccc1 > 150000.)
6434 if (sub == 3 && ccc1 > 22000.)
6438 lpqxc->SetMarkerStyle(20);
6439 lpqxc->SetMarkerSize(0.8);
6442 lpqxc->SetXTitle(
"HB: max SA over LS-events per LS \b");
6444 lpqxc->SetXTitle(
"HE: max SA over LS-events per LS \b");
6446 lpqxc->SetXTitle(
"HO: max SA over LS-events per LS \b");
6448 lpqxc->SetXTitle(
"HF: max SA over LS-events per LS \b");
6449 lpqxc->SetMarkerColor(2);
6450 lpqxc->SetLineColor(0);
6452 lpqxc->Draw(
"Error");
6456 TH1F *hpzlm =
new TH1F(
"hpzlm",
"", maxbins, 1., maxbins + 1.);
6457 for (
int i = 1;
i <= hpzlm->GetXaxis()->GetNbins();
i++) {
6459 if (MaxxSummedAmplitudeOccupancyHisto[sub])
6460 ccc1 = MaxxSummedAmplitudeOccupancyHisto[sub]->GetBinContent(
i);
6463 hpzlm->Fill(
float(
i), ccc1);
6464 if (sub == 0 && ccc1 > 2000.)
6466 if (sub == 1 && ccc1 > 1200.)
6468 if (sub == 2 && ccc1 > 2000.)
6470 if (sub == 3 && ccc1 > 860.)
6474 hpzlm->SetMarkerStyle(20);
6475 hpzlm->SetMarkerSize(0.8);
6478 hpzlm->SetXTitle(
"HB: max Occupancy over LS-events per LS \b");
6480 hpzlm->SetXTitle(
"HE: max Occupancy over LS-events per LS \b");
6482 hpzlm->SetXTitle(
"HO: max Occupancy over LS-events per LS \b");
6484 hpzlm->SetXTitle(
"HF: max Occupancy over LS-events per LS \b");
6485 hpzlm->SetMarkerColor(4);
6486 hpzlm->SetLineColor(0);
6489 hpzlm->SetMaximum(866.);
6490 hpzlm->SetMinimum(856.);
6492 hpzlm->Draw(
"Error");
6497 if (SAmplitudeHisto[sub]) {
6498 for (
int i = 1;
i <= SAmplitudeHisto[sub]->GetXaxis()->GetNbins();
i++) {
6503 if (sub == 0 &&
i * 800 > 60000.)
6504 countamplHB += SAmplitudeHisto[sub]->GetBinContent(
i);
6505 if (sub == 1 &&
i * 1000 > 60000.)
6506 countamplHE += SAmplitudeHisto[sub]->GetBinContent(
i);
6507 if (sub == 2 &&
i * 2500 > 150000.)
6508 countamplHO += SAmplitudeHisto[sub]->GetBinContent(
i);
6509 if (sub == 3 &&
i * 1400 > 22000.)
6510 countamplHF += SAmplitudeHisto[sub]->GetBinContent(
i);
6512 SAmplitudeHisto[sub]->SetMarkerStyle(20);
6513 SAmplitudeHisto[sub]->SetMarkerSize(0.8);
6515 SAmplitudeHisto[sub]->SetTitle(
"HB event Amplitude\b");
6517 SAmplitudeHisto[sub]->SetTitle(
"HE event Amplitude\b");
6519 SAmplitudeHisto[sub]->SetTitle(
"HO event Amplitude\b");
6521 SAmplitudeHisto[sub]->SetTitle(
"HF event Amplitude\b");
6523 SAmplitudeHisto[sub]->SetXTitle(
"event amplitude \b");
6524 SAmplitudeHisto[sub]->SetMarkerColor(2);
6525 SAmplitudeHisto[sub]->SetLineColor(2);
6526 SAmplitudeHisto[sub]->Draw(
"");
6531 if (OccupancyHisto[sub]) {
6532 for (
int i = 1;
i <= OccupancyHisto[sub]->GetXaxis()->GetNbins();
i++) {
6533 if (sub == 0 &&
i * 30 > 2000.)
6534 countoccuHB += OccupancyHisto[sub]->GetBinContent(
i);
6535 if (sub == 1 &&
i * 20 > 1200.)
6536 countoccuHE += OccupancyHisto[sub]->GetBinContent(
i);
6537 if (sub == 2 &&
i * 25 > 2000.)
6538 countoccuHO += OccupancyHisto[sub]->GetBinContent(
i);
6539 if (sub == 3 &&
i * 10 > 860.)
6540 countoccuHF += OccupancyHisto[sub]->GetBinContent(
i);
6542 OccupancyHisto[sub]->SetMarkerStyle(20);
6543 OccupancyHisto[sub]->SetMarkerSize(0.8);
6545 OccupancyHisto[sub]->SetTitle(
"HB event Occupancy\b");
6547 OccupancyHisto[sub]->SetTitle(
"HE event Occupancy\b");
6549 OccupancyHisto[sub]->SetTitle(
"HO event Occupancy\b");
6551 OccupancyHisto[sub]->SetTitle(
"HF event Occupancy\b");
6553 OccupancyHisto[sub]->SetXTitle(
"event occupancy \b");
6554 OccupancyHisto[sub]->SetMarkerColor(4);
6555 OccupancyHisto[sub]->SetLineColor(4);
6556 OccupancyHisto[sub]->Draw(
"");
6561 cFour->Print(
"MaxxSummedAmplitudes_HB.png");
6563 cFour->Print(
"MaxxSummedAmplitudes_HE.png");
6565 cFour->Print(
"MaxxSummedAmplitudes_HO.png");
6567 cFour->Print(
"MaxxSummedAmplitudes_HF.png");
6574 gStyle->SetOptStat(0);
6576 cout <<
">=>=>>=> countamplmaxHB= " << countamplmaxHB <<
" countamplmaxHE= " << countamplmaxHE
6577 <<
" countamplmaxHO= " << countamplmaxHO <<
" countamplmaxHF= " << countamplmaxHF << endl;
6578 cout <<
">=>=>>=> countoccumaxHB= " << countoccumaxHB <<
" countoccumaxHE= " << countoccumaxHE
6579 <<
" countoccumaxHO= " << countoccumaxHO <<
" countoccumaxHF= " << countoccumaxHF << endl;
6580 cout <<
">=>=>>=> countamplHB= " << countamplHB <<
" countamplHE= " << countamplHE <<
" countamplHO= " << countamplHO
6581 <<
" countamplHF= " << countamplHF << endl;
6582 cout <<
">=>=>>=> countoccuHB= " << countoccuHB <<
" countoccuHE= " << countoccuHE <<
" countoccuHO= " << countoccuHO
6583 <<
" countoccuHF= " << countoccuHF << endl;
6588 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>channelsummedA over depths " << endl;
6589 TH1F *ChannelDepthsummedAmplitudesPlots[4];
6590 ChannelDepthsummedAmplitudesPlots[0] = (TH1F *)
dir->FindObjectAny(
"h_sumamplitudechannel_HB");
6591 ChannelDepthsummedAmplitudesPlots[1] = (TH1F *)
dir->FindObjectAny(
"h_sumamplitudechannel_HE");
6592 ChannelDepthsummedAmplitudesPlots[2] = (TH1F *)
dir->FindObjectAny(
"h_sumamplitudechannel_HO");
6593 ChannelDepthsummedAmplitudesPlots[3] = (TH1F *)
dir->FindObjectAny(
"h_sumamplitudechannel_HF");
6595 if (ChannelDepthsummedAmplitudesPlots[0])
6596 litebdt[0] =
new TLine(80., 0.8, 80., ChannelDepthsummedAmplitudesPlots[0]->GetBinContent(4) + 100.);
6597 if (ChannelDepthsummedAmplitudesPlots[1])
6598 litebdt[1] =
new TLine(200., 0.8, 200., ChannelDepthsummedAmplitudesPlots[1]->GetBinContent(7) + 100.);
6599 if (ChannelDepthsummedAmplitudesPlots[2])
6600 litebdt[2] =
new TLine(1200., 0.8, 1200., ChannelDepthsummedAmplitudesPlots[2]->GetBinContent(17) + 100.);
6601 if (ChannelDepthsummedAmplitudesPlots[3])
6602 litebdt[3] =
new TLine(600., 0.8, 600., ChannelDepthsummedAmplitudesPlots[3]->GetBinContent(6) + 100.);
6604 gStyle->SetOptStat(110000);
6606 cFour1->Divide(2, 2);
6607 for (
int sub = 0; sub < 4; sub++) {
6617 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerStyle(20);
6618 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerSize(0.8);
6620 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HB channel Amplitudes\b");
6622 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HE channel Amplitudes\b");
6624 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HO channel Amplitudes\b");
6626 ChannelDepthsummedAmplitudesPlots[sub]->SetTitle(
"HF channel Amplitudes\b");
6628 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HB channel depths summed Amplitudes \b");
6630 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HE channel depths summed Amplitudes \b");
6632 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HO channel depths summed Amplitudes \b");
6634 ChannelDepthsummedAmplitudesPlots[sub]->SetXTitle(
"HF channel depths summed Amplitudes \b");
6635 ChannelDepthsummedAmplitudesPlots[sub]->SetMarkerColor(2);
6636 ChannelDepthsummedAmplitudesPlots[sub]->SetLineColor(2);
6637 ChannelDepthsummedAmplitudesPlots[sub]->Draw(
"");
6638 litebdt[sub]->SetLineColor(kBlue);
6639 litebdt[sub]->Draw(
"s");
6642 cFour1->Print(
"ChannelDepthsummedAmplitudes.png");
6644 gStyle->SetOptStat(0);
6649 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>2DAtaildepth " << endl;
6654 TH2F *DAtaildepth1[2];
6655 DAtaildepth1[0] = (TH2F *)
dir->FindObjectAny(
"h_2DAtaildepth1_HB");
6656 DAtaildepth1[1] = (TH2F *)
dir->FindObjectAny(
"h_2D0Ataildepth1_HB");
6658 if (!DAtaildepth1[0] || !DAtaildepth1[1]) {
6659 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 1" << endl;
6661 TH2F *tail1 = (TH2F *)DAtaildepth1[0]->Clone(
"tail1");
6662 tail1->Divide(DAtaildepth1[0], DAtaildepth1[1], 1, 1,
"B");
6667 tail1->SetMarkerStyle(20);
6668 tail1->SetMarkerSize(0.4);
6669 tail1->SetTitle(
"Amplitudes for tail-events (HBdepth1) \b");
6670 tail1->SetXTitle(
"#eta \b");
6671 tail1->SetYTitle(
"#phi \b");
6672 tail1->SetZTitle(
"2D <A> in the tail - HB Depth1 \b");
6673 tail1->SetMarkerColor(2);
6674 tail1->SetLineColor(2);
6675 tail1->Draw(
"COLZ");
6677 TH2F *DAtaildepth2[2];
6678 DAtaildepth2[0] = (TH2F *)
dir->FindObjectAny(
"h_2DAtaildepth2_HB");
6679 DAtaildepth2[1] = (TH2F *)
dir->FindObjectAny(
"h_2D0Ataildepth2_HB");
6681 if (!DAtaildepth2[0] || !DAtaildepth2[1]) {
6682 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>Ataildepth1_HB EMPTY histoes for 2DAtaildepth 2" << endl;
6684 TH2F *tail2 = (TH2F *)DAtaildepth2[0]->Clone(
"tail2");
6685 tail2->Divide(DAtaildepth2[0], DAtaildepth2[1], 1, 1,
"B");
6690 tail2->SetMarkerStyle(20);
6691 tail2->SetMarkerSize(0.4);
6692 tail2->SetTitle(
"Amplitudes for tail-events (HBdepth2) \b");
6693 tail2->SetXTitle(
"#eta \b");
6694 tail2->SetYTitle(
"#phi \b");
6695 tail2->SetZTitle(
"2D <A> in the tail - HB Depth2 \b");
6696 tail2->SetMarkerColor(2);
6697 tail2->SetLineColor(2);
6698 tail2->Draw(
"COLZ");
6702 cHB->Print(
"AtaildepthHB.png");
6708 cout <<
">>>>>>>>>>>>>>>>>>>>>>>>sumOccupancyHF " << endl;
6713 if (SummedAmplitudeOccupancyHisto[3]) {
6714 TH1F *ufrew1 = (TH1F *)SummedAmplitudeOccupancyHisto[3]->Clone(
"ufrew1");
6715 if (SummedAmplitudeOccupancyHisto[3] && NoSignalSummedAmplitudeOccupancyHisto[3])
6716 ufrew1->Add(SummedAmplitudeOccupancyHisto[3], NoSignalSummedAmplitudeOccupancyHisto[3], 1, 1);
6717 ufrew1->GetXaxis()->SetRangeUser(1., maxbins + 1.);
6719 ufrew1->SetMarkerStyle(20);
6720 ufrew1->SetMarkerSize(0.8);
6721 ufrew1->GetYaxis()->SetLabelSize(0.04);
6722 ufrew1->SetTitle(
"HF Occupancy vs LS\b");
6723 ufrew1->SetXTitle(
"average occupancy per LS HF\b");
6724 ufrew1->SetMarkerColor(4);
6725 ufrew1->SetLineColor(0);
6726 ufrew1->SetMaximum(866.);
6727 ufrew1->SetMinimum(856.);
6728 ufrew1->Draw(
"Error");
6730 cHB->Print(
"sumOccupancyHF.png");
6744 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =====================================================================" << endl;
6747 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> ==================================================" << endl;
6750 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6751 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6752 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6753 cout <<
">>>>>>>>>>>>>>>>>>>>>>>> =================================" << endl;
6755 cout <<
">>>>>>> START NOW CREATING OF HTML PAGES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
6762 for (
int sub = 1; sub <= 4; sub++) {
6767 htmlFile.open(
"HB_CapID.html");
6770 htmlFile.open(
"HE_CapID.html");
6773 htmlFile.open(
"HO_CapID.html");
6776 htmlFile.open(
"HF_CapID.html");
6781 htmlFile.open(
"HB_ADCampl.html");
6784 htmlFile.open(
"HE_ADCampl.html");
6787 htmlFile.open(
"HO_ADCampl.html");
6790 htmlFile.open(
"HF_ADCampl.html");
6795 htmlFile.open(
"HB_Width.html");
6798 htmlFile.open(
"HE_Width.html");
6801 htmlFile.open(
"HO_Width.html");
6804 htmlFile.open(
"HF_Width.html");
6809 htmlFile.open(
"HB_Ratio.html");
6812 htmlFile.open(
"HE_Ratio.html");
6815 htmlFile.open(
"HO_Ratio.html");
6818 htmlFile.open(
"HF_Ratio.html");
6823 htmlFile.open(
"HB_Tmean.html");
6826 htmlFile.open(
"HE_Tmean.html");
6829 htmlFile.open(
"HO_Tmean.html");
6832 htmlFile.open(
"HF_Tmean.html");
6837 htmlFile.open(
"HB_Tmax.html");
6840 htmlFile.open(
"HE_Tmax.html");
6843 htmlFile.open(
"HO_Tmax.html");
6846 htmlFile.open(
"HF_Tmax.html");
6850 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6851 htmlFile <<
"<head>" << std::endl;
6852 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6853 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
6854 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6855 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }" 6857 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6858 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; " 6859 "text-align: center;}" 6861 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6862 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6863 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6864 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
6865 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
6866 htmlFile <<
"</style>" << std::endl;
6867 htmlFile <<
"<body>" << std::endl;
6871 htmlFile <<
"<h1> Cap ID estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6873 htmlFile <<
"<h1> Cap ID estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6875 htmlFile <<
"<h1> Cap ID estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6877 htmlFile <<
"<h1> Cap ID estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6881 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6883 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6885 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6887 htmlFile <<
"<h1> Mean ADC Amplitude estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6891 htmlFile <<
"<h1> Width estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6893 htmlFile <<
"<h1> Width estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6895 htmlFile <<
"<h1> Width estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6897 htmlFile <<
"<h1> Width estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6901 htmlFile <<
"<h1> Ratio estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6903 htmlFile <<
"<h1> Ratio estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6905 htmlFile <<
"<h1> Ratio estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6907 htmlFile <<
"<h1> Ratio estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6911 htmlFile <<
"<h1> Mean bin timing estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6913 htmlFile <<
"<h1> Mean bin timing estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6915 htmlFile <<
"<h1> Mean bin timing estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6917 htmlFile <<
"<h1> Mean bin timing estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6921 htmlFile <<
"<h1> Maximum bin timing estimator for HB, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6923 htmlFile <<
"<h1> Maximum bin timing estimator for HE, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6925 htmlFile <<
"<h1> Maximum bin timing estimator for HO, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6927 htmlFile <<
"<h1> Maximum bin timing estimator for HF, RUN = " <<
runnumber <<
" </h1>" << std::endl;
6931 htmlFile <<
"<a name=\"Top\"></a>\n";
6932 htmlFile <<
"<b>Contents:<br>\n";
6933 htmlFile <<
"1. <a href=\"#Aij\">A_ij_LS (averaged over events in LS) </a><br>\n";
6934 htmlFile <<
"2. <a href=\"#OverflowAij\">A_ij_LS in overflow & underflow</a><br>\n";
6935 htmlFile <<
"3. <a href=\"#MainEstimator\">Main Estimator !!! </a><br>\n";
6936 htmlFile <<
"4. <a href=\"#ErrorA\">Error type A </a><br>\n";
6937 htmlFile <<
"5. <a href=\"#ErrorAaverage\">ErrorA cross check</a><br>\n";
6938 htmlFile <<
"6. <a href=\"#ErrorAoccupancy\">ErrorA occupancy plots</a><br>\n";
6939 htmlFile <<
"7. <a href=\"#ErrorB\">Error type B</a><br>\n";
6940 htmlFile <<
"8. <a href=\"#LSstatus\">Table of Average channel-Amplitude in Depthes over LSs </a><br>\n";
6941 htmlFile <<
"9. <a href=\"#RBXstatus\">RBX Status </a><br>\n";
6942 htmlFile <<
"10. <a href=\"#RBXPHItable\">Table of Average RBX-Amplitude in Phi over LSs </a><br>\n";
6943 htmlFile <<
"11. <a href=\"#RBXETAtable\">Table of Average RBX-Amplitude in Eta over LSs </a><br>\n";
6944 htmlFile <<
"12. <a href=\"#RBX3plots\">RBX A-Ratio to 1st LS: 3 plots </a><br>\n";
6950 htmlFile <<
"<br>" << std::endl;
6952 htmlFile <<
"<h2> 0. Rate of CapID failures over all events of Run </h2>" << std::endl;
6953 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
6955 htmlFile <<
" <img src=\"MapCapIdErrorHB.png\" />" << std::endl;
6957 htmlFile <<
" <img src=\"MapCapIdErrorHE.png\" />" << std::endl;
6959 htmlFile <<
" <img src=\"MapCapIdErrorHO.png\" />" << std::endl;
6961 htmlFile <<
" <img src=\"MapCapIdErrorHF.png\" />" << std::endl;
6964 htmlFile <<
"<a name=\"Aij\"></a>\n";
6966 htmlFile <<
"<h2> 1. Distribution of estimator averaged over events in LS, histogramed over all channels and " 6967 "all LSs (only few depthes shown as example) </h2>" 6971 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >" 6972 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6974 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >" 6975 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2), " << CutAb[sub][3]
6976 <<
" (Depth3).</h2>" << std::endl;
6978 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >" 6979 << CutAb[sub][1] <<
" (Depth4).</h2>" << std::endl;
6981 htmlFile <<
"<h2> 1. Average Nbcs for only LS containing events with abnormal number of Bad channels >" 6982 << CutAb[sub][1] <<
" (Depth1), " << CutAb[sub][2] <<
" (Depth2).</h2>" << std::endl;
6986 htmlFile <<
"<h3> see Overflow and Underflow </h3>" << std::endl;
6988 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
6992 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HB.png\" />" << std::endl;
6994 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HE.png\" />" << std::endl;
6996 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HO.png\" />" << std::endl;
6998 htmlFile <<
" <img src=\"Hist_CAPID_Abnorm_HF.png\" />" << std::endl;
7002 htmlFile <<
" <img src=\"H_ADCamplHB.png\" />" << std::endl;
7004 htmlFile <<
" <img src=\"H_ADCamplHE.png\" />" << std::endl;
7006 htmlFile <<
" <img src=\"H_ADCamplHO.png\" />" << std::endl;
7008 htmlFile <<
" <img src=\"H_ADCamplHF.png\" />" << std::endl;
7012 htmlFile <<
" <img src=\"H_WidthHB.png\" />" << std::endl;
7014 htmlFile <<
" <img src=\"H_WidthHE.png\" />" << std::endl;
7016 htmlFile <<
" <img src=\"H_WidthHO.png\" />" << std::endl;
7018 htmlFile <<
" <img src=\"H_WidthHF.png\" />" << std::endl;
7022 htmlFile <<
" <img src=\"H_RatioHB.png\" />" << std::endl;
7024 htmlFile <<
" <img src=\"H_RatioHE.png\" />" << std::endl;
7026 htmlFile <<
" <img src=\"H_RatioHO.png\" />" << std::endl;
7028 htmlFile <<
" <img src=\"H_RatioHF.png\" />" << std::endl;
7032 htmlFile <<
" <img src=\"H_TmeanHB.png\" />" << std::endl;
7034 htmlFile <<
" <img src=\"H_TmeanHE.png\" />" << std::endl;
7036 htmlFile <<
" <img src=\"H_TmeanHO.png\" />" << std::endl;
7038 htmlFile <<
" <img src=\"H_TmeanHF.png\" />" << std::endl;
7042 htmlFile <<
" <img src=\"H_TmaxHB.png\" />" << std::endl;
7044 htmlFile <<
" <img src=\"H_TmaxHE.png\" />" << std::endl;
7046 htmlFile <<
" <img src=\"H_TmaxHO.png\" />" << std::endl;
7048 htmlFile <<
" <img src=\"H_TmaxHF.png\" />" << std::endl;
7050 htmlFile <<
"<br>" << std::endl;
7052 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7055 htmlFile <<
"<h2> 2a. Number of bad channels per event distribution in Run</h2>" << std::endl;
7057 htmlFile <<
"<h3> Legends: dots correspond to BAD LS candidates. </h3>" << std::endl;
7060 htmlFile <<
" <img src=\"HistNBadChsHB.png\" />" << std::endl;
7062 htmlFile <<
" <img src=\"HistNBadChsHE.png\" />" << std::endl;
7064 htmlFile <<
" <img src=\"HistNBadChsHO.png\" />" << std::endl;
7066 htmlFile <<
" <img src=\"HistNBadChsHF.png\" />" << std::endl;
7070 htmlFile <<
"<a name=\"OverflowAij\"></a>\n";
7072 htmlFile <<
"<h2> 2. Estimator averaged over all events in the RUN for entries in overflow and underflow of " 7073 "corresponding histogram above (only few depthes shown as example) </h2>" 7077 htmlFile <<
"<h2> 2b. Averaged number of bad channels for each LS </h2>" << std::endl;
7081 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">" 7082 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7083 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7085 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), " 7086 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3) correspond BAD LS.</h3>" 7089 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7090 <<
" (Depth4) correspond BAD LS.</h3>" << std::endl;
7092 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), " 7093 << Cut0[
test][sub][2] <<
" (Depth2) correspond BAD LS.</h3>" << std::endl;
7097 htmlFile <<
" <img src=\"HistNBCMNHB.png\" />" << std::endl;
7099 htmlFile <<
" <img src=\"HistNBCMNHE.png\" />" << std::endl;
7101 htmlFile <<
" <img src=\"HistNBCMNHO.png\" />" << std::endl;
7103 htmlFile <<
" <img src=\"HistNBCMNHF.png\" />" << std::endl;
7107 htmlFile <<
" <img src=\"MapADCamplHB.png\" />" << std::endl;
7109 htmlFile <<
" <img src=\"MapADCamplHE.png\" />" << std::endl;
7111 htmlFile <<
" <img src=\"MapADCamplHO.png\" />" << std::endl;
7113 htmlFile <<
" <img src=\"MapADCamplHF.png\" />" << std::endl;
7117 htmlFile <<
" <img src=\"MapWidthHB.png\" />" << std::endl;
7119 htmlFile <<
" <img src=\"MapWidthHE.png\" />" << std::endl;
7121 htmlFile <<
" <img src=\"MapWidthHO.png\" />" << std::endl;
7123 htmlFile <<
" <img src=\"MapWidthHF.png\" />" << std::endl;
7127 htmlFile <<
" <img src=\"MapRatioHB.png\" />" << std::endl;
7129 htmlFile <<
" <img src=\"MapRatioHE.png\" />" << std::endl;
7131 htmlFile <<
" <img src=\"MapRatioHO.png\" />" << std::endl;
7133 htmlFile <<
" <img src=\"MapRatioHF.png\" />" << std::endl;
7137 htmlFile <<
" <img src=\"MapTmeanHB.png\" />" << std::endl;
7139 htmlFile <<
" <img src=\"MapTmeanHE.png\" />" << std::endl;
7141 htmlFile <<
" <img src=\"MapTmeanHO.png\" />" << std::endl;
7143 htmlFile <<
" <img src=\"MapTmeanHF.png\" />" << std::endl;
7147 htmlFile <<
" <img src=\"MapTmaxHB.png\" />" << std::endl;
7149 htmlFile <<
" <img src=\"MapTmaxHE.png\" />" << std::endl;
7151 htmlFile <<
" <img src=\"MapTmaxHO.png\" />" << std::endl;
7153 htmlFile <<
" <img src=\"MapTmaxHF.png\" />" << std::endl;
7155 htmlFile <<
"<br>" << std::endl;
7157 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7160 htmlFile <<
"<a name=\"MainEstimator\"></a>\n";
7163 <<
"<h2> 3. Distribution of estimator averaged over events in LS and over all channels for each LS </h2>" 7167 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7168 <<
" (Depth2) in each LS.</h2>" << std::endl;
7170 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7171 <<
" (Depth2), " << CutPo[sub][3] <<
" (Depth3) in each LS.</h2>" << std::endl;
7173 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][4] <<
" (Depth4) in each LS.</h2>" 7176 htmlFile <<
"<h2> 3. Portion of events with Nbcs>" << CutPo[sub][1] <<
" (Depth1), " << CutPo[sub][2]
7177 <<
" (Depth2) in each LS.</h2>" << std::endl;
7178 htmlFile <<
"<h3> Legend: dots correspond to BAD LS candidates.</h3>" << std::endl;
7182 htmlFile <<
"<h3> Legends: dots selected with following cuts: <td class=\"s6\" align=\"center\">" 7183 << Cut0[
test][sub][1] <<
" (Depth1), " << Cut0[
test][sub][2]
7184 <<
" (Depth2) correspond BAD LS.</td></h3>" << std::endl;
7186 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), " 7187 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7188 <<
" (Depth4), " << Cut0[
test][sub][5] <<
" (Depth5), " << Cut0[
test][sub][6] <<
" (Depth6), " 7189 << Cut0[
test][sub][7] <<
" (Depth7) correspond BAD LS. </h3>" << std::endl;
7191 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][4]
7192 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7194 htmlFile <<
"<h3> Legends: dots selected with following cuts: " << Cut0[
test][sub][1] <<
" (Depth1), " 7195 << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " << Cut0[
test][sub][4]
7196 <<
" (Depth4) correspond BAD LS. </h3>" << std::endl;
7200 htmlFile <<
" <img src=\"HistPortHB.png\" />" << std::endl;
7202 htmlFile <<
" <img src=\"HistPortHE.png\" />" << std::endl;
7204 htmlFile <<
" <img src=\"HistPortHO.png\" />" << std::endl;
7206 htmlFile <<
" <img src=\"HistPortHF.png\" />" << std::endl;
7210 htmlFile <<
" <img src=\"HistADCamplHB.png\" />" << std::endl;
7212 htmlFile <<
" <img src=\"HistADCamplHE.png\" />" << std::endl;
7214 htmlFile <<
" <img src=\"HistADCamplHO.png\" />" << std::endl;
7216 htmlFile <<
" <img src=\"HistADCamplHF.png\" />" << std::endl;
7220 htmlFile <<
" <img src=\"HistWidthHB.png\" />" << std::endl;
7222 htmlFile <<
" <img src=\"HistWidthHE.png\" />" << std::endl;
7224 htmlFile <<
" <img src=\"HistWidthHO.png\" />" << std::endl;
7226 htmlFile <<
" <img src=\"HistWidthHF.png\" />" << std::endl;
7230 htmlFile <<
" <img src=\"HistRatioHB.png\" />" << std::endl;
7232 htmlFile <<
" <img src=\"HistRatioHE.png\" />" << std::endl;
7234 htmlFile <<
" <img src=\"HistRatioHO.png\" />" << std::endl;
7236 htmlFile <<
" <img src=\"HistRatioHF.png\" />" << std::endl;
7240 htmlFile <<
" <img src=\"HistTmeanHB.png\" />" << std::endl;
7242 htmlFile <<
" <img src=\"HistTmeanHE.png\" />" << std::endl;
7244 htmlFile <<
" <img src=\"HistTmeanHO.png\" />" << std::endl;
7246 htmlFile <<
" <img src=\"HistTmeanHF.png\" />" << std::endl;
7250 htmlFile <<
" <img src=\"HistTmaxHB.png\" />" << std::endl;
7252 htmlFile <<
" <img src=\"HistTmaxHE.png\" />" << std::endl;
7254 htmlFile <<
" <img src=\"HistTmaxHO.png\" />" << std::endl;
7256 htmlFile <<
" <img src=\"HistTmaxHF.png\" />" << std::endl;
7258 htmlFile <<
"<br>" << std::endl;
7261 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7262 htmlFile <<
"<a name=\"ErrorA\"></a>\n";
7263 htmlFile <<
"<h2> 4. Error type A</h2>\n";
7264 htmlFile <<
"<h3> note: no sence to see plots of this item if max difference is too large(due to very high A " 7265 "of some channels)</h3>\n";
7266 htmlFile <<
"<br>\n";
7270 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.6 (p-p collisions) </h3>\n";
7271 htmlFile <<
" <img src=\"HistErrA_HB.png\" />\n";
7272 htmlFile <<
"<br>\n";
7273 if (flagErrAB_HB[0] == -1)
7274 htmlFile <<
"<h3>test was not possible</h3>\n";
7275 else if (flagErrAB_HB[0] == 0)
7276 htmlFile <<
"<h3> Fine:NoErrorA_HB (Mean of max difference " << avedelta_HB
7277 <<
" is within 0.1-1.6) </h3>\n";
7278 else if (flagErrAB_HB[0] == 1)
7279 htmlFile <<
"<<h3> ErrorA_HB is available once Mean of max difference " << avedelta_HB
7280 <<
" is out 0.1-1.6 (p-p collisions)</font></h3>\n";
7282 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7283 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7285 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7287 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 2 depthes shown as example) " 7289 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >25), " 7290 "3) with channel Amplitude (A<35); </h2>\n";
7291 htmlFile <<
" <img src=\"ChkErrA_HB1.png\" /><br><br>\n";
7292 htmlFile <<
" <img src=\"ChkErrA_HB2.png\" /><br>\n";
7293 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7295 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7296 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 25 " 7297 "(HBM:neg.eta;HBP:pos.eta) </h2>\n";
7298 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7299 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.6 at least for HF- or " 7301 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.6 and is the same " 7302 "for HF- and HF+ </h2>\n";
7303 htmlFile <<
" <img src=\"OccPlots_HB.png\" /><br><br>\n";
7304 htmlFile <<
"<br>\n";
7305 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7307 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7308 htmlFile <<
"<h2> 7. Error type B (only 2 depthes shown as example) \n";
7309 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7310 htmlFile <<
" <img src=\"HistErrB_HB_1.png\" />\n<br>\n";
7311 htmlFile <<
" <img src=\"HistErrB_HB_2.png\" />\n<br>\n";
7312 htmlFile <<
"<br>\n";
7313 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HB <<
" LS </h3>\n";
7314 htmlFile <<
"<br>\n";
7319 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.2-1.8 (p-p collisions) </h3>\n";
7320 htmlFile <<
" <img src=\"HistErrA_HE.png\" />\n";
7321 htmlFile <<
"<br>\n";
7322 if (flagErrAB_HE[0] == -1)
7323 htmlFile <<
"<h3>test was not possible</h3>\n";
7324 else if (flagErrAB_HE[0] == 0)
7325 htmlFile <<
"<h3> Fine:NoErrorA_HE (Mean of max difference " << avedelta_HE
7326 <<
" is within 0.2-1.8) </h3>\n";
7327 else if (flagErrAB_HE[0] == 1)
7328 htmlFile <<
"<<h3> ErrorA_HE is available once Mean of max difference " << avedelta_HE
7329 <<
" is out 0.2-1.8 (p-p collisions)</font></h3>\n";
7331 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7332 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7334 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7336 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 3 depthes shown as example) " 7338 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> " 7339 ">1000.fC), 3) with channel Amplitude (A<500fC); </h2>\n";
7340 htmlFile <<
" <img src=\"ChkErrA_HE1.png\" /><br><br>\n";
7341 htmlFile <<
" <img src=\"ChkErrA_HE2.png\" /><br>\n";
7342 htmlFile <<
" <img src=\"ChkErrA_HE3.png\" /><br>\n";
7343 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7345 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7346 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 35 " 7347 "(HEM:neg.eta;HEP:pos.eta) </h2>\n";
7348 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7349 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.3 at least for HF- or " 7351 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.3 and is the same " 7352 "for HF- and HF+ </h2>\n";
7353 htmlFile <<
" <img src=\"OccPlots_HE.png\" /><br><br>\n";
7354 htmlFile <<
"<br>\n";
7355 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7357 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7358 htmlFile <<
"<h2> 7. Error type B (only 3 depthes shown as example) \n";
7359 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 8.</h3>\n";
7360 htmlFile <<
" <img src=\"HistErrB_HE_1.png\" />\n<br>\n";
7361 htmlFile <<
" <img src=\"HistErrB_HE_2.png\" />\n<br>\n";
7362 htmlFile <<
" <img src=\"HistErrB_HE_3.png\" />\n<br>\n";
7363 htmlFile <<
"<br>\n";
7364 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HE <<
" LS </h3>\n";
7365 htmlFile <<
"<br>\n";
7370 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.1-1.5 (p-p collisions) </h3>\n";
7371 htmlFile <<
" <img src=\"HistErrA_HO.png\" />\n";
7372 htmlFile <<
"<br>\n";
7373 if (flagErrAB_HO[0] == -1)
7374 htmlFile <<
"<h3>test was not possible</h3>\n";
7375 else if (flagErrAB_HO[0] == 0)
7376 htmlFile <<
"<h3> Fine:NoErrorA_HO (Mean of max difference " << avedelta_HO
7377 <<
" is within 0.1-1.5) </h3>\n";
7378 else if (flagErrAB_HO[0] == 1)
7379 htmlFile <<
"<<h3> ErrorA_HO is available once Mean of max difference " << avedelta_HO
7380 <<
" is out 0.1-1.5 (p-p collisions)</font></h3>\n";
7382 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7383 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7385 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7387 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels </h2>\n";
7388 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >80), " 7389 "3) with channel Amplitude (A<100); </h2>\n";
7391 htmlFile <<
" <img src=\"ChkErrA_HO4.png\" /><br><br>\n";
7392 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7394 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7395 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 80 " 7396 "(HOM:neg.eta;HOP:pos.eta) </h2>\n";
7397 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7398 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or " 7400 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same " 7401 "for HF- and HF+ </h2>\n";
7402 htmlFile <<
" <img src=\"OccPlots_HO.png\" /><br><br>\n";
7403 htmlFile <<
"<br>\n";
7404 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7406 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7407 htmlFile <<
"<h2> 7. Error type B\n";
7408 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 10. </h3>\n";
7409 htmlFile <<
" <img src=\"HistErrB_HO_4.png\" />\n<br>\n";
7410 htmlFile <<
"<br>\n";
7411 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HO <<
" LS </h3>\n";
7412 htmlFile <<
"<br>\n";
7418 htmlFile <<
"<h3>Mean of max difference between dependencies to be within: 0.8-2.4 (p-p collisions) </h3>\n";
7419 htmlFile <<
" <img src=\"HistErrA_HF.png\" />\n";
7420 htmlFile <<
"<br>\n";
7421 if (flagErrAB_HF[0] == -1)
7422 htmlFile <<
"<h3>test was not possible</h3>\n";
7423 else if (flagErrAB_HF[0] == 0)
7424 htmlFile <<
"<h3> Fine:NoErrorA_HF (Mean of max difference " << avedelta_HF
7425 <<
" is within 0.8-2.4) </h3>\n";
7426 else if (flagErrAB_HF[0] == 1)
7427 htmlFile <<
"<<h3> ErrorA_HF is available once Mean of max difference " << avedelta_HF
7428 <<
" is out 0.8-2.4 (p-p collisions)</font></h3>\n";
7430 htmlFile <<
"<h3>auto-interpretation is not available</h3>\n";
7431 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7433 htmlFile <<
"<a name=\"ErrorAaverage\"></a>\n";
7435 htmlFile <<
"<h2> 5. Error type A cross check: see 2D pattern of channels (only 2 depthes shown as example) " 7437 htmlFile <<
"<h2> 1) with average channel Amplitudes(No cut), 2) with average channel Amplitudes(<A> >20), " 7438 "3) with channel Amplitude (A<20); </h2>\n";
7440 htmlFile <<
" <img src=\"ChkErrA_HF1.png\" /><br><br>\n";
7441 htmlFile <<
" <img src=\"ChkErrA_HF2.png\" /><br>\n";
7442 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7444 htmlFile <<
"<a name=\"ErrorAoccupancy\"></a>\n";
7445 htmlFile <<
"<h2> 6. Error type A: min/ave ratio for occupancy distributions with Amplitude bigger 20 " 7446 "(HFM:neg.eta;HFP:pos.eta) </h2>\n";
7447 htmlFile <<
"<h2> FOR CROSS-CHECK OLNY !!!</h2>\n";
7448 htmlFile <<
"<h2> TO IDENTIFY A-type errors: for most of LSs the ratio to be lower 0.8 at least for HF- or " 7450 htmlFile <<
"<h2> For runs without A-type errors: for most of LSs the ratio is higher 0.8 and is the same " 7451 "for HF- and HF+ </h2>\n";
7452 htmlFile <<
" <img src=\"OccPlots_HF.png\" /><br><br>\n";
7453 htmlFile <<
"<br>\n";
7454 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7456 htmlFile <<
"<a name=\"ErrorB\"></a>\n";
7457 htmlFile <<
"<h2> 7. Error type B (only 2 depthes shown as example) \n";
7458 htmlFile <<
"<h3> ErrorB identification: digi-collection size != 4. </h3>\n";
7459 htmlFile <<
" <img src=\"HistErrB_HF_1.png\" />\n<br>\n";
7460 htmlFile <<
" <img src=\"HistErrB_HF_2.png\" />\n<br>\n";
7461 htmlFile <<
"<br>\n";
7462 htmlFile <<
"<h3> if Error type B is available, it start from: " << LSofFirstErrB_HF <<
" LS </h3>\n";
7463 htmlFile <<
"<br>\n";
7465 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7470 htmlFile <<
"<a name=\"LSstatus\"></a>\n";
7473 htmlFile <<
"<h2> 8.Lumisection Status for HB: </h2>" << std::endl;
7475 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7476 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " 7477 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7480 htmlFile <<
"<h2> 8.Lumisection Status for HE: </h2>" << std::endl;
7481 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7482 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3)," 7483 << Cut0[
test][sub][4] <<
" (Depth4)," << Cut0[
test][sub][5] <<
" (Depth5)," << Cut0[
test][sub][6]
7484 <<
" (Depth6)," << Cut0[
test][sub][7] <<
" (Depth7). </h3>" << std::endl;
7488 htmlFile <<
"<h2> 8.Lumisection Status for HO: </h2>" << std::endl;
7489 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][4]
7490 <<
" (Depth4). </h3>" << std::endl;
7493 htmlFile <<
"<h2> 8.Lumisection Status for HF: </h2>" << std::endl;
7494 htmlFile <<
"<h3> Legends: Red boxes correspond BAD LS selected with following cuts: " << Cut0[
test][sub][1]
7495 <<
" (Depth1), " << Cut0[
test][sub][2] <<
" (Depth2), " << Cut0[
test][sub][3] <<
" (Depth3), " 7496 << Cut0[
test][sub][4] <<
" (Depth4), </h3>" << std::endl;
7498 htmlFile <<
"<br>" << std::endl;
7499 htmlFile <<
"<table>" << std::endl;
7501 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7503 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7506 int kkkkkkmax = k_max[sub];
7507 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
7508 kkkkkkmax = k_maxupgrade[sub];
7513 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7514 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > Depth " <<
k <<
" </td>" << std::endl;
7516 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7517 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > Depth " <<
k <<
" </td>" << std::endl;
7519 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7520 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > Depth " <<
k <<
" </td>" << std::endl;
7522 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7523 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > Depth " <<
k <<
" </td>" << std::endl;
7525 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7526 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > Depth " <<
k <<
" </td>" << std::endl;
7528 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
7529 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > Depth " <<
k <<
" </td>" << std::endl;
7530 htmlFile <<
"</tr>" << std::endl;
7534 for (
int i = 1;
i <= MaxLum000000;
i++) {
7536 raw_class =
"<td class=\"s2\" align=\"center\">";
7538 raw_class =
"<td class=\"s3\" align=\"center\">";
7539 htmlFile <<
"<tr>" << std::endl;
7540 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7542 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7543 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
7544 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k]) {
7546 htmlFile <<
"<td class=\"s6\" align=\"center\">" 7547 <<
int(HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7549 htmlFile <<
"<td class=\"s6\" align=\"center\">" << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i))
7550 <<
"</td>" << std::endl;
7553 htmlFile << raw_class <<
int(HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7555 htmlFile << raw_class << (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)) <<
"</td>" << std::endl;
7558 htmlFile <<
"</tr>" << std::endl;
7561 htmlFile <<
"</table>" << std::endl;
7563 htmlFile <<
"<br>" << std::endl;
7565 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7566 htmlFile <<
"<br>" << std::endl;
7573 htmlFile <<
"<a name=\"RBXstatus\"></a>\n";
7577 htmlFile <<
"<h2> 9. Average Amplitudes of RBX for HB: </h2>" << std::endl;
7578 htmlFile <<
"<h3> where </h3>" << std::endl;
7579 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 " 7580 "(Positive direction); </h3>" 7582 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7584 htmlFile <<
" <img src=\"RBX-HB-2Dplot.png\" />\n";
7585 htmlFile <<
"<br>\n";
7587 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HB: </h2>" << std::endl;
7588 htmlFile <<
" <img src=\"RBX-HB-1Dplot.png\" />\n";
7589 htmlFile <<
"<br>\n";
7591 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HB: </h2>" << std::endl;
7592 htmlFile <<
" <img src=\"RBX-HB-11Dplot.png\" />\n";
7593 htmlFile <<
"<br>\n";
7595 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7599 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HE: </h2>" << std::endl;
7600 htmlFile <<
"<h3> where </h3>" << std::endl;
7601 htmlFile <<
"<h3> jeta = 3,4,5, 6, 7 (Negative direction); ............&& ............ jeta = " 7602 "14,15,16,17,18 (Positive direction); </h3>" 7604 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7606 htmlFile <<
" <img src=\"RBX-HE-2Dplot.png\" />\n";
7607 htmlFile <<
"<br>\n";
7609 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HE: </h2>" << std::endl;
7610 htmlFile <<
" <img src=\"RBX-HE-1Dplot.png\" />\n";
7611 htmlFile <<
"<br>\n";
7613 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HE: </h2>" << std::endl;
7614 htmlFile <<
" <img src=\"RBX-HE-11Dplot.png\" />\n";
7615 htmlFile <<
"<br>\n";
7617 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7621 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HO: </h2>" << std::endl;
7622 htmlFile <<
"<h3> where </h3>" << std::endl;
7623 htmlFile <<
"<h3> jeta = 7,8,9,10 (Negative direction); ............&& ............ jeta = 11,12,13,14 " 7624 "(Positive direction); </h3>" 7626 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7628 htmlFile <<
" <img src=\"RBX-HO-2Dplot.png\" />\n";
7629 htmlFile <<
"<br>\n";
7631 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HO: </h2>" << std::endl;
7632 htmlFile <<
" <img src=\"RBX-HO-1Dplot.png\" />\n";
7633 htmlFile <<
"<br>\n";
7635 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HO: </h2>" << std::endl;
7636 htmlFile <<
" <img src=\"RBX-HO-11Dplot.png\" />\n";
7637 htmlFile <<
"<br>\n";
7639 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7643 htmlFile <<
"<h2> 9. Averaged Amplitudes of RBX for HF: </h2>" << std::endl;
7644 htmlFile <<
"<h3> where </h3>" << std::endl;
7645 htmlFile <<
"<h3> jeta = 0,1,2, 3 (Negative direction); ............&& ............ jeta = 18,19,20,21 " 7646 "(Positive direction); </h3>" 7648 htmlFile <<
"<h3> jphi = 0, 1,..... 16, 17 </h3>" << std::endl;
7650 htmlFile <<
" <img src=\"RBX-HF-2Dplot.png\" />\n";
7651 htmlFile <<
"<br>\n";
7653 htmlFile <<
"<h2> Average Amplitudes of RBX-PHI for HF: </h2>" << std::endl;
7654 htmlFile <<
" <img src=\"RBX-HF-1Dplot.png\" />\n";
7655 htmlFile <<
"<br>\n";
7657 htmlFile <<
"<h2> Average Amplitudes of RBX-ETA for HF: </h2>" << std::endl;
7658 htmlFile <<
" <img src=\"RBX-HF-11Dplot.png\" />\n";
7659 htmlFile <<
"<br>\n";
7661 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7663 htmlFile <<
"<br>" << std::endl;
7668 htmlFile <<
"<a name=\"RBXPHItable\"></a>\n";
7672 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HB: </h2>" << std::endl;
7674 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7675 << cutA_HB << std::endl;
7679 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HE: </h2>" << std::endl;
7681 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7682 << cutA_HE << std::endl;
7686 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HO: </h2>" << std::endl;
7688 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7689 << cutA_HO << std::endl;
7693 htmlFile <<
"<h2> 10. Average RBX-Amplitude in Phi over LSs for HF: </h2>" << std::endl;
7695 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7696 << cutA_HF << std::endl;
7700 htmlFile <<
"<br>" << std::endl;
7701 htmlFile <<
"<table>" << std::endl;
7703 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7705 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7709 for (
int k = 0;
k < njphi;
k++)
7710 htmlFile <<
"<td class=\"s1\" align=\"center\"> iPHI " <<
k <<
" </td>" << std::endl;
7711 htmlFile <<
"</tr>" << std::endl;
7716 for (
int i = 1;
i <= MaxLum;
i++) {
7718 raw_class =
"<td class=\"s2\" align=\"center\">";
7720 raw_class =
"<td class=\"s3\" align=\"center\">";
7721 htmlFile <<
"<tr>" << std::endl;
7722 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7724 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7727 for (
int k = 0;
k < njphi;
k++) {
7729 if (
int(alexhb[
k][
i - 1]) > cutA_ALL) {
7730 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7732 htmlFile << raw_class <<
int(alexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7736 if (
int(alexhe[
k][
i - 1]) > cutA_ALL) {
7737 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7739 htmlFile << raw_class <<
int(alexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7743 if (
int(alexho[
k][
i - 1]) > cutA_ALL) {
7744 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7746 htmlFile << raw_class <<
int(alexho[
k][
i - 1]) <<
"</td>" << std::endl;
7750 if (
int(alexhf[
k][
i - 1]) > cutA_ALL) {
7751 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7753 htmlFile << raw_class <<
int(alexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7758 htmlFile <<
"</tr>" << std::endl;
7761 htmlFile <<
"</table>" << std::endl;
7762 htmlFile <<
"<br>" << std::endl;
7763 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7764 htmlFile <<
"<br>" << std::endl;
7767 htmlFile <<
"<a name=\"RBXETAtable\"></a>\n";
7771 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HB: </h2>" << std::endl;
7773 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7774 << cutB_HB << std::endl;
7778 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HE: </h2>" << std::endl;
7780 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7781 << cutB_HE << std::endl;
7785 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HO: </h2>" << std::endl;
7787 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7788 << cutB_HO << std::endl;
7792 htmlFile <<
"<h2> 11. Average RBX-Amplitude in Eta over LSs for HF: </h2>" << std::endl;
7794 <<
"<h3> Legends: Red boxes correspond BAD LS selected with cut = <td class=\"s6\" align=\"center\">" 7795 << cutB_HF << std::endl;
7799 htmlFile <<
"<br>" << std::endl;
7800 htmlFile <<
"<table>" << std::endl;
7802 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
7804 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
7808 for (
int k = 0;
k < njeta;
k++)
7809 htmlFile <<
"<td class=\"s1\" align=\"center\"> iETA " <<
k <<
" </td>" << std::endl;
7810 htmlFile <<
"</tr>" << std::endl;
7815 for (
int i = 1;
i <= MaxLum;
i++) {
7817 raw_class =
"<td class=\"s2\" align=\"center\">";
7819 raw_class =
"<td class=\"s3\" align=\"center\">";
7820 htmlFile <<
"<tr>" << std::endl;
7821 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
7823 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
7826 for (
int k = 0;
k < njeta;
k++) {
7828 if (
int(blexhb[
k][
i - 1]) > cutB_ALL) {
7829 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7831 htmlFile << raw_class <<
int(blexhb[
k][
i - 1]) <<
"</td>" << std::endl;
7835 if (
int(blexhe[
k][
i - 1]) > cutB_ALL) {
7836 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7838 htmlFile << raw_class <<
int(blexhe[
k][
i - 1]) <<
"</td>" << std::endl;
7842 if (
int(blexho[
k][
i - 1]) > cutB_ALL) {
7843 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7845 htmlFile << raw_class <<
int(blexho[
k][
i - 1]) <<
"</td>" << std::endl;
7849 if (
int(blexhf[
k][
i - 1]) > cutB_ALL) {
7850 htmlFile <<
"<td class=\"s6\" align=\"center\">" <<
int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7852 htmlFile << raw_class <<
int(blexhf[
k][
i - 1]) <<
"</td>" << std::endl;
7857 htmlFile <<
"</tr>" << std::endl;
7860 htmlFile <<
"</table>" << std::endl;
7861 htmlFile <<
"<br>" << std::endl;
7862 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7863 htmlFile <<
"<br>" << std::endl;
7868 htmlFile <<
"<a name=\"RBX3plots\"></a>\n";
7869 htmlFile <<
"<br>\n";
7870 htmlFile <<
"<h2> 12. (Rij) - RBX-amplitudes normilized on reference LS (~=1st) </h2>" << std::endl;
7871 htmlFile <<
"<h3> ( Rji . . is ratio of . . . . A_j_i . . to . . A_j_ref . . . . for . . j-RBX . . and . . " 7875 htmlFile <<
"<br>\n";
7876 htmlFile <<
"<h2> . . . . . . . . . . . . . . 1) . average Ri vs iLS:. . . . . . . . . . . . . . . . . . . . . " 7877 ". . 2) . average Rj shown for Rij outside meanValue range either 0.95-1.05 or 3RMS: . . . . . . . " 7878 ". . . . . . . . . . . . . . . . . . 3) . Rij: </h2>" 7880 htmlFile <<
"<br>\n";
7882 htmlFile <<
" <img src=\"RBX-HB-3plots.png\" />\n";
7885 htmlFile <<
" <img src=\"RBX-HE-3plots.png\" />\n";
7888 htmlFile <<
" <img src=\"RBX-HO-3plots.png\" />\n";
7891 htmlFile <<
" <img src=\"RBX-HF-3plots.png\" />\n";
7893 htmlFile <<
"<br>\n";
7895 htmlFile <<
"<br>\n";
7896 htmlFile <<
"<h2> . 4). average Rj shown for Rij outside meanValue range 0.80-1.20: . . . . . . . .5) . " 7897 "average Rj shown for Rij outside meanValue range 0.70-1.30: . . . . . . . .6). average Rj shown " 7898 "for Rij outside meanValue range 0.60-1.40: </h2>" 7900 htmlFile <<
"<br>\n";
7902 htmlFile <<
" <img src=\"RBX-HB-3plotsmore.png\" />\n";
7905 htmlFile <<
" <img src=\"RBX-HE-3plotsmore.png\" />\n";
7908 htmlFile <<
" <img src=\"RBX-HO-3plotsmore.png\" />\n";
7911 htmlFile <<
" <img src=\"RBX-HF-3plotsmore.png\" />\n";
7913 htmlFile <<
"<br>\n";
7915 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
7937 htmlFile.open(
"CapID_GL.html");
7939 htmlFile.open(
"ADCampl_GL.html");
7941 htmlFile.open(
"Width_GL.html");
7943 htmlFile.open(
"Ratio_GL.html");
7945 htmlFile.open(
"Tmean_GL.html");
7947 htmlFile.open(
"Tmax_GL.html");
7951 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
7952 htmlFile <<
"<head>" << std::endl;
7953 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
7954 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
7955 htmlFile <<
"<style type=\"text/css\">" << std::endl;
7956 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }" 7958 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
7959 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; " 7960 "text-align: center;}" 7962 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
7963 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
7964 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
7965 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
7966 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
7967 htmlFile <<
"</style>" << std::endl;
7968 htmlFile <<
"<body>" << std::endl;
7970 htmlFile <<
"<h1> CAP ID ERRORS, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7972 htmlFile <<
"<h1> ADC AMPLITIDE, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7974 htmlFile <<
"<h1> WIDTH, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7976 htmlFile <<
"<h1> RATIO, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7978 htmlFile <<
"<h1> TIMING MEAN, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7980 htmlFile <<
"<h1> TIMING MAX, GLOBAL RUN = " <<
runnumber <<
" </h1>" << std::endl;
7981 htmlFile <<
"<br>" << std::endl;
7982 htmlFile <<
"<h2> 1. Map of suspicious channels with this criterion for whole HCAL </h2>" << std::endl;
7983 htmlFile <<
"<h3> Channel legend: green - good, other colour - suspicious </h3>" << std::endl;
7984 htmlFile <<
"<br>" << std::endl;
7986 htmlFile <<
" <img src=\"MapCapIdError.png\" />" << std::endl;
7988 htmlFile <<
" <img src=\"MapADCAmpl.png\" />" << std::endl;
7990 htmlFile <<
" <img src=\"MapWidth.png\" />" << std::endl;
7992 htmlFile <<
" <img src=\"MapRatio.png\" />" << std::endl;
7994 htmlFile <<
" <img src=\"MapTmean.png\" />" << std::endl;
7996 htmlFile <<
" <img src=\"MapTmax.png\" />" << std::endl;
7997 htmlFile <<
"<br>" << std::endl;
7998 htmlFile <<
"<h2> 2. For whole HCAL: </h2>" << std::endl;
7999 htmlFile <<
"<br>" << std::endl;
8001 htmlFile <<
" <img src=\"HistCapID.png\" />" << std::endl;
8003 htmlFile <<
" <img src=\"HistADCAmpl.png\" />" << std::endl;
8005 htmlFile <<
" <img src=\"HistWidth.png\" />" << std::endl;
8007 htmlFile <<
" <img src=\"HistRatio.png\" />" << std::endl;
8009 htmlFile <<
" <img src=\"HistTmean.png\" />" << std::endl;
8011 htmlFile <<
" <img src=\"HistTmax.png\" />" << std::endl;
8012 htmlFile <<
"<br>" << std::endl;
8013 htmlFile <<
"<h2> 3. Status of subdetectors </h2>" << std::endl;
8014 htmlFile <<
"<table width=\"400\">" << std::endl;
8015 htmlFile <<
"<tr>" << std::endl;
8017 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8018 <<
"/HB_CapID.html\">HB</a></td>" << std::endl;
8019 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8020 <<
"/HE_CapID.html\">HE</a></td>" << std::endl;
8021 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8022 <<
"/HO_CapID.html\">HO</a></td>" << std::endl;
8023 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8024 <<
"/HF_CapID.html\">HF</a></td>" << std::endl;
8035 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8036 <<
"/HB_ADCampl.html\">HB</a></td>" << std::endl;
8037 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8038 <<
"/HE_ADCampl.html\">HE</a></td>" << std::endl;
8039 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8040 <<
"/HO_ADCampl.html\">HO</a></td>" << std::endl;
8041 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8042 <<
"/HF_ADCampl.html\">HF</a></td>" << std::endl;
8045 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8046 <<
"/HB_Width.html\">HB</a></td>" << std::endl;
8047 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8048 <<
"/HE_Width.html\">HE</a></td>" << std::endl;
8049 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8050 <<
"/HO_Width.html\">HO</a></td>" << std::endl;
8051 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8052 <<
"/HF_Width.html\">HF</a></td>" << std::endl;
8055 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8056 <<
"/HB_Ratio.html\">HB</a></td>" << std::endl;
8057 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8058 <<
"/HE_Ratio.html\">HE</a></td>" << std::endl;
8059 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8060 <<
"/HO_Ratio.html\">HO</a></td>" << std::endl;
8061 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8062 <<
"/HF_Ratio.html\">HF</a></td>" << std::endl;
8065 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8066 <<
"/HB_Tmean.html\">HB</a></td>" << std::endl;
8067 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8068 <<
"/HE_Tmean.html\">HE</a></td>" << std::endl;
8069 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8070 <<
"/HO_Tmean.html\">HO</a></td>" << std::endl;
8071 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8072 <<
"/HF_Tmean.html\">HF</a></td>" << std::endl;
8075 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8076 <<
"/HB_Tmax.html\">HB</a></td>" << std::endl;
8077 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8078 <<
"/HE_Tmax.html\">HE</a></td>" << std::endl;
8079 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8080 <<
"/HO_Tmax.html\">HO</a></td>" << std::endl;
8081 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8082 <<
"/HF_Tmax.html\">HF</a></td>" << std::endl;
8085 htmlFile <<
"</tr>" << std::endl;
8086 htmlFile <<
"</table>" << std::endl;
8087 htmlFile <<
"<br>" << std::endl;
8091 htmlFile <<
"<h2> 4. Table of estimator-values in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8093 htmlFile <<
"<h2> 4. Table of average Nbcs in sub-detectors for ONLY suspicious LSs </h3>" << std::endl;
8094 htmlFile <<
"<table>" << std::endl;
8096 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8098 htmlFile <<
"<td class=\"s1\" align=\"center\">Number of events</td>" << std::endl;
8100 for (
int sub = 1; sub <= 4; sub++) {
8103 int kkkkkkmax = k_max[sub];
8104 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8105 kkkkkkmax = k_maxupgrade[sub];
8110 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8111 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HBdep " <<
k <<
" </td>" << std::endl;
8113 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8114 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HBdepth " <<
k <<
" </td>" << std::endl;
8116 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8117 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HBdepth " <<
k <<
" </td>" << std::endl;
8119 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8120 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HBdepth " <<
k <<
" </td>" << std::endl;
8122 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8123 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HBdep " <<
k <<
" </td>" << std::endl;
8125 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8126 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HBdep " <<
k <<
" </td>" << std::endl;
8130 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8131 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HEdep " <<
k <<
" </td>" << std::endl;
8133 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8134 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HEdepth " <<
k <<
" </td>" << std::endl;
8136 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8137 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HEdepth " <<
k <<
" </td>" << std::endl;
8139 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8140 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HEdepth " <<
k <<
" </td>" << std::endl;
8142 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8143 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HEdep " <<
k <<
" </td>" << std::endl;
8145 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8146 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HEdep " <<
k <<
" </td>" << std::endl;
8150 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8151 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HOdep " <<
k <<
" </td>" << std::endl;
8153 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8154 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HOdepth " <<
k <<
" </td>" << std::endl;
8156 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8157 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HOdepth " <<
k <<
" </td>" << std::endl;
8159 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8160 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HOdepth " <<
k <<
" </td>" << std::endl;
8162 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8163 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HOdep " <<
k <<
" </td>" << std::endl;
8165 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8166 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HOdep " <<
k <<
" </td>" << std::endl;
8170 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8171 htmlFile <<
"<td class=\"s1\" align=\"center\">< Nbcs > HFdep " <<
k <<
" </td>" << std::endl;
8173 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8174 htmlFile <<
"<td class=\"s1\" align=\"center\">< A > HFdepth " <<
k <<
" </td>" << std::endl;
8176 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8177 htmlFile <<
"<td class=\"s1\" align=\"center\">< W > HFdepth " <<
k <<
" </td>" << std::endl;
8179 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8180 htmlFile <<
"<td class=\"s1\" align=\"center\">< R > HFdepth " <<
k <<
" </td>" << std::endl;
8182 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8183 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSn > HFdep " <<
k <<
" </td>" << std::endl;
8185 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++)
8186 htmlFile <<
"<td class=\"s1\" align=\"center\">< TSx > HFdep " <<
k <<
" </td>" << std::endl;
8189 htmlFile <<
"</tr>" << std::endl;
8209 for (
int i = 1;
i <= MaxLum;
i++) {
8212 for (
int sub = 1; sub <= 4; sub++) {
8213 int kkkkkkmax = k_max[sub];
8214 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8215 kkkkkkmax = k_maxupgrade[sub];
8217 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8221 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8229 raw_class =
"<td class=\"s2\" align=\"center\">";
8231 raw_class =
"<td class=\"s3\" align=\"center\">";
8232 htmlFile <<
"<tr>" << std::endl;
8233 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8235 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8236 for (
int sub = 1; sub <= 4; sub++) {
8237 int kkkkkkmax = k_max[sub];
8238 if ((sub == 4 || sub == 2 || sub == 1) &&
test == 1)
8239 kkkkkkmax = k_maxupgrade[sub];
8241 for (
int k = k_min[sub];
k <= kkkkkkmax;
k++) {
8242 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8243 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8244 <<
"</td>" << std::endl;
8246 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8276 htmlFile <<
"</tr>" << std::endl;
8281 htmlFile <<
"</table>" << std::endl;
8282 htmlFile <<
"<br>" << std::endl;
8283 htmlFile <<
"</body> " << std::endl;
8284 htmlFile <<
"</html> " << std::endl;
8291 htmlFile.open(
"SummedAmplitudes_GL.html");
8292 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8293 htmlFile <<
"<head>" << std::endl;
8294 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8295 htmlFile <<
"<title> for summed Amplitudes of each sub-detector </title>" << std::endl;
8296 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8297 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }" 8299 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8300 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; " 8301 "text-align: center;}" 8303 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8304 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8305 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8306 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8307 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8309 htmlFile <<
"</style>" << std::endl;
8310 htmlFile <<
"<body>" << std::endl;
8311 htmlFile <<
"<h1> Averaged Summed Amplitudes & corresponding occupancy of each sub-detector in Global Run = " 8313 htmlFile <<
"<a name=\"Top\"></a>\n";
8314 htmlFile <<
"<b>Contents:<br>\n";
8315 htmlFile <<
"1. <a href=\"#SAhigh\">average SA&Occupancy for Signal </a><br>\n";
8316 htmlFile <<
"2. <a href=\"#SAlow\">average SA&Occupancy for NoSignal </a><br>\n";
8317 htmlFile <<
"3. <a href=\"#SAmax\"> maxSA & maxOccupancy; SA & Occupancy; </a><br>\n";
8318 htmlFile <<
"4. <a href=\"#FullTable\">Table(avA; avSA; avOccupancy; maxSA; maxOccupancy;) </a><br>\n";
8320 htmlFile <<
"<h2> Clarifying on averaged Summed Amplitude (avSA) : </h2>" << std::endl;
8321 htmlFile <<
"<h3> Summed Amplitudes (SA) are averaged over all events of each LS: avSA_LS = SUM (SA_eventsInLS) / " 8322 "N_eventsInLS ,</h3>" 8324 htmlFile <<
"<h3> where SA = SUM(A_i) ,and means that Amplitude is summed over all sub-detector channels, </h3>" 8326 htmlFile <<
"<h3> where A_i = SUM(A_depth) denotes channel amplitude summed over depths; </h3>" << std::endl;
8328 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/SAwriteup.html\"> see " 8329 "more details for SummedAmplitudes</a></td>" 8331 htmlFile <<
"<h2> Apply cuts on A_i to take into account channels with or/and without a'la Signal: </h2>" 8333 htmlFile <<
" <img src=\"ChannelDepthsummedAmplitudes.png\" />" << std::endl;
8334 htmlFile <<
"<br>" << std::endl;
8335 htmlFile <<
"<br>" << std::endl;
8336 htmlFile <<
"<a name=\"SAhigh\"></a>\n";
8337 htmlFile <<
"<h1> 1. for channels with signal </h1>" << std::endl;
8338 htmlFile <<
"<br>" << std::endl;
8339 htmlFile <<
"<h2> for HB: A_i> 80; </h2>" << std::endl;
8340 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HB.png\" />" << std::endl;
8341 htmlFile <<
"<br>" << std::endl;
8342 htmlFile <<
"<h2> for HE: A_i> 200;</h2>" << std::endl;
8343 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HE.png\" />" << std::endl;
8344 htmlFile <<
"<br>" << std::endl;
8345 htmlFile <<
"<h2> for HO: A_i> 1200;</h2>" << std::endl;
8346 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HO.png\" />" << std::endl;
8347 htmlFile <<
"<br>" << std::endl;
8348 htmlFile <<
"<h2> for HF: A_i> 600;</h2>" << std::endl;
8349 htmlFile <<
" <img src=\"SummedAmplitudesSignal_HF.png\" />" << std::endl;
8350 htmlFile <<
"<br>" << std::endl;
8351 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8353 htmlFile <<
"<a name=\"SAlow\"></a>\n";
8354 htmlFile <<
"<h1> 2. for channels w/o signal </h1>" << std::endl;
8355 htmlFile <<
"<br>" << std::endl;
8356 htmlFile <<
"<h2> for HB: A_i< 80;</h2>" << std::endl;
8357 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HB.png\" />" << std::endl;
8358 htmlFile <<
"<br>" << std::endl;
8359 htmlFile <<
"<h2> for HE: A_i< 200;</h2>" << std::endl;
8360 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HE.png\" />" << std::endl;
8361 htmlFile <<
"<br>" << std::endl;
8362 htmlFile <<
"<h2> for HO: A_i< 1200;</h2>" << std::endl;
8363 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HO.png\" />" << std::endl;
8364 htmlFile <<
"<br>" << std::endl;
8365 htmlFile <<
"<h2> for HF: A_i< 600;</h2>" << std::endl;
8366 htmlFile <<
" <img src=\"NoSignalSummedAmplitudes_HF.png\" />" << std::endl;
8367 htmlFile <<
"<br>" << std::endl;
8368 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8370 htmlFile <<
"<br>" << std::endl;
8371 htmlFile <<
"<br>" << std::endl;
8372 htmlFile <<
"<a name=\"SAmax\"></a>\n";
8373 htmlFile <<
"<h1> 3. four plots: ---1---> max SA ---2---> max Occupancy ---3---> SA ---4---> Occupancy over all " 8374 "events of LS </h1>" 8376 htmlFile <<
"<br>" << std::endl;
8378 htmlFile <<
"<h2> for HB: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8379 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HB.png\" />" << std::endl;
8381 " ......(forCut:SAmax>60000) N= " 8382 << countamplmaxHB <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHB <<
" </h2>" << std::endl;
8384 " ......(forCut:SA>60000) N= " 8385 << countamplHB <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHB <<
" </h2>" << std::endl;
8386 htmlFile <<
"<br>" << std::endl;
8387 htmlFile <<
"<h3> ONLY for HB (cross-check): channel Amplitudes for events in the Tail (averaged): </h3>" 8389 htmlFile <<
" <img src=\"AtaildepthHB.png\" />" << std::endl;
8390 htmlFile <<
"<br>" << std::endl;
8392 htmlFile <<
"<h2> for HE: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8393 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HE.png\" />" << std::endl;
8395 " ......(forCut:SAmax>60000) N= " 8396 << countamplmaxHE <<
" ...... (forCut:OCCUPmax>1200) N= " << countoccumaxHE <<
" </h2>" << std::endl;
8398 " ......(forCut:SA>60000) N= " 8399 << countamplHE <<
" ...... (forCut:OCCUP>1200) N= " << countoccuHE <<
" </h2>" << std::endl;
8400 htmlFile <<
"<br>" << std::endl;
8402 htmlFile <<
"<h2> for HO: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8403 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HO.png\" />" << std::endl;
8405 " ......(forCut:SAmax>150000) N= " 8406 << countamplmaxHO <<
" ...... (forCut:OCCUPmax>2000) N= " << countoccumaxHO <<
" </h2>" << std::endl;
8408 " ......(forCut:SA>150000) N= " 8409 << countamplHO <<
" ...... (forCut:OCCUP>2000) N= " << countoccuHO <<
" </h2>" << std::endl;
8410 htmlFile <<
"<br>" << std::endl;
8412 htmlFile <<
"<h2> for HF: maxSA vs LS, masOccupancy vs LS, SA, Occupancy </h2>" << std::endl;
8413 htmlFile <<
" <img src=\"MaxxSummedAmplitudes_HF.png\" />" << std::endl;
8415 " ......(forCut:SAmax>22000) N= " 8416 << countamplmaxHF <<
" ...... (forCut:OCCUPmax>860) N= " << countoccumaxHF <<
" </h2>" << std::endl;
8418 " ......(forCut:SA>22000) N= " 8419 << countamplHF <<
" ...... (forCut:OCCUP>860) N= " << countoccuHF <<
" </h2>" << std::endl;
8420 htmlFile <<
"<br>" << std::endl;
8421 htmlFile <<
"<h2> Occupancy HF (ONLY) vs LS </h2>" << std::endl;
8422 htmlFile <<
" <img src=\"sumOccupancyHF.png\" />" << std::endl;
8423 htmlFile <<
"<br>" << std::endl;
8424 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8426 htmlFile <<
"<a name=\"FullTable\"></a>\n";
8427 htmlFile <<
"<h2> 4.Lumisection Status: </h2>" << std::endl;
8428 htmlFile <<
"<h3> Legends: HBdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">" 8429 << Cut0[1][1][1] << std::endl;
8430 htmlFile <<
"<h3> Legends: HEdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">" 8431 << Cut0[1][2][1] << std::endl;
8432 htmlFile <<
"<h3> Legends: HOdepth4 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">" 8433 << Cut0[1][3][4] << std::endl;
8434 htmlFile <<
"<h3> Legends: HFdepth1 red boxes correspond LSs selected with cut: <td class=\"s6\" align=\"center\">" 8435 << Cut0[1][4][1] << std::endl;
8436 htmlFile <<
"<br>" << std::endl;
8438 htmlFile <<
"<br>" << std::endl;
8439 htmlFile <<
"<table>" << std::endl;
8441 htmlFile <<
"<td class=\"s4\" align=\"center\">LS</td>" << std::endl;
8443 htmlFile <<
"<td class=\"s1\" align=\"center\"> Num.of ev.</td>" << std::endl;
8448 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HB Depth1</td>" << std::endl;
8449 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HE Depth1</td>" << std::endl;
8450 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HO Depth4</td>" << std::endl;
8451 htmlFile <<
"<td class=\"s1\" align=\"center\">< A >HF Depth1</td>" << std::endl;
8453 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (Signal) </td>" << std::endl;
8454 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (Signal) </td>" << std::endl;
8455 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (Signal) </td>" << std::endl;
8456 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (Signal) </td>" << std::endl;
8458 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HB (NoSignal) </td>" << std::endl;
8459 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HB (NoSignal) </td>" << std::endl;
8460 htmlFile <<
"<td class=\"s1\" align=\"center\">< SA >HF (NoSignal) </td>" << std::endl;
8461 htmlFile <<
"<td class=\"s1\" align=\"center\">< Occup. > HF (NoSignal) </td>" << std::endl;
8463 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HB </td>" << std::endl;
8464 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HB </td>" << std::endl;
8465 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxSA HF </td>" << std::endl;
8466 htmlFile <<
"<td class=\"s1\" align=\"center\"> maxOccup. HF </td>" << std::endl;
8468 htmlFile <<
"</tr>" << std::endl;
8471 for (
int i = 1;
i <= MaxLum;
i++) {
8473 raw_class =
"<td class=\"s2\" align=\"center\">";
8475 raw_class =
"<td class=\"s3\" align=\"center\">";
8476 htmlFile <<
"<tr>" << std::endl;
8478 htmlFile <<
"<td class=\"s4\" align=\"center\">" <<
i <<
"</td>" << std::endl;
8481 htmlFile << raw_class << LumiEv->GetBinContent(
i) <<
"</td>" << std::endl;
8486 for (
int sub = 1; sub <= 4; sub++) {
8487 for (
int k = k_min[sub];
k <= k_min[sub];
k++) {
8488 if (HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) > Cut0[
test][sub][
k])
8489 htmlFile <<
"<td class=\"s6\" align=\"center\">" << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i)
8490 <<
"</td>" << std::endl;
8493 htmlFile << raw_class << HistNumBadChanDepth[
test][sub][
k]->GetBinContent(
i) <<
"</td>" << std::endl;
8496 if (SummedAmplitudeHisto[0]) {
8497 htmlFile << raw_class << SummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8498 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8499 htmlFile << raw_class << SummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8500 htmlFile << raw_class << SummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8502 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8503 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8504 htmlFile << raw_class << NoSignalSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8505 htmlFile << raw_class << NoSignalSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8507 htmlFile << raw_class << MaxxSummedAmplitudeHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8508 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[0]->GetBinContent(
i) <<
"</td>" << std::endl;
8509 htmlFile << raw_class << MaxxSummedAmplitudeHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8510 htmlFile << raw_class << MaxxSummedAmplitudeOccupancyHisto[3]->GetBinContent(
i) <<
"</td>" << std::endl;
8512 htmlFile <<
"</tr>" << std::endl;
8515 htmlFile <<
"</table>" << std::endl;
8516 htmlFile <<
"<a href=\"#Top\">to top</a><br>\n";
8518 htmlFile <<
"<br>" << std::endl;
8519 htmlFile <<
"</body> " << std::endl;
8520 htmlFile <<
"</html> " << std::endl;
8562 htmlFile.open(
"CMTresults.html");
8563 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8564 htmlFile <<
"<head>" << std::endl;
8565 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8566 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8567 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8568 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }" 8570 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8571 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; " 8572 "text-align: center;}" 8574 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8575 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8576 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8577 htmlFile <<
"</style>" << std::endl;
8578 htmlFile <<
"<body>" << std::endl;
8579 htmlFile <<
"<h1> LS-certification (recommendation) from analysis of CMT-dependencies of THIS run </h1>" 8581 htmlFile <<
"<br>" << std::endl;
8582 htmlFile <<
"<br>" << std::endl;
8583 htmlFile <<
"<h2> - List of suspicious LSs: </h2> " << std::endl;
8584 htmlFile <<
"<br>" << std::endl;
8585 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8586 htmlFile <<
"<br>" << std::endl;
8587 htmlFile <<
"<br>" << std::endl;
8588 htmlFile <<
"<br>" << std::endl;
8589 htmlFile <<
"<h2> - Comments: </h2> " << std::endl;
8590 htmlFile <<
"<br>" << std::endl;
8591 htmlFile <<
"<h3> to be added </h3> " << std::endl;
8592 htmlFile <<
"<br>" << std::endl;
8593 htmlFile <<
"<br>" << std::endl;
8594 htmlFile <<
"<br>" << std::endl;
8595 htmlFile <<
"</body> " << std::endl;
8596 htmlFile <<
"</html> " << std::endl;
8602 htmlFile.open(
"LumiList.html");
8603 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
8604 htmlFile <<
"<head>" << std::endl;
8605 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
8606 htmlFile <<
"<title> Certification Monitoring Tool </title>" << std::endl;
8607 htmlFile <<
"<style type=\"text/css\">" << std::endl;
8608 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }" 8610 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
8611 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; " 8612 "text-align: center;}" 8614 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
8615 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
8616 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
8617 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #00FF00; }" << std::endl;
8618 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #FF0000; }" << std::endl;
8620 htmlFile <<
"</style>" << std::endl;
8621 htmlFile <<
"<body>" << std::endl;
8623 htmlFile <<
"<h1> Certification Monitoring Tool, GLOBAL RUN = " <<
runnumber <<
". </h1>" << std::endl;
8624 htmlFile <<
"<br>" << std::endl;
8625 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8626 <<
"/CMTresults.html\"> CMT-analysis RESULTS (for this run) </a></td>" << std::endl;
8627 htmlFile <<
"<br>" << std::endl;
8628 htmlFile <<
"<br>" << std::endl;
8631 htmlFile <<
"<h2> 1. General information (Full number of LS = " << MaxLum000000 <<
" ). </h2>" << std::endl;
8632 htmlFile <<
" <img src=\"LumiEvent.png\" />" << std::endl;
8633 htmlFile <<
"<br>" << std::endl;
8635 htmlFile <<
"<h2> 2. HCAL status for different criteria </h2>" << std::endl;
8637 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/HELP.html\"> " 8638 "Description of criteria for bad channel selection</a></td>" 8640 htmlFile <<
"<br>" << std::endl;
8641 htmlFile <<
"<table width=\"600\">" << std::endl;
8642 htmlFile <<
"<tr>" << std::endl;
8643 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8644 <<
"/CapID_GL.html\">Cap ID errors</a></td>" << std::endl;
8646 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8647 <<
"/ADCampl_GL.html\">Amplitude</a></td>" << std::endl;
8649 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8650 <<
"/Width_GL.html\">Width</a></td>" << std::endl;
8651 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8652 <<
"/Ratio_GL.html\">Ratio</a></td>" << std::endl;
8653 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8654 <<
"/Tmean_GL.html\">TS mean</a></td>" << std::endl;
8655 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8656 <<
"/Tmax_GL.html\">TS max</a></td>" << std::endl;
8658 htmlFile <<
" <td><a href=\"https://cms-conddb.cern.ch/eosweb/hcal/HcalRemoteMonitoring/CMT/GLOBAL_" <<
runnumber 8659 <<
"/SummedAmplitudes_GL.html\">SummedAmplitudes</a></td>" << std::endl;
8661 htmlFile <<
"</tr>" << std::endl;
8662 htmlFile <<
"</table>" << std::endl;
8663 htmlFile <<
"<br>" << std::endl;
8664 htmlFile <<
"</body> " << std::endl;
8665 htmlFile <<
"</html> " << std::endl;
8680 int copyContents(TH1F **hDest, TString hname, TString htitle,
const TH1F *hSrc,
int lastBin) {
8681 if (lastBin > hSrc->GetNbinsX()) {
8682 std::cout <<
"copyContents from " << hSrc->GetName() <<
": histo has " << hSrc->GetNbinsX()
8683 <<
" bins, when lastBin=" << lastBin <<
" was requested\n";
8687 (*hDest) =
new TH1F(hname, htitle, lastBin, 0, lastBin);
8688 (*hDest)->SetDirectory(0);
8689 (*hDest)->SetStats(0);
8691 for (
int ibin = 1; ibin <= lastBin; ibin++) {
8692 (*hDest)->SetBinContent(ibin, hSrc->GetBinContent(ibin));
8693 (*hDest)->SetBinError(ibin, hSrc->GetBinError(ibin));
int main(int argc, char *argv[])
int copyContents(TH1F **hDest, TString hname, TString htitle, const TH1F *hSrc, int lastBin)