ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::MuonParamElossPlots Class Reference

#include <MuonParamElossPlots.h>

Inheritance diagram for Muon::MuonParamElossPlots:
Collaboration diagram for Muon::MuonParamElossPlots:

Public Member Functions

 MuonParamElossPlots (PlotBase *pParent, const std::string &sDir)
void fill (const xAOD::TruthParticle &truthMu, const xAOD::Muon &mu, float weight=1.0)
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 * msInnerMatchChi2 {nullptr}
TH1 * msOuterMatchChi2 {nullptr}
TH1 * ELoss {nullptr}
TH1 * ELossDiffTruth {nullptr}
TH1 * ELossDiffTruthEta0_1p35 {nullptr}
TH1 * ELossDiffTruthEta1p35_1p55 {nullptr}
TH1 * ELossDiffTruthEta1p55_end {nullptr}
TH1 * ELossSigma {nullptr}
TH1 * paramELoss {nullptr}
TH1 * paramELossDiff {nullptr}
TH1 * paramELossDiffTruth {nullptr}
TH1 * paramELossDiffTruthEta0_1p35 {nullptr}
TH1 * paramELossDiffTruthEta1p35_1p55 {nullptr}
TH1 * paramELossDiffTruthEta1p55_end {nullptr}
TH1 * measELoss {nullptr}
TH1 * measELossDiff {nullptr}
TH1 * measELossDiffTruth {nullptr}
TH1 * measELossDiffTruthEta0_1p35 {nullptr}
TH1 * measELossDiffTruthEta1p35_1p55 {nullptr}
TH1 * measELossDiffTruthEta1p55_end {nullptr}
TH1 * ELossType {nullptr}
TH1 * ELossTypeParametrPt {nullptr}
TH1 * ELossTypeNotIsoPt {nullptr}
TH1 * ELossTypeTailPt {nullptr}
TH1 * ELossTypeAllPt {nullptr}

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 initializePlots ()
void FillPlot (TH1 *hist, const xAOD::Muon &mu, const xAOD::Muon::ParamDef paramDef, float scale=1, float weight=1.0)
void FillPlot (TH1 *hist, TH1 *hist_DiffTruth, TH1 *hist_DiffTruthEta0_1p35, TH1 *hist_DiffTruthEta1p35_1p55, TH1 *hist_DiffTruthEta1p55_endd, const xAOD::TruthParticle &truthMu, const xAOD::Muon &mu, const xAOD::Muon::ParamDef paramDef, float scale=1, float weight=1.0)
void FillPlotELossType (TH1 *hist, const xAOD::Muon &mu, float scale=1, float weight=1.0)
void FillPlotELossType (TH1 *hist, const xAOD::Muon &mu, xAOD::Muon::EnergyLossType type, float scale=1, float weight=1.0)
virtual void finalizePlots ()

Static Private Member Functions

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

Detailed Description

Definition at line 15 of file MuonParamElossPlots.h.

Constructor & Destructor Documentation

◆ MuonParamElossPlots()

Muon::MuonParamElossPlots::MuonParamElossPlots ( PlotBase * pParent,
const std::string & sDir )

Definition at line 11 of file MuonParamElossPlots.cxx.

11:PlotBase(pParent, sDir) {}
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29

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}

◆ fill()

void Muon::MuonParamElossPlots::fill ( const xAOD::TruthParticle & truthMu,
const xAOD::Muon & mu,
float weight = 1.0 )

Definition at line 46 of file MuonParamElossPlots.cxx.

47{
48 FillPlot(msInnerMatchChi2,mu,xAOD::Muon::msInnerMatchChi2,weight);
49 FillPlot(msOuterMatchChi2,mu,xAOD::Muon::msOuterMatchChi2, weight);
50#ifndef XAOD_ANALYSIS
53 FillPlot(ELossSigma,mu,xAOD::Muon::EnergyLossSigma,0.001,weight);
55 FillPlotELossType(ELossType,mu,0.001,weight);
56 FillPlotELossType(ELossTypeNotIsoPt,mu,xAOD::Muon::NotIsolated,0.001,weight);
57 FillPlotELossType(ELossTypeParametrPt,mu,xAOD::Muon::Parametrized,0.001,weight);
58 FillPlotELossType(ELossTypeTailPt,mu,xAOD::Muon::Tail,0.001,weight);
59#endif // not XAOD_ANALYSIS
60}
void FillPlotELossType(TH1 *hist, const xAOD::Muon &mu, float scale=1, float weight=1.0)
void FillPlot(TH1 *hist, const xAOD::Muon &mu, const xAOD::Muon::ParamDef paramDef, float scale=1, float weight=1.0)

