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

#include <InDetPerfPlot_TrkInJet.h>

Inheritance diagram for InDetPerfPlot_TrkInJet:
Collaboration diagram for InDetPerfPlot_TrkInJet:

Public Member Functions

 InDetPerfPlot_TrkInJet (InDetPlotBase *pParent, const std::string &sDir, bool bookFakeAndEff=true)
void fill (const xAOD::TrackParticle &trk, const xAOD::Jet &jet, float weight=1.0)
void fillEfficiency (const xAOD::TruthParticle &trk, const xAOD::Jet &jet, const bool isEfficient, float weight)
void fillFakeRate (const xAOD::TrackParticle &trk, const xAOD::Jet &jet, const bool isFake, float weight)
void fillTruth (const xAOD::TruthParticle &truth, const xAOD::Jet &jet, float weight)
SingleHistogramDefinition retrieveDefinition (const std::string &histoIdentifier, const std::string &folder="default", const std::string &nameOverride="")
 Retrieve a single histogram definition, given the unique string identifier.
template<class Htype>
void book (Htype *&pHisto, const std::string &histoIdentifier, const std::string &nameOverride="", const std::string &folder="default")
 Helper method to book histograms using an identifier string.
void book (TH1 *&pHisto, const SingleHistogramDefinition &hd)
 Book a TH1 histogram.
