ATLAS Offline Software
Loading...
Searching...
No Matches
IDTPM::PlotMgr Class Reference

#include <PlotMgr.h>

Inherits PlotBase, and AthMessaging.

Inherited by IDTPM::DuplicateRatePlots, IDTPM::EfficiencyPlots, IDTPM::FakeRatePlots, IDTPM::HitsOnTracksPlots, IDTPM::NtracksPlots, IDTPM::OfflineElectronPlots, IDTPM::ResolutionPlots, IDTPM::SummaryPlots, IDTPM::TrackAnalysisPlotsMgr, IDTPM::TrackParametersPlots, and IDTPM::VertexParametersPlots.

Collaboration diagram for IDTPM::PlotMgr:

Public Member Functions

 PlotMgr (const std::string &dirName, const std::string &anaTag, PlotMgr *pParent=nullptr)
 Constructor taking parent node and directory name for plots pParent = nullptr by default to book plots in top directory.
virtual ~PlotMgr ()=default
 Destructor.
StatusCode initialize ()
 initialize
SinglePlotDefinition retrieveDefinition (const std::string &identifier, const std::string &folderOverride="", const std::string &nameOverride="") const
 Retrieve a single histogram definition, given the unique string identifier.
template<class P>
StatusCode retrieveAndBook (P *&pHisto, const std::string &identifier, const std::string &folderOverride="", const std::string &nameOverride="")
StatusCode book (TH1 *&pHisto, const SinglePlotDefinition &def)
 Book a TH1 histogram.
StatusCode book (TH2 *&pHisto, const SinglePlotDefinition &def)
 Book a TH2 histogram.
StatusCode book (TH3 *&pHisto, const SinglePlotDefinition &def)
 Book a TH3 histogram.
StatusCode book (TProfile *&pHisto, const SinglePlotDefinition &def)
 Book a TProfile histogram.
StatusCode book (TProfile2D *&pHisto, const SinglePlotDefinition &def)
 Book a TProfile2D histogram.
StatusCode book (TEfficiency *&pHisto, const SinglePlotDefinition &def)
 Book a (1D or 2D) TEfficiency histogram.
StatusCode fill (TH1 *pTh1, float value, float weight=1.) const
StatusCode fill (TH2 *pTh2, float xval, float yval, float weight=1.) const
 Fill a TH2 histogram.
StatusCode fill (TH3 *pTh3, float xval, float yval, float zval, float weight=1.) const
 Fill a TH3 histogram.
StatusCode fill (TProfile *pTprofile, float xval, float yval, float weight=1.) const
 Fill a TProfile histogram weight allows weighted-averaging in the profile.
StatusCode fill (TProfile2D *pTprofile, float xval, float yval, float zval, float weight=1.) const
 Fill a TProfile2D histogram weight allows weighted-averaging in the profile.
StatusCode fill (TEfficiency *pTeff, float value, bool accepted, float weight=1.) const
 Fill a (1D) TEfficiency histogram.
StatusCode fill (TEfficiency *pTeff2d, float xvalue, float yvalue, bool accepted, float weight=1.) const
 Fill a (2D) TEfficiency histogram.
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.

Protected Member Functions

template<class P>
StatusCode setVariableBins (P *&pHisto, const std::vector< float > &binning, char axis)
 SetVariableBins.
template<class P>
StatusCode setVariableBinsEff (P *&pHisto, const std::vector< float > &binning, char axis)
 SetVariableBins (for Efficiencies)
