ATLAS Offline Software
Loading...
Searching...
No Matches
RecoPhysPlots Class Reference

#include <RecoPhysPlots.h>

Inheritance diagram for RecoPhysPlots:
Collaboration diagram for RecoPhysPlots:

Public Member Functions

 RecoPhysPlots (PlotBase *pParent, const std::string &sDir, std::string recObj)
void fill (const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > &mumucandidates)
void fill (const float eta_mu_plus, const float eta_mu_minus, const float invariant_mass)
float EtaRegionFine (double eta)
float EtaRegionCoarse (double eta)
bool LabelLargeEtaRegions (TAxis *axis)
bool LabelCombinedEtaRegions (TAxis *axis)
bool LabelSectorAxis (TAxis *axis)
void finalizeRecoPlots ()
void initialize ()
void finalize ()
void setDetailLevel (int iDetailLevel)
void RegisterSubPlot (PlotBase *pPlotBase)
std::vector< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects.
TTree * BookTree (const std::string &name, bool prependDir=true)
 Book a TTree.
const std::string & getDirectory ()
Methods to book monitoring histograms

Note: methods starting with capitals should be deprecated in favour of camel-cased methods

TH1D * Book1D (const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
 Book a TH1D histogram.
TH1D * Book1D (const std::string &name, TH1 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH1D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
 Book a TH2F histogram.
TH2F * Book2D (const std::string &name, TH2 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH2D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (const std::string &name, const std::string &labels, int nBinsX, Double_t *binsX, int nBinsY, Double_t startY, Double_t endY, bool prependDir=true)
 Book a TH2F histogram with variable x axis binning.
TH3F * Book3D (const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, int nBinsZ, float startZ, float endZ, bool prependDir=true)
 Book a TH3F histogram.
TH3F * Book3D (const std::string &name, TH3 *refHist, const std::string &labels, bool prependDir=true)
 Book a TH3F histogram using refHist as reference for number of bins and axis range.
TProfile * BookTProfile (const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
 Book a TProfile histogram.
TProfile * BookTProfile (const std::string &name, const std::string &labels, int nBinsX, float *binsX, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis.
TProfile * BookTProfileRangeY (const std::string &name, const std::string &labels, int nBinsX, double *binsX, double startY, double endY, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis and limits in y-values.
TProfile2D * BookTProfile2D (const std::string &name, const std::string &labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TProfile2D * BookTProfile2D (const std::string &name, const std::string &labels, const int nBinsX, double *binsX, const int nBinsY, double *binsY, bool prependDir=true, bool useRMS=false)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TEfficiency * BookTEfficiency (const std::string &name, const std::string &labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
 Book a (1-D) TEfficiency histogram.
TEfficiency * BookTEfficiency (const std::string &name, const std::string &labels, const int nBinsX, const float xlo, const float xhi, const int nBinsy, const float ylo, const float yhi, const bool prependDir=true)
 Book a (2-D) TEfficiency histogram.

Public Attributes

TH1 * m_Mass
TH1 * m_occupancy
TH1 * m_2occupancy
TH1 * m_M_Mean
TH1 * m_M_Sigma
TH1 * m_M_EA_EA
TH1 * m_M_EA_BA
TH1 * m_M_EA_BC
TH1 * m_M_EA_EC
TH1 * m_M_BA_EA
TH1 * m_M_BA_BA
TH1 * m_M_BA_BC
TH1 * m_M_BA_EC
TH1 * m_M_BC_EA
TH1 * m_M_BC_BA
TH1 * m_M_BC_BC
TH1 * m_M_BC_EC
TH1 * m_M_EC_EA
TH1 * m_M_EC_BA
TH1 * m_M_EC_BC
TH1 * m_M_EC_EC
std::string type

Protected Attributes

std::vector< PlotBase * > m_vSubNodes
std::vector< HistDatam_vBookedHistograms
std::vector< TreeDatam_vBookedTrees
std::vector< EfficiencyDatam_vBookedEfficiencies
std::string m_sDirectory
int m_iDetailLevel

Private Member Functions

void SetResultsBin (int iBin, TH1 *pInputHist)
void initializePlots ()
virtual void finalizePlots ()

Static Private Member Functions

static std::string constructPrefix (std::string dir, bool prependDir)

Detailed Description

Definition at line 12 of file RecoPhysPlots.h.

Constructor & Destructor Documentation

◆ RecoPhysPlots()

RecoPhysPlots::RecoPhysPlots ( PlotBase * pParent,
const std::string & sDir,
std::string recObj )

Definition at line 10 of file RecoPhysPlots.cxx.

10 :PlotBase(pParent, sDir),
11 m_Mass(nullptr),
12 m_occupancy(nullptr),
13 m_2occupancy(nullptr),
14 m_M_Mean(nullptr),
15 m_M_Sigma(nullptr),
16 m_M_EA_EA(nullptr),
17 m_M_EA_BA(nullptr),
18 m_M_EA_BC(nullptr),
19 m_M_EA_EC(nullptr),
20 m_M_BA_EA(nullptr),
21 m_M_BA_BA(nullptr),
22 m_M_BA_BC(nullptr),
23 m_M_BA_EC(nullptr),
24 m_M_BC_EA(nullptr),
25 m_M_BC_BA(nullptr),
26 m_M_BC_BC(nullptr),
27 m_M_BC_EC(nullptr),
28 m_M_EC_EA(nullptr),
29 m_M_EC_BA(nullptr),
30 m_M_EC_BC(nullptr),
31 m_M_EC_EC(nullptr),
32 type(std::move(recObj))
33{}
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
std::string type

Member Function Documentation

◆ Book1D() [1/2]

TH1D * PlotBase::Book1D ( const std::string & name,
const std::string & labels,
int nBins,
float start,
float end,
bool prependDir = true )
inherited

Book a TH1D histogram.

Definition at line 94 of file PlotBase.cxx.

95 {
96 std::string prefix = constructPrefix(m_sDirectory, prependDir);
97 Bool_t oldstat = TH1::AddDirectoryStatus();
98 TH1::AddDirectory(false);
99 TH1D *hist = new TH1D((prefix + name).c_str(), labels.c_str(), nBins, start, end);
100 TH1::AddDirectory(oldstat);
101
102 hist->Sumw2();
103 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
104 return hist;
105}
static std::string constructPrefix(std::string dir, bool prependDir)
Definition PlotBase.cxx:293
std::vector< HistData > m_vBookedHistograms
Definition PlotBase.h:97
std::string m_sDirectory
Definition PlotBase.h:100

◆ Book1D() [2/2]

TH1D * PlotBase::Book1D ( const std::string & name,
TH1 * refHist,
const std::string & labels,
bool prependDir = true )
inherited

Book a TH1D histogram using refHist as reference for number of bins and axis range.

Definition at line 108 of file PlotBase.cxx.

108 {
109 std::string prefix = constructPrefix(m_sDirectory, prependDir);
110 Bool_t oldstat = TH1::AddDirectoryStatus();
111 TH1::AddDirectory(false);
112 TH1D *hist = new TH1D((prefix + name).c_str(), labels.c_str(), refHist->GetNbinsX(),
113 refHist->GetXaxis()->GetXbins()->GetArray());
114 hist->Sumw2();
115 TH1::AddDirectory(oldstat);
116
117
118 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
119 return hist;
120}

◆ Book2D() [1/3]

TH2F * PlotBase::Book2D ( const std::string & name,
const std::string & labels,
int nBinsX,
Double_t * binsX,
int nBinsY,
Double_t startY,
Double_t endY,
bool prependDir = true )
inherited

Book a TH2F histogram with variable x axis binning.

Definition at line 144 of file PlotBase.cxx.

145 {
146 std::string prefix = constructPrefix(m_sDirectory, prependDir);
147 Bool_t oldstat = TH2::AddDirectoryStatus();
148 TH2::AddDirectory(false);
149 TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, startY, endY);
150 hist->Sumw2();
151 TH2::AddDirectory(oldstat);
152 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
153 return hist;
154}
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ Book2D() [2/3]

TH2F * PlotBase::Book2D ( const std::string & name,
const std::string & labels,
int nBinsX,
float startX,
float endX,
int nBinsY,
float startY,
float endY,
bool prependDir = true )
inherited

Book a TH2F histogram.

Definition at line 123 of file PlotBase.cxx.

124 {
125 std::string prefix = constructPrefix(m_sDirectory, prependDir);
126 Bool_t oldstat = TH2::AddDirectoryStatus();
127 TH2::AddDirectory(false);
128 TH2F *hist = new TH2F((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, nBinsY, startY, endY);
129 hist->Sumw2();
130 TH2::AddDirectory(oldstat);
131
132
133 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
134 return hist;
135}

◆ Book2D() [3/3]

TH2F * PlotBase::Book2D ( const std::string & name,
TH2 * refHist,
const std::string & labels,
bool prependDir = true )
inherited

Book a TH2D histogram using refHist as reference for number of bins and axis range.

Definition at line 138 of file PlotBase.cxx.

138 {
139 return Book2D(name, labels, refHist->GetNbinsX(), refHist->GetXaxis()->GetXmin(), refHist->GetXaxis()->GetXmax(),
140 refHist->GetNbinsY(), refHist->GetYaxis()->GetXmin(), refHist->GetYaxis()->GetXmax(), prependDir);
141}
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2F histogram.
Definition PlotBase.cxx:123

◆ Book3D() [1/2]

TH3F * PlotBase::Book3D ( const std::string & name,
const std::string & labels,
int nBinsX,
float startX,
float endX,
int nBinsY,
float startY,
float endY,
int nBinsZ,
float startZ,
float endZ,
bool prependDir = true )
inherited

Book a TH3F histogram.

Definition at line 157 of file PlotBase.cxx.

158 {
159 std::string prefix = constructPrefix(m_sDirectory, prependDir);
160 Bool_t oldstat = TH3::AddDirectoryStatus();
161 TH3::AddDirectory(false);
162 TH3F *hist = new TH3F((prefix + name).c_str(),
163 labels.c_str(), nBinsX, startX, endX, nBinsY, startY, endY, nBinsZ, startZ, endZ);
164 hist->Sumw2();
165 TH3::AddDirectory(oldstat);
166 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
167 return hist;
168}

◆ Book3D() [2/2]

TH3F * PlotBase::Book3D ( const std::string & name,
TH3 * refHist,
const std::string & labels,
bool prependDir = true )
inherited

Book a TH3F histogram using refHist as reference for number of bins and axis range.

Definition at line 171 of file PlotBase.cxx.

171 {
172 std::string prefix = constructPrefix(m_sDirectory, prependDir);
173 Bool_t oldstat = TH3::AddDirectoryStatus();
174 TH3::AddDirectory(false);
175 TH3F *hist = new TH3F((prefix + name).c_str(), labels.c_str(), refHist->GetNbinsX(),
176 refHist->GetXaxis()->GetXbins()->GetArray(), refHist->GetNbinsY(),
177 refHist->GetYaxis()->GetXbins()->GetArray(), refHist->GetNbinsZ(),
178 refHist->GetZaxis()->GetXbins()->GetArray());
179 TH3::AddDirectory(oldstat);
180
181 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
182 return hist;
183}

◆ BookTEfficiency() [1/2]

TEfficiency * PlotBase::BookTEfficiency ( const std::string & name,
const std::string & labels,
const int nBinsX,
const float xlo,
const float xhi,
const bool prependDir = true )
inherited

Book a (1-D) TEfficiency histogram.

Definition at line 257 of file PlotBase.cxx.

257 {
258 std::string prefix = constructPrefix(m_sDirectory, prependDir);
259 //Bool_t oldstat = TEfficiency::AddDirectoryStatus();
260 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi);
261 //hist->SetAutoSave(0);
262 //hist->SetAtoFlush(0);
263 hist->SetDirectory(nullptr);
264 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
265 //TEfficiency::AddDirectory(oldstat);
266 return hist;
267}
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition PlotBase.h:99

◆ BookTEfficiency() [2/2]

TEfficiency * PlotBase::BookTEfficiency ( const std::string & name,
const std::string & labels,
const int nBinsX,
const float xlo,
const float xhi,
const int nBinsy,
const float ylo,
const float yhi,
const bool prependDir = true )
inherited

Book a (2-D) TEfficiency histogram.

Definition at line 270 of file PlotBase.cxx.

270 {
271 std::string prefix = constructPrefix(m_sDirectory, prependDir);
272
273 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi);
274 hist->SetDirectory(nullptr);
275 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
276
277 return hist;
278}

◆ BookTProfile() [1/2]

TProfile * PlotBase::BookTProfile ( const std::string & name,
const std::string & labels,
int nBinsX,
float * binsX,
bool prependDir = true )
inherited

Book a TProfile histogram with variable binning in x-axis.

Definition at line 204 of file PlotBase.cxx.

204 {
205 std::string prefix = constructPrefix(m_sDirectory, prependDir);
206 TProfile *hist(nullptr);
207 Bool_t oldstat = TProfile::AddDirectoryStatus();
208 TProfile::AddDirectory(false);
209
210 hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, binsX);
211 TProfile::AddDirectory(oldstat);
212 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
213 return hist;
214}

◆ BookTProfile() [2/2]

TProfile * PlotBase::BookTProfile ( const std::string & name,
const std::string & labels,
int nBinsX,
float startX,
float endX,
float startY = -1,
float endY = -1,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile histogram.

Definition at line 186 of file PlotBase.cxx.

187 {
188 std::string prefix = constructPrefix(m_sDirectory, prependDir);
189 TProfile *hist(nullptr);
190 Bool_t oldstat = TProfile::AddDirectoryStatus();
191 TProfile::AddDirectory(false);
192 std::string opt = useRMS ? "S" : "";
193 if ((startY == -1) and (endY == -1)) {
194 hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, opt.c_str());
195 } else {
196 hist = new TProfile((prefix + name).c_str(), labels.c_str(), nBinsX, startX, endX, startY, endY, opt.c_str());
197 }
198 TProfile::AddDirectory(oldstat);
199 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
200 return hist;
201}

◆ BookTProfile2D() [1/2]

TProfile2D * PlotBase::BookTProfile2D ( const std::string & name,
const std::string & labels,
const int nBinsX,
const double xlo,
const double xhi,
const int nBinsY,
const double ylo,
const double yhi,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 231 of file PlotBase.cxx.

233 {
234 std::string prefix = constructPrefix(m_sDirectory, prependDir);
235 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
236 TProfile2D::AddDirectory(false);
237 std::string opt = useRMS ? "S" : "";
238 TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi, opt.c_str());
239 TProfile2D::AddDirectory(oldstat);
240 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
241 return hist;
242}

◆ BookTProfile2D() [2/2]

TProfile2D * PlotBase::BookTProfile2D ( const std::string & name,
const std::string & labels,
const int nBinsX,
double * binsX,
const int nBinsY,
double * binsY,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 245 of file PlotBase.cxx.

245 {
246 std::string prefix = constructPrefix(m_sDirectory, prependDir);
247 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
248 TProfile2D::AddDirectory(false);
249 std::string opt = useRMS ? "S" : "";
250 TProfile2D *hist = new TProfile2D((prefix + name).c_str(), labels.c_str(), nBinsX, binsX, nBinsY, binsY, opt.c_str());
251 TProfile2D::AddDirectory(oldstat);
252 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
253 return hist;
254}

◆ BookTProfileRangeY()

TProfile * PlotBase::BookTProfileRangeY ( const std::string & name,
const std::string & labels,
int nBinsX,
double * binsX,
double startY,
double endY,
bool prependDir = true )
inherited

Book a TProfile histogram with variable binning in x-axis and limits in y-values.

Definition at line 217 of file PlotBase.cxx.

218 {
219 std::string prefix = constructPrefix(m_sDirectory, prependDir);
220 TProfile *hist(nullptr);
221 Bool_t oldstat = TProfile::AddDirectoryStatus();
222 TProfile::AddDirectory(false);
223
224 hist = new TProfile((prefix + name).c_str(), labels.c_str(), (Int_t) nBinsX, binsX, startY, endY);
225 TProfile::AddDirectory(oldstat);
226 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
227 return hist;
228}

◆ BookTree()

TTree * PlotBase::BookTree ( const std::string & name,
bool prependDir = true )
inherited

Book a TTree.

Definition at line 281 of file PlotBase.cxx.

281 {
282 std::string prefix = constructPrefix(m_sDirectory, prependDir);
283 TTree *tree = new TTree((prefix + name).c_str(), "");
284
285 tree->SetAutoSave(0);
286 tree->SetAutoFlush(0);
287 tree->SetDirectory(nullptr);
288 m_vBookedTrees.emplace_back(tree, m_sDirectory);
289 return tree;
290}
std::vector< TreeData > m_vBookedTrees
Definition PlotBase.h:98
TChain * tree

◆ constructPrefix()

std::string PlotBase::constructPrefix ( std::string dir,
bool prependDir )
staticprivateinherited

Definition at line 293 of file PlotBase.cxx.

293 {
294 if (!prependDir) {
295 return "";
296 }
297 std::replace(dir.begin(), dir.end(), '/', '_');
298 return dir;
299}

◆ EtaRegionCoarse()

float RecoPhysPlots::EtaRegionCoarse ( double eta)

Definition at line 170 of file RecoPhysPlots.cxx.

171{
172
173 if(eta < -2.50) {return -1.;} // underflow
174 if(eta < -1.05) {return 0.5;} // EC
175 if(eta < 0.00) {return 1.5;} // BC
176 if(eta < 1.05) {return 2.5;} // BA
177 if(eta < 2.50) {return 3.5;} // BC
178 return 4.5; // Overflow
179
180}
Scalar eta() const
pseudorapidity method

◆ EtaRegionFine()

float RecoPhysPlots::EtaRegionFine ( double eta)

Definition at line 155 of file RecoPhysPlots.cxx.

156{
157 if (eta < -2.50) {return -1.;} // underflow
158 if (eta < -2.00) {return 0.5;} // CSC C
159 if (eta < -1.70) {return 1.5;} // ENDCAP C
160 if (eta < -1.05) {return 2.5;} // Trans C
161 if (eta < 0.00) {return 3.5;} // Barrel C
162 if (eta > 2.50) {return 8.5;} // OverFlow
163 if (eta > 2.00) {return 7.5;} // CSC A
164 if (eta > 1.70) {return 6.5;} // ENDCAP A
165 if (eta > 1.05) {return 5.5;} // Trans A
166 if (eta > 0.00) {return 4.5;} // Barrel A
167 return -1.;
168}

◆ fill() [1/2]

void RecoPhysPlots::fill ( const float eta_mu_plus,
const float eta_mu_minus,
const float invariant_mass )

Definition at line 103 of file RecoPhysPlots.cxx.

103 {
104
105 float etaRegionCoarsePlus = EtaRegionCoarse(eta_mu_plus);
106 float etaRegionCoarseMinus = EtaRegionCoarse(eta_mu_minus);
107 float etaRegionFinePlus = EtaRegionFine(eta_mu_plus);
108 float etaRegionFineMinus = EtaRegionFine(eta_mu_minus);
109
110 if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 3.5)) {m_M_EA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(16);}
111 if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 2.5)) {m_M_EA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(15);}
112 if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 1.5)) {m_M_EA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(14);}
113 if((etaRegionCoarsePlus == 3.5 && etaRegionCoarseMinus == 0.5)) {m_M_EA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(13);}
114
115 if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 3.5)) {m_M_BA_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(12);}
116 if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 2.5)) {m_M_BA_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(11);}
117 if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 1.5)) {m_M_BA_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(10);}
118 if((etaRegionCoarsePlus == 2.5 && etaRegionCoarseMinus == 0.5)) {m_M_BA_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(9);}
119
120 if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 3.5)) {m_M_BC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(8);}
121 if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 2.5)) {m_M_BC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(7);}
122 if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 1.5)) {m_M_BC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(6);}
123 if((etaRegionCoarsePlus == 1.5 && etaRegionCoarseMinus == 0.5)) {m_M_BC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(5);}
124
125 if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 3.5)) {m_M_EC_EA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(4);}
126 if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 2.5)) {m_M_EC_BA->Fill(invariant_mass/1000.0); m_2occupancy->Fill(3);}
127 if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 1.5)) {m_M_EC_BC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(2);}
128 if((etaRegionCoarsePlus == 0.5 && etaRegionCoarseMinus == 0.5)) {m_M_EC_EC->Fill(invariant_mass/1000.0); m_2occupancy->Fill(1);}
129
130 m_Mass->Fill(invariant_mass/1000.0);
131 m_occupancy->Fill(etaRegionFinePlus);
132 m_occupancy->Fill(etaRegionFineMinus);
133
134}
float EtaRegionFine(double eta)
float EtaRegionCoarse(double eta)

