#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include "MultiplicityPlotMacros.h"
#include "DPGAnalysis/SiStripTools/interface/CommonAnalyzer.h"
#include "TFile.h"
#include "TH1D.h"
#include "TProfile.h"
#include "TDirectory.h"
#include "TCanvas.h"
#include "TStyle.h"
#include "TLegend.h"
Go to the source code of this file.
◆ AverageRunMultiplicity()
TH1D* AverageRunMultiplicity |
( |
TFile & |
ff, |
|
|
const char * |
module, |
|
|
const bool |
excludeLastBins = false , |
|
|
const char * |
histo = "nTKdigivsorbrun" |
|
) |
| |
Definition at line 98 of file MultiplicityPlotMacros.cc.
104 TH1D* clusmult =
new TH1D(
"clusmult",
"Average Multiplicity vs run", 10, 0., 10.);
105 clusmult->SetCanExtend(TH1::kXaxis);
107 std::vector<unsigned int>
runs = camult.getRunList();
108 std::sort(
runs.begin(),
runs.end());
111 for (
unsigned int i = 0;
i <
runs.size(); ++
i) {
113 sprintf(runlabel,
"%d",
runs[
i]);
115 sprintf(runpath,
"run_%d",
runs[
i]);
116 camult.setPath(runpath);
118 TProfile* multvstime =
nullptr;
119 if (multvstime ==
nullptr)
120 multvstime = (TProfile*)camult.getObject(
histo);
124 if (excludeLastBins) {
125 int lastbin = multvstime->GetNbinsX() + 1;
127 for (
int ibin = multvstime->GetNbinsX() + 1; ibin > 0; --ibin) {
128 if (multvstime->GetBinEntries(ibin) != 0) {
134 std::cout <<
"Restricted range: " << firstbin <<
" " << lastbin << std::endl;
135 multvstime->GetXaxis()->SetRangeUser(multvstime->GetBinLowEdge(firstbin),
136 multvstime->GetBinLowEdge(lastbin - 2));
139 clusmult->Fill(runlabel, multvstime->GetMean(2));
References gather_cfg::cout, alignCSCRings::ff, CommonAnalyzer::getObject(), CommonAnalyzer::getRunList(), timingPdfMaker::histo, mps_fire::i, writedatasetfile::runs, and CommonAnalyzer::setPath().
◆ PlotPixelMultVtxPos()
void PlotPixelMultVtxPos |
( |
TFile * |
ff, |
|
|
const char * |
module |
|
) |
| |
Definition at line 15 of file MultiplicityPlotMacros.cc.
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");
35 std::vector<TProfile*> profs;
37 for (
unsigned int i = 0;
i <
labels.size(); ++
i) {
39 camult.setPath(
path.c_str());
42 profs.push_back((TProfile*)camult.getObject(hname.c_str()));
45 TCanvas*
cc =
new TCanvas(
"BPIX L1 details",
"BPIX L1 details", 1000, 1000);
48 for (
unsigned int i = 1;
i < 5; ++
i) {
50 if (profs[
i] && profs[9 -
i]) {
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");
57 leg->AddEntry(profs[
i],
labels[
i].c_str(),
"l");
58 leg->AddEntry(profs[9 -
i],
labels[9 -
i].c_str(),
"l");
62 new TCanvas(
"FPIX",
"FPIX");
63 if (profs[0] && profs[9]) {
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");
70 leg->AddEntry(profs[0],
labels[0].c_str(),
"l");
71 leg->AddEntry(profs[9],
labels[9].c_str(),
"l");
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");
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");
94 new TCanvas(
"Lumi",
"Lumi");
95 profs[13]->Fit(
"pol2");
References alignCSCRings::ff, CommonAnalyzer::getObject(), mps_fire::i, SummaryClient_cfi::labels, castor_dqm_sourceclient_file_cfg::path, CommonAnalyzer::setPath(), and AlCaHLTBitMon_QueryRunRegistry::string.