CMS 3D CMS Logo

zlumiadcampltest.cc
Go to the documentation of this file.
1 #include <TChain.h>
2 #include <TH1D.h>
3 #include <TH2D.h>
4 #include <TProfile.h>
5 #include <TFitResult.h>
6 #include <TFitResultPtr.h>
7 #include <TPaveStats.h>
8 #include <vector>
9 #include <string>
10 #include <iomanip>
11 //#####
12 #include <iostream>
13 #include <fstream>
14 #include "TH1.h"
15 #include "TH2.h"
16 #include "TCanvas.h"
17 #include "TROOT.h"
18 #include <TMath.h>
19 #include "TStyle.h"
20 #include "TSystem.h"
21 #include "TLegend.h"
22 #include "TText.h"
23 #include "TAxis.h"
24 #include "TFile.h"
25 #include "TLine.h"
26 #include "TGraph.h"
27 #include <TPaveText.h>
28 #include <TPostScript.h>
29 #include <TClass.h>
30 
31 //
32 using namespace std;
33 //
34 //
35 
36 //inline void HERE(const char *msg) { std::cout << msg << std::endl; }
37 
38 int main(int argc, char *argv[]) {
39  std::string dirnm = "Analyzer";
40  //======================================================================
41  printf("reco: gROOT Reset \n");
42  gROOT->Reset();
43  gROOT->SetStyle("Plain");
44  //======================================================================
45  // gStyle->SetOptStat(0); // no statistics _or_
46  // gStyle->SetOptStat(11111111);
47  //gStyle->SetOptStat(1101);// name mean and rms
48  // gStyle->SetOptStat(0101);// name and entries
49  // gStyle->SetOptStat(1100);// mean and rms only !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
50  // gStyle->SetOptStat(1110000);// und over, integral !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
51  gStyle->SetOptStat(101110); // entries, mean, rms, overflow !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
52  // gStyle->SetOptStat(100000);// over !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
53  //
54  //gStyle->SetOptFit(00010);// constant, mean and sigma only !!
55  // gStyle->SetOptFit(00001);// hi2/nu, constant, mean and sigma only !!
56  gStyle->SetOptFit(0010); // constant, mean and sigma only !!
57  // gStyle->SetOptFit(00011);// constant, mean and sigma only !!
58  // gStyle->SetOptFit(1101);
59  // gStyle->SetOptFit(1011);
60  //
61  //gStyle->SetStatX(0.98);
62  //gStyle->SetStatY(0.99);
63  //gStyle->SetStatW(0.30);
64  //gStyle->SetStatH(0.25);
65  gStyle->SetStatX(0.91);
66  gStyle->SetStatY(0.75);
67  gStyle->SetStatW(0.20);
68  gStyle->SetStatH(0.10);
69  // gStyle->SetStatH(0.35);
70  //
71 
72  // Float_t LeftOffset = 0.12;
73  //Float_t TopOffset = 0.12;
74  Float_t LeftOffset = 0.12;
75  Float_t TopOffset = 0.22;
76 
77  gStyle->SetLineWidth(1);
78  gStyle->SetErrorX(0);
79 
80  //---=[ Titles,Labels ]=-----------
81  gStyle->SetOptTitle(0); // title on/off
82  // gStyle->SetTitleColor(0); // title color
83  gStyle->SetTitleColor(1); // title color
84  // gStyle->SetTitleX(0.35); // title x-position
85  gStyle->SetTitleX(0.15); // title x-position
86  gStyle->SetTitleH(0.15); // title height
87  // gStyle->SetTitleW(0.53); // title width
88  gStyle->SetTitleW(0.60); // title width
89  gStyle->SetTitleFont(42); // title font
90  gStyle->SetTitleFontSize(0.07); // title font size
91 
92  gStyle->SetPalette(1);
93  //---=[ Histogram style ]=----------
94  // gStyle->SetHistFillColor(38);
95  // gStyle->SetFrameFillColor(41);// jelto-kori4nev-svetl
96  // gStyle->SetFrameFillColor(5);// jeltyi
97  // gStyle->SetFrameFillColor(17);// seryi
98  // gStyle->SetFrameFillColor(18);// svetlo seryi
99  // gStyle->SetFrameFillColor(20);// svetlo kori4nev
100  // gStyle->SetFrameFillColor(33);// sine-seryi
101  // gStyle->SetFrameFillColor(40);// fiolet-seryi
102  // gStyle->SetFrameFillColor(23);// sv.kor
103 
104  //---=[ Pad style ]=----------------
105  gStyle->SetPadTopMargin(TopOffset);
106  gStyle->SetPadBottomMargin(LeftOffset);
107  gStyle->SetPadRightMargin(TopOffset);
108  gStyle->SetPadLeftMargin(LeftOffset);
109  //---=[ SetCanvasDef ]=----------------
110  //======================================================================
111  //
112  // Connect the input file and get the 2-d histogram in memory
113  //======================================================================
114  // TBrowser *b = new TBrowser
115 
116  // TFile *hfile1= new TFile("test.root", "READ");
117  //
118 
119  // TFile *hfile1= new TFile("testNZS.root", "READ");
120  // TFile *hfile1= new TFile("test.root", "READ");
121 
122  // TFile *hfile1= new TFile("newruns/Global_234034.root", "READ");
123  //
124 
125  // TFile *hfile1= new TFile("/afs/cern.ch/cms/CAF/CMSALCA/ALCA_HCALCALIB/HCALMONITORING/CMTweb/histos/Global_234556.root", "READ");
126  // TFile *hfile1= new TFile("Global_234034.root", "READ");
127  // TFile *hfile1= new TFile("test211006.root", "READ");
128  // TFile *hfile1= new TFile("test234457.root", "READ");
129 
130  // TFile *hfile1= new TFile("Global_51.root", "READ");
131  // TFile *hfile1= new TFile("Global_235698.root", "READ");
132 
133  // TFile *hfile1= new TFile("Global_39.root", "READ");
134  // TFile *hfile1= new TFile("test237165.root", "READ");
135  //
136  // TFile *hfile1= new TFile("Laser_238187.root", "READ");
137  // TFile *hfile1= new TFile("Laser_238183.root", "READ");
138 
139  // TFile *hfile1= new TFile("Global_255031.root", "READ");
140 
141  // TFile *hfile1= new TFile("Global_256001.root", "READ");
142  // TFile *hfile1= new TFile("Global_256167.root", "READ");
143  // TFile *hfile1= new TFile("Global_256348.root", "READ");
144  // TFile *hfile1= new TFile("Global_256630.root", "READ");
145 
146  // TFile *hfile1= new TFile("../PYTHON_runlist_test/Global_283884_1.root", "READ");
147  // TFile *hfile1= new TFile("Global_test.root", "READ");
148 
149  // TFile *hfile1= new TFile("LED_280702.root", "READ");
150  // TFile *hfile2= new TFile("LED_287824.root", "READ");
151 
152  // TFile *hfile1= new TFile("LED_284352.root", "READ");
153  // TFile *hfile1= new TFile("LEDtest.root", "READ");
154  // TFile *hfile1 = new TFile("Global_346445.root", "READ");
155 
156  TFile *hfile1 = new TFile("Global_346511.root", "READ");
157  // TH1D *hist1(nullptr);
158  // hist1 = (TH1D *)dir->FindObjectAny("h_mapDepth1_HE");
159 
160  // TFile *hfile2= new TFile("LED_284902.root", "READ");
161  // TFile *hfile2= new TFile("LED_284499.root", "READ");
162  // TFile *hfile2= new TFile("LED_284352.root", "READ");
163 
164  // TFile *hfile2= new TFile("LED_286590.root", "READ");
165 
166  // getchar();
167  //
168  TPostScript psfile("zlumiadcampltest.ps", 111);
169 
170  //
171 
172  // TCanvas *c1 = new TCanvas("c1", "Hcal4test", 200, 10, 700, 900);
173  TCanvas *c1 = new TCanvas("c1", "Hcal4test", 1000, 500);
174 
175  hfile1->ls();
176  TDirectory *dir = (TDirectory *)hfile1->FindObjectAny(dirnm.c_str());
177 
178  //========================================================================================== 1
179  //======================================================================
180  //======================================================================
181  //================
182  //======================================================================
183  //+++++++++++++++++++++++++++++
184  // Lumi iLumi and number of events
185  //+++++++++++++++++++++++++++++
186  // with TfileService implementation, change everywhere below: hfile->Get to dir->FindObjectAny
187  c1->Clear();
188  c1->Divide(2, 1);
189  c1->cd(1);
190  TH1F *LumLum = (TH1F *)dir->FindObjectAny("h_lsnumber_per_eachLS");
191  int MaxLumDanila = LumLum->GetBinContent(LumLum->GetMaximumBin()); // old variant of Danila
192  cout << " MaxLumDanila= " << MaxLumDanila << endl;
193  // gPad->SetGridy();
194  // gPad->SetGridx();
195  LumLum->SetMarkerStyle(21);
196  LumLum->SetMarkerSize(0.8);
197  LumLum->GetYaxis()->SetLabelSize(0.04);
198  LumLum->SetTitle("Cont. number per LS \b");
199  LumLum->SetXTitle("Cont.number \b");
200  LumLum->SetYTitle("Ls \b");
201  LumLum->SetMarkerColor(4);
202  LumLum->SetLineColor(0);
203  LumLum->SetMinimum(0.8);
204  LumLum->GetXaxis()->SetRangeUser(0, MaxLumDanila + 5.);
205  LumLum->Draw("Error");
206 
207  c1->cd(2);
208  TH1F *LumiEv = (TH1F *)dir->FindObjectAny("h_nevents_per_eachRealLS");
209  int MaxLum0 = LumiEv->GetBinContent(LumiEv->GetMaximumBin());
210  int MaxLum = 0;
211  for (int i = 1; i <= LumiEv->GetXaxis()->GetNbins(); i++) {
212  if (LumiEv->GetBinContent(i)) {
213  MaxLum = i;
214  }
215  }
216  cout << " Nev in bin of MaxLum = " << MaxLum0 << " MaxLum= " << MaxLum << endl;
217 
218  // gPad->SetGridy();
219  // gPad->SetGridx();
220  gPad->SetLogy();
221  // gPad->SetLogx();
222  LumiEv->GetYaxis()->SetLabelSize(0.04);
223  LumiEv->SetTitle("Number of events per LS");
224  LumiEv->SetXTitle("LS");
225  LumiEv->SetYTitle("Number of events ");
226  LumiEv->SetMarkerStyle(21);
227  LumiEv->SetMarkerSize(0.8);
228  LumiEv->SetMarkerColor(4);
229  LumiEv->SetLineColor(0);
230  LumiEv->SetMinimum(0.8);
231  LumiEv->GetXaxis()->SetRangeUser(0, MaxLum + 5.);
232  LumiEv->Draw("Error");
233 
234  c1->Update();
235  // cHB->Print("LumiEvent.png");
236  // cHB->Clear();
237 
238  //========================================================================================== 2
239  //======================================================================
240  //======================================================================
241  //================
242  //======================================================================
243 
244  // h_lsnumber_per_eachLS->Fill(float(lscounter), float(lumi));
245  // h_nevents_per_eachLS->Fill(float(lscounter), float(nevcounter)); //
246  // h_nls_per_run->Fill(float(lscounterrun));
247  // h_nevents_per_eachRealLS->Fill(float(lscounterM1), float(nevcounter)); //
248  // h_nevents_per_LS->Fill(float(nevcounter));
249  // h_nevents_per_LSzoom->Fill(float(nevcounter));
250  // h_nls_per_run10->Fill(float(lscounterrun10));
251 
252  c1->Clear();
253  c1->Divide(2, 4);
254 
255  c1->cd(1);
256  TH1F *MilMil = (TH1F *)dir->FindObjectAny("h_lsnumber_per_eachLS");
257  int MaxMilDanila = MilMil->GetBinContent(MilMil->GetMaximumBin()); // old variant of Danila
258  cout << " MaxMilDanila= " << MaxMilDanila << endl;
259  // gPad->SetGridy();
260  // gPad->SetGridx();
261  MilMil->GetYaxis()->SetLabelSize(0.04);
262  MilMil->SetTitle("Cont. number per LS \b");
263  MilMil->SetXTitle("Cont.number \b");
264  MilMil->SetYTitle("Ls \b");
265  MilMil->SetMarkerStyle(20);
266  MilMil->SetMarkerSize(0.2);
267  MilMil->SetMarkerColor(4);
268  MilMil->SetLineColor(0);
269  MilMil->SetMinimum(0.8);
270  MilMil->GetXaxis()->SetRangeUser(0, MaxMilDanila);
271  MilMil->Draw("Error");
272 
273  c1->cd(2);
274  TH1F *MiliEv = (TH1F *)dir->FindObjectAny("h_nevents_per_eachLS");
275  int MaxMil0 = MiliEv->GetBinContent(MiliEv->GetMaximumBin());
276  int MaxMil = 0;
277  for (int i = 1; i <= MiliEv->GetXaxis()->GetNbins(); i++) {
278  if (MiliEv->GetBinContent(i)) {
279  MaxMil = i;
280  }
281  }
282  cout << " MaxMil0= " << MaxMil0 << " MaxMil= " << MaxMil << endl;
283 
284  // gPad->SetGridy();
285  // gPad->SetGridx();
286  gPad->SetLogy();
287  // gPad->SetLogx();
288  MiliEv->GetYaxis()->SetLabelSize(0.04);
289  MiliEv->SetTitle("Number of events per LS");
290  MiliEv->SetXTitle("LS");
291  MiliEv->SetYTitle("Number of events ");
292  MiliEv->SetMarkerStyle(20);
293  MiliEv->SetMarkerSize(0.2);
294  MiliEv->SetMarkerColor(4);
295  MiliEv->SetLineColor(0);
296  // MiliEv->SetMinimum(0.8);
297  MiliEv->GetXaxis()->SetRangeUser(0, MaxMil);
298  MiliEv->Draw("Error");
299 
300  c1->cd(3);
301  TH1F *GiriEv = (TH1F *)dir->FindObjectAny("h_nls_per_run");
302  int MaxGir0 = GiriEv->GetBinContent(GiriEv->GetMaximumBin());
303  int MaxGir = 0;
304  for (int i = 1; i <= GiriEv->GetXaxis()->GetNbins(); i++) {
305  if (GiriEv->GetBinContent(i)) {
306  MaxGir = i;
307  }
308  }
309  cout << "nls_per_run = " << MaxGir0 << " Maxnls_per_run= " << MaxGir << endl;
310 
311  // gPad->SetGridy();
312  // gPad->SetGridx();
313  // gPad->SetLogy();
314  // gPad->SetLogx();
315  GiriEv->GetYaxis()->SetLabelSize(0.04);
316  GiriEv->SetTitle("Number of LS per run");
317  GiriEv->SetXTitle("irun");
318  GiriEv->SetYTitle("Number of LS ");
319  GiriEv->SetMarkerStyle(20);
320  GiriEv->SetMarkerSize(0.8);
321  GiriEv->SetMarkerColor(4);
322  GiriEv->SetLineColor(0);
323  // GiriEv->SetMinimum(0.8);
324  GiriEv->GetXaxis()->SetRangeUser(0, MaxGir);
325  GiriEv->Draw("Error");
326 
327  c1->cd(4);
328  TH1F *SumiEv = (TH1F *)dir->FindObjectAny("h_nevents_per_eachRealLS");
329  int MaxSum0 = SumiEv->GetBinContent(SumiEv->GetMaximumBin());
330  int MaxSum = 0;
331  for (int i = 1; i <= SumiEv->GetXaxis()->GetNbins(); i++) {
332  if (SumiEv->GetBinContent(i)) {
333  MaxSum = i;
334  }
335  }
336  cout << " MaxSum0= " << MaxSum0 << " MaxSum= " << MaxSum << endl;
337 
338  gPad->SetGridy();
339  gPad->SetGridx();
340  gPad->SetLogy();
341  // gPad->SetLogx();
342  SumiEv->GetYaxis()->SetLabelSize(0.04);
343  SumiEv->SetTitle("Number of events per RealLS");
344  SumiEv->SetXTitle("LS");
345  SumiEv->SetYTitle("Number of events ");
346  SumiEv->SetMarkerStyle(20);
347  SumiEv->SetMarkerSize(0.2);
348  SumiEv->SetMarkerColor(4);
349  SumiEv->SetLineColor(0);
350  // SumiEv->SetMinimum(0.8);
351  SumiEv->GetXaxis()->SetRangeUser(0, MaxSum);
352  SumiEv->Draw("Error");
353 
354  c1->cd(5);
355  TH1F *TiriEv = (TH1F *)dir->FindObjectAny("h_nevents_per_LS");
356  int MaxTir0 = TiriEv->GetBinContent(TiriEv->GetMaximumBin());
357  int MaxTir = 0;
358  for (int i = 1; i <= TiriEv->GetXaxis()->GetNbins(); i++) {
359  if (TiriEv->GetBinContent(i)) {
360  MaxTir = i;
361  }
362  }
363  cout << " MaxTir0= " << MaxTir0 << " MaxTir= " << MaxTir << endl;
364 
365  TiriEv->GetYaxis()->SetLabelSize(0.04);
366  TiriEv->SetTitle("Number of events per LS");
367  TiriEv->SetXTitle("LS");
368  TiriEv->SetYTitle("Number of events ");
369  TiriEv->SetMarkerStyle(20);
370  TiriEv->SetMarkerSize(0.8);
371  TiriEv->SetMarkerColor(4);
372  TiriEv->SetLineColor(0);
373  // TiriEv->SetMinimum(0.8);
374  TiriEv->GetXaxis()->SetRangeUser(0, MaxTir);
375  TiriEv->Draw("Error");
376 
377  c1->cd(6);
378  TH1F *MasiEv = (TH1F *)dir->FindObjectAny("h_nevents_per_LSzoom");
379  int MaxMas0 = MasiEv->GetBinContent(MasiEv->GetMaximumBin());
380  int MaxMas = 0;
381  for (int i = 1; i <= MasiEv->GetXaxis()->GetNbins(); i++) {
382  if (MasiEv->GetBinContent(i)) {
383  MaxMas = i;
384  }
385  }
386  cout << " MaxMas0= " << MaxMas0 << " MaxMas= " << MaxMas << endl;
387 
388  MasiEv->GetYaxis()->SetLabelSize(0.04);
389  MasiEv->SetTitle("Number of events per LS");
390  MasiEv->SetXTitle("LS");
391  MasiEv->SetYTitle("Number of events ");
392  MasiEv->SetMarkerStyle(20);
393  MasiEv->SetMarkerSize(0.8);
394  MasiEv->SetMarkerColor(4);
395  MasiEv->SetLineColor(0);
396  // MasiEv->SetMinimum(0.8);
397  MasiEv->GetXaxis()->SetRangeUser(0, MaxMas);
398  MasiEv->Draw("Error");
399 
400  c1->cd(7);
401  TH1F *LediEv = (TH1F *)dir->FindObjectAny("h_nls_per_run10");
402  int MaxLed0 = LediEv->GetBinContent(LediEv->GetMaximumBin());
403  int MaxLed = 0;
404  for (int i = 1; i <= LediEv->GetXaxis()->GetNbins(); i++) {
405  if (LediEv->GetBinContent(i)) {
406  MaxLed = i;
407  }
408  }
409  cout << " NlsPERrun= " << MaxLed0 << " MaxbinHisto= " << MaxLed << endl;
410 
411  LediEv->GetYaxis()->SetLabelSize(0.04);
412  LediEv->SetTitle("Number of ls(ev>10) per run");
413  LediEv->SetXTitle("run");
414  LediEv->SetYTitle("Number of ls ");
415  LediEv->SetMarkerStyle(20);
416  LediEv->SetMarkerSize(0.8);
417  LediEv->SetMarkerColor(4);
418  LediEv->SetLineColor(0);
419  // LediEv->SetMinimum(0.8);
420  LediEv->GetXaxis()->SetRangeUser(0, MaxLed);
421  LediEv->Draw("Error");
422 
423  c1->Update();
424 
425  //======================================================================
426  //==================================================================================================== end
427  //======================================================================
428  //======================================================================
429  // close and delete all possible things:
430 
431  // psfile->Close();
432  psfile.Close();
433 
434  hfile1->Close();
435  // hfile1->Delete();
436  hfile1->Close();
437  // hfile1->Delete();
438 
439  // Exit Root
440  gSystem->Exit(0);
441  //======================================================================
442 }
int main(int argc, char *argv[])