void book (TProfile *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile histogram.
void book (TProfile2D *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile2D histogram.
void book (TH2 *&pHisto, const SingleHistogramDefinition &hd)
 Book a 2D histogram (TH2)
void book (TEfficiency *&pHisto, const SingleHistogramDefinition &hd)
 Book a (1-D) TEfficiency.
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 ()
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.
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.

Static Public Member Functions

static void fillHisto (TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
static void fillHisto (TProfile2D *pTprofile, const float xval, const float yval, const float weight, const float weight2=1.0)
static void fillHisto (TH1 *pTh1, const float value)
static void fillHisto (TH1 *pTh1, const float value, const float weight)
static void fillHisto (TH2 *pTh2, const float xval, const float yval)
static void fillHisto (TH2 *pTh2, const float xval, const float yval, const float weight)
static void fillHisto (TH3 *pTh3, const float xval, const float yval, const float zval)
static void fillHisto (TEfficiency *pTeff, const float value, const bool accepted, float weight)
static void fillHisto (TEfficiency *eff2d, const float xvalue, const float yvalue, const bool accepted, const float weight)

Protected Member Functions

template<class T>
void mBook (T &pHisto, const std::string &histoIdentifier)
 book, for use by macro

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 ()
virtual void finalizePlots ()
void initMessaging () const
 Initialize our message level and MessageSvc.

Static Private Member Functions

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

Private Attributes

TProfile * m_nInnerMostPixelHits_vs_dR {}
TProfile * m_nNextToInnerMostPixelHits_vs_dR {}
TProfile * m_nPixelHits_vs_dR {}
TProfile * m_nSCTHits_vs_dR {}
TProfile * m_nTRTHits_vs_dR {}
TProfile * m_nPixelHoles_vs_dR {}
TProfile * m_nSCTHoles_vs_dR {}
TProfile * m_nTRTHighThresholdHits_vs_dR {}
TProfile * m_nInnerMostPixelOutliers_vs_dR {}
TProfile * m_nInnerMostPixelSharedHits_vs_dR {}
TProfile * m_nInnerMostPixelSplitHits_vs_dR {}
TProfile * m_nExpectedInnerMostPixelHits_vs_dR {}
TProfile * m_nExpectedNextToInnerMostPixelHits_vs_dR {}
TProfile * m_nPixelOutliers_vs_dR {}
TProfile * m_nPixelContribLayers_vs_dR {}
TProfile * m_nPixelSharedHits_vs_dR {}
TProfile * m_nPixelSplitHits_vs_dR {}
TProfile * m_nPixelGangedHits_vs_dR {}
TProfile * m_nPixelGangedHitsFlaggedFakes_vs_dR {}
TProfile * m_nSCTOutliers_vs_dR {}
TProfile * m_nSCTDoubleHoles_vs_dR {}
TProfile * m_nSCTSharedHits_vs_dR {}
TProfile * m_nTRTOutliers_vs_dR {}
TProfile * m_nTRTHighThresholdOutliers_vs_dR {}
TProfile * m_nPixelDeadSensors_vs_dR {}
TProfile * m_nSCTDeadSensors_vs_dR {}
TProfile * m_reco_d0_vs_dR {}
TProfile * m_reco_z0_vs_dR {}
TProfile * m_reco_z0sin_vs_dR {}
TProfile * m_reco_phi_vs_dR {}
TProfile * m_reco_theta_vs_dR {}
TProfile * m_reco_eta_vs_dR {}
TProfile * m_reco_pt_vs_dR {}
TProfile * m_reco_lowpt_vs_dR {}
TProfile * m_reco_track_pt_vs_jet_pt {}
TProfile * m_reco_chi2Overndof_vs_dR {}
TEfficiency * m_efficiency_vs_dR {}
TEfficiency * m_efficiency_vs_smalldR {}
TEfficiency * m_efficiency_vs_jetpT {}
TEfficiency * m_fakerate_vs_dR {}
TEfficiency * m_fakerate_vs_smalldR {}
TEfficiency * m_fakerate_vs_jetpT {}
TProfile * m_truth_track_phi_vs_dR {}
TProfile * m_truth_track_eta_vs_dR {}
TProfile * m_truth_track_pt_vs_dR {}
TProfile * m_truth_track_pt_vs_jet_pt {}
bool m_doFakeAndEff
ServiceHandle< IHistogramDefinitionSvcm_histoDefSvc
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Detailed Description

Definition at line 15 of file InDetPerfPlot_TrkInJet.h.

Constructor & Destructor Documentation

◆ InDetPerfPlot_TrkInJet()

InDetPerfPlot_TrkInJet::InDetPerfPlot_TrkInJet ( InDetPlotBase * pParent,
const std::string & sDir,
bool bookFakeAndEff = true )

Definition at line 22 of file InDetPerfPlot_TrkInJet.cxx.

22 :
23 InDetPlotBase(pParent, sDir),
24 m_doFakeAndEff(bookFakeAndEff) {}
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.

Member Function Documentation

◆ book() [1/6]

template<class Htype>
void InDetPlotBase::book ( Htype *& pHisto,
const std::string & histoIdentifier,
const std::string & nameOverride = "",
const std::string & folder = "default" )
inherited

Helper method to book histograms using an identifier string.

Parameters
pHistoPointer to the histogram to be booked (assumed to be initialized to nullptr)
histoIdentifierIdentifier (looked up in the XML file)
nameOverrideAllows to override the histo name w.r.t the identifier. Leave empty for no override. This can be used to instantiate multiple, identically binned plots from a single entry in the XML.
folderFolder to place the plot (if any)

◆ book() [2/6]

void InDetPlotBase::book ( TEfficiency *& pHisto,
const SingleHistogramDefinition & hd )
inherited

Book a (1-D) TEfficiency.

Definition at line 71 of file InDetPlotBase.cxx.

71 {
72 if (hd.isValid()) {
73 if(hd.nBinsY==0) {
74 pHisto = BookTEfficiency(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, false);
75 } else {
76 pHisto = BookTEfficiency(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first, hd.yAxis.second, false);
77 }
78 }
79 }
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.
Definition PlotBase.cxx:257
bool isValid() const
Is the histogram definition valid.
IHistogramDefinitionSvc::axesLimits_t xAxis
IHistogramDefinitionSvc::axesLimits_t yAxis

◆ book() [3/6]

void InDetPlotBase::book ( TH1 *& pHisto,
const SingleHistogramDefinition & hd )
inherited

Book a TH1 histogram.

Definition at line 43 of file InDetPlotBase.cxx.

43 {
44 if (hd.isValid()) {
45 pHisto = Book1D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, false);
46 }
47 }
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

◆ book() [4/6]

void InDetPlotBase::book ( TH2 *& pHisto,
const SingleHistogramDefinition & hd )
inherited

Book a 2D histogram (TH2)

Definition at line 63 of file InDetPlotBase.cxx.

63 {
64 if (hd.isValid()) {
65 pHisto = Book2D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first,
66 hd.yAxis.second, false);
67 }
68 }
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

◆ book() [5/6]

void InDetPlotBase::book ( TProfile *& pHisto,
const SingleHistogramDefinition & hd )
inherited

Book a TProfile histogram.

Definition at line 49 of file InDetPlotBase.cxx.

49 {
50 if (hd.isValid()) {
51 pHisto = BookTProfile(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.yAxis.first,
52 hd.yAxis.second, false);
53 }
54 }
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.
Definition PlotBase.cxx:186

◆ book() [6/6]

void InDetPlotBase::book ( TProfile2D *& pHisto,
const SingleHistogramDefinition & hd )
inherited

Book a TProfile2D histogram.

Definition at line 56 of file InDetPlotBase.cxx.

56 {
57 if (hd.isValid()) {
58 pHisto = BookTProfile2D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first,
59 hd.yAxis.second, false);
60 }
61 }
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.
Definition PlotBase.cxx:231

◆ 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}

◆ 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 InDetPerfPlot_TrkInJet::fill ( const xAOD::TrackParticle & trk,
const xAOD::Jet & jet,
float weight = 1.0 )

Definition at line 91 of file InDetPerfPlot_TrkInJet.cxx.

