CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
MultiplicityPlotMacros.h File Reference

Go to the source code of this file.

Functions

TH1D * AverageRunMultiplicity (TFile &ff, const char *module, const bool excludeLastBins, const char *histo)
 
void PlotPixelMultVtxPos (TFile *ff, const char *module)
 

Function Documentation

TH1D* AverageRunMultiplicity ( TFile &  ff,
const char *  module,
const bool  excludeLastBins,
const char *  histo 
)

Definition at line 98 of file MultiplicityPlotMacros.cc.

References gather_cfg::cout, CommonAnalyzer::getObject(), CommonAnalyzer::getRunList(), timingPdfMaker::histo, mps_fire::i, gather_cfg::runs, and CommonAnalyzer::setPath().

101  {
102  CommonAnalyzer camult(&ff, "", module);
103 
104  TH1D* clusmult = new TH1D("clusmult", "Average Multiplicity vs run", 10, 0., 10.);
105  clusmult->SetCanExtend(TH1::kXaxis);
106 
107  std::vector<unsigned int> runs = camult.getRunList();
108  std::sort(runs.begin(), runs.end());
109 
110  {
111  for (unsigned int i = 0; i < runs.size(); ++i) {
112  char runlabel[100];
113  sprintf(runlabel, "%d", runs[i]);
114  char runpath[100];
115  sprintf(runpath, "run_%d", runs[i]);
116  camult.setPath(runpath);
117 
118  TProfile* multvstime = nullptr;
119  if (multvstime == nullptr)
120  multvstime = (TProfile*)camult.getObject(histo);
121  if (multvstime) {
122  // compute mean exlucing the last filled bins
123 
124  if (excludeLastBins) {
125  int lastbin = multvstime->GetNbinsX() + 1;
126  int firstbin = 1;
127  for (int ibin = multvstime->GetNbinsX() + 1; ibin > 0; --ibin) {
128  if (multvstime->GetBinEntries(ibin) != 0) {
129  lastbin = ibin;
130  break;
131  }
132  }
133 
134  std::cout << "Restricted range: " << firstbin << " " << lastbin << std::endl;
135  multvstime->GetXaxis()->SetRangeUser(multvstime->GetBinLowEdge(firstbin),
136  multvstime->GetBinLowEdge(lastbin - 2));
137  }
138  // fill the summary
139  clusmult->Fill(runlabel, multvstime->GetMean(2));
140  }
141  }
142  }
143  return clusmult;
144 }
tuple runs
Definition: gather_cfg.py:88
tuple cout
Definition: gather_cfg.py:144
tuple module
Definition: callgraph.py:69
void PlotPixelMultVtxPos ( TFile *  ff,
const char *  module 
)

Definition at line 15 of file MultiplicityPlotMacros.cc.

References CommonAnalyzer::getObject(), mps_fire::i, HLT_FULL_cff::labels, fed_dqm_sourceclient-live_cfg::path, CommonAnalyzer::setPath(), and AlCaHLTBitMon_QueryRunRegistry::string.

15  {
16  CommonAnalyzer camult(ff, "", module);
17  // camult.setPath("VtxPosCorr");
18 
19  std::vector<std::string> labels;
20  labels.push_back("FPIX_m");
21  labels.push_back("BPIX_L1_mod_1");
22  labels.push_back("BPIX_L1_mod_2");
23  labels.push_back("BPIX_L1_mod_3");
24  labels.push_back("BPIX_L1_mod_4");
25  labels.push_back("BPIX_L1_mod_5");
26  labels.push_back("BPIX_L1_mod_6");
27  labels.push_back("BPIX_L1_mod_7");
28  labels.push_back("BPIX_L1_mod_8");
29  labels.push_back("FPIX_p");
30  labels.push_back("BPIX_L1");
31  labels.push_back("BPIX_L2");
32  labels.push_back("BPIX_L3");
33  labels.push_back("Lumi");
34 
35  std::vector<TProfile*> profs;
36 
37  for (unsigned int i = 0; i < labels.size(); ++i) {
38  std::string path = "VtxPosCorr/" + labels[i];
39  camult.setPath(path.c_str());
40 
41  std::string hname = "n" + labels[i] + "digivsvtxposprof";
42  profs.push_back((TProfile*)camult.getObject(hname.c_str()));
43  }
44 
45  TCanvas* cc = new TCanvas("BPIX L1 details", "BPIX L1 details", 1000, 1000);
46  gPad->Divide(2, 2);
47 
48  for (unsigned int i = 1; i < 5; ++i) {
49  cc->cd(i);
50  if (profs[i] && profs[9 - i]) {
51  profs[i]->Draw();
52  profs[9 - i]->SetLineColor(kRed);
53  profs[9 - i]->SetMarkerColor(kRed);
54  profs[9 - i]->Draw("same");
55  TLegend* leg = new TLegend(0.4, 0.8, 0.6, 0.9, "Occupancy");
56  leg->SetFillStyle(0);
57  leg->AddEntry(profs[i], labels[i].c_str(), "l");
58  leg->AddEntry(profs[9 - i], labels[9 - i].c_str(), "l");
59  leg->Draw();
60  }
61  }
62  new TCanvas("FPIX", "FPIX");
63  if (profs[0] && profs[9]) {
64  profs[0]->Draw();
65  profs[9]->SetLineColor(kRed);
66  profs[9]->SetMarkerColor(kRed);
67  profs[9]->Draw("same");
68  TLegend* leg = new TLegend(0.4, 0.8, 0.6, 0.9, "Occupancy");
69  leg->SetFillStyle(0);
70  leg->AddEntry(profs[0], labels[0].c_str(), "l");
71  leg->AddEntry(profs[9], labels[9].c_str(), "l");
72  leg->Draw();
73  }
74 
75  gStyle->SetOptStat(11);
76  gStyle->SetOptFit(11);
77  new TCanvas("BPIXL1", "BPIX L1");
78  profs[10]->Fit("pol2");
79  new TCanvas("BPIXL2", "BPIX L2");
80  profs[11]->Fit("pol2");
81  new TCanvas("BPIXL3", "BPIX L3");
82  profs[12]->Fit("pol2");
83 
84  new TCanvas("LumiAdd", "LumiAdd");
85  TH1D* hlumi = profs[11]->ProjectionX("lumi");
86  TH1D* hbpixl3 = profs[12]->ProjectionX("bpixl3");
87  TH1D* hfpixm = profs[0]->ProjectionX("fpixm");
88  TH1D* hfpixp = profs[9]->ProjectionX("fpixp");
89  hlumi->SetTitle("BPIX L2+L3 + FPIX multiplicity vs vtx z position");
90  hlumi->Add(hbpixl3);
91  hlumi->Add(hfpixm);
92  hlumi->Add(hfpixp);
93  hlumi->Fit("pol2");
94  new TCanvas("Lumi", "Lumi");
95  profs[13]->Fit("pol2");
96 }
tuple module
Definition: callgraph.py:69