33 gROOT->SetStyle(
"Plain");
34 gStyle->SetOptStat(0);
35 gStyle->SetOptTitle(1);
42 sprintf(fname,
"%s",
argv[1]);
43 sprintf(refname,
"%s",
argv[2]);
44 sprintf(runtypeC,
"%s",
argv[3]);
45 std::cout << fname <<
" " << refname <<
" " << runtypeC << std::endl;
51 string promt = (
string)fname;
54 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
55 runnumber += fname[
i];
56 string refrunnumber =
"";
58 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
59 refrunnumber += refname[
i];
61 TFile *hfile =
new TFile(fname,
"READ");
62 TFile *hreffile =
new TFile(refname,
"READ");
70 if (runtype ==
"LED") {
72 double MIN_M_LED[7][5] = {{0., 0., 0., 0., 0.},
74 {0, 100., 70., 40., 40.},
75 {0, 0.7, 0.7, 0.1, 0.1},
76 {0, 0.7, 0.6, 0.40, 0.45},
77 {0, 2.5, 1.0, 1.0, 1.0},
78 {0, 1.5, 1.5, 0.5, 0.5}};
79 double MAX_M_LED[7][5] = {{0., 0., 0., 0., 0.},
81 {0, 3000, 500000, 3000, 150000},
82 {0, 2.5, 2.5, 2.8, 2.6},
83 {0, 0.94, 0.95, 1.04, 1.02},
84 {0, 5.5, 5.2, 4.8, 4.2},
85 {0, 6.5, 6.5, 8.5, 8.5}};
86 double MIN_C_LED[7][5] = {{0., 0., 0., 0., 0.},
88 {0, 1000., 1000., 1000., 100.},
89 {0, 1.3, 1.3, 0.7, 0.3},
90 {0, 0.76, 0.76, 0.85, 0.5},
91 {0, 2.4, 2.4, 1.5, 3.5},
92 {0, 1.5, 1.5, 1.5, 3.5}};
93 double MAX_C_LED[7][5] = {{0., 0., 0., 0., 0.},
95 {0, 1E20, 1E20, 1E20, 1E20},
96 {0, 1.9, 1.9, 1.65, 1.5},
97 {0, 0.94, 0.94, 0.99, 0.8},
98 {0, 3.7, 3.7, 2.7, 4.5},
99 {0, 2.5, 2.5, 2.5, 4.5}};
100 double porog_LED[5] = {0., 2., 2., 2., 2.};
101 double Pedest_LED[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
102 {0., 0.1, 0.1, 0.1, 0.4}};
103 for (
int i = 0;
i <= 6;
i++)
104 for (
int j = 0;
j <= 4;
j++) {
105 MIN_M[
i][
j] = MIN_M_LED[
i][
j];
106 MAX_M[
i][
j] = MAX_M_LED[
i][
j];
107 MIN_C[
i][
j] = MIN_C_LED[
i][
j];
108 MAX_C[
i][
j] = MAX_C_LED[
i][
j];
110 for (
int i = 0;
i <= 4;
i++) {
111 porog[
i] = porog_LED[
i];
112 Pedest[0][
i] = Pedest_LED[0][
i];
113 Pedest[1][
i] = Pedest_LED[1][
i];
117 if (runtype ==
"LASER") {
119 double MIN_M_LASER[7][5] = {{0., 0., 0., 0., 0.},
120 {0., 0., 0., 0., 0.},
121 {0, 40., 40., 100., 40.},
122 {0, 0.3, 0.9, 0.2, 0.2},
123 {0, 0.5, 0.55, 0.55, 0.60},
124 {0, 5.0, 2.5, 1.1, 5.5},
125 {0, 1.5, 1.5, 1.5, 1.5}};
126 double MAX_M_LASER[7][5] = {{0., 0., 0., 0., 0.},
127 {0., 0., 0., 0., 0.},
128 {0, 3500, 350000, 3500, 150000},
129 {0, 2.5, 3.6, 2.6, 2.1},
130 {0, 1.00, 1.00, 1.04, 1.02},
131 {0, 7.5, 6.5, 4.4, 8.5},
132 {0, 8.5, 8.5, 6.5, 8.5}};
133 double MIN_C_LASER[7][5] = {{0., 0., 0., 0., 0.},
134 {0., 0., 0., 0., 0.},
135 {0, 1000., 1000., 1000., 100.},
136 {0, 1.3, 1.3, 0.7, 0.3},
137 {0, 0.76, 0.76, 0.85, 0.5},
138 {0, 2.4, 2.4, 1.5, 3.5},
139 {0, 1.5, 1.5, 1.5, 3.5}};
140 double MAX_C_LASER[7][5] = {{0., 0., 0., 0., 0.},
141 {0., 0., 0., 0., 0.},
142 {0, 1E20, 1E20, 1E20, 1E20},
143 {0, 1.9, 1.9, 1.65, 1.5},
144 {0, 0.94, 0.94, 1.0, 0.8},
145 {0, 3.7, 3.7, 2.7, 4.5},
146 {0, 2.5, 2.5, 2.5, 4.5}};
147 double porog_LASER[5] = {0., 2., 2., 2., 2.};
149 double Pedest_LASER[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
150 {0., 0.1, 0.1, 0.1, 0.4}};
151 for (
int i = 0;
i <= 6;
i++)
152 for (
int j = 0;
j <= 4;
j++) {
153 MIN_M[
i][
j] = MIN_M_LASER[
i][
j];
154 MAX_M[
i][
j] = MAX_M_LASER[
i][
j];
155 MIN_C[
i][
j] = MIN_C_LASER[
i][
j];
156 MAX_C[
i][
j] = MAX_C_LASER[
i][
j];
158 for (
int i = 0;
i <= 4;
i++) {
159 porog[
i] = porog_LASER[
i];
160 Pedest[0][
i] = Pedest_LASER[0][
i];
161 Pedest[1][
i] = Pedest_LASER[1][
i];
164 if (runtype ==
"PEDESTAL") {
166 double MIN_M_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
167 {0., 0., 0., 0., 0.},
168 {0, 10., 10., 200., 5.},
169 {0, 2.7, 2.7, 2.7, 0.2},
170 {0, 0.31, 0.31, 0.05, 0.15},
171 {0, 4.5, 4.5, 4.5, 2.0},
172 {0, 0.5, 0.5, 0.5, 0.5}};
173 double MAX_M_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
174 {0., 0., 0., 0., 0.},
175 {0, 2500., 250000., 2500., 150000.},
176 {0, 3.0, 3.0, 5.0, 3.0},
177 {0, 0.95, 0.95, 1.00, 0.98},
178 {0, 4.6, 4.6, 4.6, 7.0},
179 {0, 9.5, 9.5, 8.5, 8.5}};
180 double MIN_C_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
181 {0., 0., 0., 0., 0.},
182 {0, 1000., 1000., 1000., 100.},
183 {0, 1.3, 1.3, 0.7, 0.3},
184 {0, 0.76, 0.76, 0.85, 0.5},
185 {0, 2.4, 2.4, 1.5, 3.5},
186 {0, 1.5, 1.5, 1.5, 3.5}};
187 double MAX_C_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
188 {0., 0., 0., 0., 0.},
189 {0, 1E20, 1E20, 1E20, 1E20},
190 {0, 1.9, 1.9, 1.65, 1.5},
191 {0, 0.94, 0.94, 1.0, 0.8},
192 {0, 3.7, 3.7, 2.7, 4.5},
193 {0, 2.5, 2.5, 2.5, 4.5}};
194 double porog_PEDESTAL[5] = {0., 2., 2., 2., 2.};
196 double Pedest_PEDESTAL[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
197 {0., 0.1, 0.1, 0.1, 0.4}};
198 for (
int i = 0;
i <= 6;
i++)
199 for (
int j = 0;
j <= 4;
j++) {
200 MIN_M[
i][
j] = MIN_M_PEDESTAL[
i][
j];
201 MAX_M[
i][
j] = MAX_M_PEDESTAL[
i][
j];
202 MIN_C[
i][
j] = MIN_C_PEDESTAL[
i][
j];
203 MAX_C[
i][
j] = MAX_C_PEDESTAL[
i][
j];
205 for (
int i = 0;
i <= 4;
i++) {
206 porog[
i] = porog_PEDESTAL[
i];
207 Pedest[0][
i] = Pedest_PEDESTAL[0][
i];
208 Pedest[1][
i] = Pedest_PEDESTAL[1][
i];
215 cout << MIN_M[2][1] << endl;
221 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 1000);
223 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 1500);
225 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 1500, 500);
226 TCanvas *cPED =
new TCanvas(
"cPED",
"cPED", 1000, 500);
228 TCanvas *cHF =
new TCanvas(
"cHF",
"cHF", 1000, 1000);
232 TCanvas *c1x0 =
new TCanvas(
"c1x0",
"c1x0", 300, 10, 800, 700);
234 TCanvas *c1x1 =
new TCanvas(
"c1x1",
"c1x1", 100, 10, 600, 700);
236 TCanvas *c3x5 =
new TCanvas(
"c3x5",
"c3x5", 1000, 1500);
239 char *
str = (
char *)alloca(10000);
257 int k_min[5] = {0, 1, 1, 4, 1};
260 int k_max[5] = {0, 4, 7, 4, 4};
262 TH2F *Map_Ampl[33][5][ALLDEPTH];
263 TH2F *Map_SUB[5][ALLDEPTH];
264 TH1F *HistAmplDepth[22][5][ALLDEPTH];
265 TH1F *HistAmpl[22][5];
267 TH1F *HistPed[3][5][4];
269 TH1F *hist_GoodTSshape[5];
270 TH1F *hist_GoodTSshape0[5];
271 TH1F *hist_BadTSshape[5];
272 TH1F *hist_BadTSshape0[5];
273 TH1F *hist_ADC_All[5];
274 TH1F *hist_ADC_DS[5][ALLDEPTH];
275 TH1F *hist_SumADC[5][ALLDEPTH];
276 TH1F *hist_SumADC0[5][ALLDEPTH];
277 TH1F *hist_SumADC1[5][ALLDEPTH];
279 Map_SUB[1][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HB");
280 Map_SUB[1][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HB");
281 Map_SUB[2][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HE");
282 Map_SUB[2][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HE");
283 Map_SUB[2][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HE");
284 Map_SUB[3][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HO");
285 Map_SUB[4][1] = (TH2F *)hfile->Get(
"h_mapDepth1_HF");
286 Map_SUB[4][2] = (TH2F *)hfile->Get(
"h_mapDepth2_HF");
288 Map_SUB[1][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HB");
289 Map_SUB[1][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HB");
290 Map_SUB[2][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HE");
291 Map_SUB[2][5] = (TH2F *)hfile->Get(
"h_mapDepth5_HE");
292 Map_SUB[2][6] = (TH2F *)hfile->Get(
"h_mapDepth6_HE");
293 Map_SUB[2][7] = (TH2F *)hfile->Get(
"h_mapDepth7_HE");
294 Map_SUB[4][3] = (TH2F *)hfile->Get(
"h_mapDepth3_HF");
295 Map_SUB[4][4] = (TH2F *)hfile->Get(
"h_mapDepth4_HF");
301 for (
int sub = 1; sub <= 4; sub++) {
316 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
329 sprintf(str,
"HB, Depth%d \b",
k);
331 sprintf(str,
"HE, Depth%d \b",
k);
333 sprintf(str,
"HO, Depth%d \b",
k);
335 sprintf(str,
"HF, Depth%d \b",
k);
336 Map_SUB[sub][
k]->SetTitle(str);
337 Map_SUB[sub][
k]->SetXTitle(
"#eta \b");
338 Map_SUB[sub][
k]->SetYTitle(
"#phi \b");
339 Map_SUB[sub][
k]->SetZTitle(
"Number of events \b");
341 Map_SUB[sub][
k]->SetTitleOffset(0.8,
"Z");
342 Map_SUB[sub][
k]->Draw(
"COLZ");
343 Map_SUB[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
364 cHB->Print(
"MapRateEntryHB.png");
368 cHE->Print(
"MapRateEntryHE.png");
372 cONE->Print(
"MapRateEntryHO.png");
376 cHF->Print(
"MapRateEntryHF.png");
385 Map_Ampl[1][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HB");
386 Map_Ampl[1][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HB");
387 Map_Ampl[1][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HE");
388 Map_Ampl[1][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HE");
389 Map_Ampl[1][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HE");
390 Map_Ampl[1][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HO");
391 Map_Ampl[1][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Error_HF");
392 Map_Ampl[1][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Error_HF");
394 Map_Ampl[1][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HB");
395 Map_Ampl[1][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HB");
396 Map_Ampl[1][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HE");
397 Map_Ampl[1][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5Error_HE");
398 Map_Ampl[1][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6Error_HE");
399 Map_Ampl[1][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7Error_HE");
400 Map_Ampl[1][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3Error_HF");
401 Map_Ampl[1][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4Error_HF");
403 for (
int sub = 1; sub <= 4; sub++) {
418 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
427 Map_Ampl[1][sub][
k]->Divide(Map_Ampl[1][sub][
k], Map_SUB[sub][k], 1, 1,
"B");
432 sprintf(str,
"HB, Depth%d \b", k);
434 sprintf(str,
"HE, Depth%d \b", k);
436 sprintf(str,
"HO, Depth%d \b", k);
438 sprintf(str,
"HF, Depth%d \b", k);
439 Map_Ampl[1][sub][
k]->SetTitle(str);
440 Map_Ampl[1][sub][
k]->SetXTitle(
"#eta \b");
441 Map_Ampl[1][sub][
k]->SetYTitle(
"#phi \b");
442 Map_Ampl[1][sub][
k]->SetZTitle(
"Rate \b");
444 Map_Ampl[1][sub][
k]->SetTitleOffset(0.8,
"Z");
445 Map_Ampl[1][sub][
k]->Draw(
"COLZ");
446 Map_Ampl[1][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
447 Map_Ampl[1][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
467 cHB->Print(
"MapRateCapIDHB.png");
471 cHE->Print(
"MapRateCapIDHE.png");
475 cONE->Print(
"MapRateCapIDHO.png");
479 cHF->Print(
"MapRateCapIDHF.png");
488 Map_Ampl[2][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1ADCAmpl225_HB");
489 Map_Ampl[2][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2ADCAmpl225_HB");
490 Map_Ampl[2][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1ADCAmpl225_HE");
491 Map_Ampl[2][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2ADCAmpl225_HE");
492 Map_Ampl[2][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3ADCAmpl225_HE");
493 Map_Ampl[2][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4ADCAmpl225_HO");
494 Map_Ampl[2][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1ADCAmpl225_HF");
495 Map_Ampl[2][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2ADCAmpl225_HF");
497 Map_Ampl[2][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3ADCAmpl225_HB");
498 Map_Ampl[2][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4ADCAmpl225_HB");
499 Map_Ampl[2][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4ADCAmpl225_HE");
500 Map_Ampl[2][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5ADCAmpl225_HE");
501 Map_Ampl[2][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6ADCAmpl225_HE");
502 Map_Ampl[2][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7ADCAmpl225_HE");
503 Map_Ampl[2][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3ADCAmpl225_HF");
504 Map_Ampl[2][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4ADCAmpl225_HF");
506 HistAmpl[2][1] = (TH1F *)hfile->Get(
"h_ADCAmpl_HB");
507 HistAmpl[2][2] = (TH1F *)hfile->Get(
"h_ADCAmpl_HE");
508 HistAmpl[2][3] = (TH1F *)hfile->Get(
"h_ADCAmpl_HO");
509 HistAmpl[2][4] = (TH1F *)hfile->Get(
"h_ADCAmpl_HF");
515 Map_Ampl[3][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Amplitude225_HB");
516 Map_Ampl[3][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Amplitude225_HB");
517 Map_Ampl[3][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Amplitude225_HE");
518 Map_Ampl[3][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Amplitude225_HE");
519 Map_Ampl[3][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Amplitude225_HE");
520 Map_Ampl[3][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Amplitude225_HO");
521 Map_Ampl[3][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Amplitude225_HF");
522 Map_Ampl[3][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Amplitude225_HF");
524 Map_Ampl[3][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3Amplitude225_HB");
525 Map_Ampl[3][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4Amplitude225_HB");
526 Map_Ampl[3][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4Amplitude225_HE");
527 Map_Ampl[3][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5Amplitude225_HE");
528 Map_Ampl[3][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6Amplitude225_HE");
529 Map_Ampl[3][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7Amplitude225_HE");
530 Map_Ampl[3][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3Amplitude225_HF");
531 Map_Ampl[3][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4Amplitude225_HF");
533 HistAmpl[3][1] = (TH1F *)hfile->Get(
"h_Amplitude_HB");
534 HistAmpl[3][2] = (TH1F *)hfile->Get(
"h_Amplitude_HE");
535 HistAmpl[3][3] = (TH1F *)hfile->Get(
"h_Amplitude_HO");
536 HistAmpl[3][4] = (TH1F *)hfile->Get(
"h_Amplitude_HF");
542 Map_Ampl[4][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1Ampl047_HB");
543 Map_Ampl[4][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2Ampl047_HB");
544 Map_Ampl[4][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1Ampl047_HE");
545 Map_Ampl[4][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2Ampl047_HE");
546 Map_Ampl[4][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3Ampl047_HE");
547 Map_Ampl[4][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4Ampl047_HO");
548 Map_Ampl[4][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1Ampl047_HF");
549 Map_Ampl[4][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2Ampl047_HF");
551 Map_Ampl[4][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3Ampl047_HB");
552 Map_Ampl[4][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4Ampl047_HB");
553 Map_Ampl[4][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4Ampl047_HE");
554 Map_Ampl[4][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5Ampl047_HE");
555 Map_Ampl[4][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6Ampl047_HE");
556 Map_Ampl[4][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7Ampl047_HE");
557 Map_Ampl[4][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3Ampl047_HF");
558 Map_Ampl[4][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4Ampl047_HF");
560 HistAmpl[4][1] = (TH1F *)hfile->Get(
"h_Ampl_HB");
561 HistAmpl[4][2] = (TH1F *)hfile->Get(
"h_Ampl_HE");
562 HistAmpl[4][3] = (TH1F *)hfile->Get(
"h_Ampl_HO");
563 HistAmpl[4][4] = (TH1F *)hfile->Get(
"h_Ampl_HF");
569 Map_Ampl[5][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmeanA225_HB");
570 Map_Ampl[5][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmeanA225_HB");
571 Map_Ampl[5][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmeanA225_HE");
572 Map_Ampl[5][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmeanA225_HE");
573 Map_Ampl[5][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmeanA225_HE");
574 Map_Ampl[5][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmeanA225_HO");
575 Map_Ampl[5][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmeanA225_HF");
576 Map_Ampl[5][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmeanA225_HF");
578 Map_Ampl[5][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmeanA225_HB");
579 Map_Ampl[5][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmeanA225_HB");
580 Map_Ampl[5][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmeanA225_HE");
581 Map_Ampl[5][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5TSmeanA225_HE");
582 Map_Ampl[5][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6TSmeanA225_HE");
583 Map_Ampl[5][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7TSmeanA225_HE");
584 Map_Ampl[5][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmeanA225_HF");
585 Map_Ampl[5][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmeanA225_HF");
587 HistAmpl[5][1] = (TH1F *)hfile->Get(
"h_TSmeanA_HB");
588 HistAmpl[5][2] = (TH1F *)hfile->Get(
"h_TSmeanA_HE");
589 HistAmpl[5][3] = (TH1F *)hfile->Get(
"h_TSmeanA_HO");
590 HistAmpl[5][4] = (TH1F *)hfile->Get(
"h_TSmeanA_HF");
596 Map_Ampl[6][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmaxA225_HB");
597 Map_Ampl[6][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmaxA225_HB");
598 Map_Ampl[6][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmaxA225_HE");
599 Map_Ampl[6][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmaxA225_HE");
600 Map_Ampl[6][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmaxA225_HE");
601 Map_Ampl[6][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmaxA225_HO");
602 Map_Ampl[6][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1TSmaxA225_HF");
603 Map_Ampl[6][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2TSmaxA225_HF");
605 Map_Ampl[6][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmaxA225_HB");
606 Map_Ampl[6][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmaxA225_HB");
607 Map_Ampl[6][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmaxA225_HE");
608 Map_Ampl[6][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5TSmaxA225_HE");
609 Map_Ampl[6][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6TSmaxA225_HE");
610 Map_Ampl[6][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7TSmaxA225_HE");
611 Map_Ampl[6][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3TSmaxA225_HF");
612 Map_Ampl[6][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4TSmaxA225_HF");
614 HistAmpl[6][1] = (TH1F *)hfile->Get(
"h_TSmaxA_HB");
615 HistAmpl[6][2] = (TH1F *)hfile->Get(
"h_TSmaxA_HE");
616 HistAmpl[6][3] = (TH1F *)hfile->Get(
"h_TSmaxA_HO");
617 HistAmpl[6][4] = (TH1F *)hfile->Get(
"h_TSmaxA_HF");
620 for (
int sub = 1; sub <= 4; sub++) {
635 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
644 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][k], Map_SUB[sub][k], 1, 1,
"B");
649 sprintf(str,
"HB, Depth%d \b", k);
651 sprintf(str,
"HE, Depth%d \b", k);
653 sprintf(str,
"HO, Depth%d \b", k);
655 sprintf(str,
"HF, Depth%d \b", k);
656 Map_Ampl[
test][sub][
k]->SetTitle(str);
657 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
658 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
659 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
661 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
662 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
663 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
664 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
684 cHB->Print(
"MapRateAmplHB.png");
688 cHE->Print(
"MapRateAmplHE.png");
692 cONE->Print(
"MapRateAmplHO.png");
696 cHF->Print(
"MapRateAmplHF.png");
702 cHB->Print(
"MapRateRMSHB.png");
706 cHE->Print(
"MapRateRMSHE.png");
710 cONE->Print(
"MapRateRMSHO.png");
714 cHF->Print(
"MapRateRMSHF.png");
720 cHB->Print(
"MapRate43TStoAllTSHB.png");
724 cHE->Print(
"MapRate43TStoAllTSHE.png");
728 cONE->Print(
"MapRate43TStoAllTSHO.png");
732 cHF->Print(
"MapRate43TStoAllTSHF.png");
738 cHB->Print(
"MapRateMeanPosHB.png");
742 cHE->Print(
"MapRateMeanPosHE.png");
746 cONE->Print(
"MapRateMeanPosHO.png");
750 cHF->Print(
"MapRateMeanPosHF.png");
756 cHB->Print(
"MapRateMaxPosHB.png");
760 cHE->Print(
"MapRateMaxPosHE.png");
764 cONE->Print(
"MapRateMaxPosHO.png");
768 cHF->Print(
"MapRateMaxPosHF.png");
775 if (
test == 2 && sub == 2) {
777 TH1F *kjkjkhj2 = (TH1F *)hfile->Get(
"h_AmplitudeHEtest1");
779 kjkjkhj2->SetTitle(
"HE, All Depth: shunt1");
781 TH1F *kjkjkhj3 = (TH1F *)hfile->Get(
"h_AmplitudeHEtest6");
783 kjkjkhj3->SetTitle(
"HE, All Depth: shunt6");
785 if (
test == 2 && sub == 1) {
787 TH1F *kjkjkhb2 = (TH1F *)hfile->Get(
"h_AmplitudeHBtest1");
789 kjkjkhb2->SetTitle(
"HB, All Depth: shunt1");
791 TH1F *kjkjkhb3 = (TH1F *)hfile->Get(
"h_AmplitudeHBtest6");
793 kjkjkhb3->SetTitle(
"HB, All Depth: shunt6");
800 HistAmpl[
test][sub]->SetTitle(
"HB, All Depth: shunt6");
802 HistAmpl[
test][sub]->SetTitle(
"HE, All Depth: shunt6");
804 HistAmpl[
test][sub]->SetTitle(
"HO, All Depth");
806 HistAmpl[
test][sub]->SetTitle(
"HF, All Depth");
808 HistAmpl[
test][sub]->SetXTitle(
"ADC Amlitude in each event & cell \b");
810 HistAmpl[
test][sub]->SetXTitle(
"RMS in each event & cell \b");
812 HistAmpl[
test][sub]->SetXTitle(
"Ratio in each event & cell \b");
814 HistAmpl[
test][sub]->SetXTitle(
"Mean TS position in each event & cell \b");
816 HistAmpl[
test][sub]->SetXTitle(
"Max TS position in each event & cell \b");
817 HistAmpl[
test][sub]->SetYTitle(
"Number of cell-events \b");
818 HistAmpl[
test][sub]->SetLineColor(4);
819 HistAmpl[
test][sub]->SetLineWidth(2);
820 HistAmpl[
test][sub]->SetTitleOffset(1.4,
"Y");
821 HistAmpl[
test][sub]->Draw(
"");
828 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 5.);
830 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 1.);
832 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
834 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
837 double min_x[] = {MIN_M[
test][sub], MIN_M[
test][sub]};
838 double min_y[] = {0., 100000000.};
839 TGraph *MIN =
new TGraph(2, min_x, min_y);
840 MIN->SetLineStyle(2);
841 MIN->SetLineColor(2);
842 MIN->SetLineWidth(2 + 100 * 100);
843 MIN->SetFillStyle(3005);
844 MIN->SetFillColor(2);
846 double max_x[] = {MAX_M[
test][sub], MAX_M[
test][sub]};
847 double max_y[] = {0., 100000000.};
848 TGraph *MAX =
new TGraph(2, max_x, max_y);
849 MAX->SetLineStyle(2);
850 MAX->SetLineColor(2);
851 MAX->SetLineWidth(-2 - 100 * 100);
852 MAX->SetFillStyle(3004);
853 MAX->SetFillColor(2);
857 cONE->Print(
"HistAmplHB.png");
861 cONE->Print(
"HistAmplHE.png");
865 cONE->Print(
"HistAmplHO.png");
869 cONE->Print(
"HistAmplHF.png");
875 cONE->Print(
"HistRMSHB.png");
879 cONE->Print(
"HistRMSHE.png");
883 cONE->Print(
"HistRMSHO.png");
887 cONE->Print(
"HistRMSHF.png");
893 cONE->Print(
"Hist43TStoAllTSHB.png");
897 cONE->Print(
"Hist43TStoAllTSHE.png");
901 cONE->Print(
"Hist43TStoAllTSHO.png");
905 cONE->Print(
"Hist43TStoAllTSHF.png");
911 cONE->Print(
"HistMeanPosHB.png");
915 cONE->Print(
"HistMeanPosHE.png");
919 cONE->Print(
"HistMeanPosHO.png");
923 cONE->Print(
"HistMeanPosHF.png");
929 cONE->Print(
"HistMaxPosHB.png");
933 cONE->Print(
"HistMaxPosHE.png");
937 cONE->Print(
"HistMaxPosHO.png");
941 cONE->Print(
"HistMaxPosHF.png");
948 TH2F *Map_Calib[5][5];
950 Map_Calib[1][1] = (TH2F *)hfile->Get(
"h_map_HB");
951 Map_Calib[1][2] = (TH2F *)hfile->Get(
"h_map_HB");
952 Map_Calib[2][1] = (TH2F *)hfile->Get(
"h_map_HE");
953 Map_Calib[2][2] = (TH2F *)hfile->Get(
"h_map_HE");
954 Map_Calib[2][3] = (TH2F *)hfile->Get(
"h_map_HE");
955 Map_Calib[3][4] = (TH2F *)hfile->Get(
"h_map_HO");
956 Map_Calib[4][1] = (TH2F *)hfile->Get(
"h_map_HF");
957 Map_Calib[4][2] = (TH2F *)hfile->Get(
"h_map_HF");
963 for (
int sub = 1; sub <= 4; sub++) {
989 Map_Calib[sub][
k]->SetTitle(str);
990 Map_Calib[sub][
k]->SetXTitle(
"#eta \b");
991 Map_Calib[sub][
k]->SetYTitle(
"#phi \b");
992 Map_Calib[sub][
k]->SetZTitle(
"Number of events\b");
994 Map_Calib[sub][
k]->SetTitleOffset(0.8,
"Z");
995 Map_Calib[sub][
k]->Draw(
"COLZ");
996 Map_Calib[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1006 cONE->Print(
"MapRateCalibEntryHB.png");
1010 cONE->Print(
"MapRateCalibEntryHE.png");
1014 cONE->Print(
"MapRateCalibEntryHO.png");
1018 cONE->Print(
"MapRateCalibEntryHF.png");
1027 Map_Ampl[11][1][1] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HB");
1028 Map_Ampl[11][1][2] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HB");
1029 Map_Ampl[11][2][1] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HE");
1030 Map_Ampl[11][2][2] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HE");
1031 Map_Ampl[11][2][3] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HE");
1032 Map_Ampl[11][3][4] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HO");
1033 Map_Ampl[11][4][1] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HF");
1034 Map_Ampl[11][4][2] = (TH2F *)hfile->Get(
"h_mapCapCalib047_HF");
1036 for (
int sub = 1; sub <= 4; sub++) {
1051 Map_Ampl[11][sub][
k]->Divide(Map_Ampl[11][sub][k], Map_Calib[sub][k], 1, 1,
"B");
1063 Map_Ampl[11][sub][
k]->SetTitle(str);
1064 Map_Ampl[11][sub][
k]->SetXTitle(
"#eta \b");
1065 Map_Ampl[11][sub][
k]->SetYTitle(
"#phi \b");
1066 Map_Ampl[11][sub][
k]->SetZTitle(
"Rate \b");
1067 Map_Ampl[11][sub][
k]->SetTitleOffset(0.75,
"Z");
1068 Map_Ampl[11][sub][
k]->Draw(
"COLZ");
1069 Map_Ampl[11][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1070 Map_Ampl[11][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
1079 cONE->Print(
"MapRateCapCalibHB.png");
1083 cONE->Print(
"MapRateCapCalibHE.png");
1087 cONE->Print(
"MapRateCapCalibHO.png");
1091 cONE->Print(
"MapRateCapCalibHF.png");
1100 Map_Ampl[12][1][1] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HB");
1101 Map_Ampl[12][1][2] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HB");
1102 Map_Ampl[12][2][1] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HE");
1103 Map_Ampl[12][2][2] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HE");
1104 Map_Ampl[12][2][3] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HE");
1105 Map_Ampl[12][3][4] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HO");
1106 Map_Ampl[12][4][1] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HF");
1107 Map_Ampl[12][4][2] = (TH2F *)hfile->Get(
"h_mapADCCalib047_HF");
1109 HistAmpl[12][1] = (TH1F *)hfile->Get(
"h_ADCCalib_HB");
1110 HistAmpl[12][2] = (TH1F *)hfile->Get(
"h_ADCCalib_HE");
1111 HistAmpl[12][3] = (TH1F *)hfile->Get(
"h_ADCCalib_HO");
1112 HistAmpl[12][4] = (TH1F *)hfile->Get(
"h_ADCCalib_HF");
1118 Map_Ampl[13][1][1] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HB");
1119 Map_Ampl[13][1][2] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HB");
1120 Map_Ampl[13][2][1] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HE");
1121 Map_Ampl[13][2][2] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HE");
1122 Map_Ampl[13][2][3] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HE");
1123 Map_Ampl[13][3][4] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HO");
1124 Map_Ampl[13][4][1] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HF");
1125 Map_Ampl[13][4][2] = (TH2F *)hfile->Get(
"h_mapWidthCalib047_HF");
1127 HistAmpl[13][1] = (TH1F *)hfile->Get(
"h_WidthCalib_HB");
1128 HistAmpl[13][2] = (TH1F *)hfile->Get(
"h_WidthCalib_HE");
1129 HistAmpl[13][3] = (TH1F *)hfile->Get(
"h_WidthCalib_HO");
1130 HistAmpl[13][4] = (TH1F *)hfile->Get(
"h_WidthCalib_HF");
1136 Map_Ampl[14][1][1] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HB");
1137 Map_Ampl[14][1][2] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HB");
1138 Map_Ampl[14][2][1] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HE");
1139 Map_Ampl[14][2][2] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HE");
1140 Map_Ampl[14][2][3] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HE");
1141 Map_Ampl[14][3][4] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HO");
1142 Map_Ampl[14][4][1] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HF");
1143 Map_Ampl[14][4][2] = (TH2F *)hfile->Get(
"h_mapRatioCalib047_HF");
1145 HistAmpl[14][1] = (TH1F *)hfile->Get(
"h_RatioCalib_HB");
1146 HistAmpl[14][2] = (TH1F *)hfile->Get(
"h_RatioCalib_HE");
1147 HistAmpl[14][3] = (TH1F *)hfile->Get(
"h_RatioCalib_HO");
1148 HistAmpl[14][4] = (TH1F *)hfile->Get(
"h_RatioCalib_HF");
1154 Map_Ampl[15][1][1] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HB");
1155 Map_Ampl[15][1][2] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HB");
1156 Map_Ampl[15][2][1] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HE");
1157 Map_Ampl[15][2][2] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HE");
1158 Map_Ampl[15][2][3] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HE");
1159 Map_Ampl[15][3][4] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HO");
1160 Map_Ampl[15][4][1] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HF");
1161 Map_Ampl[15][4][2] = (TH2F *)hfile->Get(
"h_mapTSmeanCalib047_HF");
1163 HistAmpl[15][1] = (TH1F *)hfile->Get(
"h_TSmeanCalib_HB");
1164 HistAmpl[15][2] = (TH1F *)hfile->Get(
"h_TSmeanCalib_HE");
1165 HistAmpl[15][3] = (TH1F *)hfile->Get(
"h_TSmeanCalib_HO");
1166 HistAmpl[15][4] = (TH1F *)hfile->Get(
"h_TSmeanCalib_HF");
1172 Map_Ampl[16][1][1] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HB");
1173 Map_Ampl[16][1][2] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HB");
1174 Map_Ampl[16][2][1] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HE");
1175 Map_Ampl[16][2][2] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HE");
1176 Map_Ampl[16][2][3] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HE");
1177 Map_Ampl[16][3][4] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HO");
1178 Map_Ampl[16][4][1] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HF");
1179 Map_Ampl[16][4][2] = (TH2F *)hfile->Get(
"h_mapTSmaxCalib047_HF");
1181 HistAmpl[16][1] = (TH1F *)hfile->Get(
"h_TSmaxCalib_HB");
1182 HistAmpl[16][2] = (TH1F *)hfile->Get(
"h_TSmaxCalib_HE");
1183 HistAmpl[16][3] = (TH1F *)hfile->Get(
"h_TSmaxCalib_HO");
1184 HistAmpl[16][4] = (TH1F *)hfile->Get(
"h_TSmaxCalib_HF");
1187 for (
int sub = 1; sub <= 4; sub++) {
1216 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][k], Map_Calib[sub][k], 1, 1,
"B");
1228 Map_Ampl[
test][sub][
k]->SetTitle(str);
1229 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
1230 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
1231 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
1232 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
1233 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
1234 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1235 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.00001, 1.);
1244 cONE->Print(
"MapRateAmplCalibHB.png");
1248 cONE->Print(
"MapRateAmplCalibHE.png");
1252 cONE->Print(
"MapRateAmplCalibHO.png");
1256 cONE->Print(
"MapRateAmplCalibHF.png");
1262 cONE->Print(
"MapRateRMSCalibHB.png");
1266 cONE->Print(
"MapRateRMSCalibHE.png");
1270 cONE->Print(
"MapRateRMSCalibHO.png");
1274 cONE->Print(
"MapRateRMSCalibHF.png");
1280 cONE->Print(
"MapRate43TStoAllTSCalibHB.png");
1284 cONE->Print(
"MapRate43TStoAllTSCalibHE.png");
1288 cONE->Print(
"MapRate43TStoAllTSCalibHO.png");
1292 cONE->Print(
"MapRate43TStoAllTSCalibHF.png");
1298 cONE->Print(
"MapRateMeanPosCalibHB.png");
1302 cONE->Print(
"MapRateMeanPosCalibHE.png");
1306 cONE->Print(
"MapRateMeanPosCalibHO.png");
1310 cONE->Print(
"MapRateMeanPosCalibHF.png");
1316 cONE->Print(
"MapRateMaxPosCalibHB.png");
1320 cONE->Print(
"MapRateMaxPosCalibHE.png");
1324 cONE->Print(
"MapRateMaxPosCalibHO.png");
1328 cONE->Print(
"MapRateMaxPosCalibHF.png");
1339 HistAmpl[
test][sub]->SetTitle(
"HB, All Depth");
1341 HistAmpl[
test][sub]->SetTitle(
"HE, All Depth");
1343 HistAmpl[
test][sub]->SetTitle(
"HO, All Depth");
1345 HistAmpl[
test][sub]->SetTitle(
"HF, All Depth");
1347 HistAmpl[
test][sub]->SetXTitle(
"ADC Amlitude in each event & cell \b");
1349 HistAmpl[
test][sub]->SetXTitle(
"Amplitude RMS in each event & cell \b");
1351 HistAmpl[
test][sub]->SetXTitle(
"Ratio in each event & cell \b");
1353 HistAmpl[
test][sub]->SetXTitle(
"Mean TS position in each event & cell \b");
1355 HistAmpl[
test][sub]->SetXTitle(
"Max TS position in each event & cell \b");
1356 HistAmpl[
test][sub]->SetYTitle(
"Number of cell-events \b");
1357 HistAmpl[
test][sub]->SetLineColor(4);
1358 HistAmpl[
test][sub]->SetLineWidth(2);
1359 HistAmpl[
test][sub]->SetTitleOffset(1.4,
"Y");
1360 HistAmpl[
test][sub]->Draw(
"");
1364 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(1., 10000.);
1367 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 5.);
1369 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 1.);
1371 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
1373 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
1376 double min_x[] = {MIN_C[
test - 10][sub], MIN_C[
test - 10][sub]};
1377 double min_y[] = {0., 100000000.};
1378 TGraph *MIN =
new TGraph(2, min_x, min_y);
1379 MIN->SetLineStyle(2);
1380 MIN->SetLineColor(2);
1381 MIN->SetLineWidth(2 + 100 * 100);
1382 MIN->SetFillStyle(3005);
1383 MIN->SetFillColor(2);
1385 double max_x[] = {MAX_C[
test - 10][sub], MAX_C[
test - 10][sub]};
1386 double max_y[] = {0., 100000000.};
1387 TGraph *MAX =
new TGraph(2, max_x, max_y);
1388 MAX->SetLineStyle(2);
1389 MAX->SetLineColor(2);
1390 MAX->SetLineWidth(-2 - 100 * 100);
1391 MAX->SetFillStyle(3004);
1392 MAX->SetFillColor(2);
1396 cONE->Print(
"HistAmplCalibHB.png");
1400 cONE->Print(
"HistAmplCalibHE.png");
1404 cONE->Print(
"HistAmplCalibHO.png");
1408 cONE->Print(
"HistAmplCalibHF.png");
1414 cONE->Print(
"HistRMSCalibHB.png");
1418 cONE->Print(
"HistRMSCalibHE.png");
1422 cONE->Print(
"HistRMSCalibHO.png");
1426 cONE->Print(
"HistRMSCalibHF.png");
1432 cONE->Print(
"Hist43TStoAllTSCalibHB.png");
1436 cONE->Print(
"Hist43TStoAllTSCalibHE.png");
1440 cONE->Print(
"Hist43TStoAllTSCalibHO.png");
1444 cONE->Print(
"Hist43TStoAllTSCalibHF.png");
1450 cONE->Print(
"HistMeanPosCalibHB.png");
1454 cONE->Print(
"HistMeanPosCalibHE.png");
1458 cONE->Print(
"HistMeanPosCalibHO.png");
1462 cONE->Print(
"HistMeanPosCalibHF.png");
1468 cONE->Print(
"HistMaxPosCalibHB.png");
1472 cONE->Print(
"HistMaxPosCalibHE.png");
1476 cONE->Print(
"HistMaxPosCalibHO.png");
1480 cONE->Print(
"HistMaxPosCalibHF.png");
1491 Map_Ampl[21][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1AmplE34_HB");
1492 Map_Ampl[21][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2AmplE34_HB");
1493 Map_Ampl[21][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3AmplE34_HB");
1494 Map_Ampl[21][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4AmplE34_HB");
1495 Map_Ampl[21][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1AmplE34_HE");
1496 Map_Ampl[21][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2AmplE34_HE");
1497 Map_Ampl[21][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3AmplE34_HE");
1498 Map_Ampl[21][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4AmplE34_HE");
1499 Map_Ampl[21][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5AmplE34_HE");
1500 Map_Ampl[21][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6AmplE34_HE");
1501 Map_Ampl[21][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7AmplE34_HE");
1502 Map_Ampl[21][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4AmplE34_HO");
1503 Map_Ampl[21][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1AmplE34_HF");
1504 Map_Ampl[21][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2AmplE34_HF");
1505 Map_Ampl[21][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3AmplE34_HF");
1506 Map_Ampl[21][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4AmplE34_HF");
1508 TH2F *Map_RefAmpl[5][ALLDEPTH];
1509 TH2F *Map_RefSUB[5][ALLDEPTH];
1511 Map_RefAmpl[1][1] = (TH2F *)hreffile->Get(
"h_mapDepth1AmplE34_HB");
1512 Map_RefAmpl[1][2] = (TH2F *)hreffile->Get(
"h_mapDepth2AmplE34_HB");
1513 Map_RefAmpl[1][3] = (TH2F *)hreffile->Get(
"h_mapDepth3AmplE34_HB");
1514 Map_RefAmpl[1][4] = (TH2F *)hreffile->Get(
"h_mapDepth4AmplE34_HB");
1515 Map_RefAmpl[2][1] = (TH2F *)hreffile->Get(
"h_mapDepth1AmplE34_HE");
1516 Map_RefAmpl[2][2] = (TH2F *)hreffile->Get(
"h_mapDepth2AmplE34_HE");
1517 Map_RefAmpl[2][3] = (TH2F *)hreffile->Get(
"h_mapDepth3AmplE34_HE");
1518 Map_RefAmpl[2][4] = (TH2F *)hreffile->Get(
"h_mapDepth4AmplE34_HE");
1519 Map_RefAmpl[2][5] = (TH2F *)hreffile->Get(
"h_mapDepth5AmplE34_HE");
1520 Map_RefAmpl[2][6] = (TH2F *)hreffile->Get(
"h_mapDepth6AmplE34_HE");
1521 Map_RefAmpl[2][7] = (TH2F *)hreffile->Get(
"h_mapDepth7AmplE34_HE");
1522 Map_RefAmpl[3][4] = (TH2F *)hreffile->Get(
"h_mapDepth4AmplE34_HO");
1523 Map_RefAmpl[4][1] = (TH2F *)hreffile->Get(
"h_mapDepth1AmplE34_HF");
1524 Map_RefAmpl[4][2] = (TH2F *)hreffile->Get(
"h_mapDepth2AmplE34_HF");
1525 Map_RefAmpl[4][3] = (TH2F *)hreffile->Get(
"h_mapDepth3AmplE34_HF");
1526 Map_RefAmpl[4][4] = (TH2F *)hreffile->Get(
"h_mapDepth4AmplE34_HF");
1528 Map_RefSUB[1][1] = (TH2F *)hreffile->Get(
"h_mapDepth1_HB");
1529 Map_RefSUB[1][2] = (TH2F *)hreffile->Get(
"h_mapDepth2_HB");
1530 Map_RefSUB[1][3] = (TH2F *)hreffile->Get(
"h_mapDepth3_HB");
1531 Map_RefSUB[1][4] = (TH2F *)hreffile->Get(
"h_mapDepth4_HB");
1532 Map_RefSUB[2][1] = (TH2F *)hreffile->Get(
"h_mapDepth1_HE");
1533 Map_RefSUB[2][2] = (TH2F *)hreffile->Get(
"h_mapDepth2_HE");
1534 Map_RefSUB[2][3] = (TH2F *)hreffile->Get(
"h_mapDepth3_HE");
1535 Map_RefSUB[2][4] = (TH2F *)hreffile->Get(
"h_mapDepth4_HE");
1536 Map_RefSUB[2][5] = (TH2F *)hreffile->Get(
"h_mapDepth5_HE");
1537 Map_RefSUB[2][6] = (TH2F *)hreffile->Get(
"h_mapDepth6_HE");
1538 Map_RefSUB[2][7] = (TH2F *)hreffile->Get(
"h_mapDepth7_HE");
1539 Map_RefSUB[3][4] = (TH2F *)hreffile->Get(
"h_mapDepth4_HO");
1540 Map_RefSUB[4][1] = (TH2F *)hreffile->Get(
"h_mapDepth1_HF");
1541 Map_RefSUB[4][2] = (TH2F *)hreffile->Get(
"h_mapDepth2_HF");
1542 Map_RefSUB[4][3] = (TH2F *)hreffile->Get(
"h_mapDepth3_HF");
1543 Map_RefSUB[4][4] = (TH2F *)hreffile->Get(
"h_mapDepth4_HF");
1545 HistAmplDepth[21][1][1] =
new TH1F(
"diffAmpl_Depth1_HB",
"", 100, -10., 10.);
1546 HistAmplDepth[21][1][2] =
new TH1F(
"diffAmpl_Depth2_HB",
"", 100, -10., 10.);
1547 HistAmplDepth[21][1][3] =
new TH1F(
"diffAmpl_Depth3_HB",
"", 100, -10., 10.);
1548 HistAmplDepth[21][1][4] =
new TH1F(
"diffAmpl_Depth4_HB",
"", 100, -10., 10.);
1549 HistAmplDepth[21][2][1] =
new TH1F(
"diffAmpl_Depth1_HE",
"", 100, -10., 10.);
1550 HistAmplDepth[21][2][2] =
new TH1F(
"diffAmpl_Depth2_HE",
"", 100, -10., 10.);
1551 HistAmplDepth[21][2][3] =
new TH1F(
"diffAmpl_Depth3_HE",
"", 100, -10., 10.);
1552 HistAmplDepth[21][2][4] =
new TH1F(
"diffAmpl_Depth4_HE",
"", 100, -10., 10.);
1553 HistAmplDepth[21][2][5] =
new TH1F(
"diffAmpl_Depth5_HE",
"", 100, -10., 10.);
1554 HistAmplDepth[21][2][6] =
new TH1F(
"diffAmpl_Depth6_HE",
"", 100, -10., 10.);
1555 HistAmplDepth[21][2][7] =
new TH1F(
"diffAmpl_Depth7_HE",
"", 100, -10., 10.);
1556 HistAmplDepth[21][3][4] =
new TH1F(
"diffAmpl_Depth4_HO",
"", 100, -10., 10.);
1557 HistAmplDepth[21][4][1] =
new TH1F(
"diffAmpl_Depth1_HF",
"", 100, -10., 10.);
1558 HistAmplDepth[21][4][2] =
new TH1F(
"diffAmpl_Depth2_HF",
"", 100, -10., 10.);
1559 HistAmplDepth[21][4][3] =
new TH1F(
"diffAmpl_Depth3_HF",
"", 100, -10., 10.);
1560 HistAmplDepth[21][4][4] =
new TH1F(
"diffAmpl_Depth4_HF",
"", 100, -10., 10.);
1562 for (
int sub = 1; sub <= 4; sub++) {
1577 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1586 Map_Ampl[21][sub][
k]->Divide(Map_Ampl[21][sub][k], Map_SUB[sub][k], 1, 1,
"B");
1591 sprintf(str,
"HB, Depth%d \b", k);
1593 sprintf(str,
"HE, Depth%d \b", k);
1595 sprintf(str,
"HO, Depth%d \b", k);
1597 sprintf(str,
"HF, Depth%d \b", k);
1598 Map_Ampl[21][sub][
k]->SetTitle(str);
1599 Map_Ampl[21][sub][
k]->SetXTitle(
"#eta \b");
1600 Map_Ampl[21][sub][
k]->SetYTitle(
"#phi \b");
1601 Map_Ampl[21][sub][
k]->SetZTitle(
"Response \b");
1602 Map_Ampl[21][sub][
k]->SetTitleOffset(1.1,
"Z");
1603 Map_Ampl[21][sub][
k]->Draw(
"COLZ");
1604 Map_Ampl[21][sub][
k]->GetYaxis()->SetRangeUser(0, 71.);
1624 cHB->Print(
"MapRateAmpl1HB.png");
1628 cHE->Print(
"MapRateAmpl1HE.png");
1632 cONE->Print(
"MapRateAmpl1HO.png");
1636 cHF->Print(
"MapRateAmpl1HF.png");
1652 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1661 Map_RefAmpl[sub][
k]->Divide(Map_RefAmpl[sub][k], Map_RefSUB[sub][k], 1, 1,
"B");
1666 sprintf(str,
"HB, Depth%d \b", k);
1668 sprintf(str,
"HE, Depth%d \b", k);
1670 sprintf(str,
"HO, Depth%d \b", k);
1672 sprintf(str,
"HF, Depth%d \b", k);
1673 Map_RefAmpl[sub][
k]->SetTitle(str);
1674 Map_RefAmpl[sub][
k]->SetXTitle(
"#eta \b");
1675 Map_RefAmpl[sub][
k]->SetYTitle(
"#phi \b");
1676 Map_RefAmpl[sub][
k]->SetZTitle(
"Response\b");
1677 Map_RefAmpl[sub][
k]->SetTitleOffset(1.1,
"Z");
1678 Map_RefAmpl[sub][
k]->Draw(
"COLZ");
1679 Map_RefAmpl[sub][
k]->GetYaxis()->SetRangeUser(0, 71.);
1699 cHB->Print(
"MapRateAmpl2HB.png");
1703 cHE->Print(
"MapRateAmpl2HE.png");
1707 cONE->Print(
"MapRateAmpl2HO.png");
1711 cHF->Print(
"MapRateAmpl2HF.png");
1727 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1736 TH2F *
TTT =
new TH2F(
"Map",
"Map", 82, -41, 40, 72, 0, 71);
1737 for (
int x = 1;
x <= Map_Ampl[21][sub][
k]->GetXaxis()->GetNbins();
x++) {
1738 for (
int y = 1;
y <= Map_Ampl[21][sub][
k]->GetYaxis()->GetNbins();
y++) {
1739 if (Map_Ampl[21][sub][k]->GetBinContent(
x,
y) != 0 && Map_RefAmpl[sub][
k]->GetBinContent(
x,
y) != 0) {
1740 double ccc1 = Map_Ampl[21][sub][
k]->GetBinContent(
x,
y) - Map_RefAmpl[sub][
k]->GetBinContent(
x,
y);
1741 ccc1 = 100. * ccc1 / Map_Ampl[21][sub][
k]->GetBinContent(
x,
y);
1742 HistAmplDepth[21][sub][
k]->Fill(ccc1);
1743 Map_Ampl[21][sub][
k]->SetBinContent(
x,
y, fabs(ccc1));
1744 if (fabs(ccc1) > porog[sub])
1745 TTT->SetBinContent(
x,
y, fabs(ccc1));
1747 TTT->SetBinContent(
x,
y, 0);
1755 sprintf(str,
"HB, Depth%d \b", k);
1757 sprintf(str,
"HE, Depth%d \b", k);
1759 sprintf(str,
"HO, Depth%d \b", k);
1761 sprintf(str,
"HF, Depth%d \b", k);
1763 TTT->SetXTitle(
"#eta \b");
1764 TTT->SetYTitle(
"#phi \b");
1765 TTT->SetZTitle(
"Relative difference, % \b");
1766 TTT->SetTitleOffset(0.9,
"Z");
1768 TTT->GetYaxis()->SetRangeUser(0, 71.);
1769 TTT->GetZaxis()->SetRangeUser(0, 10.);
1789 cHB->Print(
"MapRateAmplDriftHB.png");
1793 cHE->Print(
"MapRateAmplDriftHE.png");
1797 cONE->Print(
"MapRateAmplDriftHO.png");
1801 cHF->Print(
"MapRateAmplDriftHF.png");
1818 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1831 sprintf(str,
"HB, Depth%d \b", k);
1833 sprintf(str,
"HE, Depth%d \b", k);
1835 sprintf(str,
"HO, Depth%d \b", k);
1837 sprintf(str,
"HF, Depth%d \b", k);
1838 HistAmplDepth[21][sub][
k]->SetTitle(str);
1839 HistAmplDepth[21][sub][
k]->SetYTitle(
"Number of cell-events \b");
1840 HistAmplDepth[21][sub][
k]->SetXTitle(
"Per cent \b");
1841 HistAmplDepth[21][sub][
k]->SetLineColor(4);
1842 HistAmplDepth[21][sub][
k]->SetLineWidth(2);
1843 HistAmplDepth[21][sub][
k]->SetTitleOffset(1.4,
"Y");
1844 HistAmplDepth[21][sub][
k]->Draw();
1846 HistAmplDepth[21][sub][
k]->GetXaxis()->SetRangeUser(-10., 10.);
1863 double min_x[] = {-1 * porog[sub], -1 * porog[sub]};
1864 double min_y[] = {0., 100000000.};
1865 TGraph *MIN =
new TGraph(2, min_x, min_y);
1866 MIN->SetLineStyle(2);
1867 MIN->SetLineColor(2);
1868 MIN->SetLineWidth(2 + 100 * 100);
1869 MIN->SetFillStyle(3005);
1870 MIN->SetFillColor(2);
1872 double max_x[] = {porog[sub], porog[sub]};
1873 double max_y[] = {0., 100000000.};
1874 TGraph *MAX =
new TGraph(2, max_x, max_y);
1875 MAX->SetLineStyle(2);
1876 MAX->SetLineColor(2);
1877 MAX->SetLineWidth(-2 - 100 * 100);
1878 MAX->SetFillStyle(3004);
1879 MAX->SetFillColor(2);
1883 cHB->Print(
"HistAmplDriftDepthHB.png");
1887 cHE->Print(
"HistAmplDriftDepthHE.png");
1891 cONE->Print(
"HistAmplDriftDepthHO.png");
1895 cHF->Print(
"HistAmplDriftDepthHF.png");
1904 Map_Ampl[31][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestal_HB");
1905 Map_Ampl[31][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestal_HB");
1906 Map_Ampl[31][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestal_HB");
1907 Map_Ampl[31][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestal_HB");
1908 Map_Ampl[31][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestal_HE");
1909 Map_Ampl[31][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestal_HE");
1910 Map_Ampl[31][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestal_HE");
1911 Map_Ampl[31][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestal_HE");
1912 Map_Ampl[31][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5pedestal_HE");
1913 Map_Ampl[31][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6pedestal_HE");
1914 Map_Ampl[31][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7pedestal_HE");
1915 Map_Ampl[31][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestal_HO");
1916 Map_Ampl[31][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestal_HF");
1917 Map_Ampl[31][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestal_HF");
1918 Map_Ampl[31][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestal_HF");
1919 Map_Ampl[31][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestal_HF");
1921 Map_Ampl[32][1][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestalw_HB");
1922 Map_Ampl[32][1][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestalw_HB");
1923 Map_Ampl[32][1][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestalw_HB");
1924 Map_Ampl[32][1][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestalw_HB");
1925 Map_Ampl[32][2][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestalw_HE");
1926 Map_Ampl[32][2][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestalw_HE");
1927 Map_Ampl[32][2][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestalw_HE");
1928 Map_Ampl[32][2][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestalw_HE");
1929 Map_Ampl[32][2][5] = (TH2F *)hfile->Get(
"h_mapDepth5pedestalw_HE");
1930 Map_Ampl[32][2][6] = (TH2F *)hfile->Get(
"h_mapDepth6pedestalw_HE");
1931 Map_Ampl[32][2][7] = (TH2F *)hfile->Get(
"h_mapDepth7pedestalw_HE");
1932 Map_Ampl[32][3][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestalw_HO");
1933 Map_Ampl[32][4][1] = (TH2F *)hfile->Get(
"h_mapDepth1pedestalw_HF");
1934 Map_Ampl[32][4][2] = (TH2F *)hfile->Get(
"h_mapDepth2pedestalw_HF");
1935 Map_Ampl[32][4][3] = (TH2F *)hfile->Get(
"h_mapDepth3pedestalw_HF");
1936 Map_Ampl[32][4][4] = (TH2F *)hfile->Get(
"h_mapDepth4pedestalw_HF");
1938 HistPed[1][1][0] = (TH1F *)hfile->Get(
"h_pedestal0_HB");
1939 HistPed[1][1][1] = (TH1F *)hfile->Get(
"h_pedestal1_HB");
1940 HistPed[1][1][2] = (TH1F *)hfile->Get(
"h_pedestal2_HB");
1941 HistPed[1][1][3] = (TH1F *)hfile->Get(
"h_pedestal3_HB");
1942 HistPed[2][1][0] = (TH1F *)hfile->Get(
"h_pedestalw0_HB");
1943 HistPed[2][1][1] = (TH1F *)hfile->Get(
"h_pedestalw1_HB");
1944 HistPed[2][1][2] = (TH1F *)hfile->Get(
"h_pedestalw2_HB");
1945 HistPed[2][1][3] = (TH1F *)hfile->Get(
"h_pedestalw3_HB");
1947 HistPed[1][2][0] = (TH1F *)hfile->Get(
"h_pedestal0_HE");
1948 HistPed[1][2][1] = (TH1F *)hfile->Get(
"h_pedestal1_HE");
1949 HistPed[1][2][2] = (TH1F *)hfile->Get(
"h_pedestal2_HE");
1950 HistPed[1][2][3] = (TH1F *)hfile->Get(
"h_pedestal3_HE");
1951 HistPed[2][2][0] = (TH1F *)hfile->Get(
"h_pedestalw0_HE");
1952 HistPed[2][2][1] = (TH1F *)hfile->Get(
"h_pedestalw1_HE");
1953 HistPed[2][2][2] = (TH1F *)hfile->Get(
"h_pedestalw2_HE");
1954 HistPed[2][2][3] = (TH1F *)hfile->Get(
"h_pedestalw3_HE");
1956 HistPed[1][3][0] = (TH1F *)hfile->Get(
"h_pedestal0_HO");
1957 HistPed[1][3][1] = (TH1F *)hfile->Get(
"h_pedestal1_HO");
1958 HistPed[1][3][2] = (TH1F *)hfile->Get(
"h_pedestal2_HO");
1959 HistPed[1][3][3] = (TH1F *)hfile->Get(
"h_pedestal3_HO");
1960 HistPed[2][3][0] = (TH1F *)hfile->Get(
"h_pedestalw0_HO");
1961 HistPed[2][3][1] = (TH1F *)hfile->Get(
"h_pedestalw1_HO");
1962 HistPed[2][3][2] = (TH1F *)hfile->Get(
"h_pedestalw2_HO");
1963 HistPed[2][3][3] = (TH1F *)hfile->Get(
"h_pedestalw3_HO");
1965 HistPed[1][4][0] = (TH1F *)hfile->Get(
"h_pedestal0_HF");
1966 HistPed[1][4][1] = (TH1F *)hfile->Get(
"h_pedestal1_HF");
1967 HistPed[1][4][2] = (TH1F *)hfile->Get(
"h_pedestal2_HF");
1968 HistPed[1][4][3] = (TH1F *)hfile->Get(
"h_pedestal3_HF");
1969 HistPed[2][4][0] = (TH1F *)hfile->Get(
"h_pedestalw0_HF");
1970 HistPed[2][4][1] = (TH1F *)hfile->Get(
"h_pedestalw1_HF");
1971 HistPed[2][4][2] = (TH1F *)hfile->Get(
"h_pedestalw2_HF");
1972 HistPed[2][4][3] = (TH1F *)hfile->Get(
"h_pedestalw3_HF");
1975 for (
int sub = 1; sub <= 4; sub++) {
1990 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
1999 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][k], Map_SUB[sub][k], 1, 1,
"B");
2004 sprintf(str,
"HB, Depth%d \b", k);
2006 sprintf(str,
"HE, Depth%d \b", k);
2008 sprintf(str,
"HO, Depth%d \b", k);
2010 sprintf(str,
"HF, Depth%d \b", k);
2011 Map_Ampl[
test][sub][
k]->SetTitle(str);
2012 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
2013 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
2014 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
2016 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
2017 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
2018 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
2019 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
2039 cHB->Print(
"MapRatePedHB.png");
2043 cHE->Print(
"MapRatePedHE.png");
2047 cONE->Print(
"MapRatePedHO.png");
2051 cHF->Print(
"MapRatePedHF.png");
2057 cHB->Print(
"MapRatePedWidthsHB.png");
2061 cHE->Print(
"MapRatePedWidthsHE.png");
2065 cONE->Print(
"MapRatePedWidthsHO.png");
2069 cHF->Print(
"MapRatePedWidthsHF.png");
2077 for (
int cap = 0; cap <= 3; cap++) {
2084 sprintf(str,
"HB, Cap%d, all depth\b", cap);
2086 sprintf(str,
"HE, Cap%d, all depth\b", cap);
2088 sprintf(str,
"HO, Cap%d, all depth\b", cap);
2090 sprintf(str,
"HF, Cap%d, all depth\b", cap);
2092 HistPed[
test - 30][sub][cap]->SetTitle(str);
2095 HistPed[
test - 30][sub][cap]->SetXTitle(
"Pedestals in each event & cell \b");
2097 HistPed[
test - 30][sub][cap]->SetXTitle(
"Pedestal Widths in each event & cell \b");
2099 HistPed[
test - 30][sub][cap]->SetYTitle(
"Number of channel-events \b");
2100 HistPed[
test - 30][sub][cap]->SetLineColor(4);
2101 HistPed[
test - 30][sub][cap]->SetLineWidth(2);
2102 HistPed[
test - 30][sub][cap]->SetTitleOffset(1.4,
"Y");
2103 HistPed[
test - 30][sub][cap]->Draw(
"");
2110 double min_x[] = {Pedest[
test - 31][sub], Pedest[
test - 31][sub]};
2111 double min_y[] = {0., 100000000.};
2112 TGraph *MIN =
new TGraph(2, min_x, min_y);
2113 MIN->SetLineStyle(2);
2114 MIN->SetLineColor(2);
2115 MIN->SetLineWidth(2 + 100 * 100);
2116 MIN->SetFillStyle(3005);
2117 MIN->SetFillColor(2);
2122 cPED->Print(
"HistPedestalsHB.png");
2126 cPED->Print(
"HistPedestalsHE.png");
2130 cPED->Print(
"HistPedestalsHO.png");
2134 cPED->Print(
"HistPedestalsHF.png");
2140 cPED->Print(
"HistPedestalWidthsHB.png");
2144 cPED->Print(
"HistPedestalWidthsHE.png");
2148 cPED->Print(
"HistPedestalWidthsHO.png");
2152 cPED->Print(
"HistPedestalWidthsHF.png");
2164 Map_Ped[1][1] = (TH2F *)hfile->Get(
"h2_pedvsampl_HB");
2165 Map_Ped[1][2] = (TH2F *)hfile->Get(
"h2_pedvsampl_HE");
2166 Map_Ped[1][3] = (TH2F *)hfile->Get(
"h2_pedvsampl_HO");
2167 Map_Ped[1][4] = (TH2F *)hfile->Get(
"h2_pedvsampl_HF");
2168 Map_Ped[2][1] = (TH2F *)hfile->Get(
"h2_pedwvsampl_HB");
2169 Map_Ped[2][2] = (TH2F *)hfile->Get(
"h2_pedwvsampl_HE");
2170 Map_Ped[2][3] = (TH2F *)hfile->Get(
"h2_pedwvsampl_HO");
2171 Map_Ped[2][4] = (TH2F *)hfile->Get(
"h2_pedwvsampl_HF");
2172 for (
int sub = 1; sub <= 4; sub++) {
2180 Map_Ped[
test][sub]->SetXTitle(
"Pedestal, fC \b");
2182 Map_Ped[
test][sub]->SetXTitle(
"pedestal Width, fC \b");
2183 Map_Ped[
test][sub]->SetYTitle(
"Amplitude, fC \b");
2184 Map_Ped[
test][sub]->SetZTitle(
"entries \b");
2186 sprintf(str,
"Cap0 Pedestal vs Amplitude \b");
2188 sprintf(str,
"Cap0 pedestalWidth vs Amplitude \b");
2189 Map_Ped[
test][sub]->SetTitle(str);
2190 Map_Ped[
test][sub]->Draw(
"COLZ");
2197 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHB.png");
2201 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHE.png");
2205 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHO.png");
2209 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHF.png");
2219 hist_GoodTSshape[1] = (TH1F *)hfile->Get(
"h_shape_good_channels_HB");
2220 hist_GoodTSshape[2] = (TH1F *)hfile->Get(
"h_shape_good_channels_HE");
2221 hist_GoodTSshape[3] = (TH1F *)hfile->Get(
"h_shape_good_channels_HO");
2222 hist_GoodTSshape[4] = (TH1F *)hfile->Get(
"h_shape_good_channels_HF");
2224 hist_GoodTSshape0[1] = (TH1F *)hfile->Get(
"h_shape0_good_channels_HB");
2225 hist_GoodTSshape0[2] = (TH1F *)hfile->Get(
"h_shape0_good_channels_HE");
2226 hist_GoodTSshape0[3] = (TH1F *)hfile->Get(
"h_shape0_good_channels_HO");
2227 hist_GoodTSshape0[4] = (TH1F *)hfile->Get(
"h_shape0_good_channels_HF");
2229 hist_BadTSshape[1] = (TH1F *)hfile->Get(
"h_shape_bad_channels_HB");
2230 hist_BadTSshape[2] = (TH1F *)hfile->Get(
"h_shape_bad_channels_HE");
2231 hist_BadTSshape[3] = (TH1F *)hfile->Get(
"h_shape_bad_channels_HO");
2232 hist_BadTSshape[4] = (TH1F *)hfile->Get(
"h_shape_bad_channels_HF");
2234 hist_BadTSshape0[1] = (TH1F *)hfile->Get(
"h_shape0_bad_channels_HB");
2235 hist_BadTSshape0[2] = (TH1F *)hfile->Get(
"h_shape0_bad_channels_HE");
2236 hist_BadTSshape0[3] = (TH1F *)hfile->Get(
"h_shape0_bad_channels_HO");
2237 hist_BadTSshape0[4] = (TH1F *)hfile->Get(
"h_shape0_bad_channels_HF");
2241 for (
int sub = 1; sub <= 4; sub++) {
2246 hist_GoodTSshape[sub]->Divide(hist_GoodTSshape[sub], hist_GoodTSshape0[sub], 1, 1,
"B");
2247 hist_GoodTSshape[sub]->SetXTitle(
"Time slice \b");
2248 hist_GoodTSshape[sub]->SetYTitle(
"ADC counts \b");
2249 sprintf(str,
"Mean ADC Shape \b");
2250 hist_GoodTSshape[sub]->SetTitle(str);
2251 hist_GoodTSshape[sub]->Draw(
"");
2257 cONE->Print(
"HistGoodTSshapesHB.png");
2261 cONE->Print(
"HistGoodTSshapesHE.png");
2265 cONE->Print(
"HistGoodTSshapesHO.png");
2269 cONE->Print(
"HistGoodTSshapesHF.png");
2274 for (
int sub = 1; sub <= 4; sub++) {
2279 hist_BadTSshape[sub]->Divide(hist_BadTSshape[sub], hist_BadTSshape0[sub], 1, 1,
"B");
2280 hist_BadTSshape[sub]->SetXTitle(
"Time slice \b");
2281 hist_BadTSshape[sub]->SetYTitle(
"ADC counts \b");
2282 sprintf(str,
"Mean ADC Shape \b");
2283 hist_BadTSshape[sub]->SetTitle(str);
2284 hist_BadTSshape[sub]->Draw(
"");
2290 cONE->Print(
"HistBadTSshapesHB.png");
2294 cONE->Print(
"HistBadTSshapesHE.png");
2298 cONE->Print(
"HistBadTSshapesHO.png");
2302 cONE->Print(
"HistBadTSshapesHF.png");
2543 const int neta = 82;
2544 const int nphi = 72;
2548 double alexhe[
ndepth][njeta][njphi];
2549 double variance[
ndepth][njeta][njphi];
2551 const int jposbeg = 57;
2552 const int jposend = 71;
2554 const int jnegbeg = 12;
2555 const int jnegend = 26;
2557 cout <<
"Iteration Method for Calibration Group nsub= " << nsub <<
" ndepth = " << ndepth <<
" neta = " << neta
2558 <<
" nphi = " << nphi << endl;
2559 cout <<
"Iteration Method for Calibration Group njdepth = " << njdepth <<
" njeta = " << njeta
2560 <<
" njphi = " << njphi << endl;
2561 cout <<
"Iteration Method for Calibration Group jposbeg = " << jposbeg <<
" jposend = " << jposend
2562 <<
" jnegbeg = " << jnegbeg <<
" jnegend = " << jnegend << endl;
2580 TH2F *maprphinorm1HE1 = (TH2F *)hfile->Get(
"h_maprphinorm_HE1");
2581 TH2F *maprphinorm0HE1 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE1");
2582 TH2F *maprphinormHE1 = (TH2F *)maprphinorm1HE1->Clone(
"maprphinormHE1");
2583 maprphinormHE1->Divide(maprphinorm1HE1, maprphinorm0HE1, 1, 1,
"B");
2584 TH2F *maprphinorm1HE2 = (TH2F *)hfile->Get(
"h_maprphinorm_HE2");
2585 TH2F *maprphinorm0HE2 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE2");
2586 TH2F *maprphinormHE2 = (TH2F *)maprphinorm1HE2->Clone(
"maprphinormHE2");
2587 maprphinormHE2->Divide(maprphinorm1HE2, maprphinorm0HE2, 1, 1,
"B");
2588 TH2F *maprphinorm1HE3 = (TH2F *)hfile->Get(
"h_maprphinorm_HE3");
2589 TH2F *maprphinorm0HE3 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE3");
2590 TH2F *maprphinormHE3 = (TH2F *)maprphinorm1HE3->Clone(
"maprphinormHE3");
2591 maprphinormHE3->Divide(maprphinorm1HE3, maprphinorm0HE3, 1, 1,
"B");
2592 TH2F *maprphinorm1HE4 = (TH2F *)hfile->Get(
"h_maprphinorm_HE4");
2593 TH2F *maprphinorm0HE4 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE4");
2594 TH2F *maprphinormHE4 = (TH2F *)maprphinorm1HE4->Clone(
"maprphinormHE4");
2595 maprphinormHE4->Divide(maprphinorm1HE4, maprphinorm0HE4, 1, 1,
"B");
2596 TH2F *maprphinorm1HE5 = (TH2F *)hfile->Get(
"h_maprphinorm_HE5");
2597 TH2F *maprphinorm0HE5 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE5");
2598 TH2F *maprphinormHE5 = (TH2F *)maprphinorm1HE5->Clone(
"maprphinormHE5");
2599 maprphinormHE5->Divide(maprphinorm1HE5, maprphinorm0HE5, 1, 1,
"B");
2600 TH2F *maprphinorm1HE6 = (TH2F *)hfile->Get(
"h_maprphinorm_HE6");
2601 TH2F *maprphinorm0HE6 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE6");
2602 TH2F *maprphinormHE6 = (TH2F *)maprphinorm1HE6->Clone(
"maprphinormHE6");
2603 maprphinormHE6->Divide(maprphinorm1HE6, maprphinorm0HE6, 1, 1,
"B");
2604 TH2F *maprphinorm1HE7 = (TH2F *)hfile->Get(
"h_maprphinorm_HE7");
2605 TH2F *maprphinorm0HE7 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE7");
2606 TH2F *maprphinormHE7 = (TH2F *)maprphinorm1HE7->Clone(
"maprphinormHE7");
2607 maprphinormHE7->Divide(maprphinorm1HE7, maprphinorm0HE7, 1, 1,
"B");
2609 for (
int jeta = 0; jeta < njeta; jeta++) {
2610 for (
int jphi = 0; jphi < njphi; jphi++) {
2611 alexhe[0][jeta][jphi] = maprphinormHE1->GetBinContent(jeta + 1, jphi + 1);
2612 alexhe[1][jeta][jphi] = maprphinormHE2->GetBinContent(jeta + 1, jphi + 1);
2613 alexhe[2][jeta][jphi] = maprphinormHE3->GetBinContent(jeta + 1, jphi + 1);
2614 alexhe[3][jeta][jphi] = maprphinormHE4->GetBinContent(jeta + 1, jphi + 1);
2615 alexhe[4][jeta][jphi] = maprphinormHE5->GetBinContent(jeta + 1, jphi + 1);
2616 alexhe[5][jeta][jphi] = maprphinormHE6->GetBinContent(jeta + 1, jphi + 1);
2617 alexhe[6][jeta][jphi] = maprphinormHE7->GetBinContent(jeta + 1, jphi + 1);
2624 cout <<
" R2D-eta/phi-plot: R, averaged over depthes *****" << endl;
2629 TH2F *Gefz42D =
new TH2F(
"Gefz42D",
"", neta, -41., 41., nphi, 0., 72.);
2630 TH2F *Gefz42D0 =
new TH2F(
"Gefz42D0",
"", neta, -41., 41., nphi, 0., 72.);
2631 TH2F *Gefz42DF = (TH2F *)Gefz42D0->Clone(
"Gefz42DF");
2633 for (
int jeta = 0; jeta <
neta; jeta++) {
2634 for (
int jphi = 0; jphi <
nphi; jphi++) {
2635 double ccc1 = alexhe[
i][jeta][jphi];
2636 int k2plot = jeta - 41;
2639 Gefz42D->Fill(kkk, jphi, ccc1);
2640 Gefz42D0->Fill(kkk, jphi, 1.);
2645 Gefz42DF->Divide(Gefz42D, Gefz42D0, 1, 1,
"B");
2648 Gefz42DF->SetMarkerStyle(20);
2649 Gefz42DF->SetMarkerSize(0.4);
2650 Gefz42DF->GetZaxis()->SetLabelSize(0.08);
2651 Gefz42DF->SetXTitle(
"<R>_depth #eta \b");
2652 Gefz42DF->SetYTitle(
" #phi \b");
2653 Gefz42DF->SetZTitle(
"<R>_depth \b");
2654 Gefz42DF->SetMarkerColor(2);
2655 Gefz42DF->SetLineColor(0);
2656 Gefz42DF->Draw(
"COLZ");
2660 c1x0->Print(
"Rhist2IterationMethodHE.png");
2672 cout <<
" 1D plot: R vs phi , averaged over depthes & eta *****" << endl;
2677 TH1F *Gefz41D =
new TH1F(
"Gefz41D",
"", nphi, 0., 72.);
2678 TH1F *Gefz41D0 =
new TH1F(
"Gefz41D0",
"", nphi, 0., 72.);
2679 TH1F *Gefz41DF = (TH1F *)Gefz41D0->Clone(
"Gefz41DF");
2681 for (
int jeta = 0; jeta <
neta; jeta++) {
2683 if (jeta - 41 > 0) {
2684 for (
int jphi = 0; jphi <
nphi; jphi++) {
2686 double ccc1 = alexhe[
i][jeta][jphi];
2688 Gefz41D->Fill(jphi, ccc1);
2689 Gefz41D0->Fill(jphi, 1.);
2697 Gefz41DF->Divide(Gefz41D, Gefz41D0, 1, 1,
"B");
2702 Gefz41DF->SetMarkerStyle(20);
2703 Gefz41DF->SetMarkerSize(1.4);
2704 Gefz41DF->GetZaxis()->SetLabelSize(0.08);
2705 Gefz41DF->SetXTitle(
"#phi \b");
2706 Gefz41DF->SetYTitle(
" <R> \b");
2707 Gefz41DF->SetZTitle(
"<R>_PHI - AllDepthes \b");
2708 Gefz41DF->SetMarkerColor(4);
2709 Gefz41DF->SetLineColor(4);
2710 Gefz41DF->SetMinimum(0.8);
2711 Gefz41DF->Draw(
"Error");
2715 c1x1->Print(
"Rhist1IterationMethodHE.png");
2728 cout <<
" 1D plot: R vs phi , different eta, depth=1 *****" << endl;
2733 int kcountHEpositivedirection1 = 1;
2734 TH1F *h2CeffHEpositivedirection1 =
new TH1F(
"h2CeffHEpositivedirection1",
"", nphi, 0., 72.);
2736 for (
int jeta = 0; jeta < njeta; jeta++) {
2738 if (jeta - 41 > 0) {
2741 for (
int i = 0;
i < 1;
i++) {
2742 TH1F *HEpositivedirection1 = (TH1F *)h2CeffHEpositivedirection1->Clone(
"twod1");
2745 for (
int jphi = 0; jphi <
nphi; jphi++) {
2746 double ccc1 = alexhe[
i][jeta][jphi];
2748 HEpositivedirection1->Fill(jphi, ccc1);
2753 cout <<
"444 kcountHEpositivedirection1 = " << kcountHEpositivedirection1
2754 <<
" jeta-41= " << jeta - 41 << endl;
2755 c3x5->cd(kcountHEpositivedirection1);
2756 HEpositivedirection1->SetMarkerStyle(20);
2757 HEpositivedirection1->SetMarkerSize(0.4);
2758 HEpositivedirection1->GetYaxis()->SetLabelSize(0.04);
2759 HEpositivedirection1->SetXTitle(
"HEpositivedirection1 \b");
2760 HEpositivedirection1->SetMarkerColor(2);
2761 HEpositivedirection1->SetLineColor(0);
2765 if (kcountHEpositivedirection1 == 1)
2766 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 18; depth = 1 \b");
2767 if (kcountHEpositivedirection1 == 2)
2768 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 19; depth = 1 \b");
2769 if (kcountHEpositivedirection1 == 3)
2770 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 20; depth = 1 \b");
2771 if (kcountHEpositivedirection1 == 4)
2772 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 21; depth = 1 \b");
2773 if (kcountHEpositivedirection1 == 5)
2774 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 22; depth = 1 \b");
2775 if (kcountHEpositivedirection1 == 6)
2776 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 23; depth = 1 \b");
2777 if (kcountHEpositivedirection1 == 7)
2778 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 24; depth = 1 \b");
2779 if (kcountHEpositivedirection1 == 8)
2780 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 25; depth = 1 \b");
2781 if (kcountHEpositivedirection1 == 9)
2782 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 26; depth = 1 \b");
2783 if (kcountHEpositivedirection1 == 10)
2784 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 27; depth = 1 \b");
2785 if (kcountHEpositivedirection1 == 11)
2786 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 28; depth = 1 \b");
2787 if (kcountHEpositivedirection1 == 12)
2788 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 29; depth = 1 \b");
2789 HEpositivedirection1->Draw(
"Error");
2790 kcountHEpositivedirection1++;
2791 if (kcountHEpositivedirection1 > 15)
2800 c3x5->Print(
"Rhist1IterationMethodDepth1HE.png");
2803 if (h2CeffHEpositivedirection1)
2804 delete h2CeffHEpositivedirection1;
2809 cout <<
" 1D plot: R vs phi , different eta, depth=2 *****" << endl;
2814 int kcountHEpositivedirection2 = 1;
2815 TH1F *h2CeffHEpositivedirection2 =
new TH1F(
"h2CeffHEpositivedirection2",
"", nphi, 0., 72.);
2817 for (
int jeta = 0; jeta < njeta; jeta++) {
2819 if (jeta - 41 > 0) {
2822 for (
int i = 1;
i < 2;
i++) {
2823 TH1F *HEpositivedirection2 = (TH1F *)h2CeffHEpositivedirection2->Clone(
"twod1");
2826 for (
int jphi = 0; jphi <
nphi; jphi++) {
2827 double ccc1 = alexhe[
i][jeta][jphi];
2829 HEpositivedirection2->Fill(jphi, ccc1);
2834 cout <<
"555 kcountHEpositivedirection2 = " << kcountHEpositivedirection2
2835 <<
" jeta-41= " << jeta - 41 << endl;
2836 c3x5->cd(kcountHEpositivedirection2);
2837 HEpositivedirection2->SetMarkerStyle(20);
2838 HEpositivedirection2->SetMarkerSize(0.4);
2839 HEpositivedirection2->GetYaxis()->SetLabelSize(0.04);
2840 HEpositivedirection2->SetXTitle(
"HEpositivedirection2 \b");
2841 HEpositivedirection2->SetMarkerColor(2);
2842 HEpositivedirection2->SetLineColor(0);
2846 if (kcountHEpositivedirection2 == 1)
2847 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 17; depth = 2 \b");
2848 if (kcountHEpositivedirection2 == 2)
2849 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 18; depth = 2 \b");
2850 if (kcountHEpositivedirection2 == 3)
2851 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 19; depth = 2 \b");
2852 if (kcountHEpositivedirection2 == 4)
2853 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 20; depth = 2 \b");
2854 if (kcountHEpositivedirection2 == 5)
2855 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 21; depth = 2 \b");
2856 if (kcountHEpositivedirection2 == 6)
2857 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 22; depth = 2 \b");
2858 if (kcountHEpositivedirection2 == 7)
2859 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 23; depth = 2 \b");
2860 if (kcountHEpositivedirection2 == 8)
2861 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 24; depth = 2 \b");
2862 if (kcountHEpositivedirection2 == 9)
2863 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 25; depth = 2 \b");
2864 if (kcountHEpositivedirection2 == 10)
2865 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 26; depth = 2 \b");
2866 if (kcountHEpositivedirection2 == 11)
2867 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 27; depth = 2 \b");
2868 if (kcountHEpositivedirection2 == 12)
2869 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 28; depth = 2 \b");
2870 if (kcountHEpositivedirection2 == 13)
2871 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 29; depth = 2 \b");
2872 HEpositivedirection2->Draw(
"Error");
2873 kcountHEpositivedirection2++;
2874 if (kcountHEpositivedirection2 > 15)
2883 c3x5->Print(
"Rhist1IterationMethodDepth2HE.png");
2886 if (h2CeffHEpositivedirection2)
2887 delete h2CeffHEpositivedirection2;
2891 cout <<
" 1D plot: R vs phi , different eta, depth=3 *****" << endl;
2896 int kcountHEpositivedirection3 = 1;
2897 TH1F *h2CeffHEpositivedirection3 =
new TH1F(
"h2CeffHEpositivedirection3",
"", nphi, 0., 72.);
2899 for (
int jeta = 0; jeta < njeta; jeta++) {
2901 if (jeta - 41 > 0) {
2904 for (
int i = 2;
i < 3;
i++) {
2905 TH1F *HEpositivedirection3 = (TH1F *)h2CeffHEpositivedirection3->Clone(
"twod1");
2908 for (
int jphi = 0; jphi <
nphi; jphi++) {
2909 double ccc1 = alexhe[
i][jeta][jphi];
2911 HEpositivedirection3->Fill(jphi, ccc1);
2916 cout <<
"666 kcountHEpositivedirection3 = " << kcountHEpositivedirection3
2917 <<
" jeta-41= " << jeta - 41 << endl;
2918 c3x5->cd(kcountHEpositivedirection3);
2919 HEpositivedirection3->SetMarkerStyle(20);
2920 HEpositivedirection3->SetMarkerSize(0.4);
2921 HEpositivedirection3->GetYaxis()->SetLabelSize(0.04);
2922 HEpositivedirection3->SetXTitle(
"HEpositivedirection3 \b");
2923 HEpositivedirection3->SetMarkerColor(2);
2924 HEpositivedirection3->SetLineColor(0);
2928 if (kcountHEpositivedirection3 == 1)
2929 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 17; depth = 3 \b");
2930 if (kcountHEpositivedirection3 == 2)
2931 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 18; depth = 3 \b");
2932 if (kcountHEpositivedirection3 == 3)
2933 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 19; depth = 3 \b");
2934 if (kcountHEpositivedirection3 == 4)
2935 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 20; depth = 3 \b");
2936 if (kcountHEpositivedirection3 == 5)
2937 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 21; depth = 3 \b");
2938 if (kcountHEpositivedirection3 == 6)
2939 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 22; depth = 3 \b");
2940 if (kcountHEpositivedirection3 == 7)
2941 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 23; depth = 3 \b");
2942 if (kcountHEpositivedirection3 == 8)
2943 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 24; depth = 3 \b");
2944 if (kcountHEpositivedirection3 == 9)
2945 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 25; depth = 3 \b");
2946 if (kcountHEpositivedirection3 == 10)
2947 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 26; depth = 3 \b");
2948 if (kcountHEpositivedirection3 == 11)
2949 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 27; depth = 3 \b");
2950 if (kcountHEpositivedirection3 == 12)
2951 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 28; depth = 3 \b");
2952 if (kcountHEpositivedirection3 == 13)
2953 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 29; depth = 3 \b");
2954 HEpositivedirection3->Draw(
"Error");
2955 kcountHEpositivedirection3++;
2956 if (kcountHEpositivedirection3 > 15)
2965 c3x5->Print(
"Rhist1IterationMethodDepth3HE.png");
2968 if (h2CeffHEpositivedirection3)
2969 delete h2CeffHEpositivedirection3;
2973 cout <<
" 1D plot: R vs phi , different eta, depth=4 *****" << endl;
2978 int kcountHEpositivedirection4 = 1;
2979 TH1F *h2CeffHEpositivedirection4 =
new TH1F(
"h2CeffHEpositivedirection4",
"", nphi, 0., 72.);
2981 for (
int jeta = 0; jeta < njeta; jeta++) {
2983 if (jeta - 41 > 0) {
2986 for (
int i = 3;
i < 4;
i++) {
2987 TH1F *HEpositivedirection4 = (TH1F *)h2CeffHEpositivedirection4->Clone(
"twod1");
2990 for (
int jphi = 0; jphi <
nphi; jphi++) {
2991 double ccc1 = alexhe[
i][jeta][jphi];
2993 HEpositivedirection4->Fill(jphi, ccc1);
2998 cout <<
"777 kcountHEpositivedirection4 = " << kcountHEpositivedirection4
2999 <<
" jeta-41= " << jeta - 41 << endl;
3000 c3x5->cd(kcountHEpositivedirection4);
3001 HEpositivedirection4->SetMarkerStyle(20);
3002 HEpositivedirection4->SetMarkerSize(0.4);
3003 HEpositivedirection4->GetYaxis()->SetLabelSize(0.04);
3004 HEpositivedirection4->SetXTitle(
"HEpositivedirection4 \b");
3005 HEpositivedirection4->SetMarkerColor(2);
3006 HEpositivedirection4->SetLineColor(0);
3010 if (kcountHEpositivedirection4 == 1)
3011 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 16; depth = 4 \b");
3012 if (kcountHEpositivedirection4 == 2)
3013 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 18; depth = 4 \b");
3014 if (kcountHEpositivedirection4 == 3)
3015 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 19; depth = 4 \b");
3016 if (kcountHEpositivedirection4 == 4)
3017 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 20; depth = 4 \b");
3018 if (kcountHEpositivedirection4 == 5)
3019 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 21; depth = 4 \b");
3020 if (kcountHEpositivedirection4 == 6)
3021 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 22; depth = 4 \b");
3022 if (kcountHEpositivedirection4 == 7)
3023 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 23; depth = 4 \b");
3024 if (kcountHEpositivedirection4 == 8)
3025 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 24; depth = 4 \b");
3026 if (kcountHEpositivedirection4 == 9)
3027 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 25; depth = 4 \b");
3028 if (kcountHEpositivedirection4 == 10)
3029 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 26; depth = 4 \b");
3030 if (kcountHEpositivedirection4 == 11)
3031 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 27; depth = 4 \b");
3032 if (kcountHEpositivedirection4 == 12)
3033 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 28; depth = 4 \b");
3034 HEpositivedirection4->Draw(
"Error");
3035 kcountHEpositivedirection4++;
3036 if (kcountHEpositivedirection4 > 15)
3045 c3x5->Print(
"Rhist1IterationMethodDepth4HE.png");
3048 if (h2CeffHEpositivedirection4)
3049 delete h2CeffHEpositivedirection4;
3053 cout <<
" 1D plot: R vs phi , different eta, depth=5 *****" << endl;
3058 int kcountHEpositivedirection5 = 1;
3059 TH1F *h2CeffHEpositivedirection5 =
new TH1F(
"h2CeffHEpositivedirection5",
"", nphi, 0., 72.);
3061 for (
int jeta = 0; jeta < njeta; jeta++) {
3063 if (jeta - 41 > 0) {
3066 for (
int i = 4;
i < 5;
i++) {
3067 TH1F *HEpositivedirection5 = (TH1F *)h2CeffHEpositivedirection5->Clone(
"twod1");
3070 for (
int jphi = 0; jphi <
nphi; jphi++) {
3073 double ccc1 = alexhe[
i][jeta][jphi];
3075 HEpositivedirection5->Fill(jphi, ccc1);
3080 cout <<
"888 kcountHEpositivedirection5 = " << kcountHEpositivedirection5
3081 <<
" jeta-41= " << jeta - 41 << endl;
3082 c3x5->cd(kcountHEpositivedirection5);
3083 HEpositivedirection5->SetMarkerStyle(20);
3084 HEpositivedirection5->SetMarkerSize(0.4);
3085 HEpositivedirection5->GetYaxis()->SetLabelSize(0.04);
3086 HEpositivedirection5->SetXTitle(
"HEpositivedirection5 \b");
3087 HEpositivedirection5->SetMarkerColor(2);
3088 HEpositivedirection5->SetLineColor(0);
3092 if (kcountHEpositivedirection5 == 1)
3093 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 18; depth = 5 \b");
3094 if (kcountHEpositivedirection5 == 2)
3095 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 19; depth = 5 \b");
3096 if (kcountHEpositivedirection5 == 3)
3097 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 20; depth = 5 \b");
3098 if (kcountHEpositivedirection5 == 4)
3099 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 21; depth = 5 \b");
3100 if (kcountHEpositivedirection5 == 5)
3101 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 22; depth = 5 \b");
3102 if (kcountHEpositivedirection5 == 6)
3103 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 23; depth = 5 \b");
3104 if (kcountHEpositivedirection5 == 7)
3105 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 24; depth = 5 \b");
3106 if (kcountHEpositivedirection5 == 8)
3107 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 25; depth = 5 \b");
3108 if (kcountHEpositivedirection5 == 9)
3109 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 26; depth = 5 \b");
3110 if (kcountHEpositivedirection5 == 10)
3111 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 27; depth = 5 \b");
3112 if (kcountHEpositivedirection5 == 11)
3113 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 28; depth = 5 \b");
3114 HEpositivedirection5->Draw(
"Error");
3115 kcountHEpositivedirection5++;
3116 if (kcountHEpositivedirection5 > 15)
3125 c3x5->Print(
"Rhist1IterationMethodDepth5HE.png");
3128 if (h2CeffHEpositivedirection5)
3129 delete h2CeffHEpositivedirection5;
3133 cout <<
" 1D plot: R vs phi , different eta, depth=6 *****" << endl;
3138 int kcountHEpositivedirection6 = 1;
3139 TH1F *h2CeffHEpositivedirection6 =
new TH1F(
"h2CeffHEpositivedirection6",
"", nphi, 0., 72.);
3141 for (
int jeta = 0; jeta < njeta; jeta++) {
3143 if (jeta - 41 > 0) {
3146 for (
int i = 5;
i < 6;
i++) {
3147 TH1F *HEpositivedirection6 = (TH1F *)h2CeffHEpositivedirection6->Clone(
"twod1");
3150 for (
int jphi = 0; jphi <
nphi; jphi++) {
3151 double ccc1 = alexhe[
i][jeta][jphi];
3153 HEpositivedirection6->Fill(jphi, ccc1);
3158 cout <<
"999 kcountHEpositivedirection6 = " << kcountHEpositivedirection6
3159 <<
" jeta-41= " << jeta - 41 << endl;
3160 c3x5->cd(kcountHEpositivedirection6);
3161 HEpositivedirection6->SetMarkerStyle(20);
3162 HEpositivedirection6->SetMarkerSize(0.4);
3163 HEpositivedirection6->GetYaxis()->SetLabelSize(0.04);
3164 HEpositivedirection6->SetXTitle(
"HEpositivedirection6 \b");
3165 HEpositivedirection6->SetMarkerColor(2);
3166 HEpositivedirection6->SetLineColor(0);
3170 if (kcountHEpositivedirection6 == 1)
3171 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 19; depth = 6 \b");
3172 if (kcountHEpositivedirection6 == 2)
3173 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 20; depth = 6 \b");
3174 if (kcountHEpositivedirection6 == 3)
3175 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 21; depth = 6 \b");
3176 if (kcountHEpositivedirection6 == 4)
3177 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 22; depth = 6 \b");
3178 if (kcountHEpositivedirection6 == 5)
3179 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 23; depth = 6 \b");
3180 if (kcountHEpositivedirection6 == 6)
3181 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 24; depth = 6 \b");
3182 if (kcountHEpositivedirection6 == 7)
3183 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 25; depth = 6 \b");
3184 if (kcountHEpositivedirection6 == 8)
3185 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 26; depth = 6 \b");
3186 if (kcountHEpositivedirection6 == 9)
3187 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 27; depth = 6 \b");
3188 if (kcountHEpositivedirection6 == 10)
3189 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 28; depth = 6 \b");
3190 HEpositivedirection6->Draw(
"Error");
3191 kcountHEpositivedirection6++;
3192 if (kcountHEpositivedirection6 > 15)
3201 c3x5->Print(
"Rhist1IterationMethodDepth6HE.png");
3204 if (h2CeffHEpositivedirection6)
3205 delete h2CeffHEpositivedirection6;
3209 cout <<
" 1D plot: R vs phi , different eta, depth=7 *****" << endl;
3214 int kcountHEpositivedirection7 = 1;
3215 TH1F *h2CeffHEpositivedirection7 =
new TH1F(
"h2CeffHEpositivedirection7",
"", nphi, 0., 72.);
3217 for (
int jeta = 0; jeta < njeta; jeta++) {
3219 if (jeta - 41 > 0) {
3222 for (
int i = 6;
i < 7;
i++) {
3223 TH1F *HEpositivedirection7 = (TH1F *)h2CeffHEpositivedirection7->Clone(
"twod1");
3226 for (
int jphi = 0; jphi <
nphi; jphi++) {
3227 double ccc1 = alexhe[
i][jeta][jphi];
3229 HEpositivedirection7->Fill(jphi, ccc1);
3234 cout <<
"1010 kcountHEpositivedirection7 = " << kcountHEpositivedirection7
3235 <<
" jeta-41= " << jeta - 41 << endl;
3236 c3x5->cd(kcountHEpositivedirection7);
3237 HEpositivedirection7->SetMarkerStyle(20);
3238 HEpositivedirection7->SetMarkerSize(0.4);
3239 HEpositivedirection7->GetYaxis()->SetLabelSize(0.04);
3240 HEpositivedirection7->SetXTitle(
"HEpositivedirection7 \b");
3241 HEpositivedirection7->SetMarkerColor(2);
3242 HEpositivedirection7->SetLineColor(0);
3246 if (kcountHEpositivedirection7 == 1)
3247 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 26; depth = 7 \b");
3248 if (kcountHEpositivedirection7 == 2)
3249 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 27; depth = 7 \b");
3250 if (kcountHEpositivedirection7 == 3)
3251 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 28; depth = 7 \b");
3252 HEpositivedirection7->Draw(
"Error");
3253 kcountHEpositivedirection7++;
3254 if (kcountHEpositivedirection7 > 15)
3263 c3x5->Print(
"Rhist1IterationMethodDepth7HE.png");
3266 if (h2CeffHEpositivedirection7)
3267 delete h2CeffHEpositivedirection7;
3271 cout <<
" Start Vaiance: preparation *****" << endl;
3272 TH2F *mapdphinorm1HE1 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE1");
3273 TH2F *mapdphinorm0HE1 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE1");
3274 TH2F *mapdphinormHE1 = (TH2F *)mapdphinorm1HE1->Clone(
"mapdphinormHE1");
3275 mapdphinormHE1->Divide(mapdphinorm1HE1, mapdphinorm0HE1, 1, 1,
"B");
3276 TH2F *mapdphinorm1HE2 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE2");
3277 TH2F *mapdphinorm0HE2 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE2");
3278 TH2F *mapdphinormHE2 = (TH2F *)mapdphinorm1HE2->Clone(
"mapdphinormHE2");
3279 mapdphinormHE2->Divide(mapdphinorm1HE2, mapdphinorm0HE2, 1, 1,
"B");
3280 TH2F *mapdphinorm1HE3 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE3");
3281 TH2F *mapdphinorm0HE3 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE3");
3282 TH2F *mapdphinormHE3 = (TH2F *)mapdphinorm1HE3->Clone(
"mapdphinormHE3");
3283 mapdphinormHE3->Divide(mapdphinorm1HE3, mapdphinorm0HE3, 1, 1,
"B");
3284 TH2F *mapdphinorm1HE4 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE4");
3285 TH2F *mapdphinorm0HE4 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE4");
3286 TH2F *mapdphinormHE4 = (TH2F *)mapdphinorm1HE4->Clone(
"mapdphinormHE4");
3287 mapdphinormHE4->Divide(mapdphinorm1HE4, mapdphinorm0HE4, 1, 1,
"B");
3288 TH2F *mapdphinorm1HE5 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE5");
3289 TH2F *mapdphinorm0HE5 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE5");
3290 TH2F *mapdphinormHE5 = (TH2F *)mapdphinorm1HE5->Clone(
"mapdphinormHE5");
3291 mapdphinormHE5->Divide(mapdphinorm1HE5, mapdphinorm0HE5, 1, 1,
"B");
3292 TH2F *mapdphinorm1HE6 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE6");
3293 TH2F *mapdphinorm0HE6 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE6");
3294 TH2F *mapdphinormHE6 = (TH2F *)mapdphinorm1HE6->Clone(
"mapdphinormHE6");
3295 mapdphinormHE6->Divide(mapdphinorm1HE6, mapdphinorm0HE6, 1, 1,
"B");
3296 TH2F *mapdphinorm1HE7 = (TH2F *)hfile->Get(
"h_maprphinorm2_HE7");
3297 TH2F *mapdphinorm0HE7 = (TH2F *)hfile->Get(
"h_maprphinorm0_HE7");
3298 TH2F *mapdphinormHE7 = (TH2F *)mapdphinorm1HE7->Clone(
"mapdphinormHE7");
3299 mapdphinormHE7->Divide(mapdphinorm1HE7, mapdphinorm0HE7, 1, 1,
"B");
3300 cout <<
" Vaiance: preparation DONE *****" << endl;
3304 for (
int jeta = 0; jeta < njeta; jeta++) {
3305 for (
int jphi = 0; jphi < njphi; jphi++) {
3306 variance[0][jeta][jphi] =
3307 fabs(mapdphinormHE1->GetBinContent(jeta + 1, jphi + 1) - alexhe[0][jeta][jphi] * alexhe[0][jeta][jphi]);
3308 if (variance[0][jeta][jphi] < 0.00003)
3309 variance[0][jeta][jphi] = 0.000067;
3310 variance[1][jeta][jphi] =
3311 fabs(mapdphinormHE2->GetBinContent(jeta + 1, jphi + 1) - alexhe[1][jeta][jphi] * alexhe[1][jeta][jphi]);
3312 if (variance[1][jeta][jphi] < 0.00003)
3313 variance[1][jeta][jphi] = 0.000067;
3314 variance[2][jeta][jphi] =
3315 fabs(mapdphinormHE3->GetBinContent(jeta + 1, jphi + 1) - alexhe[2][jeta][jphi] * alexhe[2][jeta][jphi]);
3316 if (variance[2][jeta][jphi] < 0.00003)
3317 variance[2][jeta][jphi] = 0.000067;
3318 variance[3][jeta][jphi] =
3319 fabs(mapdphinormHE4->GetBinContent(jeta + 1, jphi + 1) - alexhe[3][jeta][jphi] * alexhe[3][jeta][jphi]);
3320 if (variance[3][jeta][jphi] < 0.00003)
3321 variance[3][jeta][jphi] = 0.000067;
3322 variance[4][jeta][jphi] =
3323 fabs(mapdphinormHE5->GetBinContent(jeta + 1, jphi + 1) - alexhe[4][jeta][jphi] * alexhe[4][jeta][jphi]);
3324 if (variance[4][jeta][jphi] < 0.00003)
3325 variance[4][jeta][jphi] = 0.000067;
3326 variance[5][jeta][jphi] =
3327 fabs(mapdphinormHE6->GetBinContent(jeta + 1, jphi + 1) - alexhe[5][jeta][jphi] * alexhe[5][jeta][jphi]);
3328 if (variance[5][jeta][jphi] < 0.00003)
3329 variance[5][jeta][jphi] = 0.000067;
3330 variance[6][jeta][jphi] =
3331 fabs(mapdphinormHE7->GetBinContent(jeta + 1, jphi + 1) - alexhe[6][jeta][jphi] * alexhe[6][jeta][jphi]);
3332 if (variance[6][jeta][jphi] < 0.00003)
3333 variance[6][jeta][jphi] = 0.000067;
3336 cout <<
" Vaiance: DONE*****" << endl;
3341 cout <<
" R2D-eta/phi-plot: D, averaged over depthes *****" << endl;
3346 TH2F *Defz42D =
new TH2F(
"Defz42D",
"", neta, -41., 41., nphi, 0., 72.);
3347 TH2F *Defz42D0 =
new TH2F(
"Defz42D0",
"", neta, -41., 41., nphi, 0., 72.);
3348 TH2F *Defz42DF = (TH2F *)Defz42D0->Clone(
"Defz42DF");
3350 for (
int jeta = 0; jeta <
neta; jeta++) {
3351 for (
int jphi = 0; jphi <
nphi; jphi++) {
3352 double ccc1 = variance[
i][jeta][jphi];
3353 int k2plot = jeta - 41;
3355 if (alexhe[
i][jeta][jphi] > 0.) {
3356 Defz42D->Fill(kkk, jphi, ccc1);
3357 Defz42D0->Fill(kkk, jphi, 1.);
3362 Defz42DF->Divide(Defz42D, Defz42D0, 1, 1,
"B");
3366 Defz42DF->SetMarkerStyle(20);
3367 Defz42DF->SetMarkerSize(0.4);
3368 Defz42DF->GetZaxis()->SetLabelSize(0.08);
3369 Defz42DF->SetXTitle(
"<D>_depth #eta \b");
3370 Defz42DF->SetYTitle(
" #phi \b");
3371 Defz42DF->SetZTitle(
"<D>_depth \b");
3372 Defz42DF->SetMarkerColor(2);
3373 Defz42DF->SetLineColor(0);
3374 Defz42DF->Draw(
"COLZ");
3377 c1x0->Print(
"Dhist2IterationMethodHE.png");
3389 cout <<
" 1D plot: D vs phi , averaged over depthes & eta *****" << endl;
3394 TH1F *Defz41D =
new TH1F(
"Defz41D",
"", nphi, 0., 72.);
3395 TH1F *Defz41D0 =
new TH1F(
"Defz41D0",
"", nphi, 0., 72.);
3396 TH1F *Defz41DF = (TH1F *)Defz41D0->Clone(
"Defz41DF");
3398 for (
int jeta = 0; jeta <
neta; jeta++) {
3400 for (
int jphi = 0; jphi <
nphi; jphi++) {
3401 if (jeta - 41 > 0) {
3403 double ccc1 = variance[
i][jeta][jphi];
3404 if (alexhe[
i][jeta][jphi] > 0.) {
3405 Defz41D->Fill(jphi, ccc1);
3406 Defz41D0->Fill(jphi, 1.);
3414 Defz41DF->Divide(Defz41D, Defz41D0, 1, 1,
"B");
3419 Defz41DF->SetMarkerStyle(20);
3420 Defz41DF->SetMarkerSize(1.4);
3421 Defz41DF->GetZaxis()->SetLabelSize(0.08);
3422 Defz41DF->SetXTitle(
"#phi \b");
3423 Defz41DF->SetYTitle(
" <D> \b");
3424 Defz41DF->SetZTitle(
"<D>_PHI - AllDepthes \b");
3425 Defz41DF->SetMarkerColor(4);
3426 Defz41DF->SetLineColor(4);
3427 Defz41DF->SetMinimum(0.8);
3428 Defz41DF->SetMinimum(-0.015);
3429 Defz41DF->Draw(
"Error");
3432 c1x1->Print(
"Dhist1IterationMethodHE.png");
3445 cout <<
" 1D plot: D vs phi , different eta, depth=1 *****" << endl;
3451 int kcountHEpositivedirectionD1 = 1;
3452 TH1F *h2CeffHEpositivedirectionD1 =
new TH1F(
"h2CeffHEpositivedirectionD1",
"", nphi, 0., 72.);
3454 for (
int jeta = 0; jeta < njeta; jeta++) {
3456 if (jeta - 41 > 0) {
3459 for (
int i = 0;
i < 1;
i++) {
3460 TH1F *HEpositivedirectionD1 = (TH1F *)h2CeffHEpositivedirectionD1->Clone(
"twod1");
3463 for (
int jphi = 0; jphi <
nphi; jphi++) {
3464 double ccc1 = variance[
i][jeta][jphi];
3465 if (alexhe[
i][jeta][jphi] > 0.) {
3466 HEpositivedirectionD1->Fill(jphi, ccc1);
3471 cout <<
"1414 kcountHEpositivedirectionD1 = " << kcountHEpositivedirectionD1
3472 <<
" jeta-41= " << jeta - 41 << endl;
3473 c3x5->cd(kcountHEpositivedirectionD1);
3474 HEpositivedirectionD1->SetMarkerStyle(20);
3475 HEpositivedirectionD1->SetMarkerSize(0.4);
3476 HEpositivedirectionD1->GetYaxis()->SetLabelSize(0.04);
3477 HEpositivedirectionD1->SetXTitle(
"HEpositivedirectionD1 \b");
3478 HEpositivedirectionD1->SetMarkerColor(2);
3479 HEpositivedirectionD1->SetLineColor(0);
3483 if (kcountHEpositivedirectionD1 == 1)
3484 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 18; depth = 1 \b");
3485 if (kcountHEpositivedirectionD1 == 2)
3486 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 19; depth = 1 \b");
3487 if (kcountHEpositivedirectionD1 == 3)
3488 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 20; depth = 1 \b");
3489 if (kcountHEpositivedirectionD1 == 4)
3490 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 21; depth = 1 \b");
3491 if (kcountHEpositivedirectionD1 == 5)
3492 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 22; depth = 1 \b");
3493 if (kcountHEpositivedirectionD1 == 6)
3494 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 23; depth = 1 \b");
3495 if (kcountHEpositivedirectionD1 == 7)
3496 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 24; depth = 1 \b");
3497 if (kcountHEpositivedirectionD1 == 8)
3498 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 25; depth = 1 \b");
3499 if (kcountHEpositivedirectionD1 == 9)
3500 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 26; depth = 1 \b");
3501 if (kcountHEpositivedirectionD1 == 10)
3502 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 27; depth = 1 \b");
3503 if (kcountHEpositivedirectionD1 == 11)
3504 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 28; depth = 1 \b");
3505 if (kcountHEpositivedirectionD1 == 12)
3506 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 29; depth = 1 \b");
3507 HEpositivedirectionD1->Draw(
"Error");
3508 kcountHEpositivedirectionD1++;
3509 if (kcountHEpositivedirectionD1 > 15)
3518 c3x5->Print(
"Dhist1IterationMethodDepth1HE.png");
3521 if (h2CeffHEpositivedirectionD1)
3522 delete h2CeffHEpositivedirectionD1;
3527 cout <<
" 1D plot: D vs phi , different eta, depth=2 *****" << endl;
3531 int kcountHEpositivedirectionD2 = 1;
3532 TH1F *h2CeffHEpositivedirectionD2 =
new TH1F(
"h2CeffHEpositivedirectionD2",
"", nphi, 0., 72.);
3534 for (
int jeta = 0; jeta < njeta; jeta++) {
3536 if (jeta - 41 > 0) {
3539 for (
int i = 1;
i < 2;
i++) {
3540 TH1F *HEpositivedirectionD2 = (TH1F *)h2CeffHEpositivedirectionD2->Clone(
"twod1");
3543 for (
int jphi = 0; jphi <
nphi; jphi++) {
3544 double ccc1 = variance[
i][jeta][jphi];
3545 if (alexhe[
i][jeta][jphi] > 0.) {
3546 HEpositivedirectionD2->Fill(jphi, ccc1);
3551 cout <<
"1515 kcountHEpositivedirectionD2 = " << kcountHEpositivedirectionD2
3552 <<
" jeta-41= " << jeta - 41 << endl;
3553 c3x5->cd(kcountHEpositivedirectionD2);
3554 HEpositivedirectionD2->SetMarkerStyle(20);
3555 HEpositivedirectionD2->SetMarkerSize(0.4);
3556 HEpositivedirectionD2->GetYaxis()->SetLabelSize(0.04);
3557 HEpositivedirectionD2->SetXTitle(
"HEpositivedirectionD2 \b");
3558 HEpositivedirectionD2->SetMarkerColor(2);
3559 HEpositivedirectionD2->SetLineColor(0);
3563 if (kcountHEpositivedirectionD2 == 1)
3564 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 17; depth = 2 \b");
3565 if (kcountHEpositivedirectionD2 == 2)
3566 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 18; depth = 2 \b");
3567 if (kcountHEpositivedirectionD2 == 3)
3568 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 19; depth = 2 \b");
3569 if (kcountHEpositivedirectionD2 == 4)
3570 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 20; depth = 2 \b");
3571 if (kcountHEpositivedirectionD2 == 5)
3572 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 21; depth = 2 \b");
3573 if (kcountHEpositivedirectionD2 == 6)
3574 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 22; depth = 2 \b");
3575 if (kcountHEpositivedirectionD2 == 7)
3576 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 23; depth = 2 \b");
3577 if (kcountHEpositivedirectionD2 == 8)
3578 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 24; depth = 2 \b");
3579 if (kcountHEpositivedirectionD2 == 9)
3580 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 25; depth = 2 \b");
3581 if (kcountHEpositivedirectionD2 == 10)
3582 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 26; depth = 2 \b");
3583 if (kcountHEpositivedirectionD2 == 11)
3584 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 27; depth = 2 \b");
3585 if (kcountHEpositivedirectionD2 == 12)
3586 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 28; depth = 2 \b");
3587 if (kcountHEpositivedirectionD2 == 13)
3588 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 29; depth = 2 \b");
3589 HEpositivedirectionD2->Draw(
"Error");
3590 kcountHEpositivedirectionD2++;
3591 if (kcountHEpositivedirectionD2 > 15)
3600 c3x5->Print(
"Dhist1IterationMethodDepth2HE.png");
3603 if (h2CeffHEpositivedirectionD2)
3604 delete h2CeffHEpositivedirectionD2;
3609 cout <<
" 1D plot: D vs phi , different eta, depth=3 *****" << endl;
3613 int kcountHEpositivedirectionD3 = 1;
3614 TH1F *h2CeffHEpositivedirectionD3 =
new TH1F(
"h2CeffHEpositivedirectionD3",
"", nphi, 0., 72.);
3616 for (
int jeta = 0; jeta < njeta; jeta++) {
3618 if (jeta - 41 > 0) {
3621 for (
int i = 2;
i < 3;
i++) {
3622 TH1F *HEpositivedirectionD3 = (TH1F *)h2CeffHEpositivedirectionD3->Clone(
"twod1");
3625 for (
int jphi = 0; jphi <
nphi; jphi++) {
3626 double ccc1 = variance[
i][jeta][jphi];
3627 if (alexhe[
i][jeta][jphi] > 0.) {
3628 HEpositivedirectionD3->Fill(jphi, ccc1);
3633 cout <<
"1616 kcountHEpositivedirectionD3 = " << kcountHEpositivedirectionD3
3634 <<
" jeta-41= " << jeta - 41 << endl;
3635 c3x5->cd(kcountHEpositivedirectionD3);
3636 HEpositivedirectionD3->SetMarkerStyle(20);
3637 HEpositivedirectionD3->SetMarkerSize(0.4);
3638 HEpositivedirectionD3->GetYaxis()->SetLabelSize(0.04);
3639 HEpositivedirectionD3->SetXTitle(
"HEpositivedirectionD3 \b");
3640 HEpositivedirectionD3->SetMarkerColor(2);
3641 HEpositivedirectionD3->SetLineColor(0);
3645 if (kcountHEpositivedirectionD3 == 1)
3646 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 17; depth = 3 \b");
3647 if (kcountHEpositivedirectionD3 == 2)
3648 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 18; depth = 3 \b");
3649 if (kcountHEpositivedirectionD3 == 3)
3650 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 19; depth = 3 \b");
3651 if (kcountHEpositivedirectionD3 == 4)
3652 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 20; depth = 3 \b");
3653 if (kcountHEpositivedirectionD3 == 5)
3654 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 21; depth = 3 \b");
3655 if (kcountHEpositivedirectionD3 == 6)
3656 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 22; depth = 3 \b");
3657 if (kcountHEpositivedirectionD3 == 7)
3658 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 23; depth = 3 \b");
3659 if (kcountHEpositivedirectionD3 == 8)
3660 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 24; depth = 3 \b");
3661 if (kcountHEpositivedirectionD3 == 9)
3662 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 25; depth = 3 \b");
3663 if (kcountHEpositivedirectionD3 == 10)
3664 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 26; depth = 3 \b");
3665 if (kcountHEpositivedirectionD3 == 11)
3666 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 27; depth = 3 \b");
3667 if (kcountHEpositivedirectionD3 == 12)
3668 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 28; depth = 3 \b");
3669 if (kcountHEpositivedirectionD3 == 13)
3670 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 29; depth = 3 \b");
3671 HEpositivedirectionD3->Draw(
"Error");
3672 kcountHEpositivedirectionD3++;
3673 if (kcountHEpositivedirectionD3 > 15)
3682 c3x5->Print(
"Dhist1IterationMethodDepth3HE.png");
3685 if (h2CeffHEpositivedirectionD3)
3686 delete h2CeffHEpositivedirectionD3;
3691 cout <<
" 1D plot: D vs phi , different eta, depth=4 *****" << endl;
3695 int kcountHEpositivedirectionD4 = 1;
3696 TH1F *h2CeffHEpositivedirectionD4 =
new TH1F(
"h2CeffHEpositivedirectionD4",
"", nphi, 0., 72.);
3698 for (
int jeta = 0; jeta < njeta; jeta++) {
3700 if (jeta - 41 > 0) {
3703 for (
int i = 3;
i < 4;
i++) {
3704 TH1F *HEpositivedirectionD4 = (TH1F *)h2CeffHEpositivedirectionD4->Clone(
"twod1");
3707 for (
int jphi = 0; jphi <
nphi; jphi++) {
3708 double ccc1 = variance[
i][jeta][jphi];
3709 if (alexhe[
i][jeta][jphi] > 0.) {
3710 HEpositivedirectionD4->Fill(jphi, ccc1);
3715 cout <<
"1717 kcountHEpositivedirectionD4 = " << kcountHEpositivedirectionD4
3716 <<
" jeta-41= " << jeta - 41 << endl;
3717 c3x5->cd(kcountHEpositivedirectionD4);
3718 HEpositivedirectionD4->SetMarkerStyle(20);
3719 HEpositivedirectionD4->SetMarkerSize(0.4);
3720 HEpositivedirectionD4->GetYaxis()->SetLabelSize(0.04);
3721 HEpositivedirectionD4->SetXTitle(
"HEpositivedirectionD4 \b");
3722 HEpositivedirectionD4->SetMarkerColor(2);
3723 HEpositivedirectionD4->SetLineColor(0);
3727 if (kcountHEpositivedirectionD4 == 1)
3728 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 16; depth = 4 \b");
3729 if (kcountHEpositivedirectionD4 == 2)
3730 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 18; depth = 4 \b");
3731 if (kcountHEpositivedirectionD4 == 3)
3732 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 19; depth = 4 \b");
3733 if (kcountHEpositivedirectionD4 == 4)
3734 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 20; depth = 4 \b");
3735 if (kcountHEpositivedirectionD4 == 5)
3736 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 21; depth = 4 \b");
3737 if (kcountHEpositivedirectionD4 == 6)
3738 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 22; depth = 4 \b");
3739 if (kcountHEpositivedirectionD4 == 7)
3740 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 23; depth = 4 \b");
3741 if (kcountHEpositivedirectionD4 == 8)
3742 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 24; depth = 4 \b");
3743 if (kcountHEpositivedirectionD4 == 9)
3744 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 25; depth = 4 \b");
3745 if (kcountHEpositivedirectionD4 == 10)
3746 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 26; depth = 4 \b");
3747 if (kcountHEpositivedirectionD4 == 11)
3748 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 27; depth = 4 \b");
3749 if (kcountHEpositivedirectionD4 == 12)
3750 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 28; depth = 4 \b");
3751 HEpositivedirectionD4->Draw(
"Error");
3752 kcountHEpositivedirectionD4++;
3753 if (kcountHEpositivedirectionD4 > 15)
3762 c3x5->Print(
"Dhist1IterationMethodDepth4HE.png");
3765 if (h2CeffHEpositivedirectionD4)
3766 delete h2CeffHEpositivedirectionD4;
3771 cout <<
" 1D plot: D vs phi , different eta, depth=5 *****" << endl;
3775 int kcountHEpositivedirectionD5 = 1;
3776 TH1F *h2CeffHEpositivedirectionD5 =
new TH1F(
"h2CeffHEpositivedirectionD5",
"", nphi, 0., 72.);
3778 for (
int jeta = 0; jeta < njeta; jeta++) {
3780 if (jeta - 41 > 0) {
3783 for (
int i = 4;
i < 5;
i++) {
3784 TH1F *HEpositivedirectionD5 = (TH1F *)h2CeffHEpositivedirectionD5->Clone(
"twod1");
3787 for (
int jphi = 0; jphi <
nphi; jphi++) {
3788 double ccc1 = variance[
i][jeta][jphi];
3789 if (alexhe[
i][jeta][jphi] > 0.) {
3790 HEpositivedirectionD5->Fill(jphi, ccc1);
3795 cout <<
"1818 kcountHEpositivedirectionD5 = " << kcountHEpositivedirectionD5
3796 <<
" jeta-41= " << jeta - 41 << endl;
3797 c3x5->cd(kcountHEpositivedirectionD5);
3798 HEpositivedirectionD5->SetMarkerStyle(20);
3799 HEpositivedirectionD5->SetMarkerSize(0.4);
3800 HEpositivedirectionD5->GetYaxis()->SetLabelSize(0.04);
3801 HEpositivedirectionD5->SetXTitle(
"HEpositivedirectionD5 \b");
3802 HEpositivedirectionD5->SetMarkerColor(2);
3803 HEpositivedirectionD5->SetLineColor(0);
3807 if (kcountHEpositivedirectionD5 == 1)
3808 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 18; depth = 5 \b");
3809 if (kcountHEpositivedirectionD5 == 2)
3810 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 19; depth = 5 \b");
3811 if (kcountHEpositivedirectionD5 == 3)
3812 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 20; depth = 5 \b");
3813 if (kcountHEpositivedirectionD5 == 4)
3814 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 21; depth = 5 \b");
3815 if (kcountHEpositivedirectionD5 == 5)
3816 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 22; depth = 5 \b");
3817 if (kcountHEpositivedirectionD5 == 6)
3818 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 23; depth = 5 \b");
3819 if (kcountHEpositivedirectionD5 == 7)
3820 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 24; depth = 5 \b");
3821 if (kcountHEpositivedirectionD5 == 8)
3822 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 25; depth = 5 \b");
3823 if (kcountHEpositivedirectionD5 == 9)
3824 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 26; depth = 5 \b");
3825 if (kcountHEpositivedirectionD5 == 10)
3826 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 27; depth = 5 \b");
3827 if (kcountHEpositivedirectionD5 == 11)
3828 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 28; depth = 5 \b");
3829 HEpositivedirectionD5->Draw(
"Error");
3830 kcountHEpositivedirectionD5++;
3831 if (kcountHEpositivedirectionD5 > 15)
3840 c3x5->Print(
"Dhist1IterationMethodDepth5HE.png");
3843 if (h2CeffHEpositivedirectionD5)
3844 delete h2CeffHEpositivedirectionD5;
3849 cout <<
" 1D plot: D vs phi , different eta, depth=6 *****" << endl;
3853 int kcountHEpositivedirectionD6 = 1;
3854 TH1F *h2CeffHEpositivedirectionD6 =
new TH1F(
"h2CeffHEpositivedirectionD6",
"", nphi, 0., 72.);
3856 for (
int jeta = 0; jeta < njeta; jeta++) {
3858 if (jeta - 41 > 0) {
3861 for (
int i = 5;
i < 6;
i++) {
3862 TH1F *HEpositivedirectionD6 = (TH1F *)h2CeffHEpositivedirectionD6->Clone(
"twod1");
3865 for (
int jphi = 0; jphi <
nphi; jphi++) {
3866 double ccc1 = variance[
i][jeta][jphi];
3867 if (alexhe[
i][jeta][jphi] > 0.) {
3868 HEpositivedirectionD6->Fill(jphi, ccc1);
3873 cout <<
"1919 kcountHEpositivedirectionD6 = " << kcountHEpositivedirectionD6
3874 <<
" jeta-41= " << jeta - 41 << endl;
3875 c3x5->cd(kcountHEpositivedirectionD6);
3876 HEpositivedirectionD6->SetMarkerStyle(20);
3877 HEpositivedirectionD6->SetMarkerSize(0.4);
3878 HEpositivedirectionD6->GetYaxis()->SetLabelSize(0.04);
3879 HEpositivedirectionD6->SetXTitle(
"HEpositivedirectionD6 \b");
3880 HEpositivedirectionD6->SetMarkerColor(2);
3881 HEpositivedirectionD6->SetLineColor(0);
3885 if (kcountHEpositivedirectionD6 == 1)
3886 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 19; depth = 6 \b");
3887 if (kcountHEpositivedirectionD6 == 2)
3888 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 20; depth = 6 \b");
3889 if (kcountHEpositivedirectionD6 == 3)
3890 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 21; depth = 6 \b");
3891 if (kcountHEpositivedirectionD6 == 4)
3892 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 22; depth = 6 \b");
3893 if (kcountHEpositivedirectionD6 == 5)
3894 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 23; depth = 6 \b");
3895 if (kcountHEpositivedirectionD6 == 6)
3896 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 24; depth = 6 \b");
3897 if (kcountHEpositivedirectionD6 == 7)
3898 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 25; depth = 6 \b");
3899 if (kcountHEpositivedirectionD6 == 8)
3900 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 26; depth = 6 \b");
3901 if (kcountHEpositivedirectionD6 == 9)
3902 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 27; depth = 6 \b");
3903 if (kcountHEpositivedirectionD6 == 10)
3904 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 28; depth = 6 \b");
3905 HEpositivedirectionD6->Draw(
"Error");
3906 kcountHEpositivedirectionD6++;
3907 if (kcountHEpositivedirectionD6 > 15)
3916 c3x5->Print(
"Dhist1IterationMethodDepth6HE.png");
3919 if (h2CeffHEpositivedirectionD6)
3920 delete h2CeffHEpositivedirectionD6;
3925 cout <<
" 1D plot: D vs phi , different eta, depth=7 *****" << endl;
3929 int kcountHEpositivedirectionD7 = 1;
3930 TH1F *h2CeffHEpositivedirectionD7 =
new TH1F(
"h2CeffHEpositivedirectionD7",
"", nphi, 0., 72.);
3932 for (
int jeta = 0; jeta < njeta; jeta++) {
3934 if (jeta - 41 > 0) {
3937 for (
int i = 6;
i < 7;
i++) {
3938 TH1F *HEpositivedirectionD7 = (TH1F *)h2CeffHEpositivedirectionD7->Clone(
"twod1");
3941 for (
int jphi = 0; jphi <
nphi; jphi++) {
3942 double ccc1 = variance[
i][jeta][jphi];
3943 if (alexhe[
i][jeta][jphi] > 0.) {
3944 HEpositivedirectionD7->Fill(jphi, ccc1);
3948 if (ccctest != 0.) {
3949 cout <<
"2020 kcountHEpositivedirectionD7 = " << kcountHEpositivedirectionD7
3950 <<
" jeta-41= " << jeta - 41 << endl;
3951 c3x5->cd(kcountHEpositivedirectionD7);
3952 HEpositivedirectionD7->SetMarkerStyle(20);
3953 HEpositivedirectionD7->SetMarkerSize(0.4);
3954 HEpositivedirectionD7->GetYaxis()->SetLabelSize(0.04);
3955 HEpositivedirectionD7->SetXTitle(
"HEpositivedirectionD7 \b");
3956 HEpositivedirectionD7->SetMarkerColor(2);
3957 HEpositivedirectionD7->SetLineColor(0);
3961 if (kcountHEpositivedirectionD7 == 1)
3962 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 26; depth = 7 \b");
3963 if (kcountHEpositivedirectionD7 == 2)
3964 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 27; depth = 7 \b");
3965 if (kcountHEpositivedirectionD7 == 3)
3966 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 28; depth = 7 \b");
3967 HEpositivedirectionD7->Draw(
"Error");
3968 kcountHEpositivedirectionD7++;
3969 if (kcountHEpositivedirectionD7 > 15)
3978 c3x5->Print(
"Dhist1IterationMethodDepth7HE.png");
3981 if (h2CeffHEpositivedirectionD7)
3982 delete h2CeffHEpositivedirectionD7;
3991 std::cout <<
" We are here to print 2017 MAPs " << std::endl;
3997 TH2F *Map_ALL =
new TH2F(
"Map_All",
"Map_all", 82, -41, 40, 72, 0, 71);
3998 int nx = Map_ALL->GetXaxis()->GetNbins();
3999 int ny = Map_ALL->GetYaxis()->GetNbins();
4005 int Eta[4][10000] = {0};
4006 int Phi[4][10000] = {0};
4007 int Sub[4][10000] = {0};
4008 int Depth[4][10000] = {0};
4009 string Comment[4][10000] = {
""};
4010 string Text[33] = {
"",
"Cm",
"Am",
"Wm",
"Rm",
"TNm",
"TXm",
"",
"",
"",
"",
"Cc",
"Ac",
"Wc",
"Rc",
"TNc",
"TXc",
4011 "",
"",
"",
"",
"GS",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"Pm",
"pWm"};
4016 for (
int i = 1;
i <= nx;
i++) {
4017 for (
int j = 1;
j <= ny;
j++) {
4018 for (
int sub = 1; sub <= 4; sub++) {
4022 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
4023 if (Map_SUB[sub][k]->GetBinContent(
i,
j) != 0) {
4024 Map_SUB[sub][
k]->SetBinContent(
i,
j, 0.5);
4025 Map_ALL->SetBinContent(
i,
j, 0.5);
4032 for (
int i = 1;
i <= nx;
i++) {
4033 for (
int j = 1;
j <= ny;
j++) {
4034 for (
int sub = 1; sub <= 4; sub++) {
4038 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
4044 if (Map_Ampl[
test][sub][k]->GetBinContent(
i,
j) >
4046 Map_ALL->SetBinContent(
i,
j, 1.);
4047 Map_SUB[sub][
k]->SetBinContent(
i,
j, 1.);
4050 Eta[2][NBad] =
i - 41;
4051 Phi[2][NBad] =
j - 1;
4054 Comment[2][NBad] = Text[
test];
4056 Comment[2][NBad] +=
", " + Text[
test];
4103 if (
abs(Map_Ampl[
test][sub][k]->GetBinContent(
i,
j)) > porog[sub]) {
4104 if (Map_SUB[sub][k]->GetBinContent(
i,
j) != 1.0)
4105 Map_SUB[sub][
k]->SetBinContent(
i,
j, 0.75);
4106 if (Map_ALL->GetBinContent(
i,
j) != 1.) {
4107 Map_ALL->SetBinContent(
i,
j, 0.75);
4110 Eta[1][NWarn] =
i - 41;
4111 Phi[1][NWarn] =
j - 1;
4112 Sub[1][NWarn] = sub;
4113 Depth[1][NWarn] =
k;
4114 Comment[1][NWarn] = Text[
test];
4116 Comment[1][NWarn] +=
", " + Text[
test];
4119 cout <<
"Map_Ampl[" <<
test <<
"][" << sub <<
"][" << k <<
"]->GetBinContent(" <<
i <<
"," <<
j
4120 <<
")= " << Map_Ampl[
test][sub][
k]->GetBinContent(
i,
j) << endl;
4127 if (Map_Ampl[
test][sub][k]->GetBinContent(
i,
j) > 0.1) {
4132 Eta[3][NPed] =
i - 41;
4133 Phi[3][NPed] =
j - 1;
4136 Comment[3][NPed] = Text[
test];
4138 Comment[3][NPed] +=
", " + Text[
test];
4150 for (
int sub = 1; sub <= 4; sub++) {
4152 std::cout <<
" 2017 MAPS_SUB " << sub << std::endl;
4167 for (
int k = k_min[sub]; k <= k_max[sub]; k++) {
4181 sprintf(str,
"HB, Depth%d \b", k);
4183 sprintf(str,
"HE, Depth%d \b", k);
4185 sprintf(str,
"HO, Depth%d \b", k);
4187 sprintf(str,
"HF, Depth%d \b", k);
4188 Map_SUB[sub][
k]->SetTitle(str);
4189 Map_SUB[sub][
k]->SetXTitle(
"#eta \b");
4190 Map_SUB[sub][
k]->SetYTitle(
"#phi \b");
4191 Map_SUB[sub][
k]->Draw(
"COL");
4192 Map_SUB[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
4193 Map_SUB[sub][
k]->GetZaxis()->SetRangeUser(0., 1.);
4212 cHB->Print(
"MAPHB.png");
4216 cHE->Print(
"MAPHE.png");
4220 cONE->Print(
"MAPHO.png");
4224 cHF->Print(
"MAPHF.png");
4231 TCanvas *cmain1 =
new TCanvas(
"cmain1",
"MAP", 250, 10, 1450, 1410);
4232 cmain1->Divide(2, 2);
4235 TH1F *JDBEYESJ0 = (TH1F *)hfile->Get(
"h_totalAmplitudeHBperEvent");
4236 JDBEYESJ0->SetStats(0);
4237 JDBEYESJ0->SetMarkerStyle(20);
4238 JDBEYESJ0->SetMarkerSize(0.8);
4239 JDBEYESJ0->GetYaxis()->SetLabelSize(0.04);
4240 JDBEYESJ0->SetXTitle(
"iEvent \b");
4241 JDBEYESJ0->SetYTitle(
"totalAmplitude perEvent \b");
4242 JDBEYESJ0->SetTitle(
"HB \b");
4243 JDBEYESJ0->SetMarkerColor(2);
4244 JDBEYESJ0->SetLineColor(1);
4245 JDBEYESJ0->SetMinimum(0.8);
4246 JDBEYESJ0->Draw(
"HIST same P0");
4249 TH1F *JDBEYESJ1 = (TH1F *)hfile->Get(
"h_totalAmplitudeHEperEvent");
4250 JDBEYESJ1->SetStats(0);
4251 JDBEYESJ1->SetMarkerStyle(20);
4252 JDBEYESJ1->SetMarkerSize(0.8);
4253 JDBEYESJ1->GetYaxis()->SetLabelSize(0.04);
4254 JDBEYESJ1->SetXTitle(
"iEvent \b");
4255 JDBEYESJ1->SetYTitle(
"totalAmplitude perEvent \b");
4256 JDBEYESJ1->SetTitle(
"HE \b");
4257 JDBEYESJ1->SetMarkerColor(2);
4258 JDBEYESJ1->SetLineColor(1);
4259 JDBEYESJ1->SetMinimum(0.8);
4260 JDBEYESJ1->Draw(
"HIST same P0");
4263 TH1F *JDBEYESJ2 = (TH1F *)hfile->Get(
"h_totalAmplitudeHFperEvent");
4264 JDBEYESJ2->SetStats(0);
4265 JDBEYESJ2->SetMarkerStyle(20);
4266 JDBEYESJ2->SetMarkerSize(0.8);
4267 JDBEYESJ2->GetYaxis()->SetLabelSize(0.04);
4268 JDBEYESJ2->SetXTitle(
"iEvent \b");
4269 JDBEYESJ2->SetYTitle(
"totalAmplitude perEvent \b");
4270 JDBEYESJ2->SetTitle(
"HF \b");
4271 JDBEYESJ2->SetMarkerColor(2);
4272 JDBEYESJ2->SetLineColor(1);
4273 JDBEYESJ2->SetMinimum(0.8);
4274 JDBEYESJ2->Draw(
"HIST same P0");
4277 TH1F *JDBEYESJ3 = (TH1F *)hfile->Get(
"h_totalAmplitudeHOperEvent");
4278 JDBEYESJ3->SetStats(0);
4279 JDBEYESJ3->SetMarkerStyle(20);
4280 JDBEYESJ3->SetMarkerSize(0.8);
4281 JDBEYESJ3->GetYaxis()->SetLabelSize(0.04);
4282 JDBEYESJ3->SetXTitle(
"iEvent \b");
4283 JDBEYESJ3->SetYTitle(
"totalAmplitude perEvent \b");
4284 JDBEYESJ3->SetTitle(
"HO \b");
4285 JDBEYESJ3->SetMarkerColor(2);
4286 JDBEYESJ3->SetLineColor(1);
4287 JDBEYESJ3->SetMinimum(0.8);
4288 JDBEYESJ3->Draw(
"HIST same P0");
4292 cmain1->Print(
"EVENTDEPENDENCE.png");
4294 std::cout <<
" EVENTDEPENDENCE " << std::endl;
4298 gStyle->SetOptTitle(0);
4299 TCanvas *cmain =
new TCanvas(
"cmain",
"MAP", 1000, 1000);
4304 Map_ALL->SetTitleOffset(1.3,
"Y");
4305 Map_ALL->SetXTitle(
"#eta \b");
4306 Map_ALL->SetYTitle(
"#phi \b");
4307 Map_ALL->Draw(
"COL");
4308 Map_ALL->GetYaxis()->SetRangeUser(0, 72.);
4309 Map_ALL->GetZaxis()->SetRangeUser(0, 1.);
4312 cmain->Print(
"MAP.png");
4314 std::cout <<
"******** MAP_ALL done" << std::endl;
4318 std::cout <<
"************ Start creating each test kind for each subdet html pages:" << std::endl;
4324 std::string raw_class, raw_class1, raw_class2, raw_class3;
4327 for (
int sub = 1; sub <= 4; sub++) {
4328 ofstream htmlFileT, htmlFileC, htmlFileD, htmlFileP, htmlFileS, htmlFileM;
4330 htmlFileT.open(
"HB_Tile.html");
4331 htmlFileC.open(
"HB_Calib.html");
4332 htmlFileD.open(
"HB_Drift.html");
4333 htmlFileP.open(
"HB_Pedestals.html");
4334 htmlFileS.open(
"HB_Shapes.html");
4337 htmlFileT.open(
"HE_Tile.html");
4338 htmlFileC.open(
"HE_Calib.html");
4339 htmlFileD.open(
"HE_Drift.html");
4340 htmlFileP.open(
"HE_Pedestals.html");
4341 htmlFileS.open(
"HE_Shapes.html");
4342 htmlFileM.open(
"HE_IterationMethod.html");
4345 htmlFileT.open(
"HO_Tile.html");
4346 htmlFileC.open(
"HO_Calib.html");
4347 htmlFileD.open(
"HO_Drift.html");
4348 htmlFileP.open(
"HO_Pedestals.html");
4349 htmlFileS.open(
"HO_Shapes.html");
4352 htmlFileT.open(
"HF_Tile.html");
4353 htmlFileC.open(
"HF_Calib.html");
4354 htmlFileD.open(
"HF_Drift.html");
4355 htmlFileP.open(
"HF_Pedestals.html");
4356 htmlFileS.open(
"HF_Shapes.html");
4360 htmlFileT <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4361 htmlFileT <<
"<head>" << std::endl;
4362 htmlFileT <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4363 htmlFileT <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4364 htmlFileT <<
"<style type=\"text/css\">" << std::endl;
4365 htmlFileT <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4367 htmlFileT <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4368 htmlFileT <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4369 "text-align: center;}"
4371 htmlFileT <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4372 htmlFileT <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4373 htmlFileT <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4374 htmlFileT <<
"</style>" << std::endl;
4375 htmlFileT <<
"<body>" << std::endl;
4378 htmlFileT <<
"<h1> Criteria for megatile channels for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4380 htmlFileT <<
"<h1> Criteria for megatile channels for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4382 htmlFileT <<
"<h1> Criteria for megatile channels for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4384 htmlFileT <<
"<h1> Criteria for megatile channels for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4385 htmlFileT <<
"<br>" << std::endl;
4389 htmlFileT <<
"<h2> 0. Entries for each channel.</h3>" << std::endl;
4390 htmlFileT <<
"<h3> 0.A. Entries in each channel for each depth.</h3>" << std::endl;
4391 htmlFileT <<
"<h4> Channel legend: color is rate of entries </h4>" << std::endl;
4393 htmlFileT <<
" <img src=\"MapRateEntryHB.png\" />" << std::endl;
4395 htmlFileT <<
" <img src=\"MapRateEntryHE.png\" />" << std::endl;
4397 htmlFileT <<
" <img src=\"MapRateEntryHO.png\" />" << std::endl;
4399 htmlFileT <<
" <img src=\"MapRateEntryHF.png\" />" << std::endl;
4400 htmlFileT <<
"<br>" << std::endl;
4403 htmlFileT <<
"<h2> 1. Cm criterion: CapID errors for each channel.</h3>" << std::endl;
4404 htmlFileT <<
"<h3> 1.A. Rate of CapId failures in each channel for each depth.</h3>" << std::endl;
4405 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4407 htmlFileT <<
" <img src=\"MapRateCapIDHB.png\" />" << std::endl;
4409 htmlFileT <<
" <img src=\"MapRateCapIDHE.png\" />" << std::endl;
4411 htmlFileT <<
" <img src=\"MapRateCapIDHO.png\" />" << std::endl;
4413 htmlFileT <<
" <img src=\"MapRateCapIDHF.png\" />" << std::endl;
4414 htmlFileT <<
"<br>" << std::endl;
4417 htmlFileT <<
"<h2> 2. Am criterion: ADC amplitude collected over all TSs(Full Amplitude) for each channel. </h3>"
4419 htmlFileT <<
"<h3> 2.A. Full ADC amplitude distribution over all events, channels and depths.</h3>" << std::endl;
4420 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[2][sub] <<
" correpond to bad ADC amplitude </h4>" << std::endl;
4422 htmlFileT <<
" <img src=\"HistAmplHB.png\" />" << std::endl;
4424 htmlFileT <<
" <img src=\"HistAmplHE.png\" />" << std::endl;
4426 htmlFileT <<
" <img src=\"HistAmplHO.png\" />" << std::endl;
4428 htmlFileT <<
" <img src=\"HistAmplHF.png\" />" << std::endl;
4429 htmlFileT <<
"<br>" << std::endl;
4430 htmlFileT <<
"<h3> 2.B. Rate of bad ADC amplitude (<" << MIN_M[2][sub] <<
") in each channel for each depth. </h3>"
4432 htmlFileT <<
"<h4> Channel legend: white - good, other colours - bad. </h4>" << std::endl;
4434 htmlFileT <<
" <img src=\"MapRateAmplHB.png\" />" << std::endl;
4436 htmlFileT <<
" <img src=\"MapRateAmplHE.png\" />" << std::endl;
4438 htmlFileT <<
" <img src=\"MapRateAmplHO.png\" />" << std::endl;
4440 htmlFileT <<
" <img src=\"MapRateAmplHF.png\" />" << std::endl;
4441 htmlFileT <<
"<br>" << std::endl;
4444 htmlFileT <<
"<h2> 3. Wm criterion: RMS (width) of ADC amplutude for each channel.</h3>" << std::endl;
4445 htmlFileT <<
"<h3> 3.A. RMS distribution over all events, channel and depth.</h3>" << std::endl;
4446 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[3][sub] <<
" and more " << MAX_M[3][sub]
4447 <<
" correpond to bad RMS </h4>" << std::endl;
4449 htmlFileT <<
" <img src=\"HistRMSHB.png\" />" << std::endl;
4451 htmlFileT <<
" <img src=\"HistRMSHE.png\" />" << std::endl;
4453 htmlFileT <<
" <img src=\"HistRMSHO.png\" />" << std::endl;
4455 htmlFileT <<
" <img src=\"HistRMSHF.png\" />" << std::endl;
4456 htmlFileT <<
"<br>" << std::endl;
4457 htmlFileT <<
"<h3> 3.B. Rate of bad RMS (<" << MIN_M[3][sub] <<
",>" << MAX_M[3][sub]
4458 <<
") in each channel for each depth.</h3>" << std::endl;
4459 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4461 htmlFileT <<
" <img src=\"MapRateRMSHB.png\" />" << std::endl;
4463 htmlFileT <<
" <img src=\"MapRateRMSHE.png\" />" << std::endl;
4465 htmlFileT <<
" <img src=\"MapRateRMSHO.png\" />" << std::endl;
4467 htmlFileT <<
" <img src=\"MapRateRMSHF.png\" />" << std::endl;
4468 htmlFileT <<
"<br>" << std::endl;
4471 htmlFileT <<
"<h2> 4. Rm criterion: Ratio ADC value sum over four near maximum (-2, -1, max, +1) TS to ADC value "
4472 "sum over all TS for each channel. </h3>"
4474 htmlFileT <<
"<h3> 4.A. Ratio distribution over all events, channels and depths.</h3>" << std::endl;
4475 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[4][sub] <<
" and more " << MAX_M[4][sub]
4476 <<
" correpond to bad ratio </h4>" << std::endl;
4478 htmlFileT <<
" <img src=\"Hist43TStoAllTSHB.png\" />" << std::endl;
4480 htmlFileT <<
" <img src=\"Hist43TStoAllTSHE.png\" />" << std::endl;
4482 htmlFileT <<
" <img src=\"Hist43TStoAllTSHO.png\" />" << std::endl;
4484 htmlFileT <<
" <img src=\"Hist43TStoAllTSHF.png\" />" << std::endl;
4485 htmlFileT <<
"<br>" << std::endl;
4486 htmlFileT <<
"<h3> 4.B. Rate of bad ratio (<" << MIN_M[4][sub] <<
", >" << MAX_M[4][sub]
4487 <<
") in each channel for each depth.</h3>" << std::endl;
4488 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4490 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHB.png\" />" << std::endl;
4492 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHE.png\" />" << std::endl;
4494 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHO.png\" />" << std::endl;
4496 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHF.png\" />" << std::endl;
4497 htmlFileT <<
"<br>" << std::endl;
4500 htmlFileT <<
"<h2> 5. TNm criterion: Mean TS position for each channel.</h3>" << std::endl;
4501 htmlFileT <<
"<h3> 5.A. TN position distribution over all events, channels and depths.</h3>" << std::endl;
4502 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[5][sub] <<
" and more " << MAX_M[5][sub]
4503 <<
" correpond to bad mean position </h4>" << std::endl;
4505 htmlFileT <<
" <img src=\"HistMeanPosHB.png\" />" << std::endl;
4507 htmlFileT <<
" <img src=\"HistMeanPosHE.png\" />" << std::endl;
4509 htmlFileT <<
" <img src=\"HistMeanPosHO.png\" />" << std::endl;
4511 htmlFileT <<
" <img src=\"HistMeanPosHF.png\" />" << std::endl;
4512 htmlFileT <<
"<br>" << std::endl;
4513 htmlFileT <<
"<h3> 5.B. Rate of bad TN position (<" << MIN_M[5][sub] <<
", >" << MAX_M[5][sub]
4514 <<
") in each channel for each depth. </h3>" << std::endl;
4515 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4517 htmlFileT <<
" <img src=\"MapRateMeanPosHB.png\" />" << std::endl;
4519 htmlFileT <<
" <img src=\"MapRateMeanPosHE.png\" />" << std::endl;
4521 htmlFileT <<
" <img src=\"MapRateMeanPosHO.png\" />" << std::endl;
4523 htmlFileT <<
" <img src=\"MapRateMeanPosHF.png\" />" << std::endl;
4524 htmlFileT <<
"<br>" << std::endl;
4527 htmlFileT <<
"<h2> 6.TXm criterion: Maximum TS position for each channel.</h3>" << std::endl;
4528 htmlFileT <<
"<h3> 6.A. TX position distribution over all events, channel and depth.</h3>" << std::endl;
4529 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[6][sub] <<
" and more " << MAX_M[6][sub]
4530 <<
" correpond to bad position </h4>" << std::endl;
4532 htmlFileT <<
" <img src=\"HistMaxPosHB.png\" />" << std::endl;
4534 htmlFileT <<
" <img src=\"HistMaxPosHE.png\" />" << std::endl;
4536 htmlFileT <<
" <img src=\"HistMaxPosHO.png\" />" << std::endl;
4538 htmlFileT <<
" <img src=\"HistMaxPosHF.png\" />" << std::endl;
4539 htmlFileT <<
"<br>" << std::endl;
4540 htmlFileT <<
"<h3> 6.B. Rate of bad TX position (<" << MIN_M[6][sub] <<
", >" << MAX_M[6][sub]
4541 <<
") in each channel for each depth. </h3>" << std::endl;
4542 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4544 htmlFileT <<
" <img src=\"MapRateMaxPosHB.png\" />" << std::endl;
4546 htmlFileT <<
" <img src=\"MapRateMaxPosHE.png\" />" << std::endl;
4548 htmlFileT <<
" <img src=\"MapRateMaxPosHO.png\" />" << std::endl;
4550 htmlFileT <<
" <img src=\"MapRateMaxPosHF.png\" />" << std::endl;
4551 htmlFileT <<
"<br>" << std::endl;
4553 htmlFileT <<
"</body> " << std::endl;
4554 htmlFileT <<
"</html> " << std::endl;
4558 htmlFileC <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4559 htmlFileC <<
"<head>" << std::endl;
4560 htmlFileC <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4561 htmlFileC <<
"<title> Raw Data Analyser </title>" << std::endl;
4562 htmlFileC <<
"<style type=\"text/css\">" << std::endl;
4563 htmlFileC <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4565 htmlFileC <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4566 htmlFileC <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4567 "text-align: center;}"
4569 htmlFileC <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4570 htmlFileC <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4571 htmlFileC <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4572 htmlFileC <<
"</style>" << std::endl;
4573 htmlFileC <<
"<body>" << std::endl;
4576 htmlFileC <<
"<h1> Criteria for calibration channels for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4578 htmlFileC <<
"<h1> Criteria for calibration channels for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4580 htmlFileC <<
"<h1> Criteria for calibration channels for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4582 htmlFileC <<
"<h1> Criteria for calibration channels for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4583 htmlFileC <<
"<br>" << std::endl;
4587 htmlFileC <<
"<h2> 0. Entries for each channel.</h3>" << std::endl;
4588 htmlFileC <<
"<h3> 0.A. Entries in each channel for each depth.</h3>" << std::endl;
4589 htmlFileC <<
"<h4> Channel legend: color is rate of entries </h4>" << std::endl;
4591 htmlFileC <<
" <img src=\"MapRateCalibEntryHB.png\" />" << std::endl;
4593 htmlFileC <<
" <img src=\"MapRateCalibEntryHE.png\" />" << std::endl;
4595 htmlFileC <<
" <img src=\"MapRateCalibEntryHO.png\" />" << std::endl;
4597 htmlFileC <<
" <img src=\"MapRateCalibEntryHF.png\" />" << std::endl;
4598 htmlFileC <<
"<br>" << std::endl;
4601 htmlFileC <<
"<h2> 1. Cc criterion: CapID errors for each channel.</h3>" << std::endl;
4602 htmlFileC <<
"<h3> 1.A. Rate of CapId failures in each channel for each depth.</h3>" << std::endl;
4603 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4605 htmlFileC <<
" <img src=\"MapRateCapCalibHB.png\" />" << std::endl;
4607 htmlFileC <<
" <img src=\"MapRateCapCalibHE.png\" />" << std::endl;
4609 htmlFileC <<
" <img src=\"MapRateCapCalibHO.png\" />" << std::endl;
4611 htmlFileC <<
" <img src=\"MapRateCapCalibHF.png\" />" << std::endl;
4612 htmlFileC <<
"<br>" << std::endl;
4615 htmlFileC <<
"<h2> 2. Ac criterion: ADC amplitude collected over all TSs(Full Amplitude) for each channel. </h3>"
4617 htmlFileC <<
"<h3> 2.A. Full ADC amplitude distribution over all events, channels and depths.</h3>" << std::endl;
4618 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[2][sub] <<
" correpond to bad ADC amplitude </h4>" << std::endl;
4620 htmlFileC <<
" <img src=\"HistAmplCalibHB.png\" />" << std::endl;
4622 htmlFileC <<
" <img src=\"HistAmplCalibHE.png\" />" << std::endl;
4624 htmlFileC <<
" <img src=\"HistAmplCalibHO.png\" />" << std::endl;
4626 htmlFileC <<
" <img src=\"HistAmplCalibHF.png\" />" << std::endl;
4627 htmlFileC <<
"<br>" << std::endl;
4628 htmlFileC <<
"<h3> 2.B. Rate of bad ADC amplitude (<" << MIN_C[2][sub] <<
") in each channel for each depth. </h3>"
4630 htmlFileC <<
"<h4> Channel legend: white - good, other colours - bad. </h4>" << std::endl;
4632 htmlFileC <<
" <img src=\"MapRateAmplCalibHB.png\" />" << std::endl;
4634 htmlFileC <<
" <img src=\"MapRateAmplCalibHE.png\" />" << std::endl;
4636 htmlFileC <<
" <img src=\"MapRateAmplCalibHO.png\" />" << std::endl;
4638 htmlFileC <<
" <img src=\"MapRateAmplCalibHF.png\" />" << std::endl;
4639 htmlFileC <<
"<br>" << std::endl;
4642 htmlFileC <<
"<h2> 3. Wc criterion: RMS (width) of ADC amplutude for each channel.</h3>" << std::endl;
4643 htmlFileC <<
"<h3> 3.A. W distribution over all events, channel and depth.</h3>" << std::endl;
4644 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[3][sub] <<
" and more " << MAX_C[3][sub]
4645 <<
" correpond to bad RMS </h4>" << std::endl;
4647 htmlFileC <<
" <img src=\"HistRMSCalibHB.png\" />" << std::endl;
4649 htmlFileC <<
" <img src=\"HistRMSCalibHE.png\" />" << std::endl;
4651 htmlFileC <<
" <img src=\"HistRMSCalibHO.png\" />" << std::endl;
4653 htmlFileC <<
" <img src=\"HistRMSCalibHF.png\" />" << std::endl;
4654 htmlFileC <<
"<br>" << std::endl;
4655 htmlFileC <<
"<h3> 3.B. Rate of bad W (<" << MIN_C[3][sub] <<
",>" << MAX_C[3][sub]
4656 <<
") in each channel for each depth.</h3>" << std::endl;
4657 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4659 htmlFileC <<
" <img src=\"MapRateRMSCalibHB.png\" />" << std::endl;
4661 htmlFileC <<
" <img src=\"MapRateRMSCalibHE.png\" />" << std::endl;
4663 htmlFileC <<
" <img src=\"MapRateRMSCalibHO.png\" />" << std::endl;
4665 htmlFileC <<
" <img src=\"MapRateRMSCalibHF.png\" />" << std::endl;
4666 htmlFileC <<
"<br>" << std::endl;
4669 htmlFileC <<
"<h2> 4. Rc criterion: Ratio ADC value sum over five near maximum (-2, -1, max, +1, +2) TS to ADC "
4670 "value sum over all TS for each channel. </h3>"
4672 htmlFileC <<
"<h3> 4.A. Ratio distribution over all events, channels and depths.</h3>" << std::endl;
4673 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[4][sub] <<
" and more " << MAX_C[4][sub]
4674 <<
" correpond to bad ratio </h4>" << std::endl;
4676 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHB.png\" />" << std::endl;
4678 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHE.png\" />" << std::endl;
4680 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHO.png\" />" << std::endl;
4682 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHF.png\" />" << std::endl;
4683 htmlFileC <<
"<br>" << std::endl;
4684 htmlFileC <<
"<h3> 4.B. Rate of bad Ratio (<" << MIN_C[4][sub] <<
", >" << MAX_C[4][sub]
4685 <<
") in each channel for each depth.</h3>" << std::endl;
4686 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4688 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHB.png\" />" << std::endl;
4690 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHE.png\" />" << std::endl;
4692 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHO.png\" />" << std::endl;
4694 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHF.png\" />" << std::endl;
4695 htmlFileC <<
"<br>" << std::endl;
4698 htmlFileC <<
"<h2> 5. TNc criterion: Mean TS position for each channel.</h3>" << std::endl;
4699 htmlFileC <<
"<h3> 5.A. TN position distribution over all events, channels and depths.</h3>" << std::endl;
4700 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[5][sub] <<
" and more " << MAX_C[5][sub]
4701 <<
" correpond to bad position </h4>" << std::endl;
4703 htmlFileC <<
" <img src=\"HistMeanPosCalibHB.png\" />" << std::endl;
4705 htmlFileC <<
" <img src=\"HistMeanPosCalibHE.png\" />" << std::endl;
4707 htmlFileC <<
" <img src=\"HistMeanPosCalibHO.png\" />" << std::endl;
4709 htmlFileC <<
" <img src=\"HistMeanPosCalibHF.png\" />" << std::endl;
4710 htmlFileC <<
"<br>" << std::endl;
4711 htmlFileC <<
"<h3> 5.B. Rate of bad TN position (<" << MIN_C[5][sub] <<
", >" << MAX_C[5][sub]
4712 <<
") in each channel for each depth. </h3>" << std::endl;
4713 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4715 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHB.png\" />" << std::endl;
4717 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHE.png\" />" << std::endl;
4719 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHO.png\" />" << std::endl;
4721 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHF.png\" />" << std::endl;
4722 htmlFileC <<
"<br>" << std::endl;
4725 htmlFileC <<
"<h2> 6.TXc criterion: Maximum TS position for each channel.</h3>" << std::endl;
4726 htmlFileC <<
"<h3> 6.A. TX position distribution over all events, channel and depth.</h3>" << std::endl;
4727 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[6][sub] <<
" and more " << MAX_C[6][sub]
4728 <<
" correpond to bad position </h4>" << std::endl;
4730 htmlFileC <<
" <img src=\"HistMaxPosCalibHB.png\" />" << std::endl;
4732 htmlFileC <<
" <img src=\"HistMaxPosCalibHE.png\" />" << std::endl;
4734 htmlFileC <<
" <img src=\"HistMaxPosCalibHO.png\" />" << std::endl;
4736 htmlFileC <<
" <img src=\"HistMaxPosCalibHF.png\" />" << std::endl;
4737 htmlFileC <<
"<br>" << std::endl;
4738 htmlFileC <<
"<h3> 6.B. Rate of bad TX position (<" << MIN_C[6][sub] <<
", >" << MAX_C[6][sub]
4739 <<
") in each channel for each depth. </h3>" << std::endl;
4740 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4742 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHB.png\" />" << std::endl;
4744 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHE.png\" />" << std::endl;
4746 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHO.png\" />" << std::endl;
4748 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHF.png\" />" << std::endl;
4749 htmlFileC <<
"<br>" << std::endl;
4751 htmlFileC <<
"</body> " << std::endl;
4752 htmlFileC <<
"</html> " << std::endl;
4756 htmlFileD <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4757 htmlFileD <<
"<head>" << std::endl;
4758 htmlFileD <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4759 htmlFileD <<
"<title> Remore Monitoring Tool </title>" << std::endl;
4760 htmlFileD <<
"<style type=\"text/css\">" << std::endl;
4761 htmlFileD <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4763 htmlFileD <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4764 htmlFileD <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4765 "text-align: center;}"
4767 htmlFileD <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4768 htmlFileD <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4769 htmlFileD <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4770 htmlFileD <<
"</style>" << std::endl;
4771 htmlFileD <<
"<body>" << std::endl;
4774 htmlFileD <<
"<h1> Response drift for HB: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4775 <<
" </h1>" << std::endl;
4777 htmlFileD <<
"<h1> Response drift for HE: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4778 <<
" </h1>" << std::endl;
4780 htmlFileD <<
"<h1> Response drift for HO: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4781 <<
" </h1>" << std::endl;
4783 htmlFileD <<
"<h1> Response drift for HF: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4784 <<
" </h1>" << std::endl;
4785 htmlFileD <<
"<br>" << std::endl;
4788 htmlFileD <<
"<h2> 1. Gain Stability (GS) </h3>" << std::endl;
4789 htmlFileD <<
"<h3> 1.A. Averaged channel response, collected over all TS, for Current run in each channel for each "
4792 htmlFileD <<
"<h4> Channel legend: colour means cooresponding value of mean response. </h4>" << std::endl;
4794 htmlFileD <<
" <img src=\"MapRateAmpl1HB.png\" />" << std::endl;
4796 htmlFileD <<
" <img src=\"MapRateAmpl1HE.png\" />" << std::endl;
4798 htmlFileD <<
" <img src=\"MapRateAmpl1HO.png\" />" << std::endl;
4800 htmlFileD <<
" <img src=\"MapRateAmpl1HF.png\" />" << std::endl;
4801 htmlFileD <<
"<br>" << std::endl;
4802 htmlFileD <<
"<h3> 1.B. Averaged channel response, collected over all TS, for Reference run in each channel for "
4805 htmlFileD <<
"<h4> Channel legend: colour means cooresponding value of mean response. </h4>" << std::endl;
4807 htmlFileD <<
" <img src=\"MapRateAmpl2HB.png\" />" << std::endl;
4809 htmlFileD <<
" <img src=\"MapRateAmpl2HE.png\" />" << std::endl;
4811 htmlFileD <<
" <img src=\"MapRateAmpl2HO.png\" />" << std::endl;
4813 htmlFileD <<
" <img src=\"MapRateAmpl2HF.png\" />" << std::endl;
4814 htmlFileD <<
"<br>" << std::endl;
4815 htmlFileD <<
"<h3> 1.C. Relative difference between Current and Reference run distribution over all events, "
4816 "channels for each depth.</h3>"
4818 htmlFileD <<
"<h4> Legend: Bins less -" << porog[sub] <<
"% and more +" << porog[sub]
4819 <<
"% correpond to bad relative difference position </h4>" << std::endl;
4821 htmlFileD <<
" <img src=\"HistAmplDriftDepthHB.png\" />" << std::endl;
4823 htmlFileD <<
" <img src=\"HistAmplDriftDepthHE.png\" />" << std::endl;
4825 htmlFileD <<
" <img src=\"HistAmplDriftDepthHO.png\" />" << std::endl;
4827 htmlFileD <<
" <img src=\"HistAmplDriftDepthHF.png\" />" << std::endl;
4828 htmlFileD <<
"<br>" << std::endl;
4829 htmlFileD <<
"<h3> 1.D. Rate of bad relative difference (<-" << porog[sub] <<
", >+" << porog[sub]
4830 <<
") in each channel for each depth.</h3>" << std::endl;
4831 htmlFileD <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4833 htmlFileD <<
" <img src=\"MapRateAmplDriftHB.png\" />" << std::endl;
4835 htmlFileD <<
" <img src=\"MapRateAmplDriftHE.png\" />" << std::endl;
4837 htmlFileD <<
" <img src=\"MapRateAmplDriftHO.png\" />" << std::endl;
4839 htmlFileD <<
" <img src=\"MapRateAmplDriftHF.png\" />" << std::endl;
4840 htmlFileD <<
"<br>" << std::endl;
4842 htmlFileD <<
"</body> " << std::endl;
4843 htmlFileD <<
"</html> " << std::endl;
4847 htmlFileP <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4848 htmlFileP <<
"<head>" << std::endl;
4849 htmlFileP <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4850 htmlFileP <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4851 htmlFileP <<
"<style type=\"text/css\">" << std::endl;
4852 htmlFileP <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4854 htmlFileP <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4855 htmlFileP <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4856 "text-align: center;}"
4858 htmlFileP <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4859 htmlFileP <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4860 htmlFileP <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4861 htmlFileP <<
"</style>" << std::endl;
4862 htmlFileP <<
"<body>" << std::endl;
4865 htmlFileP <<
"<h1> Pedestals for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4867 htmlFileP <<
"<h1> Pedestals for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4869 htmlFileP <<
"<h1> Pedestals for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4871 htmlFileP <<
"<h1> Pedestals for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4872 htmlFileP <<
"<br>" << std::endl;
4875 htmlFileP <<
"<h2> 1.Pm criterion: Pedestals for each CapID .</h3>" << std::endl;
4876 htmlFileP <<
"<h3> 1.A. Pedestal distribution over all events, channels for each CapID and all depths.</h3>"
4878 htmlFileP <<
"<h4> Legend: Bins less " << Pedest[0][sub] <<
" correpond to bad Pedestals </h4>" << std::endl;
4880 htmlFileP <<
" <img src=\"HistPedestalsHB.png\" />" << std::endl;
4882 htmlFileP <<
" <img src=\"HistPedestalsHE.png\" />" << std::endl;
4884 htmlFileP <<
" <img src=\"HistPedestalsHO.png\" />" << std::endl;
4886 htmlFileP <<
" <img src=\"HistPedestalsHF.png\" />" << std::endl;
4887 htmlFileP <<
"<br>" << std::endl;
4888 htmlFileP <<
"<h3> 1.B. Rate of channels at very low Pedestals at least in one CapID for each depth.</h3>"
4890 htmlFileP <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4892 htmlFileP <<
" <img src=\"MapRatePedHB.png\" />" << std::endl;
4894 htmlFileP <<
" <img src=\"MapRatePedHE.png\" />" << std::endl;
4896 htmlFileP <<
" <img src=\"MapRatePedHO.png\" />" << std::endl;
4898 htmlFileP <<
" <img src=\"MapRatePedHF.png\" />" << std::endl;
4901 htmlFileP <<
"<h2> 2.pWm criterion: Pedestal Widths for each CapID .</h3>" << std::endl;
4902 htmlFileP <<
"<h3> 2.A. Pedestal Widths distribution over all events, channels for each CapID and all depths.</h3>"
4904 htmlFileP <<
"<h4> Legend: Bins less " << Pedest[1][sub] <<
" correpond to bad Pedestal Widths </h4>" << std::endl;
4906 htmlFileP <<
" <img src=\"HistPedestalWidthsHB.png\" />" << std::endl;
4908 htmlFileP <<
" <img src=\"HistPedestalWidthsHE.png\" />" << std::endl;
4910 htmlFileP <<
" <img src=\"HistPedestalWidthsHO.png\" />" << std::endl;
4912 htmlFileP <<
" <img src=\"HistPedestalWidthsHF.png\" />" << std::endl;
4913 htmlFileP <<
"<br>" << std::endl;
4914 htmlFileP <<
"<h3> 2.B. Rate of channels at very low Pedestal Widths at least in one CapID for each depth.</h3>"
4916 htmlFileP <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4918 htmlFileP <<
" <img src=\"MapRatePedWidthsHB.png\" />" << std::endl;
4920 htmlFileP <<
" <img src=\"MapRatePedWidthsHE.png\" />" << std::endl;
4922 htmlFileP <<
" <img src=\"MapRatePedWidthsHO.png\" />" << std::endl;
4924 htmlFileP <<
" <img src=\"MapRatePedWidthsHF.png\" />" << std::endl;
4927 htmlFileP <<
"<h2> 3.Pedestal and pedestalWidths vs Amplitude .</h3>" << std::endl;
4928 htmlFileP <<
"<h3> 3.A. Correlation of Pedestal(pedestalWidths) and Amplitude over all channels and events .</h3>"
4930 htmlFileP <<
"<h4> Legend: colour - entries </h4>" << std::endl;
4932 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHB.png\" />" << std::endl;
4934 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHE.png\" />" << std::endl;
4936 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHO.png\" />" << std::endl;
4938 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHF.png\" />" << std::endl;
4939 htmlFileP <<
"<br>" << std::endl;
4944 htmlFileS <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4945 htmlFileS <<
"<head>" << std::endl;
4946 htmlFileS <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4947 htmlFileS <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4948 htmlFileS <<
"<style type=\"text/css\">" << std::endl;
4949 htmlFileS <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4951 htmlFileS <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4952 htmlFileS <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4953 "text-align: center;}"
4955 htmlFileS <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4956 htmlFileS <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4957 htmlFileS <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4958 htmlFileS <<
"</style>" << std::endl;
4959 htmlFileS <<
"<body>" << std::endl;
4962 htmlFileS <<
"<h1> ADC Shape for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4964 htmlFileS <<
"<h1> ADC Shape for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4966 htmlFileS <<
"<h1> ADC Shape for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4968 htmlFileS <<
"<h1> ADC Shape for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4969 htmlFileS <<
"<br>" << std::endl;
4971 htmlFileS <<
"<h2> 1.Mean ADC Shape.</h3>" << std::endl;
4972 htmlFileS <<
"<h3> 1.A. ADC shape averaged over all good channels, depth and events.</h3>" << std::endl;
4975 htmlFileS <<
" <img src=\"HistGoodTSshapesHB.png\" />" << std::endl;
4977 htmlFileS <<
" <img src=\"HistGoodTSshapesHE.png\" />" << std::endl;
4979 htmlFileS <<
" <img src=\"HistGoodTSshapesHO.png\" />" << std::endl;
4981 htmlFileS <<
" <img src=\"HistGoodTSshapesHF.png\" />" << std::endl;
4982 htmlFileS <<
"<br>" << std::endl;
4983 htmlFileS <<
"<h3> 1.B. ADC shape averaged over all bad channels, depth and events. Bad channels are selected by 5 "
4984 "criteria: CapId, A, W, P, Pw </h3>"
4988 htmlFileS <<
" <img src=\"HistBadTSshapesHB.png\" />" << std::endl;
4990 htmlFileS <<
" <img src=\"HistBadTSshapesHE.png\" />" << std::endl;
4992 htmlFileS <<
" <img src=\"HistBadTSshapesHO.png\" />" << std::endl;
4994 htmlFileS <<
" <img src=\"HistBadTSshapesHF.png\" />" << std::endl;
5039 htmlFileM <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5040 htmlFileM <<
"<head>" << std::endl;
5041 htmlFileM <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5042 htmlFileM <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5043 htmlFileM <<
"<style type=\"text/css\">" << std::endl;
5044 htmlFileM <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5046 htmlFileM <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5047 htmlFileM <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5048 "text-align: center;}"
5050 htmlFileM <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5051 htmlFileM <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5052 htmlFileM <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5053 htmlFileM <<
"</style>" << std::endl;
5054 htmlFileM <<
"<body>" << std::endl;
5057 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HB, RUN = " << runnumber <<
" </h1>" << std::endl;
5059 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HE, RUN = " << runnumber <<
" </h1>" << std::endl;
5061 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HO, RUN = " << runnumber <<
" </h1>" << std::endl;
5063 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HF, RUN = " << runnumber <<
" </h1>" << std::endl;
5064 htmlFileM <<
"<br>" << std::endl;
5066 htmlFileM <<
"<h2> 1: Positive direction, R = R_depth_ieta_iphi = E_depth_ieta_iphi/E_depth_ieta </h3>"
5069 htmlFileM <<
"<h3> 1.A. eta/phi-plot: R, averaged over depthes </h3>" << std::endl;
5072 htmlFileM <<
" <img src=\"Rhist2IterationMethodHB.png\" />" << std::endl;
5074 htmlFileM <<
" <img src=\"Rhist2IterationMethodHE.png\" />" << std::endl;
5076 htmlFileM <<
" <img src=\"Rhist2IterationMethodHO.png\" />" << std::endl;
5078 htmlFileM <<
" <img src=\"Rhist2IterationMethodHF.png\" />" << std::endl;
5079 htmlFileM <<
"<br>" << std::endl;
5081 htmlFileM <<
"<h3> 1B: R vs phi , averaged over depthes & eta </h3>" << std::endl;
5084 htmlFileM <<
" <img src=\"Rhist1IterationMethodHB.png\" />" << std::endl;
5086 htmlFileM <<
" <img src=\"Rhist1IterationMethodHE.png\" />" << std::endl;
5088 htmlFileM <<
" <img src=\"Rhist1IterationMethodHO.png\" />" << std::endl;
5090 htmlFileM <<
" <img src=\"Rhist1IterationMethodHF.png\" />" << std::endl;
5091 htmlFileM <<
"<br>" << std::endl;
5095 htmlFileM <<
"<h3> 1C: R vs phi , different eta, Depth1 </h3>" << std::endl;
5098 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HB.png\" />" << std::endl;
5100 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HE.png\" />" << std::endl;
5102 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HF.png\" />" << std::endl;
5103 htmlFileM <<
"<br>" << std::endl;
5105 htmlFileM <<
"<h3> 1D: R vs phi , different eta, Depth2 </h3>" << std::endl;
5108 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HB.png\" />" << std::endl;
5110 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HE.png\" />" << std::endl;
5112 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HF.png\" />" << std::endl;
5113 htmlFileM <<
"<br>" << std::endl;
5115 htmlFileM <<
"<h3> 1E: R vs phi , different eta, Depth3 </h3>" << std::endl;
5118 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HB.png\" />" << std::endl;
5120 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HE.png\" />" << std::endl;
5122 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HF.png\" />" << std::endl;
5123 htmlFileM <<
"<br>" << std::endl;
5125 htmlFileM <<
"<h3> 1F: R vs phi , different eta, Depth4 </h3>" << std::endl;
5128 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HB.png\" />" << std::endl;
5130 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HE.png\" />" << std::endl;
5132 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HO.png\" />" << std::endl;
5134 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HF.png\" />" << std::endl;
5135 htmlFileM <<
"<br>" << std::endl;
5137 htmlFileM <<
"<h3> 1G: R vs phi , different eta, Depth5 </h3>" << std::endl;
5140 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth5HE.png\" />" << std::endl;
5141 htmlFileM <<
"<br>" << std::endl;
5143 htmlFileM <<
"<h3> 1H: R vs phi , different eta, Depth6 </h3>" << std::endl;
5146 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth6HE.png\" />" << std::endl;
5147 htmlFileM <<
"<br>" << std::endl;
5149 htmlFileM <<
"<h3> 1I: R vs phi , different eta, Depth7 </h3>" << std::endl;
5152 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth7HE.png\" />" << std::endl;
5153 htmlFileM <<
"<br>" << std::endl;
5155 htmlFileM <<
"<h2> 2: Positive direction, D(variance) </h3>" << std::endl;
5157 htmlFileM <<
"<h3> 2A: eta/phi-plot: D(variance), averaged over depthes </h3>" << std::endl;
5160 htmlFileM <<
" <img src=\"Dhist2IterationMethodHB.png\" />" << std::endl;
5162 htmlFileM <<
" <img src=\"Dhist2IterationMethodHE.png\" />" << std::endl;
5164 htmlFileM <<
" <img src=\"Dhist2IterationMethodHO.png\" />" << std::endl;
5166 htmlFileM <<
" <img src=\"Dhist2IterationMethodHF.png\" />" << std::endl;
5167 htmlFileM <<
"<br>" << std::endl;
5169 htmlFileM <<
"<h3> 2B: D(variance) vs phi , averaged over depthes & eta </h3>" << std::endl;
5172 htmlFileM <<
" <img src=\"Dhist1IterationMethodHB.png\" />" << std::endl;
5174 htmlFileM <<
" <img src=\"Dhist1IterationMethodHE.png\" />" << std::endl;
5176 htmlFileM <<
" <img src=\"Dhist1IterationMethodHO.png\" />" << std::endl;
5178 htmlFileM <<
" <img src=\"Dhist1IterationMethodHF.png\" />" << std::endl;
5179 htmlFileM <<
"<br>" << std::endl;
5183 htmlFileM <<
"<h3> 2C: D(variance) vs phi , different eta, Depth1 </h3>" << std::endl;
5186 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HB.png\" />" << std::endl;
5188 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HE.png\" />" << std::endl;
5190 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HF.png\" />" << std::endl;
5191 htmlFileM <<
"<br>" << std::endl;
5193 htmlFileM <<
"<h3> 2.D. D(variance) vs phi , different eta, Depth2 </h3>" << std::endl;
5196 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HB.png\" />" << std::endl;
5198 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HE.png\" />" << std::endl;
5200 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HF.png\" />" << std::endl;
5201 htmlFileM <<
"<br>" << std::endl;
5203 htmlFileM <<
"<h3> 2E: D(variance) vs phi , different eta, Depth3 </h3>" << std::endl;
5206 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HB.png\" />" << std::endl;
5208 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HE.png\" />" << std::endl;
5210 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HF.png\" />" << std::endl;
5211 htmlFileM <<
"<br>" << std::endl;
5213 htmlFileM <<
"<h3> 2F: D(variance) vs phi , different eta, Depth4 </h3>" << std::endl;
5216 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HB.png\" />" << std::endl;
5218 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HE.png\" />" << std::endl;
5220 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HO.png\" />" << std::endl;
5222 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HF.png\" />" << std::endl;
5223 htmlFileM <<
"<br>" << std::endl;
5225 htmlFileM <<
"<h3> 2G: D(variance) vs phi , different eta, Depth5 </h3>" << std::endl;
5228 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth5HE.png\" />" << std::endl;
5229 htmlFileM <<
"<br>" << std::endl;
5231 htmlFileM <<
"<h3> 2H: D(variance) vs phi , different eta, Depth6 </h3>" << std::endl;
5234 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth6HE.png\" />" << std::endl;
5235 htmlFileM <<
"<br>" << std::endl;
5237 htmlFileM <<
"<h3> 2I: D(variance) vs phi , different eta, Depth7 </h3>" << std::endl;
5240 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth7HE.png\" />" << std::endl;
5241 htmlFileM <<
"<br>" << std::endl;
5253 std::cout <<
"************ Start creating subdet html pages: - rather long time needed, waiting please"
5258 for (
int sub = 1; sub <= 4; sub++) {
5261 htmlFile.open(
"HB.html");
5263 htmlFile.open(
"HE.html");
5265 htmlFile.open(
"HO.html");
5267 htmlFile.open(
"HF.html");
5269 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5270 htmlFile <<
"<head>" << std::endl;
5271 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5272 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5273 htmlFile <<
"<style type=\"text/css\">" << std::endl;
5274 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5276 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5277 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5278 "text-align: center;}"
5280 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5281 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5282 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5283 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #FF00FF; }" << std::endl;
5284 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #9ACD32; }" << std::endl;
5285 htmlFile <<
" td.s7 { font-family: arial, arial ce, helvetica; background-color: #32CD32; }" << std::endl;
5286 htmlFile <<
" td.s8 { font-family: arial, arial ce, helvetica; background-color: #00FFFF; }" << std::endl;
5287 htmlFile <<
" td.s9 { font-family: arial, arial ce, helvetica; background-color: #FFE4E1; }" << std::endl;
5288 htmlFile <<
" td.s10 { font-family: arial, arial ce, helvetica; background-color: #A0522D; }" << std::endl;
5289 htmlFile <<
" td.s11 { font-family: arial, arial ce, helvetica; background-color: #1E90FF; }" << std::endl;
5290 htmlFile <<
" td.s12 { font-family: arial, arial ce, helvetica; background-color: #00BFFF; }" << std::endl;
5291 htmlFile <<
" td.s13 { font-family: arial, arial ce, helvetica; background-color: #FFFF00; }" << std::endl;
5292 htmlFile <<
" td.s14 { font-family: arial, arial ce, helvetica; background-color: #B8860B; }" << std::endl;
5293 htmlFile <<
"</style>" << std::endl;
5294 htmlFile <<
"<body>" << std::endl;
5296 htmlFile <<
"<h1> HCAL BARREL, RUN = " << runnumber <<
" </h1>" << std::endl;
5298 htmlFile <<
"<h1> HCAL ENDCAP, RUN = " << runnumber <<
" </h1>" << std::endl;
5300 htmlFile <<
"<h1> HCAL OUTER, RUN = " << runnumber <<
" </h1>" << std::endl;
5302 htmlFile <<
"<h1> HCAL FORWARD, RUN = " << runnumber <<
" </h1>" << std::endl;
5303 htmlFile <<
"<br>" << std::endl;
5305 htmlFile <<
"<h2> 1. Analysis results for HB</h2>" << std::endl;
5307 htmlFile <<
"<h2> 1. Analysis results for HE</h2>" << std::endl;
5309 htmlFile <<
"<h2> 1. Analysis results for HO</h2>" << std::endl;
5311 htmlFile <<
"<h2> 1. Analysis results for HF</h2>" << std::endl;
5312 htmlFile <<
"<table width=\"600\">" << std::endl;
5313 htmlFile <<
"<tr>" << std::endl;
5324 htmlFile <<
" <td><a "
5325 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5326 "HcalRemoteMonitoring/RMT/LED_"
5327 << runnumber <<
"/HB_Tile.html\">Megatile Channels</a></td>" << std::endl;
5328 htmlFile <<
" <td><a "
5329 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5330 "HcalRemoteMonitoring/RMT/LED_"
5331 << runnumber <<
"/HB_Calib.html\">Calibration Channels</a></td>" << std::endl;
5332 htmlFile <<
" <td><a "
5333 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5334 "HcalRemoteMonitoring/RMT/LED_"
5335 << runnumber <<
"/HB_Drift.html\">Gain Stability</a></td>" << std::endl;
5336 htmlFile <<
" <td><a "
5337 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5338 "HcalRemoteMonitoring/RMT/LED_"
5339 << runnumber <<
"/HB_Pedestals.html\">Pedestals</a></td>" << std::endl;
5340 htmlFile <<
" <td><a "
5341 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5342 "HcalRemoteMonitoring/RMT/LED_"
5343 << runnumber <<
"/HB_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5355 htmlFile <<
" <td><a "
5356 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5357 "HcalRemoteMonitoring/RMT/LED_"
5358 << runnumber <<
"/HE_Tile.html\">Megatile Channels</a></td>" << std::endl;
5359 htmlFile <<
" <td><a "
5360 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5361 "HcalRemoteMonitoring/RMT/LED_"
5362 << runnumber <<
"/HE_Calib.html\">Calibration Channels</a></td>" << std::endl;
5363 htmlFile <<
" <td><a "
5364 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5365 "HcalRemoteMonitoring/RMT/LED_"
5366 << runnumber <<
"/HE_Drift.html\">Gain Stability</a></td>" << std::endl;
5367 htmlFile <<
" <td><a "
5368 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5369 "HcalRemoteMonitoring/RMT/LED_"
5370 << runnumber <<
"/HE_Pedestals.html\">Pedestals</a></td>" << std::endl;
5371 htmlFile <<
" <td><a "
5372 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5373 "HcalRemoteMonitoring/RMT/LED_"
5374 << runnumber <<
"/HE_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5375 htmlFile <<
" <td><a "
5376 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5377 "HcalRemoteMonitoring/RMT/LED_"
5378 << runnumber <<
"/HE_IterationMethod.html\">Iteration Method</a></td>" << std::endl;
5389 htmlFile <<
" <td><a "
5390 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5391 "HcalRemoteMonitoring/RMT/LED_"
5392 << runnumber <<
"/HO_Tile.html\">Megatile Channels</a></td>" << std::endl;
5393 htmlFile <<
" <td><a "
5394 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5395 "HcalRemoteMonitoring/RMT/LED_"
5396 << runnumber <<
"/HO_Calib.html\">Calibration Channels</a></td>" << std::endl;
5397 htmlFile <<
" <td><a "
5398 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5399 "HcalRemoteMonitoring/RMT/LED_"
5400 << runnumber <<
"/HO_Drift.html\">Gain Stability</a></td>" << std::endl;
5401 htmlFile <<
" <td><a "
5402 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5403 "HcalRemoteMonitoring/RMT/LED_"
5404 << runnumber <<
"/HO_Pedestals.html\">Pedestals</a></td>" << std::endl;
5405 htmlFile <<
" <td><a "
5406 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5407 "HcalRemoteMonitoring/RMT/LED_"
5408 << runnumber <<
"/HO_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5418 htmlFile <<
" <td><a "
5419 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5420 "HcalRemoteMonitoring/RMT/LED_"
5421 << runnumber <<
"/HF_Tile.html\">Megatile Channels</a></td>" << std::endl;
5422 htmlFile <<
" <td><a "
5423 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5424 "HcalRemoteMonitoring/RMT/LED_"
5425 << runnumber <<
"/HF_Calib.html\">Calibration Channels</a></td>" << std::endl;
5426 htmlFile <<
" <td><a "
5427 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5428 "HcalRemoteMonitoring/RMT/LED_"
5429 << runnumber <<
"/HF_Drift.html\">Gain Stability</a></td>" << std::endl;
5430 htmlFile <<
" <td><a "
5431 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5432 "HcalRemoteMonitoring/RMT/LED_"
5433 << runnumber <<
"/HF_Pedestals.html\">Pedestals</a></td>" << std::endl;
5434 htmlFile <<
" <td><a "
5435 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5436 "HcalRemoteMonitoring/RMT/LED_"
5437 << runnumber <<
"/HF_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5440 htmlFile <<
"</tr>" << std::endl;
5441 htmlFile <<
"</table>" << std::endl;
5442 htmlFile <<
"<br>" << std::endl;
5444 htmlFile <<
"<h2> 2.Status HB over all criteria </h2>" << std::endl;
5446 htmlFile <<
"<h2> 2.Status HE over all criteria </h2>" << std::endl;
5448 htmlFile <<
"<h2> 2.Status HO over all criteria </h2>" << std::endl;
5450 htmlFile <<
"<h2> 2.Status HF over all criteria </h2>" << std::endl;
5451 htmlFile <<
"<h3> 2.A.Channel map for each Depth </h3>" << std::endl;
5452 htmlFile <<
"<h4> Channel legend: green - good, red - bad (rate of failures at least 0.1), yellow - at least 2% "
5453 "gain drift, white - not applicable or out of range </h4>"
5456 htmlFile <<
" <img src=\"MAPHB.png\" />" << std::endl;
5458 htmlFile <<
" <img src=\"MAPHE.png\" />" << std::endl;
5460 htmlFile <<
" <img src=\"MAPHO.png\" />" << std::endl;
5462 htmlFile <<
" <img src=\"MAPHF.png\" />" << std::endl;
5463 htmlFile <<
"<br>" << std::endl;
5465 htmlFile <<
"<h3> 2.B.List of Bad channels (rate > 0.1) and its rates for each RMT criteria (for GS - %) </h3>"
5469 htmlFile <<
" <td><a "
5470 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5471 "HcalRemoteMonitoring/RMT/LED_"
5472 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
5474 htmlFile <<
"<table>" << std::endl;
5476 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5477 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5478 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5479 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5480 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5481 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5482 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5483 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5484 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5485 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5486 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5487 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5488 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5489 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5490 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5491 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5492 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5493 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5494 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5495 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5496 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5497 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5498 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5499 htmlFile <<
"<td class=\"s9\" align=\"center\">GS (%)</td>" << std::endl;
5500 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5501 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5502 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5503 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5504 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5505 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5506 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5507 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5509 htmlFile <<
"</tr>" << std::endl;
5511 for (
int i = 1;
i <= NBad;
i++) {
5512 if ((ind % 2) == 1) {
5513 raw_class =
"<td class=\"s2\" align=\"center\">";
5514 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5515 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5516 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5519 raw_class =
"<td class=\"s3\" align=\"center\">";
5520 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5521 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5522 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5526 if ((ce.
size() >= 1) && (Sub[2][
i] == sub)) {
5527 if (Sub[2][
i] == 1) {
5528 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5529 if (ce.
size() == 0) {
5532 }
else if (ce.
size() > 1) {
5533 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5534 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5537 if (Sub[2][i] == 2) {
5538 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[2][i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5539 if (ce.
size() == 0) {
5542 }
else if (ce.
size() > 1) {
5543 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5544 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5547 if (Sub[2][i] == 3) {
5548 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[2][i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5549 if (ce.
size() == 0) {
5552 }
else if (ce.
size() > 1) {
5553 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5554 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5557 if (Sub[2][i] == 4) {
5558 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[2][i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5559 if (ce.
size() == 0) {
5562 }
else if (ce.
size() > 1) {
5563 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5564 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5567 htmlFile <<
"<tr>" << std::endl;
5568 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5569 htmlFile << raw_class << Eta[2][
i] <<
"</td>" << std::endl;
5570 htmlFile << raw_class << Phi[2][
i] <<
"</td>" << std::endl;
5571 htmlFile << raw_class << Depth[2][
i] <<
"</td>" << std::endl;
5572 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5573 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5574 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5575 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5576 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5577 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5578 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5579 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5580 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5581 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5582 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5583 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5584 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5585 htmlFile << raw_class1 << Map_Ampl[1][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5586 <<
"</td>" << std::endl;
5587 htmlFile << raw_class1 << Map_Ampl[2][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5588 <<
"</td>" << std::endl;
5589 htmlFile << raw_class1 << Map_Ampl[3][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5590 <<
"</td>" << std::endl;
5591 htmlFile << raw_class1 << Map_Ampl[4][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5592 <<
"</td>" << std::endl;
5593 htmlFile << raw_class1 << Map_Ampl[5][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5594 <<
"</td>" << std::endl;
5595 htmlFile << raw_class1 << Map_Ampl[6][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5596 <<
"</td>" << std::endl;
5597 htmlFile << raw_class3 << Map_Ampl[21][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5598 <<
"</td>" << std::endl;
5599 htmlFile << raw_class << Map_Ampl[31][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5600 <<
"</td>" << std::endl;
5601 htmlFile << raw_class << Map_Ampl[32][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5602 <<
"</td>" << std::endl;
5603 htmlFile << raw_class2 << Map_Ampl[11][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5604 <<
"</td>" << std::endl;
5605 htmlFile << raw_class2 << Map_Ampl[12][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5606 <<
"</td>" << std::endl;
5607 htmlFile << raw_class2 << Map_Ampl[13][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5608 <<
"</td>" << std::endl;
5609 htmlFile << raw_class2 << Map_Ampl[14][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5610 <<
"</td>" << std::endl;
5611 htmlFile << raw_class2 << Map_Ampl[15][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5612 <<
"</td>" << std::endl;
5613 htmlFile << raw_class2 << Map_Ampl[16][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][i] + 41, Phi[2][i] + 1)
5614 <<
"</td>" << std::endl;
5615 htmlFile <<
"</tr>" << std::endl;
5620 htmlFile <<
"</table>" << std::endl;
5621 htmlFile <<
"<br>" << std::endl;
5623 htmlFile <<
"<h3> 2.C.List of Gain unstable channels and its value in % (for other criterias - rate)</h3>"
5625 htmlFile <<
"<table>" << std::endl;
5627 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5628 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5629 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5630 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5631 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5632 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5633 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5634 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5635 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5636 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5637 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5638 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5639 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5640 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5641 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5642 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5643 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5644 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5645 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5646 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5647 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5648 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5649 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5650 htmlFile <<
"<td class=\"s9\" align=\"center\">GS(%)</td>" << std::endl;
5651 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5652 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5653 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5654 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5655 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5656 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5657 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5658 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5659 htmlFile <<
"</tr>" << std::endl;
5661 for (
int i = 1; i <= NWarn; i++) {
5662 if ((ind % 2) == 1) {
5663 raw_class =
"<td class=\"s2\" align=\"center\">";
5664 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5665 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5666 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5669 raw_class =
"<td class=\"s3\" align=\"center\">";
5670 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5671 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5672 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5676 if ((ce.
size() >= 1) && (Sub[1][i] == sub)) {
5677 if (Sub[1][i] == 1) {
5678 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[1][i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5679 if (ce.
size() == 0) {
5682 }
else if (ce.
size() > 1) {
5683 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5684 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5687 if (Sub[1][i] == 2) {
5688 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[1][i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5689 if (ce.
size() == 0) {
5692 }
else if (ce.
size() > 1) {
5693 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5694 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5697 if (Sub[1][i] == 3) {
5698 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[1][i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5699 if (ce.
size() == 0) {
5702 }
else if (ce.
size() > 1) {
5703 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5704 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5707 if (Sub[1][i] == 4) {
5708 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[1][i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5709 if (ce.
size() == 0) {
5712 }
else if (ce.
size() > 1) {
5713 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5714 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5717 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5718 htmlFile << raw_class << Eta[1][
i] <<
"</td>" << std::endl;
5719 htmlFile << raw_class << Phi[1][
i] <<
"</td>" << std::endl;
5720 htmlFile << raw_class << Depth[1][
i] <<
"</td>" << std::endl;
5721 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5722 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5723 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5724 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5725 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5726 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5727 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5728 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5729 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5730 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5731 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5732 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5733 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5734 htmlFile << raw_class1 << Map_Ampl[1][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5735 <<
"</td>" << std::endl;
5736 htmlFile << raw_class1 << Map_Ampl[2][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5737 <<
"</td>" << std::endl;
5738 htmlFile << raw_class1 << Map_Ampl[3][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5739 <<
"</td>" << std::endl;
5740 htmlFile << raw_class1 << Map_Ampl[4][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5741 <<
"</td>" << std::endl;
5742 htmlFile << raw_class1 << Map_Ampl[5][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5743 <<
"</td>" << std::endl;
5744 htmlFile << raw_class1 << Map_Ampl[6][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5745 <<
"</td>" << std::endl;
5746 htmlFile << raw_class3 << Map_Ampl[21][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5747 <<
"</td>" << std::endl;
5748 htmlFile << raw_class << Map_Ampl[31][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5749 <<
"</td>" << std::endl;
5750 htmlFile << raw_class << Map_Ampl[32][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5751 <<
"</td>" << std::endl;
5752 htmlFile << raw_class2 << Map_Ampl[11][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5753 <<
"</td>" << std::endl;
5754 htmlFile << raw_class2 << Map_Ampl[12][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5755 <<
"</td>" << std::endl;
5756 htmlFile << raw_class2 << Map_Ampl[13][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5757 <<
"</td>" << std::endl;
5758 htmlFile << raw_class2 << Map_Ampl[14][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5759 <<
"</td>" << std::endl;
5760 htmlFile << raw_class2 << Map_Ampl[15][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5761 <<
"</td>" << std::endl;
5762 htmlFile << raw_class2 << Map_Ampl[16][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][i] + 41, Phi[1][i] + 1)
5763 <<
"</td>" << std::endl;
5764 htmlFile <<
"</tr>" << std::endl;
5765 htmlFile <<
"</tr>" << std::endl;
5769 htmlFile <<
"</table>" << std::endl;
5770 htmlFile <<
"<br>" << std::endl;
5772 htmlFile <<
"<h3> 2.D.List of channels with Bad Pedestals (rate > 0.1) and its rates (for GS - %)</h3>"
5774 htmlFile <<
"<table>" << std::endl;
5776 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5777 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5778 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5779 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5780 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5781 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5782 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5783 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5784 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5785 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5786 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5787 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5788 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5789 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5790 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5791 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5792 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5793 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5794 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5795 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5796 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5797 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5798 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5799 htmlFile <<
"<td class=\"s9\" align=\"center\">GS(%)</td>" << std::endl;
5800 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5801 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5802 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5803 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5804 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5805 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5806 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5807 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5808 htmlFile <<
"</tr>" << std::endl;
5810 for (
int i = 1; i <= NPed; i++) {
5811 if ((ind % 2) == 1) {
5812 raw_class =
"<td class=\"s2\" align=\"center\">";
5813 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5814 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5815 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5818 raw_class =
"<td class=\"s3\" align=\"center\">";
5819 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5820 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5821 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5825 if ((ce.
size() >= 1) && (Sub[3][i] == sub)) {
5826 if (Sub[3][i] == 1) {
5827 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[3][i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5828 if (ce.
size() == 0) {
5831 }
else if (ce.
size() > 1) {
5832 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5833 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5836 if (Sub[3][i] == 2) {
5837 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[3][i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5838 if (ce.
size() == 0) {
5841 }
else if (ce.
size() > 1) {
5842 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5843 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5846 if (Sub[3][i] == 3) {
5847 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[3][i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5848 if (ce.
size() == 0) {
5851 }
else if (ce.
size() > 1) {
5852 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5853 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5856 if (Sub[3][i] == 4) {
5857 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[3][i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5858 if (ce.
size() == 0) {
5861 }
else if (ce.
size() > 1) {
5862 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5863 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5866 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5867 htmlFile << raw_class << Eta[3][
i] <<
"</td>" << std::endl;
5868 htmlFile << raw_class << Phi[3][
i] <<
"</td>" << std::endl;
5869 htmlFile << raw_class << Depth[3][
i] <<
"</td>" << std::endl;
5870 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5871 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5872 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5873 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5874 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5875 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5876 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5877 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5878 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5879 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5880 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5881 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5882 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5883 htmlFile << raw_class1 << Map_Ampl[1][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5884 <<
"</td>" << std::endl;
5885 htmlFile << raw_class1 << Map_Ampl[2][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5886 <<
"</td>" << std::endl;
5887 htmlFile << raw_class1 << Map_Ampl[3][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5888 <<
"</td>" << std::endl;
5889 htmlFile << raw_class1 << Map_Ampl[4][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5890 <<
"</td>" << std::endl;
5891 htmlFile << raw_class1 << Map_Ampl[5][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5892 <<
"</td>" << std::endl;
5893 htmlFile << raw_class1 << Map_Ampl[6][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5894 <<
"</td>" << std::endl;
5895 htmlFile << raw_class3 << Map_Ampl[21][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5896 <<
"</td>" << std::endl;
5897 htmlFile << raw_class << Map_Ampl[31][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5898 <<
"</td>" << std::endl;
5899 htmlFile << raw_class << Map_Ampl[32][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5900 <<
"</td>" << std::endl;
5901 htmlFile << raw_class2 << Map_Ampl[11][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5902 <<
"</td>" << std::endl;
5903 htmlFile << raw_class2 << Map_Ampl[12][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5904 <<
"</td>" << std::endl;
5905 htmlFile << raw_class2 << Map_Ampl[13][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5906 <<
"</td>" << std::endl;
5907 htmlFile << raw_class2 << Map_Ampl[14][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5908 <<
"</td>" << std::endl;
5909 htmlFile << raw_class2 << Map_Ampl[15][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5910 <<
"</td>" << std::endl;
5911 htmlFile << raw_class2 << Map_Ampl[16][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][i] + 41, Phi[3][i] + 1)
5912 <<
"</td>" << std::endl;
5913 htmlFile <<
"</tr>" << std::endl;
5914 htmlFile <<
"</tr>" << std::endl;
5918 htmlFile <<
"</table>" << std::endl;
5920 htmlFile <<
"</body> " << std::endl;
5921 htmlFile <<
"</html> " << std::endl;
5928 std::cout <<
"************ Start creating description HELP html file:" << std::endl;
5932 htmlFile.open(
"HELP.html");
5933 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5934 htmlFile <<
"<head>" << std::endl;
5935 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5936 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5937 htmlFile <<
"<style type=\"text/css\">" << std::endl;
5938 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5940 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5941 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5942 "text-align: center;}"
5944 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5945 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5946 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5947 htmlFile <<
"</style>" << std::endl;
5948 htmlFile <<
"<body>" << std::endl;
5949 htmlFile <<
"<h1> Description of Remote Monitoring Tool criteria for bad channel selection</h1>" << std::endl;
5950 htmlFile <<
"<br>" << std::endl;
5951 htmlFile <<
"<h3> - C means CAPID Errors assuming we inspect CAPID non-rotation,error & validation bits, and for "
5952 "this criterion - no need to apply any cuts to select bcs.</h3> "
5954 htmlFile <<
"<br>" << std::endl;
5955 htmlFile <<
"<h3> - A means full amplitude, collected over all time slices </h3> " << std::endl;
5956 htmlFile <<
"<h3> - R means ratio criterion where we define as a bad, the channels, for which the signal portion in "
5957 "4 middle TSs(plus one, minus two around TS with maximal amplitude) is out of some range of reasonable "
5960 htmlFile <<
"<br>" << std::endl;
5961 htmlFile <<
"<h3> - W means width of shape distribution. Width is defined as square root from dispersion. </h3> "
5963 htmlFile <<
"<br>" << std::endl;
5964 htmlFile <<
"<h3> - TN means mean time position of adc signal. </h3> " << std::endl;
5965 htmlFile <<
"<br>" << std::endl;
5966 htmlFile <<
"<h3> - TX means TS number of maximum signal </h3> " << std::endl;
5967 htmlFile <<
"<br>" << std::endl;
5968 htmlFile <<
"<h3> - m means megatile channels. For example Am means Amplitude criteria for megatile channels </h3> "
5970 htmlFile <<
"<br>" << std::endl;
5972 <<
"<h3> - c means calibration channels. For example Ac means Amplitude criteria for calibration channels </h3> "
5974 htmlFile <<
"<br>" << std::endl;
5975 htmlFile <<
"<h3> - Pm means Pedestals. </h3> " << std::endl;
5976 htmlFile <<
"<br>" << std::endl;
5977 htmlFile <<
"<h3> - pWm means pedestal Width. </h3> " << std::endl;
5978 htmlFile <<
"<br>" << std::endl;
5979 htmlFile <<
"</body> " << std::endl;
5980 htmlFile <<
"</html> " << std::endl;
5986 std::cout <<
"************ Start creating MAP html file: - rather long time needed, waiting please" << std::endl;
5989 htmlFile.open(
"MAP.html");
5990 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5991 htmlFile <<
"<head>" << std::endl;
5992 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5993 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5994 htmlFile <<
"<style type=\"text/css\">" << std::endl;
5995 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5997 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5998 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5999 "text-align: center;}"
6001 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6002 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6003 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6004 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #FF00FF; }" << std::endl;
6005 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #9ACD32; }" << std::endl;
6006 htmlFile <<
" td.s7 { font-family: arial, arial ce, helvetica; background-color: #32CD32; }" << std::endl;
6007 htmlFile <<
"</style>" << std::endl;
6008 htmlFile <<
"<body>" << std::endl;
6010 htmlFile <<
"<h1> Remote Monitoring Tool, LED RUN = " << runnumber <<
". </h1>" << std::endl;
6011 htmlFile <<
"<br>" << std::endl;
6013 htmlFile <<
"<h2> 1. Analysis results for subdetectors </h2>" << std::endl;
6014 htmlFile <<
"<table width=\"400\">" << std::endl;
6015 htmlFile <<
"<tr>" << std::endl;
6024 htmlFile <<
" <td><a "
6025 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6026 "HcalRemoteMonitoring/RMT/LED_"
6027 << runnumber <<
"/HB.html\">HB</a></td>" << std::endl;
6028 htmlFile <<
" <td><a "
6029 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6030 "HcalRemoteMonitoring/RMT/LED_"
6031 << runnumber <<
"/HE.html\">HE</a></td>" << std::endl;
6032 htmlFile <<
" <td><a "
6033 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6034 "HcalRemoteMonitoring/RMT/LED_"
6035 << runnumber <<
"/HO.html\">HO</a></td>" << std::endl;
6036 htmlFile <<
" <td><a "
6037 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6038 "HcalRemoteMonitoring/RMT/LED_"
6039 << runnumber <<
"/HF.html\">HF</a></td>" << std::endl;
6041 htmlFile <<
"</tr>" << std::endl;
6042 htmlFile <<
"</table>" << std::endl;
6043 htmlFile <<
"<br>" << std::endl;
6045 htmlFile <<
"<h2> 2. Amplitude summed over all sub-detector channels vs first 1000 events of this Run </h2>"
6047 htmlFile <<
"<h3> 2.A. Total subdetector Amplitude vs iEvent </h3>" << std::endl;
6048 htmlFile <<
" <img src=\"EVENTDEPENDENCE.png\" />" << std::endl;
6049 htmlFile <<
"<br>" << std::endl;
6050 htmlFile <<
"<br>" << std::endl;
6051 htmlFile <<
"<br>" << std::endl;
6053 htmlFile <<
"<h2> 3. HCAL status over all criteria and subdetectors </h2>" << std::endl;
6054 htmlFile <<
"<h3> 3.A. Channels in detector space </h3>" << std::endl;
6055 htmlFile <<
"<h4> Legend for channel status: green - good, red - bad, yellow - at least 2% gain drift, white - not "
6056 "applicable or out of range </h4>"
6058 htmlFile <<
" <img src=\"MAP.png\" />" << std::endl;
6059 htmlFile <<
"<br>" << std::endl;
6060 htmlFile <<
"<br>" << std::endl;
6062 htmlFile <<
"<h3> 3.B. List of Bad channels </h3>" << std::endl;
6065 htmlFile <<
" <td><a "
6066 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6067 "HcalRemoteMonitoring/RMT/LED_"
6068 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6069 htmlFile <<
"<table>" << std::endl;
6071 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6072 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6073 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6074 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6075 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6076 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6077 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6078 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6079 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6080 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6081 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6082 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6083 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6084 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6085 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6086 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6087 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6088 htmlFile <<
"<td class=\"s5\" align=\"center\">RMT-criteria</td>" << std::endl;
6089 htmlFile <<
"</tr>" << std::endl;
6093 for (
int i = 1; i <= NBad; i++) {
6094 if ((ind % 2) == 1) {
6095 raw_class =
"<td class=\"s2\" align=\"center\">";
6096 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6098 raw_class =
"<td class=\"s3\" align=\"center\">";
6099 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6102 const CellDB ce = db.
find(
"Eta", Eta[2][i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
6103 if (ce.
size() == 0) {
6109 if (ce.
size() >= 1) {
6110 htmlFile <<
"<tr>" << std::endl;
6111 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6112 htmlFile << raw_class << Eta[2][
i] <<
"</td>" << std::endl;
6113 htmlFile << raw_class << Phi[2][
i] <<
"</td>" << std::endl;
6114 htmlFile << raw_class << Depth[2][
i] <<
"</td>" << std::endl;
6115 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6116 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6117 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6118 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6119 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6120 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6121 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6122 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6123 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6124 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6125 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6126 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6127 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6128 htmlFile << raw_class1 << Comment[2][
i] <<
"</td>" << std::endl;
6129 htmlFile <<
"</tr>" << std::endl;
6134 htmlFile <<
"</table>" << std::endl;
6135 htmlFile <<
"<br>" << std::endl;
6137 htmlFile <<
"<h3> 2.C.List of Gain unstable channels </h3>" << std::endl;
6139 htmlFile <<
" <td><a "
6140 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6141 "HcalRemoteMonitoring/RMT/LED_"
6142 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6144 htmlFile <<
"<table>" << std::endl;
6146 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6147 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6148 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6149 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6150 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6151 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6152 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6153 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6154 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6155 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6156 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6157 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6158 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6159 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6160 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6161 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6162 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6163 htmlFile <<
"<td class=\"s5\" align=\"center\">Failed criteria</td>" << std::endl;
6164 htmlFile <<
"</tr>" << std::endl;
6166 for (
int i = 1; i <= NWarn; i++) {
6167 if ((ind % 2) == 1) {
6168 raw_class =
"<td class=\"s2\" align=\"center\">";
6169 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6171 raw_class =
"<td class=\"s3\" align=\"center\">";
6172 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6175 const CellDB ce = db.
find(
"Eta", Eta[1][i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
6176 if (ce.
size() == 0) {
6182 if (ce.
size() >= 1) {
6183 htmlFile <<
"<tr>" << std::endl;
6184 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6185 htmlFile << raw_class << Eta[1][
i] <<
"</td>" << std::endl;
6186 htmlFile << raw_class << Phi[1][
i] <<
"</td>" << std::endl;
6187 htmlFile << raw_class << Depth[1][
i] <<
"</td>" << std::endl;
6188 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6189 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6190 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6191 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6192 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6193 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6194 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6195 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6196 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6197 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6198 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6199 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6200 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6201 htmlFile << raw_class1 << Comment[1][
i] <<
"</td>" << std::endl;
6202 htmlFile <<
"</tr>" << std::endl;
6208 htmlFile <<
"</table>" << std::endl;
6209 htmlFile <<
"<br>" << std::endl;
6211 htmlFile <<
"<h3> 2.D.List of channels with bad Pedestals </h3>" << std::endl;
6213 htmlFile <<
" <td><a "
6214 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6215 "HcalRemoteMonitoring/RMT/LED_"
6216 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6218 htmlFile <<
"<table>" << std::endl;
6220 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6221 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6222 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6223 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6224 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6225 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6226 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6227 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6228 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6229 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6230 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6231 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6232 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6233 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6234 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6235 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6236 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6237 htmlFile <<
"<td class=\"s5\" align=\"center\">Failed criteria</td>" << std::endl;
6238 htmlFile <<
"</tr>" << std::endl;
6240 for (
int i = 1; i <= NPed; i++) {
6241 if ((ind % 2) == 1) {
6242 raw_class =
"<td class=\"s2\" align=\"center\">";
6243 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6245 raw_class =
"<td class=\"s3\" align=\"center\">";
6246 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6249 const CellDB ce = db.
find(
"Eta", Eta[3][i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
6250 if (ce.
size() == 0) {
6256 if (ce.
size() >= 1) {
6257 htmlFile <<
"<tr>" << std::endl;
6258 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6259 htmlFile << raw_class << Eta[3][
i] <<
"</td>" << std::endl;
6260 htmlFile << raw_class << Phi[3][
i] <<
"</td>" << std::endl;
6261 htmlFile << raw_class << Depth[3][
i] <<
"</td>" << std::endl;
6262 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6263 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6264 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6265 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6266 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6267 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6268 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6269 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6270 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6271 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6272 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6273 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6274 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6275 htmlFile << raw_class1 << Comment[3][
i] <<
"</td>" << std::endl;
6276 htmlFile <<
"</tr>" << std::endl;
6282 htmlFile <<
"</table>" << std::endl;
6284 htmlFile <<
"</body> " << std::endl;
6285 htmlFile <<
"</html> " << std::endl;
CellDB find(const std::string par, const T val) const
Abs< T >::type abs(const T &t)
uint16_t const *__restrict__ x