◆ FillPlot() [1/2]

void Muon::MuonParamElossPlots::FillPlot ( TH1 * hist,
const xAOD::Muon & mu,
const xAOD::Muon::ParamDef paramDef,
float scale = 1,
float weight = 1.0 )
private

Definition at line 61 of file MuonParamElossPlots.cxx.

61 {
62 if (mu.author()==xAOD::Muon::CaloTag || mu.author()==xAOD::Muon::CaloLikelihood || mu.author()==xAOD::Muon::ExtrapolateMuonToIP) return; //protection
63 float fpar = 0;
64 static const SG::ConstAccessor<float> elossAcc ("EnergyLoss");
65 if (elossAcc.isAvailable(mu)) {
66 if (mu.parameter(fpar, paramDef))
67 hist->Fill(scale*fpar,weight); //scale to GeV, if needed
68 }
69 return;
70}

◆ FillPlot() [2/2]

void Muon::MuonParamElossPlots::FillPlot ( TH1 * hist,
TH1 * hist_DiffTruth,
TH1 * hist_DiffTruthEta0_1p35,
TH1 * hist_DiffTruthEta1p35_1p55,
TH1 * hist_DiffTruthEta1p55_endd,
const xAOD::TruthParticle & truthMu,
const xAOD::Muon & mu,
const xAOD::Muon::ParamDef paramDef,
float scale = 1,
float weight = 1.0 )
private

Definition at line 71 of file MuonParamElossPlots.cxx.

71 {
72 if (mu.author()==xAOD::Muon::CaloTag || mu.author()==xAOD::Muon::CaloLikelihood || mu.author()==xAOD::Muon::ExtrapolateMuonToIP) return; //protection
73 float fpar = 0;
74 static const SG::ConstAccessor<float> elossAcc("EnergyLoss");
75 if (elossAcc.isAvailable(mu)) {
76 if (mu.parameter(fpar, paramDef))
77 hist->Fill(scale*fpar,weight); //scale to GeV, if needed
78
79 //get true energy loss
80 static const SG::ConstAccessor<float> pxAcc("px");
81 static const SG::ConstAccessor<float> pyAcc("py");
82 static const SG::ConstAccessor<float> pzAcc("pz");
83 static const SG::ConstAccessor<float> muonEnt_pxAcc("MuonEntryLayer_px");
84 static const SG::ConstAccessor<float> muonEnt_pyAcc("MuonEntryLayer_py");
85 static const SG::ConstAccessor<float> muonEnt_pzAcc("MuonEntryLayer_pz");
86 if (!pxAcc.isAvailable(truthprt) ||
87 !pyAcc.isAvailable(truthprt) ||
88 !pzAcc.isAvailable(truthprt) ||
89 !muonEnt_pxAcc.isAvailable(truthprt) ||
90 !muonEnt_pyAcc.isAvailable(truthprt) ||
91 !muonEnt_pzAcc.isAvailable(truthprt)) return;
92
93 //workaround for missing caloentry
94 Amg::Vector3D vecCaloEntry{pxAcc(truthprt),
95 pyAcc(truthprt),
96 pzAcc(truthprt)};
97
98 Amg::Vector3D vecMuonExit{muonEnt_pxAcc(truthprt),
99 muonEnt_pyAcc(truthprt),
100 muonEnt_pzAcc(truthprt)};
101 float dpTruth=vecCaloEntry.mag()-vecMuonExit.mag();
102 hist_DiffTruth->Fill(scale*(fpar-dpTruth),weight); //scale to GeV, if needed
103 //again in eta ranges
104 if (std::abs(mu.eta())<1.35) hist_DiffTruthEta0_1p35->Fill(scale*(fpar-dpTruth),weight);
105 else {
106 if (std::abs(mu.eta())<1.55) hist_DiffTruthEta1p35_1p55->Fill(scale*(fpar-dpTruth),weight);
107 else hist_DiffTruthEta1p55_end->Fill(scale*(fpar-dpTruth),weight);
108 }
109 }
110 return;
111}
Eigen::Matrix< double, 3, 1 > Vector3D

