ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
IDTPM::HitsOnTracksPlots Class Reference

#include <HitsOnTracksPlots.h>

Inheritance diagram for IDTPM::HitsOnTracksPlots:
Collaboration diagram for IDTPM::HitsOnTracksPlots:

Public Member Functions

 HitsOnTracksPlots (PlotMgr *pParent, const std::string &dirName, const std::string &anaTag, const std::string &testType, const std::string &refType, bool isITk, bool doGlobalPlots=false, bool do1D=false)
 Constructor A for test_Hits-vs-reference plots e.g. More...
 
 HitsOnTracksPlots (PlotMgr *pParent, const std::string &dirName, const std::string &anaTag, const std::string &trackType, bool isITk, bool doGlobalPlots=false)
 Constructor B for only one track type e.g. More...
 
virtual ~HitsOnTracksPlots ()=default
 Destructor. More...
 
void initializePlots ()
 Book the histograms. More...
 
StatusCode bookPlots ()
 
template<typename PTEST , typename PREF = PTEST>
StatusCode fillPlots (const PTEST &ptest, const PREF &pref, float truthMu, float actualMu, float weight)
 Dedicated fill method A (for tracks and/or truth particles) for test_Hits-vs-reference plots. More...
 
template<typename PARTICLE >
StatusCode fillPlots (const PARTICLE &particle, float truthMu, float actualMu, float weight)
 Dedicated fill method B (for tracks and/or truth particles) for only one track type. More...
 
void finalizePlots ()
 Print out final stats on histograms. More...
 
StatusCode initialize ()
 initialize More...
 
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. More...
 
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. More...
 
StatusCode book (TH2 *&pHisto, const SinglePlotDefinition &def)
 Book a TH2 histogram. More...
 
StatusCode book (TH3 *&pHisto, const SinglePlotDefinition &def)
 Book a TH3 histogram. More...
 
StatusCode book (TProfile *&pHisto, const SinglePlotDefinition &def)
 Book a TProfile histogram. More...
 
StatusCode book (TProfile2D *&pHisto, const SinglePlotDefinition &def)
 Book a TProfile2D histogram. More...
 
StatusCode book (TEfficiency *&pHisto, const SinglePlotDefinition &def)
 Book a (1D or 2D) TEfficiency histogram. More...
 
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. More...
 
StatusCode fill (TH3 *pTh3, float xval, float yval, float zval, float weight=1.) const
 Fill a TH3 histogram. More...
 
StatusCode fill (TProfile *pTprofile, float xval, float yval, float weight=1.) const
 Fill a TProfile histogram weight allows weighted-averaging in the profile. More...
 
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. More...
 
StatusCode fill (TEfficiency *pTeff, float value, bool accepted, float weight=1.) const
 Fill a (1D) TEfficiency histogram. More...
 
StatusCode fill (TEfficiency *pTeff2d, float xvalue, float yvalue, bool accepted, float weight=1.) const
 Fill a (2D) TEfficiency histogram. More...
 
void finalize ()
 
void setDetailLevel (int iDetailLevel)
 
void RegisterSubPlot (PlotBase *pPlotBase)
 
std::vector< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms. More...
 
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees. More...
 
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects. More...
 
TTree * BookTree (const std::string &name, bool prependDir=true)
 Book a TTree. More...
 
const std::string & getDirectory ()
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Protected Member Functions

template<class P >
StatusCode setVariableBins (P *&pHisto, const std::vector< float > &binning, char axis)
 SetVariableBins. More...
 
template<class P >
StatusCode setVariableBinsEff (P *&pHisto, const std::vector< float > &binning, char axis)
 SetVariableBins (for Efficiencies) More...
 
