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

class holding plots for truth matched vertices More...

#include <InDetPerfPlot_VertexTruthMatching.h>

Inheritance diagram for InDetPerfPlot_VertexTruthMatching:
Collaboration diagram for InDetPerfPlot_VertexTruthMatching:

Public Member Functions

 InDetPerfPlot_VertexTruthMatching (InDetPlotBase *pParent, const std::string &dirName, const int detailLevel=10, bool isITk=false)
void fill (const xAOD::Vertex &vertex, const xAOD::TruthVertex *tvrt=0, float weight=1.0)
void fill (const xAOD::Vertex *recoHardScatter, const xAOD::VertexContainer &vertexContainer, const std::vector< const xAOD::TruthVertex * > &truthHSVertices, const std::vector< const xAOD::TruthVertex * > &truthPUVertices, float actualMu, float weight=1.0)
SingleHistogramDefinition retrieveDefinition (std::string_view histoIdentifier, std::string_view folder="default", std::string_view nameOverride="")
 Retrieve a single histogram definition, given the unique string identifier.
template<class Htype>
void book (Htype *&pHisto, std::string_view histoIdentifier, std::string_view nameOverride="", std::string_view folder="default")
 Helper method to book histograms using an identifier string.
void book (TH1 *&pHisto, const SingleHistogramDefinition &hd)
 Book a TH1 histogram.