◆ FillPlotELossType() [1/2]

void Muon::MuonParamElossPlots::FillPlotELossType ( TH1 * hist,
const xAOD::Muon & mu,
float scale = 1,
float weight = 1.0 )
private

Definition at line 112 of file MuonParamElossPlots.cxx.

112 {
113 if (mu.author()==xAOD::Muon::CaloTag || mu.author()==xAOD::Muon::CaloLikelihood || mu.author()==xAOD::Muon::ExtrapolateMuonToIP) return; //protection
114 static const SG::ConstAccessor<float> elossAcc("EnergyLoss");
115 if (elossAcc.isAvailable(mu)) {
116 hist->Fill(mu.energyLossType(), weight);
117 ELossTypeAllPt->Fill(mu.pt()*scale, weight);
118 float used=0;
119 float meas=-100000;
120 float param=-100000;
121 if (mu.parameter(used, xAOD::Muon::EnergyLoss) && mu.parameter(param, xAOD::Muon::ParamEnergyLoss) && mu.parameter(meas, xAOD::Muon::MeasEnergyLoss ) ){
122 //fill diff plots
123 if (mu.energyLossType()==xAOD::Muon::Parametrized){
124 paramELossDiff->Fill((param-used)*scale, weight);
125 }
126 if (mu.energyLossType()==xAOD::Muon::Tail){
127 measELossDiff->Fill((meas-used)*scale, weight);
128 }
129 }
130 }
131 return;
132}

◆ FillPlotELossType() [2/2]

void Muon::MuonParamElossPlots::FillPlotELossType ( TH1 * hist,
const xAOD::Muon & mu,
xAOD::Muon::EnergyLossType type,
float scale = 1,
float weight = 1.0 )
private

Definition at line 133 of file MuonParamElossPlots.cxx.

133 {
134 if (mu.author()==xAOD::Muon::CaloTag || mu.author()==xAOD::Muon::CaloLikelihood || mu.author()==xAOD::Muon::ExtrapolateMuonToIP) return; //protection
135 static const SG::ConstAccessor<float> elossAcc("EnergyLoss");
136 if (elossAcc.isAvailable(mu)) {
137 if (mu.energyLossType()==type) hist->Fill(mu.pt()*scale,weight); //scale to GeV, if needed
138 }
139 return;
140}

◆ 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()

◆ 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 Muon::MuonParamElossPlots::initializePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 13 of file MuonParamElossPlots.cxx.