91 {
92
93 float dR = jet.p4().DeltaR(trk.p4());
94
95 uint8_t iInnerMostPixelHits(0), iNextToInnerMostPixelHits(0), iPixHits(0), iSctHits(0), iTrtHits(0);
96 uint8_t iPixHoles(0), iSCTHoles(0), iTrtHTHits(0);
97 if (trk.summaryValue(iInnerMostPixelHits, xAOD::numberOfInnermostPixelLayerHits)) {
98 fillHisto(m_nInnerMostPixelHits_vs_dR, dR, iInnerMostPixelHits,weight);
99 }
100 if (trk.summaryValue(iNextToInnerMostPixelHits, xAOD::numberOfNextToInnermostPixelLayerHits)) {
101 fillHisto(m_nNextToInnerMostPixelHits_vs_dR, dR, iNextToInnerMostPixelHits,weight);
102 }
103 if (trk.summaryValue(iPixHits, xAOD::numberOfPixelHits)) {
104 fillHisto(m_nPixelHits_vs_dR, dR, iPixHits,weight);
105 }
106 if (trk.summaryValue(iSctHits, xAOD::numberOfSCTHits)) {
107 fillHisto(m_nSCTHits_vs_dR, dR, iSctHits,weight);
108 }
109 if (trk.summaryValue(iTrtHits, xAOD::numberOfTRTHits)) {
110 fillHisto(m_nTRTHits_vs_dR, dR, iTrtHits,weight);
111 }
112 if (trk.summaryValue(iPixHoles, xAOD::numberOfPixelHoles)) {
113 fillHisto(m_nPixelHoles_vs_dR, dR, iPixHoles,weight);
114 }
115 if (trk.summaryValue(iSCTHoles, xAOD::numberOfSCTHoles)) {
116 fillHisto(m_nSCTHoles_vs_dR, dR, iSCTHoles,weight);
117 }
119 fillHisto(m_nTRTHighThresholdHits_vs_dR, dR, iTrtHTHits,weight);
120 }
121 // expert plots
122 if (m_iDetailLevel >= 100) {
123 uint8_t iInnerMostPixelOutliers(0), iInnerMostPixelShared(0), iInnerMostPixelSplit(0);
124 uint8_t iExpectedInnerMostPixelHits(0), iExpectedNextToInnerMostPixelHits(0);
125 uint8_t iPixelOutliers(0), iPixelContribLayers(0), iPixelShared(0), iPixelSplit(0), iPixelGanged(0), iPixelGangedFakes(0);
126 uint8_t iSCTOutliers(0), iSCTDoubleHoles(0), iSCTShared(0);
127 uint8_t iTRTOutliers(0), iTRTHTOutliers(0);
128 uint8_t iPixelDeadSensors(0), iSCTDeadSensors(0);
129
130 if (trk.summaryValue(iInnerMostPixelOutliers, xAOD::numberOfInnermostPixelLayerOutliers)) {
131 fillHisto(m_nInnerMostPixelOutliers_vs_dR, dR, iInnerMostPixelOutliers,weight);
132 }
133 if (trk.summaryValue(iInnerMostPixelShared, xAOD::numberOfInnermostPixelLayerSharedHits)) {
134 fillHisto(m_nInnerMostPixelSharedHits_vs_dR, dR, iInnerMostPixelShared,weight);
135 }
136 if (trk.summaryValue(iInnerMostPixelSplit, xAOD::numberOfInnermostPixelLayerSplitHits)) {
137 fillHisto(m_nInnerMostPixelSplitHits_vs_dR, dR, iInnerMostPixelSplit,weight);
138 }
139 if (trk.summaryValue(iExpectedInnerMostPixelHits, xAOD::expectInnermostPixelLayerHit)) {
140 fillHisto(m_nExpectedInnerMostPixelHits_vs_dR, dR, iExpectedInnerMostPixelHits,weight);
141 }
142 if (trk.summaryValue(iExpectedNextToInnerMostPixelHits, xAOD::expectNextToInnermostPixelLayerHit)) {
143 fillHisto(m_nExpectedNextToInnerMostPixelHits_vs_dR, dR, iExpectedNextToInnerMostPixelHits,weight);
144 }
145 if (trk.summaryValue(iPixelOutliers, xAOD::numberOfPixelOutliers)) {
146 fillHisto(m_nPixelOutliers_vs_dR, dR, iPixelOutliers, weight);
147 }
148 if (trk.summaryValue(iPixelContribLayers, xAOD::numberOfContribPixelLayers)) {
149 fillHisto(m_nPixelContribLayers_vs_dR, dR, iPixelContribLayers,weight);
150 }
151 if (trk.summaryValue(iPixelShared, xAOD::numberOfPixelSharedHits)) {
152 fillHisto(m_nPixelSharedHits_vs_dR, dR, iPixelShared,weight);
153 }
154 if (trk.summaryValue(iPixelSplit, xAOD::numberOfPixelSplitHits)) {
155 fillHisto(m_nPixelSplitHits_vs_dR, dR, iPixelSplit,weight);
156 }
157 if (trk.summaryValue(iPixelGanged, xAOD::numberOfGangedPixels)) {
158 fillHisto(m_nPixelGangedHits_vs_dR, dR, iPixelGanged, weight);
159 }
160 if (trk.summaryValue(iPixelGangedFakes, xAOD::numberOfGangedFlaggedFakes)) {
161 fillHisto(m_nPixelGangedHitsFlaggedFakes_vs_dR, dR, iPixelGangedFakes, weight);
162 }
163 if (trk.summaryValue(iSCTOutliers, xAOD::numberOfSCTOutliers)) {
164 fillHisto(m_nSCTOutliers_vs_dR, dR, iSCTOutliers,weight);
165 }
166 if (trk.summaryValue(iSCTDoubleHoles, xAOD::numberOfSCTDoubleHoles)) {
167 fillHisto(m_nSCTDoubleHoles_vs_dR, dR, iSCTDoubleHoles,weight);
168 }
169 if (trk.summaryValue(iSCTShared, xAOD::numberOfSCTSharedHits)) {
170 fillHisto(m_nSCTSharedHits_vs_dR, dR, iSCTShared,weight);
171 }
172 if (trk.summaryValue(iTRTOutliers, xAOD::numberOfTRTOutliers)) {
173 fillHisto(m_nTRTOutliers_vs_dR, dR, iTRTOutliers,weight);
174 }
175 if (trk.summaryValue(iTRTHTOutliers, xAOD::numberOfTRTHighThresholdOutliers)) {
176 fillHisto(m_nTRTHighThresholdOutliers_vs_dR, dR, iTRTHTOutliers,weight);
177 }
178 if (trk.summaryValue(iPixelDeadSensors, xAOD::numberOfPixelDeadSensors)) {
179 fillHisto(m_nPixelDeadSensors_vs_dR, dR, iPixelDeadSensors,weight);
180 }
181 if (trk.summaryValue(iSCTDeadSensors, xAOD::numberOfSCTDeadSensors)) {
182 fillHisto(m_nSCTDeadSensors_vs_dR, dR, iSCTDeadSensors,weight);
183 }
184
185 }
186
187 //Track Parameters
188 float pt = trk.pt() / Gaudi::Units::GeV;
189 float eta = trk.eta();
190 float phi = trk.phi0();
191
192 float chi2 = trk.chiSquared();
193 float ndof = trk.numberDoF();
194 float chi2Overndof = ndof > 0 ? chi2 / ndof : 0;
195
196 float jet_pt = jet.pt() / Gaudi::Units::GeV;
197
198 fillHisto(m_reco_d0_vs_dR, dR, trk.d0(),weight);
199 fillHisto(m_reco_z0_vs_dR, dR, trk.z0(),weight);
200 fillHisto(m_reco_z0sin_vs_dR, dR, trk.z0()* trk.theta(),weight);
201 fillHisto(m_reco_phi_vs_dR, dR, phi,weight);
202 fillHisto(m_reco_theta_vs_dR, dR, trk.theta(),weight);
203 fillHisto(m_reco_eta_vs_dR, dR, eta,weight);
204 fillHisto(m_reco_pt_vs_dR, dR, pt,weight);
205 fillHisto(m_reco_lowpt_vs_dR, dR, pt,weight);
206 fillHisto(m_reco_chi2Overndof_vs_dR, dR, chi2Overndof,weight);
207 fillHisto(m_reco_track_pt_vs_jet_pt, jet_pt, pt, weight);
208
209}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
TProfile * m_nExpectedNextToInnerMostPixelHits_vs_dR
TProfile * m_nPixelGangedHitsFlaggedFakes_vs_dR
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
int m_iDetailLevel
Definition PlotBase.h:101
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition Jet_v1.cxx:71
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition Jet_v1.cxx:44
float z0() const
Returns the parameter.
float theta() const
Returns the parameter, which has range 0 to .
float numberDoF() const
Returns the number of degrees of freedom of the overall track or vertex fit as float.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
float d0() const
Returns the parameter.
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float chiSquared() const
Returns the of the overall track fit.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
float phi0() const
Returns the parameter, which has range to .
double chi2(TH1 *h0, TH1 *h1)
float ndof(const U &p)
@ numberOfGangedPixels
number of pixels which have a ganged ambiguity [unit8_t].
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
@ numberOfPixelSplitHits
number of Pixel all-layer hits split by cluster splitting [unit8_t].
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
@ numberOfInnermostPixelLayerSplitHits
number of Pixel 0th layer barrel hits split by cluster splitting
@ numberOfGangedFlaggedFakes
number of Ganged Pixels flagged as fakes [unit8_t].
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfSCTDoubleHoles
number of Holes in both sides of a SCT module [unit8_t].
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].