template<class P >
StatusCode setLogLinearBins (P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
 Set Log-Linear axis. More...
 
template<class P >
StatusCode setLogLinearBinsEff (P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
 Set Log-Linear axis (for Efficiencies) More...
 
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. More...
 

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 Types

enum  HitParam {
  NInnerMostPixelHits, NInnerMostPixelEndcapHits, NNextToInnerMostPixelHits, NNextToInnerMostPixelEndcapHits,
  NInnerMostPixelSharedHits, NInnerMostPixelSharedEndcapHits, NPixelHits, NPixelHoles,
  NPixelSharedHits, PixeldEdx, NSCTHits, NSCTHoles,
  NSCTSharedHits, NInnerMostPixelOutliers, NInnerMostPixelEndcapOutliers, NInnerMostPixelSplitHits,
  NInnerMostPixelSplitEndcapHits, NExpectedInnerMostPixelHits, NExpectedNextToInnerMostPixelHits, NPixelOutliers,
  NPixelContribLayers, NPixelSplitHits, NPixelGangedHits, NPixelGangedHitsFlaggedFakes,
  NPixelDeadSensors, NSCTOutliers, NSCTDoubleHoles, NSCTDeadSensors,
  NHITPARAMSTOT, NHITPARAMSBASE = 13
}
 
enum  Run3HitParam {
  NTRTHits, NTRTHitsXe, NTRTHitsAr, NTRTHighThresholdHits,
  NTRTHighThresholdHitsXe, NTRTHighThresholdHitsAr, NTRTOutliers, NTRTHighThresholdOutliers,
  NRUN3HITPARAMSTOT, NRUN3HITPARAMSBASE = 6
}
 
enum  Param { PT, ETA, PHI, NPARAMS }
 
enum  ParamMu { TRUTHMU, ACTUALMU, NPARAMSMU }
 

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Static Private Member Functions

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

Private Attributes

std::string m_testType
 
std::string m_refType
 
bool m_isITk
 
bool m_doGlobalPlots
 
bool m_do1D
 
unsigned int m_NHITPARAMS
 
std::string m_hitParamName [NHITPARAMSTOT]
 
unsigned int m_NRUN3HITPARAMS
 
std::string m_run3HitParamName [NRUN3HITPARAMSTOT]
 
std::string m_paramName [NPARAMS] = { "pt", "eta", "phi" }
 
std::string m_paramMuName [NPARAMSMU] = { "truthMu", "actualMu" }
 
TH1 * m_hits [NHITPARAMSTOT]
 1D plots More...
 
TH1 * m_hitsRun3 [NRUN3HITPARAMSTOT]
 
TProfile * m_hits_vs [NHITPARAMSTOT][NPARAMS]
 TProfile plots vs NPARAMS. More...
 
TProfile * m_hitsRun3_vs [NRUN3HITPARAMSTOT][NPARAMS]
 
TProfile2D * m_hits_vs2D [NHITPARAMSTOT][NPARAMS][NPARAMS]
 TProfile2D plots vs NPARAMS vs NPARAMS. More...
 
TProfile2D * m_hitsRun3_vs2D [NRUN3HITPARAMSTOT][NPARAMS][NPARAMS]
 
TProfile * m_hits_vsMu [NHITPARAMSTOT][NPARAMSMU]
 TProfile plots vs mu (truth and actual) More...
 
TProfile * m_hitsRun3_vsMu [NRUN3HITPARAMSTOT][NPARAMSMU]
 
TProfile2D * m_hits_vsMu_vs [NHITPARAMSTOT][NPARAMSMU][NPARAMS]
 TProfile2D plots vs mu (truth and actual) vs NPARAMS. More...
 
TProfile2D * m_hitsRun3_vsMu_vs [NRUN3HITPARAMSTOT][NPARAMSMU][NPARAMS]
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Definition at line 19 of file HitsOnTracksPlots.h.

Member Enumeration Documentation

◆ HitParam

Enumerator
NInnerMostPixelHits 
NInnerMostPixelEndcapHits 
NNextToInnerMostPixelHits 
NNextToInnerMostPixelEndcapHits 
NInnerMostPixelSharedHits 
NInnerMostPixelSharedEndcapHits 
NPixelHits 
NPixelHoles 
NPixelSharedHits 
PixeldEdx 
NSCTHits 
NSCTHoles 
NSCTSharedHits 
NInnerMostPixelOutliers 

for greater detail level plots

NInnerMostPixelEndcapOutliers 
NInnerMostPixelSplitHits 
NInnerMostPixelSplitEndcapHits 
NExpectedInnerMostPixelHits 
NExpectedNextToInnerMostPixelHits 
NPixelOutliers 
NPixelContribLayers 
NPixelSplitHits 
NPixelGangedHits 
NPixelGangedHitsFlaggedFakes 
NPixelDeadSensors 
NSCTOutliers 
NSCTDoubleHoles 
NSCTDeadSensors 
NHITPARAMSTOT 
NHITPARAMSBASE 

Definition at line 79 of file HitsOnTracksPlots.h.

◆ Param

Enumerator
PT 
ETA 
PHI 
NPARAMS 

Definition at line 173 of file HitsOnTracksPlots.h.

173 { PT, ETA, PHI, NPARAMS };

◆ ParamMu

Enumerator
TRUTHMU 
ACTUALMU 
NPARAMSMU 

Definition at line 176 of file HitsOnTracksPlots.h.

◆ Run3HitParam

Enumerator
NTRTHits 
NTRTHitsXe 
NTRTHitsAr 
NTRTHighThresholdHits 
NTRTHighThresholdHitsXe 
NTRTHighThresholdHitsAr 
NTRTOutliers 

for greater detail level plots

NTRTHighThresholdOutliers 
NRUN3HITPARAMSTOT 
NRUN3HITPARAMSBASE 

Definition at line 146 of file HitsOnTracksPlots.h.

Constructor & Destructor Documentation

◆ HitsOnTracksPlots() [1/2]

IDTPM::HitsOnTracksPlots::HitsOnTracksPlots ( PlotMgr pParent,
const std::string &  dirName,
const std::string &  anaTag,
const std::string &  testType,
const std::string &  refType,
bool  isITk,
bool  doGlobalPlots = false,
bool  do1D = false 
)

Constructor A for test_Hits-vs-reference plots e.g.

local include(s)

offl_nPixelHits_vs_truth_eta


--— Constructor A --—

TODO - dynamically switch b/w NHITPARAMSBASE or NHITPARAMSTOT based on plot detail level

Definition at line 18 of file HitsOnTracksPlots.cxx.

24  :
25  PlotMgr( dirName, anaTag, pParent ),
26  m_testType( testType ), m_refType( refType ),
27  m_isITk( isITk ), m_doGlobalPlots( doGlobalPlots ), m_do1D( do1D )
28 {
32 }

◆ HitsOnTracksPlots() [2/2]

IDTPM::HitsOnTracksPlots::HitsOnTracksPlots ( PlotMgr pParent,
const std::string &  dirName,
const std::string &  anaTag,
const std::string &  trackType,
bool  isITk,
bool  doGlobalPlots = false 
)

Constructor B for only one track type e.g.

offl_nPixelHits & offl_nPixelHits_vs_offl_eta


--— Constructor B --—

TODO - dynamically switch b/w NHITPARAMSBASE or NHITPARAMSTOT based on plot detail level

Definition at line 38 of file HitsOnTracksPlots.cxx.

43  :
44  PlotMgr( dirName, anaTag, pParent ),
45  m_testType( trackType ), m_refType( trackType ),
46  m_isITk( isITk ), m_doGlobalPlots( doGlobalPlots ), m_do1D( true )
47 {
51 }

◆ ~HitsOnTracksPlots()

virtual IDTPM::HitsOnTracksPlots::~HitsOnTracksPlots ( )
virtualdefault

Destructor.

Member Function Documentation

◆ book() [1/6]

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

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

Definition at line 240 of file PlotMgr.cxx.

242 {
243  if( not def.isValid() ) {
244  ATH_MSG_ERROR( "Non-valid TEfficiency plot : " << def.identifier() );
245  return StatusCode::FAILURE;
246  }
247 
248  pHisto = ( def.nBinsY() == 0 ) ?
249  BookTEfficiency( def.name(), def.titleDigest(),
250  def.nBinsX(), def.xLow(), def.xHigh(),
251  false ) :
252  BookTEfficiency( def.name(), def.titleDigest(),
253  def.nBinsX(), def.xLow(), def.xHigh(),
254  def.nBinsY(), def.yLow(), def.yHigh(),
255  false );
256 
257  if( def.doLogLinBinsX() ) {
258  ATH_CHECK( setLogLinearBinsEff( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
259  }
260 
261  if( def.doLogLinBinsY() and def.nBinsY() != 0 ) {
262  ATH_CHECK( setLogLinearBinsEff( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
263  }
264 
265  if( def.doVarBinsX() ) {
266  ATH_CHECK( setVariableBinsEff( pHisto, def.xBinsVec(), 'X' ) );
267  }
268 
269  if( def.doVarBinsY() and def.nBinsY() != 0 ) {
270  ATH_CHECK( setVariableBinsEff( pHisto, def.yBinsVec(), 'Y' ) );
271  }
272 
273  return StatusCode::SUCCESS;
274 }

◆ book() [2/6]

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

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  return StatusCode::SUCCESS;
99 }

◆ book() [3/6]

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

Book a TH2 histogram.

Definition at line 103 of file PlotMgr.cxx.

105 {
106  if( not def.isValid() ) {
107  ATH_MSG_ERROR( "Non-valid TH2 plot : " << def.identifier() );
108  return StatusCode::FAILURE;
109  }
110 
111  pHisto = Book2D( def.name(), def.titleDigest(),
112  def.nBinsX(), def.xLow(), def.xHigh(),
113  def.nBinsY(), def.yLow(), def.yHigh(),
114  false );
115 
116  if( def.doLogLinBinsX() ) {
117  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
118  }
119 
120  if( def.doLogLinBinsY() ) {
121  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
122  }
123 
124  if( def.doVarBinsX() ) {
125  ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
126  }
127 
128  if( def.doVarBinsY() ) {
129  ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
130  }
131 
132  return StatusCode::SUCCESS;
133 }

◆ book() [4/6]

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

Book a TH3 histogram.

Definition at line 137 of file PlotMgr.cxx.

139 {
140  if( not def.isValid() ) {
141  ATH_MSG_ERROR( "Non-valid TH3 plot : " << def.identifier() );
142  return StatusCode::FAILURE;
143  }
144 
145  pHisto = Book3D( def.name(), def.titleDigest(),
146  def.nBinsX(), def.xLow(), def.xHigh(),
147  def.nBinsY(), def.yLow(), def.yHigh(),
148  def.nBinsZ(), def.zLow(), def.zHigh(),
149  false );
150 
151  if( def.doLogLinBinsX() ) {
152  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
153  }
154 
155  if( def.doLogLinBinsY() ) {
156  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
157  }
158 
159  if( def.doLogLinBinsZ() ) {
160  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsZ(), def.zLow(), def.zHigh(), 'Z' ) );
161  }
162 
163  if( def.doVarBinsX() ) {
164  ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
165  }
166 
167  if( def.doVarBinsY() ) {
168  ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
169  }
170 
171  if( def.doVarBinsZ() ) {
172  ATH_CHECK( setVariableBins( pHisto, def.zBinsVec(), 'Z' ) );
173  }
174 
175  return StatusCode::SUCCESS;
176 }

◆ book() [5/6]

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

Book a TProfile histogram.

Definition at line 180 of file PlotMgr.cxx.

182 {
183  if( not def.isValid() ) {
184  ATH_MSG_ERROR( "Non-valid TProfile plot : " << def.identifier() );
185  return StatusCode::FAILURE;
186  }
187 
188  pHisto = BookTProfile( def.name(), def.titleDigest(),
189  def.nBinsX(), def.xLow(), def.xHigh(),
190  def.yLow(), def.yHigh(),
191  false );
192 
193  if( def.doLogLinBinsX() ) {
194  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
195  }
196 
197  if( def.doVarBinsX() ) {
198  ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
199  }
200 
201  return StatusCode::SUCCESS;
202 }

◆ book() [6/6]

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

Book a TProfile2D histogram.

Definition at line 206 of file PlotMgr.cxx.

208 {
209  if( not def.isValid() ) {
210  ATH_MSG_ERROR( "Non-valid TProfile2D plot : " << def.identifier() );
211  return StatusCode::FAILURE;
212  }
213 
214  pHisto = BookTProfile2D( def.name(), def.titleDigest(),
215  def.nBinsX(), def.xLow(), def.xHigh(),
216  def.nBinsY(), def.yLow(), def.yHigh(),
217  false );
218 
219  if( def.doLogLinBinsX() ) {
220  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsX(), def.xLow(), def.xHigh(), 'X' ) );
221  }
222 
223  if( def.doLogLinBinsY() ) {
224  ATH_CHECK( setLogLinearBins( pHisto, def.nBinsY(), def.yLow(), def.yHigh(), 'Y' ) );
225  }
226 
227  if( def.doVarBinsX() ) {
228  ATH_CHECK( setVariableBins( pHisto, def.xBinsVec(), 'X' ) );
229  }
230 
231  if( def.doVarBinsY() ) {
232  ATH_CHECK( setVariableBins( pHisto, def.yBinsVec(), 'Y' ) );
233  }
234 
235  return StatusCode::SUCCESS;
236 }

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

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

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

◆ bookPlots()

StatusCode IDTPM::HitsOnTracksPlots::bookPlots ( )

1D plots e.g. "offl_nPixelHits"

TProfile plots vs NPARAMS e.g. "offl_nPixelHits_vs_offl_eta" or "offl_nPixelHits_vs_truth_eta"

TProfile2D plots vs NPARAMS vs NPARAMS e.g. "offl_nPixelHits_vs_offl_eta_vs_phi" or "offl_nPixelHits_vs_truth_eta_vs_phi"

TProfile plots vs mu (truth and actual) e.g. "offl_nPixelHits_vs_actualMu"

TProfile2D plots vs mu (truth and actual) vs NPARAMS e.g. "offl_nPixelHits_vs_actualMu_vs_offl_eta" or "offl_nPixelHits_vs_actualMu_vs_truth_eta"

Definition at line 66 of file HitsOnTracksPlots.cxx.

67 {
68  ATH_MSG_DEBUG( "Booking hits on tracks plots in " << getDirectory() );
69 
72  if( m_do1D ) {
73  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
75  }
76 
77  if( not m_isITk ) {
78  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
80  }
81  }
82  }
83 
84  for( unsigned int i=0; i<NPARAMS; i++ ) {
87  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
89  m_testType+"_"+m_hitParamName[ih]+"_vs_"+m_refType+"_"+m_paramName[i] ) );
90  }
91 
92  if( not m_isITk ) {
93  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
95  m_testType+"_"+m_run3HitParamName[ih]+"_vs_"+m_refType+"_"+m_paramName[i] ) );
96  }
97  }
98 
101  for( unsigned int j=i+1; j<NPARAMS; j++ ) {
102  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
104  m_testType+"_"+m_hitParamName[ih]+"_vs_"+m_refType+"_"+m_paramName[i]+"_vs_"+m_paramName[j] ) );
105  }
106 
107  if( not m_isITk ) {
108  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
110  m_testType+"_"+m_run3HitParamName[ih]+"_vs_"+m_refType+"_"+m_paramName[i]+"_vs_"+m_paramName[j] ) );
111  }
112  }
113  } // close j loop over NPARAMS
114  } // close i loop over NPARAMS
115 
116  if( m_doGlobalPlots ) {
117  for( unsigned int i=0; i<NPARAMSMU; i++ ) {
118  if( m_do1D ) {
121  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
123  m_testType+"_"+m_hitParamName[ih]+"_vs_"+m_paramMuName[i] ) );
124  }
125 
126  if( not m_isITk ) {
127  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
129  m_testType+"_"+m_run3HitParamName[ih]+"_vs_"+m_paramMuName[i] ) );
130  }
131  }
132  } // close if m_do1D
133 
136  for( unsigned int j=0; j<NPARAMS; j++ ) {
137  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
139  m_testType+"_"+m_hitParamName[ih]+"_vs_"+m_paramMuName[i]+"_vs_"+m_refType+"_"+m_paramName[j] ) );
140  }
141 
142  if( not m_isITk ) {
143  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
145  m_testType+"_"+m_run3HitParamName[ih]+"_vs_"+m_paramMuName[i]+"_vs_"+m_refType+"_"+m_paramName[j] ) );
146  }
147  }
148  } // close j loop over NPARAMS
149  } // close i loop over NPARAMSMU
150  } // end if m_doGlobalPlots
151 
152  return StatusCode::SUCCESS;
153 }

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

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

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