14{
15 msInnerMatchChi2 = Book1D("msInnerMatchChi2","inner match #chi^{2};inner match #chi^{2};;Entries",100,0.,100.);
16 msOuterMatchChi2 = Book1D("msOuterMatchChi2","outer match #chi^{2};outer match #chi^{2};;Entries",100,0.,100.);
17
18 ELoss = Book1D("ELoss","ELoss;ELoss [GeV];Entries",50,0,10);
19 ELossDiffTruth = Book1D("ELossDiffTruth","Difference ELoss to truth ELoss);#Delta(fitted - truth) [GeV];Entries",100,-10.,10.);
20 ELossDiffTruthEta0_1p35 = Book1D("ELossDiffTruthEta0_1p35","Difference ELoss to truth ELoss for 0<|#eta|<1.35;#Delta(fitted - truth) [GeV];Entries",100,-10.,10.);
21 ELossDiffTruthEta1p35_1p55 = Book1D("ELossDiffTruthEta1p35_1p55","Difference ELoss to truth ELoss for 1.35<|#eta|<1.55;#Delta(fitted - truth) [GeV];Entries",100,-10.,10.);
22 ELossDiffTruthEta1p55_end = Book1D("ELossDiffTruthEta1p55_end","Difference ELoss to truth ELoss for 1.55<|#eta|;#Delta(fitted - truth) [GeV];Entries",100,-10.,10.);
23 ELossSigma = Book1D("ELossSigma","ELossSigma;ELossSgima [GeV];Entries",50,0,5);
24
25 paramELoss = Book1D("paramELoss","paramELoss;paramELoss [GeV];Entries",50,0,10);
26 paramELossDiff = Book1D("paramELossDiff","Difference paramELoss to fitted ELoss;#Delta(param-fitted) [GeV];Entries",100,-3.,1.);
27 paramELossDiffTruth = Book1D("paramELossDiffTruth","Difference paramELoss to truth ELoss;#Delta(param-truth) [GeV];Entries",100,-10.,10.);
28 paramELossDiffTruthEta0_1p35 = Book1D("paramELossDiffTruthEta0_1p35","Difference paramELoss to truth ELoss for 0<|#eta|<1.35;#Delta(param-truth) [GeV];Entries",100,-10.,10.);
29 paramELossDiffTruthEta1p35_1p55 = Book1D("paramELossDiffTruthEta1p35_1p55","Difference paramELoss to truth ELoss for 1.35<|#eta|<1.55;#Delta(param-truth) [GeV];Entries",100,-10.,10.);
30 paramELossDiffTruthEta1p55_end = Book1D("paramELossDiffTruthhEta1p55_end","Difference paramELoss to truth ELoss for 1.55<|#eta|;#Delta(param-truth) [GeV];Entries",100,-10.,10.);
31
32 measELoss = Book1D("measELoss","measELoss;measELoss [GeV];Entries",50,0,10);
33 measELossDiff = Book1D("measELossDiff","Difference measELoss to fitted ELoss);#Delta(meas- fitted) [GeV];Entries",100,-3.,1.);
34 measELossDiffTruth = Book1D("measELossDiffTruth","Difference measELoss to truth ELoss);#Delta(meas- truth) [GeV];Entries",100,-10.,10.);
35 measELossDiffTruthEta0_1p35 = Book1D("measELossDiffTruthEta0_1p35","Difference measELoss to truth ELoss for 0<|#eta|<1.35;#Delta(meas- truth) [GeV];Entries",100,-10.,10.);
36 measELossDiffTruthEta1p35_1p55 = Book1D("measELossDiffTruthEta1p35_1p55","Difference measELoss to truth ELoss for 1.35<|#eta|<1.55;#Delta(meas- truth) [GeV];Entries",100,-10.,10.);
37 measELossDiffTruthEta1p55_end = Book1D("measELossDiffTruthEta1p55_end","Difference measELoss to truth ELoss for 1.55<|#eta|;#Delta(meas- truth) [GeV];Entries",100,-10.,10.);
38
39 ELossType = Book1D("ELossType","ELossType;Type;Entries",5,-0.5,4.5);
40 ELossTypeParametrPt = Book1D("ELossTypeParametrPt","ELossType:Parametrized Pt;Pt [GeV];Entries",50,0,500);
41 ELossTypeNotIsoPt = Book1D("ELossTypeNotIsoPt","ELossType:NotIsolated Pt;Pt [GeV];Entries",50,0,500);
42 ELossTypeTailPt = Book1D("ELossTypeTailPt","ELossType:Tail Pt;Pt [GeV];Entries",50,0,500);
43 ELossTypeAllPt = Book1D("ELossTypeAllPt","All ELossTypes Pt;Pt [GeV];Entries",50,0,500);
44}
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

◆ 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

Member Data Documentation

◆ ELoss

TH1* Muon::MuonParamElossPlots::ELoss {nullptr}

Definition at line 24 of file MuonParamElossPlots.h.

24{nullptr};

◆ ELossDiffTruth

TH1* Muon::MuonParamElossPlots::ELossDiffTruth {nullptr}

Definition at line 25 of file MuonParamElossPlots.h.

25{nullptr};

◆ ELossDiffTruthEta0_1p35

TH1* Muon::MuonParamElossPlots::ELossDiffTruthEta0_1p35 {nullptr}

Definition at line 26 of file MuonParamElossPlots.h.

26{nullptr};

◆ ELossDiffTruthEta1p35_1p55

TH1* Muon::MuonParamElossPlots::ELossDiffTruthEta1p35_1p55 {nullptr}

Definition at line 27 of file MuonParamElossPlots.h.

27{nullptr};

◆ ELossDiffTruthEta1p55_end

TH1* Muon::MuonParamElossPlots::ELossDiffTruthEta1p55_end {nullptr}

Definition at line 28 of file MuonParamElossPlots.h.

28{nullptr};