◆ fillEfficiency()

void InDetPerfPlot_TrkInJet::fillEfficiency ( const xAOD::TruthParticle & trk,
const xAOD::Jet & jet,
const bool isEfficient,
float weight )

Definition at line 212 of file InDetPerfPlot_TrkInJet.cxx.

212 {
213 if (!m_doFakeAndEff) return;
214 float dR = jet.p4().DeltaR(truth.p4());
215 float jetpT = jet.pt() / Gaudi::Units::GeV;
216 fillHisto(m_efficiency_vs_dR, dR, isGood, weight);
217 fillHisto(m_efficiency_vs_smalldR, dR, isGood, weight);
218 fillHisto(m_efficiency_vs_jetpT, jetpT, isGood, weight);
219 // truth info
220 fillTruth(truth, jet, weight);
221}
void fillTruth(const xAOD::TruthParticle &truth, const xAOD::Jet &jet, float weight)

◆ fillFakeRate()

void InDetPerfPlot_TrkInJet::fillFakeRate ( const xAOD::TrackParticle & trk,
const xAOD::Jet & jet,
const bool isFake,
float weight )

Definition at line 239 of file InDetPerfPlot_TrkInJet.cxx.

239 {
240 if (!m_doFakeAndEff) return;
241 float dR = jet.p4().DeltaR(trk.p4());
242 float jetpT = jet.pt() / Gaudi::Units::GeV;
243
244 fillHisto(m_fakerate_vs_dR, dR, isFake, weight);
245 fillHisto(m_fakerate_vs_smalldR, dR, isFake, weight);
246 fillHisto(m_fakerate_vs_jetpT, jetpT, isFake, weight);
247}