void book (TProfile *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile histogram.
void book (TProfile2D *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile2D histogram.
void book (TH2 *&pHisto, const SingleHistogramDefinition &hd)
 Book a 2D histogram (TH2).
void book (TEfficiency *&pHisto, const SingleHistogramDefinition &hd)
 Book a (1-D) TEfficiency.
void initialize ()
void finalize ()
void setDetailLevel (int iDetailLevel)
void RegisterSubPlot (PlotBase *pPlotBase)
std::vector< HistData > retrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeData > retrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyData > retrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects.
TTree * BookTree (std::string_view 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 (std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
 Book a TH1D histogram.
TH1D * Book1D (std::string_view name, TH1 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH1D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
 Book a TH2F histogram.
TH2F * Book2D (std::string_view name, TH2 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH2D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (std::string_view name, std::string_view 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 (std::string_view name, std::string_view 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 (std::string_view name, TH3 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH3F histogram using refHist as reference for number of bins and axis range.
TProfile * BookTProfile (std::string_view name, std::string_view 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 (std::string_view name, std::string_view labels, int nBinsX, float *binsX, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis.
TProfile * BookTProfileRangeY (std::string_view name, std::string_view 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 (std::string_view name, std::string_view 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 (std::string_view name, std::string_view 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 (std::string_view name, std::string_view labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
 Book a (1-D) TEfficiency histogram.
TEfficiency * BookTEfficiency (std::string_view name, std::string_view labels, const int nBinsX, const float xlo, const float xhi, const int nBinsy, const float ylo, const float yhi, const bool prependDir=true)
 Book a (2-D) TEfficiency histogram.

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

std::vector< PlotBase * > m_vSubNodes
std::vector< HistData > m_vBookedHistograms
std::vector< TreeData > m_vBookedTrees
std::vector< EfficiencyData > m_vBookedEfficiencies
std::string m_sDirectory
int m_iDetailLevel

Private Member Functions

void initializePlots ()
template<typename U, typename V>
float getRadialDiff2 (const U *vtx1, const V *vtx2) const
float getLocalPUDensity (const xAOD::TruthVertex *vtxOfInterest, const std::vector< const xAOD::TruthVertex * > &truthHSVertices, const std::vector< const xAOD::TruthVertex * > &truthPUVertices, const float radialWindow=2.0) const
const xAOD::TruthVertex * getTruthVertex (const xAOD::Vertex *recoVtx) const
void finalizePlots ()
void initMessaging () const
 Initialize our message level and MessageSvc.

Static Private Member Functions

static const xAOD::Vertex * getHSRecoVertexSumPt2 (const xAOD::VertexContainer &recoVertices)
static float getRecoLongitudinalReso (const xAOD::Vertex *recoVtx)
static float getRecoTransverseReso (const xAOD::Vertex *recoVtx)
static std::string constructPrefix (std::string dir, bool prependDir)

Private Attributes

bool m_isITk {false}
int m_detailLevel {10}
float m_cutMinTruthRecoRadialDiff = 0.1
TH1 * m_vx_type_truth {}
 truth type
TH1 * m_vx_x_diff {}
TH1 * m_vx_x_diff_pull {}
TH1 * m_vx_y_diff {}
TH1 * m_vx_y_diff_pull {}
TH1 * m_vx_z_diff {}
TH1 * m_vx_z_diff_pull {}
TH1 * m_vx_time_diff {}
 vertex time
TH1 * m_vx_time_diff_pull {}
TH1 * m_vx_hs_classification {}
 hardscatter classification
TProfile * m_vx_nReco_vs_nTruth_inclusive
 vertex reco efficiency
TProfile * m_vx_nReco_vs_nTruth_matched
TProfile * m_vx_nReco_vs_nTruth_merged
TProfile * m_vx_nReco_vs_nTruth_split
TProfile * m_vx_nReco_vs_nTruth_fake
TProfile * m_vx_nReco_vs_nTruth_dummy
TProfile * m_vx_nReco_vs_nTruth_clean
TProfile * m_vx_nReco_vs_nTruth_lowpu
TProfile * m_vx_nReco_vs_nTruth_highpu
TProfile * m_vx_nReco_vs_nTruth_hssplit
TProfile * m_vx_nReco_vs_nTruth_none
TEfficiency * m_vx_hs_reco_eff
TEfficiency * m_vx_hs_sel_eff
TEfficiency * m_vx_hs_sel_eff_vs_nReco
TEfficiency * m_vx_hs_reco_sel_eff
TEfficiency * m_vx_hs_sel_eff_dist
TEfficiency * m_vx_hs_sel_eff_mu
TEfficiency * m_vx_hs_sel_eff_dist_vs_nReco
TEfficiency * m_vx_hs_reco_eff_vs_ntruth
TEfficiency * m_vx_hs_reco_eff_mu
TEfficiency * m_vx_hs_sel_eff_vs_ntruth
TEfficiency * m_vx_hs_reco_sel_eff_vs_ntruth
TProfile * m_vx_hs_reco_long_reso
TProfile * m_vx_hs_reco_trans_reso
IDPVM::ResolutionHelper m_resolutionHelper {}
IDPVM::ResolutionHelper::methods m_resolutionMethod = IDPVM::ResolutionHelper::iterRMS_convergence
TH2 * m_resHelper_PUdensity_hsVxTruthLong
TH1 * m_resolution_vs_PUdensity_hsVxTruthLong
TH1 * m_resmean_vs_PUdensity_hsVxTruthLong
TH2 * m_resHelper_PUdensity_hsVxTruthTransv
TH1 * m_resolution_vs_PUdensity_hsVxTruthTransv
TH1 * m_resmean_vs_PUdensity_hsVxTruthTransv
TH2 * m_resHelper_mu_hsVxTruthLong
TH1 * m_resolution_vs_mu_hsVxTruthLong
TH1 * m_resmean_vs_mu_hsVxTruthLong
TH1 * m_vx_hs_z_pull
TH1 * m_vx_hs_y_pull
TH1 * m_vx_hs_x_pull
TH1 * m_vx_all_z_pull
TH1 * m_vx_all_y_pull
TH1 * m_vx_all_x_pull
TH1 * m_vx_hs_z_res
TH1 * m_vx_hs_y_res
TH1 * m_vx_hs_x_res
TH1 * m_vx_all_z_res
TH1 * m_vx_all_y_res
TH1 * m_vx_all_x_res
TH2 * m_vx_all_truth_z_res_vs_PU
TH2 * m_vx_all_truth_x_res_vs_PU
TH2 * m_vx_all_truth_y_res_vs_PU
TH2 * m_vx_all_truth_z_pull_vs_PU
TH2 * m_vx_all_truth_x_pull_vs_PU
TH2 * m_vx_all_truth_y_pull_vs_PU
TH2 * m_vx_all_truth_z_res_vs_nTrk
TH2 * m_vx_all_truth_x_res_vs_nTrk
TH2 * m_vx_all_truth_y_res_vs_nTrk
TH2 * m_vx_all_truth_z_pull_vs_nTrk
TH2 * m_vx_all_truth_x_pull_vs_nTrk
TH2 * m_vx_all_truth_y_pull_vs_nTrk
TH2 * m_vx_hs_truth_z_res_vs_PU
TH2 * m_vx_hs_truth_x_res_vs_PU
TH2 * m_vx_hs_truth_y_res_vs_PU
TH2 * m_vx_hs_truth_z_pull_vs_PU
TH2 * m_vx_hs_truth_x_pull_vs_PU
TH2 * m_vx_hs_truth_y_pull_vs_PU
TH2 * m_vx_hs_truth_z_res_vs_nTrk
TH2 * m_vx_hs_truth_x_res_vs_nTrk
TH2 * m_vx_hs_truth_y_res_vs_nTrk
TH2 * m_vx_hs_truth_z_pull_vs_nTrk
TH2 * m_vx_hs_truth_x_pull_vs_nTrk
TH2 * m_vx_hs_truth_y_pull_vs_nTrk
TH1 * m_vx_ntracks_matched
TH1 * m_vx_ntracks_merged
TH1 * m_vx_ntracks_split
TH1 * m_vx_ntracks_HS_matched
TH1 * m_vx_ntracks_HS_merged
TH1 * m_vx_ntracks_HS_split
TH1 * m_vx_ntracks_ALL_matched
TH1 * m_vx_ntracks_ALL_merged
TH1 * m_vx_ntracks_ALL_split
TH1 * m_vx_sumpT_matched
TH1 * m_vx_sumpT_merged
TH1 * m_vx_sumpT_split
TH1 * m_vx_sumpT_HS_matched
TH1 * m_vx_sumpT_HS_merged
TH1 * m_vx_sumpT_HS_split
TH1 * m_vx_z_asym_matched
TH1 * m_vx_z_asym_merged
TH1 * m_vx_z_asym_split
TH1 * m_vx_z_asym_HS_matched
TH1 * m_vx_z_asym_HS_merged
TH1 * m_vx_z_asym_HS_split
TH1 * m_vx_z_asym_weighted_matched
TH1 * m_vx_z_asym_weighted_merged
TH1 * m_vx_z_asym_weighted_split
TH1 * m_vx_z_asym_weighted_HS_matched
TH1 * m_vx_z_asym_weighted_HS_merged
TH1 * m_vx_z_asym_weighted_HS_split
TH1 * m_vx_track_weight_matched
TH1 * m_vx_track_weight_merged
TH1 * m_vx_track_weight_split
TH1 * m_vx_track_weight_HS_matched
TH1 * m_vx_track_weight_HS_merged
TH1 * m_vx_track_weight_HS_split
TH1 * m_vx_normalised_track_weight_matched
TH1 * m_vx_normalised_track_weight_merged
TH1 * m_vx_normalised_track_weight_split
TH1 * m_vx_normalised_track_weight_HS_matched
TH1 * m_vx_normalised_track_weight_HS_merged
TH1 * m_vx_normalised_track_weight_HS_split
TH1 * m_vx_chi2Over_ndf_matched
TH1 * m_vx_chi2Over_ndf_merged
TH1 * m_vx_chi2Over_ndf_split
TH1 * m_vx_chi2Over_ndf_HS_matched
TH1 * m_vx_chi2Over_ndf_HS_merged
TH1 * m_vx_chi2Over_ndf_HS_split
TH1 * m_vx_z0_skewness_matched
TH1 * m_vx_z0_skewness_merged
TH1 * m_vx_z0_skewness_split
TH1 * m_vx_z0_skewness_HS_matched
TH1 * m_vx_z0_skewness_HS_merged
TH1 * m_vx_z0_skewness_HS_split
TH1 * m_vx_z0_kurtosis_matched
TH1 * m_vx_z0_kurtosis_merged
TH1 * m_vx_z0_kurtosis_split
TH1 * m_vx_z0_kurtosis_HS_matched
TH1 * m_vx_z0_kurtosis_HS_merged
TH1 * m_vx_z0_kurtosis_HS_split
TH1 * m_vx_sumpT_ALL_matched
TH1 * m_vx_sumpT_ALL_merged
TH1 * m_vx_sumpT_ALL_split
TH1 * m_vx_z_asym_ALL_matched
TH1 * m_vx_z_asym_ALL_merged
TH1 * m_vx_z_asym_ALL_split
TH1 * m_vx_z_asym_weighted_ALL_matched
TH1 * m_vx_z_asym_weighted_ALL_merged
TH1 * m_vx_z_asym_weighted_ALL_split
TH1 * m_vx_track_weight_ALL_matched
TH1 * m_vx_track_weight_ALL_merged
TH1 * m_vx_track_weight_ALL_split
TH1 * m_vx_normalised_track_weight_ALL_matched
TH1 * m_vx_normalised_track_weight_ALL_merged
TH1 * m_vx_normalised_track_weight_ALL_split
TH1 * m_vx_chi2Over_ndf_ALL_matched
TH1 * m_vx_chi2Over_ndf_ALL_merged
TH1 * m_vx_chi2Over_ndf_ALL_split
TH1 * m_vx_z0_skewness_ALL_matched
TH1 * m_vx_z0_skewness_ALL_merged
TH1 * m_vx_z0_skewness_ALL_split
TH1 * m_vx_z0_kurtosis_ALL_matched
TH1 * m_vx_z0_kurtosis_ALL_merged
TH1 * m_vx_z0_kurtosis_ALL_split
TH1 * m_vx_nVertices_ALL_matched
TH1 * m_vx_nVertices_ALL_merged
TH1 * m_vx_nVertices_ALL_split
TH1 * m_vx_nVertices_ALL_fake
TH1 * m_vx_nVertices_HS_matched
TH1 * m_vx_nVertices_HS_merged
TH1 * m_vx_nVertices_HS_split
TH1 * m_vx_nVertices_HS_fake
TH1 * m_vx_nVertices_matched
TH1 * m_vx_nVertices_merged
TH1 * m_vx_nVertices_split
TH1 * m_vx_nVertices_fake
TH1 * m_vx_all_dz
TH1 * m_vx_hs_mindz
TH1 * m_vx_PUdensity
TH1 * m_vx_nTruth
TH2 * m_vx_nTruth_vs_PUdensity
ServiceHandle< IHistogramDefinitionSvc > m_histoDefSvc
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels).
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging).

Detailed Description

class holding plots for truth matched vertices

Definition at line 43 of file InDetPerfPlot_VertexTruthMatching.h.

Constructor & Destructor Documentation

◆ InDetPerfPlot_VertexTruthMatching()

InDetPerfPlot_VertexTruthMatching::InDetPerfPlot_VertexTruthMatching ( InDetPlotBase * pParent,
const std::string & dirName,
const int detailLevel = 10,
bool isITk = false )

Definition at line 21 of file InDetPerfPlot_VertexTruthMatching.cxx.

21 :
22 InDetPlotBase(pParent, sDir),
23 m_isITk(isITk),
24 m_detailLevel(detailLevel),
25 m_vx_type_truth(nullptr),
38 m_vx_hs_reco_eff(nullptr),
39 m_vx_hs_sel_eff(nullptr),
41 m_vx_hs_reco_sel_eff(nullptr),
42 m_vx_hs_sel_eff_dist(nullptr),
43 m_vx_hs_sel_eff_mu(nullptr),
46 m_vx_hs_reco_eff_mu(nullptr),
51
52 //Longitudinal and transverse resolution plots for hs vertices
62
63 m_vx_hs_z_pull(nullptr),
64 m_vx_hs_y_pull(nullptr),
65 m_vx_hs_x_pull(nullptr),
66 m_vx_all_z_pull(nullptr),
67 m_vx_all_y_pull(nullptr),
68 m_vx_all_x_pull(nullptr),
69 m_vx_hs_z_res(nullptr),
70 m_vx_hs_y_res(nullptr),
71 m_vx_hs_x_res(nullptr),
72 m_vx_all_z_res(nullptr),
73 m_vx_all_y_res(nullptr),
74 m_vx_all_x_res(nullptr),
99
100 // New Expert Histograms for vertex classifiations
101 m_vx_ntracks_matched(nullptr),
102 m_vx_ntracks_merged(nullptr),
103 m_vx_ntracks_split(nullptr),
105 m_vx_ntracks_HS_merged(nullptr),
106 m_vx_ntracks_HS_split(nullptr),
109 m_vx_ntracks_ALL_split(nullptr),
110 m_vx_sumpT_matched(nullptr),
111 m_vx_sumpT_merged(nullptr),
112 m_vx_sumpT_split(nullptr),
113 m_vx_sumpT_HS_matched(nullptr),
114 m_vx_sumpT_HS_merged(nullptr),
115 m_vx_sumpT_HS_split(nullptr),
116
117 m_vx_z_asym_matched(nullptr),
118 m_vx_z_asym_merged(nullptr),
119 m_vx_z_asym_split(nullptr),
120 m_vx_z_asym_HS_matched(nullptr),
121 m_vx_z_asym_HS_merged(nullptr),
122 m_vx_z_asym_HS_split(nullptr),
129
136
143
150
153 m_vx_z0_skewness_split(nullptr),
157
160 m_vx_z0_kurtosis_split(nullptr),
164
165 m_vx_sumpT_ALL_matched(nullptr),
166 m_vx_sumpT_ALL_merged(nullptr),
167 m_vx_sumpT_ALL_split(nullptr),
169 m_vx_z_asym_ALL_merged(nullptr),
170 m_vx_z_asym_ALL_split(nullptr),
174
178
182
186
190
194
202 m_vx_nVertices_HS_fake(nullptr),
203 m_vx_nVertices_matched(nullptr),
204 m_vx_nVertices_merged(nullptr),
205 m_vx_nVertices_split(nullptr),
206 m_vx_nVertices_fake(nullptr),
207
208 m_vx_all_dz(nullptr),
209 m_vx_hs_mindz(nullptr),
210
211 m_vx_PUdensity(nullptr),
212 m_vx_nTruth(nullptr),
214
215
216{
217 // nop
218}
TH1 * m_vx_hs_classification
hardscatter classification
TProfile * m_vx_nReco_vs_nTruth_inclusive
vertex reco efficiency
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.

Member Function Documentation

◆ book() [1/6]

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

Helper method to book histograms using an identifier string.

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

◆ book() [2/6]

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

Book a (1-D) TEfficiency.

Definition at line 71 of file InDetPlotBase.cxx.

71 {
72 if (hd.isValid()) {
73 if(hd.nBinsY==0) {
74 pHisto = BookTEfficiency(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, false);
75 } else {
76 pHisto = BookTEfficiency(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first, hd.yAxis.second, false);
77 }
78 }
79 }
TEfficiency * BookTEfficiency(std::string_view name, std::string_view labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
Book a (1-D) TEfficiency histogram.
Definition PlotBase.cxx:257
bool isValid() const
Is the histogram definition valid.
IHistogramDefinitionSvc::axesLimits_t xAxis
IHistogramDefinitionSvc::axesLimits_t yAxis

◆ book() [3/6]

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

Book a TH1 histogram.

Definition at line 43 of file InDetPlotBase.cxx.

43 {
44 if (hd.isValid()) {
45 pHisto = Book1D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, false);
46 }
47 }
TH1D * Book1D(std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition PlotBase.cxx:94

◆ book() [4/6]

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

Book a 2D histogram (TH2).

Definition at line 63 of file InDetPlotBase.cxx.

63 {
64 if (hd.isValid()) {
65 pHisto = Book2D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first,
66 hd.yAxis.second, false);
67 }
68 }
TH2F * Book2D(std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2F histogram.
Definition PlotBase.cxx:123

◆ book() [5/6]

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

Book a TProfile histogram.

Definition at line 49 of file InDetPlotBase.cxx.

49 {
50 if (hd.isValid()) {
51 pHisto = BookTProfile(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.yAxis.first,
52 hd.yAxis.second, false);
53 }
54 }
TProfile * BookTProfile(std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
Book a TProfile histogram.
Definition PlotBase.cxx:186

◆ book() [6/6]

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

Book a TProfile2D histogram.

Definition at line 56 of file InDetPlotBase.cxx.

56 {
57 if (hd.isValid()) {
58 pHisto = BookTProfile2D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first,
59 hd.yAxis.second, false);
60 }
61 }
TProfile2D * BookTProfile2D(std::string_view name, std::string_view 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), 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:289
std::vector< HistData > m_vBookedHistograms
Definition PlotBase.h:98
std::string m_sDirectory
Definition PlotBase.h:101

◆ Book1D() [2/2]

TH1D * PlotBase::Book1D ( std::string_view name,
TH1 * refHist,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
TH2 * refHist,
std::string_view 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 ( std::string_view name,
std::string_view 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.append(name).c_str(),
163 labels.data(), 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 ( std::string_view name,
TH3 * refHist,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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 TEfficiency *hist = new TEfficiency(prefix.append(name).c_str(), labels.data(), nBinsX, xlo, xhi);
260 hist->SetDirectory(nullptr);
261 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
262 return hist;
263}
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition PlotBase.h:100

◆ BookTEfficiency() [2/2]

TEfficiency * PlotBase::BookTEfficiency ( std::string_view name,
std::string_view 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 266 of file PlotBase.cxx.

266 {
267 std::string prefix = constructPrefix(m_sDirectory, prependDir);
268
269 TEfficiency *hist = new TEfficiency(prefix.append(name).c_str(), labels.data(), nBinsX, xlo, xhi, nBinsY, ylo, yhi);
270 hist->SetDirectory(nullptr);
271 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
272
273 return hist;
274}

◆ BookTProfile() [1/2]

TProfile * PlotBase::BookTProfile ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), nBinsX, binsX);
211 TProfile::AddDirectory(oldstat);
212 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
213 return hist;
214}

◆ BookTProfile() [2/2]

TProfile * PlotBase::BookTProfile ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), nBinsX, startX, endX, opt.c_str());
195 } else {
196 hist = new TProfile(prefix.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), 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 ( std::string_view name,
std::string_view 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.append(name).c_str(), labels.data(), (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 ( std::string_view name,
bool prependDir = true )
inherited

Book a TTree.

Definition at line 277 of file PlotBase.cxx.

277 {
278 std::string prefix = constructPrefix(m_sDirectory, prependDir);
279 TTree *tree = new TTree(prefix.append(name).c_str(), "");
280
281 tree->SetAutoSave(0);
282 tree->SetAutoFlush(0);
283 tree->SetDirectory(nullptr);
284 m_vBookedTrees.emplace_back(tree, m_sDirectory);
285 return tree;
286}
std::vector< TreeData > m_vBookedTrees
Definition PlotBase.h:99
TChain * tree

◆ constructPrefix()

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

Definition at line 289 of file PlotBase.cxx.

289 {
290 if (!prependDir) {
291 return "";
292 }
293 std::replace(dir.begin(), dir.end(), '/', '_');
294 return dir;
295}

◆ fill() [1/2]

void InDetPerfPlot_VertexTruthMatching::fill ( const xAOD::Vertex & vertex,
const xAOD::TruthVertex * tvrt = 0,
float weight = 1.0 )

Definition at line 535 of file InDetPerfPlot_VertexTruthMatching.cxx.

535 {
536 // not sure how to deal with this type of histogram
537 if (tvrt) {
538 const float diff_x = vertex.x() - tvrt->x();
539 const float diff_y = vertex.y() - tvrt->y();
540 const float diff_z = vertex.z() - tvrt->z();
541 const AmgSymMatrix(3)& covariance = vertex.covariancePosition();
542 const float err_x = std::abs(Amg::error(covariance, 0)) > 1e-7 ? Amg::error(covariance, 0) : 1000.;
543 const float err_y = std::abs(Amg::error(covariance, 1)) > 1e-7 ? Amg::error(covariance, 1) : 1000.;
544 const float err_z = std::abs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
545 fillHisto(m_vx_x_diff, diff_x, weight);
546 fillHisto(m_vx_x_diff_pull, diff_x / err_x, weight);
547 fillHisto(m_vx_y_diff, diff_y, weight);
548 fillHisto(m_vx_y_diff_pull, diff_y / err_y, weight);
549 fillHisto(m_vx_z_diff, diff_z, weight);
550 fillHisto(m_vx_z_diff_pull, diff_z / err_z, weight);
551
552 if (m_isITk) {
553 static const SG::Accessor<uint8_t> accHasValidTime("hasValidTime");
554 static const SG::Accessor<float> accTime("time");
555 static const SG::Accessor<float> accTimeResolution("timeResolution");
556 if (accHasValidTime.isAvailable(vertex) && accTime.isAvailable(vertex) &&
557 accTimeResolution.isAvailable(vertex)) {
558
559 if (vertex.hasValidTime()) {
560 float diff_time = vertex.time() - tvrt->t() / Gaudi::Units::c_light;
561 float err_time = vertex.timeResolution();
562 fillHisto(m_vx_time_diff, diff_time, weight);
563 fillHisto(m_vx_time_diff_pull, diff_time / err_time, weight);
564 }
565 }
566 }
567 }
568
569 // Get the match type info for each vertex:
570 const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
572 if (recoVtxMatchTypeInfo.isAvailable(vertex)) {
573 try {
574 matchType = recoVtxMatchTypeInfo(vertex);
575 ATH_MSG_DEBUG("VERTEX DECORATOR ======= " << matchType << ", with nTRACKS === " << vertex.nTrackParticles() << ", vertex index = " << vertex.index() << " AT (x, y, z) = (" << vertex.x() << ", " << vertex.y() << ", " << vertex.z() << ")");
576 fillHisto(m_vx_type_truth, matchType, weight);
577 }
578 catch (SG::ExcBadAuxVar &) {
579 ATH_MSG_WARNING("VertexMatchType DECORATOR seems to be available, but may be broken ===========");
580 }
581 }
582 else {
583 ATH_MSG_WARNING("VertexMatchType DECORATOR is NOT available ===========");
584 }
585
586} // void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex& vertex) {
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_WARNING(x,...)
#define AmgSymMatrix(dim)
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
float z() const
Vertex longitudinal distance along the beam line form the origin.
float y() const
Vertex y displacement.
float t() const
Vertex time.
float x() const
Vertex x displacement.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...

◆ fill() [2/2]

void InDetPerfPlot_VertexTruthMatching::fill ( const xAOD::Vertex * recoHardScatter,
const xAOD::VertexContainer & vertexContainer,
const std::vector< const xAOD::TruthVertex * > & truthHSVertices,
const std::vector< const xAOD::TruthVertex * > & truthPUVertices,
float actualMu,
float weight = 1.0 )

Definition at line 588 of file InDetPerfPlot_VertexTruthMatching.cxx.

593 {
594
595 // Fill our histograms
597 fillHisto(m_vx_hs_classification, hsType, weight);
598
599 int nRecoVertices = static_cast<int>(vertexContainer.size()-1); //Not counting the dummy vertex of type 0
600
601 // Get the truth HS vertex
602 const xAOD::TruthVertex* truthHSVtx = nullptr;
603
604 // Check that we have *exactly* 1 truth HS vertex
605 if (!truthHSVertices.empty()) {
606 if (truthHSVertices.size() != 1) {
607 ATH_MSG_WARNING("Size of truth HS vertex vector is >1 -- only using the first one in the vector.");
608 }
609 truthHSVtx = truthHSVertices.at(0);
610 }
611 else {
612 ATH_MSG_WARNING("Size of truth HS vertex vector is 0 -- assuming truth HS vertex to NOT be reconstructed.");
613 }
614
615 if (!truthHSVtx){
616 ATH_MSG_INFO("No truthHSVtx vertex - not filling vertex truth matching.");
617 return;
618 }
619
620 bool isHSVtx_dist_matched = recoHardScatter ? getRadialDiff2(recoHardScatter, truthHSVtx) < std::pow(m_cutMinTruthRecoRadialDiff, 2) : false;
621 fillHisto(m_vx_hs_sel_eff_dist_vs_nReco, nRecoVertices, isHSVtx_dist_matched, weight);
622
623 // Best reco HS vertex identified via truth HS weights
624 const xAOD::Vertex* bestRecoHSVtx_truth = InDetVertexTruthMatchUtils::bestHardScatterMatch(vertexContainer);
625
626 bool isHSVtx_vtx_matched = bestRecoHSVtx_truth && (recoHardScatter == bestRecoHSVtx_truth);
627 fillHisto(m_vx_hs_sel_eff_mu, actualMu, isHSVtx_vtx_matched, weight);
628 fillHisto(m_vx_hs_sel_eff_vs_nReco, nRecoVertices, isHSVtx_vtx_matched, weight);
629
630 // Did we successfully reconstruct our truth HS vertex?
631 bool isHSVtx_reco = bestRecoHSVtx_truth ? getRadialDiff2(bestRecoHSVtx_truth, truthHSVtx) < std::pow(m_cutMinTruthRecoRadialDiff, 2) : false;
632 fillHisto(m_vx_hs_reco_eff_mu, actualMu, isHSVtx_reco, weight);
633
634 float residual_z = isHSVtx_reco ? truthHSVtx->z() - bestRecoHSVtx_truth->z() : -9999.;
635 if(isHSVtx_reco) fillHisto(m_resHelper_mu_hsVxTruthLong, actualMu, residual_z, weight);
636
637 if (m_detailLevel >= 200) {
638 // Inclusive:
639 int nTruthVertices = static_cast<int>(truthHSVertices.size() + truthPUVertices.size());
640 fillHisto(m_vx_nReco_vs_nTruth_inclusive, nTruthVertices, nRecoVertices, weight);
641 fillHisto(m_vx_nTruth, nTruthVertices, weight);
642
643 // Let's also plot the vertices by vertex match type:
644 const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
645 std::map<InDetVertexTruthMatchUtils::VertexMatchType, int> breakdown = {};
651
652 fillHisto(m_vx_hs_sel_eff_dist, nTruthVertices, isHSVtx_dist_matched, weight);
653
654 //Calculating the local PU density around the true HS vertex
655 float localPUDensity = getLocalPUDensity(truthHSVtx, truthHSVertices, truthPUVertices);
656 fillHisto(m_vx_PUdensity, localPUDensity, weight);
657 fillHisto(m_vx_nTruth_vs_PUdensity, nTruthVertices, localPUDensity, weight);
658
659 fillHisto(m_vx_hs_sel_eff, localPUDensity, isHSVtx_vtx_matched, weight);
660 fillHisto(m_vx_hs_sel_eff_vs_ntruth, nTruthVertices, isHSVtx_vtx_matched, weight);
661
662 // add variables here so that they are in correct scope (outside loop over vertices)
663 float number_matched = 0;
664 float number_merged = 0;
665 float number_split = 0;
666 float number_fake = 0;
667 float number_matched_HS = 0;
668 float number_merged_HS = 0;
669 float number_split_HS = 0;
670 float number_fake_HS = 0;
671 float number_matched_PU = 0;
672 float number_merged_PU = 0;
673 float number_split_PU = 0;
674 float number_fake_PU = 0;
675
676 // variables for delta z between the HS and the closest one
677 float vx_hs_mindz=9999.;
678
679 // Iterate over vertices:
681 for (const auto& vertex : vertexContainer.stdcont()) {
682
683 unsigned int nTrackPart = vertex->nTrackParticles();
684
685 // Skip dummy vertex (last one in the container)
686 if (vertex->vertexType() == xAOD::VxType::NoVtx) {
687 continue;
688 }
689
690 fill(*vertex);
691
692 matchType = recoVtxMatchTypeInfo(*vertex);
693 breakdown[matchType] += 1;
694
695 const xAOD::TruthVertex *matchVertex = getTruthVertex(vertex);
696 if(matchVertex){
697 float residual_z = matchVertex->z() - vertex->z();
698 float residual_x = matchVertex->x() - vertex->x();
699 float residual_y = matchVertex->y() - vertex->y();
700 const AmgSymMatrix(3)& covariance = vertex->covariancePosition();
701 float vtxerr_x = std::abs(Amg::error(covariance, 0)) > 1e-7 ? Amg::error(covariance, 0) : 1000.;
702 float vtxerr_y = std::abs(Amg::error(covariance, 1)) > 1e-7 ? Amg::error(covariance, 1) : 1000.;
703 float vtxerr_z = std::abs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
704
705 fillHisto(m_vx_all_z_pull, residual_z/vtxerr_z, weight);
706 fillHisto(m_vx_all_y_pull, residual_y/vtxerr_y, weight);
707 fillHisto(m_vx_all_x_pull, residual_x/vtxerr_x, weight);
708
709 float localPUDensity = getLocalPUDensity(matchVertex, truthHSVertices, truthPUVertices);
710
711 fillHisto(m_vx_all_truth_z_res_vs_PU, localPUDensity, residual_z, weight);
712 fillHisto(m_vx_all_truth_x_res_vs_PU, localPUDensity, residual_x, weight);
713 fillHisto(m_vx_all_truth_y_res_vs_PU, localPUDensity, residual_y, weight);
714
715 fillHisto(m_vx_all_z_res, residual_z, weight);
716 fillHisto(m_vx_all_y_res, residual_y, weight);
717 fillHisto(m_vx_all_x_res, residual_x, weight);
718
719 fillHisto(m_vx_all_truth_z_pull_vs_PU, localPUDensity, residual_z/vtxerr_z, weight);
720 fillHisto(m_vx_all_truth_x_pull_vs_PU, localPUDensity, residual_x/vtxerr_x, weight);
721 fillHisto(m_vx_all_truth_y_pull_vs_PU, localPUDensity, residual_y/vtxerr_y, weight);
722
723 fillHisto(m_vx_all_truth_z_res_vs_nTrk, nTrackPart, residual_z, weight);
724 fillHisto(m_vx_all_truth_x_res_vs_nTrk, nTrackPart, residual_x, weight);
725 fillHisto(m_vx_all_truth_y_res_vs_nTrk, nTrackPart, residual_y, weight);
726
727 fillHisto(m_vx_all_truth_z_pull_vs_nTrk, nTrackPart, residual_z/vtxerr_z, weight);
728 fillHisto(m_vx_all_truth_x_pull_vs_nTrk, nTrackPart, residual_x/vtxerr_x, weight);
729 fillHisto(m_vx_all_truth_y_pull_vs_nTrk, nTrackPart, residual_y/vtxerr_y, weight);
730 }
731
732 // New Expert histograms for observables for vertex classifications for HS and PU
733 // For each vertex, loop over all tracks and get sumpt and sum of charges
734 // also use this to get the z asymmetry around the vertex.
735
736 // Declaring variables for the observables
737 const xAOD::TrackParticle* trackTmp = nullptr;
738 float sumPt =0;
739 float minpt = 20000 ; // minimum sum pt required for the 'All' vertices plots - 20 GeV
740 float trackPt = 0;
741
742 // variables for calculation of delta Z asymmetry and delta d asymmetry
743 float z_asym = 0;
744 float sumDZ = 0;
745 float deltaZ =0;
746 float modsumDZ =0;
747 float weighted_sumDZ = 0;
748 float weighted_deltaZ = 0;
749 float weighted_modsumDZ = 0;
750 float weighted_z_asym =0;
751
752 // make vector
753 std::vector<float> track_deltaZ;
754 std::vector<float> track_deltaPt;
755 std::vector<float> track_deltaZ_weighted;
756
757 // loop over tracks
758 for (size_t i = 0; i < nTrackPart; i++) {
759 trackTmp = vertex->trackParticle(i);
760
761 if (trackTmp) {
762 trackPt = trackTmp->pt(); // MeV
763 sumPt = sumPt + trackPt; // in MeV
764 deltaZ = trackTmp->z0() - vertex->z();
765 track_deltaZ.push_back(deltaZ);
766 // get the track weight for each track to get the deltaZ/trk_weight
767 float trk_weight = vertex->trackWeight(i);
768 weighted_deltaZ = deltaZ*trk_weight;
769 // sum of delta z
770 sumDZ = sumDZ + deltaZ;
771 modsumDZ = modsumDZ + std::abs(deltaZ);
772 weighted_sumDZ = weighted_sumDZ + weighted_deltaZ;
773 weighted_modsumDZ = weighted_modsumDZ + std::abs(weighted_deltaZ);
774 }
775 } // end loop over tracks
776
777 if (modsumDZ >0) z_asym = sumDZ/modsumDZ;
778 if (weighted_modsumDZ >0) weighted_z_asym = weighted_sumDZ/weighted_modsumDZ;
779
780 double mean_Dz =0;
781 mean_Dz=sumDZ/track_deltaZ.size(); //calculate average
782 double number_tracks =0;
783 number_tracks = track_deltaZ.size(); // get number of tracks
784
785 double z_sd = 0; // standard deviation
786 double z_skew = 0; // skewness of DeltaZ asymmetry
787 double z_kurt = 0; // Kurtosis of DeltaZ asymmetry
788 double z_var=0; // variance of DeltaZ
789 double z_zbar=0; // for use in calculation below
790
791 for ( auto i : track_deltaZ) {
792 z_zbar = (i - mean_Dz);
793 z_var =(z_var + z_zbar*z_zbar);
794 z_skew =(z_skew + z_zbar*z_zbar*z_zbar);
795 z_kurt =(z_kurt + z_zbar*z_zbar*z_zbar*z_zbar);
796 }
797
798 z_var = z_var/(number_tracks -1);
799 z_sd = std::sqrt(z_var);
800 z_skew = z_skew/((number_tracks -1)*z_sd*z_sd*z_sd);
801 z_kurt = z_kurt/((number_tracks -1)*z_sd*z_sd*z_sd*z_sd);
802
803 float ndf = vertex->numberDoF();
804 if (ndf != 0) {
806
807 if (vertex == bestRecoHSVtx_truth) {
808 fillHisto(m_vx_sumpT_HS_matched,sumPt ,weight);
809 fillHisto(m_vx_z_asym_HS_matched, z_asym,weight);
810 fillHisto(m_vx_z_asym_weighted_HS_matched, weighted_z_asym,weight);
811 fillHisto(m_vx_chi2Over_ndf_HS_matched, vertex->chiSquared()/ndf,weight);
812
815
816 for (const float& trkWeight : vertex->trackWeights()) {
817 fillHisto(m_vx_track_weight_HS_matched, trkWeight,weight);
818 fillHisto(m_vx_normalised_track_weight_HS_matched, trkWeight/number_tracks,weight);
819 }
820 } else {
821 fillHisto(m_vx_sumpT_matched,sumPt ,weight);
822 fillHisto(m_vx_z_asym_matched, z_asym,weight);
823 fillHisto(m_vx_z_asym_weighted_matched, weighted_z_asym,weight);
824 fillHisto(m_vx_chi2Over_ndf_matched, vertex->chiSquared()/ndf,weight);
825
826 fillHisto(m_vx_z0_skewness_matched, z_skew,weight);
827 fillHisto(m_vx_z0_kurtosis_matched, z_kurt,weight);
828
829 for (const float& trkWeight : vertex->trackWeights()) {
830 fillHisto(m_vx_track_weight_matched, trkWeight,weight);
831 fillHisto(m_vx_normalised_track_weight_matched, trkWeight/number_tracks,weight);
832 }
833 }
834
835 // fill some histograms that contain both HS and PU above a min pt - say 20GeV
836 if (sumPt > minpt) {
837 fillHisto(m_vx_sumpT_ALL_matched,sumPt ,weight);
838 fillHisto(m_vx_z_asym_ALL_matched, z_asym,weight);
839 fillHisto(m_vx_z_asym_weighted_ALL_matched, weighted_z_asym,weight);
840 fillHisto(m_vx_chi2Over_ndf_ALL_matched, vertex->chiSquared()/ndf,weight);
841
844 for (const float& trkWeight : vertex->trackWeights()) {
845 fillHisto(m_vx_track_weight_ALL_matched, trkWeight,weight);
846 fillHisto(m_vx_normalised_track_weight_ALL_matched, trkWeight/number_tracks,weight);
847 }
848
849 }
850 } // end of if matched vertices
851
853 if (vertex == bestRecoHSVtx_truth) {
854 fillHisto(m_vx_sumpT_HS_merged, sumPt ,weight);
855 fillHisto(m_vx_z_asym_HS_merged, z_asym,weight);
856 fillHisto(m_vx_z_asym_weighted_HS_merged, weighted_z_asym,weight);
857 fillHisto(m_vx_chi2Over_ndf_HS_merged, vertex->chiSquared()/ndf,weight);
858
861 for (const float& trkWeight : vertex->trackWeights()) {
862 fillHisto(m_vx_track_weight_HS_merged, trkWeight,weight);
863 fillHisto(m_vx_normalised_track_weight_HS_merged, trkWeight/number_tracks,weight);
864 }
865 }
866 else {
867 fillHisto(m_vx_sumpT_merged, sumPt ,weight);
868 fillHisto(m_vx_z_asym_merged, z_asym,weight);
869 fillHisto(m_vx_z_asym_weighted_merged, weighted_z_asym,weight);
870 fillHisto(m_vx_chi2Over_ndf_merged, vertex->chiSquared()/ndf,weight);
871
872 fillHisto(m_vx_z0_skewness_merged, z_skew,weight);
873 fillHisto(m_vx_z0_kurtosis_merged, z_kurt,weight);
874 for (const float& trkWeight : vertex->trackWeights()) {
875 fillHisto(m_vx_track_weight_merged, trkWeight,weight);
876 fillHisto(m_vx_normalised_track_weight_merged, trkWeight/number_tracks,weight);
877 }
878 }
879
880 if (sumPt > minpt) {
881 fillHisto(m_vx_sumpT_ALL_merged,sumPt ,weight);
882 fillHisto(m_vx_z_asym_ALL_merged, z_asym,weight);
883 fillHisto(m_vx_z_asym_weighted_ALL_merged, weighted_z_asym,weight);
884 fillHisto(m_vx_chi2Over_ndf_ALL_merged, vertex->chiSquared()/ndf,weight);
885
888 for (const float& trkWeight : vertex->trackWeights()) {
889 fillHisto(m_vx_track_weight_ALL_merged, trkWeight,weight);
890 fillHisto(m_vx_normalised_track_weight_ALL_merged, trkWeight/number_tracks,weight);
891 }
892 }
893 } //end of if merged vertices
894
896 if (vertex == bestRecoHSVtx_truth) {
897 fillHisto(m_vx_sumpT_HS_split, sumPt ,weight);
898 fillHisto(m_vx_z_asym_HS_split, z_asym,weight);
899 fillHisto(m_vx_z_asym_weighted_HS_split, weighted_z_asym,weight);
900 fillHisto(m_vx_chi2Over_ndf_HS_split, vertex->chiSquared()/ndf,weight);
901
902 fillHisto(m_vx_z0_skewness_HS_split, z_skew,weight);
903 fillHisto(m_vx_z0_kurtosis_HS_split, z_kurt,weight);
904 for (const float& trkWeight : vertex->trackWeights()) {
905 fillHisto(m_vx_track_weight_HS_split, trkWeight,weight);
906 fillHisto(m_vx_normalised_track_weight_HS_split, trkWeight/number_tracks,weight);
907 }
908 } else {
909 fillHisto(m_vx_sumpT_split, sumPt ,weight);
910 fillHisto(m_vx_z_asym_split, z_asym,weight);
911 fillHisto(m_vx_z_asym_weighted_split, weighted_z_asym,weight);
912 fillHisto(m_vx_chi2Over_ndf_split, vertex->chiSquared()/ndf,weight);
913
914 fillHisto(m_vx_z0_skewness_split, z_skew,weight);
915 fillHisto(m_vx_z0_kurtosis_split, z_kurt,weight);
916 for (const float& trkWeight : vertex->trackWeights()) {
917 fillHisto(m_vx_track_weight_split, trkWeight,weight);
918 fillHisto(m_vx_normalised_track_weight_split, trkWeight/number_tracks,weight);
919 }
920
921 }
922
923 if (sumPt > minpt) {
924 fillHisto(m_vx_sumpT_ALL_split,sumPt ,weight);
925 fillHisto(m_vx_z_asym_ALL_split, z_asym,weight);
926 fillHisto(m_vx_z_asym_weighted_ALL_split, weighted_z_asym,weight);
927 fillHisto(m_vx_chi2Over_ndf_ALL_split, vertex->chiSquared()/ndf,weight);
928
931 for (const float& trkWeight : vertex->trackWeights()) {
932 fillHisto(m_vx_track_weight_ALL_split, trkWeight,weight);
933 fillHisto(m_vx_normalised_track_weight_ALL_split, trkWeight/number_tracks,weight);
934 }
935 }
936 } // end of if split vertices
937
938 // Count the number of vertices for each type per event
940 if (vertex == bestRecoHSVtx_truth) number_matched_HS++;
941 else number_matched_PU++;
942 if (sumPt > minpt) number_matched++;
944 if (vertex == bestRecoHSVtx_truth) number_merged_HS++;
945 else number_merged_PU++;
946 if (sumPt > minpt) number_merged++;
948 if (vertex == bestRecoHSVtx_truth) number_split_HS++;
949 else number_split_PU++;
950 if (sumPt > minpt) number_split++;
952 if (vertex == bestRecoHSVtx_truth) number_fake_HS++;
953 else number_fake_PU++;
954 if (sumPt > minpt) number_fake++;
955 }
956 } // end of if (ndf != 0)
957
958 // New histos to check for number of tracks for each vertex type
959 if (vertex == bestRecoHSVtx_truth) {
960 switch(matchType) {
962 fillHisto(m_vx_ntracks_HS_matched, nTrackPart, weight);
963 break;
965 fillHisto(m_vx_ntracks_HS_merged, nTrackPart, weight);
966 break;
968 fillHisto(m_vx_ntracks_HS_split, nTrackPart, weight);
969 break;
970 default:
971 break;
972 }
973 } else {
974 switch(matchType) {
976 fillHisto(m_vx_ntracks_matched, nTrackPart, weight);
977 break;
979 fillHisto(m_vx_ntracks_merged, nTrackPart, weight);
980 break;
982 fillHisto(m_vx_ntracks_split, nTrackPart, weight);
983 break;
984 default:
985 break;
986 }
987 }
988
989 if (sumPt > minpt) {
990 switch(matchType) {
992 fillHisto(m_vx_ntracks_ALL_matched, nTrackPart, weight);
993 break;
995 fillHisto(m_vx_ntracks_ALL_merged, nTrackPart, weight);
996 break;
998 fillHisto(m_vx_ntracks_ALL_split, nTrackPart, weight);
999 break;
1000 default:
1001 break;
1002 }
1003 }
1004
1005 // delta z between HS and nearby vertices
1006 if(bestRecoHSVtx_truth && bestRecoHSVtx_truth != vertex) {
1007 float dz = bestRecoHSVtx_truth->z() - vertex->z();
1008 if(std::abs(dz) < std::abs(vx_hs_mindz)) vx_hs_mindz = dz;
1009 }
1010
1011 // loop over vertices again for dz of every vertices pair
1012 for (const auto& vertex2 : vertexContainer.stdcont()) {
1013 if (vertex2->vertexType() == xAOD::VxType::NoVtx) continue;
1014 if(vertex2 == vertex) continue;
1015 fillHisto(m_vx_all_dz, vertex->z() - vertex2->z(), 0.5*weight);
1016 }
1017
1018 } // end loop over vertices
1019
1020 // new histos to count number of vertices per event
1021 fillHisto(m_vx_nVertices_ALL_matched, number_matched,weight);
1022 fillHisto(m_vx_nVertices_ALL_merged, number_merged,weight);
1023 fillHisto(m_vx_nVertices_ALL_split, number_split,weight);
1024 fillHisto(m_vx_nVertices_ALL_fake, number_fake,weight);
1025 fillHisto(m_vx_nVertices_HS_matched, number_matched_HS,weight);
1026 fillHisto(m_vx_nVertices_HS_merged, number_merged_HS,weight);
1027 fillHisto(m_vx_nVertices_HS_split, number_split_HS,weight);
1028 fillHisto(m_vx_nVertices_HS_fake, number_fake_HS,weight);
1029 fillHisto(m_vx_nVertices_matched, number_matched_PU,weight);
1030 fillHisto(m_vx_nVertices_merged, number_merged_PU,weight);
1031 fillHisto(m_vx_nVertices_split, number_split_PU,weight);
1032 fillHisto(m_vx_nVertices_fake, number_fake_PU,weight);
1033
1034 // new histo to delta z between HS and the closest one
1035 fillHisto(m_vx_hs_mindz, vx_hs_mindz, weight);
1036
1037 // Now fill plots relating to the reconstruction of our truth HS vertex (efficiency and resolutions)
1038 if (!truthHSVertices.empty()) {
1039 if (isHSVtx_reco) {
1040 fillHisto(m_vx_hs_reco_eff, localPUDensity, 1, weight);
1041 fillHisto(m_vx_hs_reco_sel_eff, localPUDensity, (recoHardScatter == bestRecoHSVtx_truth), weight);
1042 fillHisto(m_vx_hs_reco_eff_vs_ntruth, nTruthVertices, 1, weight);
1043 fillHisto(m_vx_hs_reco_sel_eff_vs_ntruth, nTruthVertices, (recoHardScatter == bestRecoHSVtx_truth), weight);
1044
1045 fillHisto(m_vx_hs_reco_long_reso, localPUDensity,
1046 getRecoLongitudinalReso(bestRecoHSVtx_truth), weight);
1047 fillHisto(m_vx_hs_reco_trans_reso, localPUDensity,
1048 getRecoTransverseReso(bestRecoHSVtx_truth), weight);
1049
1050 float residual_x = truthHSVtx->x() - bestRecoHSVtx_truth->x();
1051 float residual_y = truthHSVtx->y() - bestRecoHSVtx_truth->y();
1052 float residual_r = std::hypot(residual_x, residual_y);
1053
1054 fillHisto(m_resHelper_PUdensity_hsVxTruthLong, localPUDensity, residual_z, weight);
1055 fillHisto(m_resHelper_PUdensity_hsVxTruthTransv, localPUDensity, residual_r, weight);
1056
1057 const AmgSymMatrix(3)& covariance = bestRecoHSVtx_truth->covariancePosition();
1058 float vtxerr_x = Amg::error(covariance, 0);
1059 float vtxerr_y = Amg::error(covariance, 1);
1060 float vtxerr_z = Amg::error(covariance, 2);
1061
1062 if(std::abs(vtxerr_z) > 1e-7) fillHisto(m_vx_hs_z_pull, residual_z/vtxerr_z, weight);
1063 if(std::abs(vtxerr_y) > 1e-7) fillHisto(m_vx_hs_y_pull, residual_y/vtxerr_y, weight);
1064 if(std::abs(vtxerr_x) > 1e-7) fillHisto(m_vx_hs_x_pull, residual_x/vtxerr_x, weight);
1065
1066 fillHisto(m_vx_hs_truth_z_res_vs_PU, localPUDensity, residual_z, weight);
1067 fillHisto(m_vx_hs_truth_x_res_vs_PU, localPUDensity, residual_x, weight);
1068 fillHisto(m_vx_hs_truth_y_res_vs_PU, localPUDensity, residual_y, weight);
1069
1070 fillHisto(m_vx_hs_z_res, residual_z, weight);
1071 fillHisto(m_vx_hs_y_res, residual_y, weight);
1072 fillHisto(m_vx_hs_x_res, residual_x, weight);
1073
1074 fillHisto(m_vx_hs_truth_z_pull_vs_PU, localPUDensity, residual_z/vtxerr_z, weight);
1075 fillHisto(m_vx_hs_truth_x_pull_vs_PU, localPUDensity, residual_x/vtxerr_x, weight);
1076 fillHisto(m_vx_hs_truth_y_pull_vs_PU, localPUDensity, residual_y/vtxerr_y, weight);
1077
1078 int nTrackPart = bestRecoHSVtx_truth->nTrackParticles();
1079 fillHisto(m_vx_hs_truth_z_res_vs_nTrk, nTrackPart, residual_z, weight);
1080 fillHisto(m_vx_hs_truth_x_res_vs_nTrk, nTrackPart, residual_x, weight);
1081 fillHisto(m_vx_hs_truth_y_res_vs_nTrk, nTrackPart, residual_y, weight);
1082
1083 fillHisto(m_vx_hs_truth_z_pull_vs_nTrk, nTrackPart, residual_z/vtxerr_z, weight);
1084 fillHisto(m_vx_hs_truth_x_pull_vs_nTrk, nTrackPart, residual_x/vtxerr_x, weight);
1085 fillHisto(m_vx_hs_truth_y_pull_vs_nTrk, nTrackPart, residual_y/vtxerr_y, weight);
1086 } else {
1087 fillHisto(m_vx_hs_reco_eff, localPUDensity, 0, weight);
1088 fillHisto(m_vx_hs_reco_eff_vs_ntruth, nTruthVertices, 0, weight);
1089 }
1090 }
1091
1097
1098 // And by hardscatter type:
1099 switch (hsType) {
1101 fillHisto(m_vx_nReco_vs_nTruth_clean, nTruthVertices, nRecoVertices, weight);
1102 break;
1103 }
1105 fillHisto(m_vx_nReco_vs_nTruth_lowpu, nTruthVertices, nRecoVertices, weight);
1106 break;
1107 }
1109 fillHisto(m_vx_nReco_vs_nTruth_highpu, nTruthVertices, nRecoVertices, weight);
1110 break;
1111 }
1113 fillHisto(m_vx_nReco_vs_nTruth_hssplit, nTruthVertices, nRecoVertices, weight);
1114 break;
1115 }
1117 fillHisto(m_vx_nReco_vs_nTruth_none, nTruthVertices, nRecoVertices, weight);
1118 break;
1119 }
1120 default: {
1121 break;
1122 }
1123 } // End of switch
1124
1125 } // end of Expert plots - (if (m_detailLevel >= 200))
1126
1127} // end InDetPerfPlot_VertexTruthMatching::fill(const xAOD::VertexContainer& vertexContainer, const std::vector<const xAOD::TruthVertex*>& truthHSVertices, const std::vector<const xAOD::TruthVertex*>& truthPUVertices)
#define ATH_MSG_INFO(x,...)
const PtrVector & stdcont() const
Return the underlying std::vector of the container.
size_type size() const noexcept
Returns the number of elements in the collection.
void fill(const xAOD::Vertex &vertex, const xAOD::TruthVertex *tvrt=0, float weight=1.0)
static float getRecoLongitudinalReso(const xAOD::Vertex *recoVtx)
float getLocalPUDensity(const xAOD::TruthVertex *vtxOfInterest, const std::vector< const xAOD::TruthVertex * > &truthHSVertices, const std::vector< const xAOD::TruthVertex * > &truthPUVertices, const float radialWindow=2.0) const
static float getRecoTransverseReso(const xAOD::Vertex *recoVtx)
float getRadialDiff2(const U *vtx1, const V *vtx2) const
const xAOD::TruthVertex * getTruthVertex(const xAOD::Vertex *recoVtx) const
float z0() const
Returns the parameter.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float z() const
Returns the z position.
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
float y() const
Returns the y position.
float x() const
Returns the x position.
const xAOD::Vertex * bestHardScatterMatch(const xAOD::VertexContainer &vxContainer)
HardScatterType classifyHardScatter(const xAOD::VertexContainer &vxContainer)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
TruthVertex_v1 TruthVertex
Typedef to implementation.
Definition TruthVertex.h:15
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ fillHisto() [1/9]

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

Definition at line 142 of file InDetPlotBase.cxx.

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

◆ fillHisto() [2/9]

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

Definition at line 134 of file InDetPlotBase.cxx.

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

◆ fillHisto() [3/9]

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

Definition at line 97 of file InDetPlotBase.cxx.

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

◆ fillHisto() [4/9]

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

Definition at line 104 of file InDetPlotBase.cxx.

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

◆ fillHisto() [5/9]

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

Definition at line 112 of file InDetPlotBase.cxx.

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

◆ fillHisto() [6/9]

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

Definition at line 120 of file InDetPlotBase.cxx.

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

◆ fillHisto() [7/9]

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

Definition at line 127 of file InDetPlotBase.cxx.

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

◆ fillHisto() [8/9]

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

Definition at line 82 of file InDetPlotBase.cxx.

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

◆ fillHisto() [9/9]

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

Definition at line 89 of file InDetPlotBase.cxx.

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

◆ 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:97
virtual void finalizePlots()
Definition PlotBase.h:93

◆ finalizePlots()

void InDetPerfPlot_VertexTruthMatching::finalizePlots ( )
privatevirtual

◆ getDirectory()

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

Definition at line 89 of file PlotBase.h.

89{return m_sDirectory;}

◆ getHSRecoVertexSumPt2()

const xAOD::Vertex * InDetPerfPlot_VertexTruthMatching::getHSRecoVertexSumPt2 ( const xAOD::VertexContainer & recoVertices)
staticprivate

Definition at line 434 of file InDetPerfPlot_VertexTruthMatching.cxx.

434 {
435 const xAOD::Vertex* recoHSVertex = nullptr;
436 float sumPtMax = -1.;
437 const xAOD::TrackParticle* trackTmp = nullptr;
438 float sumPtTmp;
439 for (const auto& vtx : recoVertices.stdcont()) {
440 if (vtx) {
441 sumPtTmp = 0.;
442 for (size_t i = 0; i < vtx->nTrackParticles(); i++) {
443 trackTmp = vtx->trackParticle(i);
444 if (trackTmp) {
445 sumPtTmp += std::pow(trackTmp->pt(), 2);
446 }
447 }
448 if (sumPtTmp > sumPtMax) {
449 sumPtMax = sumPtTmp;
450 recoHSVertex = vtx;
451 }
452 }
453 }
454 return recoHSVertex;
455}

◆ getLocalPUDensity()

float InDetPerfPlot_VertexTruthMatching::getLocalPUDensity ( const xAOD::TruthVertex * vtxOfInterest,
const std::vector< const xAOD::TruthVertex * > & truthHSVertices,
const std::vector< const xAOD::TruthVertex * > & truthPUVertices,
const float radialWindow = 2.0 ) const
private

Definition at line 463 of file InDetPerfPlot_VertexTruthMatching.cxx.

463 {
464 float radialWindow2 = std::pow(radialWindow, 2);
465 int nTracksInWindow = 0;
466 float localPUDensity;
467 float radialDiff2;
468 for (const auto& vtx : truthHSVertices) {
469 if (vtx != vtxOfInterest) {
470 radialDiff2 = getRadialDiff2(vtxOfInterest, vtx);
471 if (radialDiff2 < radialWindow2) {
472 nTracksInWindow += 1;
473 }
474 }
475 }
476 for (const auto& vtx : truthPUVertices) {
477 if (vtx != vtxOfInterest) {
478 radialDiff2 = getRadialDiff2(vtxOfInterest, vtx);
479 if (radialDiff2 < radialWindow2) {
480 nTracksInWindow += 1;
481 }
482 }
483 }
484 localPUDensity = (float)(nTracksInWindow) / (2 * radialWindow);
485 return localPUDensity;
486}

◆ getRadialDiff2()

template<typename U, typename V>
float InDetPerfPlot_VertexTruthMatching::getRadialDiff2 ( const U * vtx1,
const V * vtx2 ) const
private

Definition at line 459 of file InDetPerfPlot_VertexTruthMatching.cxx.

459 {
460 return (std::pow((vtx1->x() - vtx2->x()), 2) + std::pow((vtx1->y() - vtx2->y()), 2) + std::pow((vtx1->z() - vtx2->z()), 2));
461}

◆ getRecoLongitudinalReso()

float InDetPerfPlot_VertexTruthMatching::getRecoLongitudinalReso ( const xAOD::Vertex * recoVtx)
staticprivate

Definition at line 488 of file InDetPerfPlot_VertexTruthMatching.cxx.

488 {
489 return std::sqrt(recoVtx->covariancePosition()(2, 2));
490}

◆ getRecoTransverseReso()

float InDetPerfPlot_VertexTruthMatching::getRecoTransverseReso ( const xAOD::Vertex * recoVtx)
staticprivate

Definition at line 492 of file InDetPerfPlot_VertexTruthMatching.cxx.

492 {
493 float x = recoVtx->x();
494 float y = recoVtx->y();
495 float xErr2 = recoVtx->covariancePosition()(0, 0);
496 float yErr2 = recoVtx->covariancePosition()(1, 1);
497 float xyCov = recoVtx->covariancePosition()(0, 1);
498 float r2 = std::pow(x, 2) + std::pow(y, 2);
499 return std::sqrt(std::pow(x, 2) / r2 * xErr2 + std::pow(y, 2) / r2 * yErr2 + 2 * x * y / r2 * xyCov);
500}
#define y
#define x

◆ getTruthVertex()

const xAOD::TruthVertex * InDetPerfPlot_VertexTruthMatching::getTruthVertex ( const xAOD::Vertex * recoVtx) const
private

Definition at line 502 of file InDetPerfPlot_VertexTruthMatching.cxx.

502 {
503 const xAOD::TruthVertex* truthVtx = nullptr;
504 if (recoVtx) {
505 const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
506 try{
507 if (!truthMatchingInfos.isAvailable(*recoVtx)){
508 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR not available -- returning nullptr!");
509 return truthVtx;
510 }
511 const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
512 if (!truthInfos.empty()) {
513 const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
514 const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
515 if (truthEventLink.isValid() && *truthEventLink) {
516 size_t i_vtx = 0;
517 size_t n_vtx = (*truthEventLink)->nTruthVertices();
518 while(!truthVtx && i_vtx<n_vtx){
519 truthVtx = (*truthEventLink)->truthVertex(i_vtx);
520 i_vtx++;
521 }
522 }
523 }
524 else {
525 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
526 }
527 }
528 catch (SG::ExcBadAuxVar &){
529 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
530 }
531 }
532 return truthVtx;
533}
std::tuple< ElementLink< xAOD::TruthEventBaseContainer >, float, float > VertexTruthMatchInfo

◆ initialize()

void PlotBase::initialize ( )
inherited

Definition at line 39 of file PlotBase.cxx.

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

◆ initializePlots()

void InDetPerfPlot_VertexTruthMatching::initializePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 220 of file InDetPerfPlot_VertexTruthMatching.cxx.

220 {
221
222 book(m_vx_type_truth,"vx_type_truth");
223 book(m_vx_x_diff,"vx_x_diff");
224 book(m_vx_x_diff_pull,"vx_x_diff_pull");
225 book(m_vx_y_diff,"vx_y_diff");
226 book(m_vx_y_diff_pull,"vx_y_diff_pull");
227 book(m_vx_z_diff,"vx_z_diff");
228 book(m_vx_z_diff_pull,"vx_z_diff_pull");
229 if(m_isITk){
230 book(m_vx_time_diff,"vx_time_diff");
231 book(m_vx_time_diff_pull,"vx_time_diff_pull");
232 }
233
234 book(m_vx_hs_classification,"vx_hs_classification");
235 book(m_vx_hs_sel_eff_dist_vs_nReco,"vx_hs_sel_eff_dist_vs_nReco");
236 book(m_vx_hs_sel_eff_mu,"vx_hs_sel_eff_mu");
237 book(m_vx_hs_sel_eff_vs_nReco,"vx_hs_sel_eff_vs_nReco");
238 book(m_vx_hs_reco_eff_mu,"vx_hs_reco_eff_mu");
239
240 book(m_resHelper_mu_hsVxTruthLong,"resHelper_mu_hsVxTruthLong");
241 book(m_resolution_vs_mu_hsVxTruthLong,"resolution_vs_mu_hsVxTruthLong");
242 book(m_resmean_vs_mu_hsVxTruthLong,"resmean_vs_mu_hsVxTruthLong");
243
244 if (m_detailLevel >= 200) {
245
246 book(m_vx_hs_reco_eff,"vx_hs_reco_eff");
247 book(m_vx_hs_sel_eff,"vx_hs_sel_eff");
248 book(m_vx_hs_sel_eff_dist,"vx_hs_sel_eff_dist");
249 book(m_vx_hs_reco_sel_eff,"vx_hs_reco_sel_eff");
250 book(m_vx_hs_reco_eff_vs_ntruth,"vx_hs_reco_eff_vs_ntruth");
251 book(m_vx_hs_sel_eff_vs_ntruth,"vx_hs_sel_eff_vs_ntruth");
252 book(m_vx_hs_reco_sel_eff_vs_ntruth,"vx_hs_reco_sel_eff_vs_ntruth");
253
254 book(m_vx_nReco_vs_nTruth_inclusive,"vx_nReco_vs_nTruth_inclusive");
255 book(m_vx_nReco_vs_nTruth_matched,"vx_nReco_vs_nTruth_matched");
256 book(m_vx_nReco_vs_nTruth_merged,"vx_nReco_vs_nTruth_merged");
257 book(m_vx_nReco_vs_nTruth_split,"vx_nReco_vs_nTruth_split");
258 book(m_vx_nReco_vs_nTruth_fake,"vx_nReco_vs_nTruth_fake");
259 book(m_vx_nReco_vs_nTruth_dummy,"vx_nReco_vs_nTruth_dummy");
260 book(m_vx_nReco_vs_nTruth_clean,"vx_nReco_vs_nTruth_clean");
261 book(m_vx_nReco_vs_nTruth_lowpu,"vx_nReco_vs_nTruth_lowpu");
262 book(m_vx_nReco_vs_nTruth_highpu,"vx_nReco_vs_nTruth_highpu");
263 book(m_vx_nReco_vs_nTruth_hssplit,"vx_nReco_vs_nTruth_hssplit");
264 book(m_vx_nReco_vs_nTruth_none,"vx_nReco_vs_nTruth_none");
265
266 book(m_vx_hs_z_pull,"vx_TYPE_z_pull","vx_hs_z_pull");
267 book(m_vx_hs_y_pull,"vx_TYPE_y_pull","vx_hs_y_pull");
268 book(m_vx_hs_x_pull,"vx_TYPE_x_pull","vx_hs_x_pull");
269
270 book(m_vx_all_z_pull,"vx_TYPE_z_pull","vx_all_z_pull");
271 book(m_vx_all_y_pull,"vx_TYPE_y_pull","vx_all_y_pull");
272 book(m_vx_all_x_pull,"vx_TYPE_x_pull","vx_all_x_pull");
273
274 book(m_vx_hs_z_res,"vx_TYPE_z_reso","vx_hs_z_res");
275 book(m_vx_hs_y_res,"vx_TYPE_y_reso","vx_hs_y_res");
276 book(m_vx_hs_x_res,"vx_TYPE_x_reso","vx_hs_x_res");
277 book(m_vx_all_z_res,"vx_TYPE_z_reso","vx_all_z_res");
278 book(m_vx_all_y_res,"vx_TYPE_y_reso","vx_all_y_res");
279 book(m_vx_all_x_res,"vx_TYPE_x_reso","vx_all_x_res");
280
281 book(m_vx_all_truth_z_res_vs_PU, "vx_TYPE_truth_reso_z_vs_PU", "vx_all_truth_reso_z_vs_PU");
282 book(m_vx_all_truth_x_res_vs_PU, "vx_TYPE_truth_reso_x_vs_PU", "vx_all_truth_reso_x_vs_PU");
283 book(m_vx_all_truth_y_res_vs_PU, "vx_TYPE_truth_reso_y_vs_PU", "vx_all_truth_reso_y_vs_PU");
284 book(m_vx_all_truth_z_res_vs_nTrk, "vx_TYPE_truth_reso_z_vs_nTrk", "vx_all_truth_reso_z_vs_nTrk");
285 book(m_vx_all_truth_x_res_vs_nTrk, "vx_TYPE_truth_reso_x_vs_nTrk", "vx_all_truth_reso_x_vs_nTrk");
286 book(m_vx_all_truth_y_res_vs_nTrk, "vx_TYPE_truth_reso_y_vs_nTrk", "vx_all_truth_reso_y_vs_nTrk");
287
288 book(m_vx_all_truth_z_pull_vs_PU, "vx_TYPE_truth_pull_z_vs_PU", "vx_all_truth_pull_z_vs_PU");
289 book(m_vx_all_truth_x_pull_vs_PU, "vx_TYPE_truth_pull_x_vs_PU", "vx_all_truth_pull_x_vs_PU");
290 book(m_vx_all_truth_y_pull_vs_PU, "vx_TYPE_truth_pull_y_vs_PU", "vx_all_truth_pull_y_vs_PU");
291 book(m_vx_all_truth_z_pull_vs_nTrk, "vx_TYPE_truth_pull_z_vs_nTrk", "vx_all_truth_pull_z_vs_nTrk");
292 book(m_vx_all_truth_x_pull_vs_nTrk, "vx_TYPE_truth_pull_x_vs_nTrk", "vx_all_truth_pull_x_vs_nTrk");
293 book(m_vx_all_truth_y_pull_vs_nTrk, "vx_TYPE_truth_pull_y_vs_nTrk", "vx_all_truth_pull_y_vs_nTrk");
294
295 book(m_vx_hs_truth_z_res_vs_PU, "vx_TYPE_truth_reso_z_vs_PU", "vx_hs_truth_reso_z_vs_PU");
296 book(m_vx_hs_truth_x_res_vs_PU, "vx_TYPE_truth_reso_x_vs_PU", "vx_hs_truth_reso_x_vs_PU");
297 book(m_vx_hs_truth_y_res_vs_PU, "vx_TYPE_truth_reso_y_vs_PU", "vx_hs_truth_reso_y_vs_PU");
298 book(m_vx_hs_truth_z_res_vs_nTrk, "vx_TYPE_truth_reso_z_vs_nTrk", "vx_hs_truth_reso_z_vs_nTrk");
299 book(m_vx_hs_truth_x_res_vs_nTrk, "vx_TYPE_truth_reso_x_vs_nTrk", "vx_hs_truth_reso_x_vs_nTrk");
300 book(m_vx_hs_truth_y_res_vs_nTrk, "vx_TYPE_truth_reso_y_vs_nTrk", "vx_hs_truth_reso_y_vs_nTrk");
301
302 book(m_vx_hs_truth_z_pull_vs_PU, "vx_TYPE_truth_pull_z_vs_PU", "vx_hs_truth_pull_z_vs_PU");
303 book(m_vx_hs_truth_x_pull_vs_PU, "vx_TYPE_truth_pull_x_vs_PU", "vx_hs_truth_pull_x_vs_PU");
304 book(m_vx_hs_truth_y_pull_vs_PU, "vx_TYPE_truth_pull_y_vs_PU", "vx_hs_truth_pull_y_vs_PU");
305 book(m_vx_hs_truth_z_pull_vs_nTrk, "vx_TYPE_truth_pull_z_vs_nTrk", "vx_hs_truth_pull_z_vs_nTrk");
306 book(m_vx_hs_truth_x_pull_vs_nTrk, "vx_TYPE_truth_pull_x_vs_nTrk", "vx_hs_truth_pull_x_vs_nTrk");
307 book(m_vx_hs_truth_y_pull_vs_nTrk, "vx_TYPE_truth_pull_y_vs_nTrk", "vx_hs_truth_pull_y_vs_nTrk");
308
309 // book the new expert histos for vertex classifications
310 book(m_vx_ntracks_matched,"vx_ntracks_matched");
311 book(m_vx_ntracks_merged,"vx_ntracks_merged");
312 book(m_vx_ntracks_split,"vx_ntracks_split");
313 book(m_vx_ntracks_HS_matched,"vx_ntracks_HS_matched");
314 book(m_vx_ntracks_HS_merged,"vx_ntracks_HS_merged");
315 book(m_vx_ntracks_HS_split,"vx_ntracks_HS_split");
316 book(m_vx_ntracks_ALL_matched,"vx_ntracks_ALL_matched");
317 book(m_vx_ntracks_ALL_merged,"vx_ntracks_ALL_merged");
318 book(m_vx_ntracks_ALL_split,"vx_ntracks_ALL_split");
319 book(m_vx_sumpT_matched,"vx_sumpT_matched");
320 book(m_vx_sumpT_merged,"vx_sumpT_merged");
321 book(m_vx_sumpT_split,"vx_sumpT_split");
322 book(m_vx_sumpT_HS_matched,"vx_sumpT_HS_matched");
323 book(m_vx_sumpT_HS_merged,"vx_sumpT_HS_merged");
324 book(m_vx_sumpT_HS_split,"vx_sumpT_HS_split");
325 book(m_vx_sumpT_ALL_matched,"vx_sumpT_ALL_matched");
326 book(m_vx_sumpT_ALL_merged,"vx_sumpT_ALL_merged");
327 book(m_vx_sumpT_ALL_split,"vx_sumpT_ALL_split");
328
329 book(m_vx_z_asym_matched,"vx_z_asym_matched");
330 book(m_vx_z_asym_merged,"vx_z_asym_merged");
331 book(m_vx_z_asym_split,"vx_z_asym_split");
332 book(m_vx_z_asym_HS_matched,"vx_z_asym_HS_matched");
333 book(m_vx_z_asym_HS_merged,"vx_z_asym_HS_merged");
334 book(m_vx_z_asym_HS_split,"vx_z_asym_HS_split");
335 book(m_vx_z_asym_ALL_matched,"vx_z_asym_ALL_matched");
336 book(m_vx_z_asym_ALL_merged,"vx_z_asym_ALL_merged");
337 book(m_vx_z_asym_ALL_split,"vx_z_asym_ALL_split");
338 book(m_vx_z_asym_weighted_matched,"vx_z_asym_weighted_matched");
339 book(m_vx_z_asym_weighted_merged,"vx_z_asym_weighted_merged");
340 book(m_vx_z_asym_weighted_split,"vx_z_asym_weighted_split");
341 book(m_vx_z_asym_weighted_HS_matched,"vx_z_asym_weighted_HS_matched");
342 book(m_vx_z_asym_weighted_HS_merged,"vx_z_asym_weighted_HS_merged");
343 book(m_vx_z_asym_weighted_HS_split,"vx_z_asym_weighted_HS_split");
344 book(m_vx_z_asym_weighted_ALL_matched,"vx_z_asym_weighted_ALL_matched");
345 book(m_vx_z_asym_weighted_ALL_merged,"vx_z_asym_weighted_ALL_merged");
346 book(m_vx_z_asym_weighted_ALL_split,"vx_z_asym_weighted_ALL_split");
347
348 book(m_vx_track_weight_matched, "vx_track_weight_matched");
349 book(m_vx_track_weight_merged, "vx_track_weight_merged");
350 book(m_vx_track_weight_split, "vx_track_weight_split");
351 book(m_vx_track_weight_HS_matched, "vx_track_weight_HS_matched");
352 book(m_vx_track_weight_HS_merged, "vx_track_weight_HS_merged");
353 book(m_vx_track_weight_HS_split, "vx_track_weight_HS_split");
354 book(m_vx_track_weight_ALL_matched, "vx_track_weight_ALL_matched");
355 book(m_vx_track_weight_ALL_merged, "vx_track_weight_ALL_merged");
356 book(m_vx_track_weight_ALL_split, "vx_track_weight_ALL_split");
357
358 book(m_vx_normalised_track_weight_matched, "vx_normalised_track_weight_matched");
359 book(m_vx_normalised_track_weight_merged, "vx_normalised_track_weight_merged");
360 book(m_vx_normalised_track_weight_split, "vx_normalised_track_weight_split");
361 book(m_vx_normalised_track_weight_HS_matched, "vx_normalised_track_weight_HS_matched");
362 book(m_vx_normalised_track_weight_HS_merged, "vx_normalised_track_weight_HS_merged");
363 book(m_vx_normalised_track_weight_HS_split, "vx_normalised_track_weight_HS_split");
364 book(m_vx_normalised_track_weight_ALL_matched, "vx_normalised_track_weight_ALL_matched");
365 book(m_vx_normalised_track_weight_ALL_merged, "vx_normalised_track_weight_ALL_merged");
366 book(m_vx_normalised_track_weight_ALL_split, "vx_normalised_track_weight_ALL_split");
367
368 book(m_vx_chi2Over_ndf_matched,"vx_chi2Over_ndf_matched");
369 book(m_vx_chi2Over_ndf_merged,"vx_chi2Over_ndf_merged");
370 book(m_vx_chi2Over_ndf_split,"vx_chi2Over_ndf_split");
371 book(m_vx_chi2Over_ndf_HS_matched,"vx_chi2Over_ndf_HS_matched");
372 book(m_vx_chi2Over_ndf_HS_merged,"vx_chi2Over_ndf_HS_merged");
373 book(m_vx_chi2Over_ndf_HS_split,"vx_chi2Over_ndf_HS_split");
374 book(m_vx_chi2Over_ndf_ALL_matched,"vx_chi2Over_ndf_ALL_matched");
375 book(m_vx_chi2Over_ndf_ALL_merged,"vx_chi2Over_ndf_ALL_merged");
376 book(m_vx_chi2Over_ndf_ALL_split,"vx_chi2Over_ndf_ALL_split");
377
378 book(m_vx_z0_skewness_matched, "vx_z0_skewness_matched");
379 book(m_vx_z0_skewness_merged, "vx_z0_skewness_merged");
380 book(m_vx_z0_skewness_split, "vx_z0_skewness_split");
381 book(m_vx_z0_skewness_HS_matched, "vx_z0_skewness_HS_matched");
382 book(m_vx_z0_skewness_HS_merged, "vx_z0_skewness_HS_merged");
383 book(m_vx_z0_skewness_HS_split, "vx_z0_skewness_HS_split");
384 book(m_vx_z0_skewness_ALL_matched, "vx_z0_skewness_ALL_matched");
385 book(m_vx_z0_skewness_ALL_merged, "vx_z0_skewness_ALL_merged");
386 book(m_vx_z0_skewness_ALL_split, "vx_z0_skewness_ALL_split");
387 book(m_vx_z0_kurtosis_matched,"vx_z0_kurtosis_matched");
388 book(m_vx_z0_kurtosis_merged,"vx_z0_kurtosis_merged");
389 book(m_vx_z0_kurtosis_split,"vx_z0_kurtosis_split");
390 book(m_vx_z0_kurtosis_HS_matched,"vx_z0_kurtosis_HS_matched");
391 book(m_vx_z0_kurtosis_HS_merged,"vx_z0_kurtosis_HS_merged");
392 book(m_vx_z0_kurtosis_HS_split,"vx_z0_kurtosis_HS_split");
393 book(m_vx_z0_kurtosis_ALL_matched,"vx_z0_kurtosis_ALL_matched");
394 book(m_vx_z0_kurtosis_ALL_merged,"vx_z0_kurtosis_ALL_merged");
395 book(m_vx_z0_kurtosis_ALL_split,"vx_z0_kurtosis_ALL_split");
396
397 book(m_vx_nVertices_matched,"vx_nVertices_matched");
398 book(m_vx_nVertices_merged,"vx_nVertices_merged");
399 book(m_vx_nVertices_split, "vx_nVertices_split");
400 book(m_vx_nVertices_fake, "vx_nVertices_fake");
401 book(m_vx_nVertices_HS_matched,"vx_nVertices_HS_matched");
402 book(m_vx_nVertices_HS_merged,"vx_nVertices_HS_merged");
403 book(m_vx_nVertices_HS_split,"vx_nVertices_HS_split");
404 book(m_vx_nVertices_HS_fake,"vx_nVertices_HS_fake");
405 book(m_vx_nVertices_ALL_matched,"vx_nVertices_ALL_matched");
406 book(m_vx_nVertices_ALL_merged,"vx_nVertices_ALL_merged");
407 book(m_vx_nVertices_ALL_split,"vx_nVertices_ALL_split");
408 book(m_vx_nVertices_ALL_fake,"vx_nVertices_ALL_fake");
409
410 book(m_vx_hs_mindz,"vx_hs_mindz");
411 book(m_vx_all_dz,"vx_all_dz");
412
413 book(m_vx_hs_reco_long_reso,"vx_hs_reco_long_reso");
414 book(m_vx_hs_reco_trans_reso,"vx_hs_reco_trans_reso");
415
416 //Helpers for resolution plots for HS vertex
417 book(m_resHelper_PUdensity_hsVxTruthLong,"resHelper_PUdensity_hsVxTruthLong");
418 book(m_resolution_vs_PUdensity_hsVxTruthLong,"resolution_vs_PUdensity_hsVxTruthLong");
419 book(m_resmean_vs_PUdensity_hsVxTruthLong,"resmean_vs_PUdensity_hsVxTruthLong");
420
421 book(m_resHelper_PUdensity_hsVxTruthTransv,"resHelper_PUdensity_hsVxTruthTransv");
422 book(m_resolution_vs_PUdensity_hsVxTruthTransv,"resolution_vs_PUdensity_hsVxTruthTransv");
423 book(m_resmean_vs_PUdensity_hsVxTruthTransv,"resmean_vs_PUdensity_hsVxTruthTransv");
424
425 book(m_vx_PUdensity,"vx_PUdensity");
426 book(m_vx_nTruth,"vx_nTruth");
427 book(m_vx_nTruth_vs_PUdensity,"vx_nTruth_vs_PUdensity");
428 }
429
430}
void book(Htype *&pHisto, std::string_view histoIdentifier, std::string_view nameOverride="", std::string_view folder="default")
Helper method to book histograms using an identifier string.

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

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

◆ mBook()

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

book, for use by macro

Definition at line 84 of file InDetPlotBase.h.

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

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

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
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 182 of file AthMessaging.h.

183{ 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 user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

Definition at line 42 of file PlotBase.h.

42{m_vSubNodes.push_back(pPlotBase);}

◆ retrieveBookedEfficiencies()

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

Retrieve all booked efficiency objects.

Definition at line 83 of file PlotBase.cxx.

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

◆ retrieveBookedHistograms()

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

Retrieve all booked histograms.

Definition at line 63 of file PlotBase.cxx.

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

◆ retrieveBookedTrees()

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

Retrieve all booked trees.

Definition at line 73 of file PlotBase.cxx.

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

◆ retrieveDefinition()

SingleHistogramDefinition InDetPlotBase::retrieveDefinition ( std::string_view histoIdentifier,
std::string_view folder = "default",
std::string_view nameOverride = "" )
inherited

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

Definition at line 151 of file InDetPlotBase.cxx.

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

◆ setDetailLevel()

void PlotBase::setDetailLevel ( int iDetailLevel)
inherited

Definition at line 55 of file PlotBase.cxx.

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

◆ setLevel()

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

Change the current logging level.

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

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

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

Messaging initialized (initMessaging).

Definition at line 141 of file AthMessaging.h.

◆ m_cutMinTruthRecoRadialDiff

float InDetPerfPlot_VertexTruthMatching::m_cutMinTruthRecoRadialDiff = 0.1
private

Definition at line 51 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_detailLevel

int InDetPerfPlot_VertexTruthMatching::m_detailLevel {10}
private

Definition at line 50 of file InDetPerfPlot_VertexTruthMatching.h.

50{10};

◆ m_histoDefSvc

ServiceHandle<IHistogramDefinitionSvc> InDetPlotBase::m_histoDefSvc
privateinherited

Definition at line 89 of file InDetPlotBase.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 102 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_isITk

bool InDetPerfPlot_VertexTruthMatching::m_isITk {false}
private

Definition at line 49 of file InDetPerfPlot_VertexTruthMatching.h.

49{false};

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

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_mu_hsVxTruthLong
private

Definition at line 117 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthLong

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthLong
private

Definition at line 111 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthTransv

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthTransv
private

Definition at line 114 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_mu_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_mu_hsVxTruthLong
private

Definition at line 119 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthLong
private

Definition at line 113 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthTransv
private

Definition at line 116 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_mu_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_mu_hsVxTruthLong
private

Definition at line 118 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthLong
private

Definition at line 112 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthTransv
private

Definition at line 115 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolutionHelper

IDPVM::ResolutionHelper InDetPerfPlot_VertexTruthMatching::m_resolutionHelper {}
private

Definition at line 108 of file InDetPerfPlot_VertexTruthMatching.h.

108{};

◆ m_resolutionMethod

IDPVM::ResolutionHelper::methods InDetPerfPlot_VertexTruthMatching::m_resolutionMethod = IDPVM::ResolutionHelper::iterRMS_convergence
private

Definition at line 109 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_vBookedEfficiencies

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

Definition at line 100 of file PlotBase.h.

◆ m_vBookedHistograms

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

Definition at line 98 of file PlotBase.h.

◆ m_vBookedTrees

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

Definition at line 99 of file PlotBase.h.

◆ m_vSubNodes

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

Definition at line 97 of file PlotBase.h.

◆ m_vx_all_dz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_dz
private

Definition at line 269 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_nTrk
private

Definition at line 146 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_PU
private

Definition at line 139 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_nTrk
private

Definition at line 143 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_PU
private

Definition at line 136 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_nTrk
private

Definition at line 147 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_PU
private

Definition at line 140 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_nTrk
private

Definition at line 144 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_PU
private

Definition at line 137 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_nTrk
private

Definition at line 145 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_PU
private

Definition at line 138 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_nTrk
private

Definition at line 142 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_PU
private

Definition at line 135 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_pull
private

Definition at line 126 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_res
private

Definition at line 133 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_pull
private

Definition at line 125 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_res
private

Definition at line 132 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_pull
private

Definition at line 124 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_res
private

Definition at line 131 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_matched
private

Definition at line 244 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_merged
private

Definition at line 245 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_split
private

Definition at line 246 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_matched
private

Definition at line 209 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_merged
private

Definition at line 210 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_split
private

Definition at line 211 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_matched
private

Definition at line 206 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_merged
private

Definition at line 207 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_split
private

Definition at line 208 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_classification

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_classification {}
private

hardscatter classification

Definition at line 66 of file InDetPerfPlot_VertexTruthMatching.h.

66{};

◆ m_vx_hs_mindz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_mindz
private

Definition at line 270 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff
private

Definition at line 80 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff_mu
private

Definition at line 96 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff_vs_ntruth
private

Definition at line 94 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_long_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_long_reso
private

Definition at line 104 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff
private

Definition at line 86 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff_vs_ntruth
private

Definition at line 100 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_trans_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_trans_reso
private

Definition at line 105 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff
private

Definition at line 82 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist
private

Definition at line 88 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist_vs_nReco
private

Definition at line 92 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_mu
private

Definition at line 90 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_nReco
private

Definition at line 84 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_ntruth
private

Definition at line 98 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_nTrk
private

Definition at line 160 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_PU
private

Definition at line 153 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_nTrk
private

Definition at line 157 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_PU
private

Definition at line 150 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_nTrk
private

Definition at line 161 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_PU
private

Definition at line 154 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_nTrk
private

Definition at line 158 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_PU
private

Definition at line 151 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_nTrk
private

Definition at line 159 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_PU
private

Definition at line 152 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_nTrk
private

Definition at line 156 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_PU
private

Definition at line 149 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_pull
private

Definition at line 123 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_res
private

Definition at line 130 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_pull
private

Definition at line 122 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_res
private

Definition at line 129 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_pull
private

Definition at line 121 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_res
private

Definition at line 128 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_matched
private

Definition at line 240 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_merged
private

Definition at line 241 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_split
private

Definition at line 242 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_matched
private

Definition at line 202 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_merged
private

Definition at line 203 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_split
private

Definition at line 204 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_matched
private

Definition at line 199 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_merged
private

Definition at line 200 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_split
private

Definition at line 201 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_clean

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_clean
private

Definition at line 74 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_dummy

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_dummy
private

Definition at line 73 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_fake

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_fake
private

Definition at line 72 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_highpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_highpu
private

Definition at line 76 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_hssplit

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_hssplit
private

Definition at line 77 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_inclusive

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_inclusive
private

vertex reco efficiency

Definition at line 68 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_lowpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_lowpu
private

Definition at line 75 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_matched

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_matched
private

Definition at line 69 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_merged

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_merged
private

Definition at line 70 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_none

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_none
private

Definition at line 78 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_split

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_split
private

Definition at line 71 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_matched
private

Definition at line 169 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_merged
private

Definition at line 170 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_split
private

Definition at line 171 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_matched
private

Definition at line 166 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_merged
private

Definition at line 167 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_split
private

Definition at line 168 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_matched
private

Definition at line 163 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_merged
private

Definition at line 164 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_split
private

Definition at line 165 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth
private

Definition at line 273 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth_vs_PUdensity

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth_vs_PUdensity
private

Definition at line 274 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_fake
private

Definition at line 258 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_matched
private

Definition at line 255 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_merged
private

Definition at line 256 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_split
private

Definition at line 257 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_fake
private

Definition at line 266 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_fake
private

Definition at line 262 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_matched
private

Definition at line 259 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_merged
private

Definition at line 260 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_split
private

Definition at line 261 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_matched
private

Definition at line 263 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_merged
private

Definition at line 264 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_split
private

Definition at line 265 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_PUdensity

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_PUdensity
private

Definition at line 272 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_matched
private

Definition at line 227 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_merged
private

Definition at line 228 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_split
private

Definition at line 229 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_matched
private

Definition at line 175 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_merged
private

Definition at line 176 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_split
private

Definition at line 177 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_matched
private

Definition at line 172 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_merged
private

Definition at line 173 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_split
private

Definition at line 174 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_time_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff {}
private

vertex time

Definition at line 62 of file InDetPerfPlot_VertexTruthMatching.h.

62{};

◆ m_vx_time_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff_pull {}
private

Definition at line 63 of file InDetPerfPlot_VertexTruthMatching.h.

63{};

◆ m_vx_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_matched
private

Definition at line 237 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_merged
private

Definition at line 238 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_split
private

Definition at line 239 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_matched
private

Definition at line 195 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_merged
private

Definition at line 196 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_split
private

Definition at line 197 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_matched
private

Definition at line 192 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_merged
private

Definition at line 193 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_split
private

Definition at line 194 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_type_truth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_type_truth {}
private

truth type

Definition at line 53 of file InDetPerfPlot_VertexTruthMatching.h.

53{};

◆ m_vx_x_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff {}
private

Definition at line 54 of file InDetPerfPlot_VertexTruthMatching.h.

54{};

◆ m_vx_x_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff_pull {}
private

Definition at line 55 of file InDetPerfPlot_VertexTruthMatching.h.

55{};

◆ m_vx_y_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff {}
private

Definition at line 56 of file InDetPerfPlot_VertexTruthMatching.h.

56{};

◆ m_vx_y_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff_pull {}
private

Definition at line 57 of file InDetPerfPlot_VertexTruthMatching.h.

57{};

◆ m_vx_z0_kurtosis_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_matched
private

Definition at line 251 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_merged
private

Definition at line 252 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_split
private

Definition at line 253 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_matched
private

Definition at line 222 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_merged
private

Definition at line 223 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_split
private

Definition at line 224 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_matched
private

Definition at line 219 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_merged
private

Definition at line 220 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_split
private

Definition at line 221 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_matched
private

Definition at line 248 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_merged
private

Definition at line 249 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_split
private

Definition at line 250 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_matched
private

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_merged
private

Definition at line 217 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_split
private

Definition at line 218 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_matched
private

Definition at line 213 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_merged
private

Definition at line 214 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_split
private

Definition at line 215 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_matched
private

Definition at line 231 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_merged
private

Definition at line 232 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_split
private

Definition at line 233 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_matched
private

Definition at line 182 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_merged
private

Definition at line 183 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_split
private

Definition at line 184 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_matched
private

Definition at line 179 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_merged
private

Definition at line 180 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_split
private

Definition at line 181 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_matched
private

Definition at line 234 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_merged
private

Definition at line 235 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_split
private

Definition at line 236 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_matched
private

Definition at line 188 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_merged
private

Definition at line 189 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_split
private

Definition at line 190 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_matched
private

Definition at line 185 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_merged
private

Definition at line 186 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_split
private

Definition at line 187 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff {}
private

Definition at line 58 of file InDetPerfPlot_VertexTruthMatching.h.

58{};

◆ m_vx_z_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff_pull {}
private

Definition at line 59 of file InDetPerfPlot_VertexTruthMatching.h.

59{};

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