◆ ELossSigma

TH1* Muon::MuonParamElossPlots::ELossSigma {nullptr}

Definition at line 29 of file MuonParamElossPlots.h.

29{nullptr};

◆ ELossType

TH1* Muon::MuonParamElossPlots::ELossType {nullptr}

Definition at line 42 of file MuonParamElossPlots.h.

42{nullptr};

◆ ELossTypeAllPt

TH1* Muon::MuonParamElossPlots::ELossTypeAllPt {nullptr}

Definition at line 46 of file MuonParamElossPlots.h.

46{nullptr};

◆ ELossTypeNotIsoPt

TH1* Muon::MuonParamElossPlots::ELossTypeNotIsoPt {nullptr}

Definition at line 44 of file MuonParamElossPlots.h.

44{nullptr};

◆ ELossTypeParametrPt

TH1* Muon::MuonParamElossPlots::ELossTypeParametrPt {nullptr}

Definition at line 43 of file MuonParamElossPlots.h.

43{nullptr};

◆ ELossTypeTailPt

TH1* Muon::MuonParamElossPlots::ELossTypeTailPt {nullptr}

Definition at line 45 of file MuonParamElossPlots.h.

45{nullptr};

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 101 of file PlotBase.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.

◆ measELoss

TH1* Muon::MuonParamElossPlots::measELoss {nullptr}

Definition at line 36 of file MuonParamElossPlots.h.

36{nullptr};

◆ measELossDiff

TH1* Muon::MuonParamElossPlots::measELossDiff {nullptr}

Definition at line 37 of file MuonParamElossPlots.h.

37{nullptr};

◆ measELossDiffTruth

TH1* Muon::MuonParamElossPlots::measELossDiffTruth {nullptr}

Definition at line 38 of file MuonParamElossPlots.h.

38{nullptr};

◆ measELossDiffTruthEta0_1p35

TH1* Muon::MuonParamElossPlots::measELossDiffTruthEta0_1p35 {nullptr}

Definition at line 39 of file MuonParamElossPlots.h.

39{nullptr};

◆ measELossDiffTruthEta1p35_1p55

TH1* Muon::MuonParamElossPlots::measELossDiffTruthEta1p35_1p55 {nullptr}

Definition at line 40 of file MuonParamElossPlots.h.

40{nullptr};

◆ measELossDiffTruthEta1p55_end

TH1* Muon::MuonParamElossPlots::measELossDiffTruthEta1p55_end {nullptr}

Definition at line 41 of file MuonParamElossPlots.h.

41{nullptr};

◆ msInnerMatchChi2

TH1* Muon::MuonParamElossPlots::msInnerMatchChi2 {nullptr}

Definition at line 21 of file MuonParamElossPlots.h.

21{nullptr};

◆ msOuterMatchChi2

TH1* Muon::MuonParamElossPlots::msOuterMatchChi2 {nullptr}

Definition at line 22 of file MuonParamElossPlots.h.

22{nullptr};

◆ paramELoss

TH1* Muon::MuonParamElossPlots::paramELoss {nullptr}

Definition at line 30 of file MuonParamElossPlots.h.

30{nullptr};

◆ paramELossDiff

TH1* Muon::MuonParamElossPlots::paramELossDiff {nullptr}

Definition at line 31 of file MuonParamElossPlots.h.

31{nullptr};

◆ paramELossDiffTruth

TH1* Muon::MuonParamElossPlots::paramELossDiffTruth {nullptr}

Definition at line 32 of file MuonParamElossPlots.h.

32{nullptr};

◆ paramELossDiffTruthEta0_1p35

TH1* Muon::MuonParamElossPlots::paramELossDiffTruthEta0_1p35 {nullptr}

Definition at line 33 of file MuonParamElossPlots.h.

33{nullptr};

◆ paramELossDiffTruthEta1p35_1p55

TH1* Muon::MuonParamElossPlots::paramELossDiffTruthEta1p35_1p55 {nullptr}

Definition at line 34 of file MuonParamElossPlots.h.

34{nullptr};

◆ paramELossDiffTruthEta1p55_end

TH1* Muon::MuonParamElossPlots::paramELossDiffTruthEta1p55_end {nullptr}

Definition at line 35 of file MuonParamElossPlots.h.

35{nullptr};

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