File indexing completed on 2023-03-17 10:52:06
0001
0002
0003
0004
0005
0006
0007 #include "LogEleMapdb.h"
0008
0009 #include <iostream>
0010 #include <fstream>
0011
0012 #include "TH1.h"
0013 #include "TH2.h"
0014 #include "TCanvas.h"
0015 #include "TROOT.h"
0016 #include <TMath.h>
0017 #include "TStyle.h"
0018 #include "TSystem.h"
0019 #include "TLegend.h"
0020 #include "TText.h"
0021 #include "TAxis.h"
0022 #include "TFile.h"
0023 #include "TLine.h"
0024 #include "TGraph.h"
0025 #include <THStack.h>
0026 #include <TPaveText.h>
0027
0028
0029
0030
0031 using namespace std;
0032
0033 int copyContents(TH1F **hDest, TString hname, TString htitle, const TH1F *hSrc, int lastBin);
0034
0035
0036
0037 int main(int argc, char *argv[]) {
0038 std::string dirnm = "Analyzer";
0039 gROOT->Reset();
0040 gROOT->SetStyle("Plain");
0041 gStyle->SetOptStat(0);
0042 gStyle->SetOptTitle(1);
0043
0044 if (argc < 1)
0045 return 1;
0046 char fname[300];
0047 sprintf(fname, "%s", argv[1]);
0048 std::cout << fname << std::endl;
0049
0050
0051
0052
0053 string promt = (string)fname;
0054 string runnumber = "";
0055 for (unsigned int i = promt.size() - 11; i < promt.size() - 5; i++)
0056 runnumber += fname[i];
0057
0058 TFile *hfile = new TFile(fname, "READ");
0059 hfile->ls();
0060 TDirectory *dir = (TDirectory *)hfile->FindObjectAny(dirnm.c_str());
0061
0062
0063 double Cut0[7][5][8] = {
0064 {{0., 0., 0., 0., 0., 0., 0., 0.},
0065 {0., 1.0, 1.0, 0., 0., 0., 0., 0.},
0066 {0., 1., 1., 1., 0., 0., 0., 0.},
0067 {0., 0., 0., 0., 1., 0., 0., 0.},
0068 {0., 1., 1., 0., 0., 0., 0., 0.}},
0069
0070
0071
0072
0073
0074
0075
0076 {{0., 0., 0., 0., 0., 0., 0., 0.},
0077 {0., 3500., 3500., 3500., 3500., 0., 0., 0.},
0078 {0., 12000., 4500., 3500., 3500., 4000., 4500., 5500.},
0079 {0., 0., 0., 0., 200., 0., 0., 0.},
0080 {0., 4500., 4500., 4500., 4500., 0., 0., 0.}},
0081 {{0., 0., 0., 0., 0., 0., 0., 0.},
0082 {0., 3., 3., 0., 0., 0., 0., 0.},
0083 {0., 3., 3., 3., 0., 0., 0., 0.},
0084 {0., 0., 0., 0., 3., 0., 0., 0.},
0085 {0., 2., 2., 0., 0., 0., 0., 0.}},
0086 {{0., 0., 0., 0., 0., 0., 0., 0.},
0087 {0., 0.4, 0.4, 0., 0., 0., 0., 0.},
0088 {0., 0.4, 0.4, 0.4, 0., 0., 0., 0.},
0089 {0., 0., 0., 0., 0.4, 0., 0., 0.},
0090 {0., 0.8, 0.8, 0., 0., 0., 0., 0.}},
0091 {{0., 0., 0., 0., 0., 0., 0., 0.},
0092 {0., 4.7, 4.7, 0., 0., 0., 0., 0.},
0093 {0., 4.8, 4.8, 5.0, 0., 0., 0., 0.},
0094 {0., 0., 0., 0., 4.8, 0., 0., 0.},
0095 {0., 4.0, 4.0, 0., 0., 0., 0., 0.}},
0096 {{0., 0., 0., 0., 0., 0., 0., 0.},
0097 {0., 3.5, 3.5, 0., 0., 0., 0., 0.},
0098 {0., 4.0, 4.0, 4.0, 0., 0., 0., 0.},
0099 {0., 0., 0., 0., 3., 0., 0., 0.},
0100 {0., 3.5, 3.5, 0., 0., 0., 0., 0.}},
0101 {{0., 0., 0., 0., 0., 0., 0., 0.},
0102 {0., 0., 0., 0., 0., 0., 0., 0.},
0103 {0., 0., 0., 0., 0., 0., 0., 0.},
0104 {0., 0., 0., 0., 0., 0., 0., 0.},
0105 {0., 0., 0., 0., 0., 0., 0., 0.}}};
0106
0107 double CutAb[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
0108 {0., 20., 7., 0., 0., 0., 0., 0.},
0109 {0., 16., 13., 4., 0., 0., 0., 0.},
0110 {0., 0., 0., 0., 45., 0., 0., 0.},
0111 {0., 10., 5., 0., 0., 0., 0., 0.}};
0112
0113 double CutPo[5][8] = {{0., 0., 0., 0., 0., 0., 0., 0.},
0114 {0., 9., 3., 0., 0., 0., 0., 0.},
0115 {0., 8., 6., 2., 0., 0., 0., 0.},
0116 {0., 0., 0., 0., 20., 0., 0., 0.},
0117 {0., 5., 3., 0., 0., 0., 0., 0.}};
0118
0119
0120
0121
0122 int cutA_HB = 100;
0123 int cutA_HE = 6000;
0124 int cutA_HO = 150;
0125 int cutA_HF = 500;
0126
0127 int cutB_HB = 100;
0128 int cutB_HE = 10000;
0129 int cutB_HO = 150;
0130 int cutB_HF = 500;
0131
0132
0133
0134
0135 TCanvas *cHB = new TCanvas("cHB", "cHB", 1000, 500);
0136 TCanvas *cHE = new TCanvas("cHE", "cHE", 1500, 500);
0137 TCanvas *cONE = new TCanvas("cONE", "cONE", 500, 500);
0138 TCanvas *cFour = new TCanvas("cFour", "cFour", 1500, 1000);
0139 TCanvas *cFour1 = new TCanvas("cFour1", "cFour1", 1200, 800);
0140 TCanvas *cNine = new TCanvas("cNine", "cNine", 1500, 1500);
0141
0142
0143
0144 TCanvas *c4x6 = new TCanvas("c4x6", "c4x6", 1200, 2400);
0145
0146 TCanvas *c5x6 = new TCanvas("c5x6", "c5x6", 1500, 2400);
0147
0148 TCanvas *cRBX1 = new TCanvas("cRBX1", "cRBX1", 1200, 1000);
0149
0150
0151 TCanvas *cRBX31 = new TCanvas("cRBX31", "cRBX31", 1860, 600);
0152
0153
0154
0155
0156 int k_min[5] = {0, 1, 1, 4, 1};
0157
0158 int k_max[5] = {0, 2, 3, 4, 2};
0159
0160 int k_maxupgrade[5] = {0, 4, 7, 4, 4};
0161
0162
0163
0164
0165
0166 cHB->Divide(2, 1);
0167 cHB->cd(1);
0168 TH1F *LumLum = (TH1F *)dir->FindObjectAny("h_lsnumber_per_eachLS");
0169 int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin());
0170 cout << " MaxLumDanila= " << MaxLumDanila << endl;
0171 gStyle->SetOptStat(110000);
0172 gPad->SetGridy();
0173 gPad->SetGridx();
0174 LumLum->SetMarkerStyle(21);
0175 LumLum->SetMarkerSize(0.8);
0176 LumLum->GetYaxis()->SetLabelSize(0.04);
0177 LumLum->SetTitle("Cont. number per LS \b");
0178 LumLum->SetXTitle("Cont.number \b");
0179 LumLum->SetYTitle("Ls \b");
0180 LumLum->SetMarkerColor(4);
0181 LumLum->SetLineColor(0);
0182 LumLum->SetMinimum(0.8);
0183 LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila + 5.);
0184 LumLum->Draw("Error");
0185
0186 cHB->cd(2);
0187 TH1F *LumiEv = (TH1F *)dir->FindObjectAny("h_nevents_per_eachRealLS");
0188 int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
0189 int MaxLum = 0;
0190 for (int i = 1; i <= LumiEv->GetXaxis()->GetNbins(); i++) {
0191 if (LumiEv->GetBinContent(i)) {
0192 MaxLum = i;
0193 }
0194 }
0195 cout << " Nev in bin of MaxLum = " << MaxLum0 << " MaxLum= " << MaxLum << endl;
0196
0197 gStyle->SetOptStat(110000);
0198 gPad->SetGridy();
0199 gPad->SetGridx();
0200 gPad->SetLogy();
0201
0202 LumiEv->GetYaxis()->SetLabelSize(0.04);
0203 LumiEv->SetTitle("Number of events per LS");
0204 LumiEv->SetXTitle("LS");
0205 LumiEv->SetYTitle("Number of events ");
0206 LumiEv->SetMarkerStyle(21);
0207 LumiEv->SetMarkerSize(0.8);
0208 LumiEv->SetMarkerColor(4);
0209 LumiEv->SetLineColor(0);
0210
0211 LumiEv->GetXaxis()->SetRangeUser(0, MaxLum + 5.);
0212 LumiEv->Draw("Error");
0213
0214 cHB->Print("LumiEvent.png");
0215 cHB->Clear();
0216
0217
0218
0219
0220 TH1F *H_NumBadChanDepth[7][5][5];
0221
0222
0223
0224
0225
0226 H_NumBadChanDepth[1][1][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS1");
0227 H_NumBadChanDepth[1][1][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS2");
0228
0229 H_NumBadChanDepth[1][2][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS3");
0230 H_NumBadChanDepth[1][2][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS4");
0231 H_NumBadChanDepth[1][2][3] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS5");
0232
0233 H_NumBadChanDepth[1][3][4] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS8");
0234
0235 H_NumBadChanDepth[1][4][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS6");
0236 H_NumBadChanDepth[1][4][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplLS7");
0237
0238
0239
0240
0241
0242 H_NumBadChanDepth[2][1][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS1");
0243 H_NumBadChanDepth[2][1][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS2");
0244
0245 H_NumBadChanDepth[2][2][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS3");
0246 H_NumBadChanDepth[2][2][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS4");
0247 H_NumBadChanDepth[2][2][3] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS5");
0248
0249 H_NumBadChanDepth[2][3][4] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS8");
0250
0251 H_NumBadChanDepth[2][4][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS6");
0252 H_NumBadChanDepth[2][4][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeLS7");
0253
0254
0255
0256
0257
0258 H_NumBadChanDepth[3][1][1] = (TH1F *)dir->FindObjectAny("h_sumAmplLS1");
0259 H_NumBadChanDepth[3][1][2] = (TH1F *)dir->FindObjectAny("h_sumAmplLS2");
0260
0261 H_NumBadChanDepth[3][2][1] = (TH1F *)dir->FindObjectAny("h_sumAmplLS3");
0262 H_NumBadChanDepth[3][2][2] = (TH1F *)dir->FindObjectAny("h_sumAmplLS4");
0263 H_NumBadChanDepth[3][2][3] = (TH1F *)dir->FindObjectAny("h_sumAmplLS5");
0264
0265 H_NumBadChanDepth[3][3][4] = (TH1F *)dir->FindObjectAny("h_sumAmplLS8");
0266
0267 H_NumBadChanDepth[3][4][1] = (TH1F *)dir->FindObjectAny("h_sumAmplLS6");
0268 H_NumBadChanDepth[3][4][2] = (TH1F *)dir->FindObjectAny("h_sumAmplLS7");
0269
0270
0271
0272
0273
0274 H_NumBadChanDepth[4][1][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS1");
0275 H_NumBadChanDepth[4][1][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS2");
0276
0277 H_NumBadChanDepth[4][2][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS3");
0278 H_NumBadChanDepth[4][2][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS4");
0279 H_NumBadChanDepth[4][2][3] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS5");
0280
0281 H_NumBadChanDepth[4][3][4] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS8");
0282
0283 H_NumBadChanDepth[4][4][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS6");
0284 H_NumBadChanDepth[4][4][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanALS7");
0285
0286
0287
0288
0289
0290 H_NumBadChanDepth[5][1][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS1");
0291 H_NumBadChanDepth[5][1][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS2");
0292
0293 H_NumBadChanDepth[5][2][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS3");
0294 H_NumBadChanDepth[5][2][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS4");
0295 H_NumBadChanDepth[5][2][3] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS5");
0296
0297 H_NumBadChanDepth[5][3][4] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS8");
0298
0299 H_NumBadChanDepth[5][4][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS6");
0300 H_NumBadChanDepth[5][4][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxALS7");
0301
0302 gStyle->SetOptStat(110000);
0303
0304 for (int test = 1; test <= 5; test++) {
0305 for (int sub = 1; sub <= 4; sub++) {
0306 if (sub == 1)
0307 cHB->Divide(2, 1);
0308 if (sub == 2)
0309 cHE->Divide(3, 1);
0310 if (sub == 3)
0311 cONE->Divide(1, 1);
0312 if (sub == 4)
0313 cHB->Divide(2, 1);
0314 for (int k = k_min[sub]; k <= k_max[sub]; k++) {
0315 if (sub == 1)
0316 cHB->cd(k);
0317 if (sub == 2)
0318 cHE->cd(k);
0319 if (sub == 3)
0320 cONE->cd(k - 3);
0321 if (sub == 4)
0322 cHB->cd(k);
0323 gPad->SetGridy();
0324 gPad->SetGridx();
0325 gPad->SetLogy();
0326 H_NumBadChanDepth[test][sub][k]->SetMarkerStyle(20);
0327 H_NumBadChanDepth[test][sub][k]->SetMarkerSize(0.8);
0328 if (k == 1)
0329 H_NumBadChanDepth[test][sub][k]->SetTitle("Depth 1\b");
0330 if (k == 2)
0331 H_NumBadChanDepth[test][sub][k]->SetTitle("Depth 2\b");
0332 if (k == 3)
0333 H_NumBadChanDepth[test][sub][k]->SetTitle("Depth 3\b");
0334 if (k == 4)
0335 H_NumBadChanDepth[test][sub][k]->SetTitle("Depth 4\b");
0336 if (test == 1)
0337 H_NumBadChanDepth[test][sub][k]->SetXTitle(" <Amplitude> \b");
0338 if (test == 2)
0339 H_NumBadChanDepth[test][sub][k]->SetXTitle(" <Width> \b");
0340 if (test == 3)
0341 H_NumBadChanDepth[test][sub][k]->SetXTitle(" <Ratio> \b");
0342 if (test == 4)
0343 H_NumBadChanDepth[test][sub][k]->SetXTitle(" <TS mean> \b");
0344 if (test == 5)
0345 H_NumBadChanDepth[test][sub][k]->SetXTitle(" <TS max> \b");
0346 H_NumBadChanDepth[test][sub][k]->SetYTitle("Number of channel-LSs\b");
0347 H_NumBadChanDepth[test][sub][k]->SetMarkerColor(4);
0348 H_NumBadChanDepth[test][sub][k]->SetLineColor(0);
0349
0350 H_NumBadChanDepth[test][sub][k]->SetMinimum(0.8);
0351 H_NumBadChanDepth[test][sub][k]->Draw("Error");
0352 }
0353 if (test == 0) {
0354 if (sub == 1) {
0355 cHB->Print("H_NBCMNHB.png");
0356 cHB->Clear();
0357 }
0358 if (sub == 2) {
0359 cHE->Print("H_NBCMNHE.png");
0360 cHE->Clear();
0361 }
0362 if (sub == 3) {
0363 cONE->Print("H_NBCMNHO.png");
0364 cONE->Clear();
0365 }
0366 if (sub == 4) {
0367 cHB->Print("H_NBCMNHF.png");
0368 cHB->Clear();
0369 }
0370 }
0371
0372 if (test == 1) {
0373 if (sub == 1) {
0374 cHB->Print("H_ADCamplHB.png");
0375 cHB->Clear();
0376 }
0377 if (sub == 2) {
0378 cHE->Print("H_ADCamplHE.png");
0379 cHE->Clear();
0380 }
0381 if (sub == 3) {
0382 cONE->Print("H_ADCamplHO.png");
0383 cONE->Clear();
0384 }
0385 if (sub == 4) {
0386 cHB->Print("H_ADCamplHF.png");
0387 cHB->Clear();
0388 }
0389 }
0390 if (test == 2) {
0391 if (sub == 1) {
0392 cHB->Print("H_WidthHB.png");
0393 cHB->Clear();
0394 }
0395 if (sub == 2) {
0396 cHE->Print("H_WidthHE.png");
0397 cHE->Clear();
0398 }
0399 if (sub == 3) {
0400 cONE->Print("H_WidthHO.png");
0401 cONE->Clear();
0402 }
0403 if (sub == 4) {
0404 cHB->Print("H_WidthHF.png");
0405 cHB->Clear();
0406 }
0407 }
0408 if (test == 3) {
0409 if (sub == 1) {
0410 cHB->Print("H_RatioHB.png");
0411 cHB->Clear();
0412 }
0413 if (sub == 2) {
0414 cHE->Print("H_RatioHE.png");
0415 cHE->Clear();
0416 }
0417 if (sub == 3) {
0418 cONE->Print("H_RatioHO.png");
0419 cONE->Clear();
0420 }
0421 if (sub == 4) {
0422 cHB->Print("H_RatioHF.png");
0423 cHB->Clear();
0424 }
0425 }
0426 if (test == 4) {
0427 if (sub == 1) {
0428 cHB->Print("H_TmeanHB.png");
0429 cHB->Clear();
0430 }
0431 if (sub == 2) {
0432 cHE->Print("H_TmeanHE.png");
0433 cHE->Clear();
0434 }
0435 if (sub == 3) {
0436 cONE->Print("H_TmeanHO.png");
0437 cONE->Clear();
0438 }
0439 if (sub == 4) {
0440 cHB->Print("H_TmeanHF.png");
0441 cHB->Clear();
0442 }
0443 }
0444 if (test == 5) {
0445 if (sub == 1) {
0446 cHB->Print("H_TmaxHB.png");
0447 cHB->Clear();
0448 }
0449 if (sub == 2) {
0450 cHE->Print("H_TmaxHE.png");
0451 cHE->Clear();
0452 }
0453 if (sub == 3) {
0454 cONE->Print("H_TmaxHO.png");
0455 cONE->Clear();
0456 }
0457 if (sub == 4) {
0458 cHB->Print("H_TmaxHF.png");
0459 cHB->Clear();
0460 }
0461 }
0462 }
0463 }
0464
0465 gStyle->SetOptStat(0);
0466
0467
0468
0469
0470
0471 TH2F *MapNumBadChanDepth[7][5][5];
0472 TH2F *MapNumChanDepth[7][5][5];
0473 TH2F *MapNumBadChanFull[7];
0474 TH2F *MapNumChanFull[7];
0475
0476
0477
0478
0479
0480 MapNumBadChanDepth[0][1][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1Error_HB");
0481 MapNumBadChanDepth[0][1][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2Error_HB");
0482
0483 MapNumBadChanDepth[0][2][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1Error_HE");
0484 MapNumBadChanDepth[0][2][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2Error_HE");
0485 MapNumBadChanDepth[0][2][3] = (TH2F *)dir->FindObjectAny("h_mapDepth3Error_HE");
0486
0487 MapNumBadChanDepth[0][3][4] = (TH2F *)dir->FindObjectAny("h_mapDepth4Error_HO");
0488
0489 MapNumBadChanDepth[0][4][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1Error_HF");
0490 MapNumBadChanDepth[0][4][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2Error_HF");
0491
0492 MapNumBadChanFull[0] = (TH2F *)MapNumBadChanDepth[0][1][1]->Clone();
0493
0494 MapNumChanDepth[0][1][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1_HB");
0495 MapNumChanDepth[0][1][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2_HB");
0496
0497 MapNumChanDepth[0][2][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1_HE");
0498 MapNumChanDepth[0][2][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2_HE");
0499 MapNumChanDepth[0][2][3] = (TH2F *)dir->FindObjectAny("h_mapDepth3_HE");
0500
0501 MapNumChanDepth[0][3][4] = (TH2F *)dir->FindObjectAny("h_mapDepth4_HO");
0502
0503 MapNumChanDepth[0][4][1] = (TH2F *)dir->FindObjectAny("h_mapDepth1_HF");
0504 MapNumChanDepth[0][4][2] = (TH2F *)dir->FindObjectAny("h_mapDepth2_HF");
0505
0506 MapNumChanFull[0] = (TH2F *)MapNumChanDepth[0][1][1]->Clone();
0507
0508
0509
0510
0511
0512 MapNumBadChanDepth[1][1][1] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS1");
0513 MapNumBadChanDepth[1][1][2] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS2");
0514
0515 MapNumBadChanDepth[1][2][1] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS3");
0516 MapNumBadChanDepth[1][2][2] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS4");
0517 MapNumBadChanDepth[1][2][3] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS5");
0518
0519 MapNumBadChanDepth[1][3][4] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS8");
0520
0521 MapNumBadChanDepth[1][4][1] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS6");
0522 MapNumBadChanDepth[1][4][2] = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplLS7");
0523
0524 MapNumBadChanFull[1] = (TH2F *)MapNumBadChanDepth[1][1][1]->Clone();
0525
0526 MapNumChanDepth[1][1][1] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS1");
0527 MapNumChanDepth[1][1][2] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS2");
0528
0529 MapNumChanDepth[1][2][1] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS3");
0530 MapNumChanDepth[1][2][2] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS4");
0531 MapNumChanDepth[1][2][3] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS5");
0532
0533 MapNumChanDepth[1][3][4] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS8");
0534
0535 MapNumChanDepth[1][4][1] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS6");
0536 MapNumChanDepth[1][4][2] = (TH2F *)dir->FindObjectAny("h_2D0sumADCAmplLS7");
0537
0538 MapNumChanFull[1] = (TH2F *)MapNumChanDepth[1][1][1]->Clone();
0539
0540
0541
0542
0543
0544 MapNumBadChanDepth[2][1][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS1");
0545 MapNumBadChanDepth[2][1][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS2");
0546
0547 MapNumBadChanDepth[2][2][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS3");
0548 MapNumBadChanDepth[2][2][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS4");
0549 MapNumBadChanDepth[2][2][3] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS5");
0550
0551 MapNumBadChanDepth[2][3][4] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS8");
0552
0553 MapNumBadChanDepth[2][4][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS6");
0554 MapNumBadChanDepth[2][4][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplitudeLS7");
0555
0556 MapNumBadChanFull[2] = (TH2F *)MapNumBadChanDepth[2][1][1]->Clone();
0557
0558 MapNumChanDepth[2][1][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS1");
0559 MapNumChanDepth[2][1][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS2");
0560
0561 MapNumChanDepth[2][2][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS3");
0562 MapNumChanDepth[2][2][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS4");
0563 MapNumChanDepth[2][2][3] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS5");
0564
0565 MapNumChanDepth[2][3][4] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS8");
0566
0567 MapNumChanDepth[2][4][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS6");
0568 MapNumChanDepth[2][4][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplitudeLS7");
0569
0570 MapNumChanFull[2] = (TH2F *)MapNumChanDepth[2][1][1]->Clone();
0571
0572
0573
0574
0575
0576 MapNumBadChanDepth[3][1][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS1");
0577 MapNumBadChanDepth[3][1][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS2");
0578
0579 MapNumBadChanDepth[3][2][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS3");
0580 MapNumBadChanDepth[3][2][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS4");
0581 MapNumBadChanDepth[3][2][3] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS5");
0582
0583 MapNumBadChanDepth[3][3][4] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS8");
0584
0585 MapNumBadChanDepth[3][4][1] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS6");
0586 MapNumBadChanDepth[3][4][2] = (TH2F *)dir->FindObjectAny("h_2DsumAmplLS7");
0587
0588 MapNumBadChanFull[3] = (TH2F *)MapNumBadChanDepth[3][1][1]->Clone();
0589
0590 MapNumChanDepth[3][1][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS1");
0591 MapNumChanDepth[3][1][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS2");
0592
0593 MapNumChanDepth[3][2][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS3");
0594 MapNumChanDepth[3][2][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS4");
0595 MapNumChanDepth[3][2][3] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS5");
0596
0597 MapNumChanDepth[3][3][4] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS8");
0598
0599 MapNumChanDepth[3][4][1] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS6");
0600 MapNumChanDepth[3][4][2] = (TH2F *)dir->FindObjectAny("h_2D0sumAmplLS7");
0601
0602 MapNumChanFull[3] = (TH2F *)MapNumChanDepth[3][1][1]->Clone();
0603
0604
0605
0606
0607
0608 MapNumBadChanDepth[4][1][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS1");
0609 MapNumBadChanDepth[4][1][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS2");
0610
0611 MapNumBadChanDepth[4][2][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS3");
0612 MapNumBadChanDepth[4][2][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS4");
0613 MapNumBadChanDepth[4][2][3] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS5");
0614
0615 MapNumBadChanDepth[4][3][4] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS8");
0616
0617 MapNumBadChanDepth[4][4][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS6");
0618 MapNumBadChanDepth[4][4][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmeanALS7");
0619
0620 MapNumBadChanFull[4] = (TH2F *)MapNumBadChanDepth[4][1][1]->Clone();
0621
0622 MapNumChanDepth[4][1][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS1");
0623 MapNumChanDepth[4][1][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS2");
0624
0625 MapNumChanDepth[4][2][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS3");
0626 MapNumChanDepth[4][2][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS4");
0627 MapNumChanDepth[4][2][3] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS5");
0628
0629 MapNumChanDepth[4][3][4] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS8");
0630
0631 MapNumChanDepth[4][4][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS6");
0632 MapNumChanDepth[4][4][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmeanALS7");
0633
0634 MapNumChanFull[4] = (TH2F *)MapNumChanDepth[4][1][1]->Clone();
0635
0636
0637
0638
0639
0640 MapNumBadChanDepth[5][1][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS1");
0641 MapNumBadChanDepth[5][1][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS2");
0642
0643 MapNumBadChanDepth[5][2][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS3");
0644 MapNumBadChanDepth[5][2][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS4");
0645 MapNumBadChanDepth[5][2][3] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS5");
0646
0647 MapNumBadChanDepth[5][3][4] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS8");
0648
0649 MapNumBadChanDepth[5][4][1] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS6");
0650 MapNumBadChanDepth[5][4][2] = (TH2F *)dir->FindObjectAny("h_2DsumTSmaxALS7");
0651
0652 MapNumBadChanFull[5] = (TH2F *)MapNumBadChanDepth[5][1][1]->Clone();
0653
0654 MapNumChanDepth[5][1][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS1");
0655 MapNumChanDepth[5][1][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS2");
0656
0657 MapNumChanDepth[5][2][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS3");
0658 MapNumChanDepth[5][2][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS4");
0659 MapNumChanDepth[5][2][3] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS5");
0660
0661 MapNumChanDepth[5][3][4] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS8");
0662
0663 MapNumChanDepth[5][4][1] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS6");
0664 MapNumChanDepth[5][4][2] = (TH2F *)dir->FindObjectAny("h_2D0sumTSmaxALS7");
0665
0666 MapNumChanFull[5] = (TH2F *)MapNumChanDepth[5][1][1]->Clone();
0667
0668 for (int test = 0; test <= 5; test++) {
0669 for (int sub = 1; sub <= 4; sub++) {
0670 if (sub == 1)
0671 cHB->Divide(2, 1);
0672 if (sub == 2)
0673 cHE->Divide(3, 1);
0674 if (sub == 3)
0675 cONE->Divide(1, 1);
0676 if (sub == 4)
0677 cHB->Divide(2, 1);
0678 for (int k = k_min[sub]; k <= k_max[sub]; k++) {
0679 if (sub == 1)
0680 cHB->cd(k);
0681 if (sub == 2)
0682 cHE->cd(k);
0683 if (sub == 3)
0684 cONE->cd(k - 3);
0685 if (sub == 4)
0686 cHB->cd(k);
0687 MapNumBadChanDepth[test][sub][k]->Divide(
0688 MapNumBadChanDepth[test][sub][k], MapNumChanDepth[test][sub][k], 1, 1, "B");
0689
0690 for (int x = 1; x <= MapNumBadChanFull[test]->GetXaxis()->GetNbins(); x++) {
0691 for (int y = 1; y <= MapNumBadChanFull[test]->GetYaxis()->GetNbins(); y++) {
0692 double ccc1 = MapNumBadChanDepth[test][sub][k]->GetBinContent(x, y);
0693 MapNumBadChanFull[test]->SetBinContent(x, y, MapNumBadChanFull[test]->GetBinContent(x, y) + ccc1);
0694 }
0695 }
0696
0697 if (k == 1)
0698 MapNumBadChanDepth[test][sub][k]->SetTitle("Depth 1\b");
0699 if (k == 2)
0700 MapNumBadChanDepth[test][sub][k]->SetTitle("Depth 2\b");
0701 if (k == 3)
0702 MapNumBadChanDepth[test][sub][k]->SetTitle("Depth 3\b");
0703 if (k == 4)
0704 MapNumBadChanDepth[test][sub][k]->SetTitle("Depth 4\b");
0705 gPad->SetGridy();
0706 gPad->SetGridx();
0707 gPad->SetLogz();
0708
0709
0710
0711 MapNumBadChanDepth[test][sub][k]->SetXTitle("#eta \b");
0712 MapNumBadChanDepth[test][sub][k]->SetYTitle("#phi \b");
0713 MapNumBadChanDepth[test][sub][k]->SetZTitle("Average estimator \b");
0714
0715
0716 MapNumBadChanDepth[test][sub][k]->Draw("COLZ");
0717
0718 MapNumBadChanDepth[test][sub][k]->GetYaxis()->SetRangeUser(0, 72.);
0719 MapNumBadChanDepth[test][sub][k]->GetZaxis()->SetRangeUser(0.0001, 1.);
0720 }
0721 if (test == 0) {
0722 if (sub == 1) {
0723 cHB->Print("MapCapIdErrorHB.png");
0724 cHB->Clear();
0725 }
0726 if (sub == 2) {
0727 cHE->Print("MapCapIdErrorHE.png");
0728 cHE->Clear();
0729 }
0730 if (sub == 3) {
0731 cONE->Print("MapCapIdErrorHO.png");
0732 cONE->Clear();
0733 }
0734 if (sub == 4) {
0735 cHB->Print("MapCapIdErrorHF.png");
0736 cHB->Clear();
0737 }
0738 }
0739 if (test == 1) {
0740 if (sub == 1) {
0741 cHB->Print("MapADCamplHB.png");
0742 cHB->Clear();
0743 }
0744 if (sub == 2) {
0745 cHE->Print("MapADCamplHE.png");
0746 cHE->Clear();
0747 }
0748 if (sub == 3) {
0749 cONE->Print("MapADCamplHO.png");
0750 cONE->Clear();
0751 }
0752 if (sub == 4) {
0753 cHB->Print("MapADCamplHF.png");
0754 cHB->Clear();
0755 }
0756 }
0757 if (test == 2) {
0758 if (sub == 1) {
0759 cHB->Print("MapWidthHB.png");
0760 cHB->Clear();
0761 }
0762 if (sub == 2) {
0763 cHE->Print("MapWidthHE.png");
0764 cHE->Clear();
0765 }
0766 if (sub == 3) {
0767 cONE->Print("MapWidthHO.png");
0768 cONE->Clear();
0769 }
0770 if (sub == 4) {
0771 cHB->Print("MapWidthHF.png");
0772 cHB->Clear();
0773 }
0774 }
0775 if (test == 3) {
0776 if (sub == 1) {
0777 cHB->Print("MapRatioHB.png");
0778 cHB->Clear();
0779 }
0780 if (sub == 2) {
0781 cHE->Print("MapRatioHE.png");
0782 cHE->Clear();
0783 }
0784 if (sub == 3) {
0785 cONE->Print("MapRatioHO.png");
0786 cONE->Clear();
0787 }
0788 if (sub == 4) {
0789 cHB->Print("MapRatioHF.png");
0790 cHB->Clear();
0791 }
0792 }
0793 if (test == 4) {
0794 if (sub == 1) {
0795 cHB->Print("MapTmeanHB.png");
0796 cHB->Clear();
0797 }
0798 if (sub == 2) {
0799 cHE->Print("MapTmeanHE.png");
0800 cHE->Clear();
0801 }
0802 if (sub == 3) {
0803 cONE->Print("MapTmeanHO.png");
0804 cONE->Clear();
0805 }
0806 if (sub == 4) {
0807 cHB->Print("MapTmeanHF.png");
0808 cHB->Clear();
0809 }
0810 }
0811 if (test == 5) {
0812 if (sub == 1) {
0813 cHB->Print("MapTmaxHB.png");
0814 cHB->Clear();
0815 }
0816 if (sub == 2) {
0817 cHE->Print("MapTmaxHE.png");
0818 cHE->Clear();
0819 }
0820 if (sub == 3) {
0821 cONE->Print("MapTmaxHO.png");
0822 cONE->Clear();
0823 }
0824 if (sub == 4) {
0825 cHB->Print("MapTmaxHF.png");
0826 cHB->Clear();
0827 }
0828 }
0829 }
0830 cONE->Divide(1, 1);
0831 cONE->cd(1);
0832 gPad->SetGridy();
0833 gPad->SetGridx();
0834 gPad->SetLogz();
0835 MapNumBadChanFull[test]->SetTitle("All subdetectors\b");
0836 MapNumBadChanFull[test]->SetXTitle("#eta \b");
0837 MapNumBadChanFull[test]->SetYTitle("#phi \b");
0838 if (test == 0)
0839 MapNumBadChanFull[test]->SetZTitle("Average Nbcs \b");
0840 if (test != 0)
0841 MapNumBadChanFull[test]->SetZTitle("Average estimator \b");
0842
0843 MapNumBadChanFull[test]->SetTitleOffset(0.75, "Z");
0844 MapNumBadChanFull[test]->Draw("COLZ");
0845 MapNumBadChanFull[test]->GetYaxis()->SetRangeUser(0, 72.);
0846
0847 if (test == 0) {
0848 cONE->Print("MapCapIdError.png");
0849 cONE->Clear();
0850 }
0851 if (test == 1) {
0852 cONE->Print("MapADCAmpl.png");
0853 cONE->Clear();
0854 }
0855 if (test == 2) {
0856 cONE->Print("MapWidth.png");
0857 cONE->Clear();
0858 }
0859 if (test == 3) {
0860 cONE->Print("MapRatio.png");
0861 cONE->Clear();
0862 }
0863 if (test == 4) {
0864 cONE->Print("MapTmean.png");
0865 cONE->Clear();
0866 }
0867 if (test == 5) {
0868 cONE->Print("MapTmax.png");
0869 cONE->Clear();
0870 }
0871 }
0872
0873
0874
0875
0876
0877
0878 TH1F *HistNumBadChanDepth[7][5][8];
0879 TH1F *HistCutNumBadChanDepth[7][5][8];
0880 TH1F *HistNumChanDepth[7][5][8];
0881
0882
0883
0884
0885
0886 TH1F *HistNumBadChanFull[7];
0887 TH1F *HistNumChanFull[7];
0888
0889
0890
0891
0892
0893 HistNumBadChanDepth[0][1][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HB");
0894 HistNumBadChanDepth[0][1][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HB");
0895
0896 HistNumBadChanDepth[0][2][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HE");
0897 HistNumBadChanDepth[0][2][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HE");
0898 HistNumBadChanDepth[0][2][3] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth3_HE");
0899
0900 HistNumBadChanDepth[0][3][4] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth4_HO");
0901
0902 HistNumBadChanDepth[0][4][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HF");
0903 HistNumBadChanDepth[0][4][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HF");
0904
0905 HistNumBadChanFull[0] = (TH1F *)HistNumBadChanDepth[0][1][1]->Clone();
0906
0907 HistCutNumBadChanDepth[0][1][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HB");
0908 HistCutNumBadChanDepth[0][1][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HB");
0909
0910 HistCutNumBadChanDepth[0][2][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HE");
0911 HistCutNumBadChanDepth[0][2][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HE");
0912 HistCutNumBadChanDepth[0][2][3] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth3_HE");
0913
0914 HistCutNumBadChanDepth[0][3][4] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth4_HO");
0915
0916 HistCutNumBadChanDepth[0][4][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth1_HF");
0917 HistCutNumBadChanDepth[0][4][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannels_depth2_HF");
0918
0919 HistNumChanDepth[0][1][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HB");
0920 HistNumChanDepth[0][1][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HB");
0921
0922 HistNumChanDepth[0][2][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HE");
0923 HistNumChanDepth[0][2][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HE");
0924 HistNumChanDepth[0][2][3] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth3_HE");
0925
0926 HistNumChanDepth[0][3][4] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth4_HO");
0927
0928 HistNumChanDepth[0][4][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HF");
0929 HistNumChanDepth[0][4][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HF");
0930
0931 HistNumChanFull[0] = (TH1F *)HistNumChanDepth[0][1][1]->Clone();
0932
0933
0934
0935
0936
0937
0938
0939 HistNumBadChanDepth[1][1][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS1");
0940 HistNumBadChanDepth[1][1][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS2");
0941
0942 HistNumBadChanDepth[1][1][3] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth3HBu");
0943 HistNumBadChanDepth[1][1][4] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth4HBu");
0944
0945
0946 HistNumBadChanDepth[1][2][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS3");
0947 HistNumBadChanDepth[1][2][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS4");
0948 HistNumBadChanDepth[1][2][3] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS5");
0949
0950 HistNumBadChanDepth[1][2][4] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth4HEu");
0951 HistNumBadChanDepth[1][2][5] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth5HEu");
0952 HistNumBadChanDepth[1][2][6] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth6HEu");
0953 HistNumBadChanDepth[1][2][7] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLSdepth7HEu");
0954
0955
0956 HistNumBadChanDepth[1][3][4] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS8");
0957
0958
0959 HistNumBadChanDepth[1][4][1] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS6");
0960 HistNumBadChanDepth[1][4][2] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS7");
0961
0962 HistNumBadChanDepth[1][4][3] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS6u");
0963 HistNumBadChanDepth[1][4][4] = (TH1F *)dir->FindObjectAny("h_sumADCAmplperLS7u");
0964
0965
0966 HistNumBadChanFull[1] = (TH1F *)HistNumBadChanDepth[1][1][1]->Clone();
0967
0968
0969
0970 HistCutNumBadChanDepth[1][1][1] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS1");
0971 HistCutNumBadChanDepth[1][1][2] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS2");
0972
0973 HistCutNumBadChanDepth[1][1][3] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth3HBu");
0974 HistCutNumBadChanDepth[1][1][4] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth4HBu");
0975
0976
0977 HistCutNumBadChanDepth[1][2][1] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS3");
0978 HistCutNumBadChanDepth[1][2][2] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS4");
0979 HistCutNumBadChanDepth[1][2][3] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS5");
0980
0981 HistCutNumBadChanDepth[1][2][4] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth4HEu");
0982 HistCutNumBadChanDepth[1][2][5] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth5HEu");
0983 HistCutNumBadChanDepth[1][2][6] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth6HEu");
0984 HistCutNumBadChanDepth[1][2][7] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLSdepth7HEu");
0985
0986
0987 HistCutNumBadChanDepth[1][3][4] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS8");
0988
0989
0990 HistCutNumBadChanDepth[1][4][1] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS6");
0991 HistCutNumBadChanDepth[1][4][2] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS7");
0992
0993 HistCutNumBadChanDepth[1][4][3] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS6u");
0994 HistCutNumBadChanDepth[1][4][4] = (TH1F *)dir->FindObjectAny("h_sumCutADCAmplperLS7u");
0995
0996
0997
0998 HistNumChanDepth[1][1][1] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS1");
0999 HistNumChanDepth[1][1][2] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS2");
1000
1001 HistNumChanDepth[1][1][3] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth3HBu");
1002 HistNumChanDepth[1][1][4] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth4HBu");
1003
1004
1005 HistNumChanDepth[1][2][1] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS3");
1006 HistNumChanDepth[1][2][2] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS4");
1007 HistNumChanDepth[1][2][3] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS5");
1008
1009 HistNumChanDepth[1][2][4] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth4HEu");
1010 HistNumChanDepth[1][2][5] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth5HEu");
1011 HistNumChanDepth[1][2][6] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth6HEu");
1012 HistNumChanDepth[1][2][7] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLSdepth7HEu");
1013
1014
1015 HistNumChanDepth[1][3][4] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS8");
1016
1017
1018 HistNumChanDepth[1][4][1] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS6");
1019 HistNumChanDepth[1][4][2] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS7");
1020
1021 HistNumChanDepth[1][4][3] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS6u");
1022 HistNumChanDepth[1][4][4] = (TH1F *)dir->FindObjectAny("h_sum0ADCAmplperLS7u");
1023
1024
1025 HistNumChanFull[1] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1026
1027 HistNumChanFull[6] = (TH1F *)HistNumChanDepth[1][1][1]->Clone();
1028
1029
1030
1031
1032
1033 HistNumBadChanDepth[2][1][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS1");
1034 HistNumBadChanDepth[2][1][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS2");
1035
1036 HistNumBadChanDepth[2][2][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS3");
1037 HistNumBadChanDepth[2][2][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS4");
1038 HistNumBadChanDepth[2][2][3] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS5");
1039
1040 HistNumBadChanDepth[2][3][4] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS8");
1041
1042 HistNumBadChanDepth[2][4][1] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS6");
1043 HistNumBadChanDepth[2][4][2] = (TH1F *)dir->FindObjectAny("h_sumAmplitudeperLS7");
1044
1045 HistNumBadChanFull[2] = (TH1F *)HistNumBadChanDepth[2][1][1]->Clone();
1046
1047 HistCutNumBadChanDepth[2][1][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS1");
1048 HistCutNumBadChanDepth[2][1][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS2");
1049
1050 HistCutNumBadChanDepth[2][2][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS3");
1051 HistCutNumBadChanDepth[2][2][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS4");
1052 HistCutNumBadChanDepth[2][2][3] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS5");
1053
1054 HistCutNumBadChanDepth[2][3][4] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS8");
1055
1056 HistCutNumBadChanDepth[2][4][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS6");
1057 HistCutNumBadChanDepth[2][4][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplitudeperLS7");
1058
1059 HistNumChanDepth[2][1][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS1");
1060 HistNumChanDepth[2][1][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS2");
1061
1062 HistNumChanDepth[2][2][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS3");
1063 HistNumChanDepth[2][2][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS4");
1064 HistNumChanDepth[2][2][3] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS5");
1065
1066 HistNumChanDepth[2][3][4] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS8");
1067
1068 HistNumChanDepth[2][4][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS6");
1069 HistNumChanDepth[2][4][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplitudeperLS7");
1070
1071 HistNumChanFull[2] = (TH1F *)HistNumChanDepth[2][1][1]->Clone();
1072
1073
1074
1075
1076 HistNumBadChanDepth[3][1][1] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS1");
1077 HistNumBadChanDepth[3][1][2] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS2");
1078
1079 HistNumBadChanDepth[3][2][1] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS3");
1080 HistNumBadChanDepth[3][2][2] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS4");
1081 HistNumBadChanDepth[3][2][3] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS5");
1082
1083 HistNumBadChanDepth[3][3][4] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS8");
1084
1085 HistNumBadChanDepth[3][4][1] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS6");
1086 HistNumBadChanDepth[3][4][2] = (TH1F *)dir->FindObjectAny("h_sumAmplperLS7");
1087
1088 HistNumBadChanFull[3] = (TH1F *)HistNumBadChanDepth[3][1][1]->Clone();
1089
1090 HistCutNumBadChanDepth[3][1][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS1");
1091 HistCutNumBadChanDepth[3][1][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS2");
1092
1093 HistCutNumBadChanDepth[3][2][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS3");
1094 HistCutNumBadChanDepth[3][2][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS4");
1095 HistCutNumBadChanDepth[3][2][3] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS5");
1096
1097 HistCutNumBadChanDepth[3][3][4] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS8");
1098
1099 HistCutNumBadChanDepth[3][4][1] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS6");
1100 HistCutNumBadChanDepth[3][4][2] = (TH1F *)dir->FindObjectAny("h_sumCutAmplperLS7");
1101
1102 HistNumChanDepth[3][1][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS1");
1103 HistNumChanDepth[3][1][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS2");
1104
1105 HistNumChanDepth[3][2][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS3");
1106 HistNumChanDepth[3][2][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS4");
1107 HistNumChanDepth[3][2][3] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS5");
1108
1109 HistNumChanDepth[3][3][4] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS8");
1110
1111 HistNumChanDepth[3][4][1] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS6");
1112 HistNumChanDepth[3][4][2] = (TH1F *)dir->FindObjectAny("h_sum0AmplperLS7");
1113
1114 HistNumChanFull[3] = (TH1F *)HistNumChanDepth[3][1][1]->Clone();
1115
1116
1117
1118
1119 HistNumBadChanDepth[4][1][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS1");
1120 HistNumBadChanDepth[4][1][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS2");
1121
1122 HistNumBadChanDepth[4][2][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS3");
1123 HistNumBadChanDepth[4][2][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS4");
1124 HistNumBadChanDepth[4][2][3] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS5");
1125
1126 HistNumBadChanDepth[4][3][4] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS8");
1127
1128 HistNumBadChanDepth[4][4][1] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS6");
1129 HistNumBadChanDepth[4][4][2] = (TH1F *)dir->FindObjectAny("h_sumTSmeanAperLS7");
1130
1131 HistNumBadChanFull[4] = (TH1F *)HistNumBadChanDepth[4][1][1]->Clone();
1132
1133 HistCutNumBadChanDepth[4][1][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS1");
1134 HistCutNumBadChanDepth[4][1][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS2");
1135
1136 HistCutNumBadChanDepth[4][2][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS3");
1137 HistCutNumBadChanDepth[4][2][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS4");
1138 HistCutNumBadChanDepth[4][2][3] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS5");
1139
1140 HistCutNumBadChanDepth[4][3][4] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS8");
1141
1142 HistCutNumBadChanDepth[4][4][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS6");
1143 HistCutNumBadChanDepth[4][4][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmeanAperLS7");
1144
1145 HistNumChanDepth[4][1][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS1");
1146 HistNumChanDepth[4][1][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS2");
1147
1148 HistNumChanDepth[4][2][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS3");
1149 HistNumChanDepth[4][2][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS4");
1150 HistNumChanDepth[4][2][3] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS5");
1151
1152 HistNumChanDepth[4][3][4] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS8");
1153
1154 HistNumChanDepth[4][4][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS6");
1155 HistNumChanDepth[4][4][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmeanAperLS7");
1156
1157 HistNumChanFull[4] = (TH1F *)HistNumChanDepth[4][1][1]->Clone();
1158
1159
1160
1161
1162 HistNumBadChanDepth[5][1][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS1");
1163 HistNumBadChanDepth[5][1][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS2");
1164
1165 HistNumBadChanDepth[5][2][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS3");
1166 HistNumBadChanDepth[5][2][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS4");
1167 HistNumBadChanDepth[5][2][3] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS5");
1168
1169 HistNumBadChanDepth[5][3][4] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS8");
1170
1171 HistNumBadChanDepth[5][4][1] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS6");
1172 HistNumBadChanDepth[5][4][2] = (TH1F *)dir->FindObjectAny("h_sumTSmaxAperLS7");
1173
1174 HistNumBadChanFull[5] = (TH1F *)HistNumBadChanDepth[5][1][1]->Clone();
1175
1176 HistCutNumBadChanDepth[5][1][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS1");
1177 HistCutNumBadChanDepth[5][1][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS2");
1178
1179 HistCutNumBadChanDepth[5][2][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS3");
1180 HistCutNumBadChanDepth[5][2][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS4");
1181 HistCutNumBadChanDepth[5][2][3] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS5");
1182
1183 HistCutNumBadChanDepth[5][3][4] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS8");
1184
1185 HistCutNumBadChanDepth[5][4][1] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS6");
1186 HistCutNumBadChanDepth[5][4][2] = (TH1F *)dir->FindObjectAny("h_sumCutTSmaxAperLS7");
1187
1188 HistNumChanDepth[5][1][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS1");
1189 HistNumChanDepth[5][1][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS2");
1190
1191 HistNumChanDepth[5][2][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS3");
1192 HistNumChanDepth[5][2][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS4");
1193 HistNumChanDepth[5][2][3] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS5");
1194
1195 HistNumChanDepth[5][3][4] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS8");
1196
1197 HistNumChanDepth[5][4][1] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS6");
1198 HistNumChanDepth[5][4][2] = (TH1F *)dir->FindObjectAny("h_sum0TSmaxAperLS7");
1199
1200 HistNumChanFull[5] = (TH1F *)HistNumChanDepth[5][1][1]->Clone();
1201
1202 for (int test = 0; test <= 5; test++) {
1203 for (int sub = 1; sub <= 4; sub++) {
1204 if (sub == 1 && test != 1)
1205 cHE->Divide(2, 1);
1206 if (sub == 1 && test == 1) {
1207 cFour1->Clear();
1208 cFour1->Divide(2, 2);
1209 }
1210 if (sub == 2 && test != 1)
1211 cHE->Divide(3, 1);
1212 if (sub == 2 && test == 1) {
1213 cNine->Clear();
1214 cNine->Divide(3, 3);
1215 }
1216 if (sub == 3)
1217 cHB->Divide(1, 1);
1218 if (sub == 4 && test != 1)
1219 cHE->Divide(2, 1);
1220 if (sub == 4 && test == 1) {
1221 cFour1->Clear();
1222 cFour1->Divide(2, 2);
1223 }
1224
1225 int kkkkkkmax = k_max[sub];
1226
1227 if ((sub == 4 || sub == 2 || sub == 1) && test == 1)
1228 kkkkkkmax = k_maxupgrade[sub];
1229 for (int k = k_min[sub]; k <= kkkkkkmax; k++) {
1230 if (sub == 1 && test != 1)
1231 cHE->cd(k);
1232 if (sub == 1 && test == 1)
1233 cFour1->cd(k);
1234 if (sub == 2 && test != 1)
1235 cHE->cd(k);
1236 if (sub == 2 && test == 1)
1237 cNine->cd(k);
1238 if (sub == 3)
1239 cHB->cd(k - 3);
1240 if (sub == 4 && test != 1)
1241 cHE->cd(k);
1242 if (sub == 4 && test == 1)
1243 cFour1->cd(k);
1244 gPad->SetGridy();
1245 gPad->SetGridx();
1246
1247
1248 if (sub == 1 && k == 1) {
1249 } else {
1250
1251 for (int x = 1; x <= HistNumBadChanFull[test]->GetXaxis()->GetNbins(); x++) {
1252 double ccc1 = HistNumBadChanDepth[test][sub][k]->GetBinContent(x);
1253 HistNumBadChanFull[test]->SetBinContent(x, HistNumBadChanFull[test]->GetBinContent(x) + ccc1);
1254 double ccc2 = HistNumChanDepth[test][sub][k]->GetBinContent(x);
1255 HistNumChanFull[test]->SetBinContent(x, HistNumChanFull[test]->GetBinContent(x) + ccc2);
1256 }
1257 }
1258
1259
1260 HistNumBadChanDepth[test][sub][k]->Divide(
1261 HistNumBadChanDepth[test][sub][k], HistNumChanDepth[test][sub][k], 1, 1, "B");
1262
1263 for (int x = 1; x <= HistNumBadChanDepth[test][sub][k]->GetXaxis()->GetNbins(); x++) {
1264 HistNumBadChanDepth[test][sub][k]->SetBinError(float(x), 0.01);
1265 }
1266
1267
1268
1269 HistNumBadChanDepth[test][sub][k]->GetXaxis()->SetRangeUser(0, MaxLum);
1270
1271
1272 HistNumBadChanDepth[test][sub][k]->SetMarkerStyle(20);
1273 HistNumBadChanDepth[test][sub][k]->SetMarkerSize(0.4);
1274 HistNumBadChanDepth[test][sub][k]->GetYaxis()->SetLabelSize(0.04);
1275 if (k == 1)
1276 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 1\b");
1277 if (k == 2)
1278 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 2\b");
1279 if (k == 3)
1280 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 3\b");
1281 if (k == 4)
1282 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 4\b");
1283 if (k == 5)
1284 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 5\b");
1285 if (k == 6)
1286 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 6\b");
1287 if (k == 7)
1288 HistNumBadChanDepth[test][sub][k]->SetTitle("Depth 7\b");
1289 HistNumBadChanDepth[test][sub][k]->SetXTitle("LS \b");
1290 if (test == 0)
1291 HistNumBadChanDepth[test][sub][k]->SetYTitle("<Number of bad channels> \b");
1292 if (test != 0)
1293 HistNumBadChanDepth[test][sub][k]->SetYTitle("Averaged estimator \b");
1294 HistNumBadChanDepth[test][sub][k]->SetMarkerColor(2);
1295 HistNumBadChanDepth[test][sub][k]->SetLineColor(0);
1296
1297 gPad->SetLogy();
1298 gPad->SetGridy();
1299 gPad->SetGridx();
1300
1301 HistNumBadChanDepth[test][sub][k]->Draw("Error");
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339 if (sub == 1 && test != 1) {
1340 cHE->Modified();
1341 }
1342 if (sub == 1 && test == 1) {
1343 cFour1->Modified();
1344 }
1345 if (sub == 2 && test != 1) {
1346 cHE->Modified();
1347 }
1348 if (sub == 2 && test == 1) {
1349 cNine->Modified();
1350 }
1351 if (sub == 3) {
1352 cHB->Modified();
1353 }
1354 if (sub == 4 && test != 1) {
1355 cHE->Modified();
1356 }
1357 if (sub == 4 && test == 1) {
1358 cFour1->Modified();
1359 }
1360
1361 }
1362
1363 if (test == 0) {
1364 if (sub == 1) {
1365 cHE->Print("HistNBCMNHB.png");
1366 cHE->Clear();
1367 }
1368 if (sub == 2) {
1369 cHE->Print("HistNBCMNHE.png");
1370 cHE->Clear();
1371 }
1372 if (sub == 3) {
1373 cHB->Print("HistNBCMNHO.png");
1374 cHB->Clear();
1375 }
1376 if (sub == 4) {
1377 cHE->Print("HistNBCMNHF.png");
1378 cHE->Clear();
1379 }
1380 }
1381
1382 if (test == 1) {
1383 if (sub == 1) {
1384 cFour1->Print("HistADCamplHB.png");
1385 cFour1->Clear();
1386 }
1387 if (sub == 2) {
1388 cNine->Print("HistADCamplHE.png");
1389 cNine->Clear();
1390 }
1391 if (sub == 3) {
1392 cHB->Print("HistADCamplHO.png");
1393 cHB->Clear();
1394 }
1395 if (sub == 4) {
1396 cFour1->Print("HistADCamplHF.png");
1397 cFour1->Clear();
1398 }
1399 }
1400 if (test == 2) {
1401 if (sub == 1) {
1402 cHE->Print("HistWidthHB.png");
1403 cHE->Clear();
1404 }
1405 if (sub == 2) {
1406 cHE->Print("HistWidthHE.png");
1407 cHE->Clear();
1408 }
1409 if (sub == 3) {
1410 cHB->Print("HistWidthHO.png");
1411 cHB->Clear();
1412 }
1413 if (sub == 4) {
1414 cHE->Print("HistWidthHF.png");
1415 cHE->Clear();
1416 }
1417 }
1418 if (test == 3) {
1419 if (sub == 1) {
1420 cHE->Print("HistRatioHB.png");
1421 cHE->Clear();
1422 }
1423 if (sub == 2) {
1424 cHE->Print("HistRatioHE.png");
1425 cHE->Clear();
1426 }
1427 if (sub == 3) {
1428 cHB->Print("HistRatioHO.png");
1429 cHB->Clear();
1430 }
1431 if (sub == 4) {
1432 cHE->Print("HistRatioHF.png");
1433 cHE->Clear();
1434 }
1435 }
1436 if (test == 4) {
1437 if (sub == 1) {
1438 cHE->Print("HistTmeanHB.png");
1439 cHE->Clear();
1440 }
1441 if (sub == 2) {
1442 cHE->Print("HistTmeanHE.png");
1443 cHE->Clear();
1444 }
1445 if (sub == 3) {
1446 cHB->Print("HistTmeanHO.png");
1447 cHB->Clear();
1448 }
1449 if (sub == 4) {
1450 cHE->Print("HistTmeanHF.png");
1451 cHE->Clear();
1452 }
1453 }
1454 if (test == 5) {
1455 if (sub == 1) {
1456 cHE->Print("HistTmaxHB.png");
1457 cHE->Clear();
1458 }
1459 if (sub == 2) {
1460 cHE->Print("HistTmaxHE.png");
1461 cHE->Clear();
1462 }
1463 if (sub == 3) {
1464 cHB->Print("HistTmaxHO.png");
1465 cHB->Clear();
1466 }
1467 if (sub == 4) {
1468 cHE->Print("HistTmaxHF.png");
1469 cHE->Clear();
1470 }
1471 }
1472 }
1473
1474 if (test == 1) {
1475 for (int x = 1; x <= HistNumChanFull[6]->GetXaxis()->GetNbins(); x++) {
1476 HistNumChanFull[6]->SetBinContent(x, 0.0);
1477 int depthsubcount = 0.;
1478 for (int sub = 1; sub <= 4; sub++) {
1479 int kkkkkkmax = k_max[sub];
1480 if (sub == 4 || sub == 2 || sub == 1)
1481 kkkkkkmax = k_maxupgrade[sub];
1482
1483 for (int k = k_min[sub]; k <= kkkkkkmax; k++) {
1484
1485
1486 depthsubcount++;
1487 double ccc1 = HistNumBadChanDepth[test][sub][k]->GetBinContent(x);
1488 HistNumChanFull[6]->SetBinContent(x, HistNumChanFull[6]->GetBinContent(x) + ccc1);
1489 }
1490 }
1491 if (depthsubcount > 0.) {
1492 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / depthsubcount);
1493 } else {
1494 HistNumChanFull[6]->SetBinContent(x, (HistNumChanFull[6]->GetBinContent(x)) / 8.);
1495 }
1496 }
1497 }
1498
1499 if (test != 1) {
1500 cHB->Divide(1, 1);
1501 cHB->cd(1);
1502 } else {
1503 cHE->Divide(2, 1);
1504 cHE->cd(1);
1505 }
1506 HistNumBadChanFull[test]->Divide(HistNumBadChanFull[test], HistNumChanFull[test], 1, 1, "B");
1507 TH1F *kfitq = new TH1F("kfitq", "", MaxLum, 1., MaxLum + 1.);
1508 int nx = kfitq->GetXaxis()->GetNbins();
1509 for (int i = 1; i <= nx; i++) {
1510 double ccc1 = HistNumBadChanFull[test]->GetBinContent(i);
1511 if (ccc1 > 0.) {
1512 kfitq->Fill(float(i), ccc1);
1513 kfitq->SetBinError(float(i), 0.01);
1514 }
1515 }
1516 kfitq->SetMarkerStyle(20);
1517 kfitq->SetMarkerSize(0.4);
1518 kfitq->GetYaxis()->SetLabelSize(0.04);
1519 if (test == 0)
1520 kfitq->SetTitle("Average Nbch for whole Hcal \b");
1521 if (test != 0)
1522 kfitq->SetTitle("Averaged estimator for whole Hcal \b");
1523 kfitq->SetXTitle("LS \b");
1524 if (test == 0)
1525 kfitq->SetYTitle("<Number of bad channels> \b");
1526 if (test != 0)
1527 kfitq->SetYTitle("Averaged estimator \b");
1528 kfitq->SetMarkerColor(2);
1529 kfitq->SetLineColor(0);
1530 gPad->SetGridx();
1531 kfitq->Draw("Error");
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549 if (test == 1) {
1550 cHE->cd(2);
1551 TH1F *lpuio = new TH1F("lpuio", "", MaxLum, 1., MaxLum + 1.);
1552 int nx = lpuio->GetXaxis()->GetNbins();
1553 for (int i = 1; i <= nx; i++) {
1554 double ccc1 = HistNumChanFull[6]->GetBinContent(i);
1555 if (ccc1 > 0.) {
1556 lpuio->Fill(float(i), ccc1);
1557 lpuio->SetBinError(float(i), 0.01);
1558 }
1559 }
1560 lpuio->SetMarkerStyle(20);
1561 lpuio->SetMarkerSize(0.4);
1562 lpuio->GetYaxis()->SetLabelSize(0.04);
1563 lpuio->SetTitle("Mean of Averaged Amplitudes over all Hcal sub-detectors \b");
1564 lpuio->SetXTitle("LS \b");
1565 lpuio->SetYTitle("Mean of Averaged estimator \b");
1566 lpuio->SetMarkerColor(2);
1567 lpuio->SetLineColor(0);
1568 gPad->SetGridx();
1569 lpuio->Draw("Error");
1570 }
1571 if (test == 0) {
1572 cHB->Print("HistCapID.png");
1573 cHB->Clear();
1574 }
1575 if (test == 1) {
1576 cHE->Print("HistADCAmpl.png");
1577 cHE->Clear();
1578 }
1579 if (test == 2) {
1580 cHB->Print("HistWidth.png");
1581 cHB->Clear();
1582 }
1583 if (test == 3) {
1584 cHB->Print("HistRatio.png");
1585 cHB->Clear();
1586 }
1587 if (test == 4) {
1588 cHB->Print("HistTmean.png");
1589 cHB->Clear();
1590 }
1591 if (test == 5) {
1592 cHB->Print("HistTmax.png");
1593 cHB->Clear();
1594 }
1595
1596
1597 if (kfitq)
1598 delete kfitq;
1599 }
1600
1601
1602
1603
1604
1605
1606 TH1F *HistAbnormNumBadChanDepth[5][5];
1607
1608
1609
1610
1611
1612 HistAbnormNumBadChanDepth[1][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth1_HB");
1613 HistAbnormNumBadChanDepth[1][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth2_HB");
1614 HistAbnormNumBadChanDepth[2][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth1_HE");
1615 HistAbnormNumBadChanDepth[2][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth2_HE");
1616 HistAbnormNumBadChanDepth[2][3] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth3_HE");
1617 HistAbnormNumBadChanDepth[3][4] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth4_HO");
1618 HistAbnormNumBadChanDepth[4][1] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth1_HF");
1619 HistAbnormNumBadChanDepth[4][2] = (TH1F *)dir->FindObjectAny("h_runnbadchannelsC_depth2_HF");
1620
1621 for (int sub = 1; sub <= 4; sub++) {
1622 if (sub == 1)
1623 cHB->Divide(2, 1);
1624 if (sub == 2)
1625 cHE->Divide(3, 1);
1626 if (sub == 3)
1627 cONE->Divide(1, 1);
1628 if (sub == 4)
1629 cHB->Divide(2, 1);
1630 for (int k = k_min[sub]; k <= k_max[sub]; k++) {
1631 if (sub == 1)
1632 cHB->cd(k);
1633 if (sub == 2)
1634 cHE->cd(k);
1635 if (sub == 3)
1636 cONE->cd(k - 3);
1637 if (sub == 4)
1638 cHB->cd(k);
1639 gPad->SetGridy();
1640 gPad->SetGridx();
1641
1642 HistAbnormNumBadChanDepth[sub][k]->Divide(
1643 HistAbnormNumBadChanDepth[sub][k], HistNumChanDepth[0][sub][k], 1, 1, "B");
1644 if (k == 1)
1645 HistAbnormNumBadChanDepth[sub][k]->SetTitle("Depth 1\b");
1646 if (k == 2)
1647 HistAbnormNumBadChanDepth[sub][k]->SetTitle("Depth 2\b");
1648 if (k == 3)
1649 HistAbnormNumBadChanDepth[sub][k]->SetTitle("Depth 3\b");
1650 if (k == 4)
1651 HistAbnormNumBadChanDepth[sub][k]->SetTitle("Depth 4\b");
1652 HistAbnormNumBadChanDepth[sub][k]->SetXTitle("LS \b");
1653 HistAbnormNumBadChanDepth[sub][k]->SetYTitle("< Number of bad channels > \b");
1654 if (MaxLum <= 1000) {
1655 HistAbnormNumBadChanDepth[sub][k]->SetMarkerStyle(20);
1656 HistAbnormNumBadChanDepth[sub][k]->SetMarkerSize(0.5);
1657 HistAbnormNumBadChanDepth[sub][k]->SetMarkerColor(1);
1658 HistAbnormNumBadChanDepth[sub][k]->SetLineColor(0);
1659 HistAbnormNumBadChanDepth[sub][k]->GetXaxis()->SetRangeUser(0, MaxLum);
1660 HistAbnormNumBadChanDepth[sub][k]->Draw("P");
1661 } else {
1662 HistAbnormNumBadChanDepth[sub][k]->SetLineColor(1);
1663 HistAbnormNumBadChanDepth[sub][k]->GetXaxis()->SetRangeUser(0, MaxLum);
1664 HistAbnormNumBadChanDepth[sub][k]->Draw("L");
1665 }
1666 }
1667 if (sub == 1) {
1668 cHB->Print("Hist_CAPID_Abnorm_HB.png");
1669 cHB->Clear();
1670 }
1671 if (sub == 2) {
1672 cHE->Print("Hist_CAPID_Abnorm_HE.png");
1673 cHE->Clear();
1674 }
1675 if (sub == 3) {
1676 cONE->Print("Hist_CAPID_Abnorm_HO.png");
1677 cONE->Clear();
1678 }
1679 if (sub == 4) {
1680 cHB->Print("Hist_CAPID_Abnorm_HF.png");
1681 cHB->Clear();
1682 }
1683 }
1684
1685
1686
1687
1688
1689 TH1F *HistPortBadEventsDepth[5][5];
1690
1691 HistPortBadEventsDepth[1][1] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth1_HB");
1692 HistPortBadEventsDepth[1][2] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth2_HB");
1693 HistPortBadEventsDepth[2][1] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth1_HE");
1694 HistPortBadEventsDepth[2][2] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth2_HE");
1695 HistPortBadEventsDepth[2][3] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth3_HE");
1696 HistPortBadEventsDepth[3][4] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth4_HO");
1697 HistPortBadEventsDepth[4][1] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth1_HF");
1698 HistPortBadEventsDepth[4][2] = (TH1F *)dir->FindObjectAny("h_runbadrateC_depth2_HF");
1699
1700 TH1F *HistNumRateDepth[5][5];
1701 HistNumRateDepth[1][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HB");
1702 HistNumRateDepth[1][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HB");
1703 HistNumRateDepth[2][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HE");
1704 HistNumRateDepth[2][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HE");
1705 HistNumRateDepth[2][3] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth3_HE");
1706 HistNumRateDepth[3][4] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth4_HO");
1707 HistNumRateDepth[4][1] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth1_HF");
1708 HistNumRateDepth[4][2] = (TH1F *)dir->FindObjectAny("h_runbadrate0_depth2_HF");
1709
1710 for (int sub = 1; sub <= 4; sub++) {
1711 if (sub == 1)
1712 cHB->Divide(2, 1);
1713 if (sub == 2)
1714 cHE->Divide(3, 1);
1715 if (sub == 3)
1716 cONE->Divide(1, 1);
1717 if (sub == 4)
1718 cHB->Divide(2, 1);
1719 for (int k = k_min[sub]; k <= k_max[sub]; k++) {
1720 if (sub == 1)
1721 cHB->cd(k);
1722 if (sub == 2)
1723 cHE->cd(k);
1724 if (sub == 3)
1725 cONE->cd(k - 3);
1726 if (sub == 4)
1727 cHB->cd(k);
1728 gPad->SetGridy();
1729 gPad->SetGridx();
1730
1731 HistPortBadEventsDepth[sub][k]->Divide(HistPortBadEventsDepth[sub][k], HistNumRateDepth[sub][k], 1, 1, "B");
1732
1733 if (k == 1)
1734 HistPortBadEventsDepth[sub][k]->SetTitle("Depth 1\b");
1735 if (k == 2)
1736 HistPortBadEventsDepth[sub][k]->SetTitle("Depth 2\b");
1737 if (k == 3)
1738 HistPortBadEventsDepth[sub][k]->SetTitle("Depth 3\b");
1739 if (k == 4)
1740 HistPortBadEventsDepth[sub][k]->SetTitle("Depth 4\b");
1741 HistPortBadEventsDepth[sub][k]->SetXTitle("LS \b");
1742 HistPortBadEventsDepth[sub][k]->SetYTitle("< Number of bad channels > \b");
1743 if (MaxLum <= 1000) {
1744 HistPortBadEventsDepth[sub][k]->SetMarkerStyle(20);
1745 HistPortBadEventsDepth[sub][k]->SetMarkerSize(0.5);
1746 HistPortBadEventsDepth[sub][k]->SetMarkerColor(1);
1747 HistPortBadEventsDepth[sub][k]->SetLineColor(0);
1748 HistPortBadEventsDepth[sub][k]->GetXaxis()->SetRangeUser(0, MaxLum);
1749 HistPortBadEventsDepth[sub][k]->Draw("P");
1750 } else {
1751 HistPortBadEventsDepth[sub][k]->SetLineColor(1);
1752 HistPortBadEventsDepth[sub][k]->GetXaxis()->SetRangeUser(0, MaxLum);
1753 HistPortBadEventsDepth[sub][k]->Draw("L");
1754 }
1755 }
1756 if (sub == 1) {
1757 cHB->Print("HistPortHB.png");
1758 cHB->Clear();
1759 }
1760 if (sub == 2) {
1761 cHE->Print("HistPortHE.png");
1762 cHE->Clear();
1763 }
1764 if (sub == 3) {
1765 cONE->Print("HistPortHO.png");
1766 cONE->Clear();
1767 }
1768 if (sub == 4) {
1769 cHB->Print("HistPortHF.png");
1770 cHB->Clear();
1771 }
1772 }
1773
1774
1775
1776
1777
1778
1779
1780 TH1F *HistNBadChsDepth[5][5];
1781
1782 HistNBadChsDepth[1][1] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth1_HB");
1783 HistNBadChsDepth[1][2] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth2_HB");
1784 HistNBadChsDepth[2][1] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth1_HE");
1785 HistNBadChsDepth[2][2] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth2_HE");
1786 HistNBadChsDepth[2][3] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth3_HE");
1787 HistNBadChsDepth[3][4] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth4_HO");
1788 HistNBadChsDepth[4][1] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth1_HF");
1789 HistNBadChsDepth[4][2] = (TH1F *)dir->FindObjectAny("h_nbadchannels_depth2_HF");
1790
1791 for (int sub = 1; sub <= 4; sub++) {
1792 if (sub == 1)
1793 cHB->Divide(2, 1);
1794 if (sub == 2)
1795 cHE->Divide(3, 1);
1796 if (sub == 3)
1797 cONE->Divide(1, 1);
1798 if (sub == 4)
1799 cHB->Divide(2, 1);
1800 for (int k = k_min[sub]; k <= k_max[sub]; k++) {
1801 if (sub == 1)
1802 cHB->cd(k);
1803 if (sub == 2)
1804 cHE->cd(k);
1805 if (sub == 3)
1806 cONE->cd(k - 3);
1807 if (sub == 4)
1808 cHB->cd(k);
1809 gPad->SetGridy();
1810 gPad->SetGridx();
1811 gPad->SetLogy();
1812
1813 if (k == 1)
1814 HistNBadChsDepth[sub][k]->SetTitle("Depth 1\b");
1815 if (k == 2)
1816 HistNBadChsDepth[sub][k]->SetTitle("Depth 2\b");
1817 if (k == 3)
1818 HistNBadChsDepth[sub][k]->SetTitle("Depth 3\b");
1819 if (k == 4)
1820 HistNBadChsDepth[sub][k]->SetTitle("Depth 4\b");
1821 HistNBadChsDepth[sub][k]->SetXTitle("Number of bad channels\b");
1822 HistNBadChsDepth[sub][k]->SetYTitle("Number of events\b");
1823
1824
1825
1826
1827 HistNBadChsDepth[sub][k]->Draw("");
1828 }
1829 if (sub == 1) {
1830 cHB->Print("HistNBadChsHB.png");
1831 cHB->Clear();
1832 }
1833 if (sub == 2) {
1834 cHE->Print("HistNBadChsHE.png");
1835 cHE->Clear();
1836 }
1837 if (sub == 3) {
1838 cONE->Print("HistNBadChsHO.png");
1839 cONE->Clear();
1840 }
1841 if (sub == 4) {
1842 cHB->Print("HistNBadChsHF.png");
1843 cHB->Clear();
1844 }
1845 }
1846
1847
1848
1849
1850
1851
1852
1853 int flagErrAB_HB[2];
1854 flagErrAB_HB[0] = -1;
1855 flagErrAB_HB[1] = -1;
1856 double avedelta_HB = 0.;
1857 int lastLumiBin_HB = -1;
1858 int LSofFirstErrB_HB = -1;
1859 {
1860 const int specCountA = 4;
1861 const int specColors[specCountA] = {1, 2, 3, 4};
1862 const TString hnames[specCountA][2] = {{"h_sumADCAmplperLS1_P1", "h_sum0ADCAmplperLS1_P1"},
1863 {"h_sumADCAmplperLS1_P2", "h_sum0ADCAmplperLS1_P2"},
1864 {"h_sumADCAmplperLS1_M1", "h_sum0ADCAmplperLS1_M1"},
1865 {"h_sumADCAmplperLS1_M2", "h_sum0ADCAmplperLS1_M2"}};
1866
1867 std::vector<TH1F *> hV;
1868 THStack *hs = new THStack("hs", "ADCAmplerLS1");
1869 cHB->Clear();
1870
1871 cHB->Divide(2, 1);
1872 cHB->cd(1);
1873
1874
1875 for (int i = 0; i < specCountA; i++) {
1876 if (1)
1877 std::cout << "debugger: errA_HB : get histos for i=" << i << " " << hnames[i][0] << " and " << hnames[i][1]
1878 << "\n";
1879 TH1F *h1 = (TH1F *)dir->FindObjectAny(hnames[i][0]);
1880 TH1F *h0 = (TH1F *)dir->FindObjectAny(hnames[i][1]);
1881 if (!h1 || !h0) {
1882 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
1883 ptext->AddText("Missing histo");
1884 if (!h1) {
1885 std::cout << "\tfailed to get " << hnames[i][0] << "\n";
1886 ptext->AddText(hnames[i][0]);
1887 }
1888 if (!h0) {
1889 std::cout << "\tfailed to get " << hnames[i][1] << "\n";
1890 ptext->AddText(hnames[i][1]);
1891 }
1892 ptext->Draw();
1893 continue;
1894 }
1895 TH1F *hERT1orig = (TH1F *)h1->Clone(Form("ERT1orig_%d", i));
1896 hERT1orig->Divide(h1, h0, 1, 1, "B");
1897
1898 if ((lastLumiBin_HB < 0) && (i == 0)) {
1899 for (int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
1900 if (hERT1orig->GetBinContent(ibin) == 0)
1901 lastLumiBin_HB = ibin;
1902 else
1903 break;
1904 }
1905 lastLumiBin_HB += 3;
1906 if (lastLumiBin_HB >= hERT1orig->GetNbinsX())
1907 lastLumiBin_HB = -1;
1908 }
1909 TH1F *hERT1 = NULL;
1910 if (lastLumiBin_HB > 1) {
1911 if (!copyContents(&hERT1, Form("ERT1_%d", i), "", hERT1orig, lastLumiBin_HB)) {
1912 std::cout << "code failed" << std::endl;
1913 gSystem->Exit(1);
1914 }
1915 } else
1916 hERT1 = hERT1orig;
1917
1918 hERT1->GetXaxis()->SetTitle("<ADCAmpl> per LS HB: black-P1, red-P2,green-M1,blue-M2");
1919 hV.push_back(hERT1);
1920 hERT1->SetMarkerStyle(20);
1921 hERT1->SetMarkerSize(0.4);
1922 hERT1->SetXTitle("<A>(ev.in LS & ch.) - HB P1 - iLS \b");
1923 hERT1->SetMarkerColor(specColors[i]);
1924 hERT1->SetLineColor(0);
1925 hs->Add(hERT1);
1926 delete h1;
1927 delete h0;
1928 if (hERT1 != hERT1orig)
1929 delete hERT1orig;
1930 }
1931 hs->Draw("LPE1 nostack");
1932 cHB->Update();
1933 hs->GetXaxis()->SetTitle("<A> per LS: black-P1, red-P2,green-M1,blue-M2");
1934 hs->Draw("LPE1 nostack");
1935 gPad->SetGridy();
1936
1937
1938
1939 cHB->cd(2);
1940 TH1F *diff = new TH1F("diff", "", 100, 0., 4.);
1941
1942 if (int(hV.size()) == specCountA) {
1943 flagErrAB_HB[0] = 0;
1944 double sumdelta = 0.;
1945 int nnndelta = 0;
1946 for (int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
1947 double delta = 0.;
1948 double maxdelta = 0.;
1949 for (unsigned int i = 0; i < hV.size(); i++) {
1950 const TH1F *hi = hV[i];
1951 for (unsigned int j = 1; j < hV.size(); j++) {
1952 const TH1F *hj = hV[j];
1953 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
1954 if (delta > maxdelta)
1955 maxdelta = delta;
1956 }
1957 }
1958 if (maxdelta > 0.) {
1959 diff->Fill(maxdelta);
1960 sumdelta += maxdelta;
1961 nnndelta++;
1962 }
1963 }
1964
1965 avedelta_HB = sumdelta / nnndelta;
1966 std::cout << "******************>>>>>> ErrA_HB: avedelta_HB = " << avedelta_HB << std::endl;
1967 if (avedelta_HB > 0.24 || (avedelta_HB < 0.14 && avedelta_HB > 0.)) {
1968 flagErrAB_HB[0] = 1;
1969 }
1970 }
1971 diff->SetMarkerStyle(20);
1972 diff->SetMarkerSize(0.8);
1973 diff->SetXTitle("max difference \b");
1974 diff->SetMarkerColor(2);
1975 diff->SetLineColor(0);
1976 gPad->SetGridx();
1977 gPad->SetLogy();
1978 diff->Draw("Error");
1979
1980 cHB->Update();
1981 cHB->Print("HistErrA_HB.png");
1982 cHB->Clear();
1983
1984
1985
1986 if (diff)
1987 delete diff;
1988 for (unsigned int i = 0; i < hV.size(); i++)
1989 delete hV[i];
1990 }
1991
1992
1993
1994 {
1995 const int specCountB = 4;
1996 const TString hnames[specCountB][2] = {{"h_2DsumErrorBLS1", "h_2D0sumErrorBLS1"},
1997 {"h_sumErrorBperLS1", "h_sum0ErrorBperLS1"},
1998 {"h_2DsumErrorBLS2", "h_2D0sumErrorBLS2"},
1999 {"h_sumErrorBperLS2", "h_sum0ErrorBperLS2"}};
2000
2001 for (int depth = 1; depth <= 2; depth++) {
2002 cHB->Clear();
2003 cHB->Divide(2, 1);
2004 cHB->cd(1);
2005
2006 TH1F *hRate2orig = NULL;
2007 TH2F *h2Cefz6 = NULL;
2008 TString hname1 = hnames[2 * depth - 2][0];
2009 TString hname0 = hnames[2 * depth - 2][1];
2010 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
2011 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
2012 if (1)
2013 std::cout << "debugger: errB_HB depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2014 if (!twod1 || !twod0) {
2015 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2016 ptext->AddText("Missing histos");
2017 if (!twod1) {
2018 std::cout << "\tfailed to get " << hname1 << "\n";
2019 ptext->AddText(hname1);
2020 }
2021 if (!twod0) {
2022 std::cout << "\tfailed to get " << hname0 << "\n";
2023 ptext->AddText(hname0);
2024 }
2025 ptext->Draw();
2026 } else {
2027 h2Cefz6 = (TH2F *)twod1->Clone(Form("Cefz6_%d", depth));
2028 h2Cefz6->SetTitle(Form("HB Depth %d \b", depth));
2029 h2Cefz6->Divide(twod1, twod0, 1, 1, "B");
2030
2031 gPad->SetGridy();
2032 gPad->SetGridx();
2033 gPad->SetLogz();
2034 h2Cefz6->SetTitle(Form("Depth %d \b", depth));
2035 h2Cefz6->SetMarkerStyle(20);
2036 h2Cefz6->SetMarkerSize(0.4);
2037
2038 h2Cefz6->SetXTitle("#eta \b");
2039 h2Cefz6->SetYTitle("#phi \b");
2040 h2Cefz6->SetZTitle(Form("<ErrorB> - HB Depth%d \b", depth));
2041 h2Cefz6->SetMarkerColor(2);
2042 h2Cefz6->SetLineColor(2);
2043 h2Cefz6->Draw("COLZ");
2044
2045 delete twod1;
2046 delete twod0;
2047 }
2048
2049 cHB->cd(2);
2050 hname1 = hnames[2 * depth - 1][0];
2051 hname0 = hnames[2 * depth - 1][1];
2052 TH1F *h1 = (TH1F *)dir->FindObjectAny(hname1);
2053 TH1F *h0 = (TH1F *)dir->FindObjectAny(hname0);
2054 if (1)
2055 std::cout << "errB_HB depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2056 if (!h1 || !h0) {
2057 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2058 ptext->AddText("Missing histo");
2059 if (!h1) {
2060 std::cout << "\tfailed to get " << hname1 << "\n";
2061 ptext->AddText(hname1);
2062 }
2063 if (!h0) {
2064 std::cout << "\tfailed to get " << hname0 << "\n";
2065 ptext->AddText(hname0);
2066 }
2067 ptext->Draw();
2068 } else {
2069 gPad->SetGridx();
2070 gPad->SetGridy();
2071
2072 hRate2orig = (TH1F *)h1->Clone(Form("Rate2orig_%d", depth));
2073 hRate2orig->Divide(h1, h0, 1, 1, "B");
2074
2075 TH1F *hRate2 = NULL;
2076 if (lastLumiBin_HB > 1) {
2077 if (!copyContents(&hRate2, Form("Rate2_%d", depth), "", hRate2orig, lastLumiBin_HB)) {
2078 std::cout << "code failed" << std::endl;
2079 gSystem->Exit(1);
2080 }
2081 } else
2082 hRate2 = hRate2orig;
2083
2084 hRate2->SetTitle(Form("Depth %d \b", depth));
2085 hRate2->SetMarkerStyle(20);
2086 hRate2->SetMarkerSize(0.8);
2087
2088 hRate2->SetXTitle(Form("<ErrorB>(ev.in LS & ch.) - HB depth%d - iLS \b", depth));
2089 hRate2->SetMarkerColor(2);
2090 hRate2->SetLineColor(0);
2091 hRate2->Draw("Error");
2092
2093 if (LSofFirstErrB_HB == -1) {
2094 int nx = hRate2->GetXaxis()->GetNbins();
2095 for (int i = 1; i <= nx; i++) {
2096 double ccc1 = hRate2->GetBinContent(i);
2097 if (ccc1 > 0.) {
2098 cout << "****************>>>>>>>>>>> ErrB_HB bad LS start at iLS = " << i << " with rate = " << ccc1
2099 << endl;
2100 LSofFirstErrB_HB = i;
2101 break;
2102 }
2103 }
2104 }
2105
2106 delete h1;
2107 delete h0;
2108 if (hRate2 != hRate2orig) {
2109 delete hRate2orig;
2110 hRate2orig = hRate2;
2111 }
2112 }
2113
2114 cHB->Update();
2115 cHB->Print(Form("HistErrB_HB_%d.png", depth));
2116 cHB->Clear();
2117 if (h2Cefz6)
2118 delete h2Cefz6;
2119 if (hRate2orig)
2120 delete hRate2orig;
2121 }
2122 }
2123
2124
2125
2126
2127
2128
2129
2130 int flagErrAB_HE[2];
2131 flagErrAB_HE[0] = -1;
2132 flagErrAB_HE[1] = -1;
2133 double avedelta_HE = 0.;
2134 int lastLumiBin_HE = -1;
2135 int LSofFirstErrB_HE = -1;
2136 {
2137 const int specCountA = 4;
2138 const int specColors[specCountA] = {1, 2, 3, 4};
2139 const TString hnames[specCountA][2] = {{"h_sumADCAmplperLS3_P1", "h_sum0ADCAmplperLS3_P1"},
2140 {"h_sumADCAmplperLS3_P2", "h_sum0ADCAmplperLS3_P2"},
2141 {"h_sumADCAmplperLS3_M1", "h_sum0ADCAmplperLS3_M1"},
2142 {"h_sumADCAmplperLS3_M2", "h_sum0ADCAmplperLS3_M2"}};
2143
2144 std::vector<TH1F *> hV;
2145 THStack *hs = new THStack("hs", "ADCAmplerLS1");
2146 cHB->Clear();
2147
2148 cHB->Divide(2, 1);
2149 cHB->cd(1);
2150
2151
2152 for (int i = 0; i < specCountA; i++) {
2153 if (1)
2154 std::cout << "debugger: errA_HE : get histos for i=" << i << " " << hnames[i][0] << " and " << hnames[i][1]
2155 << "\n";
2156 TH1F *h1 = (TH1F *)dir->FindObjectAny(hnames[i][0]);
2157 TH1F *h0 = (TH1F *)dir->FindObjectAny(hnames[i][1]);
2158 if (!h1 || !h0) {
2159 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2160 ptext->AddText("Missing histo");
2161 if (!h1) {
2162 std::cout << "\tfailed to get " << hnames[i][0] << "\n";
2163 ptext->AddText(hnames[i][0]);
2164 }
2165 if (!h0) {
2166 std::cout << "\tfailed to get " << hnames[i][1] << "\n";
2167 ptext->AddText(hnames[i][1]);
2168 }
2169 ptext->Draw();
2170 continue;
2171 }
2172 TH1F *hERT1orig = (TH1F *)h1->Clone(Form("ERT1orig_%d", i));
2173 hERT1orig->Divide(h1, h0, 1, 1, "B");
2174
2175 if ((lastLumiBin_HE < 0) && (i == 0)) {
2176 for (int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2177 if (hERT1orig->GetBinContent(ibin) == 0)
2178 lastLumiBin_HE = ibin;
2179 else
2180 break;
2181 }
2182 lastLumiBin_HE += 3;
2183 if (lastLumiBin_HE >= hERT1orig->GetNbinsX())
2184 lastLumiBin_HE = -1;
2185 }
2186 TH1F *hERT1 = NULL;
2187 if (lastLumiBin_HE > 1) {
2188 if (!copyContents(&hERT1, Form("ERT1_%d", i), "", hERT1orig, lastLumiBin_HE)) {
2189 std::cout << "code failed" << std::endl;
2190 gSystem->Exit(1);
2191 }
2192 } else
2193 hERT1 = hERT1orig;
2194
2195 hERT1->GetXaxis()->SetTitle("<ADCAmpl> per LS HE: black-P1, red-P2,green-M1,blue-M2");
2196 hV.push_back(hERT1);
2197 hERT1->SetMarkerStyle(20);
2198 hERT1->SetMarkerSize(0.4);
2199 hERT1->SetXTitle("<A>(ev.in LS & ch.) - HE P1 - iLS \b");
2200 hERT1->SetMarkerColor(specColors[i]);
2201 hERT1->SetLineColor(0);
2202 hs->Add(hERT1);
2203 delete h1;
2204 delete h0;
2205 if (hERT1 != hERT1orig)
2206 delete hERT1orig;
2207 }
2208 hs->Draw("LPE1 nostack");
2209 cHB->Update();
2210 hs->GetXaxis()->SetTitle("<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2211 hs->Draw("LPE1 nostack");
2212 gPad->SetGridy();
2213
2214
2215
2216 cHB->cd(2);
2217 TH1F *diff = new TH1F("diff", "", 100, 0., 4.);
2218
2219 if (int(hV.size()) == specCountA) {
2220 flagErrAB_HE[0] = 0;
2221 double sumdelta = 0.;
2222 int nnndelta = 0;
2223 for (int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2224 double delta = 0.;
2225 double maxdelta = 0.;
2226 for (unsigned int i = 0; i < hV.size(); i++) {
2227 const TH1F *hi = hV[i];
2228 for (unsigned int j = 1; j < hV.size(); j++) {
2229 const TH1F *hj = hV[j];
2230 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2231 if (delta > maxdelta)
2232 maxdelta = delta;
2233 }
2234 }
2235 if (maxdelta > 0.) {
2236 diff->Fill(maxdelta);
2237 sumdelta += maxdelta;
2238 nnndelta++;
2239 }
2240 }
2241
2242 avedelta_HE = sumdelta / nnndelta;
2243 std::cout << "******************>>>>>> ErrA_HE: avedelta_HE = " << avedelta_HE << std::endl;
2244 if (avedelta_HE > 1.1 || (avedelta_HE < 0.5 && avedelta_HE > 0.)) {
2245 flagErrAB_HE[0] = 1;
2246 }
2247 }
2248 diff->SetMarkerStyle(20);
2249 diff->SetMarkerSize(0.8);
2250 diff->SetXTitle("max difference \b");
2251 diff->SetMarkerColor(2);
2252 diff->SetLineColor(0);
2253 gPad->SetGridx();
2254 gPad->SetLogy();
2255 diff->Draw("Error");
2256
2257 cHB->Update();
2258 cHB->Print("HistErrA_HE.png");
2259 cHB->Clear();
2260
2261
2262
2263 if (diff)
2264 delete diff;
2265 for (unsigned int i = 0; i < hV.size(); i++)
2266 delete hV[i];
2267 }
2268
2269
2270
2271 {
2272 const int specCountB = 6;
2273 const TString hnames[specCountB][2] = {{"h_2DsumErrorBLS3", "h_2D0sumErrorBLS3"},
2274 {"h_sumErrorBperLS3", "h_sum0ErrorBperLS3"},
2275 {"h_2DsumErrorBLS4", "h_2D0sumErrorBLS4"},
2276 {"h_sumErrorBperLS4", "h_sum0ErrorBperLS4"},
2277 {"h_2DsumErrorBLS5", "h_2D0sumErrorBLS5"},
2278 {"h_sumErrorBperLS5", "h_sum0ErrorBperLS5"}};
2279
2280 for (int depth = 1; depth <= 3; depth++) {
2281 cHB->Clear();
2282 cHB->Divide(2, 1);
2283 cHB->cd(1);
2284
2285 TH1F *hRate2orig = NULL;
2286 TH2F *h2Cefz6 = NULL;
2287 TString hname1 = hnames[2 * depth - 2][0];
2288 TString hname0 = hnames[2 * depth - 2][1];
2289 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
2290 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
2291 if (1)
2292 std::cout << "debugger: errB_HE depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2293 if (!twod1 || !twod0) {
2294 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2295 ptext->AddText("Missing histos");
2296 if (!twod1) {
2297 std::cout << "\tfailed to get " << hname1 << "\n";
2298 ptext->AddText(hname1);
2299 }
2300 if (!twod0) {
2301 std::cout << "\tfailed to get " << hname0 << "\n";
2302 ptext->AddText(hname0);
2303 }
2304 ptext->Draw();
2305 } else {
2306 h2Cefz6 = (TH2F *)twod1->Clone(Form("Cefz6_%d", depth));
2307 h2Cefz6->SetTitle(Form("HE Depth %d \b", depth));
2308 h2Cefz6->Divide(twod1, twod0, 1, 1, "B");
2309
2310 gPad->SetGridy();
2311 gPad->SetGridx();
2312 gPad->SetLogz();
2313 h2Cefz6->SetTitle(Form("Depth %d \b", depth));
2314 h2Cefz6->SetMarkerStyle(20);
2315 h2Cefz6->SetMarkerSize(0.4);
2316
2317 h2Cefz6->SetXTitle("#eta \b");
2318 h2Cefz6->SetYTitle("#phi \b");
2319 h2Cefz6->SetZTitle(Form("<ErrorB> - HE Depth%d \b", depth));
2320 h2Cefz6->SetMarkerColor(2);
2321 h2Cefz6->SetLineColor(2);
2322 h2Cefz6->Draw("COLZ");
2323
2324 delete twod1;
2325 delete twod0;
2326 }
2327
2328 cHB->cd(2);
2329 hname1 = hnames[2 * depth - 1][0];
2330 hname0 = hnames[2 * depth - 1][1];
2331 TH1F *h1 = (TH1F *)dir->FindObjectAny(hname1);
2332 TH1F *h0 = (TH1F *)dir->FindObjectAny(hname0);
2333 if (1)
2334 std::cout << "errB_HE depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2335 if (!h1 || !h0) {
2336 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2337 ptext->AddText("Missing histo");
2338 if (!h1) {
2339 std::cout << "\tfailed to get " << hname1 << "\n";
2340 ptext->AddText(hname1);
2341 }
2342 if (!h0) {
2343 std::cout << "\tfailed to get " << hname0 << "\n";
2344 ptext->AddText(hname0);
2345 }
2346 ptext->Draw();
2347 } else {
2348 gPad->SetGridx();
2349 gPad->SetGridy();
2350
2351 hRate2orig = (TH1F *)h1->Clone(Form("Rate2orig_%d", depth));
2352 hRate2orig->Divide(h1, h0, 1, 1, "B");
2353
2354 TH1F *hRate2 = NULL;
2355 if (lastLumiBin_HE > 1) {
2356 if (!copyContents(&hRate2, Form("Rate2_%d", depth), "", hRate2orig, lastLumiBin_HE)) {
2357 std::cout << "code failed" << std::endl;
2358 gSystem->Exit(1);
2359 }
2360 } else
2361 hRate2 = hRate2orig;
2362
2363 hRate2->SetTitle(Form("Depth %d \b", depth));
2364 hRate2->SetMarkerStyle(20);
2365 hRate2->SetMarkerSize(0.8);
2366
2367 hRate2->SetXTitle(Form("<ErrorB>(ev.in LS & ch.) - HE depth%d - iLS \b", depth));
2368 hRate2->SetMarkerColor(2);
2369 hRate2->SetLineColor(0);
2370 hRate2->Draw("Error");
2371
2372 if (LSofFirstErrB_HE == -1) {
2373 int nx = hRate2->GetXaxis()->GetNbins();
2374 for (int i = 1; i <= nx; i++) {
2375 double ccc1 = hRate2->GetBinContent(i);
2376 if (ccc1 > 0.) {
2377 cout << "****************>>>>>>>>>>> ErrB_HE bad LS start at iLS = " << i << " with rate = " << ccc1
2378 << endl;
2379 LSofFirstErrB_HE = i;
2380 break;
2381 }
2382 }
2383 }
2384
2385 delete h1;
2386 delete h0;
2387 if (hRate2 != hRate2orig) {
2388 delete hRate2orig;
2389 hRate2orig = hRate2;
2390 }
2391 }
2392
2393 cHB->Update();
2394 cHB->Print(Form("HistErrB_HE_%d.png", depth));
2395 cHB->Clear();
2396 if (h2Cefz6)
2397 delete h2Cefz6;
2398 if (hRate2orig)
2399 delete hRate2orig;
2400 }
2401 }
2402
2403
2404
2405
2406
2407
2408
2409 int flagErrAB_HO[2];
2410 flagErrAB_HO[0] = -1;
2411 flagErrAB_HO[1] = -1;
2412 double avedelta_HO = 0.;
2413 int lastLumiBin_HO = -1;
2414 int LSofFirstErrB_HO = -1;
2415 {
2416 const int specCountA = 4;
2417 const int specColors[specCountA] = {1, 2, 3, 4};
2418 const TString hnames[specCountA][2] = {{"h_sumADCAmplperLS8_P1", "h_sum0ADCAmplperLS8_P1"},
2419 {"h_sumADCAmplperLS8_P2", "h_sum0ADCAmplperLS8_P2"},
2420 {"h_sumADCAmplperLS8_M1", "h_sum0ADCAmplperLS8_M1"},
2421 {"h_sumADCAmplperLS8_M2", "h_sum0ADCAmplperLS8_M2"}};
2422
2423 std::vector<TH1F *> hV;
2424 THStack *hs = new THStack("hs", "ADCAmplerLS1");
2425 cHB->Clear();
2426
2427 cHB->Divide(2, 1);
2428 cHB->cd(1);
2429
2430
2431 for (int i = 0; i < specCountA; i++) {
2432 if (1)
2433 std::cout << "debugger: errA_HO : get histos for i=" << i << " " << hnames[i][0] << " and " << hnames[i][1]
2434 << "\n";
2435 TH1F *h1 = (TH1F *)dir->FindObjectAny(hnames[i][0]);
2436 TH1F *h0 = (TH1F *)dir->FindObjectAny(hnames[i][1]);
2437 if (!h1 || !h0) {
2438 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2439 ptext->AddText("Missing histo");
2440 if (!h1) {
2441 std::cout << "\tfailed to get " << hnames[i][0] << "\n";
2442 ptext->AddText(hnames[i][0]);
2443 }
2444 if (!h0) {
2445 std::cout << "\tfailed to get " << hnames[i][1] << "\n";
2446 ptext->AddText(hnames[i][1]);
2447 }
2448 ptext->Draw();
2449 continue;
2450 }
2451 TH1F *hoRT1orig = (TH1F *)h1->Clone(Form("ERT1orig_%d", i));
2452 hoRT1orig->Divide(h1, h0, 1, 1, "B");
2453
2454 if ((lastLumiBin_HO < 0) && (i == 0)) {
2455 for (int ibin = hoRT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2456 if (hoRT1orig->GetBinContent(ibin) == 0)
2457 lastLumiBin_HO = ibin;
2458 else
2459 break;
2460 }
2461 lastLumiBin_HO += 3;
2462 if (lastLumiBin_HO >= hoRT1orig->GetNbinsX())
2463 lastLumiBin_HO = -1;
2464 }
2465 TH1F *hoRT1 = NULL;
2466 if (lastLumiBin_HO > 1) {
2467 if (!copyContents(&hoRT1, Form("ERT1_%d", i), "", hoRT1orig, lastLumiBin_HO)) {
2468 std::cout << "code failed" << std::endl;
2469 gSystem->Exit(1);
2470 }
2471 } else
2472 hoRT1 = hoRT1orig;
2473
2474 hoRT1->GetXaxis()->SetTitle("<ADCAmpl> per LS HO: black-P1, red-P2,green-M1,blue-M2");
2475 hV.push_back(hoRT1);
2476 hoRT1->SetMarkerStyle(20);
2477 hoRT1->SetMarkerSize(0.4);
2478 hoRT1->SetXTitle("<A>(ev.in LS & ch.) - HO P1 - iLS \b");
2479 hoRT1->SetMarkerColor(specColors[i]);
2480 hoRT1->SetLineColor(0);
2481 hs->Add(hoRT1);
2482 delete h1;
2483 delete h0;
2484 if (hoRT1 != hoRT1orig)
2485 delete hoRT1orig;
2486 }
2487 hs->Draw("LPE1 nostack");
2488 cHB->Update();
2489 hs->GetXaxis()->SetTitle("<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2490 hs->Draw("LPE1 nostack");
2491 gPad->SetGridy();
2492
2493
2494
2495 cHB->cd(2);
2496 TH1F *diff = new TH1F("diff", "", 100, 0., 4.);
2497
2498 if (int(hV.size()) == specCountA) {
2499 flagErrAB_HO[0] = 0;
2500 double sumdelta = 0.;
2501 int nnndelta = 0;
2502 for (int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2503 double delta = 0.;
2504 double maxdelta = 0.;
2505 for (unsigned int i = 0; i < hV.size(); i++) {
2506 const TH1F *hi = hV[i];
2507 for (unsigned int j = 1; j < hV.size(); j++) {
2508 const TH1F *hj = hV[j];
2509 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2510 if (delta > maxdelta)
2511 maxdelta = delta;
2512 }
2513 }
2514 if (maxdelta > 0.) {
2515 diff->Fill(maxdelta);
2516 sumdelta += maxdelta;
2517 nnndelta++;
2518 }
2519 }
2520
2521 avedelta_HO = sumdelta / nnndelta;
2522 std::cout << "******************>>>>>> ErrA_HO: avedelta_HO = " << avedelta_HO << std::endl;
2523 if (avedelta_HO > 0.8 || (avedelta_HO < 0.2 && avedelta_HO > 0.)) {
2524 flagErrAB_HO[0] = 1;
2525 }
2526 }
2527 diff->SetMarkerStyle(20);
2528 diff->SetMarkerSize(0.8);
2529 diff->SetXTitle("max difference \b");
2530 diff->SetMarkerColor(2);
2531 diff->SetLineColor(0);
2532 gPad->SetGridx();
2533 gPad->SetLogy();
2534 diff->Draw("Error");
2535
2536 cHB->Update();
2537 cHB->Print("HistErrA_HO.png");
2538 cHB->Clear();
2539
2540
2541
2542 if (diff)
2543 delete diff;
2544 for (unsigned int i = 0; i < hV.size(); i++)
2545 delete hV[i];
2546 }
2547
2548
2549
2550 {
2551 const int specCountB = 2;
2552 const TString hnames[specCountB][2] = {{"h_2DsumErrorBLS8", "h_2D0sumErrorBLS8"},
2553 {"h_sumErrorBperLS8", "h_sum0ErrorBperLS8"}};
2554
2555 for (int depth = 4; depth <= 4; depth++) {
2556 cHB->Clear();
2557 cHB->Divide(2, 1);
2558 cHB->cd(1);
2559
2560 TH1F *hRate2orig = NULL;
2561 TH2F *h2Cefz6 = NULL;
2562 TString hname1 = hnames[2 * depth - 8][0];
2563 TString hname0 = hnames[2 * depth - 8][1];
2564 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
2565 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
2566 if (1)
2567 std::cout << "debugger: errB_HO depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2568 if (!twod1 || !twod0) {
2569 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2570 ptext->AddText("Missing histos");
2571 if (!twod1) {
2572 std::cout << "\tfailed to get " << hname1 << "\n";
2573 ptext->AddText(hname1);
2574 }
2575 if (!twod0) {
2576 std::cout << "\tfailed to get " << hname0 << "\n";
2577 ptext->AddText(hname0);
2578 }
2579 ptext->Draw();
2580 } else {
2581 h2Cefz6 = (TH2F *)twod1->Clone(Form("Cefz6_%d", depth));
2582 h2Cefz6->SetTitle(Form("HO Depth %d \b", depth));
2583 h2Cefz6->Divide(twod1, twod0, 1, 1, "B");
2584
2585 gPad->SetGridy();
2586 gPad->SetGridx();
2587 gPad->SetLogz();
2588 h2Cefz6->SetTitle(Form("Depth %d \b", depth));
2589 h2Cefz6->SetMarkerStyle(20);
2590 h2Cefz6->SetMarkerSize(0.4);
2591
2592 h2Cefz6->SetXTitle("#eta \b");
2593 h2Cefz6->SetYTitle("#phi \b");
2594 h2Cefz6->SetZTitle(Form("<ErrorB> - HO Depth%d \b", depth));
2595 h2Cefz6->SetMarkerColor(2);
2596 h2Cefz6->SetLineColor(2);
2597 h2Cefz6->Draw("COLZ");
2598
2599 delete twod1;
2600 delete twod0;
2601 }
2602
2603 cHB->cd(2);
2604 hname1 = hnames[2 * depth - 7][0];
2605 hname0 = hnames[2 * depth - 7][1];
2606 TH1F *h1 = (TH1F *)dir->FindObjectAny(hname1);
2607 TH1F *h0 = (TH1F *)dir->FindObjectAny(hname0);
2608 if (1)
2609 std::cout << "errB_HO depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2610 if (!h1 || !h0) {
2611 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2612 ptext->AddText("Missing histo");
2613 if (!h1) {
2614 std::cout << "\tfailed to get " << hname1 << "\n";
2615 ptext->AddText(hname1);
2616 }
2617 if (!h0) {
2618 std::cout << "\tfailed to get " << hname0 << "\n";
2619 ptext->AddText(hname0);
2620 }
2621 ptext->Draw();
2622 } else {
2623 gPad->SetGridx();
2624 gPad->SetGridy();
2625
2626 hRate2orig = (TH1F *)h1->Clone(Form("Rate2orig_%d", depth));
2627 hRate2orig->Divide(h1, h0, 1, 1, "B");
2628
2629 TH1F *hRate2 = NULL;
2630 if (lastLumiBin_HO > 1) {
2631 if (!copyContents(&hRate2, Form("Rate2_%d", depth), "", hRate2orig, lastLumiBin_HO)) {
2632 std::cout << "code failed" << std::endl;
2633 gSystem->Exit(1);
2634 }
2635 } else
2636 hRate2 = hRate2orig;
2637
2638 hRate2->SetTitle(Form("Depth %d \b", depth));
2639 hRate2->SetMarkerStyle(20);
2640 hRate2->SetMarkerSize(0.8);
2641
2642 hRate2->SetXTitle(Form("<ErrorB>(ev.in LS & ch.) - HO depth%d - iLS \b", depth));
2643 hRate2->SetMarkerColor(2);
2644 hRate2->SetLineColor(0);
2645 hRate2->Draw("Error");
2646
2647 if (LSofFirstErrB_HO == -1) {
2648 int nx = hRate2->GetXaxis()->GetNbins();
2649 for (int i = 1; i <= nx; i++) {
2650 double ccc1 = hRate2->GetBinContent(i);
2651 if (ccc1 > 0.) {
2652 cout << "****************>>>>>>>>>>> ErrB_HO bad LS start at iLS = " << i << " with rate = " << ccc1
2653 << endl;
2654 LSofFirstErrB_HO = i;
2655 break;
2656 }
2657 }
2658 }
2659
2660 delete h1;
2661 delete h0;
2662 if (hRate2 != hRate2orig) {
2663 delete hRate2orig;
2664 hRate2orig = hRate2;
2665 }
2666 }
2667
2668 cHB->Update();
2669 cHB->Print(Form("HistErrB_HO_%d.png", depth));
2670 cHB->Clear();
2671 if (h2Cefz6)
2672 delete h2Cefz6;
2673 if (hRate2orig)
2674 delete hRate2orig;
2675 }
2676 }
2677
2678
2679
2680
2681
2682
2683 int flagErrAB_HF[2];
2684 flagErrAB_HF[0] = -1;
2685 flagErrAB_HF[1] = -1;
2686 double avedelta_HF = 0.;
2687 int lastLumiBin_HF = -1;
2688 int LSofFirstErrB_HF = -1;
2689 {
2690 const int specCountA = 4;
2691 const int specColors[specCountA] = {1, 2, 3, 4};
2692 const TString hnames[specCountA][2] = {{"h_sumADCAmplperLS6_P1", "h_sum0ADCAmplperLS6_P1"},
2693 {"h_sumADCAmplperLS6_P2", "h_sum0ADCAmplperLS6_P2"},
2694 {"h_sumADCAmplperLS6_M1", "h_sum0ADCAmplperLS6_M1"},
2695 {"h_sumADCAmplperLS6_M2", "h_sum0ADCAmplperLS6_M2"}};
2696
2697 std::vector<TH1F *> hV;
2698 THStack *hs = new THStack("hs", "ADCAmplerLS6");
2699 cHB->Clear();
2700
2701 cHB->Divide(2, 1);
2702 cHB->cd(1);
2703
2704
2705 for (int i = 0; i < specCountA; i++) {
2706 if (1)
2707 std::cout << "debugger: errA_HF : get histos for i=" << i << " " << hnames[i][0] << " and " << hnames[i][1]
2708 << "\n";
2709 TH1F *h1 = (TH1F *)dir->FindObjectAny(hnames[i][0]);
2710 TH1F *h0 = (TH1F *)dir->FindObjectAny(hnames[i][1]);
2711 if (!h1 || !h0) {
2712 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2713 ptext->AddText("Missing histo");
2714 if (!h1) {
2715 std::cout << "\tfailed to get " << hnames[i][0] << "\n";
2716 ptext->AddText(hnames[i][0]);
2717 }
2718 if (!h0) {
2719 std::cout << "\tfailed to get " << hnames[i][1] << "\n";
2720 ptext->AddText(hnames[i][1]);
2721 }
2722 ptext->Draw();
2723 continue;
2724 }
2725 TH1F *hERT1orig = (TH1F *)h1->Clone(Form("ERT1orig_%d", i));
2726 hERT1orig->Divide(h1, h0, 1, 1, "B");
2727
2728 if ((lastLumiBin_HF < 0) && (i == 0)) {
2729 for (int ibin = hERT1orig->GetNbinsX(); ibin >= 1; ibin--) {
2730 if (hERT1orig->GetBinContent(ibin) == 0)
2731 lastLumiBin_HF = ibin;
2732 else
2733 break;
2734 }
2735 lastLumiBin_HF += 3;
2736 if (lastLumiBin_HF >= hERT1orig->GetNbinsX())
2737 lastLumiBin_HF = -1;
2738 }
2739 TH1F *hERT1 = NULL;
2740 if (lastLumiBin_HF > 1) {
2741 if (!copyContents(&hERT1, Form("ERT1_%d", i), "", hERT1orig, lastLumiBin_HF)) {
2742 std::cout << "code failed" << std::endl;
2743 gSystem->Exit(1);
2744 }
2745 } else
2746 hERT1 = hERT1orig;
2747
2748 hERT1->GetXaxis()->SetTitle("<ADCAmpl> per LS HF: black-P1, red-P2,green-M1,blue-M2");
2749 hV.push_back(hERT1);
2750 hERT1->SetMarkerStyle(20);
2751 hERT1->SetMarkerSize(0.4);
2752 hERT1->SetXTitle("<A>(ev.in LS & ch.) - HF P1 - iLS \b");
2753 hERT1->SetMarkerColor(specColors[i]);
2754 hERT1->SetLineColor(0);
2755 hs->Add(hERT1);
2756 delete h1;
2757 delete h0;
2758 if (hERT1 != hERT1orig)
2759 delete hERT1orig;
2760 }
2761 hs->Draw("LPE1 nostack");
2762 cHB->Update();
2763 hs->GetXaxis()->SetTitle("<A> per LS: black-P1, red-P2,green-M1,blue-M2");
2764 hs->Draw("LPE1 nostack");
2765 gPad->SetGridy();
2766
2767
2768
2769 cHB->cd(2);
2770 TH1F *diff = new TH1F("diff", "", 100, 0., 4.);
2771
2772 if (int(hV.size()) == specCountA) {
2773 flagErrAB_HF[0] = 0;
2774 double sumdelta = 0.;
2775 int nnndelta = 0;
2776 std::cout << "******** GetNbinsX = " << hV[0]->GetNbinsX() << std::endl;
2777 for (int ibin = 1; ibin <= hV[0]->GetNbinsX(); ibin++) {
2778 double delta = 0.;
2779 double maxdelta = 0.;
2780 for (unsigned int i = 0; i < hV.size(); i++) {
2781 const TH1F *hi = hV[i];
2782 for (unsigned int j = 1; j < hV.size(); j++) {
2783 const TH1F *hj = hV[j];
2784 delta = fabs(hi->GetBinContent(ibin) - hj->GetBinContent(ibin));
2785 if (delta > maxdelta)
2786 maxdelta = delta;
2787 }
2788 }
2789
2790 if (maxdelta > 0.) {
2791 diff->Fill(maxdelta);
2792 sumdelta += maxdelta;
2793 nnndelta++;
2794 }
2795 }
2796
2797 avedelta_HF = sumdelta / nnndelta;
2798
2799 if (avedelta_HF > 2.4 || (avedelta_HF < 0.8 && avedelta_HF > 0.)) {
2800 flagErrAB_HF[0] = 1;
2801 }
2802 }
2803 diff->SetMarkerStyle(20);
2804 diff->SetMarkerSize(0.8);
2805 diff->SetXTitle("max difference \b");
2806 diff->SetMarkerColor(2);
2807 diff->SetLineColor(0);
2808 gPad->SetGridx();
2809 gPad->SetLogy();
2810 diff->Draw("Error");
2811
2812 cHB->Update();
2813 cHB->Print("HistErrA_HF.png");
2814 cHB->Clear();
2815
2816
2817 if (diff)
2818 delete diff;
2819 for (unsigned int i = 0; i < hV.size(); i++)
2820 delete hV[i];
2821 }
2822
2823
2824 {
2825 const int specCountB = 4;
2826 const TString hnames[specCountB][2] = {{"h_2DsumErrorBLS6", "h_2D0sumErrorBLS6"},
2827 {"h_sumErrorBperLS6", "h_sum0ErrorBperLS6"},
2828 {"h_2DsumErrorBLS7", "h_2D0sumErrorBLS7"},
2829 {"h_sumErrorBperLS7", "h_sum0ErrorBperLS7"}};
2830
2831 for (int depth = 1; depth <= 2; depth++) {
2832 cHB->Clear();
2833 cHB->Divide(2, 1);
2834 cHB->cd(1);
2835 TH1F *hRate2orig = NULL;
2836 TH2F *h2Cefz6 = NULL;
2837 TString hname1 = hnames[2 * depth - 2][0];
2838 TString hname0 = hnames[2 * depth - 2][1];
2839 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
2840 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
2841 if (1)
2842 std::cout << "debugger: errB_HF depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2843 if (!twod1 || !twod0) {
2844 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2845 ptext->AddText("Missing histos");
2846 if (!twod1) {
2847 std::cout << "\tfailed to get " << hname1 << "\n";
2848 ptext->AddText(hname1);
2849 }
2850 if (!twod0) {
2851 std::cout << "\tfailed to get " << hname0 << "\n";
2852 ptext->AddText(hname0);
2853 }
2854 ptext->Draw();
2855 } else {
2856 h2Cefz6 = (TH2F *)twod1->Clone(Form("Cefz6_%d", depth));
2857 h2Cefz6->SetTitle(Form("HF Depth %d \b", depth));
2858 h2Cefz6->Divide(twod1, twod0, 1, 1, "B");
2859
2860 gPad->SetGridy();
2861 gPad->SetGridx();
2862 gPad->SetLogz();
2863 h2Cefz6->SetTitle(Form("Depth %d \b", depth));
2864 h2Cefz6->SetMarkerStyle(20);
2865 h2Cefz6->SetMarkerSize(0.4);
2866
2867 h2Cefz6->SetXTitle("#eta \b");
2868 h2Cefz6->SetYTitle("#phi \b");
2869 h2Cefz6->SetZTitle(Form("<ErrorB> - HF Depth%d \b", depth));
2870 h2Cefz6->SetMarkerColor(2);
2871 h2Cefz6->SetLineColor(2);
2872 h2Cefz6->Draw("COLZ");
2873 delete twod1;
2874 delete twod0;
2875 }
2876 cHB->cd(2);
2877 hname1 = hnames[2 * depth - 1][0];
2878 hname0 = hnames[2 * depth - 1][1];
2879 TH1F *h1 = (TH1F *)dir->FindObjectAny(hname1);
2880 TH1F *h0 = (TH1F *)dir->FindObjectAny(hname0);
2881 if (1)
2882 std::cout << "errB_HF depth=" << depth << ". get 2D histos " << hname1 << " and " << hname0 << "\n";
2883 if (!h1 || !h0) {
2884 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2885 ptext->AddText("Missing histo");
2886 if (!h1) {
2887 std::cout << "\tfailed to get " << hname1 << "\n";
2888 ptext->AddText(hname1);
2889 }
2890 if (!h0) {
2891 std::cout << "\tfailed to get " << hname0 << "\n";
2892 ptext->AddText(hname0);
2893 }
2894 ptext->Draw();
2895 } else {
2896 gPad->SetGridx();
2897 gPad->SetGridy();
2898
2899 hRate2orig = (TH1F *)h1->Clone(Form("Rate2orig_%d", depth));
2900 hRate2orig->Divide(h1, h0, 1, 1, "B");
2901
2902 TH1F *hRate2 = NULL;
2903 if (lastLumiBin_HF > 1) {
2904 if (!copyContents(&hRate2, Form("Rate2_%d", depth), "", hRate2orig, lastLumiBin_HF)) {
2905 std::cout << "code failed" << std::endl;
2906 gSystem->Exit(1);
2907 }
2908 } else
2909 hRate2 = hRate2orig;
2910 hRate2->SetTitle(Form("Depth %d \b", depth));
2911 hRate2->SetMarkerStyle(20);
2912 hRate2->SetMarkerSize(0.8);
2913
2914 hRate2->SetXTitle(Form("<ErrorB>(ev.in LS & ch.) - HF depth%d - iLS \b", depth));
2915 hRate2->SetMarkerColor(2);
2916 hRate2->SetLineColor(0);
2917 hRate2->Draw("Error");
2918 if (LSofFirstErrB_HF == -1) {
2919 int nx = hRate2->GetXaxis()->GetNbins();
2920 for (int i = 1; i <= nx; i++) {
2921 double ccc1 = hRate2->GetBinContent(i);
2922 if (ccc1 > 0.) {
2923 cout << "****************>>>>>>>>>>> ErrB_HF bad LS start at iLS = " << i << " with rate = " << ccc1
2924 << endl;
2925 LSofFirstErrB_HF = i;
2926 break;
2927 }
2928 }
2929 }
2930 delete h1;
2931 delete h0;
2932 if (hRate2 != hRate2orig) {
2933 delete hRate2orig;
2934 hRate2orig = hRate2;
2935 }
2936 }
2937 cHB->Update();
2938 cHB->Print(Form("HistErrB_HF_%d.png", depth));
2939 cHB->Clear();
2940 if (h2Cefz6)
2941 delete h2Cefz6;
2942 if (hRate2orig)
2943 delete hRate2orig;
2944 }
2945 }
2946
2947
2948
2949
2950
2951
2952
2953 for (int depth = 1; depth <= 2; depth++) {
2954 TH2F *h2Ceff = NULL;
2955 TH2F *h2Diffe = NULL;
2956
2957 TH2F *h3Ceff = NULL;
2958
2959 cHE->Clear();
2960 cHE->Divide(3, 1);
2961
2962 cHE->cd(1);
2963
2964 TString hname1 = Form("h_mapDepth%dADCAmpl_HB", depth);
2965 TString hname0 = Form("h_mapDepth%d_HB", depth);
2966 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
2967 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
2968 if (!twod1 || !twod0) {
2969 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
2970 ptext->AddText("Missing histo");
2971 std::cout << "specHB test: failed to load " << hname1 << " and/or " << hname0 << "\n";
2972 if (!twod1)
2973 ptext->AddText(hname1);
2974 if (!twod0)
2975 ptext->AddText(hname0);
2976 ptext->Draw();
2977 continue;
2978 } else {
2979
2980 h2Ceff = (TH2F *)twod1->Clone(Form("Ceff_HB%d", depth));
2981 h2Ceff->SetTitle(Form("HB Depth %d. (No cut) \b", depth));
2982 h2Ceff->Divide(twod1, twod0, 1, 1, "B");
2983
2984 gPad->SetGridy();
2985 gPad->SetGridx();
2986 gPad->SetLogz();
2987 h2Ceff->SetMarkerStyle(20);
2988 h2Ceff->SetMarkerSize(0.4);
2989
2990 h2Ceff->SetXTitle("#eta \b");
2991 h2Ceff->SetYTitle("#phi \b");
2992 h2Ceff->SetZTitle("h_mapDepth1ADCAmpl_HB \b");
2993 h2Ceff->SetMarkerColor(2);
2994 h2Ceff->SetLineColor(2);
2995 h2Ceff->Draw("COLZ");
2996 }
2997
2998 cHE->cd(2);
2999
3000 if (h2Ceff) {
3001
3002 h2Diffe = (TH2F *)h2Ceff->Clone(Form("Diffe_Depth%d_HB", depth));
3003 h2Diffe->SetTitle(Form("HB Depth %d. Cut avg(ADCAmpl) > 25 \b", depth));
3004 int nx = h2Ceff->GetXaxis()->GetNbins();
3005 int ny = h2Ceff->GetYaxis()->GetNbins();
3006 for (int i = 1; i <= nx; i++) {
3007 for (int j = 1; j <= ny; j++) {
3008 double ccc1 = h2Ceff->GetBinContent(i, j);
3009 h2Diffe->SetBinContent(i, j, 0.);
3010 if (ccc1 > 25.)
3011 h2Diffe->SetBinContent(i, j, ccc1);
3012 }
3013 }
3014 gPad->SetGridy();
3015 gPad->SetGridx();
3016 gPad->SetLogz();
3017 h2Diffe->SetMarkerStyle(20);
3018 h2Diffe->SetMarkerSize(0.4);
3019
3020 h2Diffe->SetXTitle("#eta \b");
3021 h2Diffe->SetYTitle("#phi \b");
3022 h2Diffe->SetZTitle("<ADCAmpl> bigger 25.- HB Depth1 \b");
3023 h2Diffe->SetMarkerColor(2);
3024 h2Diffe->SetLineColor(2);
3025 h2Diffe->Draw("COLZ");
3026 }
3027
3028 cHE->cd(3);
3029 TString hname3 = Form("h_mapDepth%dADCAmpl225Copy_HB", depth);
3030 TH2F *twod3 = (TH2F *)dir->FindObjectAny(hname3);
3031 if (!twod3 || !twod0) {
3032 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3033 ptext->AddText("Missing histo");
3034 std::cout << "specHB test: failed to load " << hname3 << " and/or " << hname0 << "\n";
3035 if (!twod3)
3036 ptext->AddText(hname3);
3037 if (!twod0)
3038 ptext->AddText(hname0);
3039 ptext->Draw();
3040 continue;
3041 } else {
3042
3043 h3Ceff = (TH2F *)twod3->Clone(Form("CeffA_HB%d", depth));
3044 h3Ceff->SetTitle(Form("HB Depth %d. \b", depth));
3045 h3Ceff->Divide(twod3, twod0, 1, 1, "B");
3046 gPad->SetGridy();
3047 gPad->SetGridx();
3048 gPad->SetLogz();
3049 h3Ceff->SetMarkerStyle(20);
3050 h3Ceff->SetMarkerSize(0.4);
3051
3052 h3Ceff->SetXTitle("#eta \b");
3053 h3Ceff->SetYTitle("#phi \b");
3054 h3Ceff->SetZTitle("rate for channels of HB \b");
3055 h3Ceff->SetMarkerColor(2);
3056 h3Ceff->SetLineColor(2);
3057 h3Ceff->Draw("COLZ");
3058 }
3059
3060 cHE->Update();
3061 cHE->Print(Form("ChkErrA_HB%d.png", depth));
3062 cHE->Clear();
3063
3064 if (h2Ceff)
3065 delete h2Ceff;
3066 if (h2Diffe)
3067 delete h2Diffe;
3068
3069
3070 if (twod1)
3071 delete twod1;
3072 if (twod3)
3073 delete twod3;
3074 if (h3Ceff)
3075 delete h3Ceff;
3076 }
3077
3078
3079
3080
3081
3082 for (int depth = 1; depth <= 3; depth++) {
3083 TH2F *h2Ceff = NULL;
3084 TH2F *h2Diffe = NULL;
3085
3086 TH2F *h3Ceff = NULL;
3087
3088 cHE->Clear();
3089 cHE->Divide(3, 1);
3090
3091 cHE->cd(1);
3092
3093 TString hname1 = Form("h_mapDepth%dADCAmpl_HE", depth);
3094 TString hname0 = Form("h_mapDepth%d_HE", depth);
3095 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
3096 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
3097 if (!twod1 || !twod0) {
3098 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3099 ptext->AddText("Missing histo");
3100 std::cout << "specHE test: failed to load " << hname1 << " and/or " << hname0 << "\n";
3101 if (!twod1)
3102 ptext->AddText(hname1);
3103 if (!twod0)
3104 ptext->AddText(hname0);
3105 ptext->Draw();
3106 continue;
3107 } else {
3108
3109 h2Ceff = (TH2F *)twod1->Clone(Form("Ceff_HE%d", depth));
3110 h2Ceff->SetTitle(Form("HE Depth %d. (No cut) \b", depth));
3111 h2Ceff->Divide(twod1, twod0, 1, 1, "B");
3112
3113 gPad->SetGridy();
3114 gPad->SetGridx();
3115 gPad->SetLogz();
3116 h2Ceff->SetTitleOffset(0.75, "Z");
3117 h2Ceff->SetMarkerStyle(20);
3118 h2Ceff->SetMarkerSize(0.4);
3119
3120 h2Ceff->SetXTitle("#eta \b");
3121 h2Ceff->SetYTitle("#phi \b");
3122 h2Ceff->SetZTitle("h_mapDepth1ADCAmpl_HE \b");
3123 h2Ceff->SetMarkerColor(2);
3124 h2Ceff->SetLineColor(2);
3125 h2Ceff->Draw("COLZ");
3126 }
3127
3128 cHE->cd(2);
3129
3130 if (h2Ceff) {
3131
3132 h2Diffe = (TH2F *)h2Ceff->Clone(Form("Diffe_Depth%d_HE", depth));
3133 h2Diffe->SetTitle(Form("HE Depth %d. Cut avg(ADCAmpl) > 1000 fC \b", depth));
3134 int nx = h2Ceff->GetXaxis()->GetNbins();
3135 int ny = h2Ceff->GetYaxis()->GetNbins();
3136 for (int i = 1; i <= nx; i++) {
3137 for (int j = 1; j <= ny; j++) {
3138 double ccc1 = h2Ceff->GetBinContent(i, j);
3139 h2Diffe->SetBinContent(i, j, 0.);
3140 if (ccc1 > 1000.)
3141 h2Diffe->SetBinContent(i, j, ccc1);
3142 }
3143 }
3144 gPad->SetGridy();
3145 gPad->SetGridx();
3146 gPad->SetLogz();
3147 h2Diffe->SetMarkerStyle(20);
3148 h2Diffe->SetMarkerSize(0.4);
3149
3150 h2Diffe->SetXTitle("#eta \b");
3151 h2Diffe->SetYTitle("#phi \b");
3152 h2Diffe->SetZTitle("<ADCAmpl> bigger 1000.fC - HE Depth1 \b");
3153 h2Diffe->SetMarkerColor(2);
3154 h2Diffe->SetLineColor(2);
3155 h2Diffe->Draw("COLZ");
3156 }
3157
3158 cHE->cd(3);
3159 TString hname3 = Form("h_mapDepth%dADCAmpl225Copy_HE", depth);
3160 TH2F *twod3 = (TH2F *)dir->FindObjectAny(hname3);
3161 if (!twod3 || !twod0) {
3162 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3163 ptext->AddText("Missing histo");
3164 std::cout << "specHE test: failed to load " << hname3 << " and/or " << hname0 << "\n";
3165 if (!twod3)
3166 ptext->AddText(hname3);
3167 if (!twod0)
3168 ptext->AddText(hname0);
3169 ptext->Draw();
3170 continue;
3171 } else {
3172
3173 h3Ceff = (TH2F *)twod3->Clone(Form("CeffA_HE%d", depth));
3174 h3Ceff->SetTitle(Form("HE Depth %d. \b", depth));
3175 h3Ceff->Divide(twod3, twod0, 1, 1, "B");
3176 gPad->SetGridy();
3177 gPad->SetGridx();
3178 gPad->SetLogz();
3179 h3Ceff->SetMarkerStyle(20);
3180 h3Ceff->SetMarkerSize(0.4);
3181
3182 h3Ceff->SetXTitle("#eta \b");
3183 h3Ceff->SetYTitle("#phi \b");
3184 h3Ceff->SetZTitle("rate for channels of HE \b");
3185 h3Ceff->SetMarkerColor(2);
3186 h3Ceff->SetLineColor(2);
3187 h3Ceff->Draw("COLZ");
3188 }
3189
3190 cHE->Update();
3191 cHE->Print(Form("ChkErrA_HE%d.png", depth));
3192 cHE->Clear();
3193
3194 if (h2Ceff)
3195 delete h2Ceff;
3196 if (h2Diffe)
3197 delete h2Diffe;
3198
3199
3200 if (twod1)
3201 delete twod1;
3202 if (twod3)
3203 delete twod3;
3204 if (h3Ceff)
3205 delete h3Ceff;
3206 }
3207
3208
3209
3210
3211
3212 for (int depth = 4; depth <= 4; depth++) {
3213 TH2F *h2Ceff = NULL;
3214 TH2F *h2Diffe = NULL;
3215
3216 TH2F *h3Ceff = NULL;
3217
3218 cHE->Clear();
3219 cHE->Divide(3, 1);
3220
3221 cHE->cd(1);
3222
3223 TString hname1 = Form("h_mapDepth%dADCAmpl_HO", depth);
3224 TString hname0 = Form("h_mapDepth%d_HO", depth);
3225 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
3226 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
3227 if (!twod1 || !twod0) {
3228 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3229 ptext->AddText("Missing histo");
3230 std::cout << "specHO test: failed to load " << hname1 << " and/or " << hname0 << "\n";
3231 if (!twod1)
3232 ptext->AddText(hname1);
3233 if (!twod0)
3234 ptext->AddText(hname0);
3235 ptext->Draw();
3236 continue;
3237 } else {
3238
3239 h2Ceff = (TH2F *)twod1->Clone(Form("Ceff_HO%d", depth));
3240 h2Ceff->SetTitle(Form("HO Depth %d. (No cut) \b", depth));
3241 h2Ceff->Divide(twod1, twod0, 1, 1, "B");
3242
3243 gPad->SetGridy();
3244 gPad->SetGridx();
3245 gPad->SetLogz();
3246 h2Ceff->SetMarkerStyle(20);
3247 h2Ceff->SetMarkerSize(0.4);
3248
3249 h2Ceff->SetXTitle("#eta \b");
3250 h2Ceff->SetYTitle("#phi \b");
3251 h2Ceff->SetZTitle("h_mapDepth1ADCAmpl_HO \b");
3252 h2Ceff->SetMarkerColor(2);
3253 h2Ceff->SetLineColor(2);
3254 h2Ceff->Draw("COLZ");
3255 }
3256
3257 cHE->cd(2);
3258
3259 if (h2Ceff) {
3260
3261 h2Diffe = (TH2F *)h2Ceff->Clone(Form("Diffe_Depth%d_HO", depth));
3262 h2Diffe->SetTitle(Form("HO Depth %d. Cut avg(ADCAmpl) > 80 \b", depth));
3263 int nx = h2Ceff->GetXaxis()->GetNbins();
3264 int ny = h2Ceff->GetYaxis()->GetNbins();
3265 for (int i = 1; i <= nx; i++) {
3266 for (int j = 1; j <= ny; j++) {
3267 double ccc1 = h2Ceff->GetBinContent(i, j);
3268 h2Diffe->SetBinContent(i, j, 0.);
3269 if (ccc1 > 20.)
3270 h2Diffe->SetBinContent(i, j, ccc1);
3271 }
3272 }
3273 gPad->SetGridy();
3274 gPad->SetGridx();
3275 gPad->SetLogz();
3276 h2Diffe->SetMarkerStyle(20);
3277 h2Diffe->SetMarkerSize(0.4);
3278
3279 h2Diffe->SetXTitle("#eta \b");
3280 h2Diffe->SetYTitle("#phi \b");
3281 h2Diffe->SetZTitle("<ADCAmpl> bigger 80.- HO Depth1 \b");
3282 h2Diffe->SetMarkerColor(2);
3283 h2Diffe->SetLineColor(2);
3284 h2Diffe->Draw("COLZ");
3285 }
3286
3287 cHE->cd(3);
3288 TString hname3 = Form("h_mapDepth%dADCAmpl225Copy_HO", depth);
3289 TH2F *twod3 = (TH2F *)dir->FindObjectAny(hname3);
3290 if (!twod3 || !twod0) {
3291 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3292 ptext->AddText("Missing histo");
3293 std::cout << "specHO test: failed to load " << hname3 << " and/or " << hname0 << "\n";
3294 if (!twod3)
3295 ptext->AddText(hname3);
3296 if (!twod0)
3297 ptext->AddText(hname0);
3298 ptext->Draw();
3299 continue;
3300 } else {
3301
3302 h3Ceff = (TH2F *)twod3->Clone(Form("CeffA_HO%d", depth));
3303 h3Ceff->SetTitle(Form("HO Depth %d. \b", depth));
3304 h3Ceff->Divide(twod3, twod0, 1, 1, "B");
3305 gPad->SetGridy();
3306 gPad->SetGridx();
3307 gPad->SetLogz();
3308 h3Ceff->SetMarkerStyle(20);
3309 h3Ceff->SetMarkerSize(0.4);
3310
3311 h3Ceff->SetXTitle("#eta \b");
3312 h3Ceff->SetYTitle("#phi \b");
3313 h3Ceff->SetZTitle("rate for channels of HO \b");
3314 h3Ceff->SetMarkerColor(2);
3315 h3Ceff->SetLineColor(2);
3316 h3Ceff->Draw("COLZ");
3317 }
3318
3319 cHE->Update();
3320 cHE->Print(Form("ChkErrA_HO%d.png", depth));
3321 cHE->Clear();
3322
3323 if (h2Ceff)
3324 delete h2Ceff;
3325 if (h2Diffe)
3326 delete h2Diffe;
3327
3328
3329 if (twod1)
3330 delete twod1;
3331 if (twod3)
3332 delete twod3;
3333 if (h3Ceff)
3334 delete h3Ceff;
3335 }
3336
3337
3338
3339
3340
3341 for (int depth = 1; depth <= 2; depth++) {
3342 TH2F *h2Ceff = NULL;
3343 TH2F *h2Diffe = NULL;
3344
3345 TH2F *h3Ceff = NULL;
3346
3347 cHE->Clear();
3348 cHE->Divide(3, 1);
3349
3350 cHE->cd(1);
3351
3352 TString hname1 = Form("h_mapDepth%dADCAmpl_HF", depth);
3353 TString hname0 = Form("h_mapDepth%d_HF", depth);
3354 TH2F *twod1 = (TH2F *)dir->FindObjectAny(hname1);
3355 TH2F *twod0 = (TH2F *)dir->FindObjectAny(hname0);
3356 if (!twod1 || !twod0) {
3357 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3358 ptext->AddText("Missing histo");
3359 std::cout << "specHF test: failed to load " << hname1 << " and/or " << hname0 << "\n";
3360 if (!twod1)
3361 ptext->AddText(hname1);
3362 if (!twod0)
3363 ptext->AddText(hname0);
3364 ptext->Draw();
3365 continue;
3366 } else {
3367
3368 h2Ceff = (TH2F *)twod1->Clone(Form("Ceff_HF%d", depth));
3369 h2Ceff->SetTitle(Form("HF Depth %d. (No cut) \b", depth));
3370 h2Ceff->Divide(twod1, twod0, 1, 1, "B");
3371
3372 gPad->SetGridy();
3373 gPad->SetGridx();
3374 gPad->SetLogz();
3375 h2Ceff->SetMarkerStyle(20);
3376 h2Ceff->SetMarkerSize(0.4);
3377
3378 h2Ceff->SetXTitle("#eta \b");
3379 h2Ceff->SetYTitle("#phi \b");
3380 h2Ceff->SetZTitle("h_mapDepth1ADCAmpl_HF \b");
3381 h2Ceff->SetMarkerColor(2);
3382 h2Ceff->SetLineColor(2);
3383 h2Ceff->Draw("COLZ");
3384 }
3385
3386 cHE->cd(2);
3387
3388 if (h2Ceff) {
3389
3390 h2Diffe = (TH2F *)h2Ceff->Clone(Form("Diffe_Depth%d_HF", depth));
3391 h2Diffe->SetTitle(Form("HF Depth %d. Cut avg(ADCAmpl) > 20 \b", depth));
3392 int nx = h2Ceff->GetXaxis()->GetNbins();
3393 int ny = h2Ceff->GetYaxis()->GetNbins();
3394 for (int i = 1; i <= nx; i++) {
3395 for (int j = 1; j <= ny; j++) {
3396 double ccc1 = h2Ceff->GetBinContent(i, j);
3397 h2Diffe->SetBinContent(i, j, 0.);
3398 if (ccc1 > 20.)
3399 h2Diffe->SetBinContent(i, j, ccc1);
3400 }
3401 }
3402 gPad->SetGridy();
3403 gPad->SetGridx();
3404 gPad->SetLogz();
3405 h2Diffe->SetMarkerStyle(20);
3406 h2Diffe->SetMarkerSize(0.4);
3407
3408 h2Diffe->SetXTitle("#eta \b");
3409 h2Diffe->SetYTitle("#phi \b");
3410 h2Diffe->SetZTitle("<ADCAmpl> bigger 20.- HF Depth1 \b");
3411 h2Diffe->SetMarkerColor(2);
3412 h2Diffe->SetLineColor(2);
3413 h2Diffe->Draw("COLZ");
3414 }
3415
3416 cHE->cd(3);
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442 TString hname3 = Form("h_mapDepth%dADCAmpl225Copy_HF", depth);
3443 TH2F *twod3 = (TH2F *)dir->FindObjectAny(hname3);
3444 if (!twod3 || !twod0) {
3445 TPaveText *ptext = new TPaveText(0.05, 0.85, 0.95, 0.95);
3446 ptext->AddText("Missing histo");
3447 std::cout << "specHF test: failed to load " << hname3 << " and/or " << hname0 << "\n";
3448 if (!twod3)
3449 ptext->AddText(hname3);
3450 if (!twod0)
3451 ptext->AddText(hname0);
3452 ptext->Draw();
3453 continue;
3454 } else {
3455
3456 h3Ceff = (TH2F *)twod3->Clone(Form("CeffA_HF%d", depth));
3457 h3Ceff->SetTitle(Form("HF Depth %d. \b", depth));
3458 h3Ceff->Divide(twod3, twod0, 1, 1, "B");
3459 gPad->SetGridy();
3460 gPad->SetGridx();
3461 gPad->SetLogz();
3462 h3Ceff->SetMarkerStyle(20);
3463 h3Ceff->SetMarkerSize(0.4);
3464
3465 h3Ceff->SetXTitle("#eta \b");
3466 h3Ceff->SetYTitle("#phi \b");
3467 h3Ceff->SetZTitle("rate for channels of HF \b");
3468 h3Ceff->SetMarkerColor(2);
3469 h3Ceff->SetLineColor(2);
3470 h3Ceff->Draw("COLZ");
3471 }
3472
3473 cHE->Update();
3474 cHE->Print(Form("ChkErrA_HF%d.png", depth));
3475 cHE->Clear();
3476
3477 if (h2Ceff)
3478 delete h2Ceff;
3479 if (h2Diffe)
3480 delete h2Diffe;
3481
3482
3483 if (twod1)
3484 delete twod1;
3485 if (twod3)
3486 delete twod3;
3487 if (h3Ceff)
3488 delete h3Ceff;
3489 }
3490
3491 std::cout << "************>>> average Amplitudes done" << std::endl;
3492
3493 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3494 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3495 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3496 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3497 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3498
3499
3500
3501
3502
3503 int MaxLum000000 = 0;
3504 MaxLum000000 = MaxLum;
3505
3506 cout << " RBX analysis START for **************************" << endl;
3507 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3508
3509 int njeta = 22;
3510 int njphi = 18;
3511 int lsmax0 = 1850;
3512 cout << ">>>>>>>>>>>>>>>>>>>>>>>> int njeta = 22; int njphi = 18; int lsmax0=1850; MaxLum = " << MaxLum << endl;
3513 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3514
3515 if (MaxLum > lsmax0) {
3516 MaxLum = lsmax0;
3517 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3518 cout << "*********************************** EXCEEDED limit for MaxLum, it's bigger lsmax0. So we do limit "
3519 "MaxLum = lsmax0 "
3520 << endl;
3521 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3522 }
3523
3524 int lsmax = MaxLum;
3525
3526 double alexall[njeta][njphi][lsmax];
3527
3528
3529 double alexhb[njphi][lsmax];
3530 double alexhe[njphi][lsmax];
3531 double alexho[njphi][lsmax];
3532 double alexhf[njphi][lsmax];
3533
3534
3535 double blexhb[njeta][lsmax];
3536 double blexhe[njeta][lsmax];
3537 double blexho[njeta][lsmax];
3538 double blexhf[njeta][lsmax];
3539
3540 cout << ">>>>>>>>>>>>>>>>>>>>>>>> For massive:alexall AND for eta and phi tables:::: " << endl;
3541 cout << ">>>>>>>>>>>>>>>>>>>>>>>> alex... [njeta][njphi][lsmax]; lsmax = MaxLum; " << endl;
3542 cout << ">>>>>>>>>>>>>>>>>>>>>>>> alex... BUT, Max of lsmax = 1800 " << endl;
3543 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3544 int maxbinsRBX = MaxLum;
3545 int nx = maxbinsRBX;
3546 cout << ">>>>>>>>>>>>>>>>>>>>>>>> maxbinsRBX = MaxLum; " << endl;
3547 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
3548
3549 for (int i = 0; i < nx; i++) {
3550 for (int jphi = 0; jphi < njphi; jphi++) {
3551 alexhb[jphi][i] = 0.;
3552 alexhe[jphi][i] = 0.;
3553 alexho[jphi][i] = 0.;
3554 alexhf[jphi][i] = 0.;
3555
3556 for (int jeta = 0; jeta < njeta; jeta++) {
3557 if (jphi == 0) {
3558 blexhb[jeta][i] = 0.;
3559 blexhe[jeta][i] = 0.;
3560 blexho[jeta][i] = 0.;
3561 blexhf[jeta][i] = 0.;
3562 }
3563
3564 alexall[jeta][jphi][i] = 0.;
3565 }
3566 }
3567 }
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589 cout << " RBX general for HB **************************" << endl;
3590 TH2F *Ghb1KKK = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs0");
3591 TH2F *Ghb1LLL = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs00");
3592 TH2F *Ghb1 = (TH2F *)Ghb1LLL->Clone("Ghb1");
3593 Ghb1->Divide(Ghb1KKK, Ghb1LLL, 1, 1, "B");
3594
3595
3596 int ny = Ghb1->GetYaxis()->GetNbins();
3597
3598 for (int j = 1; j <= ny; j++) {
3599 int jeta = (j - 1) / njphi;
3600 if (jeta > 6 && jeta < 15) {
3601 int jphi = (j - 1) - njphi * jeta;
3602
3603
3604 for (int i = 1; i <= nx; i++) {
3605 double ccc1 = Ghb1->GetBinContent(i, j);
3606 alexall[jeta][jphi][i - 1] = ccc1;
3607
3608
3609
3610 }
3611 }
3612 }
3613
3614 if (Ghb1KKK)
3615 delete Ghb1KKK;
3616 if (Ghb1LLL)
3617 delete Ghb1LLL;
3618
3619
3620
3621 for (int jphi = 0; jphi < njphi; jphi++) {
3622 for (int i = 0; i < nx; i++) {
3623 double sumccc1 = 0.;
3624 int isum = 0;
3625 for (int jeta = 0; jeta < njeta; jeta++) {
3626 double ccc1 = alexall[jeta][jphi][i];
3627 if (ccc1 > 0.) {
3628 sumccc1 += ccc1;
3629 isum++;
3630 }
3631 }
3632 if (isum > 0.)
3633 sumccc1 /= isum;
3634 alexhb[jphi][i] = sumccc1;
3635 }
3636 }
3637
3638
3639 for (int keta = 0; keta < njeta; keta++) {
3640 for (int i = 0; i < nx; i++) {
3641 double sumccc1 = 0.;
3642 int isum = 0;
3643 for (int kphi = 0; kphi < njphi; kphi++) {
3644 double ccc1 = alexall[keta][kphi][i];
3645 if (ccc1 > 0.) {
3646 sumccc1 += ccc1;
3647 isum++;
3648 }
3649 }
3650 if (isum > 0.)
3651 sumccc1 /= isum;
3652 blexhb[keta][i] = sumccc1;
3653 }
3654 }
3655
3656
3657
3658
3659
3660
3661
3662 cout << " RBX HB 2D plot *****" << endl;
3663 cRBX1->Clear();
3664
3665 cRBX1->Divide(1, 1);
3666 cRBX1->cd(1);
3667
3668
3669
3670 TH2F *Ghb42D = new TH2F("Ghb42D", "", 23, -11.5, 11.5, 18, 0., 18.);
3671 TH2F *Ghb42D0 = new TH2F("Ghb42D0", "", 23, -11.5, 11.5, 18, 0., 18.);
3672 TH2F *Ghb42DF = (TH2F *)Ghb42D0->Clone("Ghb42DF");
3673 for (int jphi = 0; jphi < njphi; jphi++) {
3674 for (int jeta = 0; jeta < njeta; jeta++) {
3675 for (int i = 0; i < nx; i++) {
3676 double ccc1 = alexall[jeta][jphi][i];
3677 int neweta = jeta - 11 - 0.5;
3678 if (jeta >= 11)
3679 neweta = jeta - 11 + 1.5;
3680 if (ccc1 > 0.) {
3681 Ghb42D->Fill(neweta, jphi, ccc1);
3682 Ghb42D0->Fill(neweta, jphi, 1.);
3683 }
3684
3685 }
3686 }
3687 }
3688 Ghb42DF->Divide(Ghb42D, Ghb42D0, 1, 1, "B");
3689
3690 gPad->SetGridy();
3691 gPad->SetGridx();
3692 Ghb42DF->SetMarkerStyle(20);
3693 Ghb42DF->SetMarkerSize(0.4);
3694 Ghb42DF->GetZaxis()->SetLabelSize(0.04);
3695 Ghb42DF->SetXTitle("<A>_RBX #eta \b");
3696 Ghb42DF->SetYTitle(" #phi \b");
3697 Ghb42DF->SetZTitle("<A>_RBX - All \b");
3698 Ghb42DF->SetMarkerColor(2);
3699 Ghb42DF->SetLineColor(2);
3700 Ghb42DF->Draw("COLZ");
3701
3702
3703 cRBX1->Update();
3704 cRBX1->Print("RBX-HB-2Dplot.png");
3705 cRBX1->Clear();
3706
3707 if (Ghb42D)
3708 delete Ghb42D;
3709 if (Ghb42D0)
3710 delete Ghb42D0;
3711 if (Ghb42DF)
3712 delete Ghb42DF;
3713
3714
3715
3716
3717
3718
3719 cout << " RBX HB 1D plot *****" << endl;
3720 cRBX1->Clear();
3721
3722 cRBX1->Divide(1, 1);
3723 cRBX1->cd(1);
3724 TH1F *GphiHB1D = new TH1F("GphiHB1D", "", 18, 0., 18.);
3725 TH1F *GphiHB1D0 = new TH1F("GphiHB1D0", "", 18, 0., 18.);
3726 TH1F *GphiHB1DF = (TH1F *)GphiHB1D0->Clone("GphiHB1DF");
3727 for (int jphi = 0; jphi < 18; jphi++) {
3728 for (int jeta = 0; jeta < 22; jeta++) {
3729 for (int i = 0; i < nx; i++) {
3730 double ccc1 = alexall[jeta][jphi][i];
3731 if (ccc1 > 0.) {
3732 GphiHB1D->Fill(jphi, ccc1);
3733 GphiHB1D0->Fill(jphi, 1.);
3734 }
3735 }
3736 }
3737 }
3738
3739 GphiHB1DF->Divide(GphiHB1D, GphiHB1D0, 1, 1, "B");
3740
3741 for (int jphi = 1; jphi < 19; jphi++) {
3742 GphiHB1DF->SetBinError(jphi, 0.01);
3743 }
3744 gPad->SetGridy();
3745 gPad->SetGridx();
3746 GphiHB1DF->SetMarkerStyle(20);
3747 GphiHB1DF->SetMarkerSize(1.4);
3748 GphiHB1DF->GetZaxis()->SetLabelSize(0.08);
3749 GphiHB1DF->SetXTitle("PHI of RBX\b");
3750 GphiHB1DF->SetYTitle(" <Amplitude> \b");
3751 GphiHB1DF->SetZTitle("<A>_PHI - All \b");
3752 GphiHB1DF->SetMarkerColor(4);
3753 GphiHB1DF->SetLineColor(4);
3754 GphiHB1DF->SetMinimum(0.8);
3755 GphiHB1DF->Draw("Error");
3756
3757 cRBX1->Update();
3758 cRBX1->Print("RBX-HB-1Dplot.png");
3759 cRBX1->Clear();
3760
3761 if (GphiHB1D)
3762 delete GphiHB1D;
3763 if (GphiHB1D0)
3764 delete GphiHB1D0;
3765 if (GphiHB1DF)
3766 delete GphiHB1DF;
3767
3768
3769
3770
3771
3772
3773 cout << " RBX HB 11D plot *eta*" << endl;
3774 cRBX1->Clear();
3775
3776 cRBX1->Divide(1, 1);
3777 cRBX1->cd(1);
3778 TH1F *GetaHB11D = new TH1F("GetaHB11D", "", 23, -11.5, 11.5);
3779 TH1F *GetaHB11D0 = new TH1F("GetaHB11D0", "", 23, -11.5, 11.5);
3780 TH1F *GetaHB11DF = (TH1F *)GetaHB11D0->Clone("GetaHB11DF");
3781
3782 for (int jeta = 0; jeta < 22; jeta++) {
3783 for (int jphi = 0; jphi < 18; jphi++) {
3784 for (int i = 0; i < nx; i++) {
3785 double ccc1 = alexall[jeta][jphi][i];
3786 int neweta = jeta - 11 - 0.5;
3787 if (jeta >= 11)
3788 neweta = jeta - 11 + 1.5;
3789 if (ccc1 > 0.) {
3790 GetaHB11D->Fill(neweta, ccc1);
3791 GetaHB11D0->Fill(neweta, 1.);
3792
3793 }
3794 }
3795 }
3796 }
3797
3798 GetaHB11DF->Divide(GetaHB11D, GetaHB11D0, 1, 1, "B");
3799
3800 for (int jeta = 1; jeta < 24; jeta++) {
3801 GetaHB11DF->SetBinError(jeta, 0.01);
3802 }
3803 gPad->SetGridy();
3804 gPad->SetGridx();
3805 GetaHB11DF->SetMarkerStyle(20);
3806 GetaHB11DF->SetMarkerSize(1.4);
3807 GetaHB11DF->GetZaxis()->SetLabelSize(0.08);
3808 GetaHB11DF->SetXTitle("#eta \b");
3809 GetaHB11DF->SetYTitle(" <A> \b");
3810 GetaHB11DF->SetZTitle("<A>_ETA - All \b");
3811 GetaHB11DF->SetMarkerColor(4);
3812 GetaHB11DF->SetLineColor(4);
3813 GetaHB11DF->SetMinimum(0.8);
3814 GetaHB11DF->Draw("Error");
3815
3816
3817 cRBX1->Update();
3818 cRBX1->Print("RBX-HB-11Dplot.png");
3819 cRBX1->Clear();
3820
3821 if (GetaHB11D)
3822 delete GetaHB11D;
3823 if (GetaHB11D0)
3824 delete GetaHB11D0;
3825 if (GetaHB11DF)
3826 delete GetaHB11DF;
3827
3828
3829
3830
3831
3832
3833
3834 gStyle->SetOptStat(1110000);
3835 cout << " RBX HB Ratio plots *****" << endl;
3836 cRBX31->Clear();
3837
3838
3839
3840
3841
3842
3843 double ccc0HB = 0.;
3844 cRBX31->Divide(3, 1);
3845
3846 cRBX31->cd(1);
3847
3848 TH1F *Ghb51 = new TH1F("Ghb51", "", nx, 1., nx + 1.);
3849 TH1F *Ghb50 = new TH1F("Ghb50", "", nx, 1., nx + 1.);
3850 TH1F *Ghb5 = (TH1F *)Ghb50->Clone("Ghb5");
3851
3852 for (int j = 1; j <= ny; j++) {
3853 ccc0HB = Ghb1->GetBinContent(1, j);
3854
3855 if (ccc0HB <= 0.)
3856 for (int i = 1; i <= nx; i++) {
3857 double ccc2 = Ghb1->GetBinContent(i, j);
3858 if (ccc2 > 0.) {
3859 ccc0HB = ccc2;
3860 break;
3861 }
3862 }
3863 if (ccc0HB > 0.) {
3864
3865 for (int i = 1; i <= nx; i++) {
3866 double ccc1 = Ghb1->GetBinContent(i, j);
3867 if (ccc1 > 0.) {
3868 double Rij = ccc1 / ccc0HB;
3869
3870 Ghb51->Fill(float(i), Rij);
3871 Ghb50->Fill(float(i), 1.);
3872 }
3873 }
3874 }
3875 }
3876 Ghb5->Divide(Ghb51, Ghb50, 1, 1, "B");
3877 for (int i = 1; i <= nx; i++) {
3878 Ghb5->SetBinError(i, 0.0001);
3879 }
3880 Ghb5->SetMarkerStyle(20);
3881 Ghb5->SetMarkerSize(0.4);
3882 Ghb5->GetYaxis()->SetLabelSize(0.04);
3883 Ghb5->SetMarkerColor(2);
3884 Ghb5->SetLineColor(0);
3885 Ghb5->SetXTitle(" iLS \b");
3886 Ghb5->SetYTitle(" <R> \b");
3887 Ghb5->SetTitle("<Ri> vs iLS \b");
3888 Ghb5->SetMinimum(0.);
3889
3890 gPad->SetGridy();
3891 gPad->SetGridx();
3892 Ghb5->SetStats(0);
3893 Ghb5->GetYaxis()->SetLabelSize(0.025);
3894 Ghb5->Draw("Error");
3895
3896 cRBX31->cd(2);
3897 TH2F *Ghb60 = new TH2F("Ghb60", "", 22, -11., 11., 18, 0., 18.);
3898 TH2F *Ghb61 = new TH2F("Ghb61", "", 22, -11., 11., 18, 0., 18.);
3899 TH2F *Ghb6 = new TH2F("Ghb6", "", 22, -11., 11., 18, 0., 18.);
3900
3901 TH2F *G20hb60 = new TH2F("G20hb60", "", 22, -11., 11., 18, 0., 18.);
3902 TH2F *G20hb61 = new TH2F("G20hb61", "", 22, -11., 11., 18, 0., 18.);
3903 TH2F *G20hb6 = new TH2F("G20hb6", "", 22, -11., 11., 18, 0., 18.);
3904 TH2F *G30hb60 = new TH2F("G30hb60", "", 22, -11., 11., 18, 0., 18.);
3905 TH2F *G30hb61 = new TH2F("G30hb61", "", 22, -11., 11., 18, 0., 18.);
3906 TH2F *G30hb6 = new TH2F("G30hb6", "", 22, -11., 11., 18, 0., 18.);
3907 TH2F *G40hb60 = new TH2F("G40hb60", "", 22, -11., 11., 18, 0., 18.);
3908 TH2F *G40hb61 = new TH2F("G40hb61", "", 22, -11., 11., 18, 0., 18.);
3909 TH2F *G40hb6 = new TH2F("G40hb6", "", 22, -11., 11., 18, 0., 18.);
3910
3911
3912
3913 double sumjHB = 0.;
3914 int njHB = 0;
3915 double meanjHB = 0.;
3916 for (int j = 1; j <= ny; j++) {
3917 ccc0HB = Ghb1->GetBinContent(1, j);
3918 if (ccc0HB <= 0.)
3919 for (int i = 1; i <= nx; i++) {
3920 double ccc2 = Ghb1->GetBinContent(i, j);
3921 if (ccc2 > 0.) {
3922 ccc0HB = ccc2;
3923 break;
3924 }
3925 }
3926 if (ccc0HB > 0.) {
3927 for (int i = 1; i <= nx; i++) {
3928 double ccc1 = Ghb1->GetBinContent(i, j) / ccc0HB;
3929 if (ccc1 > 0.) {
3930 sumjHB += ccc1;
3931 njHB++;
3932 }
3933 }
3934 meanjHB = sumjHB / njHB;
3935 }
3936 }
3937
3938 double ssumjHB = 0.;
3939 njHB = 0;
3940 double sigmajHB = 0.;
3941 for (int j = 1; j <= ny; j++) {
3942 ccc0HB = Ghb1->GetBinContent(1, j);
3943 if (ccc0HB <= 0.)
3944 for (int i = 1; i <= nx; i++) {
3945 double ccc2 = Ghb1->GetBinContent(i, j);
3946 if (ccc2 > 0.) {
3947 ccc0HB = ccc2;
3948 break;
3949 }
3950 }
3951 if (ccc0HB > 0.) {
3952 for (int i = 1; i <= nx; i++) {
3953 double ccc1 = Ghb1->GetBinContent(i, j) / ccc0HB;
3954 if (ccc1 > 0.) {
3955 ssumjHB += (ccc1 - meanjHB) * (ccc1 - meanjHB);
3956 njHB++;
3957 }
3958 }
3959 sigmajHB = sqrt(ssumjHB / njHB);
3960 }
3961 }
3962
3963 double dif3rmsHBMIN = meanjHB - 3 * sigmajHB;
3964 if (dif3rmsHBMIN < 0.)
3965 dif3rmsHBMIN = 0.;
3966 double dif3rmsHBMAX = meanjHB + 3 * sigmajHB;
3967 cout << "22HB-2 meanjHB= " << meanjHB << " sigmajHB= " << sigmajHB << " dif3rmsHBMIN= " << dif3rmsHBMIN
3968 << " dif3rmsHBMAX= " << dif3rmsHBMAX << endl;
3969
3970 double MAXdif3rmsHBMIN = dif3rmsHBMIN;
3971 double MINdif3rmsHBMAX = dif3rmsHBMAX;
3972 if (MAXdif3rmsHBMIN < 0.95)
3973 MAXdif3rmsHBMIN = 0.95;
3974 if (MINdif3rmsHBMAX > 1.05)
3975 MINdif3rmsHBMAX = 1.05;
3976 cout << "22HB-2 MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN << " MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
3977
3978 for (int j = 1; j <= ny; j++) {
3979 ccc0HB = Ghb1->GetBinContent(1, j);
3980 if (ccc0HB <= 0.)
3981 for (int i = 1; i <= nx; i++) {
3982 double ccc2 = Ghb1->GetBinContent(i, j);
3983 if (ccc2 > 0.) {
3984 ccc0HB = ccc2;
3985 break;
3986 }
3987 }
3988 if (ccc0HB > 0.) {
3989 int jeta = (j - 1) / 18;
3990 int jphi = (j - 1) - 18 * jeta;
3991
3992 for (int i = 1; i <= nx; i++) {
3993 double ccc1 = Ghb1->GetBinContent(i, j);
3994 if (ccc1 > 0.) {
3995 double Rij = ccc1 / ccc0HB;
3996 if (Rij < MAXdif3rmsHBMIN || Rij > MINdif3rmsHBMAX) {
3997 Ghb61->Fill(jeta - 11, jphi, Rij);
3998 Ghb60->Fill(jeta - 11, jphi, 1.);
3999 }
4000 if (Rij < 0.8 || Rij > 1.2) {
4001 G20hb61->Fill(jeta - 11, jphi, Rij);
4002 G20hb60->Fill(jeta - 11, jphi, 1.);
4003 }
4004 if (Rij < 0.7 || Rij > 1.3) {
4005 G30hb61->Fill(jeta - 11, jphi, Rij);
4006 G30hb60->Fill(jeta - 11, jphi, 1.);
4007 }
4008 if (Rij < 0.6 || Rij > 1.4) {
4009 G40hb61->Fill(jeta - 11, jphi, Rij);
4010 G40hb60->Fill(jeta - 11, jphi, 1.);
4011 }
4012 }
4013 }
4014 }
4015 }
4016 Ghb6->Divide(Ghb61, Ghb60, 1, 1, "B");
4017 G20hb6->Divide(G20hb61, G20hb60, 1, 1, "B");
4018 G30hb6->Divide(G30hb61, G30hb60, 1, 1, "B");
4019 G40hb6->Divide(G40hb61, G40hb60, 1, 1, "B");
4020
4021 Ghb6->GetZaxis()->SetLabelSize(0.025);
4022 Ghb6->SetXTitle(" #eta \b");
4023 Ghb6->SetYTitle(" #phi \b");
4024 Ghb6->SetTitle("<Rj> for |1-<R>| > 0.05 \b");
4025 Ghb6->SetStats(0);
4026 Ghb6->Draw("COLZ");
4027
4028 cRBX31->cd(3);
4029 TH1F *Ghb7 = new TH1F("Ghb7", "", 120, 0.4, 1.6);
4030
4031 for (int j = 1; j <= ny; j++) {
4032 ccc0HB = Ghb1->GetBinContent(1, j);
4033 if (ccc0HB <= 0.)
4034 for (int i = 1; i <= nx; i++) {
4035 double ccc2 = Ghb1->GetBinContent(i, j);
4036 if (ccc2 > 0.) {
4037 ccc0HB = ccc2;
4038 break;
4039 }
4040 }
4041 if (ccc0HB > 0.) {
4042
4043 for (int i = 1; i <= nx; i++) {
4044 double ccc1 = Ghb1->GetBinContent(i, j);
4045 if (ccc1 > 0.) {
4046 double Rij = ccc1 / ccc0HB;
4047 Ghb7->Fill(Rij);
4048 }
4049 }
4050 }
4051 }
4052 Ghb7->SetMarkerStyle(20);
4053 Ghb7->SetMarkerSize(0.4);
4054 Ghb7->GetYaxis()->SetLabelSize(0.04);
4055 Ghb7->SetMarkerColor(2);
4056 Ghb7->SetLineColor(0);
4057 Ghb7->SetYTitle(" N \b");
4058 Ghb7->SetXTitle(" Rij \b");
4059 Ghb7->SetTitle(" Rij \b");
4060
4061 gPad->SetGridy();
4062 gPad->SetGridx();
4063
4064 Ghb7->GetYaxis()->SetLabelSize(0.025);
4065 Ghb7->Draw("Error");
4066 Float_t ymaxHB = Ghb7->GetMaximum();
4067 cout << "22HB-3 ymaxHB= " << ymaxHB << " MAXdif3rmsHBMIN= " << MAXdif3rmsHBMIN
4068 << " MINdif3rmsHBMAX= " << MINdif3rmsHBMAX << endl;
4069 TLine *lineHB = new TLine(MAXdif3rmsHBMIN, 0., MAXdif3rmsHBMIN, ymaxHB);
4070 lineHB->SetLineColor(kBlue);
4071 lineHB->Draw();
4072 TLine *line1HB = new TLine(MINdif3rmsHBMAX, 0., MINdif3rmsHBMAX, ymaxHB);
4073 line1HB->SetLineColor(kBlue);
4074 line1HB->Draw();
4075
4076
4077 cRBX31->Update();
4078 cRBX31->Print("RBX-HB-3plots.png");
4079 cRBX31->Clear();
4080
4081 if (Ghb5)
4082 delete Ghb5;
4083 if (Ghb60)
4084 delete Ghb60;
4085 if (Ghb61)
4086 delete Ghb61;
4087 if (Ghb6)
4088 delete Ghb6;
4089 if (Ghb7)
4090 delete Ghb7;
4091
4092 if (G20hb60)
4093 delete G20hb60;
4094 if (G20hb61)
4095 delete G20hb61;
4096 if (G30hb60)
4097 delete G30hb60;
4098 if (G30hb61)
4099 delete G30hb61;
4100 if (G40hb60)
4101 delete G40hb60;
4102 if (G40hb61)
4103 delete G40hb61;
4104
4105 if (Ghb1)
4106 delete Ghb1;
4107
4108
4109
4110
4111
4112
4113 gStyle->SetOptStat(1110000);
4114 cout << " RBX HB Ratio plotsmore *****" << endl;
4115 cRBX31->Clear();
4116
4117 cRBX31->Divide(3, 1);
4118
4119 cRBX31->cd(1);
4120 G20hb6->GetZaxis()->SetLabelSize(0.025);
4121 G20hb6->SetXTitle(" #eta \b");
4122 G20hb6->SetYTitle(" #phi \b");
4123 G20hb6->SetTitle("<Rj> for |1-<R>| > 0.20 \b");
4124 G20hb6->SetStats(0);
4125 G20hb6->Draw("COLZ");
4126
4127 cRBX31->cd(2);
4128 G30hb6->GetZaxis()->SetLabelSize(0.025);
4129 G30hb6->SetXTitle(" #eta \b");
4130 G30hb6->SetYTitle(" #phi \b");
4131 G30hb6->SetTitle("<Rj> for |1-<R>| > 0.30 \b");
4132 G30hb6->SetStats(0);
4133 G30hb6->Draw("COLZ");
4134
4135 cRBX31->cd(3);
4136 G40hb6->GetZaxis()->SetLabelSize(0.025);
4137 G40hb6->SetXTitle(" #eta \b");
4138 G40hb6->SetYTitle(" #phi \b");
4139 G40hb6->SetTitle("<Rj> for |1-<R>| > 0.40 \b");
4140 G40hb6->SetStats(0);
4141 G40hb6->Draw("COLZ");
4142
4143
4144
4145 cRBX31->Update();
4146 cRBX31->Print("RBX-HB-3plotsmore.png");
4147 cRBX31->Clear();
4148
4149
4150 if (G20hb6)
4151 delete G20hb6;
4152 if (G30hb6)
4153 delete G30hb6;
4154 if (G40hb6)
4155 delete G40hb6;
4156 gStyle->SetOptStat(0);
4157
4158
4159
4160 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4161 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4162 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4163 for (int jphi = 0; jphi < njphi; jphi++) {
4164 for (int jeta = 0; jeta < njeta; jeta++) {
4165 for (int i = 0; i < nx; i++) {
4166 alexall[jeta][jphi][i] = 0.;
4167 }
4168 }
4169 }
4170
4171
4172
4173
4174
4175
4176
4177 cout << " RBX general for HE **************************" << endl;
4178 TH2F *Ghe1KKK = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs1");
4179 TH2F *Ghe1LLL = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs10");
4180 TH2F *Ghe1 = (TH2F *)Ghe1LLL->Clone("Ghe1");
4181 Ghe1->Divide(Ghe1KKK, Ghe1LLL, 1, 1, "B");
4182
4183
4184
4185 ny = Ghe1->GetYaxis()->GetNbins();
4186 for (int j = 1; j <= ny; j++) {
4187 int jeta = (j - 1) / njphi;
4188 if ((jeta < 8 && jeta > 2) || (jeta < 19 && jeta > 13)) {
4189 int jphi = (j - 1) - njphi * jeta;
4190
4191
4192 for (int i = 1; i <= nx; i++) {
4193 double ccc1 = Ghe1->GetBinContent(i, j);
4194 alexall[jeta][jphi][i - 1] = ccc1;
4195
4196 }
4197 }
4198 }
4199
4200 if (Ghe1KKK)
4201 delete Ghe1KKK;
4202 if (Ghe1LLL)
4203 delete Ghe1LLL;
4204
4205
4206
4207 for (int jphi = 0; jphi < njphi; jphi++) {
4208 for (int i = 0; i < nx; i++) {
4209 double sumccc1 = 0.;
4210 int isum = 0;
4211 for (int jeta = 0; jeta < njeta; jeta++) {
4212 double ccc1 = alexall[jeta][jphi][i];
4213 if (ccc1 > 0.) {
4214 sumccc1 += ccc1;
4215 isum++;
4216 }
4217 }
4218 if (isum > 0.)
4219 sumccc1 /= isum;
4220 alexhe[jphi][i] = sumccc1;
4221 }
4222 }
4223
4224 for (int keta = 0; keta < njeta; keta++) {
4225 for (int i = 0; i < nx; i++) {
4226 double sumccc1 = 0.;
4227 int isum = 0;
4228 for (int kphi = 0; kphi < njphi; kphi++) {
4229 double ccc1 = alexall[keta][kphi][i];
4230 if (ccc1 > 0.) {
4231 sumccc1 += ccc1;
4232 isum++;
4233 }
4234 }
4235 if (isum > 0.)
4236 sumccc1 /= isum;
4237 blexhe[keta][i] = sumccc1;
4238 }
4239 }
4240
4241
4242
4243
4244
4245
4246 cout << " RBX HE 2D plot *****" << endl;
4247 cRBX1->Clear();
4248
4249 cRBX1->Divide(1, 1);
4250 cRBX1->cd(1);
4251
4252 TH2F *Ghe42D = new TH2F("Ghe42D", "", 23, -11.5, 11.5, 18, 0., 18.);
4253 TH2F *Ghe42D0 = new TH2F("Ghe42D0", "", 23, -11.5, 11.5, 18, 0., 18.);
4254
4255
4256 TH2F *Ghe42DF = (TH2F *)Ghe42D0->Clone("Ghe42DF");
4257 for (int jphi = 0; jphi < njphi; jphi++) {
4258 for (int jeta = 0; jeta < njeta; jeta++) {
4259 for (int i = 0; i < nx; i++) {
4260 double ccc1 = alexall[jeta][jphi][i];
4261 int neweta = jeta - 11 - 0.5;
4262 if (jeta >= 11)
4263 neweta = jeta - 11 + 1.5;
4264 if (ccc1 > 0.) {
4265 Ghe42D->Fill(neweta, jphi, ccc1);
4266 Ghe42D0->Fill(neweta, jphi, 1.);
4267 }
4268
4269 }
4270 }
4271 }
4272 Ghe42DF->Divide(Ghe42D, Ghe42D0, 1, 1, "B");
4273
4274 gPad->SetGridy();
4275 gPad->SetGridx();
4276 Ghe42DF->SetMarkerStyle(20);
4277 Ghe42DF->SetMarkerSize(0.4);
4278 Ghe42DF->GetZaxis()->SetLabelSize(0.04);
4279 Ghe42DF->SetXTitle("<A>_RBX #eta \b");
4280 Ghe42DF->SetYTitle(" #phi \b");
4281 Ghe42DF->SetZTitle("<A>_RBX - All \b");
4282 Ghe42DF->SetMarkerColor(2);
4283 Ghe42DF->SetLineColor(2);
4284 Ghe42DF->Draw("COLZ");
4285
4286
4287 cRBX1->Update();
4288 cRBX1->Print("RBX-HE-2Dplot.png");
4289 cRBX1->Clear();
4290
4291 if (Ghe42D)
4292 delete Ghe42D;
4293 if (Ghe42D0)
4294 delete Ghe42D0;
4295 if (Ghe42DF)
4296 delete Ghe42DF;
4297
4298
4299
4300
4301
4302
4303 cout << " RBX HE 1D plot *****" << endl;
4304 cRBX1->Clear();
4305
4306 cRBX1->Divide(1, 1);
4307 cRBX1->cd(1);
4308 TH1F *GphiHE1D = new TH1F("GphiHE1D", "", 18, 0., 18.);
4309 TH1F *GphiHE1D0 = new TH1F("GphiHE1D0", "", 18, 0., 18.);
4310 TH1F *GphiHE1DF = (TH1F *)GphiHE1D0->Clone("GphiHE1DF");
4311 for (int jphi = 0; jphi < 18; jphi++) {
4312 for (int jeta = 0; jeta < 22; jeta++) {
4313 for (int i = 0; i < nx; i++) {
4314 double ccc1 = alexall[jeta][jphi][i];
4315 if (ccc1 > 0.) {
4316 GphiHE1D->Fill(jphi, ccc1);
4317 GphiHE1D0->Fill(jphi, 1.);
4318 }
4319 }
4320 }
4321 }
4322
4323 GphiHE1DF->Divide(GphiHE1D, GphiHE1D0, 1, 1, "B");
4324
4325 for (int jphi = 1; jphi < 19; jphi++) {
4326 GphiHE1DF->SetBinError(jphi, 0.01);
4327 }
4328 gPad->SetGridy();
4329 gPad->SetGridx();
4330 GphiHE1DF->SetMarkerStyle(20);
4331 GphiHE1DF->SetMarkerSize(1.4);
4332 GphiHE1DF->GetZaxis()->SetLabelSize(0.08);
4333 GphiHE1DF->SetXTitle("PHI of RBX\b");
4334 GphiHE1DF->SetYTitle(" <Amplitude> \b");
4335 GphiHE1DF->SetZTitle("<A>_PHI - All \b");
4336 GphiHE1DF->SetMarkerColor(4);
4337 GphiHE1DF->SetLineColor(4);
4338 GphiHE1DF->SetMinimum(0.8);
4339 GphiHE1DF->Draw("Error");
4340
4341 cRBX1->Update();
4342 cRBX1->Print("RBX-HE-1Dplot.png");
4343 cRBX1->Clear();
4344
4345 if (GphiHE1D)
4346 delete GphiHE1D;
4347 if (GphiHE1D0)
4348 delete GphiHE1D0;
4349 if (GphiHE1DF)
4350 delete GphiHE1DF;
4351
4352
4353
4354
4355
4356
4357 cout << " RBX HE 11D plot *eta*" << endl;
4358 cRBX1->Clear();
4359
4360 cRBX1->Divide(1, 1);
4361 cRBX1->cd(1);
4362 TH1F *GetaHE11D = new TH1F("GetaHE11D", "", 23, -11.5, 11.5);
4363 TH1F *GetaHE11D0 = new TH1F("GetaHE11D0", "", 23, -11.5, 11.5);
4364 TH1F *GetaHE11DF = (TH1F *)GetaHE11D0->Clone("GetaHE11DF");
4365
4366 for (int jeta = 0; jeta < 22; jeta++) {
4367 for (int jphi = 0; jphi < 18; jphi++) {
4368 for (int i = 0; i < nx; i++) {
4369 double ccc1 = alexall[jeta][jphi][i];
4370 int neweta = jeta - 11 - 0.5;
4371 if (jeta >= 11)
4372 neweta = jeta - 11 + 1.5;
4373 if (ccc1 > 0.) {
4374 GetaHE11D->Fill(neweta, ccc1);
4375 GetaHE11D0->Fill(neweta, 1.);
4376
4377 }
4378 }
4379 }
4380 }
4381
4382 GetaHE11DF->Divide(GetaHE11D, GetaHE11D0, 1, 1, "B");
4383
4384 for (int jeta = 1; jeta < 24; jeta++) {
4385 GetaHE11DF->SetBinError(jeta, 0.01);
4386 }
4387 gPad->SetGridy();
4388 gPad->SetGridx();
4389 GetaHE11DF->SetMarkerStyle(20);
4390 GetaHE11DF->SetMarkerSize(1.4);
4391 GetaHE11DF->GetZaxis()->SetLabelSize(0.08);
4392 GetaHE11DF->SetXTitle("#eta \b");
4393 GetaHE11DF->SetYTitle(" <A> \b");
4394 GetaHE11DF->SetZTitle("<A>_ETA - All \b");
4395 GetaHE11DF->SetMarkerColor(4);
4396 GetaHE11DF->SetLineColor(4);
4397 GetaHE11DF->SetMinimum(0.8);
4398 GetaHE11DF->Draw("Error");
4399
4400
4401 cRBX1->Update();
4402 cRBX1->Print("RBX-HE-11Dplot.png");
4403 cRBX1->Clear();
4404
4405 if (GetaHE11D)
4406 delete GetaHE11D;
4407 if (GetaHE11D0)
4408 delete GetaHE11D0;
4409 if (GetaHE11DF)
4410 delete GetaHE11DF;
4411
4412
4413
4414
4415
4416
4417
4418 gStyle->SetOptStat(1110000);
4419 cout << " RBX HE Ratio plots *****" << endl;
4420 cRBX31->Clear();
4421
4422
4423
4424
4425
4426
4427 double ccc0HE = 0.;
4428 cRBX31->Divide(3, 1);
4429
4430 cRBX31->cd(1);
4431
4432 TH1F *Ghe51 = new TH1F("Ghe51", "", nx, 1., nx + 1.);
4433 TH1F *Ghe50 = new TH1F("Ghe50", "", nx, 1., nx + 1.);
4434 TH1F *Ghe5 = (TH1F *)Ghe50->Clone("Ghe5");
4435
4436 for (int j = 1; j <= ny; j++) {
4437 ccc0HE = Ghe1->GetBinContent(1, j);
4438
4439 if (ccc0HE <= 0.)
4440 for (int i = 1; i <= nx; i++) {
4441 double ccc2 = Ghe1->GetBinContent(i, j);
4442 if (ccc2 > 0.) {
4443 ccc0HE = ccc2;
4444 break;
4445 }
4446 }
4447 if (ccc0HE > 0.) {
4448
4449 for (int i = 1; i <= nx; i++) {
4450 double ccc1 = Ghe1->GetBinContent(i, j);
4451 if (ccc1 > 0.) {
4452 double Rij = ccc1 / ccc0HE;
4453
4454 Ghe51->Fill(float(i), Rij);
4455 Ghe50->Fill(float(i), 1.);
4456 }
4457 }
4458 }
4459 }
4460 Ghe5->Divide(Ghe51, Ghe50, 1, 1, "B");
4461 for (int i = 1; i <= nx; i++) {
4462 Ghe5->SetBinError(i, 0.0001);
4463 }
4464 Ghe5->SetMarkerStyle(20);
4465 Ghe5->SetMarkerSize(0.4);
4466 Ghe5->GetYaxis()->SetLabelSize(0.04);
4467 Ghe5->SetMarkerColor(2);
4468 Ghe5->SetLineColor(0);
4469 Ghe5->SetXTitle(" iLS \b");
4470 Ghe5->SetYTitle(" <R> \b");
4471 Ghe5->SetTitle("<Ri> vs iLS \b");
4472 Ghe5->SetMinimum(0.);
4473
4474 gPad->SetGridy();
4475 gPad->SetGridx();
4476 Ghe5->SetStats(0);
4477 Ghe5->GetYaxis()->SetLabelSize(0.025);
4478 Ghe5->Draw("Error");
4479
4480 cRBX31->cd(2);
4481 TH2F *Ghe60 = new TH2F("Ghe60", "", 22, -11., 11., 18, 0., 18.);
4482 TH2F *Ghe61 = new TH2F("Ghe61", "", 22, -11., 11., 18, 0., 18.);
4483 TH2F *Ghe6 = new TH2F("Ghe6", "", 22, -11., 11., 18, 0., 18.);
4484
4485 TH2F *G20he60 = new TH2F("G20he60", "", 22, -11., 11., 18, 0., 18.);
4486 TH2F *G20he61 = new TH2F("G20he61", "", 22, -11., 11., 18, 0., 18.);
4487 TH2F *G20he6 = new TH2F("G20he6", "", 22, -11., 11., 18, 0., 18.);
4488 TH2F *G30he60 = new TH2F("G30he60", "", 22, -11., 11., 18, 0., 18.);
4489 TH2F *G30he61 = new TH2F("G30he61", "", 22, -11., 11., 18, 0., 18.);
4490 TH2F *G30he6 = new TH2F("G30he6", "", 22, -11., 11., 18, 0., 18.);
4491 TH2F *G40he60 = new TH2F("G40he60", "", 22, -11., 11., 18, 0., 18.);
4492 TH2F *G40he61 = new TH2F("G40he61", "", 22, -11., 11., 18, 0., 18.);
4493 TH2F *G40he6 = new TH2F("G40he6", "", 22, -11., 11., 18, 0., 18.);
4494
4495
4496
4497 double sumjHE = 0.;
4498 int njHE = 0;
4499 double meanjHE = 0.;
4500 for (int j = 1; j <= ny; j++) {
4501 ccc0HE = Ghe1->GetBinContent(1, j);
4502 if (ccc0HE <= 0.)
4503 for (int i = 1; i <= nx; i++) {
4504 double ccc2 = Ghe1->GetBinContent(i, j);
4505 if (ccc2 > 0.) {
4506 ccc0HE = ccc2;
4507 break;
4508 }
4509 }
4510 if (ccc0HE > 0.) {
4511 for (int i = 1; i <= nx; i++) {
4512 double ccc1 = Ghe1->GetBinContent(i, j) / ccc0HE;
4513 if (ccc1 > 0.) {
4514 sumjHE += ccc1;
4515 njHE++;
4516 }
4517 }
4518 meanjHE = sumjHE / njHE;
4519 }
4520 }
4521
4522 double ssumjHE = 0.;
4523 njHE = 0;
4524 double sigmajHE = 0.;
4525 for (int j = 1; j <= ny; j++) {
4526 ccc0HE = Ghe1->GetBinContent(1, j);
4527 if (ccc0HE <= 0.)
4528 for (int i = 1; i <= nx; i++) {
4529 double ccc2 = Ghe1->GetBinContent(i, j);
4530 if (ccc2 > 0.) {
4531 ccc0HE = ccc2;
4532 break;
4533 }
4534 }
4535 if (ccc0HE > 0.) {
4536 for (int i = 1; i <= nx; i++) {
4537 double ccc1 = Ghe1->GetBinContent(i, j) / ccc0HE;
4538 if (ccc1 > 0.) {
4539 ssumjHE += (ccc1 - meanjHE) * (ccc1 - meanjHE);
4540 njHE++;
4541 }
4542 }
4543 sigmajHE = sqrt(ssumjHE / njHE);
4544 }
4545 }
4546
4547 double dif3rmsHEMIN = meanjHE - 3 * sigmajHE;
4548 if (dif3rmsHEMIN < 0.)
4549 dif3rmsHEMIN = 0.;
4550 double dif3rmsHEMAX = meanjHE + 3 * sigmajHE;
4551 cout << "22HE-2 meanjHE= " << meanjHE << " sigmajHE= " << sigmajHE << " dif3rmsHEMIN= " << dif3rmsHEMIN
4552 << " dif3rmsHEMAX= " << dif3rmsHEMAX << endl;
4553
4554 double MAXdif3rmsHEMIN = dif3rmsHEMIN;
4555 double MINdif3rmsHEMAX = dif3rmsHEMAX;
4556 if (MAXdif3rmsHEMIN < 0.95)
4557 MAXdif3rmsHEMIN = 0.95;
4558 if (MINdif3rmsHEMAX > 1.05)
4559 MINdif3rmsHEMAX = 1.05;
4560 cout << "22HE-2 MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN << " MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4561
4562 for (int j = 1; j <= ny; j++) {
4563 ccc0HE = Ghe1->GetBinContent(1, j);
4564 if (ccc0HE <= 0.)
4565 for (int i = 1; i <= nx; i++) {
4566 double ccc2 = Ghe1->GetBinContent(i, j);
4567 if (ccc2 > 0.) {
4568 ccc0HE = ccc2;
4569 break;
4570 }
4571 }
4572 if (ccc0HE > 0.) {
4573 int jeta = (j - 1) / 18;
4574 int jphi = (j - 1) - 18 * jeta;
4575
4576 for (int i = 1; i <= nx; i++) {
4577 double ccc1 = Ghe1->GetBinContent(i, j);
4578 if (ccc1 > 0.) {
4579 double Rij = ccc1 / ccc0HE;
4580 if (Rij < MAXdif3rmsHEMIN || Rij > MINdif3rmsHEMAX) {
4581 Ghe61->Fill(jeta - 11, jphi, Rij);
4582 Ghe60->Fill(jeta - 11, jphi, 1.);
4583 }
4584 if (Rij < 0.8 || Rij > 1.2) {
4585 G20he61->Fill(jeta - 11, jphi, Rij);
4586 G20he60->Fill(jeta - 11, jphi, 1.);
4587 }
4588 if (Rij < 0.7 || Rij > 1.3) {
4589 G30he61->Fill(jeta - 11, jphi, Rij);
4590 G30he60->Fill(jeta - 11, jphi, 1.);
4591 }
4592 if (Rij < 0.6 || Rij > 1.4) {
4593 G40he61->Fill(jeta - 11, jphi, Rij);
4594 G40he60->Fill(jeta - 11, jphi, 1.);
4595 }
4596 }
4597 }
4598 }
4599 }
4600 Ghe6->Divide(Ghe61, Ghe60, 1, 1, "B");
4601 G20he6->Divide(G20he61, G20he60, 1, 1, "B");
4602 G30he6->Divide(G30he61, G30he60, 1, 1, "B");
4603 G40he6->Divide(G40he61, G40he60, 1, 1, "B");
4604
4605
4606
4607 Ghe6->GetZaxis()->SetLabelSize(0.025);
4608
4609 Ghe6->SetXTitle(" #eta \b");
4610 Ghe6->SetYTitle(" #phi \b");
4611 Ghe6->SetTitle(
4612 "<Rj> for |1-<R>| > 0.05 \b");
4613
4614 Ghe6->SetStats(0);
4615 Ghe6->Draw("COLZ");
4616
4617 cRBX31->cd(3);
4618 TH1F *Ghe7 = new TH1F("Ghe7", "", 120, 0.4, 1.6);
4619
4620 for (int j = 1; j <= ny; j++) {
4621 ccc0HE = Ghe1->GetBinContent(1, j);
4622 if (ccc0HE <= 0.)
4623 for (int i = 1; i <= nx; i++) {
4624 double ccc2 = Ghe1->GetBinContent(i, j);
4625 if (ccc2 > 0.) {
4626 ccc0HE = ccc2;
4627 break;
4628 }
4629 }
4630 if (ccc0HE > 0.) {
4631
4632 for (int i = 1; i <= nx; i++) {
4633 double ccc1 = Ghe1->GetBinContent(i, j);
4634 if (ccc1 > 0.) {
4635 double Rij = ccc1 / ccc0HE;
4636 Ghe7->Fill(Rij);
4637 }
4638 }
4639 }
4640 }
4641 Ghe7->SetMarkerStyle(20);
4642 Ghe7->SetMarkerSize(0.4);
4643 Ghe7->GetYaxis()->SetLabelSize(0.04);
4644 Ghe7->SetMarkerColor(2);
4645 Ghe7->SetLineColor(0);
4646 Ghe7->SetYTitle(" N \b");
4647 Ghe7->SetXTitle(" Rij \b");
4648 Ghe7->SetTitle(" Rij \b");
4649
4650 gPad->SetGridy();
4651 gPad->SetGridx();
4652
4653 Ghe7->GetYaxis()->SetLabelSize(0.025);
4654 Ghe7->Draw("Error");
4655 Float_t ymaxHE = Ghe7->GetMaximum();
4656 cout << "22HE-3 ymaxHE= " << ymaxHE << " MAXdif3rmsHEMIN= " << MAXdif3rmsHEMIN
4657 << " MINdif3rmsHEMAX= " << MINdif3rmsHEMAX << endl;
4658 TLine *lineHE = new TLine(MAXdif3rmsHEMIN, 0., MAXdif3rmsHEMIN, ymaxHE);
4659 lineHE->SetLineColor(kBlue);
4660 lineHE->Draw();
4661 TLine *line1HE = new TLine(MINdif3rmsHEMAX, 0., MINdif3rmsHEMAX, ymaxHE);
4662 line1HE->SetLineColor(kBlue);
4663 line1HE->Draw();
4664
4665
4666 cRBX31->Update();
4667 cRBX31->Print("RBX-HE-3plots.png");
4668 cRBX31->Clear();
4669
4670 if (Ghe5)
4671 delete Ghe5;
4672 if (Ghe60)
4673 delete Ghe60;
4674 if (Ghe61)
4675 delete Ghe61;
4676 if (Ghe6)
4677 delete Ghe6;
4678 if (Ghe7)
4679 delete Ghe7;
4680
4681 if (G20he60)
4682 delete G20he60;
4683 if (G20he61)
4684 delete G20he61;
4685 if (G30he60)
4686 delete G30he60;
4687 if (G30he61)
4688 delete G30he61;
4689 if (G40he60)
4690 delete G40he60;
4691 if (G40he61)
4692 delete G40he61;
4693
4694 if (Ghe1)
4695 delete Ghe1;
4696
4697
4698
4699
4700
4701
4702 gStyle->SetOptStat(1110000);
4703 cout << " RBX HE Ratio plotsmore *****" << endl;
4704 cRBX31->Clear();
4705
4706 cRBX31->Divide(3, 1);
4707
4708 cRBX31->cd(1);
4709 G20he6->GetZaxis()->SetLabelSize(0.025);
4710 G20he6->SetXTitle(" #eta \b");
4711 G20he6->SetYTitle(" #phi \b");
4712 G20he6->SetTitle("<Rj> for |1-<R>| > 0.20 \b");
4713 G20he6->SetStats(0);
4714 G20he6->Draw("COLZ");
4715
4716 cRBX31->cd(2);
4717 G30he6->GetZaxis()->SetLabelSize(0.025);
4718 G30he6->SetXTitle(" #eta \b");
4719 G30he6->SetYTitle(" #phi \b");
4720 G30he6->SetTitle("<Rj> for |1-<R>| > 0.30 \b");
4721 G30he6->SetStats(0);
4722 G30he6->Draw("COLZ");
4723
4724 cRBX31->cd(3);
4725 G40he6->GetZaxis()->SetLabelSize(0.025);
4726 G40he6->SetXTitle(" #eta \b");
4727 G40he6->SetYTitle(" #phi \b");
4728 G40he6->SetTitle("<Rj> for |1-<R>| > 0.40 \b");
4729 G40he6->SetStats(0);
4730 G40he6->Draw("COLZ");
4731
4732
4733
4734 cRBX31->Update();
4735 cRBX31->Print("RBX-HE-3plotsmore.png");
4736 cRBX31->Clear();
4737
4738
4739 if (G20he6)
4740 delete G20he6;
4741 if (G30he6)
4742 delete G30he6;
4743 if (G40he6)
4744 delete G40he6;
4745 gStyle->SetOptStat(0);
4746
4747
4748 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4749 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4750 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
4751 for (int jphi = 0; jphi < njphi; jphi++) {
4752 for (int jeta = 0; jeta < njeta; jeta++) {
4753 for (int i = 0; i < nx; i++) {
4754 alexall[jeta][jphi][i] = 0.;
4755 }
4756 }
4757 }
4758
4759
4760
4761
4762
4763
4764
4765 cout << " RBX general for HO **************************" << endl;
4766 TH2F *Gho1KKK = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs2");
4767 TH2F *Gho1LLL = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs20");
4768 TH2F *Gho1 = (TH2F *)Gho1LLL->Clone("Gho1");
4769 Gho1->Divide(Gho1KKK, Gho1LLL, 1, 1, "B");
4770
4771
4772
4773 ny = Gho1->GetYaxis()->GetNbins();
4774 for (int j = 1; j <= ny; j++) {
4775 int jeta = (j - 1) / njphi;
4776 if (jeta < 15 && jeta > 6) {
4777 int jphi = (j - 1) - njphi * jeta;
4778
4779
4780 for (int i = 1; i <= nx; i++) {
4781 double ccc1 = Gho1->GetBinContent(i, j);
4782 alexall[jeta][jphi][i - 1] = ccc1;
4783
4784 }
4785 }
4786 }
4787
4788 if (Gho1KKK)
4789 delete Gho1KKK;
4790 if (Gho1LLL)
4791 delete Gho1LLL;
4792
4793
4794
4795 for (int jphi = 0; jphi < njphi; jphi++) {
4796 for (int i = 0; i < nx; i++) {
4797 double sumccc1 = 0.;
4798 int isum = 0;
4799 for (int jeta = 0; jeta < njeta; jeta++) {
4800 double ccc1 = alexall[jeta][jphi][i];
4801 if (ccc1 > 0.) {
4802 sumccc1 += ccc1;
4803 isum++;
4804 }
4805 }
4806 if (isum > 0.)
4807 sumccc1 /= isum;
4808 alexho[jphi][i] = sumccc1;
4809 }
4810 }
4811
4812 for (int keta = 0; keta < njeta; keta++) {
4813 for (int i = 0; i < nx; i++) {
4814 double sumccc1 = 0.;
4815 int isum = 0;
4816 for (int kphi = 0; kphi < njphi; kphi++) {
4817 double ccc1 = alexall[keta][kphi][i];
4818 if (ccc1 > 0.) {
4819 sumccc1 += ccc1;
4820 isum++;
4821 }
4822 }
4823 if (isum > 0.)
4824 sumccc1 /= isum;
4825 blexho[keta][i] = sumccc1;
4826 }
4827 }
4828
4829
4830
4831
4832
4833
4834
4835 cout << " RBX HO 2D plot *****" << endl;
4836 cRBX1->Clear();
4837
4838 cRBX1->Divide(1, 1);
4839 cRBX1->cd(1);
4840
4841 TH2F *Gho42D = new TH2F("Gho42D", "", 23, -11.5, 11.5, 18, 0., 18.);
4842 TH2F *Gho42D0 = new TH2F("Gho42D0", "", 23, -11.5, 11.5, 18, 0., 18.);
4843
4844
4845 TH2F *Gho42DF = (TH2F *)Gho42D0->Clone("Gho42DF");
4846 for (int jphi = 0; jphi < njphi; jphi++) {
4847 for (int jeta = 0; jeta < njeta; jeta++) {
4848 for (int i = 0; i < nx; i++) {
4849 double ccc1 = alexall[jeta][jphi][i];
4850 int neweta = jeta - 11 - 0.5;
4851 if (jeta >= 11)
4852 neweta = jeta - 11 + 1.5;
4853 if (ccc1 > 0.) {
4854 Gho42D->Fill(neweta, jphi, ccc1);
4855 Gho42D0->Fill(neweta, jphi, 1.);
4856 }
4857
4858 }
4859 }
4860 }
4861 Gho42DF->Divide(Gho42D, Gho42D0, 1, 1, "B");
4862
4863 gPad->SetGridy();
4864 gPad->SetGridx();
4865 Gho42DF->SetMarkerStyle(20);
4866 Gho42DF->SetMarkerSize(0.4);
4867 Gho42DF->GetZaxis()->SetLabelSize(0.04);
4868 Gho42DF->SetXTitle("<A>_RBX #eta \b");
4869 Gho42DF->SetYTitle(" #phi \b");
4870 Gho42DF->SetZTitle("<A>_RBX - All \b");
4871 Gho42DF->SetMarkerColor(2);
4872 Gho42DF->SetLineColor(2);
4873 Gho42DF->Draw("COLZ");
4874
4875
4876 cRBX1->Update();
4877 cRBX1->Print("RBX-HO-2Dplot.png");
4878 cRBX1->Clear();
4879
4880 if (Gho42D)
4881 delete Gho42D;
4882 if (Gho42D0)
4883 delete Gho42D0;
4884 if (Gho42DF)
4885 delete Gho42DF;
4886
4887
4888
4889
4890
4891
4892 cout << " RBX HO 1D plot *****" << endl;
4893 cRBX1->Clear();
4894
4895 cRBX1->Divide(1, 1);
4896 cRBX1->cd(1);
4897 TH1F *GphiHO1D = new TH1F("GphiHO1D", "", 18, 0., 18.);
4898 TH1F *GphiHO1D0 = new TH1F("GphiHO1D0", "", 18, 0., 18.);
4899 TH1F *GphiHO1DF = (TH1F *)GphiHO1D0->Clone("GphiHO1DF");
4900 for (int jphi = 0; jphi < 18; jphi++) {
4901 for (int jeta = 0; jeta < 22; jeta++) {
4902 for (int i = 0; i < nx; i++) {
4903 double ccc1 = alexall[jeta][jphi][i];
4904 if (ccc1 > 0.) {
4905 GphiHO1D->Fill(jphi, ccc1);
4906 GphiHO1D0->Fill(jphi, 1.);
4907 }
4908 }
4909 }
4910 }
4911
4912 GphiHO1DF->Divide(GphiHO1D, GphiHO1D0, 1, 1, "B");
4913
4914 for (int jphi = 1; jphi < 19; jphi++) {
4915 GphiHO1DF->SetBinError(jphi, 0.01);
4916 }
4917 gPad->SetGridy();
4918 gPad->SetGridx();
4919 GphiHO1DF->SetMarkerStyle(20);
4920 GphiHO1DF->SetMarkerSize(1.4);
4921 GphiHO1DF->GetZaxis()->SetLabelSize(0.08);
4922 GphiHO1DF->SetXTitle("PHI of RBX\b");
4923 GphiHO1DF->SetYTitle(" <Amplitude> \b");
4924 GphiHO1DF->SetZTitle("<A>_PHI - All \b");
4925 GphiHO1DF->SetMarkerColor(4);
4926 GphiHO1DF->SetLineColor(4);
4927 GphiHO1DF->SetMinimum(0.8);
4928 GphiHO1DF->Draw("Error");
4929
4930 cRBX1->Update();
4931 cRBX1->Print("RBX-HO-1Dplot.png");
4932 cRBX1->Clear();
4933
4934 if (GphiHO1D)
4935 delete GphiHO1D;
4936 if (GphiHO1D0)
4937 delete GphiHO1D0;
4938 if (GphiHO1DF)
4939 delete GphiHO1DF;
4940
4941
4942
4943
4944
4945
4946 cout << " RBX HO 11D plot *eta*" << endl;
4947 cRBX1->Clear();
4948
4949 cRBX1->Divide(1, 1);
4950 cRBX1->cd(1);
4951 TH1F *GetaHO11D = new TH1F("GetaHO11D", "", 23, -11.5, 11.5);
4952 TH1F *GetaHO11D0 = new TH1F("GetaHO11D0", "", 23, -11.5, 11.5);
4953 TH1F *GetaHO11DF = (TH1F *)GetaHO11D0->Clone("GetaHO11DF");
4954
4955 for (int jeta = 0; jeta < 22; jeta++) {
4956 for (int jphi = 0; jphi < 18; jphi++) {
4957 for (int i = 0; i < nx; i++) {
4958 double ccc1 = alexall[jeta][jphi][i];
4959 int neweta = jeta - 11 - 0.5;
4960 if (jeta >= 11)
4961 neweta = jeta - 11 + 1.5;
4962 if (ccc1 > 0.) {
4963 GetaHO11D->Fill(neweta, ccc1);
4964 GetaHO11D0->Fill(neweta, 1.);
4965
4966 }
4967 }
4968 }
4969 }
4970
4971 GetaHO11DF->Divide(GetaHO11D, GetaHO11D0, 1, 1, "B");
4972
4973 for (int jeta = 1; jeta < 24; jeta++) {
4974 GetaHO11DF->SetBinError(jeta, 0.01);
4975 }
4976 gPad->SetGridy();
4977 gPad->SetGridx();
4978 GetaHO11DF->SetMarkerStyle(20);
4979 GetaHO11DF->SetMarkerSize(1.4);
4980 GetaHO11DF->GetZaxis()->SetLabelSize(0.08);
4981 GetaHO11DF->SetXTitle("#eta \b");
4982 GetaHO11DF->SetYTitle(" <A> \b");
4983 GetaHO11DF->SetZTitle("<A>_ETA - All \b");
4984 GetaHO11DF->SetMarkerColor(4);
4985 GetaHO11DF->SetLineColor(4);
4986 GetaHO11DF->SetMinimum(0.8);
4987 GetaHO11DF->Draw("Error");
4988
4989
4990 cRBX1->Update();
4991 cRBX1->Print("RBX-HO-11Dplot.png");
4992 cRBX1->Clear();
4993
4994 if (GetaHO11D)
4995 delete GetaHO11D;
4996 if (GetaHO11D0)
4997 delete GetaHO11D0;
4998 if (GetaHO11DF)
4999 delete GetaHO11DF;
5000
5001
5002
5003
5004
5005
5006
5007 gStyle->SetOptStat(1110000);
5008 cout << " RBX HO Ratio plots *****" << endl;
5009 cRBX31->Clear();
5010
5011
5012
5013
5014
5015
5016 double ccc0HO = 0.;
5017 cRBX31->Divide(3, 1);
5018
5019 cRBX31->cd(1);
5020
5021 TH1F *Gho51 = new TH1F("Gho51", "", nx, 1., nx + 1.);
5022 TH1F *Gho50 = new TH1F("Gho50", "", nx, 1., nx + 1.);
5023 TH1F *Gho5 = (TH1F *)Gho50->Clone("Gho5");
5024
5025 for (int j = 1; j <= ny; j++) {
5026 ccc0HO = Gho1->GetBinContent(1, j);
5027
5028 if (ccc0HO <= 0.)
5029 for (int i = 1; i <= nx; i++) {
5030 double ccc2 = Gho1->GetBinContent(i, j);
5031 if (ccc2 > 0.) {
5032 ccc0HO = ccc2;
5033 break;
5034 }
5035 }
5036 if (ccc0HO > 0.) {
5037
5038 for (int i = 1; i <= nx; i++) {
5039 double ccc1 = Gho1->GetBinContent(i, j);
5040 if (ccc1 > 0.) {
5041 double Rij = ccc1 / ccc0HO;
5042
5043 Gho51->Fill(float(i), Rij);
5044 Gho50->Fill(float(i), 1.);
5045 }
5046 }
5047 }
5048 }
5049 Gho5->Divide(Gho51, Gho50, 1, 1, "B");
5050 for (int i = 1; i <= nx; i++) {
5051 Gho5->SetBinError(i, 0.0001);
5052 }
5053 Gho5->SetMarkerStyle(20);
5054 Gho5->SetMarkerSize(0.4);
5055 Gho5->GetYaxis()->SetLabelSize(0.04);
5056 Gho5->SetMarkerColor(2);
5057 Gho5->SetLineColor(0);
5058 Gho5->SetXTitle(" iLS \b");
5059 Gho5->SetYTitle(" <R> \b");
5060 Gho5->SetTitle("<Ri> vs iLS \b");
5061 Gho5->SetMinimum(0.);
5062
5063 gPad->SetGridy();
5064 gPad->SetGridx();
5065 Gho5->SetStats(0);
5066 Gho5->GetYaxis()->SetLabelSize(0.025);
5067 Gho5->Draw("Error");
5068
5069 cRBX31->cd(2);
5070 TH2F *Gho60 = new TH2F("Gho60", "", 22, -11., 11., 18, 0., 18.);
5071 TH2F *Gho61 = new TH2F("Gho61", "", 22, -11., 11., 18, 0., 18.);
5072 TH2F *Gho6 = new TH2F("Gho6", "", 22, -11., 11., 18, 0., 18.);
5073
5074 TH2F *G20ho60 = new TH2F("G20ho60", "", 22, -11., 11., 18, 0., 18.);
5075 TH2F *G20ho61 = new TH2F("G20ho61", "", 22, -11., 11., 18, 0., 18.);
5076 TH2F *G20ho6 = new TH2F("G20ho6", "", 22, -11., 11., 18, 0., 18.);
5077 TH2F *G30ho60 = new TH2F("G30ho60", "", 22, -11., 11., 18, 0., 18.);
5078 TH2F *G30ho61 = new TH2F("G30ho61", "", 22, -11., 11., 18, 0., 18.);
5079 TH2F *G30ho6 = new TH2F("G30ho6", "", 22, -11., 11., 18, 0., 18.);
5080 TH2F *G40ho60 = new TH2F("G40ho60", "", 22, -11., 11., 18, 0., 18.);
5081 TH2F *G40ho61 = new TH2F("G40ho61", "", 22, -11., 11., 18, 0., 18.);
5082 TH2F *G40ho6 = new TH2F("G40ho6", "", 22, -11., 11., 18, 0., 18.);
5083
5084
5085
5086
5087 double sumjHO = 0.;
5088 int njHO = 0;
5089 double meanjHO = 0.;
5090 for (int j = 1; j <= ny; j++) {
5091 ccc0HO = Gho1->GetBinContent(1, j);
5092 if (ccc0HO <= 0.)
5093 for (int i = 1; i <= nx; i++) {
5094 double ccc2 = Gho1->GetBinContent(i, j);
5095 if (ccc2 > 0.) {
5096 ccc0HO = ccc2;
5097 break;
5098 }
5099 }
5100 if (ccc0HO > 0.) {
5101 for (int i = 1; i <= nx; i++) {
5102 double ccc1 = Gho1->GetBinContent(i, j) / ccc0HO;
5103 if (ccc1 > 0.) {
5104 sumjHO += ccc1;
5105 njHO++;
5106 }
5107 }
5108 meanjHO = sumjHO / njHO;
5109 }
5110 }
5111
5112 double ssumjHO = 0.;
5113 njHO = 0;
5114 double sigmajHO = 0.;
5115 for (int j = 1; j <= ny; j++) {
5116 ccc0HO = Gho1->GetBinContent(1, j);
5117 if (ccc0HO <= 0.)
5118 for (int i = 1; i <= nx; i++) {
5119 double ccc2 = Gho1->GetBinContent(i, j);
5120 if (ccc2 > 0.) {
5121 ccc0HO = ccc2;
5122 break;
5123 }
5124 }
5125 if (ccc0HO > 0.) {
5126 for (int i = 1; i <= nx; i++) {
5127 double ccc1 = Gho1->GetBinContent(i, j) / ccc0HO;
5128 if (ccc1 > 0.) {
5129 ssumjHO += (ccc1 - meanjHO) * (ccc1 - meanjHO);
5130 njHO++;
5131 }
5132 }
5133 sigmajHO = sqrt(ssumjHO / njHO);
5134 }
5135 }
5136
5137 double dif3rmsHOMIN = meanjHO - 3 * sigmajHO;
5138 if (dif3rmsHOMIN < 0.)
5139 dif3rmsHOMIN = 0.;
5140 double dif3rmsHOMAX = meanjHO + 3 * sigmajHO;
5141 cout << "22HO-2 meanjHO= " << meanjHO << " sigmajHO= " << sigmajHO << " dif3rmsHOMIN= " << dif3rmsHOMIN
5142 << " dif3rmsHOMAX= " << dif3rmsHOMAX << endl;
5143
5144 double MAXdif3rmsHOMIN = dif3rmsHOMIN;
5145 double MINdif3rmsHOMAX = dif3rmsHOMAX;
5146 if (MAXdif3rmsHOMIN < 0.95)
5147 MAXdif3rmsHOMIN = 0.95;
5148 if (MINdif3rmsHOMAX > 1.05)
5149 MINdif3rmsHOMAX = 1.05;
5150 cout << "22HO-2 MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN << " MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5151
5152 for (int j = 1; j <= ny; j++) {
5153 ccc0HO = Gho1->GetBinContent(1, j);
5154 if (ccc0HO <= 0.)
5155 for (int i = 1; i <= nx; i++) {
5156 double ccc2 = Gho1->GetBinContent(i, j);
5157 if (ccc2 > 0.) {
5158 ccc0HO = ccc2;
5159 break;
5160 }
5161 }
5162 if (ccc0HO > 0.) {
5163 int jeta = (j - 1) / 18;
5164 int jphi = (j - 1) - 18 * jeta;
5165
5166 for (int i = 1; i <= nx; i++) {
5167 double ccc1 = Gho1->GetBinContent(i, j);
5168 if (ccc1 > 0.) {
5169 double Rij = ccc1 / ccc0HO;
5170 if (Rij < MAXdif3rmsHOMIN || Rij > MINdif3rmsHOMAX) {
5171 Gho61->Fill(jeta - 11, jphi, Rij);
5172 Gho60->Fill(jeta - 11, jphi, 1.);
5173 }
5174 if (Rij < 0.8 || Rij > 1.2) {
5175 G20ho61->Fill(jeta - 11, jphi, Rij);
5176 G20ho60->Fill(jeta - 11, jphi, 1.);
5177 }
5178 if (Rij < 0.7 || Rij > 1.3) {
5179 G30ho61->Fill(jeta - 11, jphi, Rij);
5180 G30ho60->Fill(jeta - 11, jphi, 1.);
5181 }
5182 if (Rij < 0.6 || Rij > 1.4) {
5183 G40ho61->Fill(jeta - 11, jphi, Rij);
5184 G40ho60->Fill(jeta - 11, jphi, 1.);
5185 }
5186 }
5187 }
5188 }
5189 }
5190 Gho6->Divide(Gho61, Gho60, 1, 1, "B");
5191 G20ho6->Divide(G20ho61, G20ho60, 1, 1, "B");
5192 G30ho6->Divide(G30ho61, G30ho60, 1, 1, "B");
5193 G40ho6->Divide(G40ho61, G40ho60, 1, 1, "B");
5194
5195
5196 Gho6->GetZaxis()->SetLabelSize(0.025);
5197
5198 Gho6->SetXTitle(" #eta \b");
5199 Gho6->SetYTitle(" #phi \b");
5200 Gho6->SetTitle(
5201 "<Rj> for |1-<R>| > 0.05 \b");
5202
5203 Gho6->SetStats(0);
5204 Gho6->Draw("COLZ");
5205
5206 cRBX31->cd(3);
5207 TH1F *Gho7 = new TH1F("Gho7", "", 120, 0.4, 1.6);
5208
5209 for (int j = 1; j <= ny; j++) {
5210 ccc0HO = Gho1->GetBinContent(1, j);
5211 if (ccc0HO <= 0.)
5212 for (int i = 1; i <= nx; i++) {
5213 double ccc2 = Gho1->GetBinContent(i, j);
5214 if (ccc2 > 0.) {
5215 ccc0HO = ccc2;
5216 break;
5217 }
5218 }
5219 if (ccc0HO > 0.) {
5220
5221 for (int i = 1; i <= nx; i++) {
5222 double ccc1 = Gho1->GetBinContent(i, j);
5223 if (ccc1 > 0.) {
5224 double Rij = ccc1 / ccc0HO;
5225 Gho7->Fill(Rij);
5226 }
5227 }
5228 }
5229 }
5230 Gho7->SetMarkerStyle(20);
5231 Gho7->SetMarkerSize(0.4);
5232 Gho7->GetYaxis()->SetLabelSize(0.04);
5233 Gho7->SetMarkerColor(2);
5234 Gho7->SetLineColor(0);
5235 Gho7->SetYTitle(" N \b");
5236 Gho7->SetXTitle(" Rij \b");
5237 Gho7->SetTitle(" Rij \b");
5238
5239 gPad->SetGridy();
5240 gPad->SetGridx();
5241
5242 Gho7->GetYaxis()->SetLabelSize(0.025);
5243 Gho7->Draw("Error");
5244 Float_t ymaxHO = Gho7->GetMaximum();
5245 cout << "22HO-3 ymaxHO= " << ymaxHO << " MAXdif3rmsHOMIN= " << MAXdif3rmsHOMIN
5246 << " MINdif3rmsHOMAX= " << MINdif3rmsHOMAX << endl;
5247 TLine *lineHO = new TLine(MAXdif3rmsHOMIN, 0., MAXdif3rmsHOMIN, ymaxHO);
5248 lineHO->SetLineColor(kBlue);
5249 lineHO->Draw();
5250 TLine *line1HO = new TLine(MINdif3rmsHOMAX, 0., MINdif3rmsHOMAX, ymaxHO);
5251 line1HO->SetLineColor(kBlue);
5252 line1HO->Draw();
5253
5254
5255 cRBX31->Update();
5256 cRBX31->Print("RBX-HO-3plots.png");
5257 cRBX31->Clear();
5258
5259 if (Gho5)
5260 delete Gho5;
5261 if (Gho60)
5262 delete Gho60;
5263 if (Gho61)
5264 delete Gho61;
5265 if (Gho6)
5266 delete Gho6;
5267 if (Gho7)
5268 delete Gho7;
5269
5270 if (G20ho60)
5271 delete G20ho60;
5272 if (G20ho61)
5273 delete G20ho61;
5274 if (G30ho60)
5275 delete G30ho60;
5276 if (G30ho61)
5277 delete G30ho61;
5278 if (G40ho60)
5279 delete G40ho60;
5280 if (G40ho61)
5281 delete G40ho61;
5282
5283 if (Gho1)
5284 delete Gho1;
5285
5286
5287
5288
5289
5290
5291 gStyle->SetOptStat(1110000);
5292 cout << " RBX HO Ratio plotsmore *****" << endl;
5293 cRBX31->Clear();
5294
5295 cRBX31->Divide(3, 1);
5296
5297 cRBX31->cd(1);
5298 G20ho6->GetZaxis()->SetLabelSize(0.025);
5299 G20ho6->SetXTitle(" #eta \b");
5300 G20ho6->SetYTitle(" #phi \b");
5301 G20ho6->SetTitle("<Rj> for |1-<R>| > 0.20 \b");
5302 G20ho6->SetStats(0);
5303 G20ho6->Draw("COLZ");
5304
5305 cRBX31->cd(2);
5306 G30ho6->GetZaxis()->SetLabelSize(0.025);
5307 G30ho6->SetXTitle(" #eta \b");
5308 G30ho6->SetYTitle(" #phi \b");
5309 G30ho6->SetTitle("<Rj> for |1-<R>| > 0.30 \b");
5310 G30ho6->SetStats(0);
5311 G30ho6->Draw("COLZ");
5312
5313 cRBX31->cd(3);
5314 G40ho6->GetZaxis()->SetLabelSize(0.025);
5315 G40ho6->SetXTitle(" #eta \b");
5316 G40ho6->SetYTitle(" #phi \b");
5317 G40ho6->SetTitle("<Rj> for |1-<R>| > 0.40 \b");
5318 G40ho6->SetStats(0);
5319 G40ho6->Draw("COLZ");
5320
5321
5322
5323 cRBX31->Update();
5324 cRBX31->Print("RBX-HO-3plotsmore.png");
5325 cRBX31->Clear();
5326
5327
5328 if (G20ho6)
5329 delete G20ho6;
5330 if (G30ho6)
5331 delete G30ho6;
5332 if (G40ho6)
5333 delete G40ho6;
5334 gStyle->SetOptStat(0);
5335
5336
5337 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5338 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5339 cout << ">>>>>>>>>>>>>>>>>>>>>>>> " << endl;
5340 for (int jphi = 0; jphi < njphi; jphi++) {
5341 for (int jeta = 0; jeta < njeta; jeta++) {
5342 for (int i = 0; i < nx; i++) {
5343 alexall[jeta][jphi][i] = 0.;
5344 }
5345 }
5346 }
5347
5348
5349
5350
5351
5352
5353
5354 cout << " RBX general for HF **************************" << endl;
5355 TH2F *Ghf1KKK = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs3");
5356 TH2F *Ghf1LLL = (TH2F *)dir->FindObjectAny("h_2DsumADCAmplEtaPhiLs30");
5357 TH2F *Ghf1 = (TH2F *)Ghf1LLL->Clone("Ghf1");
5358 Ghf1->Divide(Ghf1KKK, Ghf1LLL, 1, 1, "B");
5359
5360
5361
5362 ny = Ghf1->GetYaxis()->GetNbins();
5363 for (int j = 1; j <= ny; j++) {
5364 int jeta = (j - 1) / njphi;
5365 if (jeta < 4 || jeta > 17) {
5366 int jphi = (j - 1) - njphi * jeta;
5367
5368
5369 for (int i = 1; i <= nx; i++) {
5370 double ccc1 = Ghf1->GetBinContent(i, j);
5371 alexall[jeta][jphi][i - 1] = ccc1;
5372
5373 }
5374 }
5375 }
5376
5377 if (Ghf1KKK)
5378 delete Ghf1KKK;
5379 if (Ghf1LLL)
5380 delete Ghf1LLL;
5381
5382
5383
5384 for (int jphi = 0; jphi < njphi; jphi++) {
5385 for (int i = 0; i < nx; i++) {
5386 double sumccc1 = 0.;
5387 int isum = 0;
5388 for (int jeta = 0; jeta < njeta; jeta++) {
5389 double ccc1 = alexall[jeta][jphi][i];
5390 if (ccc1 > 0.) {
5391 sumccc1 += ccc1;
5392 isum++;
5393 }
5394 }
5395 if (isum > 0.)
5396 sumccc1 /= isum;
5397 alexhf[jphi][i] = sumccc1;
5398 }
5399 }
5400
5401 for (int keta = 0; keta < njeta; keta++) {
5402 for (int i = 0; i < nx; i++) {
5403 double sumccc1 = 0.;
5404 int isum = 0;
5405 for (int kphi = 0; kphi < njphi; kphi++) {
5406 double ccc1 = alexall[keta][kphi][i];
5407 if (ccc1 > 0.) {
5408 sumccc1 += ccc1;
5409 isum++;
5410 }
5411 }
5412 if (isum > 0.)
5413 sumccc1 /= isum;
5414 blexhf[keta][i] = sumccc1;
5415 }
5416 }
5417
5418
5419
5420
5421
5422
5423 cout << " RBX HF 2D plot *****" << endl;
5424 cRBX1->Clear();
5425
5426 cRBX1->Divide(1, 1);
5427 cRBX1->cd(1);
5428
5429 TH2F *Ghf42D = new TH2F("Ghf42D", "", 23, -11.5, 11.5, 18, 0., 18.);
5430 TH2F *Ghf42D0 = new TH2F("Ghf42D0", "", 23, -11.5, 11.5, 18, 0., 18.);
5431
5432
5433 TH2F *Ghf42DF = (TH2F *)Ghf42D0->Clone("Ghf42DF");
5434 for (int jphi = 0; jphi < njphi; jphi++) {
5435 for (int jeta = 0; jeta < njeta; jeta++) {
5436 for (int i = 0; i < nx; i++) {
5437 double ccc1 = alexall[jeta][jphi][i];
5438 int neweta = jeta - 11 - 0.5;
5439 if (jeta >= 11)
5440 neweta = jeta - 11 + 1.5;
5441 if (ccc1 > 0.) {
5442 Ghf42D->Fill(neweta, jphi, ccc1);
5443 Ghf42D0->Fill(neweta, jphi, 1.);
5444 }
5445
5446 }
5447 }
5448 }
5449 Ghf42DF->Divide(Ghf42D, Ghf42D0, 1, 1, "B");
5450
5451 gPad->SetGridy();
5452 gPad->SetGridx();
5453 Ghf42DF->SetMarkerStyle(20);
5454 Ghf42DF->SetMarkerSize(0.4);
5455 Ghf42DF->GetZaxis()->SetLabelSize(0.04);
5456 Ghf42DF->SetXTitle("<A>_RBX #eta \b");
5457 Ghf42DF->SetYTitle(" #phi \b");
5458 Ghf42DF->SetZTitle("<A>_RBX - All \b");
5459 Ghf42DF->SetMarkerColor(2);
5460 Ghf42DF->SetLineColor(2);
5461 Ghf42DF->Draw("COLZ");
5462
5463
5464 cRBX1->Update();
5465 cRBX1->Print("RBX-HF-2Dplot.png");
5466 cRBX1->Clear();
5467
5468 if (Ghf42D)
5469 delete Ghf42D;
5470 if (Ghf42D0)
5471 delete Ghf42D0;
5472 if (Ghf42DF)
5473 delete Ghf42DF;
5474
5475
5476
5477
5478
5479
5480 cout << " RBX HF 1D plot *****" << endl;
5481 cRBX1->Clear();
5482
5483 cRBX1->Divide(1, 1);
5484 cRBX1->cd(1);
5485 TH1F *GphiHF1D = new TH1F("GphiHF1D", "", 18, 0., 18.);
5486 TH1F *GphiHF1D0 = new TH1F("GphiHF1D0", "", 18, 0., 18.);
5487 TH1F *GphiHF1DF = (TH1F *)GphiHF1D0->Clone("GphiHF1DF");
5488 for (int jphi = 0; jphi < 18; jphi++) {
5489 for (int jeta = 0; jeta < 22; jeta++) {
5490 for (int i = 0; i < nx; i++) {
5491 double ccc1 = alexall[jeta][jphi][i];
5492 if (ccc1 > 0.) {
5493 GphiHF1D->Fill(jphi, ccc1);
5494 GphiHF1D0->Fill(jphi, 1.);
5495 }
5496 }
5497 }
5498 }
5499
5500 GphiHF1DF->Divide(GphiHF1D, GphiHF1D0, 1, 1, "B");
5501
5502 for (int jphi = 1; jphi < 19; jphi++) {
5503 GphiHF1DF->SetBinError(jphi, 0.01);
5504 }
5505 gPad->SetGridy();
5506 gPad->SetGridx();
5507 GphiHF1DF->SetMarkerStyle(20);
5508 GphiHF1DF->SetMarkerSize(1.4);
5509 GphiHF1DF->GetZaxis()->SetLabelSize(0.08);
5510 GphiHF1DF->SetXTitle("PHI of RBX\b");
5511 GphiHF1DF->SetYTitle(" <Amplitude> \b");
5512 GphiHF1DF->SetZTitle("<A>_PHI - All \b");
5513 GphiHF1DF->SetMarkerColor(4);
5514 GphiHF1DF->SetLineColor(4);
5515 GphiHF1DF->SetMinimum(0.8);
5516 GphiHF1DF->Draw("Error");
5517
5518 cRBX1->Update();
5519 cRBX1->Print("RBX-HF-1Dplot.png");
5520 cRBX1->Clear();
5521
5522 if (GphiHF1D)
5523 delete GphiHF1D;
5524 if (GphiHF1D0)
5525 delete GphiHF1D0;
5526 if (GphiHF1DF)
5527 delete GphiHF1DF;
5528
5529
5530
5531
5532
5533
5534 cout << " RBX HF 11D plot *eta*" << endl;
5535 cRBX1->Clear();
5536
5537 cRBX1->Divide(1, 1);
5538 cRBX1->cd(1);
5539 TH1F *GetaHF11D = new TH1F("GetaHF11D", "", 23, -11.5, 11.5);
5540 TH1F *GetaHF11D0 = new TH1F("GetaHF11D0", "", 23, -11.5, 11.5);
5541 TH1F *GetaHF11DF = (TH1F *)GetaHF11D0->Clone("GetaHF11DF");
5542
5543 for (int jeta = 0; jeta < 22; jeta++) {
5544 for (int jphi = 0; jphi < 18; jphi++) {
5545 for (int i = 0; i < nx; i++) {
5546 double ccc1 = alexall[jeta][jphi][i];
5547 int neweta = jeta - 11 - 0.5;
5548 if (jeta >= 11)
5549 neweta = jeta - 11 + 1.5;
5550 if (ccc1 > 0.) {
5551 GetaHF11D->Fill(neweta, ccc1);
5552 GetaHF11D0->Fill(neweta, 1.);
5553
5554 }
5555 }
5556 }
5557 }
5558
5559 GetaHF11DF->Divide(GetaHF11D, GetaHF11D0, 1, 1, "B");
5560
5561 for (int jeta = 1; jeta < 24; jeta++) {
5562 GetaHF11DF->SetBinError(jeta, 0.01);
5563 }
5564 gPad->SetGridy();
5565 gPad->SetGridx();
5566 GetaHF11DF->SetMarkerStyle(20);
5567 GetaHF11DF->SetMarkerSize(1.4);
5568 GetaHF11DF->GetZaxis()->SetLabelSize(0.08);
5569 GetaHF11DF->SetXTitle("#eta \b");
5570 GetaHF11DF->SetYTitle(" <A> \b");
5571 GetaHF11DF->SetZTitle("<A>_ETA - All \b");
5572 GetaHF11DF->SetMarkerColor(4);
5573 GetaHF11DF->SetLineColor(4);
5574 GetaHF11DF->SetMinimum(0.8);
5575 GetaHF11DF->Draw("Error");
5576
5577
5578 cRBX1->Update();
5579 cRBX1->Print("RBX-HF-11Dplot.png");
5580 cRBX1->Clear();
5581
5582 if (GetaHF11D)
5583 delete GetaHF11D;
5584 if (GetaHF11D0)
5585 delete GetaHF11D0;
5586 if (GetaHF11DF)
5587 delete GetaHF11DF;
5588
5589
5590
5591
5592
5593
5594
5595 gStyle->SetOptStat(1110000);
5596 cout << " RBX HF Ratio plots *****" << endl;
5597 cRBX31->Clear();
5598
5599
5600
5601
5602
5603
5604 double ccc0HF = 0.;
5605 cRBX31->Divide(3, 1);
5606
5607 cRBX31->cd(1);
5608
5609 TH1F *Ghf51 = new TH1F("Ghf51", "", nx, 1., nx + 1.);
5610 TH1F *Ghf50 = new TH1F("Ghf50", "", nx, 1., nx + 1.);
5611 TH1F *Ghf5 = (TH1F *)Ghf50->Clone("Ghf5");
5612
5613 for (int j = 1; j <= ny; j++) {
5614 ccc0HF = Ghf1->GetBinContent(1, j);
5615
5616 if (ccc0HF <= 0.)
5617 for (int i = 1; i <= nx; i++) {
5618 double ccc2 = Ghf1->GetBinContent(i, j);
5619 if (ccc2 > 0.) {
5620 ccc0HF = ccc2;
5621 break;
5622 }
5623 }
5624 if (ccc0HF > 0.) {
5625
5626 for (int i = 1; i <= nx; i++) {
5627 double ccc1 = Ghf1->GetBinContent(i, j);
5628 if (ccc1 > 0.) {
5629 double Rij = ccc1 / ccc0HF;
5630
5631 Ghf51->Fill(float(i), Rij);
5632 Ghf50->Fill(float(i), 1.);
5633 }
5634 }
5635 }
5636 }
5637 Ghf5->Divide(Ghf51, Ghf50, 1, 1, "B");
5638 for (int i = 1; i <= nx; i++) {
5639 Ghf5->SetBinError(i, 0.0001);
5640 }
5641 Ghf5->SetMarkerStyle(20);
5642 Ghf5->SetMarkerSize(0.4);
5643 Ghf5->GetYaxis()->SetLabelSize(0.04);
5644 Ghf5->SetMarkerColor(2);
5645 Ghf5->SetLineColor(0);
5646 Ghf5->SetXTitle(" iLS \b");
5647 Ghf5->SetYTitle(" <R> \b");
5648 Ghf5->SetTitle("<Ri> vs iLS \b");
5649 Ghf5->SetMinimum(0.);
5650
5651 gPad->SetGridy();
5652 gPad->SetGridx();
5653 Ghf5->SetStats(0);
5654 Ghf5->GetYaxis()->SetLabelSize(0.025);
5655 Ghf5->Draw("Error");
5656
5657 cRBX31->cd(2);
5658 TH2F *Ghf60 = new TH2F("Ghf60", "", 22, -11., 11., 18, 0., 18.);
5659 TH2F *Ghf61 = new TH2F("Ghf61", "", 22, -11., 11., 18, 0., 18.);
5660 TH2F *Ghf6 = new TH2F("Ghf6", "", 22, -11., 11., 18, 0., 18.);
5661
5662 TH2F *G20hf60 = new TH2F("G20hf60", "", 22, -11., 11., 18, 0., 18.);
5663 TH2F *G20hf61 = new TH2F("G20hf61", "", 22, -11., 11., 18, 0., 18.);
5664 TH2F *G20hf6 = new TH2F("G20hf6", "", 22, -11., 11., 18, 0., 18.);
5665 TH2F *G30hf60 = new TH2F("G30hf60", "", 22, -11., 11., 18, 0., 18.);
5666 TH2F *G30hf61 = new TH2F("G30hf61", "", 22, -11., 11., 18, 0., 18.);
5667 TH2F *G30hf6 = new TH2F("G30hf6", "", 22, -11., 11., 18, 0., 18.);
5668 TH2F *G40hf60 = new TH2F("G40hf60", "", 22, -11., 11., 18, 0., 18.);
5669 TH2F *G40hf61 = new TH2F("G40hf61", "", 22, -11., 11., 18, 0., 18.);
5670 TH2F *G40hf6 = new TH2F("G40hf6", "", 22, -11., 11., 18, 0., 18.);
5671
5672
5673
5674 double sumjHF = 0.;
5675 int njHF = 0;
5676 double meanjHF = 0.;
5677 for (int j = 1; j <= ny; j++) {
5678 ccc0HF = Ghf1->GetBinContent(1, j);
5679 if (ccc0HF <= 0.)
5680 for (int i = 1; i <= nx; i++) {
5681 double ccc2 = Ghf1->GetBinContent(i, j);
5682 if (ccc2 > 0.) {
5683 ccc0HF = ccc2;
5684 break;
5685 }
5686 }
5687 if (ccc0HF > 0.) {
5688 for (int i = 1; i <= nx; i++) {
5689 double ccc1 = Ghf1->GetBinContent(i, j) / ccc0HF;
5690 if (ccc1 > 0.) {
5691 sumjHF += ccc1;
5692 njHF++;
5693 }
5694 }
5695 meanjHF = sumjHF / njHF;
5696 }
5697 }
5698
5699 double ssumjHF = 0.;
5700 njHF = 0;
5701 double sigmajHF = 0.;
5702 for (int j = 1; j <= ny; j++) {
5703 ccc0HF = Ghf1->GetBinContent(1, j);
5704 if (ccc0HF <= 0.)
5705 for (int i = 1; i <= nx; i++) {
5706 double ccc2 = Ghf1->GetBinContent(i, j);
5707 if (ccc2 > 0.) {
5708 ccc0HF = ccc2;
5709 break;
5710 }
5711 }
5712 if (ccc0HF > 0.) {
5713 for (int i = 1; i <= nx; i++) {
5714 double ccc1 = Ghf1->GetBinContent(i, j) / ccc0HF;
5715 if (ccc1 > 0.) {
5716 ssumjHF += (ccc1 - meanjHF) * (ccc1 - meanjHF);
5717 njHF++;
5718 }
5719 }
5720 sigmajHF = sqrt(ssumjHF / njHF);
5721 }
5722 }
5723
5724 double dif3rmsHFMIN = meanjHF - 3 * sigmajHF;
5725 if (dif3rmsHFMIN < 0.)
5726 dif3rmsHFMIN = 0.;
5727 double dif3rmsHFMAX = meanjHF + 3 * sigmajHF;
5728 cout << "22HF-2 meanjHF= " << meanjHF << " sigmajHF= " << sigmajHF << " dif3rmsHFMIN= " << dif3rmsHFMIN
5729 << " dif3rmsHFMAX= " << dif3rmsHFMAX << endl;
5730
5731 double MAXdif3rmsHFMIN = dif3rmsHFMIN;
5732 double MINdif3rmsHFMAX = dif3rmsHFMAX;
5733 if (MAXdif3rmsHFMIN < 0.95)
5734 MAXdif3rmsHFMIN = 0.95;
5735 if (MINdif3rmsHFMAX > 1.05)
5736 MINdif3rmsHFMAX = 1.05;
5737 cout << "22HF-2 MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN << " MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5738
5739 for (int j = 1; j <= ny; j++) {
5740 ccc0HF = Ghf1->GetBinContent(1, j);
5741 if (ccc0HF <= 0.)
5742 for (int i = 1; i <= nx; i++) {
5743 double ccc2 = Ghf1->GetBinContent(i, j);
5744 if (ccc2 > 0.) {
5745 ccc0HF = ccc2;
5746 break;
5747 }
5748 }
5749 if (ccc0HF > 0.) {
5750 int jeta = (j - 1) / 18;
5751 int jphi = (j - 1) - 18 * jeta;
5752
5753 for (int i = 1; i <= nx; i++) {
5754 double ccc1 = Ghf1->GetBinContent(i, j);
5755 if (ccc1 > 0.) {
5756 double Rij = ccc1 / ccc0HF;
5757 if (Rij < MAXdif3rmsHFMIN || Rij > MINdif3rmsHFMAX) {
5758 Ghf61->Fill(jeta - 11, jphi, Rij);
5759 Ghf60->Fill(jeta - 11, jphi, 1.);
5760 }
5761 if (Rij < 0.8 || Rij > 1.2) {
5762 G20hf61->Fill(jeta - 11, jphi, Rij);
5763 G20hf60->Fill(jeta - 11, jphi, 1.);
5764 }
5765 if (Rij < 0.7 || Rij > 1.3) {
5766 G30hf61->Fill(jeta - 11, jphi, Rij);
5767 G30hf60->Fill(jeta - 11, jphi, 1.);
5768 }
5769 if (Rij < 0.6 || Rij > 1.4) {
5770 G40hf61->Fill(jeta - 11, jphi, Rij);
5771 G40hf60->Fill(jeta - 11, jphi, 1.);
5772 }
5773 }
5774 }
5775 }
5776 }
5777 Ghf6->Divide(Ghf61, Ghf60, 1, 1, "B");
5778 G20hf6->Divide(G20hf61, G20hf60, 1, 1, "B");
5779 G30hf6->Divide(G30hf61, G30hf60, 1, 1, "B");
5780 G40hf6->Divide(G40hf61, G40hf60, 1, 1, "B");
5781
5782
5783 Ghf6->GetZaxis()->SetLabelSize(0.025);
5784
5785 Ghf6->SetXTitle(" #eta \b");
5786 Ghf6->SetYTitle(" #phi \b");
5787 Ghf6->SetTitle(
5788 "<Rj> for |1-<R>| > 0.05 \b");
5789
5790 Ghf6->SetStats(0);
5791 Ghf6->Draw("COLZ");
5792
5793 cRBX31->cd(3);
5794 TH1F *Ghf7 = new TH1F("Ghf7", "", 120, 0.4, 1.6);
5795
5796 for (int j = 1; j <= ny; j++) {
5797 ccc0HF = Ghf1->GetBinContent(1, j);
5798 if (ccc0HF <= 0.)
5799 for (int i = 1; i <= nx; i++) {
5800 double ccc2 = Ghf1->GetBinContent(i, j);
5801 if (ccc2 > 0.) {
5802 ccc0HF = ccc2;
5803 break;
5804 }
5805 }
5806 if (ccc0HF > 0.) {
5807
5808 for (int i = 1; i <= nx; i++) {
5809 double ccc1 = Ghf1->GetBinContent(i, j);
5810 if (ccc1 > 0.) {
5811 double Rij = ccc1 / ccc0HF;
5812 Ghf7->Fill(Rij);
5813 }
5814 }
5815 }
5816 }
5817 Ghf7->SetMarkerStyle(20);
5818 Ghf7->SetMarkerSize(0.4);
5819 Ghf7->GetYaxis()->SetLabelSize(0.04);
5820 Ghf7->SetMarkerColor(2);
5821 Ghf7->SetLineColor(0);
5822 Ghf7->SetYTitle(" N \b");
5823 Ghf7->SetXTitle(" Rij \b");
5824 Ghf7->SetTitle(" Rij \b");
5825
5826 gPad->SetGridy();
5827 gPad->SetGridx();
5828
5829 Ghf7->GetYaxis()->SetLabelSize(0.025);
5830 Ghf7->Draw("Error");
5831 Float_t ymaxHF = Ghf7->GetMaximum();
5832 cout << "22HF-3 ymaxHF= " << ymaxHF << " MAXdif3rmsHFMIN= " << MAXdif3rmsHFMIN
5833 << " MINdif3rmsHFMAX= " << MINdif3rmsHFMAX << endl;
5834 TLine *lineHF = new TLine(MAXdif3rmsHFMIN, 0., MAXdif3rmsHFMIN, ymaxHF);
5835 lineHF->SetLineColor(kBlue);
5836 lineHF->Draw();
5837 TLine *line1HF = new TLine(MINdif3rmsHFMAX, 0., MINdif3rmsHFMAX, ymaxHF);
5838 line1HF->SetLineColor(kBlue);
5839 line1HF->Draw();
5840
5841
5842 cRBX31->Update();
5843 cRBX31->Print("RBX-HF-3plots.png");
5844 cRBX31->Clear();
5845
5846 if (Ghf5)
5847 delete Ghf5;
5848 if (Ghf60)
5849 delete Ghf60;
5850 if (Ghf61)
5851 delete Ghf61;
5852 if (Ghf6)
5853 delete Ghf6;
5854 if (Ghf7)
5855 delete Ghf7;
5856
5857 if (G20hf60)
5858 delete G20hf60;
5859 if (G20hf61)
5860 delete G20hf61;
5861 if (G30hf60)
5862 delete G30hf60;
5863 if (G30hf61)
5864 delete G30hf61;
5865 if (G40hf60)
5866 delete G40hf60;
5867 if (G40hf61)
5868 delete G40hf61;
5869
5870 if (Ghf1)
5871 delete Ghf1;
5872
5873
5874
5875
5876
5877
5878 gStyle->SetOptStat(1110000);
5879 cout << " RBX HF Ratio plotsmore *****" << endl;
5880 cRBX31->Clear();
5881
5882 cRBX31->Divide(3, 1);
5883
5884 cRBX31->cd(1);
5885 G20hf6->GetZaxis()->SetLabelSize(0.025);
5886 G20hf6->SetXTitle(" #eta \b");
5887 G20hf6->SetYTitle(" #phi \b");
5888 G20hf6->SetTitle("<Rj> for |1-<R>| > 0.20 \b");
5889 G20hf6->SetStats(0);
5890 G20hf6->Draw("COLZ");
5891
5892 cRBX31->cd(2);
5893 G30hf6->GetZaxis()->SetLabelSize(0.025);
5894 G30hf6->SetXTitle(" #eta \b");
5895 G30hf6->SetYTitle(" #phi \b");
5896 G30hf6->SetTitle("<Rj> for |1-<R>| > 0.30 \b");
5897 G30hf6->SetStats(0);
5898 G30hf6->Draw("COLZ");
5899
5900 cRBX31->cd(3);
5901 G40hf6->GetZaxis()->SetLabelSize(0.025);
5902 G40hf6->SetXTitle(" #eta \b");
5903 G40hf6->SetYTitle(" #phi \b");
5904 G40hf6->SetTitle("<Rj> for |1-<R>| > 0.40 \b");
5905 G40hf6->SetStats(0);
5906 G40hf6->Draw("COLZ");
5907
5908
5909
5910 cRBX31->Update();
5911 cRBX31->Print("RBX-HF-3plotsmore.png");
5912 cRBX31->Clear();
5913
5914
5915 if (G20hf6)
5916