Fill a (1D) TEfficiency histogram.

fill the plot To get proper error estimate when possible

Definition at line 384 of file PlotMgr.cxx.

386 {
387  if( not pTeff ) {
388  ATH_MSG_ERROR( "Trying to fill non-definded 1D TEfficiency" );
389  return StatusCode::FAILURE;
390  }
391 
392  if( std::isnan( value ) or std::isnan( weight ) ) {
393  ATH_MSG_ERROR( "Non-valid fill arguments for 1D TEfficiency:" << pTeff->GetName() );
394  return StatusCode::FAILURE;
395  }
396 
399  if( weight==1.) pTeff->Fill( accepted, value );
400  else pTeff->FillWeighted( accepted, weight, value );
401  return StatusCode::SUCCESS;
402 }

◆ fill() [2/7]

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

Fill a (2D) TEfficiency histogram.

fill the plot To get proper error estimate when possible

Definition at line 406 of file PlotMgr.cxx.

408 {
409  if( not pTeff2d ) {
410  ATH_MSG_ERROR( "Trying to fill non-definded 2D TEfficiency" );
411  return StatusCode::FAILURE;
412  }
413 
414  if( std::isnan( xvalue ) or std::isnan( yvalue ) or std::isnan( weight ) ) {
415  ATH_MSG_ERROR( "Non-valid fill arguments for 2D TEfficiency:" << pTeff2d->GetName() );
416  return StatusCode::FAILURE;
417  }
418 
421  if( weight==1.) pTeff2d->Fill( accepted, xvalue, yvalue );
422  else pTeff2d->FillWeighted( accepted, weight, xvalue, yvalue );
423  return StatusCode::SUCCESS;
424 }