◆ fillHisto() [1/9]

void InDetPlotBase::fillHisto ( TEfficiency * eff2d,
const float xvalue,
const float yvalue,
const bool accepted,
const float weight )
staticinherited

Definition at line 142 of file InDetPlotBase.cxx.

142 {
143 if (eff2d and validArguments(xvalue, yvalue)) {
144 if(weight==1.) eff2d->Fill(accepted, xvalue, yvalue);
145 else eff2d->FillWeighted(accepted, weight, xvalue, yvalue);
146 }
147}

◆ fillHisto() [2/9]

void InDetPlotBase::fillHisto ( TEfficiency * pTeff,
const float value,
const bool accepted,
float weight )
staticinherited

Definition at line 134 of file InDetPlotBase.cxx.

134 {
135 if (pTeff and validArguments(value)) {
136 if(weight==1.) pTeff->Fill(accepted, value); // To get proper error estimate when possible
137 else pTeff->FillWeighted(accepted, weight, value);
138 }
139}

◆ fillHisto() [3/9]

void InDetPlotBase::fillHisto ( TH1 * pTh1,
const float value )
staticinherited

Definition at line 97 of file InDetPlotBase.cxx.

97 {
98 if (pTh1 and validArguments(value)) {
99 pTh1->Fill(value);
100 }
101}

◆ fillHisto() [4/9]

void InDetPlotBase::fillHisto ( TH1 * pTh1,
const float value,
const float weight )
staticinherited

Definition at line 104 of file InDetPlotBase.cxx.

104 {
105 if (pTh1 and validArguments(value)) {
106 pTh1->Fill(value, weight);
107 }
108}

◆ fillHisto() [5/9]

void InDetPlotBase::fillHisto ( TH2 * pTh2,
const float xval,
const float yval )
staticinherited

Definition at line 112 of file InDetPlotBase.cxx.

112 {
113 if (pTh2 and validArguments(xval, yval)) {
114 pTh2->Fill(xval, yval);
115 }
116}

◆ fillHisto() [6/9]

void InDetPlotBase::fillHisto ( TH2 * pTh2,
const float xval,
const float yval,
const float weight )
staticinherited

Definition at line 120 of file InDetPlotBase.cxx.

120 {
121 if (pTh2 and validArguments(xval, yval)) {
122 pTh2->Fill(xval, yval, weight);
123 }
124}

◆ fillHisto() [7/9]

void InDetPlotBase::fillHisto ( TH3 * pTh3,
const float xval,
const float yval,
const float zval )
staticinherited

Definition at line 127 of file InDetPlotBase.cxx.

127 {
128 if (pTh3 and validArguments(xval, yval, zval)) {
129 pTh3->Fill(xval, yval, zval);
130 }
131}

◆ fillHisto() [8/9]

void InDetPlotBase::fillHisto ( TProfile * pTprofile,
const float bin,
const float weight,
const float weight2 = 1.0 )
staticinherited

Definition at line 82 of file InDetPlotBase.cxx.

82 {
83 if (pTprofile and validArguments(bin, weight)) {
84 pTprofile->Fill(bin, weight,weight2);
85 }
86}

◆ fillHisto() [9/9]

void InDetPlotBase::fillHisto ( TProfile2D * pTprofile,
const float xval,
const float yval,
const float weight,
const float weight2 = 1.0 )
staticinherited

Definition at line 89 of file InDetPlotBase.cxx.

89 {
90 if (pTprofile and validArguments(xval,yval, weight) and validArguments(weight2)) {
91 pTprofile->Fill(xval,yval, weight,weight2);
92 }
93}

◆ fillTruth()

void InDetPerfPlot_TrkInJet::fillTruth ( const xAOD::TruthParticle & truth,
const xAOD::Jet & jet,
float weight )

Definition at line 224 of file InDetPerfPlot_TrkInJet.cxx.

224 {
225 if (!m_doFakeAndEff) return;
226 float dR = jet.p4().DeltaR(truth.p4());
227 float jetpT = jet.pt() / Gaudi::Units::GeV;
228 float trackpT = truth.pt() / Gaudi::Units::GeV;
229 float trackEta = truth.eta();
230 float trackPhi = truth.phi();
231
232 fillHisto(m_truth_track_phi_vs_dR, dR, trackPhi, weight);
233 fillHisto(m_truth_track_eta_vs_dR, dR, trackEta, weight);
234 fillHisto(m_truth_track_pt_vs_dR, dR, trackpT, weight);
235 fillHisto(m_truth_track_pt_vs_jet_pt, jetpT, trackpT, weight);
236}
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)

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

Reimplemented from PlotBase.

Definition at line 27 of file InDetPerfPlot_TrkInJet.cxx.