◆ fill() [2/2]

void RecoPhysPlots::fill ( const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > & mumucandidates)

Definition at line 96 of file RecoPhysPlots.cxx.

96 {
97 for (auto mumu: mumucandidates){
98 const float invariant_mass = (mumu.first->p4() + mumu.second->p4()).M();
99 fill(mumu.first->eta(), mumu.second->eta(), invariant_mass);
100 }
101}
void fill(const std::vector< std::pair< const xAOD::Muon *, const xAOD::Muon * > > &mumucandidates)

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

47 {
48 for (auto *subNode: m_vSubNodes) {
49 subNode->finalize();
50 }
52}
std::vector< PlotBase * > m_vSubNodes
Definition PlotBase.h:96
virtual void finalizePlots()
Definition PlotBase.h:92

◆ finalizePlots()

◆ finalizeRecoPlots()

void RecoPhysPlots::finalizeRecoPlots ( )

Definition at line 136 of file RecoPhysPlots.cxx.

◆ getDirectory()

const std::string & PlotBase::getDirectory ( )
inlineinherited

Definition at line 88 of file PlotBase.h.

88{return m_sDirectory;}

◆ initialize()

void PlotBase::initialize ( )
inherited

Definition at line 39 of file PlotBase.cxx.

39 {
40 for (auto *subNode: m_vSubNodes) {
41 subNode->initialize();
42 }
44}
virtual void initializePlots()
Definition PlotBase.h:91