template<class P>
StatusCode setLogLinearBins (P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
 Set Log-Linear axis.
template<class P>
StatusCode setLogLinearBinsEff (P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
 Set Log-Linear axis (for Efficiencies)
std::vector< float > getLogLinearBins (unsigned int nBins, float absMin, float absMax, bool symmetriseAroundZero=false)
 Get Log-Linear binning vector inherited from InDetPhysValMonitoring/src/logLinearBinning.h.
template<class P>
StatusCode setBinLabels (P *&pHisto, const std::vector< std::string > &binLabels, char axis)
 SetBinLabels (for TH* and TProfile* only)

Protected Attributes

std::string m_anaTag
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

virtual 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

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 33 of file PlotMgr.h.

Constructor & Destructor Documentation

◆ PlotMgr()

IDTPM::PlotMgr::PlotMgr ( const std::string & dirName,
const std::string & anaTag,
PlotMgr * pParent = nullptr )

Constructor taking parent node and directory name for plots pParent = nullptr by default to book plots in top directory.

local include(s)

Gaudi include(s) STD include(s)


— Constructor —

Definition at line 25 of file PlotMgr.cxx.

28 :
29 PlotBase( pParent, dirName ),
30 AthMessaging( "PlotMgr"+anaTag ),
31 m_anaTag( anaTag ) { }
AthMessaging()
Default constructor:
std::string m_anaTag
Definition PlotMgr.h:232
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29

◆ ~PlotMgr()

virtual IDTPM::PlotMgr::~PlotMgr ( )
virtualdefault

Destructor.

Member Function Documentation

◆ book() [1/6]

StatusCode IDTPM::PlotMgr::book ( TEfficiency *& pHisto,
const SinglePlotDefinition & def )

Book a (1D or 2D) TEfficiency histogram.

Definition at line 276 of file PlotMgr.cxx.

278{
279 if( not def.isValid() ) {
280 ATH_MSG_ERROR( "Non-valid TEfficiency plot : " << def.identifier() );
281 return StatusCode::FAILURE;
282 }
283
284 pHisto = ( def.nBinsY() == 0 ) ?
285 BookTEfficiency( def.name(), def.titleDigest(),
286 def.nBinsX(), def.xLow(), def.xHigh(),
287 false ) :
288 BookTEfficiency( def.name(), def.titleDigest(),
289 def.nBinsX(), def.xLow(), def.xHigh(),
290 def.nBinsY(), def.yLow(), def.yHigh(),
291 false );
292
293 if( def.doLogLinBinsX() ) {
294 ATH_CHECK( setLogLinearBinsEff( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
295 }
296
297 if( def.doLogLinBinsY() and def.nBinsY() != 0 ) {
298 ATH_CHECK( setLogLinearBinsEff( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
299 }
300
301 if( def.doVarBinsX() ) {
302 ATH_CHECK( setVariableBinsEff( pHisto, def.xBinsVec(), 'X' ) );
303 }
304
305 if( def.doVarBinsY() and def.nBinsY() != 0 ) {
306 ATH_CHECK( setVariableBinsEff( pHisto, def.yBinsVec(), 'Y' ) );
307 }
308
309 return StatusCode::SUCCESS;
310}
#define ATH_MSG_ERROR(x)
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

◆ book() [2/6]

StatusCode IDTPM::PlotMgr::book ( TH1 *& pHisto,
const SinglePlotDefinition & def )

Book a TH1 histogram.


— Book histograms methods —

Book a TH1 histogram

Definition at line 78 of file PlotMgr.cxx.

80{
81 if( not def.isValid() ) {
82 ATH_MSG_ERROR( "Non-valid TH1 plot : " << def.identifier() );
83 return StatusCode::FAILURE;
84 }
85
86 pHisto = Book1D( def.name(), def.titleDigest(),
87 def.nBinsX(), def.xLow(), def.xHigh(),
88 false );
89
90 if( def.doLogLinBinsX() ) {
91 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
92 }
93
94 if( def.doVarBinsX() ) {
95 ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
96 }
97
98 if( not def.xBinLabelsVec().empty() ) {
99 ATH_CHECK( setBinLabels( pHisto, def.xBinLabelsVec(), 'X' ) );
100 }
101
102 return StatusCode::SUCCESS;
103}
#define ATH_CHECK
Evaluate an expression and check for errors.
StatusCode setLogLinearBins(P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
Set Log-Linear axis.
Definition PlotMgr.h:170
StatusCode setVariableBins(P *&pHisto, const std::vector< float > &binning, char axis)
SetVariableBins.
Definition PlotMgr.h:135
StatusCode setBinLabels(P *&pHisto, const std::vector< std::string > &binLabels, char axis)
SetBinLabels (for TH* and TProfile* only)
Definition PlotMgr.h:196
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() [3/6]

StatusCode IDTPM::PlotMgr::book ( TH2 *& pHisto,
const SinglePlotDefinition & def )

Book a TH2 histogram.

Definition at line 107 of file PlotMgr.cxx.

109{
110 if( not def.isValid() ) {
111 ATH_MSG_ERROR( "Non-valid TH2 plot : " << def.identifier() );
112 return StatusCode::FAILURE;
113 }
114
115 pHisto = Book2D( def.name(), def.titleDigest(),
116 def.nBinsX(), def.xLow(), def.xHigh(),
117 def.nBinsY(), def.yLow(), def.yHigh(),
118 false );
119
120 if( def.doLogLinBinsX() ) {
121 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
122 }
123
124 if( def.doLogLinBinsY() ) {
125 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
126 }
127
128 if( def.doVarBinsX() ) {
129 ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
130 }
131
132 if( def.doVarBinsY() ) {
133 ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
134 }
135
136 if( not def.xBinLabelsVec().empty() ) {
137 ATH_CHECK( setBinLabels( pHisto, def.xBinLabelsVec(), 'X' ) );
138 }
139
140 if( not def.yBinLabelsVec().empty() ) {
141 ATH_CHECK( setBinLabels( pHisto, def.yBinLabelsVec(), 'Y' ) );
142 }
143
144 return StatusCode::SUCCESS;
145}
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() [4/6]

StatusCode IDTPM::PlotMgr::book ( TH3 *& pHisto,
const SinglePlotDefinition & def )

Book a TH3 histogram.

Definition at line 149 of file PlotMgr.cxx.

151{
152 if( not def.isValid() ) {
153 ATH_MSG_ERROR( "Non-valid TH3 plot : " << def.identifier() );
154 return StatusCode::FAILURE;
155 }
156
157 pHisto = Book3D( def.name(), def.titleDigest(),
158 def.nBinsX(), def.xLow(), def.xHigh(),
159 def.nBinsY(), def.yLow(), def.yHigh(),
160 def.nBinsZ(), def.zLow(), def.zHigh(),
161 false );
162
163 if( def.doLogLinBinsX() ) {
164 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
165 }
166
167 if( def.doLogLinBinsY() ) {
168 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
169 }
170
171 if( def.doLogLinBinsZ() ) {
172 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsZ(), def.zLow(), def.zHigh(), 'Z' ) );
173 }
174
175 if( def.doVarBinsX() ) {
176 ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
177 }
178
179 if( def.doVarBinsY() ) {
180 ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
181 }
182
183 if( def.doVarBinsZ() ) {
184 ATH_CHECK( setVariableBins( pHisto, def.zBinsVec(), 'Z' ) );
185 }
186
187 if( not def.xBinLabelsVec().empty() ) {
188 ATH_CHECK( setBinLabels( pHisto, def.xBinLabelsVec(), 'X' ) );
189 }
190
191 if( not def.yBinLabelsVec().empty() ) {
192 ATH_CHECK( setBinLabels( pHisto, def.yBinLabelsVec(), 'Y' ) );
193 }
194
195 if( not def.zBinLabelsVec().empty() ) {
196 ATH_CHECK( setBinLabels( pHisto, def.zBinLabelsVec(), 'Z' ) );
197 }
198
199 return StatusCode::SUCCESS;
200}
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.
Definition PlotBase.cxx:157

◆ book() [5/6]

StatusCode IDTPM::PlotMgr::book ( TProfile *& pHisto,
const SinglePlotDefinition & def )

Book a TProfile histogram.

Definition at line 204 of file PlotMgr.cxx.

206{
207 if( not def.isValid() ) {
208 ATH_MSG_ERROR( "Non-valid TProfile plot : " << def.identifier() );
209 return StatusCode::FAILURE;
210 }
211
212 pHisto = BookTProfile( def.name(), def.titleDigest(),
213 def.nBinsX(), def.xLow(), def.xHigh(),
214 def.yLow(), def.yHigh(),
215 false );
216
217 if( def.doLogLinBinsX() ) {
218 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
219 }
220
221 if( def.doVarBinsX() ) {
222 ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
223 }
224
225 if( not def.xBinLabelsVec().empty() ) {
226 ATH_CHECK( setBinLabels( pHisto, def.xBinLabelsVec(), 'X' ) );
227 }
228
229 return StatusCode::SUCCESS;
230}
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]

StatusCode IDTPM::PlotMgr::book ( TProfile2D *& pHisto,
const SinglePlotDefinition & def )

Book a TProfile2D histogram.

Definition at line 234 of file PlotMgr.cxx.

236{
237 if( not def.isValid() ) {
238 ATH_MSG_ERROR( "Non-valid TProfile2D plot : " << def.identifier() );
239 return StatusCode::FAILURE;
240 }
241
242 pHisto = BookTProfile2D( def.name(), def.titleDigest(),
243 def.nBinsX(), def.xLow(), def.xHigh(),
244 def.nBinsY(), def.yLow(), def.yHigh(),
245 false );
246
247 if( def.doLogLinBinsX() ) {
248 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
249 }
250
251 if( def.doLogLinBinsY() ) {
252 ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
253 }
254
255 if( def.doVarBinsX() ) {
256 ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
257 }
258
259 if( def.doVarBinsY() ) {
260 ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
261 }
262
263 if( not def.xBinLabelsVec().empty() ) {
264 ATH_CHECK( setBinLabels( pHisto, def.xBinLabelsVec(), 'X' ) );
265 }
266
267 if( not def.yBinLabelsVec().empty() ) {
268 ATH_CHECK( setBinLabels( pHisto, def.yBinLabelsVec(), 'Y' ) );
269 }
270
271 return StatusCode::SUCCESS;
272}
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() [1/7]

StatusCode IDTPM::PlotMgr::fill ( TEfficiency * pTeff,
float value,
bool accepted,
float weight = 1. ) const

Fill a (1D) TEfficiency histogram.

fill the plot To get proper error estimate when possible

Definition at line 420 of file PlotMgr.cxx.

422{
423 if( not pTeff ) {
424 ATH_MSG_ERROR( "Trying to fill non-definded 1D TEfficiency" );
425 return StatusCode::FAILURE;
426 }
427
428 if( std::isnan( value ) or std::isnan( weight ) ) {
429 ATH_MSG_ERROR( "Non-valid fill arguments for 1D TEfficiency:" << pTeff->GetName() );
430 return StatusCode::FAILURE;
431 }
432
435 if( weight==1.) pTeff->Fill( accepted, value );
436 else pTeff->FillWeighted( accepted, weight, value );
437 return StatusCode::SUCCESS;
438}

◆ fill() [2/7]

StatusCode IDTPM::PlotMgr::fill ( TEfficiency * pTeff2d,
float xvalue,
float yvalue,
bool accepted,
float weight = 1. ) const

Fill a (2D) TEfficiency histogram.

fill the plot To get proper error estimate when possible

Definition at line 442 of file PlotMgr.cxx.

444{
445 if( not pTeff2d ) {
446 ATH_MSG_ERROR( "Trying to fill non-definded 2D TEfficiency" );
447 return StatusCode::FAILURE;
448 }
449
450 if( std::isnan( xvalue ) or std::isnan( yvalue ) or std::isnan( weight ) ) {
451 ATH_MSG_ERROR( "Non-valid fill arguments for 2D TEfficiency:" << pTeff2d->GetName() );
452 return StatusCode::FAILURE;
453 }
454
457 if( weight==1.) pTeff2d->Fill( accepted, xvalue, yvalue );
458 else pTeff2d->FillWeighted( accepted, weight, xvalue, yvalue );
459 return StatusCode::SUCCESS;
460}

◆ fill() [3/7]

StatusCode IDTPM::PlotMgr::fill ( TH1 * pTh1,
float value,
float weight = 1. ) const

— Fill plots methods —

Fill a TH1 histogram


— Fill histograms methods —

Fill a TH1 histogram

fill the plot

Definition at line 317 of file PlotMgr.cxx.

319{
320 if( not pTh1 ) {
321 ATH_MSG_ERROR( "Trying to fill non-definded TH1" );
322 return StatusCode::FAILURE;
323 }
324
325 if( std::isnan( value ) or std::isnan( weight ) ) {
326 ATH_MSG_ERROR( "Non-valid fill arguments for TH1:" << pTh1->GetName() );
327 return StatusCode::FAILURE;
328 }
329
331 pTh1->Fill( value, weight );
332 return StatusCode::SUCCESS;
333}

◆ fill() [4/7]

StatusCode IDTPM::PlotMgr::fill ( TH2 * pTh2,
float xval,
float yval,
float weight = 1. ) const

Fill a TH2 histogram.

fill the plot

Definition at line 337 of file PlotMgr.cxx.

339{
340 if( not pTh2 ) {
341 ATH_MSG_ERROR( "Trying to fill non-definded TH2" );
342 return StatusCode::FAILURE;
343 }
344
345 if( std::isnan( xval ) or std::isnan( yval ) or std::isnan( weight ) ) {
346 ATH_MSG_ERROR( "Non-valid fill arguments for TH2:" << pTh2->GetName() );
347 return StatusCode::FAILURE;
348 }
349
351 pTh2->Fill( xval, yval, weight );
352 return StatusCode::SUCCESS;
353}

◆ fill() [5/7]

StatusCode IDTPM::PlotMgr::fill ( TH3 * pTh3,
float xval,
float yval,
float zval,
float weight = 1. ) const

Fill a TH3 histogram.

fill the plot

Definition at line 357 of file PlotMgr.cxx.

359{
360 if( not pTh3 ) {
361 ATH_MSG_ERROR( "Trying to fill non-definded TH3" );
362 return StatusCode::FAILURE;
363 }
364
365 if( std::isnan( xval ) or std::isnan( yval ) or
366 std::isnan( zval ) or std::isnan( weight ) ) {
367 ATH_MSG_ERROR( "Non-valid fill arguments for TH3:" << pTh3->GetName() );
368 return StatusCode::FAILURE;
369 }
370
371
373 pTh3->Fill( xval, yval, zval, weight );
374 return StatusCode::SUCCESS;
375}

◆ fill() [6/7]

StatusCode IDTPM::PlotMgr::fill ( TProfile * pTprofile,
float xval,
float yval,
float weight = 1. ) const

Fill a TProfile histogram weight allows weighted-averaging in the profile.

Fill a TProfile histogram.

fill the plot

Definition at line 379 of file PlotMgr.cxx.

381{
382 if( not pTprofile ) {
383 ATH_MSG_ERROR( "Trying to fill non-definded TProfile" );
384 return StatusCode::FAILURE;
385 }
386
387 if( std::isnan( xval ) or std::isnan( yval ) or std::isnan( weight ) ) {
388 ATH_MSG_ERROR( "Non-valid fill arguments for TProfile:" << pTprofile->GetName() );
389 return StatusCode::FAILURE;
390 }
391
393 pTprofile->Fill( xval, yval, weight );
394 return StatusCode::SUCCESS;
395}

◆ fill() [7/7]

StatusCode IDTPM::PlotMgr::fill ( TProfile2D * pTprofile,
float xval,
float yval,
float zval,
float weight = 1. ) const

Fill a TProfile2D histogram weight allows weighted-averaging in the profile.

Fill a TProfile2D histogram.

fill the plot

Definition at line 399 of file PlotMgr.cxx.

401{
402 if( not pTprofile ) {
403 ATH_MSG_ERROR( "Trying to fill non-definded TProfile2D" );
404 return StatusCode::FAILURE;
405 }
406
407 if( std::isnan( xval ) or std::isnan( yval ) or
408 std::isnan( zval ) or std::isnan( weight ) ) {
409 ATH_MSG_ERROR( "Non-valid fill arguments for TProfile2D:" << pTprofile->GetName() );
410 return StatusCode::FAILURE;
411 }
412
414 pTprofile->Fill( xval, yval, zval, weight );
415 return StatusCode::SUCCESS;
416}

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

◆ getLogLinearBins()

std::vector< float > IDTPM::PlotMgr::getLogLinearBins ( unsigned int nBins,
float absMin,
float absMax,
bool symmetriseAroundZero = false )
protected

Get Log-Linear binning vector inherited from InDetPhysValMonitoring/src/logLinearBinning.h.

Get Log-Linear binning vector.

some checks to ensure the user is requesting something sensible

reserve the vector space

define our starting bin edge and step size in log space

then populate the bin array

FIXME: currently disabled

Definition at line 464 of file PlotMgr.cxx.

466{
467 std::vector<float> emptyVec;
469 if( absMin<=0 or absMax<=0 ) {
470 ATH_MSG_WARNING( "absMin or absMax argument to getLogLinearBins is out of range" );
471 return emptyVec;
472 } else if( nBins==0 ) {
473 ATH_MSG_WARNING( "nBins argument to getLogLinearBins is zero" );
474 return emptyVec;
475 }
477 unsigned int asymVecSize = nBins + 1;
478 std::vector<float> theBinning( asymVecSize, 0.);
480 float logStart = std::log( absMin );
481 float logDist = std::log( absMax ) - logStart;
482 float logStep = logDist / (float) nBins;
484 float thisLog{ logStart };
485 for( float& thisBin : theBinning ) {
486 thisBin = std::exp( thisLog );
487 thisLog += logStep;
488 }
489 if( symmetriseAroundZero ) {
491 return emptyVec;
492 }
493 return theBinning;
494}
#define ATH_MSG_WARNING(x)

◆ initialize()

StatusCode IDTPM::PlotMgr::initialize ( )

initialize


— initialize —

intialize PlotBase

Definition at line 37 of file PlotMgr.cxx.

38{
41 return StatusCode::SUCCESS;
42}
void initialize()
Definition PlotBase.cxx:39

◆ initializePlots()

virtual void PlotBase::initializePlots ( )
inlineprivatevirtualinherited

Reimplemented in DiTau::CorePlots, DiTau::ResolutionPlots, Egamma::ClusMomentumPlots, Egamma::ElectronFrwdPlots, Egamma::ElectronPlots, Egamma::IsolationPlots, Egamma::KinematicsPlots, Egamma::LRTElectronPlots, Egamma::PhotonAmbPlots, Egamma::PhotonCnvPlots, Egamma::PhotonConversionPlots, Egamma::PhotonPlots, Egamma::ShowerShapesPlots, Egamma::TrackPlots, ElectronValidationPlots, IDTPM::DuplicateRatePlots, IDTPM::EfficiencyPlots, IDTPM::FakeRatePlots, IDTPM::HitsOnTracksPlots, IDTPM::NtracksPlots, IDTPM::OfflineElectronPlots, IDTPM::ResolutionPlots, IDTPM::SummaryPlots, IDTPM::TrackParametersPlots, IDTPM::VertexParametersPlots, InDetBasicPlot, InDetPerfNtuple, InDetPerfPlot_Duplicate, InDetPerfPlot_Efficiency, InDetPerfPlot_FakeRate, InDetPerfPlot_HitEfficiency, InDetPerfPlot_HitResidual, InDetPerfPlot_Hits, InDetPerfPlot_nTracks, InDetPerfPlot_Resolution, InDetPerfPlot_TrackParameters, InDetPerfPlot_TrkInJet, InDetPerfPlot_TRTExtension, InDetPerfPlot_Vertex, InDetPerfPlot_VertexTruthMatching, InDetPerfPlot_VerticesVsMu, JetTagDQA::BTaggingValidationPlots, LRTElectronValidationPlots, Muon::BetaPlots, Muon::ChargeDepParamPlots, Muon::HitFracTypePlots, Muon::IsoCorrPlots, Muon::IsoPlots, Muon::MomentumPullPlots, Muon::MomentumTruthPullPlots, Muon::MuonParamElossPlots, Muon::MuonParamPlots, Muon::MuonTree, Muon::RecoInfoPlots, Muon::SlowMuonParamPlots, PFO::ClusterMomentPlots, PFO::ClusterPlots, PFO::FlowElement_LinkerPlots, PFO::LeptonFELinkerPlots, PFO::PFOAlgPropertyPlots, PFO::PFOAttributePlots, PFO::PFOCalibHitClusterMomentPlots, PFO::PFOClusterMomentPlots, PFO::PFOPlots, PFO::PFOPVMatchedPlots, PhotonValidationPlots, PhysVal::BTagPlots, PhysVal::EventInfoPlots, PhysVal::KinematicsPlots, PhysVal::METPlots, PhysVal::TrkAndVtxPlots, RecoLumiPlots, RecoMuonIDTrackPlots, RecoMuonPlots, RecoMuonSegmentPlots, RecoMuonTrackPlots, RecoPhysPlots, RecoVertexPlots, Tau::CorePlots, Tau::DecayModeMigration, Tau::EfficiencyPlots, Tau::EVetoPlots, Tau::GeneralTauPlots, Tau::ResolutionPlots, Tau::TauIDVariablesPlots, Tau::TauKinematicPlots, Tau::TauParticleFlowPlots, TCCPlots, Trk::DefParamPullPlots, Trk::EfficiencyPlots, Trk::ExtrLayerPlots, Trk::ExtrRegionPlots, Trk::HitResidualPlots, Trk::HitTypePlots, Trk::IDHitPlots, Trk::ImpactPlots, Trk::ParamPlots, Trk::RecoInfoPlots, Trk::ResolutionPlots, Trk::TruthInfoPlots, ZeeValidation::FWDZeePlots, ZeeValidation::ReconElectronsPlots, ZeeValidation::TrueElectronsPlots, ZeeValidation::TrueFwdElectronsPlots, and ZeeValidation::ZeePlots.

Definition at line 91 of file PlotBase.h.

91{;}

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

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

◆ retrieveAndBook()

template<class P>
StatusCode IDTPM::PlotMgr::retrieveAndBook ( P *& pHisto,
const std::string & identifier,
const std::string & folderOverride = "",
const std::string & nameOverride = "" )
inline

— Book plots methods —

Helper method to book plots using an identifier string

Parameters
pHistoPointer to the histogram to be booked (assumed to be initialized to nullptr)
histoIdentifierstring identifier of the plot (looked up from PlotsDefinitionSvc)
nameOverrideAllows to override the histo name
folderOverrideAllows to override the folder of the histo

Definition at line 64 of file PlotMgr.h.

69 {
70 const SinglePlotDefinition& def =
71 retrieveDefinition( identifier, folderOverride, nameOverride );
72 if( def.isEmpty() or not def.isValid() ) {
73 ATH_MSG_WARNING( "Trying to book empty or non-valid plot : " << identifier );
74 return StatusCode::RECOVERABLE;
75 }
76 ATH_CHECK( book( pHisto, def ) );
77 return StatusCode::SUCCESS;
78 }
StatusCode book(TH1 *&pHisto, const SinglePlotDefinition &def)
Book a TH1 histogram.
Definition PlotMgr.cxx:78
SinglePlotDefinition retrieveDefinition(const std::string &identifier, const std::string &folderOverride="", const std::string &nameOverride="") const
Retrieve a single histogram definition, given the unique string identifier.
Definition PlotMgr.cxx:48

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

IDTPM::SinglePlotDefinition IDTPM::PlotMgr::retrieveDefinition ( const std::string & identifier,
const std::string & folderOverride = "",
const std::string & nameOverride = "" ) const

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


— retrieveDefinition —

Loading PlotsDefinitionSvc

retrieve a copy of the plot definition

Check if definition is empty or non-valid

Override directory?

Override name?

Definition at line 48 of file PlotMgr.cxx.

52{
54 ISvcLocator* svcLoc = Gaudi::svcLocator();
55 SmartIF<IPlotsDefinitionSvc> plotsDefSvc(svcLoc->service( "PlotsDefSvc"+m_anaTag ));
56 ATH_CHECK( plotsDefSvc.isValid(), {} );
57
59 SinglePlotDefinition sDef = plotsDefSvc->definition( identifier );
60
62 if( sDef.isEmpty() or not sDef.isValid() ) return sDef;
63
65 if( not folderOverride.empty() ) sDef.folder( folderOverride );
66
68 if( not nameOverride.empty() ) sDef.name( nameOverride );
69
70 return sDef;
71}

◆ setBinLabels()

template<class P>
StatusCode IDTPM::PlotMgr::setBinLabels ( P *& pHisto,
const std::vector< std::string > & binLabels,
char axis )
inlineprotected

SetBinLabels (for TH* and TProfile* only)

Definition at line 196 of file PlotMgr.h.

198 {
199 if( axis == 'X' ) {
200 size_t nBinsX = pHisto->GetXaxis()->GetNbins();
201 if( nBinsX != binLabels.size() ) {
202 ATH_MSG_ERROR( "Mismstch in number of X bin labels for : " << pHisto->GetName() );
203 return StatusCode::FAILURE;
204 }
205 for( size_t bin = 0; bin < nBinsX; bin++ ) {
206 pHisto->GetXaxis()->SetBinLabel( bin+1, binLabels[ bin ].c_str() );
207 }
208 }
209 if( axis == 'Y' ) {
210 size_t nBinsY = pHisto->GetYaxis()->GetNbins();
211 if( nBinsY != binLabels.size() ) {
212 ATH_MSG_ERROR( "Mismstch in number of Y bin labels for : " << pHisto->GetName() );
213 return StatusCode::FAILURE;
214 }
215 for( size_t bin = 0; bin < nBinsY; bin++ ) {
216 pHisto->GetYaxis()->SetBinLabel( bin+1, binLabels[ bin ].c_str() );
217 }
218 }
219 if( axis == 'Z' ) {
220 size_t nBinsZ = pHisto->GetZaxis()->GetNbins();
221 if( nBinsZ != binLabels.size() ) {
222 ATH_MSG_ERROR( "Mismstch in number of Z bin labels for : " << pHisto->GetName() );
223 return StatusCode::FAILURE;
224 }
225 for( size_t bin = 0; bin < nBinsZ; bin++ ) {
226 pHisto->GetZaxis()->SetBinLabel( bin+1, binLabels[ bin ].c_str() );
227 }
228 }
229 return StatusCode::SUCCESS;
230 }

◆ 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

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

◆ setLogLinearBins()

template<class P>
StatusCode IDTPM::PlotMgr::setLogLinearBins ( P *& pHisto,
unsigned int nBins,
float absMin,
float absMax,
char axis )
inlineprotected

Set Log-Linear axis.

Definition at line 170 of file PlotMgr.h.

172 {
173 std::vector<float> binning = getLogLinearBins( nBins, absMin, absMax );
174 ATH_CHECK( setVariableBins( pHisto, binning, axis ) );
175 return StatusCode::SUCCESS;
176 }
std::vector< float > getLogLinearBins(unsigned int nBins, float absMin, float absMax, bool symmetriseAroundZero=false)
Get Log-Linear binning vector inherited from InDetPhysValMonitoring/src/logLinearBinning....
Definition PlotMgr.cxx:464

◆ setLogLinearBinsEff()

template<class P>
StatusCode IDTPM::PlotMgr::setLogLinearBinsEff ( P *& pHisto,
unsigned int nBins,
float absMin,
float absMax,
char axis )
inlineprotected

Set Log-Linear axis (for Efficiencies)

Definition at line 180 of file PlotMgr.h.

182 {
183 std::vector<float> binning = getLogLinearBins( nBins, absMin, absMax );
184 ATH_CHECK( setVariableBinsEff( pHisto, binning, axis ) );
185 return StatusCode::SUCCESS;
186 }
StatusCode setVariableBinsEff(P *&pHisto, const std::vector< float > &binning, char axis)
SetVariableBins (for Efficiencies)
Definition PlotMgr.h:150

◆ setVariableBins()

template<class P>
StatusCode IDTPM::PlotMgr::setVariableBins ( P *& pHisto,
const std::vector< float > & binning,
char axis )
inlineprotected

SetVariableBins.

Definition at line 135 of file PlotMgr.h.

137 {
138 if( binning.empty() ) {
139 ATH_MSG_ERROR( "Non-valid variable plot binning : " << pHisto->GetName() );
140 return StatusCode::FAILURE;
141 }
142 if( axis == 'X' ) pHisto->GetXaxis()->Set( binning.size()-1, binning.data() );
143 if( axis == 'Y' ) pHisto->GetYaxis()->Set( binning.size()-1, binning.data() );
144 if( axis == 'Z' ) pHisto->GetZaxis()->Set( binning.size()-1, binning.data() );
145 return StatusCode::SUCCESS;
146 }

◆ setVariableBinsEff()

template<class P>
StatusCode IDTPM::PlotMgr::setVariableBinsEff ( P *& pHisto,
const std::vector< float > & binning,
char axis )
inlineprotected

SetVariableBins (for Efficiencies)

Definition at line 150 of file PlotMgr.h.

152 {
153 if( binning.empty() ) {
154 ATH_MSG_ERROR( "Non-valid variable plot binning : " << pHisto->GetName() );
155 return StatusCode::FAILURE;
156 }
157 std::vector<double> binningD( binning.begin(), binning.end() );
158 if( axis == 'X' ) pHisto->SetBins( binningD.size()-1, binningD.data() );
159 if( axis == 'Y' ) {
160 pHisto->SetBins(
161 pHisto->GetTotalHistogram()->GetNbinsX(),
162 pHisto->GetTotalHistogram()->GetXaxis()->GetXbins()->GetArray(),
163 binningD.size()-1, binningD.data() );
164 }
165 return StatusCode::SUCCESS;
166 }

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_anaTag

std::string IDTPM::PlotMgr::m_anaTag
protected

Definition at line 232 of file PlotMgr.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_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.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.


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