◆ fill() [3/7]

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

— Fill plots methods —

Fill a TH1 histogram


— Fill histograms methods —

Fill a TH1 histogram

fill the plot

Definition at line 281 of file PlotMgr.cxx.

283 {
284  if( not pTh1 ) {
285  ATH_MSG_ERROR( "Trying to fill non-definded TH1" );
286  return StatusCode::FAILURE;
287  }
288 
289  if( std::isnan( value ) or std::isnan( weight ) ) {
290  ATH_MSG_ERROR( "Non-valid fill arguments for TH1:" << pTh1->GetName() );
291  return StatusCode::FAILURE;
292  }
293 
295  pTh1->Fill( value, weight );
296  return StatusCode::SUCCESS;
297 }

◆ fill() [4/7]

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

Fill a TH2 histogram.

fill the plot

Definition at line 301 of file PlotMgr.cxx.

303 {
304  if( not pTh2 ) {
305  ATH_MSG_ERROR( "Trying to fill non-definded TH2" );
306  return StatusCode::FAILURE;
307  }
308 
309  if( std::isnan( xval ) or std::isnan( yval ) or std::isnan( weight ) ) {
310  ATH_MSG_ERROR( "Non-valid fill arguments for TH2:" << pTh2->GetName() );
311  return StatusCode::FAILURE;
312  }
313 
315  pTh2->Fill( xval, yval, weight );
316  return StatusCode::SUCCESS;
317 }

◆ fill() [5/7]

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

Fill a TH3 histogram.

fill the plot

Definition at line 321 of file PlotMgr.cxx.

323 {
324  if( not pTh3 ) {
325  ATH_MSG_ERROR( "Trying to fill non-definded TH3" );
326  return StatusCode::FAILURE;
327  }
328 
329  if( std::isnan( xval ) or std::isnan( yval ) or
330  std::isnan( zval ) or std::isnan( weight ) ) {
331  ATH_MSG_ERROR( "Non-valid fill arguments for TH3:" << pTh3->GetName() );
332  return StatusCode::FAILURE;
333  }
334 
335 
337  pTh3->Fill( xval, yval, zval, weight );
338  return StatusCode::SUCCESS;
339 }

◆ fill() [6/7]

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

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

Fill a TProfile histogram.

fill the plot

Definition at line 343 of file PlotMgr.cxx.

345 {
346  if( not pTprofile ) {
347  ATH_MSG_ERROR( "Trying to fill non-definded TProfile" );
348  return StatusCode::FAILURE;
349  }
350 
351  if( std::isnan( xval ) or std::isnan( yval ) or std::isnan( weight ) ) {
352  ATH_MSG_ERROR( "Non-valid fill arguments for TProfile:" << pTprofile->GetName() );
353  return StatusCode::FAILURE;
354  }
355 
357  pTprofile->Fill( xval, yval, weight );
358  return StatusCode::SUCCESS;
359 }

◆ fill() [7/7]

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

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

Fill a TProfile2D histogram.

fill the plot

Definition at line 363 of file PlotMgr.cxx.

365 {
366  if( not pTprofile ) {
367  ATH_MSG_ERROR( "Trying to fill non-definded TProfile2D" );
368  return StatusCode::FAILURE;
369  }
370 
371  if( std::isnan( xval ) or std::isnan( yval ) or
372  std::isnan( zval ) or std::isnan( weight ) ) {
373  ATH_MSG_ERROR( "Non-valid fill arguments for TProfile2D:" << pTprofile->GetName() );
374  return StatusCode::FAILURE;
375  }
376 
378  pTprofile->Fill( xval, yval, zval, weight );
379  return StatusCode::SUCCESS;
380 }

◆ fillPlots() [1/2]

template<typename PARTICLE >
StatusCode IDTPM::HitsOnTracksPlots::fillPlots ( const PARTICLE &  particle,
float  truthMu,
float  actualMu,
float  weight 
)

Dedicated fill method B (for tracks and/or truth particles) for only one track type.


— Dedicated fill method B —

for tracks and/or truth particles for for only one track type

Definition at line 293 of file HitsOnTracksPlots.cxx.

295 {
296  ATH_CHECK( fillPlots< PARTICLE >( particle, particle, truthMu, actualMu, weight ) );
297  return StatusCode::SUCCESS;
298 }

◆ fillPlots() [2/2]

template<typename PTEST , typename PREF >
StatusCode IDTPM::HitsOnTracksPlots::fillPlots ( const PTEST &  ptest,
const PREF &  pref,
float  truthMu,
float  actualMu,
float  weight 
)

Dedicated fill method A (for tracks and/or truth particles) for test_Hits-vs-reference plots.


— Dedicated fill method A —

for tracks and/or truth particles for test_Hits-vs-reference plots

Compute hits parameters

Compute track parameters

mu parameters

Fill the histograms

1D plots

TProfile plots vs NPARAMS

TProfile2D plots vs NPARAMS vs NPARAMS

TProfile plots vs mu (truth and actual)

TProfile2D plots vs mu (truth and actual) vs NPARAMS

Definition at line 162 of file HitsOnTracksPlots.cxx.

164 {
166  float hitP[ NHITPARAMSTOT ];
167  hitP[ NInnerMostPixelHits ] = nInnerMostPixelHits( ptest );
173  hitP[ NPixelHits ] = nPixelHits( ptest );
174  hitP[ NPixelHoles ] = nPixelHoles( ptest );
175  hitP[ NPixelSharedHits ] = nPixelSharedHits( ptest );
176  hitP[ PixeldEdx ] = pixeldEdx( ptest );
177  hitP[ NSCTHits ] = nSCTHits( ptest );
178  hitP[ NSCTHoles ] = nSCTHoles( ptest );
179  hitP[ NSCTSharedHits ] = nSCTSharedHits( ptest );
180 
181  float hitRun3P[ NRUN3HITPARAMSTOT ];
182  hitRun3P[ NTRTHits ] = ( not m_isITk ) ? nTRTHits( ptest ) : -9999.;
183  hitRun3P[ NTRTHitsXe ] = ( not m_isITk ) ? nTRTHitsXe( ptest ) : -9999.;
184  hitRun3P[ NTRTHitsAr ] = ( not m_isITk ) ? nTRTHitsAr( ptest ) : -9999.;
185  hitRun3P[ NTRTHighThresholdHits ] = ( not m_isITk ) ? nTRTHighThresholdHits( ptest ) : -9999.;
186  hitRun3P[ NTRTHighThresholdHitsXe ] = ( not m_isITk ) ? nTRTHighThresholdHitsXe( ptest ) : -9999.;
187  hitRun3P[ NTRTHighThresholdHitsAr ] = ( not m_isITk ) ? nTRTHighThresholdHitsAr( ptest ) : -9999.;
188 
190  float refP[ NPARAMS ];
191  refP[ PT ] = pT( pref ) / Gaudi::Units::GeV;
192  refP[ ETA ] = eta( pref );
193  refP[ PHI ] = phi( pref );
194 
196  float muP[ NPARAMSMU ];
197  muP[ TRUTHMU ] = truthMu;
198  muP[ ACTUALMU ] = actualMu;
199 
201 
203  if( m_do1D ) {
204  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
205  ATH_CHECK( fill( m_hits[ih], hitP[ih], weight ) );
206  }
207 
208  if( not m_isITk ) {
209  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
210  ATH_CHECK( fill( m_hitsRun3[ih], hitRun3P[ih], weight ) );
211  }
212  }
213  }
214 
215  for( unsigned int i=0; i<NPARAMS; i++ ) {
217  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
218  ATH_CHECK( fill( m_hits_vs[ih][i], refP[i], hitP[ih], weight ) );
219  }
220 
221  if( not m_isITk ) {
222  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
223  ATH_CHECK( fill( m_hitsRun3_vs[ih][i], refP[i], hitRun3P[ih], weight ) );
224  }
225  }
226 
228  for( unsigned int j=i+1; j<NPARAMS; j++ ) {
229  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
230  ATH_CHECK( fill( m_hits_vs2D[ih][i][j], refP[i], refP[j], hitP[ih], weight ) );
231  }
232 
233  if( not m_isITk ) {
234  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
235  ATH_CHECK( fill( m_hitsRun3_vs2D[ih][i][j], refP[i], refP[j], hitRun3P[ih], weight ) );
236  }
237  }
238  } // close j loop over NPARAMS
239  } // close i loop over NPARAMS
240 
241  if( m_doGlobalPlots ) {
242  for( unsigned int i=0; i<NPARAMSMU; i++ ) {
243  if( m_do1D ) {
245  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
246  ATH_CHECK( fill( m_hits_vsMu[ih][i], muP[i], hitP[ih], weight ) );
247  }
248 
249  if( not m_isITk ) {
250  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
251  ATH_CHECK( fill( m_hitsRun3_vsMu[ih][i], muP[i], hitRun3P[ih], weight ) );
252  }
253  }
254  } // close if m_do1D
255 
257  for( unsigned int j=0; j<NPARAMS; j++ ) {
258  for( unsigned int ih=0; ih<m_NHITPARAMS; ih++ ) {
259  ATH_CHECK( fill( m_hits_vsMu_vs[ih][i][j], muP[i], refP[j], hitP[ih], weight ) );
260  }
261 
262  if( not m_isITk ) {
263  for( unsigned int ih=0; ih<m_NRUN3HITPARAMS; ih++ ) {
264  ATH_CHECK( fill( m_hitsRun3_vsMu_vs[ih][i][j], muP[i], refP[j], hitRun3P[ih], weight ) );
265  }
266  }
267  } // close j loop over NPARAMS
268  } // close i loop over NPARAMSMU
269  } // end if m_doGlobalPlots
270 
271  return StatusCode::SUCCESS;
272 }

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

47  {
48  for (auto *subNode: m_vSubNodes) {
49  subNode->finalize();
50  }
51  finalizePlots();
52 }

◆ finalizePlots()

void IDTPM::HitsOnTracksPlots::finalizePlots ( )
virtual

Print out final stats on histograms.


--— finalizePlots --—

print stat here if needed

Reimplemented from PlotBase.

Definition at line 310 of file HitsOnTracksPlots.cxx.

311 {
312  ATH_MSG_DEBUG( "Finalising hits on tracks plots" );
314 }

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

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 428 of file PlotMgr.cxx.

430 {
431  std::vector<float> emptyVec;
433  if( absMin<=0 or absMax<=0 ) {
434  ATH_MSG_WARNING( "absMin or absMax argument to getLogLinearBins is out of range" );
435  return emptyVec;
436  } else if( nBins==0 ) {
437  ATH_MSG_WARNING( "nBins argument to getLogLinearBins is zero" );
438  return emptyVec;
439  }
441  unsigned int asymVecSize = nBins + 1;
442  std::vector<float> theBinning( asymVecSize, 0.);
444  float logStart = std::log( absMin );
445  float logDist = std::log( absMax ) - logStart;
446  float logStep = logDist / (float) nBins;
448  float thisLog{ logStart };
449  for( float& thisBin : theBinning ) {
450  thisBin = std::exp( thisLog );
451  thisLog += logStep;
452  }
453  if( symmetriseAroundZero ) {
455  return emptyVec;
456  }
457  return theBinning;
458 }

◆ initialize()

StatusCode IDTPM::PlotMgr::initialize ( )
inherited

initialize


— initialize —

intialize PlotBase

Definition at line 37 of file PlotMgr.cxx.

38 {
41  return StatusCode::SUCCESS;
42 }

◆ initializePlots()

void IDTPM::HitsOnTracksPlots::initializePlots ( )
virtual

Book the histograms.


— Book the histograms —

Reimplemented from PlotBase.

Definition at line 57 of file HitsOnTracksPlots.cxx.

58 {
60  if( sc.isFailure() ) {
61  ATH_MSG_ERROR( "Failed to book hits on tracks plots" );
62  }
63 }

◆ 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  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ 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 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ 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 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ 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_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ 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 = "" 
)
inlineinherited

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

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

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 }

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

◆ setLogLinearBins()

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

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  }

◆ setLogLinearBinsEff()

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

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  }

◆ setVariableBins()

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

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

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
protectedinherited

Definition at line 194 of file PlotMgr.h.

◆ m_do1D

bool IDTPM::HitsOnTracksPlots::m_do1D
private

Definition at line 77 of file HitsOnTracksPlots.h.

◆ m_doGlobalPlots

bool IDTPM::HitsOnTracksPlots::m_doGlobalPlots
private

Definition at line 76 of file HitsOnTracksPlots.h.

◆ m_hitParamName

std::string IDTPM::HitsOnTracksPlots::m_hitParamName[NHITPARAMSTOT]
private

Definition at line 114 of file HitsOnTracksPlots.h.

◆ m_hits

TH1* IDTPM::HitsOnTracksPlots::m_hits[NHITPARAMSTOT]
private

1D plots

Definition at line 180 of file HitsOnTracksPlots.h.

◆ m_hits_vs

TProfile* IDTPM::HitsOnTracksPlots::m_hits_vs[NHITPARAMSTOT][NPARAMS]
private

TProfile plots vs NPARAMS.

Definition at line 184 of file HitsOnTracksPlots.h.

◆ m_hits_vs2D

TProfile2D* IDTPM::HitsOnTracksPlots::m_hits_vs2D[NHITPARAMSTOT][NPARAMS][NPARAMS]
private

TProfile2D plots vs NPARAMS vs NPARAMS.

Definition at line 188 of file HitsOnTracksPlots.h.

◆ m_hits_vsMu

TProfile* IDTPM::HitsOnTracksPlots::m_hits_vsMu[NHITPARAMSTOT][NPARAMSMU]
private

TProfile plots vs mu (truth and actual)

Definition at line 192 of file HitsOnTracksPlots.h.

◆ m_hits_vsMu_vs

TProfile2D* IDTPM::HitsOnTracksPlots::m_hits_vsMu_vs[NHITPARAMSTOT][NPARAMSMU][NPARAMS]
private

TProfile2D plots vs mu (truth and actual) vs NPARAMS.

Definition at line 196 of file HitsOnTracksPlots.h.

◆ m_hitsRun3

TH1* IDTPM::HitsOnTracksPlots::m_hitsRun3[NRUN3HITPARAMSTOT]
private

Definition at line 181 of file HitsOnTracksPlots.h.

◆ m_hitsRun3_vs

TProfile* IDTPM::HitsOnTracksPlots::m_hitsRun3_vs[NRUN3HITPARAMSTOT][NPARAMS]
private

Definition at line 185 of file HitsOnTracksPlots.h.

◆ m_hitsRun3_vs2D

TProfile2D* IDTPM::HitsOnTracksPlots::m_hitsRun3_vs2D[NRUN3HITPARAMSTOT][NPARAMS][NPARAMS]
private

Definition at line 189 of file HitsOnTracksPlots.h.

◆ m_hitsRun3_vsMu

TProfile* IDTPM::HitsOnTracksPlots::m_hitsRun3_vsMu[NRUN3HITPARAMSTOT][NPARAMSMU]
private

Definition at line 193 of file HitsOnTracksPlots.h.

◆ m_hitsRun3_vsMu_vs

TProfile2D* IDTPM::HitsOnTracksPlots::m_hitsRun3_vsMu_vs[NRUN3HITPARAMSTOT][NPARAMSMU][NPARAMS]
private

Definition at line 197 of file HitsOnTracksPlots.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.

◆ m_isITk

bool IDTPM::HitsOnTracksPlots::m_isITk
private

Definition at line 75 of file HitsOnTracksPlots.h.

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

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

unsigned int IDTPM::HitsOnTracksPlots::m_NHITPARAMS
private

Definition at line 112 of file HitsOnTracksPlots.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_NRUN3HITPARAMS

unsigned int IDTPM::HitsOnTracksPlots::m_NRUN3HITPARAMS
private

Definition at line 159 of file HitsOnTracksPlots.h.

◆ m_paramMuName

std::string IDTPM::HitsOnTracksPlots::m_paramMuName[NPARAMSMU] = { "truthMu", "actualMu" }
private

Definition at line 177 of file HitsOnTracksPlots.h.

◆ m_paramName

std::string IDTPM::HitsOnTracksPlots::m_paramName[NPARAMS] = { "pt", "eta", "phi" }
private

Definition at line 174 of file HitsOnTracksPlots.h.

◆ m_refType

std::string IDTPM::HitsOnTracksPlots::m_refType
private

Definition at line 74 of file HitsOnTracksPlots.h.

◆ m_run3HitParamName

std::string IDTPM::HitsOnTracksPlots::m_run3HitParamName[NRUN3HITPARAMSTOT]
private
Initial value:
= {
"nTRTHits",
"nTRTHitsXe",
"nTRTHitsAr",
"nTRTHighThresholdHits",
"nTRTHighThresholdHitsXe",
"nTRTHighThresholdHitsAr",
"nTRTOutliers",
"nTRTHighThresholdOutliers"
}

Definition at line 161 of file HitsOnTracksPlots.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_testType

std::string IDTPM::HitsOnTracksPlots::m_testType
private

Definition at line 73 of file HitsOnTracksPlots.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:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
PlotBase::constructPrefix
static std::string constructPrefix(std::string dir, bool prependDir)
Definition: PlotBase.cxx:293
WritePulseShapeToCool.yhi
yhi
Definition: WritePulseShapeToCool.py:153
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
IDTPM::HitsOnTracksPlots::NPixelGangedHitsFlaggedFakes
@ NPixelGangedHitsFlaggedFakes
Definition: HitsOnTracksPlots.h:104
PlotBase::m_iDetailLevel
int m_iDetailLevel
Definition: PlotBase.h:101
IDTPM::PlotMgr::book
StatusCode book(TH1 *&pHisto, const SinglePlotDefinition &def)
Book a TH1 histogram.
Definition: PlotMgr.cxx:78
IDTPM::HitsOnTracksPlots::NPARAMSMU
@ NPARAMSMU
Definition: HitsOnTracksPlots.h:176
PlotBase::m_vBookedHistograms
std::vector< HistData > m_vBookedHistograms
Definition: PlotBase.h:97
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
IDTPM::nNextToInnerMostPixelEndcapHits
float nNextToInnerMostPixelEndcapHits(const U &p)
Definition: TrackParametersHelper.h:296
PlotBase::getDirectory
const std::string & getDirectory()
Definition: PlotBase.h:88
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
IDTPM::HitsOnTracksPlots::m_NHITPARAMS
unsigned int m_NHITPARAMS
Definition: HitsOnTracksPlots.h:112
AddEmptyComponent.binning
binning
Definition: AddEmptyComponent.py:34
IDTPM::HitsOnTracksPlots::NTRTHighThresholdHits
@ NTRTHighThresholdHits
Definition: HitsOnTracksPlots.h:150
IDTPM::HitsOnTracksPlots::m_isITk
bool m_isITk
Definition: HitsOnTracksPlots.h:75
IDTPM::HitsOnTracksPlots::NInnerMostPixelEndcapHits
@ NInnerMostPixelEndcapHits
Definition: HitsOnTracksPlots.h:81
IDTPM::PlotMgr::getLogLinearBins
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:428
IDTPM::HitsOnTracksPlots::m_hits_vsMu_vs
TProfile2D * m_hits_vsMu_vs[NHITPARAMSTOT][NPARAMSMU][NPARAMS]
TProfile2D plots vs mu (truth and actual) vs NPARAMS.
Definition: HitsOnTracksPlots.h:196
IDTPM::pixeldEdx
float pixeldEdx(const U &p)
Definition: TrackParametersHelper.h:355
IDTPM::HitsOnTracksPlots::ETA
@ ETA
Definition: HitsOnTracksPlots.h:173
IDTPM::HitsOnTracksPlots::PixeldEdx
@ PixeldEdx
Definition: HitsOnTracksPlots.h:89
make_coralServer_rep.opt
opt
Definition: make_coralServer_rep.py:19
IDTPM::HitsOnTracksPlots::NSCTDeadSensors
@ NSCTDeadSensors
Definition: HitsOnTracksPlots.h:108
IDTPM::PlotMgr::setVariableBinsEff
StatusCode setVariableBinsEff(P *&pHisto, const std::vector< float > &binning, char axis)
SetVariableBins (for Efficiencies)
Definition: PlotMgr.h:150
IDTPM::HitsOnTracksPlots::TRUTHMU
@ TRUTHMU
Definition: HitsOnTracksPlots.h:176
IDTPM::PlotMgr::setLogLinearBinsEff
StatusCode setLogLinearBinsEff(P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
Set Log-Linear axis (for Efficiencies)
Definition: PlotMgr.h:180
IDTPM::HitsOnTracksPlots::NRUN3HITPARAMSBASE
@ NRUN3HITPARAMSBASE
Definition: HitsOnTracksPlots.h:157
IDTPM::nPixelHoles
float nPixelHoles(const U &p)
Definition: TrackParametersHelper.h:336
plotmaker.hist
hist
Definition: plotmaker.py:148
IDTPM::HitsOnTracksPlots::m_hits_vs2D
TProfile2D * m_hits_vs2D[NHITPARAMSTOT][NPARAMS][NPARAMS]
TProfile2D plots vs NPARAMS vs NPARAMS.
Definition: HitsOnTracksPlots.h:188
IDTPM::HitsOnTracksPlots::NTRTOutliers
@ NTRTOutliers
for greater detail level plots
Definition: HitsOnTracksPlots.h:154
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
PlotBase::m_sDirectory
std::string m_sDirectory
Definition: PlotBase.h:100
PlotBase::m_vBookedEfficiencies
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition: PlotBase.h:99
tree
TChain * tree
Definition: tile_monitor.h:30
IDTPM::HitsOnTracksPlots::m_hitsRun3_vsMu
TProfile * m_hitsRun3_vsMu[NRUN3HITPARAMSTOT][NPARAMSMU]
Definition: HitsOnTracksPlots.h:193
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
IDTPM::HitsOnTracksPlots::NHITPARAMSTOT
@ NHITPARAMSTOT
Definition: HitsOnTracksPlots.h:109
PlotBase::BookTEfficiency
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
IDTPM::HitsOnTracksPlots::NInnerMostPixelOutliers
@ NInnerMostPixelOutliers
for greater detail level plots
Definition: HitsOnTracksPlots.h:94
PlotBase::Book2D
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
IDTPM::nInnerMostPixelSharedHits
float nInnerMostPixelSharedHits(const U &p)
Definition: TrackParametersHelper.h:306
IDTPM::nTRTHitsAr
float nTRTHitsAr(const U &p)
Definition: TrackParametersHelper.h:430
athena.value
value
Definition: athena.py:124
IDTPM::HitsOnTracksPlots::m_hits_vs
TProfile * m_hits_vs[NHITPARAMSTOT][NPARAMS]
TProfile plots vs NPARAMS.
Definition: HitsOnTracksPlots.h:184
IDTPM::PlotMgr::retrieveDefinition
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
IDTPM::HitsOnTracksPlots::m_hitsRun3_vsMu_vs
TProfile2D * m_hitsRun3_vsMu_vs[NRUN3HITPARAMSTOT][NPARAMSMU][NPARAMS]
Definition: HitsOnTracksPlots.h:197
IDTPM::HitsOnTracksPlots::NExpectedNextToInnerMostPixelHits
@ NExpectedNextToInnerMostPixelHits
Definition: HitsOnTracksPlots.h:99
IDTPM::HitsOnTracksPlots::NInnerMostPixelSharedHits
@ NInnerMostPixelSharedHits
Definition: HitsOnTracksPlots.h:84
IDTPM::HitsOnTracksPlots::m_hitsRun3_vs
TProfile * m_hitsRun3_vs[NRUN3HITPARAMSTOT][NPARAMS]
Definition: HitsOnTracksPlots.h:185
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
IDTPM::HitsOnTracksPlots::NPixelSharedHits
@ NPixelSharedHits
Definition: HitsOnTracksPlots.h:88
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
IDTPM::nPixelHits
float nPixelHits(const U &p)
Definition: TrackParametersHelper.h:326
IDTPM::HitsOnTracksPlots::NInnerMostPixelHits
@ NInnerMostPixelHits
Definition: HitsOnTracksPlots.h:80
IDTPM::phi
float phi(const U &p)
Definition: TrackParametersHelper.h:59
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
PlotBase::BookTProfile2D
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
IDTPM::HitsOnTracksPlots::PT
@ PT
Definition: HitsOnTracksPlots.h:173
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
IDTPM::nTRTHighThresholdHitsXe
float nTRTHighThresholdHitsXe(const U &p)
Definition: TrackParametersHelper.h:450
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
IDTPM::nSCTSharedHits
float nSCTSharedHits(const U &p)
Definition: TrackParametersHelper.h:385
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
PlotBase::Book1D
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
IDTPM::HitsOnTracksPlots::NExpectedInnerMostPixelHits
@ NExpectedInnerMostPixelHits
Definition: HitsOnTracksPlots.h:98
IDTPM::HitsOnTracksPlots::bookPlots
StatusCode bookPlots()
Definition: HitsOnTracksPlots.cxx:66
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1447
PlotBase::m_vSubNodes
std::vector< PlotBase * > m_vSubNodes
Definition: PlotBase.h:96
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
IDTPM::HitsOnTracksPlots::m_doGlobalPlots
bool m_doGlobalPlots
Definition: HitsOnTracksPlots.h:76
plotting.yearwise_efficiency_vs_mu.xval
float xval
Definition: yearwise_efficiency_vs_mu.py:35
WritePulseShapeToCool.xhi
xhi
Definition: WritePulseShapeToCool.py:152
IDTPM::eta
float eta(const U &p)
Accessor utility function for getting the value of eta.
Definition: TrackParametersHelper.h:41
lumiFormat.i
int i
Definition: lumiFormat.py:85
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
PlotBase::initialize
void initialize()
Definition: PlotBase.cxx:39
IDTPM::HitsOnTracksPlots::NInnerMostPixelSharedEndcapHits
@ NInnerMostPixelSharedEndcapHits
Definition: HitsOnTracksPlots.h:85
IDTPM::nSCTHits
float nSCTHits(const U &p)
Definition: TrackParametersHelper.h:365
IDTPM::nTRTHits
float nTRTHits(const U &p)
Definition: TrackParametersHelper.h:409
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IDTPM::HitsOnTracksPlots::NSCTHits
@ NSCTHits
Definition: HitsOnTracksPlots.h:90
ChangeHistoRange.binsY
list binsY
Definition: ChangeHistoRange.py:59
IDTPM::nTRTHitsXe
float nTRTHitsXe(const U &p)
Definition: TrackParametersHelper.h:419
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
IDTPM::HitsOnTracksPlots::NNextToInnerMostPixelHits
@ NNextToInnerMostPixelHits
Definition: HitsOnTracksPlots.h:82
IDTPM::pT
float pT(const U &p)
Accessor utility function for getting the value of pT.
Definition: TrackParametersHelper.h:31
IDTPM::HitsOnTracksPlots::m_refType
std::string m_refType
Definition: HitsOnTracksPlots.h:74
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IDTPM::PlotMgr::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 plot...
Definition: PlotMgr.cxx:25
WritePulseShapeToCool.xlo
xlo
Definition: WritePulseShapeToCool.py:133
IDTPM::HitsOnTracksPlots::NTRTHits
@ NTRTHits
Definition: HitsOnTracksPlots.h:147
IDTPM::HitsOnTracksPlots::NSCTSharedHits
@ NSCTSharedHits
Definition: HitsOnTracksPlots.h:92
IDTPM::nSCTHoles
float nSCTHoles(const U &p)
Definition: TrackParametersHelper.h:375
IDTPM::HitsOnTracksPlots::NSCTHoles
@ NSCTHoles
Definition: HitsOnTracksPlots.h:91
WritePulseShapeToCool.ylo
ylo
Definition: WritePulseShapeToCool.py:134
IDTPM::HitsOnTracksPlots::NNextToInnerMostPixelEndcapHits
@ NNextToInnerMostPixelEndcapHits
Definition: HitsOnTracksPlots.h:83
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
PlotBase::Book3D
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
beamspotman.dir
string dir
Definition: beamspotman.py:623
IDTPM::nTRTHighThresholdHitsAr
float nTRTHighThresholdHitsAr(const U &p)
Definition: TrackParametersHelper.h:461
IDTPM::HitsOnTracksPlots::NRUN3HITPARAMSTOT
@ NRUN3HITPARAMSTOT
Definition: HitsOnTracksPlots.h:156
IDTPM::HitsOnTracksPlots::NHITPARAMSBASE
@ NHITPARAMSBASE
Definition: HitsOnTracksPlots.h:110
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
IDTPM::HitsOnTracksPlots::NTRTHighThresholdOutliers
@ NTRTHighThresholdOutliers
Definition: HitsOnTracksPlots.h:155
IDTPM::nInnerMostPixelEndcapHits
float nInnerMostPixelEndcapHits(const U &p)
Definition: TrackParametersHelper.h:276
IDTPM::HitsOnTracksPlots::m_hitParamName
std::string m_hitParamName[NHITPARAMSTOT]
Definition: HitsOnTracksPlots.h:114
IDTPM::HitsOnTracksPlots::NTRTHitsAr
@ NTRTHitsAr
Definition: HitsOnTracksPlots.h:149
plotting.yearwise_efficiency_vs_mu.yval
float yval
Definition: yearwise_efficiency_vs_mu.py:36
IDTPM::nInnerMostPixelSharedEndcapHits
float nInnerMostPixelSharedEndcapHits(const U &p)
Definition: TrackParametersHelper.h:316
IDTPM::HitsOnTracksPlots::m_hitsRun3_vs2D
TProfile2D * m_hitsRun3_vs2D[NRUN3HITPARAMSTOT][NPARAMS][NPARAMS]
Definition: HitsOnTracksPlots.h:189
IDTPM::HitsOnTracksPlots::NPixelHoles
@ NPixelHoles
Definition: HitsOnTracksPlots.h:87
IDTPM::HitsOnTracksPlots::NSCTOutliers
@ NSCTOutliers
Definition: HitsOnTracksPlots.h:106
IDTPM::HitsOnTracksPlots::NPARAMS
@ NPARAMS
Definition: HitsOnTracksPlots.h:173
IDTPM::PlotMgr::fill
StatusCode fill(TH1 *pTh1, float value, float weight=1.) const
Definition: PlotMgr.cxx:281
IDTPM::PlotMgr::setVariableBins
StatusCode setVariableBins(P *&pHisto, const std::vector< float > &binning, char axis)
SetVariableBins.
Definition: PlotMgr.h:135
IDTPM::HitsOnTracksPlots::m_paramName
std::string m_paramName[NPARAMS]
Definition: HitsOnTracksPlots.h:174
IDTPM::HitsOnTracksPlots::NPixelDeadSensors
@ NPixelDeadSensors
Definition: HitsOnTracksPlots.h:105
IDTPM::HitsOnTracksPlots::m_run3HitParamName
std::string m_run3HitParamName[NRUN3HITPARAMSTOT]
Definition: HitsOnTracksPlots.h:161
IDTPM::HitsOnTracksPlots::m_testType
std::string m_testType
Definition: HitsOnTracksPlots.h:73
IDTPM::HitsOnTracksPlots::NPixelContribLayers
@ NPixelContribLayers
Definition: HitsOnTracksPlots.h:101
IDTPM::PlotMgr::setLogLinearBins
StatusCode setLogLinearBins(P *&pHisto, unsigned int nBins, float absMin, float absMax, char axis)
Set Log-Linear axis.
Definition: PlotMgr.h:170
IDTPM::nPixelSharedHits
float nPixelSharedHits(const U &p)
Definition: TrackParametersHelper.h:346
IDTPM::HitsOnTracksPlots::m_hits_vsMu
TProfile * m_hits_vsMu[NHITPARAMSTOT][NPARAMSMU]
TProfile plots vs mu (truth and actual)
Definition: HitsOnTracksPlots.h:192
IDTPM::HitsOnTracksPlots::m_paramMuName
std::string m_paramMuName[NPARAMSMU]
Definition: HitsOnTracksPlots.h:177
IDTPM::HitsOnTracksPlots::NTRTHitsXe
@ NTRTHitsXe
Definition: HitsOnTracksPlots.h:148
IDTPM::PlotMgr::retrieveAndBook
StatusCode retrieveAndBook(P *&pHisto, const std::string &identifier, const std::string &folderOverride="", const std::string &nameOverride="")
Definition: PlotMgr.h:64
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
IDTPM::HitsOnTracksPlots::m_NRUN3HITPARAMS
unsigned int m_NRUN3HITPARAMS
Definition: HitsOnTracksPlots.h:159
IDTPM::HitsOnTracksPlots::NPixelGangedHits
@ NPixelGangedHits
Definition: HitsOnTracksPlots.h:103
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
IDTPM::nInnerMostPixelHits
float nInnerMostPixelHits(const U &p)
Definition: TrackParametersHelper.h:266
IDTPM::HitsOnTracksPlots::ACTUALMU
@ ACTUALMU
Definition: HitsOnTracksPlots.h:176
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
PlotBase::BookTProfile
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
IDTPM::HitsOnTracksPlots::NPixelSplitHits
@ NPixelSplitHits
Definition: HitsOnTracksPlots.h:102
IDTPM::HitsOnTracksPlots::NPixelHits
@ NPixelHits
Definition: HitsOnTracksPlots.h:86
IDTPM::HitsOnTracksPlots::PHI
@ PHI
Definition: HitsOnTracksPlots.h:173
ChangeHistoRange.binsX
list binsX
Definition: ChangeHistoRange.py:56
IDTPM::HitsOnTracksPlots::NInnerMostPixelEndcapOutliers
@ NInnerMostPixelEndcapOutliers
Definition: HitsOnTracksPlots.h:95
IDTPM::PlotMgr::m_anaTag
std::string m_anaTag
Definition: PlotMgr.h:194
IDTPM::nTRTHighThresholdHits
float nTRTHighThresholdHits(const U &p)
Definition: TrackParametersHelper.h:440
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
IDTPM::HitsOnTracksPlots::NSCTDoubleHoles
@ NSCTDoubleHoles
Definition: HitsOnTracksPlots.h:107
IDTPM::HitsOnTracksPlots::NPixelOutliers
@ NPixelOutliers
Definition: HitsOnTracksPlots.h:100
PlotBase::finalizePlots
virtual void finalizePlots()
Definition: PlotBase.h:92
PlotBase::m_vBookedTrees
std::vector< TreeData > m_vBookedTrees
Definition: PlotBase.h:98
readCCLHist.float
float
Definition: readCCLHist.py:83
IDTPM::nNextToInnerMostPixelHits
float nNextToInnerMostPixelHits(const U &p)
Definition: TrackParametersHelper.h:286
IDTPM::HitsOnTracksPlots::NTRTHighThresholdHitsAr
@ NTRTHighThresholdHitsAr
Definition: HitsOnTracksPlots.h:152
IDTPM::HitsOnTracksPlots::m_hitsRun3
TH1 * m_hitsRun3[NRUN3HITPARAMSTOT]
Definition: HitsOnTracksPlots.h:181
IDTPM::HitsOnTracksPlots::NTRTHighThresholdHitsXe
@ NTRTHighThresholdHitsXe
Definition: HitsOnTracksPlots.h:151
IDTPM::HitsOnTracksPlots::m_hits
TH1 * m_hits[NHITPARAMSTOT]
1D plots
Definition: HitsOnTracksPlots.h:180
IDTPM::HitsOnTracksPlots::NInnerMostPixelSplitHits
@ NInnerMostPixelSplitHits
Definition: HitsOnTracksPlots.h:96
IDTPM::HitsOnTracksPlots::m_do1D
bool m_do1D
Definition: HitsOnTracksPlots.h:77
IDTPM::HitsOnTracksPlots::NInnerMostPixelSplitEndcapHits
@ NInnerMostPixelSplitEndcapHits
Definition: HitsOnTracksPlots.h:97