27 {
28
29 //Hits vs dR
30 book(m_nInnerMostPixelHits_vs_dR, "nInnerMostPixelHits_vs_dR");
31 book(m_nNextToInnerMostPixelHits_vs_dR, "nNextToInnerMostPixelHits_vs_dR");
32 book(m_nPixelHits_vs_dR, "nPixelHits_vs_dR");
33 book(m_nSCTHits_vs_dR, "nSCTHits_vs_dR");
34 book(m_nTRTHits_vs_dR, "nTRTHits_vs_dR");
35 book(m_nPixelHoles_vs_dR, "nPixelHoles_vs_dR");
36 book(m_nSCTHoles_vs_dR, "nSCTHoles_vs_dR");
37 book(m_nTRTHighThresholdHits_vs_dR, "nTRTHighThresholdHits_vs_dR");
38 if (m_iDetailLevel >= 100){
39 book(m_nInnerMostPixelOutliers_vs_dR, "nInnerMostPixelOutliers_vs_dR");
40 book(m_nInnerMostPixelSharedHits_vs_dR, "nInnerMostPixelSharedHits_vs_dR");
41 book(m_nInnerMostPixelSplitHits_vs_dR, "nInnerMostPixelSplitHits_vs_dR");
42 book(m_nExpectedInnerMostPixelHits_vs_dR, "nExpectedInnerMostPixelHits_vs_dR");
43 book(m_nExpectedNextToInnerMostPixelHits_vs_dR, "nExpectedNextToInnerMostPixelHits_vs_dR");
44 book(m_nPixelOutliers_vs_dR, "nPixelOutliers_vs_dR");
45 book(m_nPixelContribLayers_vs_dR, "nPixelContribLayers_vs_dR");
46 book(m_nPixelSharedHits_vs_dR, "nPixelSharedHits_vs_dR");
47 book(m_nPixelSplitHits_vs_dR, "nPixelSplitHits_vs_dR");
48 book(m_nPixelGangedHits_vs_dR, "nPixelGangedHits_vs_dR");
49 book(m_nPixelGangedHitsFlaggedFakes_vs_dR, "nPixelGangedHitsFlaggedFakes_vs_dR");
50 book(m_nSCTOutliers_vs_dR, "nSCTOutliers_vs_dR");
51 book(m_nSCTDoubleHoles_vs_dR, "nSCTDoubleHoles_vs_dR");
52 book(m_nSCTSharedHits_vs_dR, "nSCTSharedHits_vs_dR");
53 book(m_nTRTOutliers_vs_dR, "nTRTOutliers_vs_dR");
54 book(m_nTRTHighThresholdOutliers_vs_dR, "nTRTHighThresholdOutliers_vs_dR");
55 book(m_nPixelDeadSensors_vs_dR, "nPixelDeadSensors_vs_dR");
56 book(m_nSCTDeadSensors_vs_dR, "nSCTDeadSensors_vs_dR");
57 }
58
59
60 book(m_reco_d0_vs_dR, "reco_d0_vs_dR");
61 book(m_reco_z0_vs_dR, "reco_z0_vs_dR");
62 book(m_reco_z0sin_vs_dR, "reco_z0sin_vs_dR");
63
64 book(m_reco_phi_vs_dR, "reco_phi_vs_dR");
65 book(m_reco_theta_vs_dR, "reco_theta_vs_dR");
66 book(m_reco_eta_vs_dR, "reco_eta_vs_dR");
67 book(m_reco_pt_vs_dR, "reco_pt_vs_dR");
68 book(m_reco_lowpt_vs_dR, "reco_lowpt_vs_dR");
69 book(m_reco_track_pt_vs_jet_pt, "reco_track_pt_vs_jet_pt");
70
71 book(m_reco_chi2Overndof_vs_dR, "reco_chi2Overndof_vs_dR");
72 if (m_doFakeAndEff){
73 book(m_efficiency_vs_dR, "efficiency_vs_dR");
74 book(m_efficiency_vs_smalldR, "efficiency_vs_smalldR");
75 book(m_efficiency_vs_jetpT, "efficiency_vs_jetpT");
76
77 book(m_fakerate_vs_dR, "fakerate_vs_dR");
78 book(m_fakerate_vs_smalldR, "fakerate_vs_smalldR");
79 book(m_fakerate_vs_jetpT, "fakerate_vs_jetpT");
80
81 book(m_truth_track_phi_vs_dR, "truth_track_phi_vs_dR");
82 book(m_truth_track_eta_vs_dR, "truth_track_eta_vs_dR");
83 book(m_truth_track_pt_vs_dR, "truth_track_pt_vs_dR");
84 book(m_truth_track_pt_vs_jet_pt, "truth_track_pt_vs_jet_pt");
85 }
86
87}
void book(Htype *&pHisto, const std::string &histoIdentifier, const std::string &nameOverride="", const std::string &folder="default")
Helper method to book histograms using an identifier string.

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ mBook()

template<class T>
void InDetPlotBase::mBook ( T & pHisto,
const std::string & histoIdentifier )
inlineprotectedinherited

book, for use by macro

Definition at line 83 of file InDetPlotBase.h.

83 {
84 return book(pHisto, histoIdentifier.substr(2));
85 }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 163 of file AthMessaging.h.

164{
165 MsgStream* ms = m_msg_tls.get();
166 if (!ms) {
167 if (!m_initialized.test_and_set()) initMessaging();
168 ms = new MsgStream(m_imsg,m_nm);
169 m_msg_tls.reset( ms );
170 }
171
172 ms->setLevel (m_lvl);
173 return *ms;
174}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 178 of file AthMessaging.h.

179{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 if (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ 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}

◆ retrieveDefinition()

SingleHistogramDefinition InDetPlotBase::retrieveDefinition ( const std::string & histoIdentifier,
const std::string & folder = "default",
const std::string & nameOverride = "" )
inherited

Retrieve a single histogram definition, given the unique string identifier.

Definition at line 151 of file InDetPlotBase.cxx.

151 {
152
153 ATH_CHECK( m_histoDefSvc.retrieve(), {} );
154
155 bool folderDefault = (folder.empty() or folder == "default");
156 SingleHistogramDefinition s = m_histoDefSvc->definition(histoIdentifier, folder);
157 // "default" and empty string should be equivalent
158 if (folderDefault and s.empty()) {
159 const std::string otherDefault = (folder.empty()) ? ("default") : "";
160 s = m_histoDefSvc->definition(histoIdentifier, otherDefault);
161 }
162 if (s.empty()) {
163 ATH_MSG_WARNING("Histogram definition is empty for identifier " << histoIdentifier);
164 }
165 if (!nameOverride.empty()){
166 s.name = nameOverride;
167 }
168 return s;
169}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
ServiceHandle< IHistogramDefinitionSvc > m_histoDefSvc

◆ 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}

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_doFakeAndEff

bool InDetPerfPlot_TrkInJet::m_doFakeAndEff
private

Definition at line 81 of file InDetPerfPlot_TrkInJet.h.

◆ m_efficiency_vs_dR

TEfficiency* InDetPerfPlot_TrkInJet::m_efficiency_vs_dR {}
private

Definition at line 68 of file InDetPerfPlot_TrkInJet.h.

68{};

◆ m_efficiency_vs_jetpT

TEfficiency* InDetPerfPlot_TrkInJet::m_efficiency_vs_jetpT {}
private

Definition at line 70 of file InDetPerfPlot_TrkInJet.h.

70{};

◆ m_efficiency_vs_smalldR

TEfficiency* InDetPerfPlot_TrkInJet::m_efficiency_vs_smalldR {}
private

Definition at line 69 of file InDetPerfPlot_TrkInJet.h.

69{};

◆ m_fakerate_vs_dR

TEfficiency* InDetPerfPlot_TrkInJet::m_fakerate_vs_dR {}
private

Definition at line 72 of file InDetPerfPlot_TrkInJet.h.

72{};

◆ m_fakerate_vs_jetpT

TEfficiency* InDetPerfPlot_TrkInJet::m_fakerate_vs_jetpT {}
private

Definition at line 74 of file InDetPerfPlot_TrkInJet.h.

74{};

◆ m_fakerate_vs_smalldR

TEfficiency* InDetPerfPlot_TrkInJet::m_fakerate_vs_smalldR {}
private

Definition at line 73 of file InDetPerfPlot_TrkInJet.h.

73{};

◆ m_histoDefSvc

ServiceHandle<IHistogramDefinitionSvc> InDetPlotBase::m_histoDefSvc
privateinherited

Definition at line 88 of file InDetPlotBase.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nExpectedInnerMostPixelHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nExpectedInnerMostPixelHits_vs_dR {}
private

Definition at line 38 of file InDetPerfPlot_TrkInJet.h.

38{};

◆ m_nExpectedNextToInnerMostPixelHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nExpectedNextToInnerMostPixelHits_vs_dR {}
private

Definition at line 39 of file InDetPerfPlot_TrkInJet.h.

39{};

◆ m_nInnerMostPixelHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nInnerMostPixelHits_vs_dR {}
private

Definition at line 27 of file InDetPerfPlot_TrkInJet.h.

27{};

◆ m_nInnerMostPixelOutliers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nInnerMostPixelOutliers_vs_dR {}
private

Definition at line 35 of file InDetPerfPlot_TrkInJet.h.

35{};

◆ m_nInnerMostPixelSharedHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nInnerMostPixelSharedHits_vs_dR {}
private

Definition at line 36 of file InDetPerfPlot_TrkInJet.h.

36{};

◆ m_nInnerMostPixelSplitHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nInnerMostPixelSplitHits_vs_dR {}
private

Definition at line 37 of file InDetPerfPlot_TrkInJet.h.

37{};

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_nNextToInnerMostPixelHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nNextToInnerMostPixelHits_vs_dR {}
private

Definition at line 28 of file InDetPerfPlot_TrkInJet.h.

28{};

◆ m_nPixelContribLayers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelContribLayers_vs_dR {}
private

Definition at line 41 of file InDetPerfPlot_TrkInJet.h.

41{};

◆ m_nPixelDeadSensors_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelDeadSensors_vs_dR {}
private

Definition at line 51 of file InDetPerfPlot_TrkInJet.h.

51{};

◆ m_nPixelGangedHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelGangedHits_vs_dR {}
private

Definition at line 44 of file InDetPerfPlot_TrkInJet.h.

44{};