◆ initializePlots()

void RecoPhysPlots::initializePlots ( )
privatevirtual

Error check for doZ and doJ both true here;

Reimplemented from PlotBase.

Definition at line 35 of file RecoPhysPlots.cxx.

35 {
36
37 std::string Zsig("Z");
38 std::string Jsig("Jpsi");
39 std::string name;
40 bool doZ = false; bool doJ = false;
41
42 if (!type.compare(Zsig)) { name="Z"; doZ = true; }
43 else if (!type.compare(Jsig)) { name="J/#psi"; doJ = true; }
44 else { name="other"; }
45
46 int nBins = 100;
47 double minBin = 0.0;
48 double maxBin = 1000.0;
49
51
52 if (doZ) {
53 nBins = 100;
54 minBin = 60.0;
55 maxBin = 120.0;
56 }
57 else if (doJ) {
58 nBins = 30;
59 minBin = 2.5;
60 maxBin = 3.5;
61 }
62 //resonance mass distributuioin
63 m_Mass = Book1D("m_"+type+"_Mass", "m_Mass: M_{"+name+"} Mass;Mass [GeV];", nBins, minBin, maxBin);
64 //resonance two muon distribution
65 m_occupancy = Book1D("m_"+type+"_occupancy", "m_occupancy: M_{"+name+"} Track Occupancy;;N_{#mu}", 8, 0.0, 8.0);
66 m_2occupancy = Book1D("m_"+type+"_2occupancy", "m_2occupancy: M_{"+name+"} Two Track Occupancy;;N_{#mu}", 16, 0.5, 16.5);
67
68 //resonance mass distribution in each mass range
69 m_M_EA_EA = Book1D("m_"+type+"_M_EA_EA", "m_M_EA_EAM_{"+name+"} EA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
70 m_M_EA_BA = Book1D("m_"+type+"_M_EA_BA", "m_M_EA_BAM_{"+name+"} EA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
71 m_M_EA_BC = Book1D("m_"+type+"_M_EA_BC", "m_M_EA_BCM_{"+name+"} EA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
72 m_M_EA_EC = Book1D("m_"+type+"_M_EA_EC", "m_M_EA_ECM_{"+name+"} EA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
73 m_M_BA_EA = Book1D("m_"+type+"_M_BA_EA", "m_M_BA_EAM_{"+name+"} BA_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
74 m_M_BA_BA = Book1D("m_"+type+"_M_BA_BA", "m_M_BA_BAM_{"+name+"} BA_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
75 m_M_BA_BC = Book1D("m_"+type+"_M_BA_BC", "m_M_BA_BCM_{"+name+"} BA_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
76 m_M_BA_EC = Book1D("m_"+type+"_M_BA_EC", "m_M_BA_ECM_{"+name+"} BA_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
77 m_M_BC_EA = Book1D("m_"+type+"_M_BC_EA", "m_M_BC_EAM_{"+name+"} BC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
78 m_M_BC_BA = Book1D("m_"+type+"_M_BC_BA", "m_M_BC_BAM_{"+name+"} BC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
79 m_M_BC_BC = Book1D("m_"+type+"_M_BC_BC", "m_M_BC_BCM_{"+name+"} BC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
80 m_M_BC_EC = Book1D("m_"+type+"_M_BC_EC", "m_M_BC_ECM_{"+name+"} BC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
81 m_M_EC_EA = Book1D("m_"+type+"_M_EC_EA", "m_M_EC_EAM_{"+name+"} EC_{+} - EA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
82 m_M_EC_BA = Book1D("m_"+type+"_M_EC_BA", "m_M_EC_BAM_{"+name+"} EC_{+} - BA_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
83 m_M_EC_BC = Book1D("m_"+type+"_M_EC_BC", "m_M_EC_BCM_{"+name+"} EC_{+} - BC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
84 m_M_EC_EC = Book1D("m_"+type+"_M_EC_EC", "m_M_EC_ECM_{"+name+"} EC_{+} - EC_{-}; M_{"+name+"}[GeV];", nBins, minBin, maxBin);
85 //for compare mass mean and sigma, done in post processing
86 m_M_Mean = Book1D("m_"+type+"_M_Mean", "m_M_Mean: M_{"+name+"} Mean;;M_{"+name+"}[GeV]", 16, 1.0, 17.0);
87 m_M_Sigma = Book1D("m_"+type+"_M_Sigma", "m_M_Sigma: #sigma(M_{"+name+"});;#sigma(M_{"+name+"})[GeV]", 16, 1.0, 17.0);
88
89 //label the plots
94}
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition PlotBase.cxx:94
bool LabelCombinedEtaRegions(TAxis *axis)
bool LabelLargeEtaRegions(TAxis *axis)

◆ LabelCombinedEtaRegions()

bool RecoPhysPlots::LabelCombinedEtaRegions ( TAxis * axis)

Definition at line 196 of file RecoPhysPlots.cxx.

197{
198 axis->SetBinLabel( 1, "EC-EC");
199 axis->SetBinLabel( 2, "EC-BC");
200 axis->SetBinLabel( 3, "EC-BA");
201 axis->SetBinLabel( 4, "EC-EA");
202 axis->SetBinLabel( 5, "BC-EC");
203 axis->SetBinLabel( 6, "BC-BC");
204 axis->SetBinLabel( 7, "BC-BA");
205 axis->SetBinLabel( 8, "BC-EA");
206 axis->SetBinLabel( 9, "BA-EC");
207 axis->SetBinLabel(10, "BA-BC");
208 axis->SetBinLabel(11, "BA-BA");
209 axis->SetBinLabel(12, "BA-EA");
210 axis->SetBinLabel(13, "EA-EC");
211 axis->SetBinLabel(14, "EA-BC");
212 axis->SetBinLabel(15, "EA-BA");
213 axis->SetBinLabel(16, "EA-EA");
214
215 axis->SetTitle("#eta Region Permutations [+#mu, -#mu]");
216
217 return true;
218}

◆ LabelLargeEtaRegions()

bool RecoPhysPlots::LabelLargeEtaRegions ( TAxis * axis)

Definition at line 181 of file RecoPhysPlots.cxx.

182{
183 axis->SetBinLabel(1, "CSC C");
184 axis->SetBinLabel(2, "EC C");
185 axis->SetBinLabel(3, "TRANS C");
186 axis->SetBinLabel(4, "BARR C");
187 axis->SetBinLabel(5, "BARR A");
188 axis->SetBinLabel(6, "TRANS A");
189 axis->SetBinLabel(7, "EC A");
190 axis->SetBinLabel(8," CSC A");
191 axis->SetTitle("Detector #eta Regions");
192
193 return true;
194}

◆ LabelSectorAxis()

bool RecoPhysPlots::LabelSectorAxis ( TAxis * axis)

Definition at line 220 of file RecoPhysPlots.cxx.

220 {
221
222 axis->SetTitle("#phi Sectors 1-16");
223 if(axis->GetNbins() == 16) axis->CenterLabels(kTRUE);
224
225 // Sector Axis Label Error, not a multiple of 16 bins
226 if(axis->GetNbins()%16){
227 return false;
228 }
229
230 int nSectorDevisions = axis->GetNbins()/16;
231 int skip_counter = 1;
232
233 axis->SetNdivisions(16,nSectorDevisions,0,kFALSE);
234
235
236 for (int i = 1; i <= axis->GetNbins(); i++) {
237
238 if (skip_counter == nSectorDevisions) {
239 axis->SetBinLabel(i,Form("%d",i/nSectorDevisions));
240 skip_counter = 1;
241 }else {
242 axis->SetBinLabel(i," ");
243 skip_counter++;
244 }
245
246 }
247
248 return true;
249}

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

Definition at line 41 of file PlotBase.h.

41{m_vSubNodes.push_back(pPlotBase);}

◆ retrieveBookedEfficiencies()

std::vector< EfficiencyData > PlotBase::retrieveBookedEfficiencies ( )
inherited

Retrieve all booked efficiency objects.

Definition at line 83 of file PlotBase.cxx.

83 {
84 std::vector<EfficiencyData> vBookedEfficiencies = m_vBookedEfficiencies;
85 for (const auto &subNode: m_vSubNodes) {
86 std::vector<EfficiencyData> subNodeHists = subNode->retrieveBookedEfficiencies();
87 vBookedEfficiencies.insert(vBookedEfficiencies.end(), subNodeHists.begin(), subNodeHists.end());
88 }
89 return vBookedEfficiencies;
90}

◆ retrieveBookedHistograms()

std::vector< HistData > PlotBase::retrieveBookedHistograms ( )
inherited

Retrieve all booked histograms.

Definition at line 63 of file PlotBase.cxx.

63 {
64 std::vector<HistData> vBookedHistograms = m_vBookedHistograms;
65 for (const auto &subNode: m_vSubNodes) {
66 std::vector<HistData> subNodeHists = subNode->retrieveBookedHistograms();
67 vBookedHistograms.insert(vBookedHistograms.end(), subNodeHists.begin(), subNodeHists.end());
68 }
69 return vBookedHistograms;
70}

◆ retrieveBookedTrees()

std::vector< TreeData > PlotBase::retrieveBookedTrees ( )
inherited

Retrieve all booked trees.

Definition at line 73 of file PlotBase.cxx.

73 {
74 std::vector<TreeData> vBookedTrees = m_vBookedTrees;
75 for (auto *subNode: m_vSubNodes) {
76 std::vector<TreeData> subNodeTrees = subNode->retrieveBookedTrees();
77 vBookedTrees.insert(vBookedTrees.end(), subNodeTrees.begin(), subNodeTrees.end());
78 }
79 return vBookedTrees;
80}

◆ setDetailLevel()

void PlotBase::setDetailLevel ( int iDetailLevel)
inherited

Definition at line 55 of file PlotBase.cxx.

55 {
56 for (auto *subNode: m_vSubNodes) {
57 subNode->setDetailLevel(iDetailLevel);
58 }
59 m_iDetailLevel = iDetailLevel;
60}
int m_iDetailLevel
Definition PlotBase.h:101

◆ SetResultsBin()

void RecoPhysPlots::SetResultsBin ( int iBin,
TH1 * pInputHist )
private

Definition at line 251 of file RecoPhysPlots.cxx.

251 {
252
253 m_M_Mean-> SetBinContent(iBin, pInputHist->GetMean(1));
254 m_M_Mean-> SetBinError( iBin, pInputHist->GetMeanError(1));
255 m_M_Sigma->SetBinContent(iBin, pInputHist->GetRMS(1));
256
257}

Member Data Documentation

◆ m_2occupancy

TH1* RecoPhysPlots::m_2occupancy

Definition at line 27 of file RecoPhysPlots.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_M_BA_BA

TH1* RecoPhysPlots::m_M_BA_BA

Definition at line 46 of file RecoPhysPlots.h.

◆ m_M_BA_BC

TH1* RecoPhysPlots::m_M_BA_BC

Definition at line 47 of file RecoPhysPlots.h.

◆ m_M_BA_EA

TH1* RecoPhysPlots::m_M_BA_EA

Definition at line 45 of file RecoPhysPlots.h.

◆ m_M_BA_EC

TH1* RecoPhysPlots::m_M_BA_EC

Definition at line 48 of file RecoPhysPlots.h.

◆ m_M_BC_BA

TH1* RecoPhysPlots::m_M_BC_BA

Definition at line 51 of file RecoPhysPlots.h.

◆ m_M_BC_BC

TH1* RecoPhysPlots::m_M_BC_BC

Definition at line 52 of file RecoPhysPlots.h.

◆ m_M_BC_EA

TH1* RecoPhysPlots::m_M_BC_EA

Definition at line 50 of file RecoPhysPlots.h.

◆ m_M_BC_EC

TH1* RecoPhysPlots::m_M_BC_EC

Definition at line 53 of file RecoPhysPlots.h.

◆ m_M_EA_BA

TH1* RecoPhysPlots::m_M_EA_BA

Definition at line 41 of file RecoPhysPlots.h.

◆ m_M_EA_BC

TH1* RecoPhysPlots::m_M_EA_BC

Definition at line 42 of file RecoPhysPlots.h.

◆ m_M_EA_EA

TH1* RecoPhysPlots::m_M_EA_EA

Definition at line 40 of file RecoPhysPlots.h.

◆ m_M_EA_EC

TH1* RecoPhysPlots::m_M_EA_EC

Definition at line 43 of file RecoPhysPlots.h.

◆ m_M_EC_BA

TH1* RecoPhysPlots::m_M_EC_BA

Definition at line 56 of file RecoPhysPlots.h.

◆ m_M_EC_BC

TH1* RecoPhysPlots::m_M_EC_BC

Definition at line 57 of file RecoPhysPlots.h.

◆ m_M_EC_EA

TH1* RecoPhysPlots::m_M_EC_EA

Definition at line 55 of file RecoPhysPlots.h.

◆ m_M_EC_EC

TH1* RecoPhysPlots::m_M_EC_EC

Definition at line 58 of file RecoPhysPlots.h.

◆ m_M_Mean

TH1* RecoPhysPlots::m_M_Mean

Definition at line 37 of file RecoPhysPlots.h.

◆ m_M_Sigma

TH1* RecoPhysPlots::m_M_Sigma

Definition at line 38 of file RecoPhysPlots.h.

◆ m_Mass

TH1* RecoPhysPlots::m_Mass

Definition at line 25 of file RecoPhysPlots.h.

◆ m_occupancy

TH1* RecoPhysPlots::m_occupancy

Definition at line 26 of file RecoPhysPlots.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_vBookedEfficiencies

std::vector<EfficiencyData> PlotBase::m_vBookedEfficiencies
protectedinherited

Definition at line 99 of file PlotBase.h.

◆ m_vBookedHistograms

std::vector<HistData> PlotBase::m_vBookedHistograms
protectedinherited

Definition at line 97 of file PlotBase.h.

◆ m_vBookedTrees

std::vector<TreeData> PlotBase::m_vBookedTrees
protectedinherited

Definition at line 98 of file PlotBase.h.

◆ m_vSubNodes

std::vector<PlotBase*> PlotBase::m_vSubNodes
protectedinherited

Definition at line 96 of file PlotBase.h.

◆ type

std::string RecoPhysPlots::type

Definition at line 60 of file RecoPhysPlots.h.


The documentation for this class was generated from the following files: