File indexing completed on 2024-04-06 12:05:40
0001 #include <iostream>
0002 #include <fstream>
0003 #include "TH1.h"
0004 #include "TH2.h"
0005 #include "TH1F.h"
0006 #include "TH2F.h"
0007 #include "TCanvas.h"
0008 #include "TROOT.h"
0009 #include <TMath.h>
0010 #include "TStyle.h"
0011 #include "TSystem.h"
0012 #include "TLegend.h"
0013 #include "TText.h"
0014 #include "TAxis.h"
0015 #include "TFile.h"
0016 #include "TLine.h"
0017 #include "TGraph.h"
0018 #include <TPaveText.h>
0019 #include <TPostScript.h>
0020 #include <TClass.h>
0021 #include <TLatex.h>
0022 #include <TFrame.h>
0023 #include <TPad.h>
0024 #include <TGaxis.h>
0025
0026 #include "TGraphErrors.h"
0027 #include "TF1.h"
0028 #include "TArrow.h"
0029
0030
0031 using namespace std;
0032
0033
0034 int main(int argc, char* argv[]) {
0035 cout << "********************************************************************* START job " << endl;
0036
0037
0038 TGraph* gr1;
0039 TGraph* gr2;
0040 TGraph* gr3;
0041 TGraph* gr4;
0042 TGraph* gr5;
0043 TGraph* gr6;
0044 TGraph* gr7;
0045 TGraph* gr8;
0046 TGraph* gr9;
0047 TGraphErrors* ge1;
0048 TGraphErrors* ge2;
0049 TGraphErrors* ge3;
0050 TGraphErrors* ge4;
0051 TGraphErrors* ge5;
0052 TGraphErrors* ge6;
0053 TGraphErrors* ge7;
0054 TGraphErrors* ge8;
0055 TGraphErrors* ge9;
0056
0057
0058 const Int_t NMethods = 14;
0059 const Int_t NMethodsStart = 0;
0060 const Int_t NMethodsToUse = 13;
0061
0062 TString MethodName[NMethods] = {"PLOT0",
0063 "PLOT1",
0064 "PLOT2",
0065 "PLOT3",
0066 "PLOT4",
0067 "PLOT5",
0068 "PLOT6",
0069 "PLOT7",
0070 "PLOT8",
0071 "PLOT9",
0072 "PLOT10",
0073 "PLOT11",
0074 "PLOT12",
0075 "PLOT13"};
0076
0077 const Int_t NMAXM = 70;
0078
0079 cout << "********************************************************************* NMAXM = " << NMAXM << endl;
0080
0081 TString LEDrunsM[NMAXM] = {
0082 "315812", "315984", "316826", "317116", "317193", "317268", "317271", "317273", "317363",
0083 "317444", "317606", "317607", "317609", "317610", "317611", "317612", "317613", "317617",
0084 "317785", "318758", "319198", "319401", "319517", "319519", "319520", "319564", "319612",
0085 "319734", "319771", "319774", "319857", "319969", "320117", "320158", "320203", "320205",
0086 "320348", "320579", "320873", "320892", "320952", "321019", "321036", "321187", "321339",
0087 "321359", "321371", "321447", "321514", "322781", "322782", "323314", "323502", "323579",
0088 "323613", "323742", "324030", "324032", "324138", "324225", "324296", "324919", "325141",
0089 "325787", "326234", "326875", "327288", "327438", "327552", "327579"
0090
0091 };
0092 cout << "********************************************************************* first massives defined " << endl;
0093 Float_t X0M[NMAXM] = {
0094
0095 0., 2., 17., 22., 23., 24., 24., 24., 27., 29., 32., 32., 32., 32., 32., 32., 32., 32.,
0096 38., 51., 58., 63., 65., 65., 65., 66., 68., 70., 71., 71., 72., 74., 77., 78., 79., 79.,
0097 80., 85., 90., 91., 92., 93., 93., 98., 101., 101., 101., 104., 106., 129., 129., 138., 141., 142.,
0098 143., 146., 150., 150., 151., 153., 155., 165., 169., 179., 183., 195., 203., 205., 208., 209.,
0099 };
0100 cout << "********************************************************************* both massives are defined " << endl;
0101
0102
0103
0104 const Int_t yearcase = 0;
0105
0106 cout << "************************************** yearcase = " << yearcase << endl;
0107
0108
0109
0110
0111
0112
0113
0114 Int_t verbosity = 0;
0115
0116
0117
0118
0119 const Int_t flagHOP17selection = 0;
0120
0121 cout << "************************************** flagHOP17selection = " << flagHOP17selection << endl;
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133 TCanvas* c1 = new TCanvas("c1", "GSM", 10, 10, 1010, 1010);
0134
0135
0136
0137
0138 c1->Range(0, 0, 25, 18);
0139
0140 c1->SetFillColor(0);
0141 c1->Clear();
0142
0143 TLatex* t = new TLatex();
0144 t->SetTextFont(32);
0145
0146 t->SetTextSize(0.03);
0147 t->SetTextAlign(12);
0148
0149 t->DrawLatex(
0150 0.9, 15.5, "Time dependence of full Amplitude averaged over events of each LED run for some random HO channels");
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162 Float_t x1 = 0.00;
0163 Float_t x2 = 215.0;
0164
0165
0166
0167 Float_t y1 = 0.9;
0168 Float_t y2 = 1.1;
0169
0170
0171
0172 Float_t RrangeMIN = y1;
0173 Float_t RrangeMAX = y2;
0174
0175
0176 Float_t xx1 = 0.35;
0177 Float_t xx2 = 0.55;
0178 Float_t yy1 = 0.76;
0179 Float_t yy2 = 0.88;
0180
0181 cout << "************************************** RrangeMIN = " << RrangeMIN << " RrangeMAX = " << RrangeMAX << endl;
0182
0183
0184
0185
0186 const Int_t NDEP = 5;
0187 const Int_t NETA0 = 83;
0188 const Int_t NPHI0 = 73;
0189
0190
0191 Double_t mapRATIO[NDEP][NETA0][NPHI0];
0192 Double_t mapRATIOD2[NETA0][NPHI0];
0193 Int_t mapRATIOD20[NETA0][NPHI0];
0194
0195
0196 Double_t normalization[NETA0][NPHI0];
0197 cout << "************************************** NDEP = " << NDEP << " NETA0 = " << NETA0 << " NPHI0 = " << NPHI0
0198 << endl;
0199
0200
0201 Int_t NMAXSIZE = NMAXM;
0202 Float_t X0[NMAXSIZE];
0203 TString LEDruns[NMAXSIZE];
0204 Double_t XX[NMAXSIZE];
0205 Double_t XXE[NMAXSIZE];
0206 Double_t XXX[NMAXSIZE];
0207 Double_t XXXE[NMAXSIZE];
0208 Int_t indWAS[NMAXSIZE];
0209
0210 Double_t YY[NMAXSIZE];
0211 Double_t YYE[NMAXSIZE];
0212 cout << "************************************** NMAXSIZE = " << NMAXSIZE << " NMAXM = " << NMAXM << endl;
0213
0214
0215 Double_t GSMRATIOD2[NMAXSIZE][NETA0][NPHI0];
0216
0217
0218
0219
0220
0221
0222 Int_t NMINmM = 0;
0223 Int_t NMAXmM = NMAXSIZE - 1;
0224 Int_t NMAXaM = NMAXSIZE;
0225 if (yearcase == 1) {
0226
0227 NMINmM = 0;
0228 NMAXmM = 46;
0229 NMAXaM = 47;
0230 } else if (yearcase == 2) {
0231
0232 NMINmM = 53;
0233 NMAXmM = 93;
0234 NMAXaM = 41;
0235 } else if (yearcase == 3) {
0236
0237 NMINmM = 0;
0238 NMAXmM = 93;
0239 NMAXaM = 94;
0240 } else if (yearcase == 4) {
0241
0242 NMINmM = 94;
0243 NMAXmM = -1;
0244 NMAXaM = -1;
0245 } else if (yearcase == 5) {
0246
0247 NMINmM = 0;
0248 NMAXmM = -1;
0249 NMAXaM = -1;
0250 }
0251
0252 cout << "************************************** NMINmM = " << NMINmM << " NMAXmM = " << NMAXmM
0253 << " NMAXaM = " << NMAXaM << endl;
0254 if (NMINmM == -1 || NMAXmM == -1 || NMAXaM == -1)
0255 cout << " STOP !!!!!! NMINmM == -1 || NMAXmM == -1 || NMAXaM == -1 " << endl;
0256
0257 Int_t NMAX = 0;
0258 NMAX = NMAXaM;
0259
0260 for (int jjj = NMINmM; jjj <= NMAXmM; jjj++) {
0261 LEDruns[jjj - NMINmM] = LEDrunsM[jjj];
0262 X0[jjj - NMINmM] = X0M[jjj];
0263
0264 }
0265
0266
0267
0268
0269
0270 Int_t NP = NMAX;
0271 cout << "******************* NP = " << NP << endl;
0272
0273
0274
0275
0276
0277
0278
0279 Double_t cutMinA = 100.;
0280 Double_t cutMaxA = 5000.;
0281
0282
0283
0284
0285
0286
0287 for (int kk1 = 0; kk1 < NP; kk1++) {
0288 XX[kk1] = X0[kk1];
0289 int k10 = 0;
0290 int z1 = X0[k10];
0291 XX[kk1] -= z1;
0292 if (verbosity == 2) {
0293 cout << "ORDINATE points: kk1 = " << kk1 << " XX[kk1]= " << XX[kk1] << endl;
0294 }
0295
0296 XXE[kk1] = 0.001 * XX[kk1];
0297 }
0298
0299
0300
0301
0302
0303 for (int jjj = 0; jjj <= 82; jjj++) {
0304 for (int kkk = 0; kkk <= 72; kkk++) {
0305 mapRATIOD2[jjj][kkk] = 0.;
0306 mapRATIOD20[jjj][kkk] = 0.;
0307 normalization[jjj][kkk] = 0.;
0308
0309 for (int k1 = 0; k1 < NP; k1++) {
0310 GSMRATIOD2[k1][jjj][kkk] = mapRATIOD2[jjj][kkk];
0311 }
0312
0313 for (int iii = 0; iii < NDEP; iii++) {
0314 mapRATIO[iii][jjj][kkk] = 0.;
0315
0316 }
0317
0318 }
0319 }
0320
0321
0322
0323
0324
0325
0326 TString fname = "/afs/cern.ch/cms/CAF/CMSALCA/ALCA_HCALCALIB/HCALMONITORING/RDMweb/histos/LED_";
0327
0328
0329
0330 TH1F* Seff1D = new TH1F("Seff1D", "", 1000, 10., 1010.);
0331 TH1F* Ceff1D = new TH1F("Ceff1D", "", 1500, 10., 8010.);
0332
0333 TH2F* mapBADchannels = new TH2F("mapBADchannels", " ", 82, -41., 41., 72, 0., 72.);
0334 TH2F* mapBADchannels0 = new TH2F("mapBADchannels0", " ", 82, -41., 41., 72, 0., 72.);
0335
0336
0337
0338
0339 TH2F* mapchannelsdepth4 = new TH2F("mapchannelsdepth4", " ", 82, -41., 41., 72, 0., 72.);
0340
0341 TH1F* gainkoeff = new TH1F("gainkoeff", "", 100, y1, y2);
0342 TH1F* gainkoeff0 = new TH1F("gainkoeff0", "", 100, 0.9, 1.1);
0343 TH1F* gainkoeff9 = new TH1F("gainkoeff9", "", 100, 0.1, 1.9);
0344 TH1F* GOODruns = new TH1F("GOODruns", "", NP, 0., float(NP));
0345 TH1F* BADruns = new TH1F("BADruns", "", NP, 0., float(NP));
0346 TH1F* NotEmptyDepthes = new TH1F("NotEmptyDepthes", "", 56, 0., 56.);
0347
0348
0349 Int_t kmm = 0;
0350 Int_t firstrun = 0;
0351
0352 cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! firstrun = " << firstrun << " run = " << LEDruns[firstrun] << endl;
0353
0354
0355
0356
0357
0358
0359 cout << "!!!!!!!!!!!!!!!!!!!!!! use root files from official RMT dir. " << endl;
0360
0361
0362
0363 TH1F* Aeff1D = new TH1F("Aeff1D", "", 250, 0., 500000.);
0364
0365 int ck1count = 0;
0366 for (int k1 = firstrun; k1 < NP; k1++) {
0367
0368 ck1count++;
0369
0370
0371
0372
0373
0374
0375 TString epsName = fname + LEDruns[k1] + ".root";
0376
0377
0378
0379
0380 TFile* hfile = new TFile(epsName, "READ");
0381
0382 TH1F* Aeff1 = (TH1F*)hfile->Get("h_ADCAmpl_HO");
0383
0384 int kx = Aeff1->GetXaxis()->GetNbins();
0385
0386
0387 int maxvalueA = -1;
0388 for (int jjj = 0; jjj < kx; jjj++) {
0389 if (double(Aeff1->GetBinContent(jjj)) > 0. && maxvalueA < jjj)
0390 maxvalueA = jjj;
0391
0392 Aeff1D->Fill(float(jjj), double(Aeff1->GetBinContent(jjj)));
0393 }
0394 cout << " run = " << LEDruns[k1] << " k1= " << k1 << " max bin value= " << maxvalueA << " ck1count= " << ck1count
0395 << endl;
0396
0397
0398
0399
0400 if (k1 == NP - 1) {
0401 c1->Clear();
0402 c1->Divide(1, 1);
0403 c1->cd(1);
0404 gPad->SetGridy();
0405 gPad->SetGridx();
0406 gPad->SetLogy();
0407 gStyle->SetOptStat(101110);
0408 Aeff1->SetMarkerStyle(20);
0409 Aeff1->SetMarkerSize(0.4);
0410 Aeff1->GetYaxis()->SetLabelSize(0.04);
0411 Aeff1->SetTitle("Last run & events & channels");
0412 Aeff1->SetXTitle("Aijk");
0413 Aeff1->SetYTitle("N");
0414 Aeff1->SetMarkerColor(4);
0415 Aeff1->SetLineColor(4);
0416 Aeff1->SetMinimum(0.8);
0417 Aeff1->Draw("PL");
0418 c1->Update();
0419 TString fdir = "testamt5gsmHO2018/";
0420
0421 TString plotName = fdir + "Aijk-Run" + LEDruns[k1] + ".png";
0422 c1->SaveAs(plotName);
0423 cout << "****PLOT AijkLastRun.png is drawn **** " << endl;
0424 }
0425
0426
0427 if (k1 == firstrun) {
0428 c1->Clear();
0429 c1->Divide(1, 1);
0430 c1->cd(1);
0431 gPad->SetGridy();
0432 gPad->SetGridx();
0433
0434 gStyle->SetOptStat(101110);
0435 Aeff1->SetMarkerStyle(20);
0436 Aeff1->SetMarkerSize(0.4);
0437 Aeff1->GetYaxis()->SetLabelSize(0.04);
0438 Aeff1->SetTitle("First run & events & channels");
0439 Aeff1->SetXTitle("Aijk");
0440 Aeff1->SetYTitle("N");
0441 Aeff1->SetMarkerColor(4);
0442 Aeff1->SetLineColor(4);
0443 Aeff1->SetMinimum(0.8);
0444 Aeff1->Draw("PL");
0445 c1->Update();
0446 TString fdir = "testamt5gsmHO2018/";
0447 TString plotName = fdir + "AijkFirstRun.png";
0448 c1->SaveAs(plotName);
0449 cout << "****PLOT AijkFirstRun.png is drawn **** " << endl;
0450 }
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0471
0472
0473 TH2F* twod4 = (TH2F*)hfile->Get("h_mapDepth4ADCAmpl12_HO");
0474
0475
0476
0477
0478
0479
0480
0481
0482 int nx = twod4->GetXaxis()->GetNbins();
0483 int ny = twod4->GetYaxis()->GetNbins();
0484
0485
0486
0487
0488
0489 TH2F* t0040 = (TH2F*)hfile->Get("h_mapDepth4_HO");
0490
0491
0492
0493
0494 TH2F* Ceff4 = (TH2F*)twod4->Clone("Ceff4");
0495
0496
0497
0498
0499
0500 Ceff4->Divide(twod4, t0040, 1, 1, "B");
0501
0502
0503 for (int jjj = 0; jjj < nx; jjj++) {
0504 for (int kkk = 0; kkk < ny; kkk++) {
0505
0506 if (flagHOP17selection == 0 ||
0507 (flagHOP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) ||
0508 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) ||
0509 (flagHOP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) {
0510
0511
0512
0513
0514
0515 if (Ceff4->GetBinContent(jjj, kkk) > 0.)
0516 mapchannelsdepth4->Fill(double(jjj) - 41., double(kkk), Ceff4->GetBinContent(jjj, kkk));
0517 }
0518 }
0519 }
0520
0521
0522
0523
0524
0525
0526
0527 for (int jjj = 0; jjj < nx; jjj++) {
0528 for (int kkk = 0; kkk < ny; kkk++) {
0529
0530
0531 if (flagHOP17selection == 0 ||
0532 (flagHOP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) ||
0533 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) ||
0534 (flagHOP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) {
0535
0536
0537
0538
0539
0540 if (Ceff4->GetBinContent(jjj, kkk) != 0.) {
0541 Ceff1D->Fill(Ceff4->GetBinContent(jjj, kkk));
0542 Seff1D->Fill(Ceff4->GetBinContent(jjj, kkk));
0543 }
0544 }
0545 }
0546 }
0547
0548
0549
0550
0551
0552
0553 for (int jjj = 0; jjj < nx; jjj++) {
0554 for (int kkk = 0; kkk < ny; kkk++) {
0555
0556 if (flagHOP17selection == 0 ||
0557 (flagHOP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) ||
0558 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) ||
0559 (flagHOP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) {
0560
0561
0562
0563 if (Ceff4->GetBinContent(jjj, kkk) > cutMinA && Ceff4->GetBinContent(jjj, kkk) < cutMaxA)
0564 mapRATIO[4][jjj][kkk] = Ceff4->GetBinContent(jjj, kkk);
0565 }
0566 }
0567 }
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583
0584
0585
0586
0587
0588
0589 int totalhep17count = 0;
0590 int totalhep17count1 = 0;
0591 int totalhep17count2 = 0;
0592 int totalhep17count3 = 0;
0593 int totalhep17count4 = 0;
0594 int totalhep17count5 = 0;
0595 int totalhep17count6 = 0;
0596 int totalhep17count7 = 0;
0597 for (int iii = 1; iii < NDEP; iii++) {
0598 for (int jjj = 0; jjj < nx; jjj++) {
0599 for (int kkk = 0; kkk < ny; kkk++) {
0600
0601
0602 if (mapRATIO[iii][jjj][kkk] > 0) {
0603
0604 totalhep17count++;
0605 if (verbosity == 4 && k1 == 0) {
0606 cout << " k1= " << k1 << " depth= " << iii << " eta= " << jjj << " phi= " << kkk
0607 << " mapRATIO= " << mapRATIO[iii][jjj][kkk] << endl;
0608 }
0609 if (iii == 1)
0610 totalhep17count1++;
0611 if (iii == 2)
0612 totalhep17count2++;
0613 if (iii == 3)
0614 totalhep17count3++;
0615 if (iii == 4)
0616 totalhep17count4++;
0617 if (iii == 5)
0618 totalhep17count5++;
0619 if (iii == 6)
0620 totalhep17count6++;
0621 if (iii == 7)
0622 totalhep17count7++;
0623
0624 mapRATIOD2[jjj][kkk] += mapRATIO[iii][jjj][kkk];
0625
0626 mapRATIOD20[jjj][kkk]++;
0627 if (verbosity == 3 && iii == 3)
0628 cout << " depth = " << iii << " k1 = " << k1 << " eta = " << jjj
0629 << " mapRATIOD2[jjj][kkk] = " << mapRATIOD2[jjj][kkk] << " #entries = " << mapRATIOD20[jjj][kkk]
0630 << " mapRATIO[iii][jjj][kkk] = " << mapRATIO[iii][jjj][kkk] << endl;
0631 }
0632 }
0633 }
0634 }
0635
0636
0637
0638
0639 if (verbosity == 4 && k1 == 0) {
0640 cout << " k1= " << k1 << " totalhep17count= " << totalhep17count << endl;
0641 cout << " k1= " << k1 << " totalhep17count1= " << totalhep17count1 << endl;
0642 cout << " k1= " << k1 << " totalhep17count2= " << totalhep17count2 << endl;
0643 cout << " k1= " << k1 << " totalhep17count3= " << totalhep17count3 << endl;
0644 cout << " k1= " << k1 << " totalhep17count4= " << totalhep17count4 << endl;
0645 cout << " k1= " << k1 << " totalhep17count5= " << totalhep17count5 << endl;
0646 cout << " k1= " << k1 << " totalhep17count6= " << totalhep17count6 << endl;
0647 cout << " k1= " << k1 << " totalhep17count7= " << totalhep17count7 << endl;
0648 }
0649
0650
0651
0652 Int_t depthAVERAGEcount = 0;
0653 for (int jjj = 0; jjj < nx; jjj++) {
0654 for (int kkk = 0; kkk < ny; kkk++) {
0655
0656
0657 depthAVERAGEcount = 4 * (jjj - 57) + (kkk - 64);
0658 if (mapRATIOD20[jjj][kkk] != 0) {
0659 NotEmptyDepthes->Fill(float(depthAVERAGEcount));
0660 if (verbosity == 1)
0661 cout << "****aver per depthes********* phi = " << kkk << " RunIndex = " << k1 << " eta = " << jjj
0662 << " #entries = " << mapRATIOD20[jjj][kkk] << endl;
0663 mapRATIOD2[jjj][kkk] /= mapRATIOD20[jjj][kkk];
0664 if (verbosity == 3 && kkk == 3)
0665 cout << "****aver per depthes********* phi = " << jjj << " RunIndex = " << k1 << " eta = " << jjj
0666 << " Nphi = " << mapRATIOD20[jjj][kkk] << endl;
0667 }
0668 }
0669 }
0670
0671
0672
0673 if (k1 == firstrun && kmm == 0) {
0674 kmm = 1;
0675 cout << "* to be printed once only CHOCK IT please ************ kmm = " << kmm << endl;
0676
0677
0678 for (int jjj = 0; jjj < nx; jjj++) {
0679 for (int kkk = 0; kkk < ny; kkk++) {
0680 normalization[jjj][kkk] = mapRATIOD2[jjj][kkk];
0681 }
0682 }
0683 }
0684
0685
0686
0687
0688
0689
0690
0691 for (int jjj = 0; jjj < nx; jjj++) {
0692 for (int kkk = 0; kkk < ny; kkk++) {
0693 if (normalization[jjj][kkk] != 0) {
0694 GSMRATIOD2[k1][jjj][kkk] = mapRATIOD2[jjj][kkk] / normalization[jjj][kkk];
0695
0696 if (GSMRATIOD2[k1][jjj][kkk] < RrangeMAX && GSMRATIOD2[k1][jjj][kkk] > RrangeMIN) {
0697 gainkoeff->Fill(GSMRATIOD2[k1][jjj][kkk]);
0698 gainkoeff0->Fill(GSMRATIOD2[k1][jjj][kkk]);
0699 gainkoeff9->Fill(GSMRATIOD2[k1][jjj][kkk]);
0700
0701
0702
0703
0704
0705 GOODruns->Fill(float(k1));
0706 } else {
0707 if (GSMRATIOD2[k1][jjj][kkk] > 0.)
0708 BADruns->Fill(float(k1));
0709 }
0710
0711
0712 }
0713 }
0714 }
0715
0716
0717
0718
0719
0720
0721
0722
0723 for (int jjj = 0; jjj <= 82; jjj++) {
0724 for (int kkk = 0; kkk <= 72; kkk++) {
0725 mapRATIOD2[jjj][kkk] = 0.;
0726 mapRATIOD20[jjj][kkk] = 0.;
0727 for (int iii = 0; iii < NDEP; iii++) {
0728 mapRATIO[iii][jjj][kkk] = 0.;
0729 }
0730 }
0731 }
0732
0733
0734
0735 hfile->Close();
0736
0737
0738
0739
0740
0741
0742 }
0743 cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DONE: last LED run READ " << endl;
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756
0757 cout << "**** **** **** **** **** Draw Dependencies: *** " << endl;
0758
0759
0760 Int_t Method = NMethodsStart;
0761 while (Method < NMethodsToUse + 1) {
0762 if (Method != 9999992) {
0763 cout << " **** START Method " << Method << endl;
0764
0765 if (Method == 0) {
0766 cout << "****Draw 0 Dependencies: <Aijk> for each event and all LED runs *** " << endl;
0767 gPad->SetGridy();
0768 gPad->SetGridx();
0769 gPad->SetLogy();
0770 gStyle->SetOptStat(101110);
0771 Ceff1D->SetMarkerStyle(20);
0772 Ceff1D->SetMarkerSize(0.4);
0773 Ceff1D->GetYaxis()->SetLabelSize(0.04);
0774 Ceff1D->SetTitle("all runs & channels");
0775 Ceff1D->SetXTitle("<Aijk>");
0776 Ceff1D->SetYTitle("N");
0777 Ceff1D->SetMarkerColor(4);
0778 Ceff1D->SetLineColor(4);
0779
0780 Ceff1D->Draw("PL");
0781 }
0782
0783 if (Method == 1) {
0784 cout << "****Draw 1 Dependencies: <Aijk> for each event and all LED runs ZOOM *** " << endl;
0785 gPad->SetGridy();
0786 gPad->SetGridx();
0787 gPad->SetLogy();
0788 gStyle->SetOptStat(101110);
0789
0790 Seff1D->SetMarkerStyle(20);
0791 Seff1D->SetMarkerSize(0.4);
0792 Seff1D->GetYaxis()->SetLabelSize(0.04);
0793 Seff1D->SetTitle("ZOOM all runs & channels");
0794 Seff1D->SetXTitle("<Aijk> ZOOM ");
0795 Seff1D->SetYTitle("N");
0796 Seff1D->SetMarkerColor(4);
0797 Seff1D->SetLineColor(4);
0798
0799 Seff1D->Draw("PL");
0800 }
0801
0802
0803 if (Method == 2) {
0804 cout << "****Draw 2 Dependencies: GSM ratio vs days *** " << endl;
0805 for (int k1 = 0; k1 < NP; k1++) {
0806 YY[k1] = 0.;
0807 }
0808
0809
0810
0811 TPad* pad1 = new TPad("pad1", "This is pad1", 0.02, 0.02, 0.99, 0.99, 0);
0812 pad1->Draw();
0813 pad1->cd();
0814 pad1->Range(-0.255174, -19.25, 2.29657, -6.75);
0815
0816 pad1->DrawFrame(x1, y1, x2, y2);
0817
0818 pad1->GetFrame()->SetFillColor(0);
0819 pad1->Draw();
0820 gPad->SetGridy();
0821 gPad->SetGridx();
0822
0823 Int_t colorlines = 0;
0824 Int_t generalcount = 0;
0825
0826
0827 for (int jjj = 0; jjj < 82; jjj++) {
0828 for (int kkk = 0; kkk < 72; kkk++) {
0829 Int_t sscount = -1;
0830 for (int k1 = 0; k1 < NP; k1++) {
0831 if (GSMRATIOD2[k1][jjj][kkk] != 0) {
0832
0833
0834 if (GSMRATIOD2[k1][jjj][kkk] < RrangeMAX && GSMRATIOD2[k1][jjj][kkk] > RrangeMIN) {
0835
0836
0837 sscount++;
0838 YY[sscount] = GSMRATIOD2[k1][jjj][kkk];
0839 XXX[sscount] = XX[k1];
0840 indWAS[sscount] = k1;
0841 mapBADchannels->Fill(double(jjj) - 42., double(kkk) - 1., GSMRATIOD2[k1][jjj][kkk]);
0842 mapBADchannels0->Fill(double(jjj) - 42., double(kkk) - 1., 1.);
0843 }
0844 else {
0845
0846 }
0847 }
0848 }
0849 Int_t MMcount = sscount + 1;
0850 if (MMcount > 0) {
0851 generalcount++;
0852 if (generalcount == 1 && verbosity == 2)
0853 for (int k1 = 0; k1 < MMcount; k1++) {
0854 cout << "**** All GOOD runs: indWAS[k1](1,..) = " << indWAS[k1] + 1 << " XXX[k1]+1 = " << XXX[k1] + 1
0855 << endl;
0856 }
0857 gr1 = new TGraph(MMcount, XXX, YY);
0858 colorlines = generalcount / 5. + 2;
0859 gr1->SetLineColor(colorlines);
0860 gr1->SetMarkerColor(colorlines);
0861 gr1->SetMarkerStyle(20);
0862 gr1->SetMarkerSize(1.2);
0863 gr1->SetFillStyle(0);
0864 gr1->GetXaxis()->SetTitle("days");
0865 gr1->GetYaxis()->SetTitle("R");
0866 gr1->Draw("PL");
0867 }
0868
0869 }
0870 }
0871
0872
0873
0874 TLegend leg(xx1, yy1, xx2, yy2, "HO: R vs t(days)");
0875
0876 leg.SetMargin(0.3);
0877 leg.SetBorderSize(1);
0878 leg.DrawClone("Same");
0879
0880
0881
0882
0883
0884
0885
0886
0887
0888
0889
0890
0891
0892
0893
0894 }
0895
0896
0897
0898 if (Method == 3) {
0899 cout << "****Draw 3 Dependencies: 2D channels *** " << endl;
0900 TH2F* Cdepth2hbff = (TH2F*)mapBADchannels->Clone("Cdepth2hbff");
0901 Cdepth2hbff->Divide(mapBADchannels, mapBADchannels0, 1, 1, "B");
0902 Cdepth2hbff->Sumw2();
0903 gPad->SetGridy();
0904 gPad->SetGridx();
0905 gStyle->SetOptStat(0000000);
0906 Cdepth2hbff->SetMarkerStyle(20);
0907 Cdepth2hbff->SetMarkerSize(0.4);
0908 Cdepth2hbff->GetYaxis()->SetLabelSize(0.04);
0909 Cdepth2hbff->SetTitle("within R & Weighted by R");
0910 Cdepth2hbff->SetXTitle("#eta \b");
0911 Cdepth2hbff->SetYTitle("#phi \b");
0912 Cdepth2hbff->SetMarkerColor(4);
0913 Cdepth2hbff->SetLineColor(4);
0914 Cdepth2hbff->Draw("COLZ");
0915 }
0916
0917 if (Method == 4) {
0918 cout << "****Draw 4 Dependencies: gains LED runs *** " << endl;
0919 gPad->SetGridy();
0920 gPad->SetGridx();
0921
0922
0923 gStyle->SetOptStat(1100);
0924
0925 gainkoeff->SetMarkerStyle(20);
0926 gainkoeff->SetMarkerSize(0.4);
0927 gainkoeff->GetYaxis()->SetLabelSize(0.04);
0928 gainkoeff->SetXTitle("gains");
0929 gainkoeff->SetYTitle("N");
0930 gainkoeff->SetMarkerColor(4);
0931 gainkoeff->SetLineColor(4);
0932
0933 gainkoeff->Draw("PL");
0934 }
0935
0936 if (Method == 5) {
0937 cout << "****Draw 5 Dependencies: gains LED runs *** " << endl;
0938 gPad->SetGridy();
0939 gPad->SetGridx();
0940 gPad->SetLogy();
0941
0942 gStyle->SetOptStat(1100);
0943
0944 gainkoeff9->SetMarkerStyle(20);
0945 gainkoeff9->SetMarkerSize(0.4);
0946 gainkoeff9->GetYaxis()->SetLabelSize(0.04);
0947 gainkoeff9->SetXTitle("gains");
0948 gainkoeff9->SetYTitle("N");
0949 gainkoeff9->SetMarkerColor(4);
0950 gainkoeff9->SetLineColor(4);
0951
0952 gainkoeff9->Draw("PL");
0953 }
0954
0955 if (Method == 6) {
0956 cout << "****Draw 6 Dependencies: gains LED runs *** " << endl;
0957 gPad->SetGridy();
0958 gPad->SetGridx();
0959 gPad->SetLogy();
0960
0961 gStyle->SetOptStat(1100);
0962
0963 gainkoeff0->SetMarkerStyle(20);
0964 gainkoeff0->SetMarkerSize(0.4);
0965 gainkoeff0->GetYaxis()->SetLabelSize(0.04);
0966 gainkoeff0->SetXTitle("gains");
0967 gainkoeff0->SetYTitle("N");
0968 gainkoeff0->SetMarkerColor(4);
0969 gainkoeff0->SetLineColor(4);
0970
0971 gainkoeff0->Draw("PL");
0972 }
0973
0974 if (Method == 7) {
0975 cout << "****Draw 7 Dependencies: BADruns *** " << endl;
0976 gPad->Update();
0977 gPad->SetGridy();
0978 gPad->SetGridx();
0979 gPad->SetLogy(kFALSE);
0980 gStyle->SetOptStat(101110);
0981 BADruns->SetMarkerStyle(20);
0982 BADruns->SetMarkerSize(0.4);
0983 BADruns->GetYaxis()->SetLabelSize(0.04);
0984 BADruns->SetTitle("#channels outside Rrange VS iRun");
0985 BADruns->SetXTitle("iRun");
0986 BADruns->SetYTitle("#channels");
0987 BADruns->SetMarkerColor(4);
0988 BADruns->SetLineColor(4);
0989
0990 BADruns->Draw("PL");
0991
0992
0993 int cx = BADruns->GetXaxis()->GetNbins();
0994 cout << "***** ************* Number of runs w/ R outside unit-range = " << cx << endl;
0995 int nbadruns = 0;
0996 for (int jjj = 1; jjj <= cx; jjj++) {
0997 if (BADruns->GetBinContent(jjj) > 200.) {
0998 cout << "BADruns w/ content>60: jjj= " << jjj << " run= " << LEDruns[jjj - 1]
0999 << " R ouside unit-range for # channels= " << BADruns->GetBinContent(jjj) << endl;
1000 ++nbadruns;
1001 }
1002
1003 }
1004 cout << "BADruns w/ content>60 nbadruns= " << nbadruns << endl;
1005
1006 }
1007
1008
1009 if (Method == 8) {
1010 cout << "****Draw 8 Dependencies: Goodruns *** " << endl;
1011 gPad->SetGridy();
1012 gPad->SetGridx();
1013
1014 gStyle->SetOptStat(101110);
1015 GOODruns->SetMarkerStyle(20);
1016 GOODruns->SetMarkerSize(0.4);
1017 GOODruns->GetYaxis()->SetLabelSize(0.04);
1018 GOODruns->SetTitle("#channels inside Rrange VS iRun");
1019 GOODruns->SetXTitle("iRun");
1020 GOODruns->SetYTitle("#channels");
1021 GOODruns->SetMarkerColor(4);
1022 GOODruns->SetLineColor(4);
1023
1024 GOODruns->Draw("PL");
1025
1026
1027 int cx = GOODruns->GetXaxis()->GetNbins();
1028 cout << "************* cx = " << cx << endl;
1029 for (int jjj = 0; jjj <= cx; jjj++) {
1030
1031
1032 if (GOODruns->GetBinContent(jjj) > 1400.)
1033 cout << "GOODruns: k1(0,...)= " << jjj
1034 << " GOODruns->GetBinContent(jjj)= " << GOODruns->GetBinContent(jjj) << endl;
1035 }
1036
1037 }
1038
1039
1040 if (Method == 9) {
1041 cout << "****Draw 9 Dependencies: depthes with zero A *** " << endl;
1042 gPad->SetGridy();
1043 gPad->SetGridx();
1044 gPad->SetLogy(kFALSE);
1045 gStyle->SetOptStat(1110000);
1046 NotEmptyDepthes->SetMarkerStyle(20);
1047 NotEmptyDepthes->SetMarkerSize(0.4);
1048 NotEmptyDepthes->GetYaxis()->SetLabelSize(0.04);
1049 NotEmptyDepthes->SetTitle("# Not Empty Channels in etq-phi projection");
1050 NotEmptyDepthes->SetXTitle("4*(eta-57)+(phi-64)");
1051 NotEmptyDepthes->SetYTitle("N");
1052 NotEmptyDepthes->SetMarkerColor(4);
1053 NotEmptyDepthes->SetLineColor(4);
1054
1055 NotEmptyDepthes->Draw("PL");
1056 }
1057
1058 if (Method == 10) {
1059 cout << "****Draw 10 Dependencies: Aijk for each event and all LED runs *** " << endl;
1060
1061 c1->Clear();
1062 c1->Divide(1, 1);
1063
1064 c1->cd(1);
1065
1066
1067
1068
1069 gPad->SetGridy();
1070 gPad->SetGridx();
1071 gPad->SetLogy();
1072 gStyle->SetOptStat(101110);
1073
1074 Aeff1D->SetMarkerStyle(20);
1075 Aeff1D->SetMarkerSize(0.4);
1076 Aeff1D->GetYaxis()->SetLabelSize(0.04);
1077 Aeff1D->SetTitle("all runs & events& channels");
1078 Aeff1D->SetXTitle("Aijk");
1079 Aeff1D->SetYTitle("N");
1080 Aeff1D->SetMarkerColor(4);
1081 Aeff1D->SetLineColor(4);
1082
1083
1084 Aeff1D->SetMinimum(0.8);
1085 Aeff1D->Draw("");
1086
1087 c1->Update();
1088
1089 }
1090
1091 if (Method == 11) {
1092 cout << "****Draw 11 <A>: 2D Depthes1,2,3,4 *** " << endl;
1093
1094
1095
1096 c1->Clear();
1097 c1->Divide(1, 1);
1098
1099 c1->cd(1);
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120 mapchannelsdepth4->SetStats(0);
1121 mapchannelsdepth4->SetTitle("<A> Depth4");
1122 mapchannelsdepth4->SetXTitle("#eta \b");
1123 mapchannelsdepth4->SetYTitle("#phi \b");
1124 mapchannelsdepth4->Draw("COLZ");
1125 c1->Update();
1126
1127 }
1128
1129 if (Method == 12) {
1130 cout << "****Draw 12 not used yet *** " << endl;
1131
1132
1133
1134 c1->Clear();
1135 c1->Divide(2, 2);
1136
1137 c1->cd(1);
1138 c1->cd(2);
1139 c1->cd(3);
1140
1141 c1->Update();
1142
1143 }
1144
1145
1146 if (Method == 13) {
1147 cout << "****Draw 13 function, fC *** " << endl;
1148 c1->Clear();
1149 c1->Divide(1, 1);
1150
1151 c1->cd(1);
1152 {
1153 double c0 = 1.000000;
1154 double b1 = 2.71238e-05;
1155 double a2 = 1.32877e-10;
1156 Int_t n = 50;
1157 Double_t x[n], y[n];
1158 for (Int_t i = 0; i < n; i++) {
1159 x[i] = (i + 1) * 20000.;
1160 y[i] = a2 * x[i] * x[i] / 40. / 40. + b1 * x[i] / 40. + c0;
1161 }
1162
1163
1164 TGraph* gr = new TGraph(n, x, y);
1165
1166
1167
1168 gPad->SetGridy();
1169 gPad->SetGridx();
1170
1171 gr->Draw("AC*");
1172
1173
1174
1175
1176
1177
1178 }
1179
1180 c1->Update();
1181
1182 }
1183
1184
1185
1186
1187
1188
1189 TString fdir = "testamt5gsmHO2018/";
1190
1191 TString plotName = fdir + MethodName[Method] + ".png";
1192 c1->SaveAs(plotName);
1193 cout << "****PLOT " << Method << " drawn **** " << endl;
1194
1195 }
1196 ++Method;
1197 }
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213 gSystem->Exit(0);
1214
1215 }
1216