◆ m_nPixelGangedHitsFlaggedFakes_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelGangedHitsFlaggedFakes_vs_dR {}
private

Definition at line 45 of file InDetPerfPlot_TrkInJet.h.

45{};

◆ m_nPixelHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelHits_vs_dR {}
private

Definition at line 29 of file InDetPerfPlot_TrkInJet.h.

29{};

◆ m_nPixelHoles_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelHoles_vs_dR {}
private

Definition at line 32 of file InDetPerfPlot_TrkInJet.h.

32{};

◆ m_nPixelOutliers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelOutliers_vs_dR {}
private

Definition at line 40 of file InDetPerfPlot_TrkInJet.h.

40{};

◆ m_nPixelSharedHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelSharedHits_vs_dR {}
private

Definition at line 42 of file InDetPerfPlot_TrkInJet.h.

42{};

◆ m_nPixelSplitHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nPixelSplitHits_vs_dR {}
private

Definition at line 43 of file InDetPerfPlot_TrkInJet.h.

43{};

◆ m_nSCTDeadSensors_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTDeadSensors_vs_dR {}
private

Definition at line 52 of file InDetPerfPlot_TrkInJet.h.

52{};

◆ m_nSCTDoubleHoles_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTDoubleHoles_vs_dR {}
private

Definition at line 47 of file InDetPerfPlot_TrkInJet.h.

47{};

◆ m_nSCTHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTHits_vs_dR {}
private

Definition at line 30 of file InDetPerfPlot_TrkInJet.h.

30{};

◆ m_nSCTHoles_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTHoles_vs_dR {}
private

Definition at line 33 of file InDetPerfPlot_TrkInJet.h.

33{};

◆ m_nSCTOutliers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTOutliers_vs_dR {}
private

Definition at line 46 of file InDetPerfPlot_TrkInJet.h.

46{};

◆ m_nSCTSharedHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nSCTSharedHits_vs_dR {}
private

Definition at line 48 of file InDetPerfPlot_TrkInJet.h.

48{};

◆ m_nTRTHighThresholdHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nTRTHighThresholdHits_vs_dR {}
private

Definition at line 34 of file InDetPerfPlot_TrkInJet.h.

34{};

◆ m_nTRTHighThresholdOutliers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nTRTHighThresholdOutliers_vs_dR {}
private

Definition at line 50 of file InDetPerfPlot_TrkInJet.h.

50{};

◆ m_nTRTHits_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nTRTHits_vs_dR {}
private

Definition at line 31 of file InDetPerfPlot_TrkInJet.h.

31{};

◆ m_nTRTOutliers_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_nTRTOutliers_vs_dR {}
private

Definition at line 49 of file InDetPerfPlot_TrkInJet.h.

49{};

◆ m_reco_chi2Overndof_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_chi2Overndof_vs_dR {}
private

Definition at line 66 of file InDetPerfPlot_TrkInJet.h.

66{};

◆ m_reco_d0_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_d0_vs_dR {}
private

Definition at line 55 of file InDetPerfPlot_TrkInJet.h.

55{};

◆ m_reco_eta_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_eta_vs_dR {}
private

Definition at line 61 of file InDetPerfPlot_TrkInJet.h.

61{};

◆ m_reco_lowpt_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_lowpt_vs_dR {}
private

Definition at line 63 of file InDetPerfPlot_TrkInJet.h.

63{};

◆ m_reco_phi_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_phi_vs_dR {}
private

Definition at line 59 of file InDetPerfPlot_TrkInJet.h.

59{};

◆ m_reco_pt_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_pt_vs_dR {}
private

Definition at line 62 of file InDetPerfPlot_TrkInJet.h.

62{};

◆ m_reco_theta_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_theta_vs_dR {}
private

Definition at line 60 of file InDetPerfPlot_TrkInJet.h.

60{};

◆ m_reco_track_pt_vs_jet_pt

TProfile* InDetPerfPlot_TrkInJet::m_reco_track_pt_vs_jet_pt {}
private

Definition at line 64 of file InDetPerfPlot_TrkInJet.h.

64{};

◆ m_reco_z0_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_z0_vs_dR {}
private

Definition at line 56 of file InDetPerfPlot_TrkInJet.h.

56{};

◆ m_reco_z0sin_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_reco_z0sin_vs_dR {}
private

Definition at line 57 of file InDetPerfPlot_TrkInJet.h.

57{};

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_truth_track_eta_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_truth_track_eta_vs_dR {}
private

Definition at line 77 of file InDetPerfPlot_TrkInJet.h.

77{};

◆ m_truth_track_phi_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_truth_track_phi_vs_dR {}
private

Definition at line 76 of file InDetPerfPlot_TrkInJet.h.

76{};

◆ m_truth_track_pt_vs_dR

TProfile* InDetPerfPlot_TrkInJet::m_truth_track_pt_vs_dR {}
private

Definition at line 78 of file InDetPerfPlot_TrkInJet.h.

78{};

◆ m_truth_track_pt_vs_jet_pt

TProfile* InDetPerfPlot_TrkInJet::m_truth_track_pt_vs_jet_pt {}
private

Definition at line 79 of file InDetPerfPlot_TrkInJet.h.

79{};

◆ 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.


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