34 gROOT->SetStyle(
"Plain");
35 gStyle->SetOptStat(0);
36 gStyle->SetOptTitle(1);
43 sprintf(fname,
"%s", argv[1]);
44 sprintf(refname,
"%s", argv[2]);
45 sprintf(runtypeC,
"%s", argv[3]);
46 std::cout << fname <<
" " << refname <<
" " << runtypeC << std::endl;
52 string promt = (
string)fname;
55 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
56 runnumber += fname[
i];
57 string refrunnumber =
"";
59 for (
unsigned int i = promt.size() - 11;
i < promt.size() - 5;
i++)
60 refrunnumber += refname[
i];
62 TFile *hfile =
new TFile(fname,
"READ");
64 TDirectory *
dir = (TDirectory *)hfile->FindObjectAny(dirnm.c_str());
65 TFile *hreffile =
new TFile(refname,
"READ");
67 TDirectory *refdir = (TDirectory *)hreffile->FindObjectAny(dirnm.c_str());
79 if (runtype ==
"LED") {
81 double MIN_M_LED[7][5] = {{0., 0., 0., 0., 0.},
83 {0, 100., 70., 40., 40.},
84 {0, 0.7, 0.7, 0.1, 0.1},
85 {0, 0.7, 0.6, 0.40, 0.45},
86 {0, 2.5, 1.0, 1.0, 1.0},
87 {0, 1.5, 1.5, 0.5, 0.5}};
88 double MAX_M_LED[7][5] = {{0., 0., 0., 0., 0.},
90 {0, 3000, 500000, 3000, 150000},
91 {0, 2.5, 2.5, 2.8, 2.6},
92 {0, 0.94, 0.95, 1.04, 1.02},
93 {0, 5.5, 5.2, 4.8, 4.2},
94 {0, 6.5, 6.5, 8.5, 8.5}};
95 double MIN_C_LED[7][5] = {{0., 0., 0., 0., 0.},
97 {0, 1000., 1000., 1000., 100.},
98 {0, 1.3, 1.3, 0.7, 0.3},
99 {0, 0.76, 0.76, 0.85, 0.5},
100 {0, 2.4, 2.4, 1.5, 3.5},
101 {0, 1.5, 1.5, 1.5, 3.5}};
102 double MAX_C_LED[7][5] = {{0., 0., 0., 0., 0.},
103 {0., 0., 0., 0., 0.},
104 {0, 1E20, 1E20, 1E20, 1E20},
105 {0, 1.9, 1.9, 1.65, 1.5},
106 {0, 0.94, 0.94, 0.99, 0.8},
107 {0, 3.7, 3.7, 2.7, 4.5},
108 {0, 2.5, 2.5, 2.5, 4.5}};
109 double porog_LED[5] = {0., 2., 2., 2., 2.};
110 double Pedest_LED[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
111 {0., 0.1, 0.1, 0.1, 0.4}};
112 for (
int i = 0;
i <= 6;
i++)
113 for (
int j = 0;
j <= 4;
j++) {
114 MIN_M[
i][
j] = MIN_M_LED[
i][
j];
115 MAX_M[
i][
j] = MAX_M_LED[
i][
j];
116 MIN_C[
i][
j] = MIN_C_LED[
i][
j];
117 MAX_C[
i][
j] = MAX_C_LED[
i][
j];
119 for (
int i = 0;
i <= 4;
i++) {
120 porog[
i] = porog_LED[
i];
121 Pedest[0][
i] = Pedest_LED[0][
i];
122 Pedest[1][
i] = Pedest_LED[1][
i];
126 if (runtype ==
"LASER") {
128 double MIN_M_LASER[7][5] = {{0., 0., 0., 0., 0.},
129 {0., 0., 0., 0., 0.},
130 {0, 40., 40., 100., 40.},
131 {0, 0.3, 0.9, 0.2, 0.2},
132 {0, 0.5, 0.55, 0.55, 0.60},
133 {0, 5.0, 2.5, 1.1, 5.5},
134 {0, 1.5, 1.5, 1.5, 1.5}};
135 double MAX_M_LASER[7][5] = {{0., 0., 0., 0., 0.},
136 {0., 0., 0., 0., 0.},
137 {0, 3500, 350000, 3500, 150000},
138 {0, 2.5, 3.6, 2.6, 2.1},
139 {0, 1.00, 1.00, 1.04, 1.02},
140 {0, 7.5, 6.5, 4.4, 8.5},
141 {0, 8.5, 8.5, 6.5, 8.5}};
142 double MIN_C_LASER[7][5] = {{0., 0., 0., 0., 0.},
143 {0., 0., 0., 0., 0.},
144 {0, 1000., 1000., 1000., 100.},
145 {0, 1.3, 1.3, 0.7, 0.3},
146 {0, 0.76, 0.76, 0.85, 0.5},
147 {0, 2.4, 2.4, 1.5, 3.5},
148 {0, 1.5, 1.5, 1.5, 3.5}};
149 double MAX_C_LASER[7][5] = {{0., 0., 0., 0., 0.},
150 {0., 0., 0., 0., 0.},
151 {0, 1E20, 1E20, 1E20, 1E20},
152 {0, 1.9, 1.9, 1.65, 1.5},
153 {0, 0.94, 0.94, 1.0, 0.8},
154 {0, 3.7, 3.7, 2.7, 4.5},
155 {0, 2.5, 2.5, 2.5, 4.5}};
156 double porog_LASER[5] = {0., 2., 2., 2., 2.};
158 double Pedest_LASER[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
159 {0., 0.1, 0.1, 0.1, 0.4}};
160 for (
int i = 0;
i <= 6;
i++)
161 for (
int j = 0;
j <= 4;
j++) {
162 MIN_M[
i][
j] = MIN_M_LASER[
i][
j];
163 MAX_M[
i][
j] = MAX_M_LASER[
i][
j];
164 MIN_C[
i][
j] = MIN_C_LASER[
i][
j];
165 MAX_C[
i][
j] = MAX_C_LASER[
i][
j];
167 for (
int i = 0;
i <= 4;
i++) {
168 porog[
i] = porog_LASER[
i];
169 Pedest[0][
i] = Pedest_LASER[0][
i];
170 Pedest[1][
i] = Pedest_LASER[1][
i];
173 if (runtype ==
"PEDESTAL") {
175 double MIN_M_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
176 {0., 0., 0., 0., 0.},
177 {0, 10., 10., 200., 5.},
178 {0, 2.7, 2.7, 2.7, 0.2},
179 {0, 0.31, 0.31, 0.05, 0.15},
180 {0, 4.5, 4.5, 4.5, 2.0},
181 {0, 0.5, 0.5, 0.5, 0.5}};
182 double MAX_M_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
183 {0., 0., 0., 0., 0.},
184 {0, 2500., 250000., 2500., 150000.},
185 {0, 3.0, 3.0, 5.0, 3.0},
186 {0, 0.95, 0.95, 1.00, 0.98},
187 {0, 4.6, 4.6, 4.6, 7.0},
188 {0, 9.5, 9.5, 8.5, 8.5}};
189 double MIN_C_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
190 {0., 0., 0., 0., 0.},
191 {0, 1000., 1000., 1000., 100.},
192 {0, 1.3, 1.3, 0.7, 0.3},
193 {0, 0.76, 0.76, 0.85, 0.5},
194 {0, 2.4, 2.4, 1.5, 3.5},
195 {0, 1.5, 1.5, 1.5, 3.5}};
196 double MAX_C_PEDESTAL[7][5] = {{0., 0., 0., 0., 0.},
197 {0., 0., 0., 0., 0.},
198 {0, 1E20, 1E20, 1E20, 1E20},
199 {0, 1.9, 1.9, 1.65, 1.5},
200 {0, 0.94, 0.94, 1.0, 0.8},
201 {0, 3.7, 3.7, 2.7, 4.5},
202 {0, 2.5, 2.5, 2.5, 4.5}};
203 double porog_PEDESTAL[5] = {0., 2., 2., 2., 2.};
205 double Pedest_PEDESTAL[2][5] = {{0., 0.1, 0.6, 0.1, 0.8},
206 {0., 0.1, 0.1, 0.1, 0.4}};
207 for (
int i = 0;
i <= 6;
i++)
208 for (
int j = 0;
j <= 4;
j++) {
209 MIN_M[
i][
j] = MIN_M_PEDESTAL[
i][
j];
210 MAX_M[
i][
j] = MAX_M_PEDESTAL[
i][
j];
211 MIN_C[
i][
j] = MIN_C_PEDESTAL[
i][
j];
212 MAX_C[
i][
j] = MAX_C_PEDESTAL[
i][
j];
214 for (
int i = 0;
i <= 4;
i++) {
215 porog[
i] = porog_PEDESTAL[
i];
216 Pedest[0][
i] = Pedest_PEDESTAL[0][
i];
217 Pedest[1][
i] = Pedest_PEDESTAL[1][
i];
224 cout << MIN_M[2][1] << endl;
230 TCanvas *cHB =
new TCanvas(
"cHB",
"cHB", 1000, 1000);
232 TCanvas *cHE =
new TCanvas(
"cHE",
"cHE", 1500, 1500);
234 TCanvas *cONE =
new TCanvas(
"cONE",
"cONE", 1500, 500);
235 TCanvas *cPED =
new TCanvas(
"cPED",
"cPED", 1000, 500);
237 TCanvas *cHF =
new TCanvas(
"cHF",
"cHF", 1000, 1000);
241 TCanvas *c1x0 =
new TCanvas(
"c1x0",
"c1x0", 300, 10, 800, 700);
243 TCanvas *c1x1 =
new TCanvas(
"c1x1",
"c1x1", 100, 10, 600, 700);
245 TCanvas *c3x5 =
new TCanvas(
"c3x5",
"c3x5", 1000, 1500);
248 char *
str = (
char *)alloca(10000);
266 int k_min[5] = {0, 1, 1, 4, 1};
269 int k_max[5] = {0, 4, 7, 4, 4};
271 TH2F *Map_Ampl[33][5][ALLDEPTH];
272 TH2F *Map_SUB[5][ALLDEPTH];
273 TH1F *HistAmplDepth[22][5][ALLDEPTH];
274 TH1F *HistAmpl[22][5];
276 TH1F *HistPed[3][5][4];
278 TH1F *hist_GoodTSshape[5];
279 TH1F *hist_GoodTSshape0[5];
280 TH1F *hist_BadTSshape[5];
281 TH1F *hist_BadTSshape0[5];
282 TH1F *hist_ADC_All[5];
283 TH1F *hist_ADC_DS[5][ALLDEPTH];
284 TH1F *hist_SumADC[5][ALLDEPTH];
285 TH1F *hist_SumADC0[5][ALLDEPTH];
286 TH1F *hist_SumADC1[5][ALLDEPTH];
288 Map_SUB[1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1_HB");
289 Map_SUB[1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2_HB");
290 Map_SUB[2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1_HE");
291 Map_SUB[2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2_HE");
292 Map_SUB[2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3_HE");
293 Map_SUB[3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4_HO");
294 Map_SUB[4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1_HF");
295 Map_SUB[4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2_HF");
297 Map_SUB[1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3_HB");
298 Map_SUB[1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4_HB");
299 Map_SUB[2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4_HE");
300 Map_SUB[2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5_HE");
301 Map_SUB[2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6_HE");
302 Map_SUB[2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7_HE");
303 Map_SUB[4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3_HF");
304 Map_SUB[4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4_HF");
310 for (
int sub = 1; sub <= 4; sub++) {
325 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
338 sprintf(str,
"HB, Depth%d \b",
k);
340 sprintf(str,
"HE, Depth%d \b",
k);
342 sprintf(str,
"HO, Depth%d \b",
k);
344 sprintf(str,
"HF, Depth%d \b",
k);
345 Map_SUB[sub][
k]->SetTitle(str);
346 Map_SUB[sub][
k]->SetXTitle(
"#eta \b");
347 Map_SUB[sub][
k]->SetYTitle(
"#phi \b");
348 Map_SUB[sub][
k]->SetZTitle(
"Number of events \b");
350 Map_SUB[sub][
k]->SetTitleOffset(0.8,
"Z");
351 Map_SUB[sub][
k]->Draw(
"COLZ");
352 Map_SUB[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
373 cHB->Print(
"MapRateEntryHB.png");
377 cHE->Print(
"MapRateEntryHE.png");
381 cONE->Print(
"MapRateEntryHO.png");
385 cHF->Print(
"MapRateEntryHF.png");
394 Map_Ampl[1][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Error_HB");
395 Map_Ampl[1][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Error_HB");
396 Map_Ampl[1][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Error_HE");
397 Map_Ampl[1][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Error_HE");
398 Map_Ampl[1][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Error_HE");
399 Map_Ampl[1][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Error_HO");
400 Map_Ampl[1][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Error_HF");
401 Map_Ampl[1][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Error_HF");
403 Map_Ampl[1][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Error_HB");
404 Map_Ampl[1][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Error_HB");
405 Map_Ampl[1][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Error_HE");
406 Map_Ampl[1][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5Error_HE");
407 Map_Ampl[1][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6Error_HE");
408 Map_Ampl[1][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7Error_HE");
409 Map_Ampl[1][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Error_HF");
410 Map_Ampl[1][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Error_HF");
412 for (
int sub = 1; sub <= 4; sub++) {
427 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
436 Map_Ampl[1][sub][
k]->Divide(Map_Ampl[1][sub][
k], Map_SUB[sub][k], 1, 1,
"B");
441 sprintf(str,
"HB, Depth%d \b", k);
443 sprintf(str,
"HE, Depth%d \b", k);
445 sprintf(str,
"HO, Depth%d \b", k);
447 sprintf(str,
"HF, Depth%d \b", k);
448 Map_Ampl[1][sub][
k]->SetTitle(str);
449 Map_Ampl[1][sub][
k]->SetXTitle(
"#eta \b");
450 Map_Ampl[1][sub][
k]->SetYTitle(
"#phi \b");
451 Map_Ampl[1][sub][
k]->SetZTitle(
"Rate \b");
453 Map_Ampl[1][sub][
k]->SetTitleOffset(0.8,
"Z");
454 Map_Ampl[1][sub][
k]->Draw(
"COLZ");
455 Map_Ampl[1][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
456 Map_Ampl[1][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
476 cHB->Print(
"MapRateCapIDHB.png");
480 cHE->Print(
"MapRateCapIDHE.png");
484 cONE->Print(
"MapRateCapIDHO.png");
488 cHF->Print(
"MapRateCapIDHF.png");
497 Map_Ampl[2][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1ADCAmpl225_HB");
498 Map_Ampl[2][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2ADCAmpl225_HB");
499 Map_Ampl[2][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1ADCAmpl225_HE");
500 Map_Ampl[2][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2ADCAmpl225_HE");
501 Map_Ampl[2][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3ADCAmpl225_HE");
502 Map_Ampl[2][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4ADCAmpl225_HO");
503 Map_Ampl[2][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1ADCAmpl225_HF");
504 Map_Ampl[2][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2ADCAmpl225_HF");
506 Map_Ampl[2][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3ADCAmpl225_HB");
507 Map_Ampl[2][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4ADCAmpl225_HB");
508 Map_Ampl[2][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4ADCAmpl225_HE");
509 Map_Ampl[2][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5ADCAmpl225_HE");
510 Map_Ampl[2][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6ADCAmpl225_HE");
511 Map_Ampl[2][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7ADCAmpl225_HE");
512 Map_Ampl[2][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3ADCAmpl225_HF");
513 Map_Ampl[2][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4ADCAmpl225_HF");
515 HistAmpl[2][1] = (TH1F *)dir->FindObjectAny(
"h_ADCAmpl_HB");
516 HistAmpl[2][2] = (TH1F *)dir->FindObjectAny(
"h_ADCAmpl_HE");
517 HistAmpl[2][3] = (TH1F *)dir->FindObjectAny(
"h_ADCAmpl_HO");
518 HistAmpl[2][4] = (TH1F *)dir->FindObjectAny(
"h_ADCAmpl_HF");
524 Map_Ampl[3][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Amplitude225_HB");
525 Map_Ampl[3][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Amplitude225_HB");
526 Map_Ampl[3][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Amplitude225_HE");
527 Map_Ampl[3][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Amplitude225_HE");
528 Map_Ampl[3][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Amplitude225_HE");
529 Map_Ampl[3][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Amplitude225_HO");
530 Map_Ampl[3][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Amplitude225_HF");
531 Map_Ampl[3][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Amplitude225_HF");
533 Map_Ampl[3][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Amplitude225_HB");
534 Map_Ampl[3][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Amplitude225_HB");
535 Map_Ampl[3][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Amplitude225_HE");
536 Map_Ampl[3][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5Amplitude225_HE");
537 Map_Ampl[3][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6Amplitude225_HE");
538 Map_Ampl[3][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7Amplitude225_HE");
539 Map_Ampl[3][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Amplitude225_HF");
540 Map_Ampl[3][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Amplitude225_HF");
542 HistAmpl[3][1] = (TH1F *)dir->FindObjectAny(
"h_Amplitude_HB");
543 HistAmpl[3][2] = (TH1F *)dir->FindObjectAny(
"h_Amplitude_HE");
544 HistAmpl[3][3] = (TH1F *)dir->FindObjectAny(
"h_Amplitude_HO");
545 HistAmpl[3][4] = (TH1F *)dir->FindObjectAny(
"h_Amplitude_HF");
551 Map_Ampl[4][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Ampl047_HB");
552 Map_Ampl[4][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Ampl047_HB");
553 Map_Ampl[4][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Ampl047_HE");
554 Map_Ampl[4][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Ampl047_HE");
555 Map_Ampl[4][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Ampl047_HE");
556 Map_Ampl[4][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Ampl047_HO");
557 Map_Ampl[4][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1Ampl047_HF");
558 Map_Ampl[4][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2Ampl047_HF");
560 Map_Ampl[4][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Ampl047_HB");
561 Map_Ampl[4][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Ampl047_HB");
562 Map_Ampl[4][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Ampl047_HE");
563 Map_Ampl[4][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5Ampl047_HE");
564 Map_Ampl[4][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6Ampl047_HE");
565 Map_Ampl[4][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7Ampl047_HE");
566 Map_Ampl[4][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3Ampl047_HF");
567 Map_Ampl[4][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4Ampl047_HF");
569 HistAmpl[4][1] = (TH1F *)dir->FindObjectAny(
"h_Ampl_HB");
570 HistAmpl[4][2] = (TH1F *)dir->FindObjectAny(
"h_Ampl_HE");
571 HistAmpl[4][3] = (TH1F *)dir->FindObjectAny(
"h_Ampl_HO");
572 HistAmpl[4][4] = (TH1F *)dir->FindObjectAny(
"h_Ampl_HF");
578 Map_Ampl[5][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmeanA225_HB");
579 Map_Ampl[5][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmeanA225_HB");
580 Map_Ampl[5][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmeanA225_HE");
581 Map_Ampl[5][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmeanA225_HE");
582 Map_Ampl[5][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmeanA225_HE");
583 Map_Ampl[5][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmeanA225_HO");
584 Map_Ampl[5][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmeanA225_HF");
585 Map_Ampl[5][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmeanA225_HF");
587 Map_Ampl[5][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmeanA225_HB");
588 Map_Ampl[5][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmeanA225_HB");
589 Map_Ampl[5][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmeanA225_HE");
590 Map_Ampl[5][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5TSmeanA225_HE");
591 Map_Ampl[5][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6TSmeanA225_HE");
592 Map_Ampl[5][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7TSmeanA225_HE");
593 Map_Ampl[5][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmeanA225_HF");
594 Map_Ampl[5][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmeanA225_HF");
596 HistAmpl[5][1] = (TH1F *)dir->FindObjectAny(
"h_TSmeanA_HB");
597 HistAmpl[5][2] = (TH1F *)dir->FindObjectAny(
"h_TSmeanA_HE");
598 HistAmpl[5][3] = (TH1F *)dir->FindObjectAny(
"h_TSmeanA_HO");
599 HistAmpl[5][4] = (TH1F *)dir->FindObjectAny(
"h_TSmeanA_HF");
605 Map_Ampl[6][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmaxA225_HB");
606 Map_Ampl[6][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmaxA225_HB");
607 Map_Ampl[6][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmaxA225_HE");
608 Map_Ampl[6][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmaxA225_HE");
609 Map_Ampl[6][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmaxA225_HE");
610 Map_Ampl[6][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmaxA225_HO");
611 Map_Ampl[6][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1TSmaxA225_HF");
612 Map_Ampl[6][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2TSmaxA225_HF");
614 Map_Ampl[6][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmaxA225_HB");
615 Map_Ampl[6][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmaxA225_HB");
616 Map_Ampl[6][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmaxA225_HE");
617 Map_Ampl[6][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5TSmaxA225_HE");
618 Map_Ampl[6][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6TSmaxA225_HE");
619 Map_Ampl[6][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7TSmaxA225_HE");
620 Map_Ampl[6][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3TSmaxA225_HF");
621 Map_Ampl[6][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4TSmaxA225_HF");
623 HistAmpl[6][1] = (TH1F *)dir->FindObjectAny(
"h_TSmaxA_HB");
624 HistAmpl[6][2] = (TH1F *)dir->FindObjectAny(
"h_TSmaxA_HE");
625 HistAmpl[6][3] = (TH1F *)dir->FindObjectAny(
"h_TSmaxA_HO");
626 HistAmpl[6][4] = (TH1F *)dir->FindObjectAny(
"h_TSmaxA_HF");
629 for (
int sub = 1; sub <= 4; sub++) {
644 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
653 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][
k], Map_SUB[sub][k], 1, 1,
"B");
658 sprintf(str,
"HB, Depth%d \b", k);
660 sprintf(str,
"HE, Depth%d \b", k);
662 sprintf(str,
"HO, Depth%d \b", k);
664 sprintf(str,
"HF, Depth%d \b", k);
665 Map_Ampl[
test][sub][
k]->SetTitle(str);
666 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
667 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
668 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
670 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
671 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
672 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
673 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
693 cHB->Print(
"MapRateAmplHB.png");
697 cHE->Print(
"MapRateAmplHE.png");
701 cONE->Print(
"MapRateAmplHO.png");
705 cHF->Print(
"MapRateAmplHF.png");
711 cHB->Print(
"MapRateRMSHB.png");
715 cHE->Print(
"MapRateRMSHE.png");
719 cONE->Print(
"MapRateRMSHO.png");
723 cHF->Print(
"MapRateRMSHF.png");
729 cHB->Print(
"MapRate43TStoAllTSHB.png");
733 cHE->Print(
"MapRate43TStoAllTSHE.png");
737 cONE->Print(
"MapRate43TStoAllTSHO.png");
741 cHF->Print(
"MapRate43TStoAllTSHF.png");
747 cHB->Print(
"MapRateMeanPosHB.png");
751 cHE->Print(
"MapRateMeanPosHE.png");
755 cONE->Print(
"MapRateMeanPosHO.png");
759 cHF->Print(
"MapRateMeanPosHF.png");
765 cHB->Print(
"MapRateMaxPosHB.png");
769 cHE->Print(
"MapRateMaxPosHE.png");
773 cONE->Print(
"MapRateMaxPosHO.png");
777 cHF->Print(
"MapRateMaxPosHF.png");
784 if (
test == 2 && sub == 2) {
786 TH1F *kjkjkhj2 = (TH1F *)dir->FindObjectAny(
"h_AmplitudeHEtest1");
788 kjkjkhj2->SetTitle(
"HE, All Depth: shunt1");
790 TH1F *kjkjkhj3 = (TH1F *)dir->FindObjectAny(
"h_AmplitudeHEtest6");
792 kjkjkhj3->SetTitle(
"HE, All Depth: shunt6");
794 if (
test == 2 && sub == 1) {
796 TH1F *kjkjkhb2 = (TH1F *)dir->FindObjectAny(
"h_AmplitudeHBtest1");
798 kjkjkhb2->SetTitle(
"HB, All Depth: shunt1");
800 TH1F *kjkjkhb3 = (TH1F *)dir->FindObjectAny(
"h_AmplitudeHBtest6");
802 kjkjkhb3->SetTitle(
"HB, All Depth: shunt6");
809 HistAmpl[
test][sub]->SetTitle(
"HB, All Depth: shunt6");
811 HistAmpl[
test][sub]->SetTitle(
"HE, All Depth: shunt6");
813 HistAmpl[
test][sub]->SetTitle(
"HO, All Depth");
815 HistAmpl[
test][sub]->SetTitle(
"HF, All Depth");
817 HistAmpl[
test][sub]->SetXTitle(
"ADC Amlitude in each event & cell \b");
819 HistAmpl[
test][sub]->SetXTitle(
"RMS in each event & cell \b");
821 HistAmpl[
test][sub]->SetXTitle(
"Ratio in each event & cell \b");
823 HistAmpl[
test][sub]->SetXTitle(
"Mean TS position in each event & cell \b");
825 HistAmpl[
test][sub]->SetXTitle(
"Max TS position in each event & cell \b");
826 HistAmpl[
test][sub]->SetYTitle(
"Number of cell-events \b");
827 HistAmpl[
test][sub]->SetLineColor(4);
828 HistAmpl[
test][sub]->SetLineWidth(2);
829 HistAmpl[
test][sub]->SetTitleOffset(1.4,
"Y");
830 HistAmpl[
test][sub]->Draw(
"");
837 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 5.);
839 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 1.);
841 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
843 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
846 double min_x[] = {MIN_M[
test][sub], MIN_M[
test][sub]};
847 double min_y[] = {0., 100000000.};
848 TGraph *
MIN =
new TGraph(2, min_x, min_y);
849 MIN->SetLineStyle(2);
850 MIN->SetLineColor(2);
851 MIN->SetLineWidth(2 + 100 * 100);
852 MIN->SetFillStyle(3005);
853 MIN->SetFillColor(2);
855 double max_x[] = {MAX_M[
test][sub], MAX_M[
test][sub]};
856 double max_y[] = {0., 100000000.};
857 TGraph *
MAX =
new TGraph(2, max_x, max_y);
858 MAX->SetLineStyle(2);
859 MAX->SetLineColor(2);
860 MAX->SetLineWidth(-2 - 100 * 100);
861 MAX->SetFillStyle(3004);
862 MAX->SetFillColor(2);
866 cONE->Print(
"HistAmplHB.png");
870 cONE->Print(
"HistAmplHE.png");
874 cONE->Print(
"HistAmplHO.png");
878 cONE->Print(
"HistAmplHF.png");
884 cONE->Print(
"HistRMSHB.png");
888 cONE->Print(
"HistRMSHE.png");
892 cONE->Print(
"HistRMSHO.png");
896 cONE->Print(
"HistRMSHF.png");
902 cONE->Print(
"Hist43TStoAllTSHB.png");
906 cONE->Print(
"Hist43TStoAllTSHE.png");
910 cONE->Print(
"Hist43TStoAllTSHO.png");
914 cONE->Print(
"Hist43TStoAllTSHF.png");
920 cONE->Print(
"HistMeanPosHB.png");
924 cONE->Print(
"HistMeanPosHE.png");
928 cONE->Print(
"HistMeanPosHO.png");
932 cONE->Print(
"HistMeanPosHF.png");
938 cONE->Print(
"HistMaxPosHB.png");
942 cONE->Print(
"HistMaxPosHE.png");
946 cONE->Print(
"HistMaxPosHO.png");
950 cONE->Print(
"HistMaxPosHF.png");
957 TH2F *Map_Calib[5][5];
959 Map_Calib[1][1] = (TH2F *)dir->FindObjectAny(
"h_map_HB");
960 Map_Calib[1][2] = (TH2F *)dir->FindObjectAny(
"h_map_HB");
961 Map_Calib[2][1] = (TH2F *)dir->FindObjectAny(
"h_map_HE");
962 Map_Calib[2][2] = (TH2F *)dir->FindObjectAny(
"h_map_HE");
963 Map_Calib[2][3] = (TH2F *)dir->FindObjectAny(
"h_map_HE");
964 Map_Calib[3][4] = (TH2F *)dir->FindObjectAny(
"h_map_HO");
965 Map_Calib[4][1] = (TH2F *)dir->FindObjectAny(
"h_map_HF");
966 Map_Calib[4][2] = (TH2F *)dir->FindObjectAny(
"h_map_HF");
972 for (
int sub = 1; sub <= 4; sub++) {
998 Map_Calib[sub][
k]->SetTitle(str);
999 Map_Calib[sub][
k]->SetXTitle(
"#eta \b");
1000 Map_Calib[sub][
k]->SetYTitle(
"#phi \b");
1001 Map_Calib[sub][
k]->SetZTitle(
"Number of events\b");
1003 Map_Calib[sub][
k]->SetTitleOffset(0.8,
"Z");
1004 Map_Calib[sub][
k]->Draw(
"COLZ");
1005 Map_Calib[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1015 cONE->Print(
"MapRateCalibEntryHB.png");
1019 cONE->Print(
"MapRateCalibEntryHE.png");
1023 cONE->Print(
"MapRateCalibEntryHO.png");
1027 cONE->Print(
"MapRateCalibEntryHF.png");
1036 Map_Ampl[11][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HB");
1037 Map_Ampl[11][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HB");
1038 Map_Ampl[11][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HE");
1039 Map_Ampl[11][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HE");
1040 Map_Ampl[11][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HE");
1041 Map_Ampl[11][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HO");
1042 Map_Ampl[11][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HF");
1043 Map_Ampl[11][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapCapCalib047_HF");
1045 for (
int sub = 1; sub <= 4; sub++) {
1060 Map_Ampl[11][sub][
k]->Divide(Map_Ampl[11][sub][k], Map_Calib[sub][k], 1, 1,
"B");
1072 Map_Ampl[11][sub][
k]->SetTitle(str);
1073 Map_Ampl[11][sub][
k]->SetXTitle(
"#eta \b");
1074 Map_Ampl[11][sub][
k]->SetYTitle(
"#phi \b");
1075 Map_Ampl[11][sub][
k]->SetZTitle(
"Rate \b");
1076 Map_Ampl[11][sub][
k]->SetTitleOffset(0.75,
"Z");
1077 Map_Ampl[11][sub][
k]->Draw(
"COLZ");
1078 Map_Ampl[11][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1079 Map_Ampl[11][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
1088 cONE->Print(
"MapRateCapCalibHB.png");
1092 cONE->Print(
"MapRateCapCalibHE.png");
1096 cONE->Print(
"MapRateCapCalibHO.png");
1100 cONE->Print(
"MapRateCapCalibHF.png");
1109 Map_Ampl[12][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HB");
1110 Map_Ampl[12][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HB");
1111 Map_Ampl[12][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HE");
1112 Map_Ampl[12][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HE");
1113 Map_Ampl[12][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HE");
1114 Map_Ampl[12][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HO");
1115 Map_Ampl[12][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HF");
1116 Map_Ampl[12][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapADCCalib047_HF");
1118 HistAmpl[12][1] = (TH1F *)dir->FindObjectAny(
"h_ADCCalib_HB");
1119 HistAmpl[12][2] = (TH1F *)dir->FindObjectAny(
"h_ADCCalib_HE");
1120 HistAmpl[12][3] = (TH1F *)dir->FindObjectAny(
"h_ADCCalib_HO");
1121 HistAmpl[12][4] = (TH1F *)dir->FindObjectAny(
"h_ADCCalib_HF");
1127 Map_Ampl[13][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HB");
1128 Map_Ampl[13][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HB");
1129 Map_Ampl[13][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HE");
1130 Map_Ampl[13][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HE");
1131 Map_Ampl[13][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HE");
1132 Map_Ampl[13][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HO");
1133 Map_Ampl[13][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HF");
1134 Map_Ampl[13][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapWidthCalib047_HF");
1136 HistAmpl[13][1] = (TH1F *)dir->FindObjectAny(
"h_WidthCalib_HB");
1137 HistAmpl[13][2] = (TH1F *)dir->FindObjectAny(
"h_WidthCalib_HE");
1138 HistAmpl[13][3] = (TH1F *)dir->FindObjectAny(
"h_WidthCalib_HO");
1139 HistAmpl[13][4] = (TH1F *)dir->FindObjectAny(
"h_WidthCalib_HF");
1145 Map_Ampl[14][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HB");
1146 Map_Ampl[14][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HB");
1147 Map_Ampl[14][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HE");
1148 Map_Ampl[14][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HE");
1149 Map_Ampl[14][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HE");
1150 Map_Ampl[14][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HO");
1151 Map_Ampl[14][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HF");
1152 Map_Ampl[14][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapRatioCalib047_HF");
1154 HistAmpl[14][1] = (TH1F *)dir->FindObjectAny(
"h_RatioCalib_HB");
1155 HistAmpl[14][2] = (TH1F *)dir->FindObjectAny(
"h_RatioCalib_HE");
1156 HistAmpl[14][3] = (TH1F *)dir->FindObjectAny(
"h_RatioCalib_HO");
1157 HistAmpl[14][4] = (TH1F *)dir->FindObjectAny(
"h_RatioCalib_HF");
1163 Map_Ampl[15][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HB");
1164 Map_Ampl[15][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HB");
1165 Map_Ampl[15][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HE");
1166 Map_Ampl[15][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HE");
1167 Map_Ampl[15][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HE");
1168 Map_Ampl[15][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HO");
1169 Map_Ampl[15][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HF");
1170 Map_Ampl[15][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmeanCalib047_HF");
1172 HistAmpl[15][1] = (TH1F *)dir->FindObjectAny(
"h_TSmeanCalib_HB");
1173 HistAmpl[15][2] = (TH1F *)dir->FindObjectAny(
"h_TSmeanCalib_HE");
1174 HistAmpl[15][3] = (TH1F *)dir->FindObjectAny(
"h_TSmeanCalib_HO");
1175 HistAmpl[15][4] = (TH1F *)dir->FindObjectAny(
"h_TSmeanCalib_HF");
1181 Map_Ampl[16][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HB");
1182 Map_Ampl[16][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HB");
1183 Map_Ampl[16][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HE");
1184 Map_Ampl[16][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HE");
1185 Map_Ampl[16][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HE");
1186 Map_Ampl[16][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HO");
1187 Map_Ampl[16][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HF");
1188 Map_Ampl[16][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapTSmaxCalib047_HF");
1190 HistAmpl[16][1] = (TH1F *)dir->FindObjectAny(
"h_TSmaxCalib_HB");
1191 HistAmpl[16][2] = (TH1F *)dir->FindObjectAny(
"h_TSmaxCalib_HE");
1192 HistAmpl[16][3] = (TH1F *)dir->FindObjectAny(
"h_TSmaxCalib_HO");
1193 HistAmpl[16][4] = (TH1F *)dir->FindObjectAny(
"h_TSmaxCalib_HF");
1196 for (
int sub = 1; sub <= 4; sub++) {
1225 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][k], Map_Calib[sub][k], 1, 1,
"B");
1237 Map_Ampl[
test][sub][
k]->SetTitle(str);
1238 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
1239 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
1240 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
1241 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
1242 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
1243 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
1244 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.00001, 1.);
1253 cONE->Print(
"MapRateAmplCalibHB.png");
1257 cONE->Print(
"MapRateAmplCalibHE.png");
1261 cONE->Print(
"MapRateAmplCalibHO.png");
1265 cONE->Print(
"MapRateAmplCalibHF.png");
1271 cONE->Print(
"MapRateRMSCalibHB.png");
1275 cONE->Print(
"MapRateRMSCalibHE.png");
1279 cONE->Print(
"MapRateRMSCalibHO.png");
1283 cONE->Print(
"MapRateRMSCalibHF.png");
1289 cONE->Print(
"MapRate43TStoAllTSCalibHB.png");
1293 cONE->Print(
"MapRate43TStoAllTSCalibHE.png");
1297 cONE->Print(
"MapRate43TStoAllTSCalibHO.png");
1301 cONE->Print(
"MapRate43TStoAllTSCalibHF.png");
1307 cONE->Print(
"MapRateMeanPosCalibHB.png");
1311 cONE->Print(
"MapRateMeanPosCalibHE.png");
1315 cONE->Print(
"MapRateMeanPosCalibHO.png");
1319 cONE->Print(
"MapRateMeanPosCalibHF.png");
1325 cONE->Print(
"MapRateMaxPosCalibHB.png");
1329 cONE->Print(
"MapRateMaxPosCalibHE.png");
1333 cONE->Print(
"MapRateMaxPosCalibHO.png");
1337 cONE->Print(
"MapRateMaxPosCalibHF.png");
1348 HistAmpl[
test][sub]->SetTitle(
"HB, All Depth");
1350 HistAmpl[
test][sub]->SetTitle(
"HE, All Depth");
1352 HistAmpl[
test][sub]->SetTitle(
"HO, All Depth");
1354 HistAmpl[
test][sub]->SetTitle(
"HF, All Depth");
1356 HistAmpl[
test][sub]->SetXTitle(
"ADC Amlitude in each event & cell \b");
1358 HistAmpl[
test][sub]->SetXTitle(
"Amplitude RMS in each event & cell \b");
1360 HistAmpl[
test][sub]->SetXTitle(
"Ratio in each event & cell \b");
1362 HistAmpl[
test][sub]->SetXTitle(
"Mean TS position in each event & cell \b");
1364 HistAmpl[
test][sub]->SetXTitle(
"Max TS position in each event & cell \b");
1365 HistAmpl[
test][sub]->SetYTitle(
"Number of cell-events \b");
1366 HistAmpl[
test][sub]->SetLineColor(4);
1367 HistAmpl[
test][sub]->SetLineWidth(2);
1368 HistAmpl[
test][sub]->SetTitleOffset(1.4,
"Y");
1369 HistAmpl[
test][sub]->Draw(
"");
1373 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(1., 10000.);
1376 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 5.);
1378 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 1.);
1380 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
1382 HistAmpl[
test][sub]->GetXaxis()->SetRangeUser(0., 9.);
1385 double min_x[] = {MIN_C[
test - 10][sub], MIN_C[
test - 10][sub]};
1386 double min_y[] = {0., 100000000.};
1387 TGraph *
MIN =
new TGraph(2, min_x, min_y);
1388 MIN->SetLineStyle(2);
1389 MIN->SetLineColor(2);
1390 MIN->SetLineWidth(2 + 100 * 100);
1391 MIN->SetFillStyle(3005);
1392 MIN->SetFillColor(2);
1394 double max_x[] = {MAX_C[
test - 10][sub], MAX_C[
test - 10][sub]};
1395 double max_y[] = {0., 100000000.};
1396 TGraph *
MAX =
new TGraph(2, max_x, max_y);
1397 MAX->SetLineStyle(2);
1398 MAX->SetLineColor(2);
1399 MAX->SetLineWidth(-2 - 100 * 100);
1400 MAX->SetFillStyle(3004);
1401 MAX->SetFillColor(2);
1405 cONE->Print(
"HistAmplCalibHB.png");
1409 cONE->Print(
"HistAmplCalibHE.png");
1413 cONE->Print(
"HistAmplCalibHO.png");
1417 cONE->Print(
"HistAmplCalibHF.png");
1423 cONE->Print(
"HistRMSCalibHB.png");
1427 cONE->Print(
"HistRMSCalibHE.png");
1431 cONE->Print(
"HistRMSCalibHO.png");
1435 cONE->Print(
"HistRMSCalibHF.png");
1441 cONE->Print(
"Hist43TStoAllTSCalibHB.png");
1445 cONE->Print(
"Hist43TStoAllTSCalibHE.png");
1449 cONE->Print(
"Hist43TStoAllTSCalibHO.png");
1453 cONE->Print(
"Hist43TStoAllTSCalibHF.png");
1459 cONE->Print(
"HistMeanPosCalibHB.png");
1463 cONE->Print(
"HistMeanPosCalibHE.png");
1467 cONE->Print(
"HistMeanPosCalibHO.png");
1471 cONE->Print(
"HistMeanPosCalibHF.png");
1477 cONE->Print(
"HistMaxPosCalibHB.png");
1481 cONE->Print(
"HistMaxPosCalibHE.png");
1485 cONE->Print(
"HistMaxPosCalibHO.png");
1489 cONE->Print(
"HistMaxPosCalibHF.png");
1500 Map_Ampl[21][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1AmplE34_HB");
1501 Map_Ampl[21][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2AmplE34_HB");
1502 Map_Ampl[21][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3AmplE34_HB");
1503 Map_Ampl[21][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4AmplE34_HB");
1504 Map_Ampl[21][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1AmplE34_HE");
1505 Map_Ampl[21][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2AmplE34_HE");
1506 Map_Ampl[21][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3AmplE34_HE");
1507 Map_Ampl[21][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4AmplE34_HE");
1508 Map_Ampl[21][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5AmplE34_HE");
1509 Map_Ampl[21][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6AmplE34_HE");
1510 Map_Ampl[21][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7AmplE34_HE");
1511 Map_Ampl[21][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4AmplE34_HO");
1512 Map_Ampl[21][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1AmplE34_HF");
1513 Map_Ampl[21][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2AmplE34_HF");
1514 Map_Ampl[21][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3AmplE34_HF");
1515 Map_Ampl[21][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4AmplE34_HF");
1517 TH2F *Map_RefAmpl[5][ALLDEPTH];
1518 TH2F *Map_RefSUB[5][ALLDEPTH];
1520 Map_RefAmpl[1][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1AmplE34_HB");
1521 Map_RefAmpl[1][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2AmplE34_HB");
1522 Map_RefAmpl[1][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3AmplE34_HB");
1523 Map_RefAmpl[1][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4AmplE34_HB");
1524 Map_RefAmpl[2][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1AmplE34_HE");
1525 Map_RefAmpl[2][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2AmplE34_HE");
1526 Map_RefAmpl[2][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3AmplE34_HE");
1527 Map_RefAmpl[2][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4AmplE34_HE");
1528 Map_RefAmpl[2][5] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth5AmplE34_HE");
1529 Map_RefAmpl[2][6] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth6AmplE34_HE");
1530 Map_RefAmpl[2][7] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth7AmplE34_HE");
1531 Map_RefAmpl[3][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4AmplE34_HO");
1532 Map_RefAmpl[4][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1AmplE34_HF");
1533 Map_RefAmpl[4][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2AmplE34_HF");
1534 Map_RefAmpl[4][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3AmplE34_HF");
1535 Map_RefAmpl[4][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4AmplE34_HF");
1537 Map_RefSUB[1][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1_HB");
1538 Map_RefSUB[1][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2_HB");
1539 Map_RefSUB[1][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3_HB");
1540 Map_RefSUB[1][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4_HB");
1541 Map_RefSUB[2][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1_HE");
1542 Map_RefSUB[2][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2_HE");
1543 Map_RefSUB[2][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3_HE");
1544 Map_RefSUB[2][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4_HE");
1545 Map_RefSUB[2][5] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth5_HE");
1546 Map_RefSUB[2][6] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth6_HE");
1547 Map_RefSUB[2][7] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth7_HE");
1548 Map_RefSUB[3][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4_HO");
1549 Map_RefSUB[4][1] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth1_HF");
1550 Map_RefSUB[4][2] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth2_HF");
1551 Map_RefSUB[4][3] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth3_HF");
1552 Map_RefSUB[4][4] = (TH2F *)refdir->FindObjectAny(
"h_mapDepth4_HF");
1554 HistAmplDepth[21][1][1] =
new TH1F(
"diffAmpl_Depth1_HB",
"", 100, -10., 10.);
1555 HistAmplDepth[21][1][2] =
new TH1F(
"diffAmpl_Depth2_HB",
"", 100, -10., 10.);
1556 HistAmplDepth[21][1][3] =
new TH1F(
"diffAmpl_Depth3_HB",
"", 100, -10., 10.);
1557 HistAmplDepth[21][1][4] =
new TH1F(
"diffAmpl_Depth4_HB",
"", 100, -10., 10.);
1558 HistAmplDepth[21][2][1] =
new TH1F(
"diffAmpl_Depth1_HE",
"", 100, -10., 10.);
1559 HistAmplDepth[21][2][2] =
new TH1F(
"diffAmpl_Depth2_HE",
"", 100, -10., 10.);
1560 HistAmplDepth[21][2][3] =
new TH1F(
"diffAmpl_Depth3_HE",
"", 100, -10., 10.);
1561 HistAmplDepth[21][2][4] =
new TH1F(
"diffAmpl_Depth4_HE",
"", 100, -10., 10.);
1562 HistAmplDepth[21][2][5] =
new TH1F(
"diffAmpl_Depth5_HE",
"", 100, -10., 10.);
1563 HistAmplDepth[21][2][6] =
new TH1F(
"diffAmpl_Depth6_HE",
"", 100, -10., 10.);
1564 HistAmplDepth[21][2][7] =
new TH1F(
"diffAmpl_Depth7_HE",
"", 100, -10., 10.);
1565 HistAmplDepth[21][3][4] =
new TH1F(
"diffAmpl_Depth4_HO",
"", 100, -10., 10.);
1566 HistAmplDepth[21][4][1] =
new TH1F(
"diffAmpl_Depth1_HF",
"", 100, -10., 10.);
1567 HistAmplDepth[21][4][2] =
new TH1F(
"diffAmpl_Depth2_HF",
"", 100, -10., 10.);
1568 HistAmplDepth[21][4][3] =
new TH1F(
"diffAmpl_Depth3_HF",
"", 100, -10., 10.);
1569 HistAmplDepth[21][4][4] =
new TH1F(
"diffAmpl_Depth4_HF",
"", 100, -10., 10.);
1571 for (
int sub = 1; sub <= 4; sub++) {
1586 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1595 Map_Ampl[21][sub][
k]->Divide(Map_Ampl[21][sub][
k], Map_SUB[sub][k], 1, 1,
"B");
1600 sprintf(str,
"HB, Depth%d \b", k);
1602 sprintf(str,
"HE, Depth%d \b", k);
1604 sprintf(str,
"HO, Depth%d \b", k);
1606 sprintf(str,
"HF, Depth%d \b", k);
1607 Map_Ampl[21][sub][
k]->SetTitle(str);
1608 Map_Ampl[21][sub][
k]->SetXTitle(
"#eta \b");
1609 Map_Ampl[21][sub][
k]->SetYTitle(
"#phi \b");
1610 Map_Ampl[21][sub][
k]->SetZTitle(
"Response \b");
1611 Map_Ampl[21][sub][
k]->SetTitleOffset(1.1,
"Z");
1612 Map_Ampl[21][sub][
k]->Draw(
"COLZ");
1613 Map_Ampl[21][sub][
k]->GetYaxis()->SetRangeUser(0, 71.);
1633 cHB->Print(
"MapRateAmpl1HB.png");
1637 cHE->Print(
"MapRateAmpl1HE.png");
1641 cONE->Print(
"MapRateAmpl1HO.png");
1645 cHF->Print(
"MapRateAmpl1HF.png");
1661 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1670 Map_RefAmpl[sub][
k]->Divide(Map_RefAmpl[sub][
k], Map_RefSUB[sub][k], 1, 1,
"B");
1675 sprintf(str,
"HB, Depth%d \b", k);
1677 sprintf(str,
"HE, Depth%d \b", k);
1679 sprintf(str,
"HO, Depth%d \b", k);
1681 sprintf(str,
"HF, Depth%d \b", k);
1682 Map_RefAmpl[sub][
k]->SetTitle(str);
1683 Map_RefAmpl[sub][
k]->SetXTitle(
"#eta \b");
1684 Map_RefAmpl[sub][
k]->SetYTitle(
"#phi \b");
1685 Map_RefAmpl[sub][
k]->SetZTitle(
"Response\b");
1686 Map_RefAmpl[sub][
k]->SetTitleOffset(1.1,
"Z");
1687 Map_RefAmpl[sub][
k]->Draw(
"COLZ");
1688 Map_RefAmpl[sub][
k]->GetYaxis()->SetRangeUser(0, 71.);
1708 cHB->Print(
"MapRateAmpl2HB.png");
1712 cHE->Print(
"MapRateAmpl2HE.png");
1716 cONE->Print(
"MapRateAmpl2HO.png");
1720 cHF->Print(
"MapRateAmpl2HF.png");
1736 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1745 TH2F *
TTT =
new TH2F(
"Map",
"Map", 82, -41, 40, 72, 0, 71);
1746 for (
int x = 1;
x <= Map_Ampl[21][sub][
k]->GetXaxis()->GetNbins();
x++) {
1747 for (
int y = 1; y <= Map_Ampl[21][sub][
k]->GetYaxis()->GetNbins(); y++) {
1748 if (Map_Ampl[21][sub][
k]->GetBinContent(
x, y) != 0 && Map_RefAmpl[sub][
k]->GetBinContent(
x, y) != 0) {
1749 double ccc1 = Map_Ampl[21][sub][
k]->GetBinContent(
x, y) - Map_RefAmpl[sub][
k]->GetBinContent(
x, y);
1750 ccc1 = 100. * ccc1 / Map_Ampl[21][sub][
k]->GetBinContent(
x, y);
1751 HistAmplDepth[21][sub][
k]->Fill(ccc1);
1752 Map_Ampl[21][sub][
k]->SetBinContent(
x, y, fabs(ccc1));
1753 if (fabs(ccc1) > porog[sub])
1754 TTT->SetBinContent(
x, y, fabs(ccc1));
1756 TTT->SetBinContent(
x, y, 0);
1764 sprintf(str,
"HB, Depth%d \b",
k);
1766 sprintf(str,
"HE, Depth%d \b",
k);
1768 sprintf(str,
"HO, Depth%d \b",
k);
1770 sprintf(str,
"HF, Depth%d \b",
k);
1772 TTT->SetXTitle(
"#eta \b");
1773 TTT->SetYTitle(
"#phi \b");
1774 TTT->SetZTitle(
"Relative difference, % \b");
1775 TTT->SetTitleOffset(0.9,
"Z");
1777 TTT->GetYaxis()->SetRangeUser(0, 71.);
1778 TTT->GetZaxis()->SetRangeUser(0, 10.);
1798 cHB->Print(
"MapRateAmplDriftHB.png");
1802 cHE->Print(
"MapRateAmplDriftHE.png");
1806 cONE->Print(
"MapRateAmplDriftHO.png");
1810 cHF->Print(
"MapRateAmplDriftHF.png");
1827 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
1840 sprintf(str,
"HB, Depth%d \b",
k);
1842 sprintf(str,
"HE, Depth%d \b",
k);
1844 sprintf(str,
"HO, Depth%d \b",
k);
1846 sprintf(str,
"HF, Depth%d \b",
k);
1847 HistAmplDepth[21][sub][
k]->SetTitle(str);
1848 HistAmplDepth[21][sub][
k]->SetYTitle(
"Number of cell-events \b");
1849 HistAmplDepth[21][sub][
k]->SetXTitle(
"Per cent \b");
1850 HistAmplDepth[21][sub][
k]->SetLineColor(4);
1851 HistAmplDepth[21][sub][
k]->SetLineWidth(2);
1852 HistAmplDepth[21][sub][
k]->SetTitleOffset(1.4,
"Y");
1853 HistAmplDepth[21][sub][
k]->Draw();
1855 HistAmplDepth[21][sub][
k]->GetXaxis()->SetRangeUser(-10., 10.);
1872 double min_x[] = {-1 * porog[sub], -1 * porog[sub]};
1873 double min_y[] = {0., 100000000.};
1874 TGraph *
MIN =
new TGraph(2, min_x, min_y);
1875 MIN->SetLineStyle(2);
1876 MIN->SetLineColor(2);
1877 MIN->SetLineWidth(2 + 100 * 100);
1878 MIN->SetFillStyle(3005);
1879 MIN->SetFillColor(2);
1881 double max_x[] = {porog[sub], porog[sub]};
1882 double max_y[] = {0., 100000000.};
1883 TGraph *
MAX =
new TGraph(2, max_x, max_y);
1884 MAX->SetLineStyle(2);
1885 MAX->SetLineColor(2);
1886 MAX->SetLineWidth(-2 - 100 * 100);
1887 MAX->SetFillStyle(3004);
1888 MAX->SetFillColor(2);
1892 cHB->Print(
"HistAmplDriftDepthHB.png");
1896 cHE->Print(
"HistAmplDriftDepthHE.png");
1900 cONE->Print(
"HistAmplDriftDepthHO.png");
1904 cHF->Print(
"HistAmplDriftDepthHF.png");
1913 Map_Ampl[31][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestal_HB");
1914 Map_Ampl[31][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestal_HB");
1915 Map_Ampl[31][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestal_HB");
1916 Map_Ampl[31][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestal_HB");
1917 Map_Ampl[31][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestal_HE");
1918 Map_Ampl[31][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestal_HE");
1919 Map_Ampl[31][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestal_HE");
1920 Map_Ampl[31][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestal_HE");
1921 Map_Ampl[31][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5pedestal_HE");
1922 Map_Ampl[31][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6pedestal_HE");
1923 Map_Ampl[31][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7pedestal_HE");
1924 Map_Ampl[31][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestal_HO");
1925 Map_Ampl[31][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestal_HF");
1926 Map_Ampl[31][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestal_HF");
1927 Map_Ampl[31][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestal_HF");
1928 Map_Ampl[31][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestal_HF");
1930 Map_Ampl[32][1][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestalw_HB");
1931 Map_Ampl[32][1][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestalw_HB");
1932 Map_Ampl[32][1][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestalw_HB");
1933 Map_Ampl[32][1][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestalw_HB");
1934 Map_Ampl[32][2][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestalw_HE");
1935 Map_Ampl[32][2][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestalw_HE");
1936 Map_Ampl[32][2][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestalw_HE");
1937 Map_Ampl[32][2][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestalw_HE");
1938 Map_Ampl[32][2][5] = (TH2F *)dir->FindObjectAny(
"h_mapDepth5pedestalw_HE");
1939 Map_Ampl[32][2][6] = (TH2F *)dir->FindObjectAny(
"h_mapDepth6pedestalw_HE");
1940 Map_Ampl[32][2][7] = (TH2F *)dir->FindObjectAny(
"h_mapDepth7pedestalw_HE");
1941 Map_Ampl[32][3][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestalw_HO");
1942 Map_Ampl[32][4][1] = (TH2F *)dir->FindObjectAny(
"h_mapDepth1pedestalw_HF");
1943 Map_Ampl[32][4][2] = (TH2F *)dir->FindObjectAny(
"h_mapDepth2pedestalw_HF");
1944 Map_Ampl[32][4][3] = (TH2F *)dir->FindObjectAny(
"h_mapDepth3pedestalw_HF");
1945 Map_Ampl[32][4][4] = (TH2F *)dir->FindObjectAny(
"h_mapDepth4pedestalw_HF");
1947 HistPed[1][1][0] = (TH1F *)dir->FindObjectAny(
"h_pedestal0_HB");
1948 HistPed[1][1][1] = (TH1F *)dir->FindObjectAny(
"h_pedestal1_HB");
1949 HistPed[1][1][2] = (TH1F *)dir->FindObjectAny(
"h_pedestal2_HB");
1950 HistPed[1][1][3] = (TH1F *)dir->FindObjectAny(
"h_pedestal3_HB");
1951 HistPed[2][1][0] = (TH1F *)dir->FindObjectAny(
"h_pedestalw0_HB");
1952 HistPed[2][1][1] = (TH1F *)dir->FindObjectAny(
"h_pedestalw1_HB");
1953 HistPed[2][1][2] = (TH1F *)dir->FindObjectAny(
"h_pedestalw2_HB");
1954 HistPed[2][1][3] = (TH1F *)dir->FindObjectAny(
"h_pedestalw3_HB");
1956 HistPed[1][2][0] = (TH1F *)dir->FindObjectAny(
"h_pedestal0_HE");
1957 HistPed[1][2][1] = (TH1F *)dir->FindObjectAny(
"h_pedestal1_HE");
1958 HistPed[1][2][2] = (TH1F *)dir->FindObjectAny(
"h_pedestal2_HE");
1959 HistPed[1][2][3] = (TH1F *)dir->FindObjectAny(
"h_pedestal3_HE");
1960 HistPed[2][2][0] = (TH1F *)dir->FindObjectAny(
"h_pedestalw0_HE");
1961 HistPed[2][2][1] = (TH1F *)dir->FindObjectAny(
"h_pedestalw1_HE");
1962 HistPed[2][2][2] = (TH1F *)dir->FindObjectAny(
"h_pedestalw2_HE");
1963 HistPed[2][2][3] = (TH1F *)dir->FindObjectAny(
"h_pedestalw3_HE");
1965 HistPed[1][3][0] = (TH1F *)dir->FindObjectAny(
"h_pedestal0_HO");
1966 HistPed[1][3][1] = (TH1F *)dir->FindObjectAny(
"h_pedestal1_HO");
1967 HistPed[1][3][2] = (TH1F *)dir->FindObjectAny(
"h_pedestal2_HO");
1968 HistPed[1][3][3] = (TH1F *)dir->FindObjectAny(
"h_pedestal3_HO");
1969 HistPed[2][3][0] = (TH1F *)dir->FindObjectAny(
"h_pedestalw0_HO");
1970 HistPed[2][3][1] = (TH1F *)dir->FindObjectAny(
"h_pedestalw1_HO");
1971 HistPed[2][3][2] = (TH1F *)dir->FindObjectAny(
"h_pedestalw2_HO");
1972 HistPed[2][3][3] = (TH1F *)dir->FindObjectAny(
"h_pedestalw3_HO");
1974 HistPed[1][4][0] = (TH1F *)dir->FindObjectAny(
"h_pedestal0_HF");
1975 HistPed[1][4][1] = (TH1F *)dir->FindObjectAny(
"h_pedestal1_HF");
1976 HistPed[1][4][2] = (TH1F *)dir->FindObjectAny(
"h_pedestal2_HF");
1977 HistPed[1][4][3] = (TH1F *)dir->FindObjectAny(
"h_pedestal3_HF");
1978 HistPed[2][4][0] = (TH1F *)dir->FindObjectAny(
"h_pedestalw0_HF");
1979 HistPed[2][4][1] = (TH1F *)dir->FindObjectAny(
"h_pedestalw1_HF");
1980 HistPed[2][4][2] = (TH1F *)dir->FindObjectAny(
"h_pedestalw2_HF");
1981 HistPed[2][4][3] = (TH1F *)dir->FindObjectAny(
"h_pedestalw3_HF");
1984 for (
int sub = 1; sub <= 4; sub++) {
1999 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
2008 Map_Ampl[
test][sub][
k]->Divide(Map_Ampl[
test][sub][
k], Map_SUB[sub][k], 1, 1,
"B");
2013 sprintf(str,
"HB, Depth%d \b", k);
2015 sprintf(str,
"HE, Depth%d \b", k);
2017 sprintf(str,
"HO, Depth%d \b", k);
2019 sprintf(str,
"HF, Depth%d \b", k);
2020 Map_Ampl[
test][sub][
k]->SetTitle(str);
2021 Map_Ampl[
test][sub][
k]->SetXTitle(
"#eta \b");
2022 Map_Ampl[
test][sub][
k]->SetYTitle(
"#phi \b");
2023 Map_Ampl[
test][sub][
k]->SetZTitle(
"Rate \b");
2025 Map_Ampl[
test][sub][
k]->SetTitleOffset(0.8,
"Z");
2026 Map_Ampl[
test][sub][
k]->Draw(
"COLZ");
2027 Map_Ampl[
test][sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
2028 Map_Ampl[
test][sub][
k]->GetZaxis()->SetRangeUser(0.0001, 1.);
2048 cHB->Print(
"MapRatePedHB.png");
2052 cHE->Print(
"MapRatePedHE.png");
2056 cONE->Print(
"MapRatePedHO.png");
2060 cHF->Print(
"MapRatePedHF.png");
2066 cHB->Print(
"MapRatePedWidthsHB.png");
2070 cHE->Print(
"MapRatePedWidthsHE.png");
2074 cONE->Print(
"MapRatePedWidthsHO.png");
2078 cHF->Print(
"MapRatePedWidthsHF.png");
2086 for (
int cap = 0; cap <= 3; cap++) {
2093 sprintf(str,
"HB, Cap%d, all depth\b", cap);
2095 sprintf(str,
"HE, Cap%d, all depth\b", cap);
2097 sprintf(str,
"HO, Cap%d, all depth\b", cap);
2099 sprintf(str,
"HF, Cap%d, all depth\b", cap);
2101 HistPed[
test - 30][sub][cap]->SetTitle(str);
2104 HistPed[
test - 30][sub][cap]->SetXTitle(
"Pedestals in each event & cell \b");
2106 HistPed[
test - 30][sub][cap]->SetXTitle(
"Pedestal Widths in each event & cell \b");
2108 HistPed[
test - 30][sub][cap]->SetYTitle(
"Number of channel-events \b");
2109 HistPed[
test - 30][sub][cap]->SetLineColor(4);
2110 HistPed[
test - 30][sub][cap]->SetLineWidth(2);
2111 HistPed[
test - 30][sub][cap]->SetTitleOffset(1.4,
"Y");
2112 HistPed[
test - 30][sub][cap]->Draw(
"");
2119 double min_x[] = {Pedest[
test - 31][sub], Pedest[
test - 31][sub]};
2120 double min_y[] = {0., 100000000.};
2121 TGraph *
MIN =
new TGraph(2, min_x, min_y);
2122 MIN->SetLineStyle(2);
2123 MIN->SetLineColor(2);
2124 MIN->SetLineWidth(2 + 100 * 100);
2125 MIN->SetFillStyle(3005);
2126 MIN->SetFillColor(2);
2131 cPED->Print(
"HistPedestalsHB.png");
2135 cPED->Print(
"HistPedestalsHE.png");
2139 cPED->Print(
"HistPedestalsHO.png");
2143 cPED->Print(
"HistPedestalsHF.png");
2149 cPED->Print(
"HistPedestalWidthsHB.png");
2153 cPED->Print(
"HistPedestalWidthsHE.png");
2157 cPED->Print(
"HistPedestalWidthsHO.png");
2161 cPED->Print(
"HistPedestalWidthsHF.png");
2173 Map_Ped[1][1] = (TH2F *)dir->FindObjectAny(
"h2_pedvsampl_HB");
2174 Map_Ped[1][2] = (TH2F *)dir->FindObjectAny(
"h2_pedvsampl_HE");
2175 Map_Ped[1][3] = (TH2F *)dir->FindObjectAny(
"h2_pedvsampl_HO");
2176 Map_Ped[1][4] = (TH2F *)dir->FindObjectAny(
"h2_pedvsampl_HF");
2177 Map_Ped[2][1] = (TH2F *)dir->FindObjectAny(
"h2_pedwvsampl_HB");
2178 Map_Ped[2][2] = (TH2F *)dir->FindObjectAny(
"h2_pedwvsampl_HE");
2179 Map_Ped[2][3] = (TH2F *)dir->FindObjectAny(
"h2_pedwvsampl_HO");
2180 Map_Ped[2][4] = (TH2F *)dir->FindObjectAny(
"h2_pedwvsampl_HF");
2181 for (
int sub = 1; sub <= 4; sub++) {
2189 Map_Ped[
test][sub]->SetXTitle(
"Pedestal, fC \b");
2191 Map_Ped[
test][sub]->SetXTitle(
"pedestal Width, fC \b");
2192 Map_Ped[
test][sub]->SetYTitle(
"Amplitude, fC \b");
2193 Map_Ped[
test][sub]->SetZTitle(
"entries \b");
2195 sprintf(str,
"Cap0 Pedestal vs Amplitude \b");
2197 sprintf(str,
"Cap0 pedestalWidth vs Amplitude \b");
2198 Map_Ped[
test][sub]->SetTitle(str);
2199 Map_Ped[
test][sub]->Draw(
"COLZ");
2206 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHB.png");
2210 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHE.png");
2214 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHO.png");
2218 cPED->Print(
"CorrelationsMapPedestalVsfullAmplitudeHF.png");
2228 hist_GoodTSshape[1] = (TH1F *)dir->FindObjectAny(
"h_shape_good_channels_HB");
2229 hist_GoodTSshape[2] = (TH1F *)dir->FindObjectAny(
"h_shape_good_channels_HE");
2230 hist_GoodTSshape[3] = (TH1F *)dir->FindObjectAny(
"h_shape_good_channels_HO");
2231 hist_GoodTSshape[4] = (TH1F *)dir->FindObjectAny(
"h_shape_good_channels_HF");
2233 hist_GoodTSshape0[1] = (TH1F *)dir->FindObjectAny(
"h_shape0_good_channels_HB");
2234 hist_GoodTSshape0[2] = (TH1F *)dir->FindObjectAny(
"h_shape0_good_channels_HE");
2235 hist_GoodTSshape0[3] = (TH1F *)dir->FindObjectAny(
"h_shape0_good_channels_HO");
2236 hist_GoodTSshape0[4] = (TH1F *)dir->FindObjectAny(
"h_shape0_good_channels_HF");
2238 hist_BadTSshape[1] = (TH1F *)dir->FindObjectAny(
"h_shape_bad_channels_HB");
2239 hist_BadTSshape[2] = (TH1F *)dir->FindObjectAny(
"h_shape_bad_channels_HE");
2240 hist_BadTSshape[3] = (TH1F *)dir->FindObjectAny(
"h_shape_bad_channels_HO");
2241 hist_BadTSshape[4] = (TH1F *)dir->FindObjectAny(
"h_shape_bad_channels_HF");
2243 hist_BadTSshape0[1] = (TH1F *)dir->FindObjectAny(
"h_shape0_bad_channels_HB");
2244 hist_BadTSshape0[2] = (TH1F *)dir->FindObjectAny(
"h_shape0_bad_channels_HE");
2245 hist_BadTSshape0[3] = (TH1F *)dir->FindObjectAny(
"h_shape0_bad_channels_HO");
2246 hist_BadTSshape0[4] = (TH1F *)dir->FindObjectAny(
"h_shape0_bad_channels_HF");
2250 for (
int sub = 1; sub <= 4; sub++) {
2255 hist_GoodTSshape[sub]->Divide(hist_GoodTSshape[sub], hist_GoodTSshape0[sub], 1, 1,
"B");
2256 hist_GoodTSshape[sub]->SetXTitle(
"Time slice \b");
2257 hist_GoodTSshape[sub]->SetYTitle(
"ADC counts \b");
2258 sprintf(str,
"Mean ADC Shape \b");
2259 hist_GoodTSshape[sub]->SetTitle(str);
2260 hist_GoodTSshape[sub]->Draw(
"");
2266 cONE->Print(
"HistGoodTSshapesHB.png");
2270 cONE->Print(
"HistGoodTSshapesHE.png");
2274 cONE->Print(
"HistGoodTSshapesHO.png");
2278 cONE->Print(
"HistGoodTSshapesHF.png");
2283 for (
int sub = 1; sub <= 4; sub++) {
2288 hist_BadTSshape[sub]->Divide(hist_BadTSshape[sub], hist_BadTSshape0[sub], 1, 1,
"B");
2289 hist_BadTSshape[sub]->SetXTitle(
"Time slice \b");
2290 hist_BadTSshape[sub]->SetYTitle(
"ADC counts \b");
2291 sprintf(str,
"Mean ADC Shape \b");
2292 hist_BadTSshape[sub]->SetTitle(str);
2293 hist_BadTSshape[sub]->Draw(
"");
2299 cONE->Print(
"HistBadTSshapesHB.png");
2303 cONE->Print(
"HistBadTSshapesHE.png");
2307 cONE->Print(
"HistBadTSshapesHO.png");
2311 cONE->Print(
"HistBadTSshapesHF.png");
2552 const int neta = 82;
2553 const int nphi = 72;
2557 double alexhe[
ndepth][njeta][njphi];
2558 double variance[
ndepth][njeta][njphi];
2560 const int jposbeg = 57;
2561 const int jposend = 71;
2563 const int jnegbeg = 12;
2564 const int jnegend = 26;
2566 cout <<
"Iteration Method for Calibration Group nsub= " << nsub <<
" ndepth = " << ndepth <<
" neta = " << neta
2567 <<
" nphi = " << nphi << endl;
2568 cout <<
"Iteration Method for Calibration Group njdepth = " << njdepth <<
" njeta = " << njeta
2569 <<
" njphi = " << njphi << endl;
2570 cout <<
"Iteration Method for Calibration Group jposbeg = " << jposbeg <<
" jposend = " << jposend
2571 <<
" jnegbeg = " << jnegbeg <<
" jnegend = " << jnegend << endl;
2589 TH2F *maprphinorm1HE1 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE1");
2590 TH2F *maprphinorm0HE1 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE1");
2591 TH2F *maprphinormHE1 = (TH2F *)maprphinorm1HE1->Clone(
"maprphinormHE1");
2592 maprphinormHE1->Divide(maprphinorm1HE1, maprphinorm0HE1, 1, 1,
"B");
2593 TH2F *maprphinorm1HE2 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE2");
2594 TH2F *maprphinorm0HE2 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE2");
2595 TH2F *maprphinormHE2 = (TH2F *)maprphinorm1HE2->Clone(
"maprphinormHE2");
2596 maprphinormHE2->Divide(maprphinorm1HE2, maprphinorm0HE2, 1, 1,
"B");
2597 TH2F *maprphinorm1HE3 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE3");
2598 TH2F *maprphinorm0HE3 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE3");
2599 TH2F *maprphinormHE3 = (TH2F *)maprphinorm1HE3->Clone(
"maprphinormHE3");
2600 maprphinormHE3->Divide(maprphinorm1HE3, maprphinorm0HE3, 1, 1,
"B");
2601 TH2F *maprphinorm1HE4 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE4");
2602 TH2F *maprphinorm0HE4 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE4");
2603 TH2F *maprphinormHE4 = (TH2F *)maprphinorm1HE4->Clone(
"maprphinormHE4");
2604 maprphinormHE4->Divide(maprphinorm1HE4, maprphinorm0HE4, 1, 1,
"B");
2605 TH2F *maprphinorm1HE5 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE5");
2606 TH2F *maprphinorm0HE5 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE5");
2607 TH2F *maprphinormHE5 = (TH2F *)maprphinorm1HE5->Clone(
"maprphinormHE5");
2608 maprphinormHE5->Divide(maprphinorm1HE5, maprphinorm0HE5, 1, 1,
"B");
2609 TH2F *maprphinorm1HE6 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE6");
2610 TH2F *maprphinorm0HE6 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE6");
2611 TH2F *maprphinormHE6 = (TH2F *)maprphinorm1HE6->Clone(
"maprphinormHE6");
2612 maprphinormHE6->Divide(maprphinorm1HE6, maprphinorm0HE6, 1, 1,
"B");
2613 TH2F *maprphinorm1HE7 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm_HE7");
2614 TH2F *maprphinorm0HE7 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE7");
2615 TH2F *maprphinormHE7 = (TH2F *)maprphinorm1HE7->Clone(
"maprphinormHE7");
2616 maprphinormHE7->Divide(maprphinorm1HE7, maprphinorm0HE7, 1, 1,
"B");
2618 for (
int jeta = 0; jeta < njeta; jeta++) {
2619 for (
int jphi = 0; jphi < njphi; jphi++) {
2620 alexhe[0][jeta][jphi] = maprphinormHE1->GetBinContent(jeta + 1, jphi + 1);
2621 alexhe[1][jeta][jphi] = maprphinormHE2->GetBinContent(jeta + 1, jphi + 1);
2622 alexhe[2][jeta][jphi] = maprphinormHE3->GetBinContent(jeta + 1, jphi + 1);
2623 alexhe[3][jeta][jphi] = maprphinormHE4->GetBinContent(jeta + 1, jphi + 1);
2624 alexhe[4][jeta][jphi] = maprphinormHE5->GetBinContent(jeta + 1, jphi + 1);
2625 alexhe[5][jeta][jphi] = maprphinormHE6->GetBinContent(jeta + 1, jphi + 1);
2626 alexhe[6][jeta][jphi] = maprphinormHE7->GetBinContent(jeta + 1, jphi + 1);
2633 cout <<
" R2D-eta/phi-plot: R, averaged over depthes *****" << endl;
2638 TH2F *Gefz42D =
new TH2F(
"Gefz42D",
"", neta, -41., 41., nphi, 0., 72.);
2639 TH2F *Gefz42D0 =
new TH2F(
"Gefz42D0",
"", neta, -41., 41., nphi, 0., 72.);
2640 TH2F *Gefz42DF = (TH2F *)Gefz42D0->Clone(
"Gefz42DF");
2642 for (
int jeta = 0; jeta <
neta; jeta++) {
2643 for (
int jphi = 0; jphi <
nphi; jphi++) {
2644 double ccc1 = alexhe[
i][jeta][jphi];
2645 int k2plot = jeta - 41;
2648 Gefz42D->Fill(kkk, jphi, ccc1);
2649 Gefz42D0->Fill(kkk, jphi, 1.);
2654 Gefz42DF->Divide(Gefz42D, Gefz42D0, 1, 1,
"B");
2657 Gefz42DF->SetMarkerStyle(20);
2658 Gefz42DF->SetMarkerSize(0.4);
2659 Gefz42DF->GetZaxis()->SetLabelSize(0.08);
2660 Gefz42DF->SetXTitle(
"<R>_depth #eta \b");
2661 Gefz42DF->SetYTitle(
" #phi \b");
2662 Gefz42DF->SetZTitle(
"<R>_depth \b");
2663 Gefz42DF->SetMarkerColor(2);
2664 Gefz42DF->SetLineColor(0);
2665 Gefz42DF->Draw(
"COLZ");
2669 c1x0->Print(
"Rhist2IterationMethodHE.png");
2681 cout <<
" 1D plot: R vs phi , averaged over depthes & eta *****" << endl;
2686 TH1F *Gefz41D =
new TH1F(
"Gefz41D",
"", nphi, 0., 72.);
2687 TH1F *Gefz41D0 =
new TH1F(
"Gefz41D0",
"", nphi, 0., 72.);
2688 TH1F *Gefz41DF = (TH1F *)Gefz41D0->Clone(
"Gefz41DF");
2690 for (
int jeta = 0; jeta <
neta; jeta++) {
2692 if (jeta - 41 > 0) {
2693 for (
int jphi = 0; jphi <
nphi; jphi++) {
2695 double ccc1 = alexhe[
i][jeta][jphi];
2697 Gefz41D->Fill(jphi, ccc1);
2698 Gefz41D0->Fill(jphi, 1.);
2706 Gefz41DF->Divide(Gefz41D, Gefz41D0, 1, 1,
"B");
2711 Gefz41DF->SetMarkerStyle(20);
2712 Gefz41DF->SetMarkerSize(1.4);
2713 Gefz41DF->GetZaxis()->SetLabelSize(0.08);
2714 Gefz41DF->SetXTitle(
"#phi \b");
2715 Gefz41DF->SetYTitle(
" <R> \b");
2716 Gefz41DF->SetZTitle(
"<R>_PHI - AllDepthes \b");
2717 Gefz41DF->SetMarkerColor(4);
2718 Gefz41DF->SetLineColor(4);
2719 Gefz41DF->SetMinimum(0.8);
2720 Gefz41DF->Draw(
"Error");
2724 c1x1->Print(
"Rhist1IterationMethodHE.png");
2737 cout <<
" 1D plot: R vs phi , different eta, depth=1 *****" << endl;
2742 int kcountHEpositivedirection1 = 1;
2743 TH1F *h2CeffHEpositivedirection1 =
new TH1F(
"h2CeffHEpositivedirection1",
"", nphi, 0., 72.);
2745 for (
int jeta = 0; jeta < njeta; jeta++) {
2747 if (jeta - 41 > 0) {
2750 for (
int i = 0;
i < 1;
i++) {
2751 TH1F *HEpositivedirection1 = (TH1F *)h2CeffHEpositivedirection1->Clone(
"twod1");
2754 for (
int jphi = 0; jphi <
nphi; jphi++) {
2755 double ccc1 = alexhe[
i][jeta][jphi];
2757 HEpositivedirection1->Fill(jphi, ccc1);
2762 cout <<
"444 kcountHEpositivedirection1 = " << kcountHEpositivedirection1
2763 <<
" jeta-41= " << jeta - 41 << endl;
2764 c3x5->cd(kcountHEpositivedirection1);
2765 HEpositivedirection1->SetMarkerStyle(20);
2766 HEpositivedirection1->SetMarkerSize(0.4);
2767 HEpositivedirection1->GetYaxis()->SetLabelSize(0.04);
2768 HEpositivedirection1->SetXTitle(
"HEpositivedirection1 \b");
2769 HEpositivedirection1->SetMarkerColor(2);
2770 HEpositivedirection1->SetLineColor(0);
2774 if (kcountHEpositivedirection1 == 1)
2775 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 18; depth = 1 \b");
2776 if (kcountHEpositivedirection1 == 2)
2777 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 19; depth = 1 \b");
2778 if (kcountHEpositivedirection1 == 3)
2779 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 20; depth = 1 \b");
2780 if (kcountHEpositivedirection1 == 4)
2781 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 21; depth = 1 \b");
2782 if (kcountHEpositivedirection1 == 5)
2783 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 22; depth = 1 \b");
2784 if (kcountHEpositivedirection1 == 6)
2785 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 23; depth = 1 \b");
2786 if (kcountHEpositivedirection1 == 7)
2787 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 24; depth = 1 \b");
2788 if (kcountHEpositivedirection1 == 8)
2789 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 25; depth = 1 \b");
2790 if (kcountHEpositivedirection1 == 9)
2791 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 26; depth = 1 \b");
2792 if (kcountHEpositivedirection1 == 10)
2793 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 27; depth = 1 \b");
2794 if (kcountHEpositivedirection1 == 11)
2795 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 28; depth = 1 \b");
2796 if (kcountHEpositivedirection1 == 12)
2797 HEpositivedirection1->SetXTitle(
"R for HE+ jeta = 29; depth = 1 \b");
2798 HEpositivedirection1->Draw(
"Error");
2799 kcountHEpositivedirection1++;
2800 if (kcountHEpositivedirection1 > 15)
2809 c3x5->Print(
"Rhist1IterationMethodDepth1HE.png");
2812 if (h2CeffHEpositivedirection1)
2813 delete h2CeffHEpositivedirection1;
2818 cout <<
" 1D plot: R vs phi , different eta, depth=2 *****" << endl;
2823 int kcountHEpositivedirection2 = 1;
2824 TH1F *h2CeffHEpositivedirection2 =
new TH1F(
"h2CeffHEpositivedirection2",
"", nphi, 0., 72.);
2826 for (
int jeta = 0; jeta < njeta; jeta++) {
2828 if (jeta - 41 > 0) {
2831 for (
int i = 1;
i < 2;
i++) {
2832 TH1F *HEpositivedirection2 = (TH1F *)h2CeffHEpositivedirection2->Clone(
"twod1");
2835 for (
int jphi = 0; jphi <
nphi; jphi++) {
2836 double ccc1 = alexhe[
i][jeta][jphi];
2838 HEpositivedirection2->Fill(jphi, ccc1);
2843 cout <<
"555 kcountHEpositivedirection2 = " << kcountHEpositivedirection2
2844 <<
" jeta-41= " << jeta - 41 << endl;
2845 c3x5->cd(kcountHEpositivedirection2);
2846 HEpositivedirection2->SetMarkerStyle(20);
2847 HEpositivedirection2->SetMarkerSize(0.4);
2848 HEpositivedirection2->GetYaxis()->SetLabelSize(0.04);
2849 HEpositivedirection2->SetXTitle(
"HEpositivedirection2 \b");
2850 HEpositivedirection2->SetMarkerColor(2);
2851 HEpositivedirection2->SetLineColor(0);
2855 if (kcountHEpositivedirection2 == 1)
2856 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 17; depth = 2 \b");
2857 if (kcountHEpositivedirection2 == 2)
2858 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 18; depth = 2 \b");
2859 if (kcountHEpositivedirection2 == 3)
2860 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 19; depth = 2 \b");
2861 if (kcountHEpositivedirection2 == 4)
2862 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 20; depth = 2 \b");
2863 if (kcountHEpositivedirection2 == 5)
2864 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 21; depth = 2 \b");
2865 if (kcountHEpositivedirection2 == 6)
2866 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 22; depth = 2 \b");
2867 if (kcountHEpositivedirection2 == 7)
2868 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 23; depth = 2 \b");
2869 if (kcountHEpositivedirection2 == 8)
2870 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 24; depth = 2 \b");
2871 if (kcountHEpositivedirection2 == 9)
2872 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 25; depth = 2 \b");
2873 if (kcountHEpositivedirection2 == 10)
2874 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 26; depth = 2 \b");
2875 if (kcountHEpositivedirection2 == 11)
2876 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 27; depth = 2 \b");
2877 if (kcountHEpositivedirection2 == 12)
2878 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 28; depth = 2 \b");
2879 if (kcountHEpositivedirection2 == 13)
2880 HEpositivedirection2->SetXTitle(
"R for HE+ jeta = 29; depth = 2 \b");
2881 HEpositivedirection2->Draw(
"Error");
2882 kcountHEpositivedirection2++;
2883 if (kcountHEpositivedirection2 > 15)
2892 c3x5->Print(
"Rhist1IterationMethodDepth2HE.png");
2895 if (h2CeffHEpositivedirection2)
2896 delete h2CeffHEpositivedirection2;
2900 cout <<
" 1D plot: R vs phi , different eta, depth=3 *****" << endl;
2905 int kcountHEpositivedirection3 = 1;
2906 TH1F *h2CeffHEpositivedirection3 =
new TH1F(
"h2CeffHEpositivedirection3",
"", nphi, 0., 72.);
2908 for (
int jeta = 0; jeta < njeta; jeta++) {
2910 if (jeta - 41 > 0) {
2913 for (
int i = 2;
i < 3;
i++) {
2914 TH1F *HEpositivedirection3 = (TH1F *)h2CeffHEpositivedirection3->Clone(
"twod1");
2917 for (
int jphi = 0; jphi <
nphi; jphi++) {
2918 double ccc1 = alexhe[
i][jeta][jphi];
2920 HEpositivedirection3->Fill(jphi, ccc1);
2925 cout <<
"666 kcountHEpositivedirection3 = " << kcountHEpositivedirection3
2926 <<
" jeta-41= " << jeta - 41 << endl;
2927 c3x5->cd(kcountHEpositivedirection3);
2928 HEpositivedirection3->SetMarkerStyle(20);
2929 HEpositivedirection3->SetMarkerSize(0.4);
2930 HEpositivedirection3->GetYaxis()->SetLabelSize(0.04);
2931 HEpositivedirection3->SetXTitle(
"HEpositivedirection3 \b");
2932 HEpositivedirection3->SetMarkerColor(2);
2933 HEpositivedirection3->SetLineColor(0);
2937 if (kcountHEpositivedirection3 == 1)
2938 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 17; depth = 3 \b");
2939 if (kcountHEpositivedirection3 == 2)
2940 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 18; depth = 3 \b");
2941 if (kcountHEpositivedirection3 == 3)
2942 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 19; depth = 3 \b");
2943 if (kcountHEpositivedirection3 == 4)
2944 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 20; depth = 3 \b");
2945 if (kcountHEpositivedirection3 == 5)
2946 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 21; depth = 3 \b");
2947 if (kcountHEpositivedirection3 == 6)
2948 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 22; depth = 3 \b");
2949 if (kcountHEpositivedirection3 == 7)
2950 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 23; depth = 3 \b");
2951 if (kcountHEpositivedirection3 == 8)
2952 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 24; depth = 3 \b");
2953 if (kcountHEpositivedirection3 == 9)
2954 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 25; depth = 3 \b");
2955 if (kcountHEpositivedirection3 == 10)
2956 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 26; depth = 3 \b");
2957 if (kcountHEpositivedirection3 == 11)
2958 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 27; depth = 3 \b");
2959 if (kcountHEpositivedirection3 == 12)
2960 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 28; depth = 3 \b");
2961 if (kcountHEpositivedirection3 == 13)
2962 HEpositivedirection3->SetXTitle(
"R for HE+ jeta = 29; depth = 3 \b");
2963 HEpositivedirection3->Draw(
"Error");
2964 kcountHEpositivedirection3++;
2965 if (kcountHEpositivedirection3 > 15)
2974 c3x5->Print(
"Rhist1IterationMethodDepth3HE.png");
2977 if (h2CeffHEpositivedirection3)
2978 delete h2CeffHEpositivedirection3;
2982 cout <<
" 1D plot: R vs phi , different eta, depth=4 *****" << endl;
2987 int kcountHEpositivedirection4 = 1;
2988 TH1F *h2CeffHEpositivedirection4 =
new TH1F(
"h2CeffHEpositivedirection4",
"", nphi, 0., 72.);
2990 for (
int jeta = 0; jeta < njeta; jeta++) {
2992 if (jeta - 41 > 0) {
2995 for (
int i = 3;
i < 4;
i++) {
2996 TH1F *HEpositivedirection4 = (TH1F *)h2CeffHEpositivedirection4->Clone(
"twod1");
2999 for (
int jphi = 0; jphi <
nphi; jphi++) {
3000 double ccc1 = alexhe[
i][jeta][jphi];
3002 HEpositivedirection4->Fill(jphi, ccc1);
3007 cout <<
"777 kcountHEpositivedirection4 = " << kcountHEpositivedirection4
3008 <<
" jeta-41= " << jeta - 41 << endl;
3009 c3x5->cd(kcountHEpositivedirection4);
3010 HEpositivedirection4->SetMarkerStyle(20);
3011 HEpositivedirection4->SetMarkerSize(0.4);
3012 HEpositivedirection4->GetYaxis()->SetLabelSize(0.04);
3013 HEpositivedirection4->SetXTitle(
"HEpositivedirection4 \b");
3014 HEpositivedirection4->SetMarkerColor(2);
3015 HEpositivedirection4->SetLineColor(0);
3019 if (kcountHEpositivedirection4 == 1)
3020 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 16; depth = 4 \b");
3021 if (kcountHEpositivedirection4 == 2)
3022 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 18; depth = 4 \b");
3023 if (kcountHEpositivedirection4 == 3)
3024 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 19; depth = 4 \b");
3025 if (kcountHEpositivedirection4 == 4)
3026 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 20; depth = 4 \b");
3027 if (kcountHEpositivedirection4 == 5)
3028 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 21; depth = 4 \b");
3029 if (kcountHEpositivedirection4 == 6)
3030 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 22; depth = 4 \b");
3031 if (kcountHEpositivedirection4 == 7)
3032 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 23; depth = 4 \b");
3033 if (kcountHEpositivedirection4 == 8)
3034 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 24; depth = 4 \b");
3035 if (kcountHEpositivedirection4 == 9)
3036 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 25; depth = 4 \b");
3037 if (kcountHEpositivedirection4 == 10)
3038 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 26; depth = 4 \b");
3039 if (kcountHEpositivedirection4 == 11)
3040 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 27; depth = 4 \b");
3041 if (kcountHEpositivedirection4 == 12)
3042 HEpositivedirection4->SetXTitle(
"R for HE+ jeta = 28; depth = 4 \b");
3043 HEpositivedirection4->Draw(
"Error");
3044 kcountHEpositivedirection4++;
3045 if (kcountHEpositivedirection4 > 15)
3054 c3x5->Print(
"Rhist1IterationMethodDepth4HE.png");
3057 if (h2CeffHEpositivedirection4)
3058 delete h2CeffHEpositivedirection4;
3062 cout <<
" 1D plot: R vs phi , different eta, depth=5 *****" << endl;
3067 int kcountHEpositivedirection5 = 1;
3068 TH1F *h2CeffHEpositivedirection5 =
new TH1F(
"h2CeffHEpositivedirection5",
"", nphi, 0., 72.);
3070 for (
int jeta = 0; jeta < njeta; jeta++) {
3072 if (jeta - 41 > 0) {
3075 for (
int i = 4;
i < 5;
i++) {
3076 TH1F *HEpositivedirection5 = (TH1F *)h2CeffHEpositivedirection5->Clone(
"twod1");
3079 for (
int jphi = 0; jphi <
nphi; jphi++) {
3082 double ccc1 = alexhe[
i][jeta][jphi];
3084 HEpositivedirection5->Fill(jphi, ccc1);
3089 cout <<
"888 kcountHEpositivedirection5 = " << kcountHEpositivedirection5
3090 <<
" jeta-41= " << jeta - 41 << endl;
3091 c3x5->cd(kcountHEpositivedirection5);
3092 HEpositivedirection5->SetMarkerStyle(20);
3093 HEpositivedirection5->SetMarkerSize(0.4);
3094 HEpositivedirection5->GetYaxis()->SetLabelSize(0.04);
3095 HEpositivedirection5->SetXTitle(
"HEpositivedirection5 \b");
3096 HEpositivedirection5->SetMarkerColor(2);
3097 HEpositivedirection5->SetLineColor(0);
3101 if (kcountHEpositivedirection5 == 1)
3102 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 18; depth = 5 \b");
3103 if (kcountHEpositivedirection5 == 2)
3104 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 19; depth = 5 \b");
3105 if (kcountHEpositivedirection5 == 3)
3106 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 20; depth = 5 \b");
3107 if (kcountHEpositivedirection5 == 4)
3108 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 21; depth = 5 \b");
3109 if (kcountHEpositivedirection5 == 5)
3110 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 22; depth = 5 \b");
3111 if (kcountHEpositivedirection5 == 6)
3112 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 23; depth = 5 \b");
3113 if (kcountHEpositivedirection5 == 7)
3114 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 24; depth = 5 \b");
3115 if (kcountHEpositivedirection5 == 8)
3116 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 25; depth = 5 \b");
3117 if (kcountHEpositivedirection5 == 9)
3118 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 26; depth = 5 \b");
3119 if (kcountHEpositivedirection5 == 10)
3120 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 27; depth = 5 \b");
3121 if (kcountHEpositivedirection5 == 11)
3122 HEpositivedirection5->SetXTitle(
"R for HE+ jeta = 28; depth = 5 \b");
3123 HEpositivedirection5->Draw(
"Error");
3124 kcountHEpositivedirection5++;
3125 if (kcountHEpositivedirection5 > 15)
3134 c3x5->Print(
"Rhist1IterationMethodDepth5HE.png");
3137 if (h2CeffHEpositivedirection5)
3138 delete h2CeffHEpositivedirection5;
3142 cout <<
" 1D plot: R vs phi , different eta, depth=6 *****" << endl;
3147 int kcountHEpositivedirection6 = 1;
3148 TH1F *h2CeffHEpositivedirection6 =
new TH1F(
"h2CeffHEpositivedirection6",
"", nphi, 0., 72.);
3150 for (
int jeta = 0; jeta < njeta; jeta++) {
3152 if (jeta - 41 > 0) {
3155 for (
int i = 5;
i < 6;
i++) {
3156 TH1F *HEpositivedirection6 = (TH1F *)h2CeffHEpositivedirection6->Clone(
"twod1");
3159 for (
int jphi = 0; jphi <
nphi; jphi++) {
3160 double ccc1 = alexhe[
i][jeta][jphi];
3162 HEpositivedirection6->Fill(jphi, ccc1);
3167 cout <<
"999 kcountHEpositivedirection6 = " << kcountHEpositivedirection6
3168 <<
" jeta-41= " << jeta - 41 << endl;
3169 c3x5->cd(kcountHEpositivedirection6);
3170 HEpositivedirection6->SetMarkerStyle(20);
3171 HEpositivedirection6->SetMarkerSize(0.4);
3172 HEpositivedirection6->GetYaxis()->SetLabelSize(0.04);
3173 HEpositivedirection6->SetXTitle(
"HEpositivedirection6 \b");
3174 HEpositivedirection6->SetMarkerColor(2);
3175 HEpositivedirection6->SetLineColor(0);
3179 if (kcountHEpositivedirection6 == 1)
3180 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 19; depth = 6 \b");
3181 if (kcountHEpositivedirection6 == 2)
3182 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 20; depth = 6 \b");
3183 if (kcountHEpositivedirection6 == 3)
3184 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 21; depth = 6 \b");
3185 if (kcountHEpositivedirection6 == 4)
3186 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 22; depth = 6 \b");
3187 if (kcountHEpositivedirection6 == 5)
3188 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 23; depth = 6 \b");
3189 if (kcountHEpositivedirection6 == 6)
3190 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 24; depth = 6 \b");
3191 if (kcountHEpositivedirection6 == 7)
3192 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 25; depth = 6 \b");
3193 if (kcountHEpositivedirection6 == 8)
3194 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 26; depth = 6 \b");
3195 if (kcountHEpositivedirection6 == 9)
3196 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 27; depth = 6 \b");
3197 if (kcountHEpositivedirection6 == 10)
3198 HEpositivedirection6->SetXTitle(
"R for HE+ jeta = 28; depth = 6 \b");
3199 HEpositivedirection6->Draw(
"Error");
3200 kcountHEpositivedirection6++;
3201 if (kcountHEpositivedirection6 > 15)
3210 c3x5->Print(
"Rhist1IterationMethodDepth6HE.png");
3213 if (h2CeffHEpositivedirection6)
3214 delete h2CeffHEpositivedirection6;
3218 cout <<
" 1D plot: R vs phi , different eta, depth=7 *****" << endl;
3223 int kcountHEpositivedirection7 = 1;
3224 TH1F *h2CeffHEpositivedirection7 =
new TH1F(
"h2CeffHEpositivedirection7",
"", nphi, 0., 72.);
3226 for (
int jeta = 0; jeta < njeta; jeta++) {
3228 if (jeta - 41 > 0) {
3231 for (
int i = 6;
i < 7;
i++) {
3232 TH1F *HEpositivedirection7 = (TH1F *)h2CeffHEpositivedirection7->Clone(
"twod1");
3235 for (
int jphi = 0; jphi <
nphi; jphi++) {
3236 double ccc1 = alexhe[
i][jeta][jphi];
3238 HEpositivedirection7->Fill(jphi, ccc1);
3243 cout <<
"1010 kcountHEpositivedirection7 = " << kcountHEpositivedirection7
3244 <<
" jeta-41= " << jeta - 41 << endl;
3245 c3x5->cd(kcountHEpositivedirection7);
3246 HEpositivedirection7->SetMarkerStyle(20);
3247 HEpositivedirection7->SetMarkerSize(0.4);
3248 HEpositivedirection7->GetYaxis()->SetLabelSize(0.04);
3249 HEpositivedirection7->SetXTitle(
"HEpositivedirection7 \b");
3250 HEpositivedirection7->SetMarkerColor(2);
3251 HEpositivedirection7->SetLineColor(0);
3255 if (kcountHEpositivedirection7 == 1)
3256 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 26; depth = 7 \b");
3257 if (kcountHEpositivedirection7 == 2)
3258 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 27; depth = 7 \b");
3259 if (kcountHEpositivedirection7 == 3)
3260 HEpositivedirection7->SetXTitle(
"R for HE+ jeta = 28; depth = 7 \b");
3261 HEpositivedirection7->Draw(
"Error");
3262 kcountHEpositivedirection7++;
3263 if (kcountHEpositivedirection7 > 15)
3272 c3x5->Print(
"Rhist1IterationMethodDepth7HE.png");
3275 if (h2CeffHEpositivedirection7)
3276 delete h2CeffHEpositivedirection7;
3280 cout <<
" Start Vaiance: preparation *****" << endl;
3281 TH2F *mapdphinorm1HE1 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE1");
3282 TH2F *mapdphinorm0HE1 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE1");
3283 TH2F *mapdphinormHE1 = (TH2F *)mapdphinorm1HE1->Clone(
"mapdphinormHE1");
3284 mapdphinormHE1->Divide(mapdphinorm1HE1, mapdphinorm0HE1, 1, 1,
"B");
3285 TH2F *mapdphinorm1HE2 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE2");
3286 TH2F *mapdphinorm0HE2 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE2");
3287 TH2F *mapdphinormHE2 = (TH2F *)mapdphinorm1HE2->Clone(
"mapdphinormHE2");
3288 mapdphinormHE2->Divide(mapdphinorm1HE2, mapdphinorm0HE2, 1, 1,
"B");
3289 TH2F *mapdphinorm1HE3 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE3");
3290 TH2F *mapdphinorm0HE3 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE3");
3291 TH2F *mapdphinormHE3 = (TH2F *)mapdphinorm1HE3->Clone(
"mapdphinormHE3");
3292 mapdphinormHE3->Divide(mapdphinorm1HE3, mapdphinorm0HE3, 1, 1,
"B");
3293 TH2F *mapdphinorm1HE4 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE4");
3294 TH2F *mapdphinorm0HE4 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE4");
3295 TH2F *mapdphinormHE4 = (TH2F *)mapdphinorm1HE4->Clone(
"mapdphinormHE4");
3296 mapdphinormHE4->Divide(mapdphinorm1HE4, mapdphinorm0HE4, 1, 1,
"B");
3297 TH2F *mapdphinorm1HE5 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE5");
3298 TH2F *mapdphinorm0HE5 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE5");
3299 TH2F *mapdphinormHE5 = (TH2F *)mapdphinorm1HE5->Clone(
"mapdphinormHE5");
3300 mapdphinormHE5->Divide(mapdphinorm1HE5, mapdphinorm0HE5, 1, 1,
"B");
3301 TH2F *mapdphinorm1HE6 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE6");
3302 TH2F *mapdphinorm0HE6 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE6");
3303 TH2F *mapdphinormHE6 = (TH2F *)mapdphinorm1HE6->Clone(
"mapdphinormHE6");
3304 mapdphinormHE6->Divide(mapdphinorm1HE6, mapdphinorm0HE6, 1, 1,
"B");
3305 TH2F *mapdphinorm1HE7 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm2_HE7");
3306 TH2F *mapdphinorm0HE7 = (TH2F *)dir->FindObjectAny(
"h_maprphinorm0_HE7");
3307 TH2F *mapdphinormHE7 = (TH2F *)mapdphinorm1HE7->Clone(
"mapdphinormHE7");
3308 mapdphinormHE7->Divide(mapdphinorm1HE7, mapdphinorm0HE7, 1, 1,
"B");
3309 cout <<
" Vaiance: preparation DONE *****" << endl;
3313 for (
int jeta = 0; jeta < njeta; jeta++) {
3314 for (
int jphi = 0; jphi < njphi; jphi++) {
3315 variance[0][jeta][jphi] =
3316 fabs(mapdphinormHE1->GetBinContent(jeta + 1, jphi + 1) - alexhe[0][jeta][jphi] * alexhe[0][jeta][jphi]);
3317 if (variance[0][jeta][jphi] < 0.00003)
3318 variance[0][jeta][jphi] = 0.000067;
3319 variance[1][jeta][jphi] =
3320 fabs(mapdphinormHE2->GetBinContent(jeta + 1, jphi + 1) - alexhe[1][jeta][jphi] * alexhe[1][jeta][jphi]);
3321 if (variance[1][jeta][jphi] < 0.00003)
3322 variance[1][jeta][jphi] = 0.000067;
3323 variance[2][jeta][jphi] =
3324 fabs(mapdphinormHE3->GetBinContent(jeta + 1, jphi + 1) - alexhe[2][jeta][jphi] * alexhe[2][jeta][jphi]);
3325 if (variance[2][jeta][jphi] < 0.00003)
3326 variance[2][jeta][jphi] = 0.000067;
3327 variance[3][jeta][jphi] =
3328 fabs(mapdphinormHE4->GetBinContent(jeta + 1, jphi + 1) - alexhe[3][jeta][jphi] * alexhe[3][jeta][jphi]);
3329 if (variance[3][jeta][jphi] < 0.00003)
3330 variance[3][jeta][jphi] = 0.000067;
3331 variance[4][jeta][jphi] =
3332 fabs(mapdphinormHE5->GetBinContent(jeta + 1, jphi + 1) - alexhe[4][jeta][jphi] * alexhe[4][jeta][jphi]);
3333 if (variance[4][jeta][jphi] < 0.00003)
3334 variance[4][jeta][jphi] = 0.000067;
3335 variance[5][jeta][jphi] =
3336 fabs(mapdphinormHE6->GetBinContent(jeta + 1, jphi + 1) - alexhe[5][jeta][jphi] * alexhe[5][jeta][jphi]);
3337 if (variance[5][jeta][jphi] < 0.00003)
3338 variance[5][jeta][jphi] = 0.000067;
3339 variance[6][jeta][jphi] =
3340 fabs(mapdphinormHE7->GetBinContent(jeta + 1, jphi + 1) - alexhe[6][jeta][jphi] * alexhe[6][jeta][jphi]);
3341 if (variance[6][jeta][jphi] < 0.00003)
3342 variance[6][jeta][jphi] = 0.000067;
3345 cout <<
" Vaiance: DONE*****" << endl;
3350 cout <<
" R2D-eta/phi-plot: D, averaged over depthes *****" << endl;
3355 TH2F *Defz42D =
new TH2F(
"Defz42D",
"", neta, -41., 41., nphi, 0., 72.);
3356 TH2F *Defz42D0 =
new TH2F(
"Defz42D0",
"", neta, -41., 41., nphi, 0., 72.);
3357 TH2F *Defz42DF = (TH2F *)Defz42D0->Clone(
"Defz42DF");
3359 for (
int jeta = 0; jeta <
neta; jeta++) {
3360 for (
int jphi = 0; jphi <
nphi; jphi++) {
3361 double ccc1 = variance[
i][jeta][jphi];
3362 int k2plot = jeta - 41;
3364 if (alexhe[
i][jeta][jphi] > 0.) {
3365 Defz42D->Fill(kkk, jphi, ccc1);
3366 Defz42D0->Fill(kkk, jphi, 1.);
3371 Defz42DF->Divide(Defz42D, Defz42D0, 1, 1,
"B");
3375 Defz42DF->SetMarkerStyle(20);
3376 Defz42DF->SetMarkerSize(0.4);
3377 Defz42DF->GetZaxis()->SetLabelSize(0.08);
3378 Defz42DF->SetXTitle(
"<D>_depth #eta \b");
3379 Defz42DF->SetYTitle(
" #phi \b");
3380 Defz42DF->SetZTitle(
"<D>_depth \b");
3381 Defz42DF->SetMarkerColor(2);
3382 Defz42DF->SetLineColor(0);
3383 Defz42DF->Draw(
"COLZ");
3386 c1x0->Print(
"Dhist2IterationMethodHE.png");
3398 cout <<
" 1D plot: D vs phi , averaged over depthes & eta *****" << endl;
3403 TH1F *Defz41D =
new TH1F(
"Defz41D",
"", nphi, 0., 72.);
3404 TH1F *Defz41D0 =
new TH1F(
"Defz41D0",
"", nphi, 0., 72.);
3405 TH1F *Defz41DF = (TH1F *)Defz41D0->Clone(
"Defz41DF");
3407 for (
int jeta = 0; jeta <
neta; jeta++) {
3409 for (
int jphi = 0; jphi <
nphi; jphi++) {
3410 if (jeta - 41 > 0) {
3412 double ccc1 = variance[
i][jeta][jphi];
3413 if (alexhe[
i][jeta][jphi] > 0.) {
3414 Defz41D->Fill(jphi, ccc1);
3415 Defz41D0->Fill(jphi, 1.);
3423 Defz41DF->Divide(Defz41D, Defz41D0, 1, 1,
"B");
3428 Defz41DF->SetMarkerStyle(20);
3429 Defz41DF->SetMarkerSize(1.4);
3430 Defz41DF->GetZaxis()->SetLabelSize(0.08);
3431 Defz41DF->SetXTitle(
"#phi \b");
3432 Defz41DF->SetYTitle(
" <D> \b");
3433 Defz41DF->SetZTitle(
"<D>_PHI - AllDepthes \b");
3434 Defz41DF->SetMarkerColor(4);
3435 Defz41DF->SetLineColor(4);
3436 Defz41DF->SetMinimum(0.8);
3437 Defz41DF->SetMinimum(-0.015);
3438 Defz41DF->Draw(
"Error");
3441 c1x1->Print(
"Dhist1IterationMethodHE.png");
3454 cout <<
" 1D plot: D vs phi , different eta, depth=1 *****" << endl;
3460 int kcountHEpositivedirectionD1 = 1;
3461 TH1F *h2CeffHEpositivedirectionD1 =
new TH1F(
"h2CeffHEpositivedirectionD1",
"", nphi, 0., 72.);
3463 for (
int jeta = 0; jeta < njeta; jeta++) {
3465 if (jeta - 41 > 0) {
3468 for (
int i = 0;
i < 1;
i++) {
3469 TH1F *HEpositivedirectionD1 = (TH1F *)h2CeffHEpositivedirectionD1->Clone(
"twod1");
3472 for (
int jphi = 0; jphi <
nphi; jphi++) {
3473 double ccc1 = variance[
i][jeta][jphi];
3474 if (alexhe[
i][jeta][jphi] > 0.) {
3475 HEpositivedirectionD1->Fill(jphi, ccc1);
3480 cout <<
"1414 kcountHEpositivedirectionD1 = " << kcountHEpositivedirectionD1
3481 <<
" jeta-41= " << jeta - 41 << endl;
3482 c3x5->cd(kcountHEpositivedirectionD1);
3483 HEpositivedirectionD1->SetMarkerStyle(20);
3484 HEpositivedirectionD1->SetMarkerSize(0.4);
3485 HEpositivedirectionD1->GetYaxis()->SetLabelSize(0.04);
3486 HEpositivedirectionD1->SetXTitle(
"HEpositivedirectionD1 \b");
3487 HEpositivedirectionD1->SetMarkerColor(2);
3488 HEpositivedirectionD1->SetLineColor(0);
3492 if (kcountHEpositivedirectionD1 == 1)
3493 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 18; depth = 1 \b");
3494 if (kcountHEpositivedirectionD1 == 2)
3495 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 19; depth = 1 \b");
3496 if (kcountHEpositivedirectionD1 == 3)
3497 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 20; depth = 1 \b");
3498 if (kcountHEpositivedirectionD1 == 4)
3499 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 21; depth = 1 \b");
3500 if (kcountHEpositivedirectionD1 == 5)
3501 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 22; depth = 1 \b");
3502 if (kcountHEpositivedirectionD1 == 6)
3503 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 23; depth = 1 \b");
3504 if (kcountHEpositivedirectionD1 == 7)
3505 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 24; depth = 1 \b");
3506 if (kcountHEpositivedirectionD1 == 8)
3507 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 25; depth = 1 \b");
3508 if (kcountHEpositivedirectionD1 == 9)
3509 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 26; depth = 1 \b");
3510 if (kcountHEpositivedirectionD1 == 10)
3511 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 27; depth = 1 \b");
3512 if (kcountHEpositivedirectionD1 == 11)
3513 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 28; depth = 1 \b");
3514 if (kcountHEpositivedirectionD1 == 12)
3515 HEpositivedirectionD1->SetXTitle(
"D for HE+ jeta = 29; depth = 1 \b");
3516 HEpositivedirectionD1->Draw(
"Error");
3517 kcountHEpositivedirectionD1++;
3518 if (kcountHEpositivedirectionD1 > 15)
3527 c3x5->Print(
"Dhist1IterationMethodDepth1HE.png");
3530 if (h2CeffHEpositivedirectionD1)
3531 delete h2CeffHEpositivedirectionD1;
3536 cout <<
" 1D plot: D vs phi , different eta, depth=2 *****" << endl;
3540 int kcountHEpositivedirectionD2 = 1;
3541 TH1F *h2CeffHEpositivedirectionD2 =
new TH1F(
"h2CeffHEpositivedirectionD2",
"", nphi, 0., 72.);
3543 for (
int jeta = 0; jeta < njeta; jeta++) {
3545 if (jeta - 41 > 0) {
3548 for (
int i = 1;
i < 2;
i++) {
3549 TH1F *HEpositivedirectionD2 = (TH1F *)h2CeffHEpositivedirectionD2->Clone(
"twod1");
3552 for (
int jphi = 0; jphi <
nphi; jphi++) {
3553 double ccc1 = variance[
i][jeta][jphi];
3554 if (alexhe[
i][jeta][jphi] > 0.) {
3555 HEpositivedirectionD2->Fill(jphi, ccc1);
3560 cout <<
"1515 kcountHEpositivedirectionD2 = " << kcountHEpositivedirectionD2
3561 <<
" jeta-41= " << jeta - 41 << endl;
3562 c3x5->cd(kcountHEpositivedirectionD2);
3563 HEpositivedirectionD2->SetMarkerStyle(20);
3564 HEpositivedirectionD2->SetMarkerSize(0.4);
3565 HEpositivedirectionD2->GetYaxis()->SetLabelSize(0.04);
3566 HEpositivedirectionD2->SetXTitle(
"HEpositivedirectionD2 \b");
3567 HEpositivedirectionD2->SetMarkerColor(2);
3568 HEpositivedirectionD2->SetLineColor(0);
3572 if (kcountHEpositivedirectionD2 == 1)
3573 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 17; depth = 2 \b");
3574 if (kcountHEpositivedirectionD2 == 2)
3575 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 18; depth = 2 \b");
3576 if (kcountHEpositivedirectionD2 == 3)
3577 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 19; depth = 2 \b");
3578 if (kcountHEpositivedirectionD2 == 4)
3579 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 20; depth = 2 \b");
3580 if (kcountHEpositivedirectionD2 == 5)
3581 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 21; depth = 2 \b");
3582 if (kcountHEpositivedirectionD2 == 6)
3583 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 22; depth = 2 \b");
3584 if (kcountHEpositivedirectionD2 == 7)
3585 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 23; depth = 2 \b");
3586 if (kcountHEpositivedirectionD2 == 8)
3587 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 24; depth = 2 \b");
3588 if (kcountHEpositivedirectionD2 == 9)
3589 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 25; depth = 2 \b");
3590 if (kcountHEpositivedirectionD2 == 10)
3591 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 26; depth = 2 \b");
3592 if (kcountHEpositivedirectionD2 == 11)
3593 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 27; depth = 2 \b");
3594 if (kcountHEpositivedirectionD2 == 12)
3595 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 28; depth = 2 \b");
3596 if (kcountHEpositivedirectionD2 == 13)
3597 HEpositivedirectionD2->SetXTitle(
"D for HE+ jeta = 29; depth = 2 \b");
3598 HEpositivedirectionD2->Draw(
"Error");
3599 kcountHEpositivedirectionD2++;
3600 if (kcountHEpositivedirectionD2 > 15)
3609 c3x5->Print(
"Dhist1IterationMethodDepth2HE.png");
3612 if (h2CeffHEpositivedirectionD2)
3613 delete h2CeffHEpositivedirectionD2;
3618 cout <<
" 1D plot: D vs phi , different eta, depth=3 *****" << endl;
3622 int kcountHEpositivedirectionD3 = 1;
3623 TH1F *h2CeffHEpositivedirectionD3 =
new TH1F(
"h2CeffHEpositivedirectionD3",
"", nphi, 0., 72.);
3625 for (
int jeta = 0; jeta < njeta; jeta++) {
3627 if (jeta - 41 > 0) {
3630 for (
int i = 2;
i < 3;
i++) {
3631 TH1F *HEpositivedirectionD3 = (TH1F *)h2CeffHEpositivedirectionD3->Clone(
"twod1");
3634 for (
int jphi = 0; jphi <
nphi; jphi++) {
3635 double ccc1 = variance[
i][jeta][jphi];
3636 if (alexhe[
i][jeta][jphi] > 0.) {
3637 HEpositivedirectionD3->Fill(jphi, ccc1);
3642 cout <<
"1616 kcountHEpositivedirectionD3 = " << kcountHEpositivedirectionD3
3643 <<
" jeta-41= " << jeta - 41 << endl;
3644 c3x5->cd(kcountHEpositivedirectionD3);
3645 HEpositivedirectionD3->SetMarkerStyle(20);
3646 HEpositivedirectionD3->SetMarkerSize(0.4);
3647 HEpositivedirectionD3->GetYaxis()->SetLabelSize(0.04);
3648 HEpositivedirectionD3->SetXTitle(
"HEpositivedirectionD3 \b");
3649 HEpositivedirectionD3->SetMarkerColor(2);
3650 HEpositivedirectionD3->SetLineColor(0);
3654 if (kcountHEpositivedirectionD3 == 1)
3655 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 17; depth = 3 \b");
3656 if (kcountHEpositivedirectionD3 == 2)
3657 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 18; depth = 3 \b");
3658 if (kcountHEpositivedirectionD3 == 3)
3659 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 19; depth = 3 \b");
3660 if (kcountHEpositivedirectionD3 == 4)
3661 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 20; depth = 3 \b");
3662 if (kcountHEpositivedirectionD3 == 5)
3663 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 21; depth = 3 \b");
3664 if (kcountHEpositivedirectionD3 == 6)
3665 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 22; depth = 3 \b");
3666 if (kcountHEpositivedirectionD3 == 7)
3667 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 23; depth = 3 \b");
3668 if (kcountHEpositivedirectionD3 == 8)
3669 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 24; depth = 3 \b");
3670 if (kcountHEpositivedirectionD3 == 9)
3671 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 25; depth = 3 \b");
3672 if (kcountHEpositivedirectionD3 == 10)
3673 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 26; depth = 3 \b");
3674 if (kcountHEpositivedirectionD3 == 11)
3675 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 27; depth = 3 \b");
3676 if (kcountHEpositivedirectionD3 == 12)
3677 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 28; depth = 3 \b");
3678 if (kcountHEpositivedirectionD3 == 13)
3679 HEpositivedirectionD3->SetXTitle(
"D for HE+ jeta = 29; depth = 3 \b");
3680 HEpositivedirectionD3->Draw(
"Error");
3681 kcountHEpositivedirectionD3++;
3682 if (kcountHEpositivedirectionD3 > 15)
3691 c3x5->Print(
"Dhist1IterationMethodDepth3HE.png");
3694 if (h2CeffHEpositivedirectionD3)
3695 delete h2CeffHEpositivedirectionD3;
3700 cout <<
" 1D plot: D vs phi , different eta, depth=4 *****" << endl;
3704 int kcountHEpositivedirectionD4 = 1;
3705 TH1F *h2CeffHEpositivedirectionD4 =
new TH1F(
"h2CeffHEpositivedirectionD4",
"", nphi, 0., 72.);
3707 for (
int jeta = 0; jeta < njeta; jeta++) {
3709 if (jeta - 41 > 0) {
3712 for (
int i = 3;
i < 4;
i++) {
3713 TH1F *HEpositivedirectionD4 = (TH1F *)h2CeffHEpositivedirectionD4->Clone(
"twod1");
3716 for (
int jphi = 0; jphi <
nphi; jphi++) {
3717 double ccc1 = variance[
i][jeta][jphi];
3718 if (alexhe[
i][jeta][jphi] > 0.) {
3719 HEpositivedirectionD4->Fill(jphi, ccc1);
3724 cout <<
"1717 kcountHEpositivedirectionD4 = " << kcountHEpositivedirectionD4
3725 <<
" jeta-41= " << jeta - 41 << endl;
3726 c3x5->cd(kcountHEpositivedirectionD4);
3727 HEpositivedirectionD4->SetMarkerStyle(20);
3728 HEpositivedirectionD4->SetMarkerSize(0.4);
3729 HEpositivedirectionD4->GetYaxis()->SetLabelSize(0.04);
3730 HEpositivedirectionD4->SetXTitle(
"HEpositivedirectionD4 \b");
3731 HEpositivedirectionD4->SetMarkerColor(2);
3732 HEpositivedirectionD4->SetLineColor(0);
3736 if (kcountHEpositivedirectionD4 == 1)
3737 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 16; depth = 4 \b");
3738 if (kcountHEpositivedirectionD4 == 2)
3739 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 18; depth = 4 \b");
3740 if (kcountHEpositivedirectionD4 == 3)
3741 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 19; depth = 4 \b");
3742 if (kcountHEpositivedirectionD4 == 4)
3743 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 20; depth = 4 \b");
3744 if (kcountHEpositivedirectionD4 == 5)
3745 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 21; depth = 4 \b");
3746 if (kcountHEpositivedirectionD4 == 6)
3747 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 22; depth = 4 \b");
3748 if (kcountHEpositivedirectionD4 == 7)
3749 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 23; depth = 4 \b");
3750 if (kcountHEpositivedirectionD4 == 8)
3751 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 24; depth = 4 \b");
3752 if (kcountHEpositivedirectionD4 == 9)
3753 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 25; depth = 4 \b");
3754 if (kcountHEpositivedirectionD4 == 10)
3755 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 26; depth = 4 \b");
3756 if (kcountHEpositivedirectionD4 == 11)
3757 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 27; depth = 4 \b");
3758 if (kcountHEpositivedirectionD4 == 12)
3759 HEpositivedirectionD4->SetXTitle(
"D for HE+ jeta = 28; depth = 4 \b");
3760 HEpositivedirectionD4->Draw(
"Error");
3761 kcountHEpositivedirectionD4++;
3762 if (kcountHEpositivedirectionD4 > 15)
3771 c3x5->Print(
"Dhist1IterationMethodDepth4HE.png");
3774 if (h2CeffHEpositivedirectionD4)
3775 delete h2CeffHEpositivedirectionD4;
3780 cout <<
" 1D plot: D vs phi , different eta, depth=5 *****" << endl;
3784 int kcountHEpositivedirectionD5 = 1;
3785 TH1F *h2CeffHEpositivedirectionD5 =
new TH1F(
"h2CeffHEpositivedirectionD5",
"", nphi, 0., 72.);
3787 for (
int jeta = 0; jeta < njeta; jeta++) {
3789 if (jeta - 41 > 0) {
3792 for (
int i = 4;
i < 5;
i++) {
3793 TH1F *HEpositivedirectionD5 = (TH1F *)h2CeffHEpositivedirectionD5->Clone(
"twod1");
3796 for (
int jphi = 0; jphi <
nphi; jphi++) {
3797 double ccc1 = variance[
i][jeta][jphi];
3798 if (alexhe[
i][jeta][jphi] > 0.) {
3799 HEpositivedirectionD5->Fill(jphi, ccc1);
3804 cout <<
"1818 kcountHEpositivedirectionD5 = " << kcountHEpositivedirectionD5
3805 <<
" jeta-41= " << jeta - 41 << endl;
3806 c3x5->cd(kcountHEpositivedirectionD5);
3807 HEpositivedirectionD5->SetMarkerStyle(20);
3808 HEpositivedirectionD5->SetMarkerSize(0.4);
3809 HEpositivedirectionD5->GetYaxis()->SetLabelSize(0.04);
3810 HEpositivedirectionD5->SetXTitle(
"HEpositivedirectionD5 \b");
3811 HEpositivedirectionD5->SetMarkerColor(2);
3812 HEpositivedirectionD5->SetLineColor(0);
3816 if (kcountHEpositivedirectionD5 == 1)
3817 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 18; depth = 5 \b");
3818 if (kcountHEpositivedirectionD5 == 2)
3819 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 19; depth = 5 \b");
3820 if (kcountHEpositivedirectionD5 == 3)
3821 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 20; depth = 5 \b");
3822 if (kcountHEpositivedirectionD5 == 4)
3823 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 21; depth = 5 \b");
3824 if (kcountHEpositivedirectionD5 == 5)
3825 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 22; depth = 5 \b");
3826 if (kcountHEpositivedirectionD5 == 6)
3827 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 23; depth = 5 \b");
3828 if (kcountHEpositivedirectionD5 == 7)
3829 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 24; depth = 5 \b");
3830 if (kcountHEpositivedirectionD5 == 8)
3831 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 25; depth = 5 \b");
3832 if (kcountHEpositivedirectionD5 == 9)
3833 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 26; depth = 5 \b");
3834 if (kcountHEpositivedirectionD5 == 10)
3835 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 27; depth = 5 \b");
3836 if (kcountHEpositivedirectionD5 == 11)
3837 HEpositivedirectionD5->SetXTitle(
"D for HE+ jeta = 28; depth = 5 \b");
3838 HEpositivedirectionD5->Draw(
"Error");
3839 kcountHEpositivedirectionD5++;
3840 if (kcountHEpositivedirectionD5 > 15)
3849 c3x5->Print(
"Dhist1IterationMethodDepth5HE.png");
3852 if (h2CeffHEpositivedirectionD5)
3853 delete h2CeffHEpositivedirectionD5;
3858 cout <<
" 1D plot: D vs phi , different eta, depth=6 *****" << endl;
3862 int kcountHEpositivedirectionD6 = 1;
3863 TH1F *h2CeffHEpositivedirectionD6 =
new TH1F(
"h2CeffHEpositivedirectionD6",
"", nphi, 0., 72.);
3865 for (
int jeta = 0; jeta < njeta; jeta++) {
3867 if (jeta - 41 > 0) {
3870 for (
int i = 5;
i < 6;
i++) {
3871 TH1F *HEpositivedirectionD6 = (TH1F *)h2CeffHEpositivedirectionD6->Clone(
"twod1");
3874 for (
int jphi = 0; jphi <
nphi; jphi++) {
3875 double ccc1 = variance[
i][jeta][jphi];
3876 if (alexhe[
i][jeta][jphi] > 0.) {
3877 HEpositivedirectionD6->Fill(jphi, ccc1);
3882 cout <<
"1919 kcountHEpositivedirectionD6 = " << kcountHEpositivedirectionD6
3883 <<
" jeta-41= " << jeta - 41 << endl;
3884 c3x5->cd(kcountHEpositivedirectionD6);
3885 HEpositivedirectionD6->SetMarkerStyle(20);
3886 HEpositivedirectionD6->SetMarkerSize(0.4);
3887 HEpositivedirectionD6->GetYaxis()->SetLabelSize(0.04);
3888 HEpositivedirectionD6->SetXTitle(
"HEpositivedirectionD6 \b");
3889 HEpositivedirectionD6->SetMarkerColor(2);
3890 HEpositivedirectionD6->SetLineColor(0);
3894 if (kcountHEpositivedirectionD6 == 1)
3895 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 19; depth = 6 \b");
3896 if (kcountHEpositivedirectionD6 == 2)
3897 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 20; depth = 6 \b");
3898 if (kcountHEpositivedirectionD6 == 3)
3899 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 21; depth = 6 \b");
3900 if (kcountHEpositivedirectionD6 == 4)
3901 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 22; depth = 6 \b");
3902 if (kcountHEpositivedirectionD6 == 5)
3903 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 23; depth = 6 \b");
3904 if (kcountHEpositivedirectionD6 == 6)
3905 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 24; depth = 6 \b");
3906 if (kcountHEpositivedirectionD6 == 7)
3907 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 25; depth = 6 \b");
3908 if (kcountHEpositivedirectionD6 == 8)
3909 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 26; depth = 6 \b");
3910 if (kcountHEpositivedirectionD6 == 9)
3911 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 27; depth = 6 \b");
3912 if (kcountHEpositivedirectionD6 == 10)
3913 HEpositivedirectionD6->SetXTitle(
"D for HE+ jeta = 28; depth = 6 \b");
3914 HEpositivedirectionD6->Draw(
"Error");
3915 kcountHEpositivedirectionD6++;
3916 if (kcountHEpositivedirectionD6 > 15)
3925 c3x5->Print(
"Dhist1IterationMethodDepth6HE.png");
3928 if (h2CeffHEpositivedirectionD6)
3929 delete h2CeffHEpositivedirectionD6;
3934 cout <<
" 1D plot: D vs phi , different eta, depth=7 *****" << endl;
3938 int kcountHEpositivedirectionD7 = 1;
3939 TH1F *h2CeffHEpositivedirectionD7 =
new TH1F(
"h2CeffHEpositivedirectionD7",
"", nphi, 0., 72.);
3941 for (
int jeta = 0; jeta < njeta; jeta++) {
3943 if (jeta - 41 > 0) {
3946 for (
int i = 6;
i < 7;
i++) {
3947 TH1F *HEpositivedirectionD7 = (TH1F *)h2CeffHEpositivedirectionD7->Clone(
"twod1");
3950 for (
int jphi = 0; jphi <
nphi; jphi++) {
3951 double ccc1 = variance[
i][jeta][jphi];
3952 if (alexhe[
i][jeta][jphi] > 0.) {
3953 HEpositivedirectionD7->Fill(jphi, ccc1);
3957 if (ccctest != 0.) {
3958 cout <<
"2020 kcountHEpositivedirectionD7 = " << kcountHEpositivedirectionD7
3959 <<
" jeta-41= " << jeta - 41 << endl;
3960 c3x5->cd(kcountHEpositivedirectionD7);
3961 HEpositivedirectionD7->SetMarkerStyle(20);
3962 HEpositivedirectionD7->SetMarkerSize(0.4);
3963 HEpositivedirectionD7->GetYaxis()->SetLabelSize(0.04);
3964 HEpositivedirectionD7->SetXTitle(
"HEpositivedirectionD7 \b");
3965 HEpositivedirectionD7->SetMarkerColor(2);
3966 HEpositivedirectionD7->SetLineColor(0);
3970 if (kcountHEpositivedirectionD7 == 1)
3971 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 26; depth = 7 \b");
3972 if (kcountHEpositivedirectionD7 == 2)
3973 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 27; depth = 7 \b");
3974 if (kcountHEpositivedirectionD7 == 3)
3975 HEpositivedirectionD7->SetXTitle(
"D for HE+ jeta = 28; depth = 7 \b");
3976 HEpositivedirectionD7->Draw(
"Error");
3977 kcountHEpositivedirectionD7++;
3978 if (kcountHEpositivedirectionD7 > 15)
3987 c3x5->Print(
"Dhist1IterationMethodDepth7HE.png");
3990 if (h2CeffHEpositivedirectionD7)
3991 delete h2CeffHEpositivedirectionD7;
4000 std::cout <<
" We are here to print 2017 MAPs " << std::endl;
4006 TH2F *Map_ALL =
new TH2F(
"Map_All",
"Map_all", 82, -41, 40, 72, 0, 71);
4007 int nx = Map_ALL->GetXaxis()->GetNbins();
4008 int ny = Map_ALL->GetYaxis()->GetNbins();
4014 int Eta[4][10000] = {0};
4015 int Phi[4][10000] = {0};
4016 int Sub[4][10000] = {0};
4017 int Depth[4][10000] = {0};
4018 string Comment[4][10000] = {
""};
4019 string Text[33] = {
"",
"Cm",
"Am",
"Wm",
"Rm",
"TNm",
"TXm",
"",
"",
"",
"",
"Cc",
"Ac",
"Wc",
"Rc",
"TNc",
"TXc",
4020 "",
"",
"",
"",
"GS",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"Pm",
"pWm"};
4025 for (
int i = 1;
i <= nx;
i++) {
4026 for (
int j = 1;
j <= ny;
j++) {
4027 for (
int sub = 1; sub <= 4; sub++) {
4031 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
4032 if (Map_SUB[sub][
k]->GetBinContent(
i,
j) != 0) {
4033 Map_SUB[sub][
k]->SetBinContent(
i,
j, 0.5);
4034 Map_ALL->SetBinContent(
i,
j, 0.5);
4041 for (
int i = 1;
i <= nx;
i++) {
4042 for (
int j = 1;
j <= ny;
j++) {
4043 for (
int sub = 1; sub <= 4; sub++) {
4047 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
4053 if (Map_Ampl[
test][sub][
k]->GetBinContent(
i,
j) >
4055 Map_ALL->SetBinContent(
i,
j, 1.);
4056 Map_SUB[sub][
k]->SetBinContent(
i,
j, 1.);
4059 Eta[2][NBad] =
i - 41;
4060 Phi[2][NBad] =
j - 1;
4063 Comment[2][NBad] = Text[
test];
4065 Comment[2][NBad] +=
", " + Text[
test];
4112 if (
abs(Map_Ampl[
test][sub][
k]->GetBinContent(
i,
j)) > porog[sub]) {
4113 if (Map_SUB[sub][
k]->GetBinContent(
i,
j) != 1.0)
4114 Map_SUB[sub][
k]->SetBinContent(
i,
j, 0.75);
4115 if (Map_ALL->GetBinContent(
i,
j) != 1.) {
4116 Map_ALL->SetBinContent(
i,
j, 0.75);
4119 Eta[1][NWarn] =
i - 41;
4120 Phi[1][NWarn] =
j - 1;
4121 Sub[1][NWarn] = sub;
4122 Depth[1][NWarn] =
k;
4123 Comment[1][NWarn] = Text[
test];
4125 Comment[1][NWarn] +=
", " + Text[
test];
4128 cout <<
"Map_Ampl[" <<
test <<
"][" << sub <<
"][" <<
k <<
"]->GetBinContent(" <<
i <<
"," <<
j
4129 <<
")= " << Map_Ampl[
test][sub][
k]->GetBinContent(
i,
j) << endl;
4136 if (Map_Ampl[
test][sub][
k]->GetBinContent(
i,
j) > 0.1) {
4141 Eta[3][NPed] =
i - 41;
4142 Phi[3][NPed] =
j - 1;
4145 Comment[3][NPed] = Text[
test];
4147 Comment[3][NPed] +=
", " + Text[
test];
4159 for (
int sub = 1; sub <= 4; sub++) {
4161 std::cout <<
" 2017 MAPS_SUB " << sub << std::endl;
4176 for (
int k = k_min[sub];
k <= k_max[sub];
k++) {
4190 sprintf(str,
"HB, Depth%d \b",
k);
4192 sprintf(str,
"HE, Depth%d \b",
k);
4194 sprintf(str,
"HO, Depth%d \b",
k);
4196 sprintf(str,
"HF, Depth%d \b",
k);
4197 Map_SUB[sub][
k]->SetTitle(str);
4198 Map_SUB[sub][
k]->SetXTitle(
"#eta \b");
4199 Map_SUB[sub][
k]->SetYTitle(
"#phi \b");
4200 Map_SUB[sub][
k]->Draw(
"COL");
4201 Map_SUB[sub][
k]->GetYaxis()->SetRangeUser(0, 72.);
4202 Map_SUB[sub][
k]->GetZaxis()->SetRangeUser(0., 1.);
4221 cHB->Print(
"MAPHB.png");
4225 cHE->Print(
"MAPHE.png");
4229 cONE->Print(
"MAPHO.png");
4233 cHF->Print(
"MAPHF.png");
4240 TCanvas *cmain1 =
new TCanvas(
"cmain1",
"MAP", 250, 10, 1450, 1410);
4241 cmain1->Divide(2, 2);
4244 TH1F *JDBEYESJ0 = (TH1F *)dir->FindObjectAny(
"h_totalAmplitudeHBperEvent");
4245 JDBEYESJ0->SetStats(0);
4246 JDBEYESJ0->SetMarkerStyle(20);
4247 JDBEYESJ0->SetMarkerSize(0.8);
4248 JDBEYESJ0->GetYaxis()->SetLabelSize(0.04);
4249 JDBEYESJ0->SetXTitle(
"iEvent \b");
4250 JDBEYESJ0->SetYTitle(
"totalAmplitude perEvent \b");
4251 JDBEYESJ0->SetTitle(
"HB \b");
4252 JDBEYESJ0->SetMarkerColor(2);
4253 JDBEYESJ0->SetLineColor(1);
4254 JDBEYESJ0->SetMinimum(0.8);
4255 JDBEYESJ0->Draw(
"HIST same P0");
4258 TH1F *JDBEYESJ1 = (TH1F *)dir->FindObjectAny(
"h_totalAmplitudeHEperEvent");
4259 JDBEYESJ1->SetStats(0);
4260 JDBEYESJ1->SetMarkerStyle(20);
4261 JDBEYESJ1->SetMarkerSize(0.8);
4262 JDBEYESJ1->GetYaxis()->SetLabelSize(0.04);
4263 JDBEYESJ1->SetXTitle(
"iEvent \b");
4264 JDBEYESJ1->SetYTitle(
"totalAmplitude perEvent \b");
4265 JDBEYESJ1->SetTitle(
"HE \b");
4266 JDBEYESJ1->SetMarkerColor(2);
4267 JDBEYESJ1->SetLineColor(1);
4268 JDBEYESJ1->SetMinimum(0.8);
4269 JDBEYESJ1->Draw(
"HIST same P0");
4272 TH1F *JDBEYESJ2 = (TH1F *)dir->FindObjectAny(
"h_totalAmplitudeHFperEvent");
4273 JDBEYESJ2->SetStats(0);
4274 JDBEYESJ2->SetMarkerStyle(20);
4275 JDBEYESJ2->SetMarkerSize(0.8);
4276 JDBEYESJ2->GetYaxis()->SetLabelSize(0.04);
4277 JDBEYESJ2->SetXTitle(
"iEvent \b");
4278 JDBEYESJ2->SetYTitle(
"totalAmplitude perEvent \b");
4279 JDBEYESJ2->SetTitle(
"HF \b");
4280 JDBEYESJ2->SetMarkerColor(2);
4281 JDBEYESJ2->SetLineColor(1);
4282 JDBEYESJ2->SetMinimum(0.8);
4283 JDBEYESJ2->Draw(
"HIST same P0");
4286 TH1F *JDBEYESJ3 = (TH1F *)dir->FindObjectAny(
"h_totalAmplitudeHOperEvent");
4287 JDBEYESJ3->SetStats(0);
4288 JDBEYESJ3->SetMarkerStyle(20);
4289 JDBEYESJ3->SetMarkerSize(0.8);
4290 JDBEYESJ3->GetYaxis()->SetLabelSize(0.04);
4291 JDBEYESJ3->SetXTitle(
"iEvent \b");
4292 JDBEYESJ3->SetYTitle(
"totalAmplitude perEvent \b");
4293 JDBEYESJ3->SetTitle(
"HO \b");
4294 JDBEYESJ3->SetMarkerColor(2);
4295 JDBEYESJ3->SetLineColor(1);
4296 JDBEYESJ3->SetMinimum(0.8);
4297 JDBEYESJ3->Draw(
"HIST same P0");
4301 cmain1->Print(
"EVENTDEPENDENCE.png");
4303 std::cout <<
" EVENTDEPENDENCE " << std::endl;
4307 gStyle->SetOptTitle(0);
4308 TCanvas *cmain =
new TCanvas(
"cmain",
"MAP", 1000, 1000);
4313 Map_ALL->SetTitleOffset(1.3,
"Y");
4314 Map_ALL->SetXTitle(
"#eta \b");
4315 Map_ALL->SetYTitle(
"#phi \b");
4316 Map_ALL->Draw(
"COL");
4317 Map_ALL->GetYaxis()->SetRangeUser(0, 72.);
4318 Map_ALL->GetZaxis()->SetRangeUser(0, 1.);
4321 cmain->Print(
"MAP.png");
4323 std::cout <<
"******** MAP_ALL done" << std::endl;
4327 std::cout <<
"************ Start creating each test kind for each subdet html pages:" << std::endl;
4333 std::string raw_class, raw_class1, raw_class2, raw_class3;
4336 for (
int sub = 1; sub <= 4; sub++) {
4337 ofstream htmlFileT, htmlFileC, htmlFileD, htmlFileP, htmlFileS, htmlFileM;
4339 htmlFileT.open(
"HB_Tile.html");
4340 htmlFileC.open(
"HB_Calib.html");
4341 htmlFileD.open(
"HB_Drift.html");
4342 htmlFileP.open(
"HB_Pedestals.html");
4343 htmlFileS.open(
"HB_Shapes.html");
4346 htmlFileT.open(
"HE_Tile.html");
4347 htmlFileC.open(
"HE_Calib.html");
4348 htmlFileD.open(
"HE_Drift.html");
4349 htmlFileP.open(
"HE_Pedestals.html");
4350 htmlFileS.open(
"HE_Shapes.html");
4351 htmlFileM.open(
"HE_IterationMethod.html");
4354 htmlFileT.open(
"HO_Tile.html");
4355 htmlFileC.open(
"HO_Calib.html");
4356 htmlFileD.open(
"HO_Drift.html");
4357 htmlFileP.open(
"HO_Pedestals.html");
4358 htmlFileS.open(
"HO_Shapes.html");
4361 htmlFileT.open(
"HF_Tile.html");
4362 htmlFileC.open(
"HF_Calib.html");
4363 htmlFileD.open(
"HF_Drift.html");
4364 htmlFileP.open(
"HF_Pedestals.html");
4365 htmlFileS.open(
"HF_Shapes.html");
4369 htmlFileT <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4370 htmlFileT <<
"<head>" << std::endl;
4371 htmlFileT <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4372 htmlFileT <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4373 htmlFileT <<
"<style type=\"text/css\">" << std::endl;
4374 htmlFileT <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4376 htmlFileT <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4377 htmlFileT <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4378 "text-align: center;}"
4380 htmlFileT <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4381 htmlFileT <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4382 htmlFileT <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4383 htmlFileT <<
"</style>" << std::endl;
4384 htmlFileT <<
"<body>" << std::endl;
4387 htmlFileT <<
"<h1> Criteria for megatile channels for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4389 htmlFileT <<
"<h1> Criteria for megatile channels for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4391 htmlFileT <<
"<h1> Criteria for megatile channels for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4393 htmlFileT <<
"<h1> Criteria for megatile channels for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4394 htmlFileT <<
"<br>" << std::endl;
4398 htmlFileT <<
"<h2> 0. Entries for each channel.</h3>" << std::endl;
4399 htmlFileT <<
"<h3> 0.A. Entries in each channel for each depth.</h3>" << std::endl;
4400 htmlFileT <<
"<h4> Channel legend: color is rate of entries </h4>" << std::endl;
4402 htmlFileT <<
" <img src=\"MapRateEntryHB.png\" />" << std::endl;
4404 htmlFileT <<
" <img src=\"MapRateEntryHE.png\" />" << std::endl;
4406 htmlFileT <<
" <img src=\"MapRateEntryHO.png\" />" << std::endl;
4408 htmlFileT <<
" <img src=\"MapRateEntryHF.png\" />" << std::endl;
4409 htmlFileT <<
"<br>" << std::endl;
4412 htmlFileT <<
"<h2> 1. Cm criterion: CapID errors for each channel.</h3>" << std::endl;
4413 htmlFileT <<
"<h3> 1.A. Rate of CapId failures in each channel for each depth.</h3>" << std::endl;
4414 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4416 htmlFileT <<
" <img src=\"MapRateCapIDHB.png\" />" << std::endl;
4418 htmlFileT <<
" <img src=\"MapRateCapIDHE.png\" />" << std::endl;
4420 htmlFileT <<
" <img src=\"MapRateCapIDHO.png\" />" << std::endl;
4422 htmlFileT <<
" <img src=\"MapRateCapIDHF.png\" />" << std::endl;
4423 htmlFileT <<
"<br>" << std::endl;
4426 htmlFileT <<
"<h2> 2. Am criterion: ADC amplitude collected over all TSs(Full Amplitude) for each channel. </h3>"
4428 htmlFileT <<
"<h3> 2.A. Full ADC amplitude distribution over all events, channels and depths.</h3>" << std::endl;
4429 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[2][sub] <<
" correpond to bad ADC amplitude </h4>" << std::endl;
4431 htmlFileT <<
" <img src=\"HistAmplHB.png\" />" << std::endl;
4433 htmlFileT <<
" <img src=\"HistAmplHE.png\" />" << std::endl;
4435 htmlFileT <<
" <img src=\"HistAmplHO.png\" />" << std::endl;
4437 htmlFileT <<
" <img src=\"HistAmplHF.png\" />" << std::endl;
4438 htmlFileT <<
"<br>" << std::endl;
4439 htmlFileT <<
"<h3> 2.B. Rate of bad ADC amplitude (<" << MIN_M[2][sub] <<
") in each channel for each depth. </h3>"
4441 htmlFileT <<
"<h4> Channel legend: white - good, other colours - bad. </h4>" << std::endl;
4443 htmlFileT <<
" <img src=\"MapRateAmplHB.png\" />" << std::endl;
4445 htmlFileT <<
" <img src=\"MapRateAmplHE.png\" />" << std::endl;
4447 htmlFileT <<
" <img src=\"MapRateAmplHO.png\" />" << std::endl;
4449 htmlFileT <<
" <img src=\"MapRateAmplHF.png\" />" << std::endl;
4450 htmlFileT <<
"<br>" << std::endl;
4453 htmlFileT <<
"<h2> 3. Wm criterion: RMS (width) of ADC amplutude for each channel.</h3>" << std::endl;
4454 htmlFileT <<
"<h3> 3.A. RMS distribution over all events, channel and depth.</h3>" << std::endl;
4455 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[3][sub] <<
" and more " << MAX_M[3][sub]
4456 <<
" correpond to bad RMS </h4>" << std::endl;
4458 htmlFileT <<
" <img src=\"HistRMSHB.png\" />" << std::endl;
4460 htmlFileT <<
" <img src=\"HistRMSHE.png\" />" << std::endl;
4462 htmlFileT <<
" <img src=\"HistRMSHO.png\" />" << std::endl;
4464 htmlFileT <<
" <img src=\"HistRMSHF.png\" />" << std::endl;
4465 htmlFileT <<
"<br>" << std::endl;
4466 htmlFileT <<
"<h3> 3.B. Rate of bad RMS (<" << MIN_M[3][sub] <<
",>" << MAX_M[3][sub]
4467 <<
") in each channel for each depth.</h3>" << std::endl;
4468 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4470 htmlFileT <<
" <img src=\"MapRateRMSHB.png\" />" << std::endl;
4472 htmlFileT <<
" <img src=\"MapRateRMSHE.png\" />" << std::endl;
4474 htmlFileT <<
" <img src=\"MapRateRMSHO.png\" />" << std::endl;
4476 htmlFileT <<
" <img src=\"MapRateRMSHF.png\" />" << std::endl;
4477 htmlFileT <<
"<br>" << std::endl;
4480 htmlFileT <<
"<h2> 4. Rm criterion: Ratio ADC value sum over four near maximum (-2, -1, max, +1) TS to ADC value "
4481 "sum over all TS for each channel. </h3>"
4483 htmlFileT <<
"<h3> 4.A. Ratio distribution over all events, channels and depths.</h3>" << std::endl;
4484 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[4][sub] <<
" and more " << MAX_M[4][sub]
4485 <<
" correpond to bad ratio </h4>" << std::endl;
4487 htmlFileT <<
" <img src=\"Hist43TStoAllTSHB.png\" />" << std::endl;
4489 htmlFileT <<
" <img src=\"Hist43TStoAllTSHE.png\" />" << std::endl;
4491 htmlFileT <<
" <img src=\"Hist43TStoAllTSHO.png\" />" << std::endl;
4493 htmlFileT <<
" <img src=\"Hist43TStoAllTSHF.png\" />" << std::endl;
4494 htmlFileT <<
"<br>" << std::endl;
4495 htmlFileT <<
"<h3> 4.B. Rate of bad ratio (<" << MIN_M[4][sub] <<
", >" << MAX_M[4][sub]
4496 <<
") in each channel for each depth.</h3>" << std::endl;
4497 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4499 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHB.png\" />" << std::endl;
4501 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHE.png\" />" << std::endl;
4503 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHO.png\" />" << std::endl;
4505 htmlFileT <<
" <img src=\"MapRate43TStoAllTSHF.png\" />" << std::endl;
4506 htmlFileT <<
"<br>" << std::endl;
4509 htmlFileT <<
"<h2> 5. TNm criterion: Mean TS position for each channel.</h3>" << std::endl;
4510 htmlFileT <<
"<h3> 5.A. TN position distribution over all events, channels and depths.</h3>" << std::endl;
4511 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[5][sub] <<
" and more " << MAX_M[5][sub]
4512 <<
" correpond to bad mean position </h4>" << std::endl;
4514 htmlFileT <<
" <img src=\"HistMeanPosHB.png\" />" << std::endl;
4516 htmlFileT <<
" <img src=\"HistMeanPosHE.png\" />" << std::endl;
4518 htmlFileT <<
" <img src=\"HistMeanPosHO.png\" />" << std::endl;
4520 htmlFileT <<
" <img src=\"HistMeanPosHF.png\" />" << std::endl;
4521 htmlFileT <<
"<br>" << std::endl;
4522 htmlFileT <<
"<h3> 5.B. Rate of bad TN position (<" << MIN_M[5][sub] <<
", >" << MAX_M[5][sub]
4523 <<
") in each channel for each depth. </h3>" << std::endl;
4524 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4526 htmlFileT <<
" <img src=\"MapRateMeanPosHB.png\" />" << std::endl;
4528 htmlFileT <<
" <img src=\"MapRateMeanPosHE.png\" />" << std::endl;
4530 htmlFileT <<
" <img src=\"MapRateMeanPosHO.png\" />" << std::endl;
4532 htmlFileT <<
" <img src=\"MapRateMeanPosHF.png\" />" << std::endl;
4533 htmlFileT <<
"<br>" << std::endl;
4536 htmlFileT <<
"<h2> 6.TXm criterion: Maximum TS position for each channel.</h3>" << std::endl;
4537 htmlFileT <<
"<h3> 6.A. TX position distribution over all events, channel and depth.</h3>" << std::endl;
4538 htmlFileT <<
"<h4> Legend: Bins less " << MIN_M[6][sub] <<
" and more " << MAX_M[6][sub]
4539 <<
" correpond to bad position </h4>" << std::endl;
4541 htmlFileT <<
" <img src=\"HistMaxPosHB.png\" />" << std::endl;
4543 htmlFileT <<
" <img src=\"HistMaxPosHE.png\" />" << std::endl;
4545 htmlFileT <<
" <img src=\"HistMaxPosHO.png\" />" << std::endl;
4547 htmlFileT <<
" <img src=\"HistMaxPosHF.png\" />" << std::endl;
4548 htmlFileT <<
"<br>" << std::endl;
4549 htmlFileT <<
"<h3> 6.B. Rate of bad TX position (<" << MIN_M[6][sub] <<
", >" << MAX_M[6][sub]
4550 <<
") in each channel for each depth. </h3>" << std::endl;
4551 htmlFileT <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4553 htmlFileT <<
" <img src=\"MapRateMaxPosHB.png\" />" << std::endl;
4555 htmlFileT <<
" <img src=\"MapRateMaxPosHE.png\" />" << std::endl;
4557 htmlFileT <<
" <img src=\"MapRateMaxPosHO.png\" />" << std::endl;
4559 htmlFileT <<
" <img src=\"MapRateMaxPosHF.png\" />" << std::endl;
4560 htmlFileT <<
"<br>" << std::endl;
4562 htmlFileT <<
"</body> " << std::endl;
4563 htmlFileT <<
"</html> " << std::endl;
4567 htmlFileC <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4568 htmlFileC <<
"<head>" << std::endl;
4569 htmlFileC <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4570 htmlFileC <<
"<title> Raw Data Analyser </title>" << std::endl;
4571 htmlFileC <<
"<style type=\"text/css\">" << std::endl;
4572 htmlFileC <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4574 htmlFileC <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4575 htmlFileC <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4576 "text-align: center;}"
4578 htmlFileC <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4579 htmlFileC <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4580 htmlFileC <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4581 htmlFileC <<
"</style>" << std::endl;
4582 htmlFileC <<
"<body>" << std::endl;
4585 htmlFileC <<
"<h1> Criteria for calibration channels for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4587 htmlFileC <<
"<h1> Criteria for calibration channels for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4589 htmlFileC <<
"<h1> Criteria for calibration channels for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4591 htmlFileC <<
"<h1> Criteria for calibration channels for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4592 htmlFileC <<
"<br>" << std::endl;
4596 htmlFileC <<
"<h2> 0. Entries for each channel.</h3>" << std::endl;
4597 htmlFileC <<
"<h3> 0.A. Entries in each channel for each depth.</h3>" << std::endl;
4598 htmlFileC <<
"<h4> Channel legend: color is rate of entries </h4>" << std::endl;
4600 htmlFileC <<
" <img src=\"MapRateCalibEntryHB.png\" />" << std::endl;
4602 htmlFileC <<
" <img src=\"MapRateCalibEntryHE.png\" />" << std::endl;
4604 htmlFileC <<
" <img src=\"MapRateCalibEntryHO.png\" />" << std::endl;
4606 htmlFileC <<
" <img src=\"MapRateCalibEntryHF.png\" />" << std::endl;
4607 htmlFileC <<
"<br>" << std::endl;
4610 htmlFileC <<
"<h2> 1. Cc criterion: CapID errors for each channel.</h3>" << std::endl;
4611 htmlFileC <<
"<h3> 1.A. Rate of CapId failures in each channel for each depth.</h3>" << std::endl;
4612 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4614 htmlFileC <<
" <img src=\"MapRateCapCalibHB.png\" />" << std::endl;
4616 htmlFileC <<
" <img src=\"MapRateCapCalibHE.png\" />" << std::endl;
4618 htmlFileC <<
" <img src=\"MapRateCapCalibHO.png\" />" << std::endl;
4620 htmlFileC <<
" <img src=\"MapRateCapCalibHF.png\" />" << std::endl;
4621 htmlFileC <<
"<br>" << std::endl;
4624 htmlFileC <<
"<h2> 2. Ac criterion: ADC amplitude collected over all TSs(Full Amplitude) for each channel. </h3>"
4626 htmlFileC <<
"<h3> 2.A. Full ADC amplitude distribution over all events, channels and depths.</h3>" << std::endl;
4627 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[2][sub] <<
" correpond to bad ADC amplitude </h4>" << std::endl;
4629 htmlFileC <<
" <img src=\"HistAmplCalibHB.png\" />" << std::endl;
4631 htmlFileC <<
" <img src=\"HistAmplCalibHE.png\" />" << std::endl;
4633 htmlFileC <<
" <img src=\"HistAmplCalibHO.png\" />" << std::endl;
4635 htmlFileC <<
" <img src=\"HistAmplCalibHF.png\" />" << std::endl;
4636 htmlFileC <<
"<br>" << std::endl;
4637 htmlFileC <<
"<h3> 2.B. Rate of bad ADC amplitude (<" << MIN_C[2][sub] <<
") in each channel for each depth. </h3>"
4639 htmlFileC <<
"<h4> Channel legend: white - good, other colours - bad. </h4>" << std::endl;
4641 htmlFileC <<
" <img src=\"MapRateAmplCalibHB.png\" />" << std::endl;
4643 htmlFileC <<
" <img src=\"MapRateAmplCalibHE.png\" />" << std::endl;
4645 htmlFileC <<
" <img src=\"MapRateAmplCalibHO.png\" />" << std::endl;
4647 htmlFileC <<
" <img src=\"MapRateAmplCalibHF.png\" />" << std::endl;
4648 htmlFileC <<
"<br>" << std::endl;
4651 htmlFileC <<
"<h2> 3. Wc criterion: RMS (width) of ADC amplutude for each channel.</h3>" << std::endl;
4652 htmlFileC <<
"<h3> 3.A. W distribution over all events, channel and depth.</h3>" << std::endl;
4653 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[3][sub] <<
" and more " << MAX_C[3][sub]
4654 <<
" correpond to bad RMS </h4>" << std::endl;
4656 htmlFileC <<
" <img src=\"HistRMSCalibHB.png\" />" << std::endl;
4658 htmlFileC <<
" <img src=\"HistRMSCalibHE.png\" />" << std::endl;
4660 htmlFileC <<
" <img src=\"HistRMSCalibHO.png\" />" << std::endl;
4662 htmlFileC <<
" <img src=\"HistRMSCalibHF.png\" />" << std::endl;
4663 htmlFileC <<
"<br>" << std::endl;
4664 htmlFileC <<
"<h3> 3.B. Rate of bad W (<" << MIN_C[3][sub] <<
",>" << MAX_C[3][sub]
4665 <<
") in each channel for each depth.</h3>" << std::endl;
4666 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4668 htmlFileC <<
" <img src=\"MapRateRMSCalibHB.png\" />" << std::endl;
4670 htmlFileC <<
" <img src=\"MapRateRMSCalibHE.png\" />" << std::endl;
4672 htmlFileC <<
" <img src=\"MapRateRMSCalibHO.png\" />" << std::endl;
4674 htmlFileC <<
" <img src=\"MapRateRMSCalibHF.png\" />" << std::endl;
4675 htmlFileC <<
"<br>" << std::endl;
4678 htmlFileC <<
"<h2> 4. Rc criterion: Ratio ADC value sum over five near maximum (-2, -1, max, +1, +2) TS to ADC "
4679 "value sum over all TS for each channel. </h3>"
4681 htmlFileC <<
"<h3> 4.A. Ratio distribution over all events, channels and depths.</h3>" << std::endl;
4682 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[4][sub] <<
" and more " << MAX_C[4][sub]
4683 <<
" correpond to bad ratio </h4>" << std::endl;
4685 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHB.png\" />" << std::endl;
4687 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHE.png\" />" << std::endl;
4689 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHO.png\" />" << std::endl;
4691 htmlFileC <<
" <img src=\"Hist43TStoAllTSCalibHF.png\" />" << std::endl;
4692 htmlFileC <<
"<br>" << std::endl;
4693 htmlFileC <<
"<h3> 4.B. Rate of bad Ratio (<" << MIN_C[4][sub] <<
", >" << MAX_C[4][sub]
4694 <<
") in each channel for each depth.</h3>" << std::endl;
4695 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4697 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHB.png\" />" << std::endl;
4699 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHE.png\" />" << std::endl;
4701 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHO.png\" />" << std::endl;
4703 htmlFileC <<
" <img src=\"MapRate43TStoAllTSCalibHF.png\" />" << std::endl;
4704 htmlFileC <<
"<br>" << std::endl;
4707 htmlFileC <<
"<h2> 5. TNc criterion: Mean TS position for each channel.</h3>" << std::endl;
4708 htmlFileC <<
"<h3> 5.A. TN position distribution over all events, channels and depths.</h3>" << std::endl;
4709 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[5][sub] <<
" and more " << MAX_C[5][sub]
4710 <<
" correpond to bad position </h4>" << std::endl;
4712 htmlFileC <<
" <img src=\"HistMeanPosCalibHB.png\" />" << std::endl;
4714 htmlFileC <<
" <img src=\"HistMeanPosCalibHE.png\" />" << std::endl;
4716 htmlFileC <<
" <img src=\"HistMeanPosCalibHO.png\" />" << std::endl;
4718 htmlFileC <<
" <img src=\"HistMeanPosCalibHF.png\" />" << std::endl;
4719 htmlFileC <<
"<br>" << std::endl;
4720 htmlFileC <<
"<h3> 5.B. Rate of bad TN position (<" << MIN_C[5][sub] <<
", >" << MAX_C[5][sub]
4721 <<
") in each channel for each depth. </h3>" << std::endl;
4722 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4724 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHB.png\" />" << std::endl;
4726 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHE.png\" />" << std::endl;
4728 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHO.png\" />" << std::endl;
4730 htmlFileC <<
" <img src=\"MapRateMeanPosCalibHF.png\" />" << std::endl;
4731 htmlFileC <<
"<br>" << std::endl;
4734 htmlFileC <<
"<h2> 6.TXc criterion: Maximum TS position for each channel.</h3>" << std::endl;
4735 htmlFileC <<
"<h3> 6.A. TX position distribution over all events, channel and depth.</h3>" << std::endl;
4736 htmlFileC <<
"<h4> Legend: Bins less " << MIN_C[6][sub] <<
" and more " << MAX_C[6][sub]
4737 <<
" correpond to bad position </h4>" << std::endl;
4739 htmlFileC <<
" <img src=\"HistMaxPosCalibHB.png\" />" << std::endl;
4741 htmlFileC <<
" <img src=\"HistMaxPosCalibHE.png\" />" << std::endl;
4743 htmlFileC <<
" <img src=\"HistMaxPosCalibHO.png\" />" << std::endl;
4745 htmlFileC <<
" <img src=\"HistMaxPosCalibHF.png\" />" << std::endl;
4746 htmlFileC <<
"<br>" << std::endl;
4747 htmlFileC <<
"<h3> 6.B. Rate of bad TX position (<" << MIN_C[6][sub] <<
", >" << MAX_C[6][sub]
4748 <<
") in each channel for each depth. </h3>" << std::endl;
4749 htmlFileC <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4751 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHB.png\" />" << std::endl;
4753 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHE.png\" />" << std::endl;
4755 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHO.png\" />" << std::endl;
4757 htmlFileC <<
" <img src=\"MapRateMaxPosCalibHF.png\" />" << std::endl;
4758 htmlFileC <<
"<br>" << std::endl;
4760 htmlFileC <<
"</body> " << std::endl;
4761 htmlFileC <<
"</html> " << std::endl;
4765 htmlFileD <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4766 htmlFileD <<
"<head>" << std::endl;
4767 htmlFileD <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4768 htmlFileD <<
"<title> Remore Monitoring Tool </title>" << std::endl;
4769 htmlFileD <<
"<style type=\"text/css\">" << std::endl;
4770 htmlFileD <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4772 htmlFileD <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4773 htmlFileD <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4774 "text-align: center;}"
4776 htmlFileD <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4777 htmlFileD <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4778 htmlFileD <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4779 htmlFileD <<
"</style>" << std::endl;
4780 htmlFileD <<
"<body>" << std::endl;
4783 htmlFileD <<
"<h1> Response drift for HB: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4784 <<
" </h1>" << std::endl;
4786 htmlFileD <<
"<h1> Response drift for HE: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4787 <<
" </h1>" << std::endl;
4789 htmlFileD <<
"<h1> Response drift for HO: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4790 <<
" </h1>" << std::endl;
4792 htmlFileD <<
"<h1> Response drift for HF: Current RUN = " << runnumber <<
", Reference RUN = " << refrunnumber
4793 <<
" </h1>" << std::endl;
4794 htmlFileD <<
"<br>" << std::endl;
4797 htmlFileD <<
"<h2> 1. Gain Stability (GS) </h3>" << std::endl;
4798 htmlFileD <<
"<h3> 1.A. Averaged channel response, collected over all TS, for Current run in each channel for each "
4801 htmlFileD <<
"<h4> Channel legend: colour means cooresponding value of mean response. </h4>" << std::endl;
4803 htmlFileD <<
" <img src=\"MapRateAmpl1HB.png\" />" << std::endl;
4805 htmlFileD <<
" <img src=\"MapRateAmpl1HE.png\" />" << std::endl;
4807 htmlFileD <<
" <img src=\"MapRateAmpl1HO.png\" />" << std::endl;
4809 htmlFileD <<
" <img src=\"MapRateAmpl1HF.png\" />" << std::endl;
4810 htmlFileD <<
"<br>" << std::endl;
4811 htmlFileD <<
"<h3> 1.B. Averaged channel response, collected over all TS, for Reference run in each channel for "
4814 htmlFileD <<
"<h4> Channel legend: colour means cooresponding value of mean response. </h4>" << std::endl;
4816 htmlFileD <<
" <img src=\"MapRateAmpl2HB.png\" />" << std::endl;
4818 htmlFileD <<
" <img src=\"MapRateAmpl2HE.png\" />" << std::endl;
4820 htmlFileD <<
" <img src=\"MapRateAmpl2HO.png\" />" << std::endl;
4822 htmlFileD <<
" <img src=\"MapRateAmpl2HF.png\" />" << std::endl;
4823 htmlFileD <<
"<br>" << std::endl;
4824 htmlFileD <<
"<h3> 1.C. Relative difference between Current and Reference run distribution over all events, "
4825 "channels for each depth.</h3>"
4827 htmlFileD <<
"<h4> Legend: Bins less -" << porog[sub] <<
"% and more +" << porog[sub]
4828 <<
"% correpond to bad relative difference position </h4>" << std::endl;
4830 htmlFileD <<
" <img src=\"HistAmplDriftDepthHB.png\" />" << std::endl;
4832 htmlFileD <<
" <img src=\"HistAmplDriftDepthHE.png\" />" << std::endl;
4834 htmlFileD <<
" <img src=\"HistAmplDriftDepthHO.png\" />" << std::endl;
4836 htmlFileD <<
" <img src=\"HistAmplDriftDepthHF.png\" />" << std::endl;
4837 htmlFileD <<
"<br>" << std::endl;
4838 htmlFileD <<
"<h3> 1.D. Rate of bad relative difference (<-" << porog[sub] <<
", >+" << porog[sub]
4839 <<
") in each channel for each depth.</h3>" << std::endl;
4840 htmlFileD <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4842 htmlFileD <<
" <img src=\"MapRateAmplDriftHB.png\" />" << std::endl;
4844 htmlFileD <<
" <img src=\"MapRateAmplDriftHE.png\" />" << std::endl;
4846 htmlFileD <<
" <img src=\"MapRateAmplDriftHO.png\" />" << std::endl;
4848 htmlFileD <<
" <img src=\"MapRateAmplDriftHF.png\" />" << std::endl;
4849 htmlFileD <<
"<br>" << std::endl;
4851 htmlFileD <<
"</body> " << std::endl;
4852 htmlFileD <<
"</html> " << std::endl;
4856 htmlFileP <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4857 htmlFileP <<
"<head>" << std::endl;
4858 htmlFileP <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4859 htmlFileP <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4860 htmlFileP <<
"<style type=\"text/css\">" << std::endl;
4861 htmlFileP <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4863 htmlFileP <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4864 htmlFileP <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4865 "text-align: center;}"
4867 htmlFileP <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4868 htmlFileP <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4869 htmlFileP <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4870 htmlFileP <<
"</style>" << std::endl;
4871 htmlFileP <<
"<body>" << std::endl;
4874 htmlFileP <<
"<h1> Pedestals for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4876 htmlFileP <<
"<h1> Pedestals for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4878 htmlFileP <<
"<h1> Pedestals for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4880 htmlFileP <<
"<h1> Pedestals for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4881 htmlFileP <<
"<br>" << std::endl;
4884 htmlFileP <<
"<h2> 1.Pm criterion: Pedestals for each CapID .</h3>" << std::endl;
4885 htmlFileP <<
"<h3> 1.A. Pedestal distribution over all events, channels for each CapID and all depths.</h3>"
4887 htmlFileP <<
"<h4> Legend: Bins less " << Pedest[0][sub] <<
" correpond to bad Pedestals </h4>" << std::endl;
4889 htmlFileP <<
" <img src=\"HistPedestalsHB.png\" />" << std::endl;
4891 htmlFileP <<
" <img src=\"HistPedestalsHE.png\" />" << std::endl;
4893 htmlFileP <<
" <img src=\"HistPedestalsHO.png\" />" << std::endl;
4895 htmlFileP <<
" <img src=\"HistPedestalsHF.png\" />" << std::endl;
4896 htmlFileP <<
"<br>" << std::endl;
4897 htmlFileP <<
"<h3> 1.B. Rate of channels at very low Pedestals at least in one CapID for each depth.</h3>"
4899 htmlFileP <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4901 htmlFileP <<
" <img src=\"MapRatePedHB.png\" />" << std::endl;
4903 htmlFileP <<
" <img src=\"MapRatePedHE.png\" />" << std::endl;
4905 htmlFileP <<
" <img src=\"MapRatePedHO.png\" />" << std::endl;
4907 htmlFileP <<
" <img src=\"MapRatePedHF.png\" />" << std::endl;
4910 htmlFileP <<
"<h2> 2.pWm criterion: Pedestal Widths for each CapID .</h3>" << std::endl;
4911 htmlFileP <<
"<h3> 2.A. Pedestal Widths distribution over all events, channels for each CapID and all depths.</h3>"
4913 htmlFileP <<
"<h4> Legend: Bins less " << Pedest[1][sub] <<
" correpond to bad Pedestal Widths </h4>" << std::endl;
4915 htmlFileP <<
" <img src=\"HistPedestalWidthsHB.png\" />" << std::endl;
4917 htmlFileP <<
" <img src=\"HistPedestalWidthsHE.png\" />" << std::endl;
4919 htmlFileP <<
" <img src=\"HistPedestalWidthsHO.png\" />" << std::endl;
4921 htmlFileP <<
" <img src=\"HistPedestalWidthsHF.png\" />" << std::endl;
4922 htmlFileP <<
"<br>" << std::endl;
4923 htmlFileP <<
"<h3> 2.B. Rate of channels at very low Pedestal Widths at least in one CapID for each depth.</h3>"
4925 htmlFileP <<
"<h4> Channel legend: white - good, other colour - bad. </h4>" << std::endl;
4927 htmlFileP <<
" <img src=\"MapRatePedWidthsHB.png\" />" << std::endl;
4929 htmlFileP <<
" <img src=\"MapRatePedWidthsHE.png\" />" << std::endl;
4931 htmlFileP <<
" <img src=\"MapRatePedWidthsHO.png\" />" << std::endl;
4933 htmlFileP <<
" <img src=\"MapRatePedWidthsHF.png\" />" << std::endl;
4936 htmlFileP <<
"<h2> 3.Pedestal and pedestalWidths vs Amplitude .</h3>" << std::endl;
4937 htmlFileP <<
"<h3> 3.A. Correlation of Pedestal(pedestalWidths) and Amplitude over all channels and events .</h3>"
4939 htmlFileP <<
"<h4> Legend: colour - entries </h4>" << std::endl;
4941 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHB.png\" />" << std::endl;
4943 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHE.png\" />" << std::endl;
4945 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHO.png\" />" << std::endl;
4947 htmlFileP <<
"<img src=\"CorrelationsMapPedestalVsfullAmplitudeHF.png\" />" << std::endl;
4948 htmlFileP <<
"<br>" << std::endl;
4953 htmlFileS <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
4954 htmlFileS <<
"<head>" << std::endl;
4955 htmlFileS <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
4956 htmlFileS <<
"<title> Remote Monitoring Tool </title>" << std::endl;
4957 htmlFileS <<
"<style type=\"text/css\">" << std::endl;
4958 htmlFileS <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
4960 htmlFileS <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
4961 htmlFileS <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
4962 "text-align: center;}"
4964 htmlFileS <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
4965 htmlFileS <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
4966 htmlFileS <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
4967 htmlFileS <<
"</style>" << std::endl;
4968 htmlFileS <<
"<body>" << std::endl;
4971 htmlFileS <<
"<h1> ADC Shape for HB, RUN = " << runnumber <<
" </h1>" << std::endl;
4973 htmlFileS <<
"<h1> ADC Shape for HE, RUN = " << runnumber <<
" </h1>" << std::endl;
4975 htmlFileS <<
"<h1> ADC Shape for HO, RUN = " << runnumber <<
" </h1>" << std::endl;
4977 htmlFileS <<
"<h1> ADC Shape for HF, RUN = " << runnumber <<
" </h1>" << std::endl;
4978 htmlFileS <<
"<br>" << std::endl;
4980 htmlFileS <<
"<h2> 1.Mean ADC Shape.</h3>" << std::endl;
4981 htmlFileS <<
"<h3> 1.A. ADC shape averaged over all good channels, depth and events.</h3>" << std::endl;
4984 htmlFileS <<
" <img src=\"HistGoodTSshapesHB.png\" />" << std::endl;
4986 htmlFileS <<
" <img src=\"HistGoodTSshapesHE.png\" />" << std::endl;
4988 htmlFileS <<
" <img src=\"HistGoodTSshapesHO.png\" />" << std::endl;
4990 htmlFileS <<
" <img src=\"HistGoodTSshapesHF.png\" />" << std::endl;
4991 htmlFileS <<
"<br>" << std::endl;
4992 htmlFileS <<
"<h3> 1.B. ADC shape averaged over all bad channels, depth and events. Bad channels are selected by 5 "
4993 "criteria: CapId, A, W, P, Pw </h3>"
4997 htmlFileS <<
" <img src=\"HistBadTSshapesHB.png\" />" << std::endl;
4999 htmlFileS <<
" <img src=\"HistBadTSshapesHE.png\" />" << std::endl;
5001 htmlFileS <<
" <img src=\"HistBadTSshapesHO.png\" />" << std::endl;
5003 htmlFileS <<
" <img src=\"HistBadTSshapesHF.png\" />" << std::endl;
5048 htmlFileM <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5049 htmlFileM <<
"<head>" << std::endl;
5050 htmlFileM <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5051 htmlFileM <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5052 htmlFileM <<
"<style type=\"text/css\">" << std::endl;
5053 htmlFileM <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5055 htmlFileM <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5056 htmlFileM <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5057 "text-align: center;}"
5059 htmlFileM <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5060 htmlFileM <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5061 htmlFileM <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5062 htmlFileM <<
"</style>" << std::endl;
5063 htmlFileM <<
"<body>" << std::endl;
5066 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HB, RUN = " << runnumber <<
" </h1>" << std::endl;
5068 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HE, RUN = " << runnumber <<
" </h1>" << std::endl;
5070 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HO, RUN = " << runnumber <<
" </h1>" << std::endl;
5072 htmlFileM <<
"<h1> Iteration Method for Calibration Group, HF, RUN = " << runnumber <<
" </h1>" << std::endl;
5073 htmlFileM <<
"<br>" << std::endl;
5075 htmlFileM <<
"<h2> 1: Positive direction, R = R_depth_ieta_iphi = E_depth_ieta_iphi/E_depth_ieta </h3>"
5078 htmlFileM <<
"<h3> 1.A. eta/phi-plot: R, averaged over depthes </h3>" << std::endl;
5081 htmlFileM <<
" <img src=\"Rhist2IterationMethodHB.png\" />" << std::endl;
5083 htmlFileM <<
" <img src=\"Rhist2IterationMethodHE.png\" />" << std::endl;
5085 htmlFileM <<
" <img src=\"Rhist2IterationMethodHO.png\" />" << std::endl;
5087 htmlFileM <<
" <img src=\"Rhist2IterationMethodHF.png\" />" << std::endl;
5088 htmlFileM <<
"<br>" << std::endl;
5090 htmlFileM <<
"<h3> 1B: R vs phi , averaged over depthes & eta </h3>" << std::endl;
5093 htmlFileM <<
" <img src=\"Rhist1IterationMethodHB.png\" />" << std::endl;
5095 htmlFileM <<
" <img src=\"Rhist1IterationMethodHE.png\" />" << std::endl;
5097 htmlFileM <<
" <img src=\"Rhist1IterationMethodHO.png\" />" << std::endl;
5099 htmlFileM <<
" <img src=\"Rhist1IterationMethodHF.png\" />" << std::endl;
5100 htmlFileM <<
"<br>" << std::endl;
5104 htmlFileM <<
"<h3> 1C: R vs phi , different eta, Depth1 </h3>" << std::endl;
5107 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HB.png\" />" << std::endl;
5109 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HE.png\" />" << std::endl;
5111 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth1HF.png\" />" << std::endl;
5112 htmlFileM <<
"<br>" << std::endl;
5114 htmlFileM <<
"<h3> 1D: R vs phi , different eta, Depth2 </h3>" << std::endl;
5117 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HB.png\" />" << std::endl;
5119 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HE.png\" />" << std::endl;
5121 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth2HF.png\" />" << std::endl;
5122 htmlFileM <<
"<br>" << std::endl;
5124 htmlFileM <<
"<h3> 1E: R vs phi , different eta, Depth3 </h3>" << std::endl;
5127 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HB.png\" />" << std::endl;
5129 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HE.png\" />" << std::endl;
5131 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth3HF.png\" />" << std::endl;
5132 htmlFileM <<
"<br>" << std::endl;
5134 htmlFileM <<
"<h3> 1F: R vs phi , different eta, Depth4 </h3>" << std::endl;
5137 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HB.png\" />" << std::endl;
5139 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HE.png\" />" << std::endl;
5141 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HO.png\" />" << std::endl;
5143 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth4HF.png\" />" << std::endl;
5144 htmlFileM <<
"<br>" << std::endl;
5146 htmlFileM <<
"<h3> 1G: R vs phi , different eta, Depth5 </h3>" << std::endl;
5149 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth5HE.png\" />" << std::endl;
5150 htmlFileM <<
"<br>" << std::endl;
5152 htmlFileM <<
"<h3> 1H: R vs phi , different eta, Depth6 </h3>" << std::endl;
5155 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth6HE.png\" />" << std::endl;
5156 htmlFileM <<
"<br>" << std::endl;
5158 htmlFileM <<
"<h3> 1I: R vs phi , different eta, Depth7 </h3>" << std::endl;
5161 htmlFileM <<
" <img src=\"Rhist1IterationMethodDepth7HE.png\" />" << std::endl;
5162 htmlFileM <<
"<br>" << std::endl;
5164 htmlFileM <<
"<h2> 2: Positive direction, D(variance) </h3>" << std::endl;
5166 htmlFileM <<
"<h3> 2A: eta/phi-plot: D(variance), averaged over depthes </h3>" << std::endl;
5169 htmlFileM <<
" <img src=\"Dhist2IterationMethodHB.png\" />" << std::endl;
5171 htmlFileM <<
" <img src=\"Dhist2IterationMethodHE.png\" />" << std::endl;
5173 htmlFileM <<
" <img src=\"Dhist2IterationMethodHO.png\" />" << std::endl;
5175 htmlFileM <<
" <img src=\"Dhist2IterationMethodHF.png\" />" << std::endl;
5176 htmlFileM <<
"<br>" << std::endl;
5178 htmlFileM <<
"<h3> 2B: D(variance) vs phi , averaged over depthes & eta </h3>" << std::endl;
5181 htmlFileM <<
" <img src=\"Dhist1IterationMethodHB.png\" />" << std::endl;
5183 htmlFileM <<
" <img src=\"Dhist1IterationMethodHE.png\" />" << std::endl;
5185 htmlFileM <<
" <img src=\"Dhist1IterationMethodHO.png\" />" << std::endl;
5187 htmlFileM <<
" <img src=\"Dhist1IterationMethodHF.png\" />" << std::endl;
5188 htmlFileM <<
"<br>" << std::endl;
5192 htmlFileM <<
"<h3> 2C: D(variance) vs phi , different eta, Depth1 </h3>" << std::endl;
5195 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HB.png\" />" << std::endl;
5197 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HE.png\" />" << std::endl;
5199 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth1HF.png\" />" << std::endl;
5200 htmlFileM <<
"<br>" << std::endl;
5202 htmlFileM <<
"<h3> 2.D. D(variance) vs phi , different eta, Depth2 </h3>" << std::endl;
5205 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HB.png\" />" << std::endl;
5207 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HE.png\" />" << std::endl;
5209 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth2HF.png\" />" << std::endl;
5210 htmlFileM <<
"<br>" << std::endl;
5212 htmlFileM <<
"<h3> 2E: D(variance) vs phi , different eta, Depth3 </h3>" << std::endl;
5215 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HB.png\" />" << std::endl;
5217 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HE.png\" />" << std::endl;
5219 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth3HF.png\" />" << std::endl;
5220 htmlFileM <<
"<br>" << std::endl;
5222 htmlFileM <<
"<h3> 2F: D(variance) vs phi , different eta, Depth4 </h3>" << std::endl;
5225 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HB.png\" />" << std::endl;
5227 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HE.png\" />" << std::endl;
5229 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HO.png\" />" << std::endl;
5231 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth4HF.png\" />" << std::endl;
5232 htmlFileM <<
"<br>" << std::endl;
5234 htmlFileM <<
"<h3> 2G: D(variance) vs phi , different eta, Depth5 </h3>" << std::endl;
5237 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth5HE.png\" />" << std::endl;
5238 htmlFileM <<
"<br>" << std::endl;
5240 htmlFileM <<
"<h3> 2H: D(variance) vs phi , different eta, Depth6 </h3>" << std::endl;
5243 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth6HE.png\" />" << std::endl;
5244 htmlFileM <<
"<br>" << std::endl;
5246 htmlFileM <<
"<h3> 2I: D(variance) vs phi , different eta, Depth7 </h3>" << std::endl;
5249 htmlFileM <<
" <img src=\"Dhist1IterationMethodDepth7HE.png\" />" << std::endl;
5250 htmlFileM <<
"<br>" << std::endl;
5262 std::cout <<
"************ Start creating subdet html pages: - rather long time needed, waiting please"
5267 for (
int sub = 1; sub <= 4; sub++) {
5270 htmlFile.open(
"HB.html");
5272 htmlFile.open(
"HE.html");
5274 htmlFile.open(
"HO.html");
5276 htmlFile.open(
"HF.html");
5278 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5279 htmlFile <<
"<head>" << std::endl;
5280 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5281 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5282 htmlFile <<
"<style type=\"text/css\">" << std::endl;
5283 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5285 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5286 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5287 "text-align: center;}"
5289 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5290 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5291 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5292 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #FF00FF; }" << std::endl;
5293 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #9ACD32; }" << std::endl;
5294 htmlFile <<
" td.s7 { font-family: arial, arial ce, helvetica; background-color: #32CD32; }" << std::endl;
5295 htmlFile <<
" td.s8 { font-family: arial, arial ce, helvetica; background-color: #00FFFF; }" << std::endl;
5296 htmlFile <<
" td.s9 { font-family: arial, arial ce, helvetica; background-color: #FFE4E1; }" << std::endl;
5297 htmlFile <<
" td.s10 { font-family: arial, arial ce, helvetica; background-color: #A0522D; }" << std::endl;
5298 htmlFile <<
" td.s11 { font-family: arial, arial ce, helvetica; background-color: #1E90FF; }" << std::endl;
5299 htmlFile <<
" td.s12 { font-family: arial, arial ce, helvetica; background-color: #00BFFF; }" << std::endl;
5300 htmlFile <<
" td.s13 { font-family: arial, arial ce, helvetica; background-color: #FFFF00; }" << std::endl;
5301 htmlFile <<
" td.s14 { font-family: arial, arial ce, helvetica; background-color: #B8860B; }" << std::endl;
5302 htmlFile <<
"</style>" << std::endl;
5303 htmlFile <<
"<body>" << std::endl;
5305 htmlFile <<
"<h1> HCAL BARREL, RUN = " << runnumber <<
" </h1>" << std::endl;
5307 htmlFile <<
"<h1> HCAL ENDCAP, RUN = " << runnumber <<
" </h1>" << std::endl;
5309 htmlFile <<
"<h1> HCAL OUTER, RUN = " << runnumber <<
" </h1>" << std::endl;
5311 htmlFile <<
"<h1> HCAL FORWARD, RUN = " << runnumber <<
" </h1>" << std::endl;
5312 htmlFile <<
"<br>" << std::endl;
5314 htmlFile <<
"<h2> 1. Analysis results for HB</h2>" << std::endl;
5316 htmlFile <<
"<h2> 1. Analysis results for HE</h2>" << std::endl;
5318 htmlFile <<
"<h2> 1. Analysis results for HO</h2>" << std::endl;
5320 htmlFile <<
"<h2> 1. Analysis results for HF</h2>" << std::endl;
5321 htmlFile <<
"<table width=\"600\">" << std::endl;
5322 htmlFile <<
"<tr>" << std::endl;
5333 htmlFile <<
" <td><a "
5334 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5335 "HcalRemoteMonitoring/RMT/LED_"
5336 << runnumber <<
"/HB_Tile.html\">Megatile Channels</a></td>" << std::endl;
5337 htmlFile <<
" <td><a "
5338 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5339 "HcalRemoteMonitoring/RMT/LED_"
5340 << runnumber <<
"/HB_Calib.html\">Calibration Channels</a></td>" << std::endl;
5341 htmlFile <<
" <td><a "
5342 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5343 "HcalRemoteMonitoring/RMT/LED_"
5344 << runnumber <<
"/HB_Drift.html\">Gain Stability</a></td>" << std::endl;
5345 htmlFile <<
" <td><a "
5346 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5347 "HcalRemoteMonitoring/RMT/LED_"
5348 << runnumber <<
"/HB_Pedestals.html\">Pedestals</a></td>" << std::endl;
5349 htmlFile <<
" <td><a "
5350 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5351 "HcalRemoteMonitoring/RMT/LED_"
5352 << runnumber <<
"/HB_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5364 htmlFile <<
" <td><a "
5365 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5366 "HcalRemoteMonitoring/RMT/LED_"
5367 << runnumber <<
"/HE_Tile.html\">Megatile Channels</a></td>" << std::endl;
5368 htmlFile <<
" <td><a "
5369 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5370 "HcalRemoteMonitoring/RMT/LED_"
5371 << runnumber <<
"/HE_Calib.html\">Calibration Channels</a></td>" << std::endl;
5372 htmlFile <<
" <td><a "
5373 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5374 "HcalRemoteMonitoring/RMT/LED_"
5375 << runnumber <<
"/HE_Drift.html\">Gain Stability</a></td>" << std::endl;
5376 htmlFile <<
" <td><a "
5377 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5378 "HcalRemoteMonitoring/RMT/LED_"
5379 << runnumber <<
"/HE_Pedestals.html\">Pedestals</a></td>" << std::endl;
5380 htmlFile <<
" <td><a "
5381 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5382 "HcalRemoteMonitoring/RMT/LED_"
5383 << runnumber <<
"/HE_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5384 htmlFile <<
" <td><a "
5385 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5386 "HcalRemoteMonitoring/RMT/LED_"
5387 << runnumber <<
"/HE_IterationMethod.html\">Iteration Method</a></td>" << std::endl;
5398 htmlFile <<
" <td><a "
5399 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5400 "HcalRemoteMonitoring/RMT/LED_"
5401 << runnumber <<
"/HO_Tile.html\">Megatile Channels</a></td>" << std::endl;
5402 htmlFile <<
" <td><a "
5403 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5404 "HcalRemoteMonitoring/RMT/LED_"
5405 << runnumber <<
"/HO_Calib.html\">Calibration Channels</a></td>" << std::endl;
5406 htmlFile <<
" <td><a "
5407 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5408 "HcalRemoteMonitoring/RMT/LED_"
5409 << runnumber <<
"/HO_Drift.html\">Gain Stability</a></td>" << std::endl;
5410 htmlFile <<
" <td><a "
5411 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5412 "HcalRemoteMonitoring/RMT/LED_"
5413 << runnumber <<
"/HO_Pedestals.html\">Pedestals</a></td>" << std::endl;
5414 htmlFile <<
" <td><a "
5415 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5416 "HcalRemoteMonitoring/RMT/LED_"
5417 << runnumber <<
"/HO_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5427 htmlFile <<
" <td><a "
5428 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5429 "HcalRemoteMonitoring/RMT/LED_"
5430 << runnumber <<
"/HF_Tile.html\">Megatile Channels</a></td>" << std::endl;
5431 htmlFile <<
" <td><a "
5432 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5433 "HcalRemoteMonitoring/RMT/LED_"
5434 << runnumber <<
"/HF_Calib.html\">Calibration Channels</a></td>" << std::endl;
5435 htmlFile <<
" <td><a "
5436 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5437 "HcalRemoteMonitoring/RMT/LED_"
5438 << runnumber <<
"/HF_Drift.html\">Gain Stability</a></td>" << std::endl;
5439 htmlFile <<
" <td><a "
5440 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5441 "HcalRemoteMonitoring/RMT/LED_"
5442 << runnumber <<
"/HF_Pedestals.html\">Pedestals</a></td>" << std::endl;
5443 htmlFile <<
" <td><a "
5444 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5445 "HcalRemoteMonitoring/RMT/LED_"
5446 << runnumber <<
"/HF_Shapes.html\">ADC Shapes</a></td>" << std::endl;
5449 htmlFile <<
"</tr>" << std::endl;
5450 htmlFile <<
"</table>" << std::endl;
5451 htmlFile <<
"<br>" << std::endl;
5453 htmlFile <<
"<h2> 2.Status HB over all criteria </h2>" << std::endl;
5455 htmlFile <<
"<h2> 2.Status HE over all criteria </h2>" << std::endl;
5457 htmlFile <<
"<h2> 2.Status HO over all criteria </h2>" << std::endl;
5459 htmlFile <<
"<h2> 2.Status HF over all criteria </h2>" << std::endl;
5460 htmlFile <<
"<h3> 2.A.Channel map for each Depth </h3>" << std::endl;
5461 htmlFile <<
"<h4> Channel legend: green - good, red - bad (rate of failures at least 0.1), yellow - at least 2% "
5462 "gain drift, white - not applicable or out of range </h4>"
5465 htmlFile <<
" <img src=\"MAPHB.png\" />" << std::endl;
5467 htmlFile <<
" <img src=\"MAPHE.png\" />" << std::endl;
5469 htmlFile <<
" <img src=\"MAPHO.png\" />" << std::endl;
5471 htmlFile <<
" <img src=\"MAPHF.png\" />" << std::endl;
5472 htmlFile <<
"<br>" << std::endl;
5474 htmlFile <<
"<h3> 2.B.List of Bad channels (rate > 0.1) and its rates for each RMT criteria (for GS - %) </h3>"
5478 htmlFile <<
" <td><a "
5479 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
5480 "HcalRemoteMonitoring/RMT/LED_"
5481 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
5483 htmlFile <<
"<table>" << std::endl;
5485 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5486 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5487 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5488 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5489 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5490 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5491 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5492 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5493 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5494 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5495 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5496 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5497 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5498 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5499 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5500 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5501 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5502 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5503 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5504 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5505 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5506 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5507 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5508 htmlFile <<
"<td class=\"s9\" align=\"center\">GS (%)</td>" << std::endl;
5509 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5510 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5511 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5512 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5513 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5514 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5515 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5516 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5518 htmlFile <<
"</tr>" << std::endl;
5520 for (
int i = 1;
i <= NBad;
i++) {
5521 if ((ind % 2) == 1) {
5522 raw_class =
"<td class=\"s2\" align=\"center\">";
5523 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5524 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5525 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5528 raw_class =
"<td class=\"s3\" align=\"center\">";
5529 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5530 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5531 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5535 if ((ce.
size() >= 1) && (Sub[2][
i] == sub)) {
5536 if (Sub[2][
i] == 1) {
5537 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5538 if (ce.
size() == 0) {
5541 }
else if (ce.
size() > 1) {
5542 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5543 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5546 if (Sub[2][
i] == 2) {
5547 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5548 if (ce.
size() == 0) {
5551 }
else if (ce.
size() > 1) {
5552 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5553 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5556 if (Sub[2][
i] == 3) {
5557 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5558 if (ce.
size() == 0) {
5561 }
else if (ce.
size() > 1) {
5562 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5563 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5566 if (Sub[2][
i] == 4) {
5567 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
5568 if (ce.
size() == 0) {
5571 }
else if (ce.
size() > 1) {
5572 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[2][
i] <<
", Phi=" << Phi[2][
i]
5573 <<
", Depth=" << Depth[2][
i] <<
" in database" << endl;
5576 htmlFile <<
"<tr>" << std::endl;
5577 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5578 htmlFile << raw_class << Eta[2][
i] <<
"</td>" << std::endl;
5579 htmlFile << raw_class << Phi[2][
i] <<
"</td>" << std::endl;
5580 htmlFile << raw_class << Depth[2][
i] <<
"</td>" << std::endl;
5581 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5582 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5583 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5584 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5585 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5586 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5587 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5588 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5589 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5590 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5591 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5592 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5593 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5594 htmlFile << raw_class1 << Map_Ampl[1][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5595 <<
"</td>" << std::endl;
5596 htmlFile << raw_class1 << Map_Ampl[2][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5597 <<
"</td>" << std::endl;
5598 htmlFile << raw_class1 << Map_Ampl[3][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5599 <<
"</td>" << std::endl;
5600 htmlFile << raw_class1 << Map_Ampl[4][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5601 <<
"</td>" << std::endl;
5602 htmlFile << raw_class1 << Map_Ampl[5][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5603 <<
"</td>" << std::endl;
5604 htmlFile << raw_class1 << Map_Ampl[6][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5605 <<
"</td>" << std::endl;
5606 htmlFile << raw_class3 << Map_Ampl[21][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5607 <<
"</td>" << std::endl;
5608 htmlFile << raw_class << Map_Ampl[31][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5609 <<
"</td>" << std::endl;
5610 htmlFile << raw_class << Map_Ampl[32][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5611 <<
"</td>" << std::endl;
5612 htmlFile << raw_class2 << Map_Ampl[11][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5613 <<
"</td>" << std::endl;
5614 htmlFile << raw_class2 << Map_Ampl[12][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5615 <<
"</td>" << std::endl;
5616 htmlFile << raw_class2 << Map_Ampl[13][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5617 <<
"</td>" << std::endl;
5618 htmlFile << raw_class2 << Map_Ampl[14][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5619 <<
"</td>" << std::endl;
5620 htmlFile << raw_class2 << Map_Ampl[15][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5621 <<
"</td>" << std::endl;
5622 htmlFile << raw_class2 << Map_Ampl[16][Sub[2][
i]][Depth[2][
i]]->GetBinContent(Eta[2][
i] + 41, Phi[2][
i] + 1)
5623 <<
"</td>" << std::endl;
5624 htmlFile <<
"</tr>" << std::endl;
5629 htmlFile <<
"</table>" << std::endl;
5630 htmlFile <<
"<br>" << std::endl;
5632 htmlFile <<
"<h3> 2.C.List of Gain unstable channels and its value in % (for other criterias - rate)</h3>"
5634 htmlFile <<
"<table>" << std::endl;
5636 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5637 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5638 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5639 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5640 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5641 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5642 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5643 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5644 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5645 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5646 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5647 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5648 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5649 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5650 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5651 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5652 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5653 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5654 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5655 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5656 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5657 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5658 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5659 htmlFile <<
"<td class=\"s9\" align=\"center\">GS(%)</td>" << std::endl;
5660 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5661 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5662 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5663 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5664 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5665 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5666 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5667 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5668 htmlFile <<
"</tr>" << std::endl;
5670 for (
int i = 1;
i <= NWarn;
i++) {
5671 if ((ind % 2) == 1) {
5672 raw_class =
"<td class=\"s2\" align=\"center\">";
5673 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5674 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5675 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5678 raw_class =
"<td class=\"s3\" align=\"center\">";
5679 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5680 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5681 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5685 if ((ce.
size() >= 1) && (Sub[1][
i] == sub)) {
5686 if (Sub[1][
i] == 1) {
5687 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[1][
i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5688 if (ce.
size() == 0) {
5691 }
else if (ce.
size() > 1) {
5692 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5693 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5696 if (Sub[1][
i] == 2) {
5697 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[1][
i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5698 if (ce.
size() == 0) {
5701 }
else if (ce.
size() > 1) {
5702 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5703 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5706 if (Sub[1][
i] == 3) {
5707 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[1][
i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5708 if (ce.
size() == 0) {
5711 }
else if (ce.
size() > 1) {
5712 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5713 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5716 if (Sub[1][
i] == 4) {
5717 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[1][
i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
5718 if (ce.
size() == 0) {
5721 }
else if (ce.
size() > 1) {
5722 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[1][
i] <<
", Phi=" << Phi[1][
i]
5723 <<
", Depth=" << Depth[1][
i] <<
" in database" << endl;
5726 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5727 htmlFile << raw_class << Eta[1][
i] <<
"</td>" << std::endl;
5728 htmlFile << raw_class << Phi[1][
i] <<
"</td>" << std::endl;
5729 htmlFile << raw_class << Depth[1][
i] <<
"</td>" << std::endl;
5730 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5731 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5732 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5733 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5734 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5735 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5736 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5737 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5738 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5739 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5740 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5741 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5742 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5743 htmlFile << raw_class1 << Map_Ampl[1][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5744 <<
"</td>" << std::endl;
5745 htmlFile << raw_class1 << Map_Ampl[2][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5746 <<
"</td>" << std::endl;
5747 htmlFile << raw_class1 << Map_Ampl[3][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5748 <<
"</td>" << std::endl;
5749 htmlFile << raw_class1 << Map_Ampl[4][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5750 <<
"</td>" << std::endl;
5751 htmlFile << raw_class1 << Map_Ampl[5][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5752 <<
"</td>" << std::endl;
5753 htmlFile << raw_class1 << Map_Ampl[6][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5754 <<
"</td>" << std::endl;
5755 htmlFile << raw_class3 << Map_Ampl[21][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5756 <<
"</td>" << std::endl;
5757 htmlFile << raw_class << Map_Ampl[31][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5758 <<
"</td>" << std::endl;
5759 htmlFile << raw_class << Map_Ampl[32][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5760 <<
"</td>" << std::endl;
5761 htmlFile << raw_class2 << Map_Ampl[11][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5762 <<
"</td>" << std::endl;
5763 htmlFile << raw_class2 << Map_Ampl[12][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5764 <<
"</td>" << std::endl;
5765 htmlFile << raw_class2 << Map_Ampl[13][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5766 <<
"</td>" << std::endl;
5767 htmlFile << raw_class2 << Map_Ampl[14][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5768 <<
"</td>" << std::endl;
5769 htmlFile << raw_class2 << Map_Ampl[15][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5770 <<
"</td>" << std::endl;
5771 htmlFile << raw_class2 << Map_Ampl[16][Sub[1][
i]][Depth[1][
i]]->GetBinContent(Eta[1][
i] + 41, Phi[1][
i] + 1)
5772 <<
"</td>" << std::endl;
5773 htmlFile <<
"</tr>" << std::endl;
5774 htmlFile <<
"</tr>" << std::endl;
5778 htmlFile <<
"</table>" << std::endl;
5779 htmlFile <<
"<br>" << std::endl;
5781 htmlFile <<
"<h3> 2.D.List of channels with Bad Pedestals (rate > 0.1) and its rates (for GS - %)</h3>"
5783 htmlFile <<
"<table>" << std::endl;
5785 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
5786 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
5787 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
5788 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
5789 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
5790 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
5791 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
5792 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
5793 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
5794 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
5795 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
5796 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
5797 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
5798 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
5799 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
5800 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
5801 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
5802 htmlFile <<
"<td class=\"s5\" align=\"center\">Cm</td>" << std::endl;
5803 htmlFile <<
"<td class=\"s5\" align=\"center\">Am</td>" << std::endl;
5804 htmlFile <<
"<td class=\"s5\" align=\"center\">Wm</td>" << std::endl;
5805 htmlFile <<
"<td class=\"s5\" align=\"center\">Rm</td>" << std::endl;
5806 htmlFile <<
"<td class=\"s5\" align=\"center\">TNm</td>" << std::endl;
5807 htmlFile <<
"<td class=\"s5\" align=\"center\">TXm</td>" << std::endl;
5808 htmlFile <<
"<td class=\"s9\" align=\"center\">GS(%)</td>" << std::endl;
5809 htmlFile <<
"<td class=\"s4\" align=\"center\">Pm</td>" << std::endl;
5810 htmlFile <<
"<td class=\"s4\" align=\"center\">pWm</td>" << std::endl;
5811 htmlFile <<
"<td class=\"s8\" align=\"center\">Cc</td>" << std::endl;
5812 htmlFile <<
"<td class=\"s8\" align=\"center\">Ac</td>" << std::endl;
5813 htmlFile <<
"<td class=\"s8\" align=\"center\">Wc</td>" << std::endl;
5814 htmlFile <<
"<td class=\"s8\" align=\"center\">Rc</td>" << std::endl;
5815 htmlFile <<
"<td class=\"s8\" align=\"center\">TNc</td>" << std::endl;
5816 htmlFile <<
"<td class=\"s8\" align=\"center\">TXc</td>" << std::endl;
5817 htmlFile <<
"</tr>" << std::endl;
5819 for (
int i = 1;
i <= NPed;
i++) {
5820 if ((ind % 2) == 1) {
5821 raw_class =
"<td class=\"s2\" align=\"center\">";
5822 raw_class1 =
"<td class=\"s6\" align=\"center\">";
5823 raw_class2 =
"<td class=\"s11\" align=\"center\">";
5824 raw_class3 =
"<td class=\"s13\" align=\"center\">";
5827 raw_class =
"<td class=\"s3\" align=\"center\">";
5828 raw_class1 =
"<td class=\"s7\" align=\"center\">";
5829 raw_class2 =
"<td class=\"s12\" align=\"center\">";
5830 raw_class3 =
"<td class=\"s14\" align=\"center\">";
5834 if ((ce.
size() >= 1) && (Sub[3][
i] == sub)) {
5835 if (Sub[3][
i] == 1) {
5836 ce = db.
find(
"subdet",
"HB").
find(
"Eta", Eta[3][
i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5837 if (ce.
size() == 0) {
5840 }
else if (ce.
size() > 1) {
5841 cout <<
"Warning: More than one line correspond to such HB, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5842 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5845 if (Sub[3][
i] == 2) {
5846 ce = db.
find(
"subdet",
"HE").
find(
"Eta", Eta[3][
i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5847 if (ce.
size() == 0) {
5850 }
else if (ce.
size() > 1) {
5851 cout <<
"Warning: More than one line correspond to such HE, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5852 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5855 if (Sub[3][
i] == 3) {
5856 ce = db.
find(
"subdet",
"HO").
find(
"Eta", Eta[3][
i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5857 if (ce.
size() == 0) {
5860 }
else if (ce.
size() > 1) {
5861 cout <<
"Warning: More than one line correspond to such HO, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5862 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5865 if (Sub[3][
i] == 4) {
5866 ce = db.
find(
"subdet",
"HF").
find(
"Eta", Eta[3][
i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
5867 if (ce.
size() == 0) {
5870 }
else if (ce.
size() > 1) {
5871 cout <<
"Warning: More than one line correspond to such HF, Eta=" << Eta[3][
i] <<
", Phi=" << Phi[3][
i]
5872 <<
", Depth=" << Depth[3][
i] <<
" in database" << endl;
5875 htmlFile <<
"<td class=\"s4\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
5876 htmlFile << raw_class << Eta[3][
i] <<
"</td>" << std::endl;
5877 htmlFile << raw_class << Phi[3][
i] <<
"</td>" << std::endl;
5878 htmlFile << raw_class << Depth[3][
i] <<
"</td>" << std::endl;
5879 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
5880 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
5881 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
5882 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
5883 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
5884 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
5885 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
5886 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
5887 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
5888 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
5889 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
5890 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
5891 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
5892 htmlFile << raw_class1 << Map_Ampl[1][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5893 <<
"</td>" << std::endl;
5894 htmlFile << raw_class1 << Map_Ampl[2][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5895 <<
"</td>" << std::endl;
5896 htmlFile << raw_class1 << Map_Ampl[3][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5897 <<
"</td>" << std::endl;
5898 htmlFile << raw_class1 << Map_Ampl[4][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5899 <<
"</td>" << std::endl;
5900 htmlFile << raw_class1 << Map_Ampl[5][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5901 <<
"</td>" << std::endl;
5902 htmlFile << raw_class1 << Map_Ampl[6][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5903 <<
"</td>" << std::endl;
5904 htmlFile << raw_class3 << Map_Ampl[21][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5905 <<
"</td>" << std::endl;
5906 htmlFile << raw_class << Map_Ampl[31][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5907 <<
"</td>" << std::endl;
5908 htmlFile << raw_class << Map_Ampl[32][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5909 <<
"</td>" << std::endl;
5910 htmlFile << raw_class2 << Map_Ampl[11][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5911 <<
"</td>" << std::endl;
5912 htmlFile << raw_class2 << Map_Ampl[12][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5913 <<
"</td>" << std::endl;
5914 htmlFile << raw_class2 << Map_Ampl[13][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5915 <<
"</td>" << std::endl;
5916 htmlFile << raw_class2 << Map_Ampl[14][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5917 <<
"</td>" << std::endl;
5918 htmlFile << raw_class2 << Map_Ampl[15][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5919 <<
"</td>" << std::endl;
5920 htmlFile << raw_class2 << Map_Ampl[16][Sub[3][
i]][Depth[3][
i]]->GetBinContent(Eta[3][
i] + 41, Phi[3][
i] + 1)
5921 <<
"</td>" << std::endl;
5922 htmlFile <<
"</tr>" << std::endl;
5923 htmlFile <<
"</tr>" << std::endl;
5927 htmlFile <<
"</table>" << std::endl;
5929 htmlFile <<
"</body> " << std::endl;
5930 htmlFile <<
"</html> " << std::endl;
5937 std::cout <<
"************ Start creating description HELP html file:" << std::endl;
5941 htmlFile.open(
"HELP.html");
5942 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
5943 htmlFile <<
"<head>" << std::endl;
5944 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
5945 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
5946 htmlFile <<
"<style type=\"text/css\">" << std::endl;
5947 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
5949 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
5950 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
5951 "text-align: center;}"
5953 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
5954 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
5955 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
5956 htmlFile <<
"</style>" << std::endl;
5957 htmlFile <<
"<body>" << std::endl;
5958 htmlFile <<
"<h1> Description of Remote Monitoring Tool criteria for bad channel selection</h1>" << std::endl;
5959 htmlFile <<
"<br>" << std::endl;
5960 htmlFile <<
"<h3> - C means CAPID Errors assuming we inspect CAPID non-rotation,error & validation bits, and for "
5961 "this criterion - no need to apply any cuts to select bcs.</h3> "
5963 htmlFile <<
"<br>" << std::endl;
5964 htmlFile <<
"<h3> - A means full amplitude, collected over all time slices </h3> " << std::endl;
5965 htmlFile <<
"<h3> - R means ratio criterion where we define as a bad, the channels, for which the signal portion in "
5966 "4 middle TSs(plus one, minus two around TS with maximal amplitude) is out of some range of reasonable "
5969 htmlFile <<
"<br>" << std::endl;
5970 htmlFile <<
"<h3> - W means width of shape distribution. Width is defined as square root from dispersion. </h3> "
5972 htmlFile <<
"<br>" << std::endl;
5973 htmlFile <<
"<h3> - TN means mean time position of adc signal. </h3> " << std::endl;
5974 htmlFile <<
"<br>" << std::endl;
5975 htmlFile <<
"<h3> - TX means TS number of maximum signal </h3> " << std::endl;
5976 htmlFile <<
"<br>" << std::endl;
5977 htmlFile <<
"<h3> - m means megatile channels. For example Am means Amplitude criteria for megatile channels </h3> "
5979 htmlFile <<
"<br>" << std::endl;
5981 <<
"<h3> - c means calibration channels. For example Ac means Amplitude criteria for calibration channels </h3> "
5983 htmlFile <<
"<br>" << std::endl;
5984 htmlFile <<
"<h3> - Pm means Pedestals. </h3> " << std::endl;
5985 htmlFile <<
"<br>" << std::endl;
5986 htmlFile <<
"<h3> - pWm means pedestal Width. </h3> " << std::endl;
5987 htmlFile <<
"<br>" << std::endl;
5988 htmlFile <<
"</body> " << std::endl;
5989 htmlFile <<
"</html> " << std::endl;
5995 std::cout <<
"************ Start creating MAP html file: - rather long time needed, waiting please" << std::endl;
5998 htmlFile.open(
"MAP.html");
5999 htmlFile <<
"</html><html xmlns=\"http://www.w3.org/1999/xhtml\">" << std::endl;
6000 htmlFile <<
"<head>" << std::endl;
6001 htmlFile <<
"<meta http-equiv=\"Content-Type\" content=\"text/html\"/>" << std::endl;
6002 htmlFile <<
"<title> Remote Monitoring Tool </title>" << std::endl;
6003 htmlFile <<
"<style type=\"text/css\">" << std::endl;
6004 htmlFile <<
" body,td{ background-color: #FFFFCC; font-family: arial, arial ce, helvetica; font-size: 12px; }"
6006 htmlFile <<
" td.s0 { font-family: arial, arial ce, helvetica; }" << std::endl;
6007 htmlFile <<
" td.s1 { font-family: arial, arial ce, helvetica; font-weight: bold; background-color: #FFC169; "
6008 "text-align: center;}"
6010 htmlFile <<
" td.s2 { font-family: arial, arial ce, helvetica; background-color: #eeeeee; }" << std::endl;
6011 htmlFile <<
" td.s3 { font-family: arial, arial ce, helvetica; background-color: #d0d0d0; }" << std::endl;
6012 htmlFile <<
" td.s4 { font-family: arial, arial ce, helvetica; background-color: #FFC169; }" << std::endl;
6013 htmlFile <<
" td.s5 { font-family: arial, arial ce, helvetica; background-color: #FF00FF; }" << std::endl;
6014 htmlFile <<
" td.s6 { font-family: arial, arial ce, helvetica; background-color: #9ACD32; }" << std::endl;
6015 htmlFile <<
" td.s7 { font-family: arial, arial ce, helvetica; background-color: #32CD32; }" << std::endl;
6016 htmlFile <<
"</style>" << std::endl;
6017 htmlFile <<
"<body>" << std::endl;
6019 htmlFile <<
"<h1> Remote Monitoring Tool, LED RUN = " << runnumber <<
". </h1>" << std::endl;
6020 htmlFile <<
"<br>" << std::endl;
6022 htmlFile <<
"<h2> 1. Analysis results for subdetectors </h2>" << std::endl;
6023 htmlFile <<
"<table width=\"400\">" << std::endl;
6024 htmlFile <<
"<tr>" << std::endl;
6033 htmlFile <<
" <td><a "
6034 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6035 "HcalRemoteMonitoring/RMT/LED_"
6036 << runnumber <<
"/HB.html\">HB</a></td>" << std::endl;
6037 htmlFile <<
" <td><a "
6038 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6039 "HcalRemoteMonitoring/RMT/LED_"
6040 << runnumber <<
"/HE.html\">HE</a></td>" << std::endl;
6041 htmlFile <<
" <td><a "
6042 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6043 "HcalRemoteMonitoring/RMT/LED_"
6044 << runnumber <<
"/HO.html\">HO</a></td>" << std::endl;
6045 htmlFile <<
" <td><a "
6046 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6047 "HcalRemoteMonitoring/RMT/LED_"
6048 << runnumber <<
"/HF.html\">HF</a></td>" << std::endl;
6050 htmlFile <<
"</tr>" << std::endl;
6051 htmlFile <<
"</table>" << std::endl;
6052 htmlFile <<
"<br>" << std::endl;
6054 htmlFile <<
"<h2> 2. Amplitude summed over all sub-detector channels vs first 1000 events of this Run </h2>"
6056 htmlFile <<
"<h3> 2.A. Total subdetector Amplitude vs iEvent </h3>" << std::endl;
6057 htmlFile <<
" <img src=\"EVENTDEPENDENCE.png\" />" << std::endl;
6058 htmlFile <<
"<br>" << std::endl;
6059 htmlFile <<
"<br>" << std::endl;
6060 htmlFile <<
"<br>" << std::endl;
6062 htmlFile <<
"<h2> 3. HCAL status over all criteria and subdetectors </h2>" << std::endl;
6063 htmlFile <<
"<h3> 3.A. Channels in detector space </h3>" << std::endl;
6064 htmlFile <<
"<h4> Legend for channel status: green - good, red - bad, yellow - at least 2% gain drift, white - not "
6065 "applicable or out of range </h4>"
6067 htmlFile <<
" <img src=\"MAP.png\" />" << std::endl;
6068 htmlFile <<
"<br>" << std::endl;
6069 htmlFile <<
"<br>" << std::endl;
6071 htmlFile <<
"<h3> 3.B. List of Bad channels </h3>" << std::endl;
6074 htmlFile <<
" <td><a "
6075 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6076 "HcalRemoteMonitoring/RMT/LED_"
6077 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6078 htmlFile <<
"<table>" << std::endl;
6080 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6081 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6082 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6083 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6084 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6085 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6086 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6087 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6088 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6089 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6090 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6091 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6092 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6093 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6094 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6095 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6096 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6097 htmlFile <<
"<td class=\"s5\" align=\"center\">RMT-criteria</td>" << std::endl;
6098 htmlFile <<
"</tr>" << std::endl;
6102 for (
int i = 1;
i <= NBad;
i++) {
6103 if ((ind % 2) == 1) {
6104 raw_class =
"<td class=\"s2\" align=\"center\">";
6105 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6107 raw_class =
"<td class=\"s3\" align=\"center\">";
6108 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6111 const CellDB ce = db.
find(
"Eta", Eta[2][
i]).
find(
"Phi", Phi[2][i]).
find(
"Depth", Depth[2][i]);
6112 if (ce.
size() == 0) {
6118 if (ce.
size() >= 1) {
6119 htmlFile <<
"<tr>" << std::endl;
6120 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6121 htmlFile << raw_class << Eta[2][
i] <<
"</td>" << std::endl;
6122 htmlFile << raw_class << Phi[2][
i] <<
"</td>" << std::endl;
6123 htmlFile << raw_class << Depth[2][
i] <<
"</td>" << std::endl;
6124 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6125 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6126 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6127 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6128 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6129 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6130 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6131 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6132 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6133 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6134 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6135 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6136 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6137 htmlFile << raw_class1 << Comment[2][
i] <<
"</td>" << std::endl;
6138 htmlFile <<
"</tr>" << std::endl;
6143 htmlFile <<
"</table>" << std::endl;
6144 htmlFile <<
"<br>" << std::endl;
6146 htmlFile <<
"<h3> 2.C.List of Gain unstable channels </h3>" << std::endl;
6148 htmlFile <<
" <td><a "
6149 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6150 "HcalRemoteMonitoring/RMT/LED_"
6151 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6153 htmlFile <<
"<table>" << std::endl;
6155 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6156 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6157 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6158 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6159 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6160 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6161 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6162 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6163 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6164 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6165 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6166 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6167 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6168 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6169 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6170 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6171 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6172 htmlFile <<
"<td class=\"s5\" align=\"center\">Failed criteria</td>" << std::endl;
6173 htmlFile <<
"</tr>" << std::endl;
6175 for (
int i = 1;
i <= NWarn;
i++) {
6176 if ((ind % 2) == 1) {
6177 raw_class =
"<td class=\"s2\" align=\"center\">";
6178 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6180 raw_class =
"<td class=\"s3\" align=\"center\">";
6181 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6184 const CellDB ce = db.
find(
"Eta", Eta[1][
i]).
find(
"Phi", Phi[1][i]).
find(
"Depth", Depth[1][i]);
6185 if (ce.
size() == 0) {
6191 if (ce.
size() >= 1) {
6192 htmlFile <<
"<tr>" << std::endl;
6193 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6194 htmlFile << raw_class << Eta[1][
i] <<
"</td>" << std::endl;
6195 htmlFile << raw_class << Phi[1][
i] <<
"</td>" << std::endl;
6196 htmlFile << raw_class << Depth[1][
i] <<
"</td>" << std::endl;
6197 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6198 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6199 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6200 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6201 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6202 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6203 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6204 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6205 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6206 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6207 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6208 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6209 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6210 htmlFile << raw_class1 << Comment[1][
i] <<
"</td>" << std::endl;
6211 htmlFile <<
"</tr>" << std::endl;
6217 htmlFile <<
"</table>" << std::endl;
6218 htmlFile <<
"<br>" << std::endl;
6220 htmlFile <<
"<h3> 2.D.List of channels with bad Pedestals </h3>" << std::endl;
6222 htmlFile <<
" <td><a "
6223 "href=\"https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/Validation/SVSuite/"
6224 "HcalRemoteMonitoring/RMT/LED_"
6225 << runnumber <<
"/HELP.html\"> Description of criteria for bad channel selection</a></td>" << std::endl;
6227 htmlFile <<
"<table>" << std::endl;
6229 htmlFile <<
"<td class=\"s4\" align=\"center\">#</td>" << std::endl;
6230 htmlFile <<
"<td class=\"s1\" align=\"center\">ETA</td>" << std::endl;
6231 htmlFile <<
"<td class=\"s1\" align=\"center\">PHI</td>" << std::endl;
6232 htmlFile <<
"<td class=\"s1\" align=\"center\">DEPTH</td>" << std::endl;
6233 htmlFile <<
"<td class=\"s1\" align=\"center\">RBX</td>" << std::endl;
6234 htmlFile <<
"<td class=\"s1\" align=\"center\">RM</td>" << std::endl;
6235 htmlFile <<
"<td class=\"s1\" align=\"center\">PIXEL</td>" << std::endl;
6236 htmlFile <<
"<td class=\"s1\" align=\"center\">RM_FIBER</td>" << std::endl;
6237 htmlFile <<
"<td class=\"s1\" align=\"center\">FIBER_CH</td>" << std::endl;
6238 htmlFile <<
"<td class=\"s1\" align=\"center\">QIE</td>" << std::endl;
6239 htmlFile <<
"<td class=\"s1\" align=\"center\">ADC</td>" << std::endl;
6240 htmlFile <<
"<td class=\"s1\" align=\"center\">CRATE</td>" << std::endl;
6241 htmlFile <<
"<td class=\"s1\" align=\"center\">DCC</td>" << std::endl;
6242 htmlFile <<
"<td class=\"s1\" align=\"center\">SPIGOT</td>" << std::endl;
6243 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FIBER</td>" << std::endl;
6244 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_SLOT</td>" << std::endl;
6245 htmlFile <<
"<td class=\"s1\" align=\"center\">HTR_FPGA</td>" << std::endl;
6246 htmlFile <<
"<td class=\"s5\" align=\"center\">Failed criteria</td>" << std::endl;
6247 htmlFile <<
"</tr>" << std::endl;
6249 for (
int i = 1;
i <= NPed;
i++) {
6250 if ((ind % 2) == 1) {
6251 raw_class =
"<td class=\"s2\" align=\"center\">";
6252 raw_class1 =
"<td class=\"s6\" align=\"center\">";
6254 raw_class =
"<td class=\"s3\" align=\"center\">";
6255 raw_class1 =
"<td class=\"s7\" align=\"center\">";
6258 const CellDB ce = db.
find(
"Eta", Eta[3][
i]).
find(
"Phi", Phi[3][i]).
find(
"Depth", Depth[3][i]);
6259 if (ce.
size() == 0) {
6265 if (ce.
size() >= 1) {
6266 htmlFile <<
"<tr>" << std::endl;
6267 htmlFile <<
"<td class=\"s1\" align=\"center\">" << ind + 1 <<
"</td>" << std::endl;
6268 htmlFile << raw_class << Eta[3][
i] <<
"</td>" << std::endl;
6269 htmlFile << raw_class << Phi[3][
i] <<
"</td>" << std::endl;
6270 htmlFile << raw_class << Depth[3][
i] <<
"</td>" << std::endl;
6271 htmlFile << raw_class << ce[0].RBX <<
"</td>" << std::endl;
6272 htmlFile << raw_class << ce[0].RM <<
"</td>" << std::endl;
6273 htmlFile << raw_class << ce[0].Pixel <<
"</td>" << std::endl;
6274 htmlFile << raw_class << ce[0].RMfiber <<
"</td>" << std::endl;
6275 htmlFile << raw_class << ce[0].FiberCh <<
"</td>" << std::endl;
6276 htmlFile << raw_class << ce[0].QIE <<
"</td>" << std::endl;
6277 htmlFile << raw_class << ce[0].ADC <<
"</td>" << std::endl;
6278 htmlFile << raw_class << ce[0].VMECardID <<
"</td>" << std::endl;
6279 htmlFile << raw_class << ce[0].dccID <<
"</td>" << std::endl;
6280 htmlFile << raw_class << ce[0].Spigot <<
"</td>" << std::endl;
6281 htmlFile << raw_class << ce[0].FiberIndex <<
"</td>" << std::endl;
6282 htmlFile << raw_class << ce[0].HtrSlot <<
"</td>" << std::endl;
6283 htmlFile << raw_class << ce[0].HtrTB <<
"</td>" << std::endl;
6284 htmlFile << raw_class1 << Comment[3][
i] <<
"</td>" << std::endl;
6285 htmlFile <<
"</tr>" << std::endl;
6291 htmlFile <<
"</table>" << std::endl;
6293 htmlFile <<
"</body> " << std::endl;
6294 htmlFile <<
"</html> " << std::endl;
#define MAX(a, b)
Returns the max value between a and b.
CellDB find(const std::string par, const T val) const
#define MIN(a, b)
Returns the min value between a and b.
Abs< T >::type abs(const T &t)