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< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 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< HistDatam_vBookedHistograms
std::vector< TreeDatam_vBookedTrees
std::vector< EfficiencyDatam_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::TruthVertexgetTruthVertex (const xAOD::Vertex *recoVtx) const
void finalizePlots ()
void initMessaging () const
 Initialize our message level and MessageSvc.

Static Private Member Functions

static const xAOD::VertexgetHSRecoVertexSumPt2 (const xAOD::VertexContainer &recoVertices)
static float getRecoLongitudinalReso (const xAOD::Vertex *recoVtx)
static float getRecoTransverseReso (const xAOD::Vertex *recoVtx)
static void fillResoHist (TH1 *resoHist, const TH2 *resoHist2D)
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_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
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
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< IHistogramDefinitionSvcm_histoDefSvc
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels).
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging).

Detailed Description

class holding plots for truth matched vertices

Definition at line 41 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),
50
51 //Longitudinal and transverse resolution plots for hs vertices
58
59 m_vx_hs_z_pull(nullptr),
60 m_vx_hs_y_pull(nullptr),
61 m_vx_hs_x_pull(nullptr),
62 m_vx_all_z_pull(nullptr),
63 m_vx_all_y_pull(nullptr),
64 m_vx_all_x_pull(nullptr),
65 m_vx_hs_z_res(nullptr),
66 m_vx_hs_y_res(nullptr),
67 m_vx_hs_x_res(nullptr),
68 m_vx_all_z_res(nullptr),
69 m_vx_all_y_res(nullptr),
70 m_vx_all_x_res(nullptr),
95
96 // New Expert Histograms for vertex classifiations
97 m_vx_ntracks_matched(nullptr),
98 m_vx_ntracks_merged(nullptr),
99 m_vx_ntracks_split(nullptr),
101 m_vx_ntracks_HS_merged(nullptr),
102 m_vx_ntracks_HS_split(nullptr),
105 m_vx_ntracks_ALL_split(nullptr),
106 m_vx_sumpT_matched(nullptr),
107 m_vx_sumpT_merged(nullptr),
108 m_vx_sumpT_split(nullptr),
109 m_vx_sumpT_HS_matched(nullptr),
110 m_vx_sumpT_HS_merged(nullptr),
111 m_vx_sumpT_HS_split(nullptr),
112
113 m_vx_z_asym_matched(nullptr),
114 m_vx_z_asym_merged(nullptr),
115 m_vx_z_asym_split(nullptr),
116 m_vx_z_asym_HS_matched(nullptr),
117 m_vx_z_asym_HS_merged(nullptr),
118 m_vx_z_asym_HS_split(nullptr),
125
132
139
146
149 m_vx_z0_skewness_split(nullptr),
153
156 m_vx_z0_kurtosis_split(nullptr),
160
161 m_vx_sumpT_ALL_matched(nullptr),
162 m_vx_sumpT_ALL_merged(nullptr),
163 m_vx_sumpT_ALL_split(nullptr),
165 m_vx_z_asym_ALL_merged(nullptr),
166 m_vx_z_asym_ALL_split(nullptr),
170
174
178
182
186
190
198 m_vx_nVertices_HS_fake(nullptr),
199 m_vx_nVertices_matched(nullptr),
200 m_vx_nVertices_merged(nullptr),
201 m_vx_nVertices_split(nullptr),
202 m_vx_nVertices_fake(nullptr),
203
204 m_vx_all_dz(nullptr),
205 m_vx_hs_mindz(nullptr),
206
207 m_vx_PUdensity(nullptr),
208 m_vx_nTruth(nullptr),
210
211
212{
213 // nop
214}
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 586 of file InDetPerfPlot_VertexTruthMatching.cxx.

586 {
587 // not sure how to deal with this type of histogram
588 if (tvrt) {
589 const float diff_x = vertex.x() - tvrt->x();
590 const float diff_y = vertex.y() - tvrt->y();
591 const float diff_z = vertex.z() - tvrt->z();
592 const AmgSymMatrix(3)& covariance = vertex.covariancePosition();
593 const float err_x = std::abs(Amg::error(covariance, 0)) > 1e-7 ? Amg::error(covariance, 0) : 1000.;
594 const float err_y = std::abs(Amg::error(covariance, 1)) > 1e-7 ? Amg::error(covariance, 1) : 1000.;
595 const float err_z = std::abs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
596 fillHisto(m_vx_x_diff, diff_x, weight);
597 fillHisto(m_vx_x_diff_pull, diff_x / err_x, weight);
598 fillHisto(m_vx_y_diff, diff_y, weight);
599 fillHisto(m_vx_y_diff_pull, diff_y / err_y, weight);
600 fillHisto(m_vx_z_diff, diff_z, weight);
601 fillHisto(m_vx_z_diff_pull, diff_z / err_z, weight);
602
603 if (m_isITk) {
604 static const SG::AuxElement::Accessor<uint8_t> accHasValidTime("hasValidTime");
605 static const SG::AuxElement::Accessor<float> accTime("time");
606 static const SG::AuxElement::Accessor<float> accTimeResolution("timeResolution");
607 if (accHasValidTime.isAvailable(vertex) && accTime.isAvailable(vertex) &&
608 accTimeResolution.isAvailable(vertex)) {
609
610 if (vertex.hasValidTime()) {
611 float diff_time = vertex.time() - tvrt->t() / Gaudi::Units::c_light;
612 float err_time = vertex.timeResolution();
613 fillHisto(m_vx_time_diff, diff_time, weight);
614 fillHisto(m_vx_time_diff_pull, diff_time / err_time, weight);
615 }
616 }
617 }
618 }
619
620 // Get the match type info for each vertex:
621 const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
623 if (recoVtxMatchTypeInfo.isAvailable(vertex)) {
624 try {
625 matchType = recoVtxMatchTypeInfo(vertex);
626 ATH_MSG_DEBUG("VERTEX DECORATOR ======= " << matchType << ", with nTRACKS === " << vertex.nTrackParticles() << ", vertex index = " << vertex.index() << " AT (x, y, z) = (" << vertex.x() << ", " << vertex.y() << ", " << vertex.z() << ")");
627 fillHisto(m_vx_type_truth, matchType, weight);
628 }
629 catch (SG::ExcBadAuxVar &) {
630 ATH_MSG_WARNING("VertexMatchType DECORATOR seems to be available, but may be broken ===========");
631 }
632 }
633 else {
634 ATH_MSG_WARNING("VertexMatchType DECORATOR is NOT available ===========");
635 }
636
637} // void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex& vertex) {
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(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 639 of file InDetPerfPlot_VertexTruthMatching.cxx.

639 {
640
641 if (m_detailLevel >= 200) {
642 // Fill our histograms
643 // Inclusive:
644 int nTruthVertices = (int)(truthHSVertices.size() + truthPUVertices.size());
645 int nRecoVertices = (int)vertexContainer.size()-1; //Not counting the dummy vertex of type 0
646 fillHisto(m_vx_nReco_vs_nTruth_inclusive, nTruthVertices, nRecoVertices, weight);
647 fillHisto(m_vx_nTruth, nTruthVertices, weight);
648
649 // Let's also plot the vertices by vertex match type:
650 const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
651 std::map<InDetVertexTruthMatchUtils::VertexMatchType, int> breakdown = {};
657
658 if (!recoHardScatter){
659 ATH_MSG_INFO("No recoHardScatter vertex - not filling vertex truth matching.");
660 return;
661 }
662
663
664 // Get the truth HS vertex
665 const xAOD::TruthVertex* truthHSVtx = nullptr;
666
667 // Check that we have *exactly* 1 truth HS vertex
668 if (!truthHSVertices.empty()) {
669 if (truthHSVertices.size() != 1) {
670 ATH_MSG_WARNING("Size of truth HS vertex vector is >1 -- only using the first one in the vector.");
671 }
672 truthHSVtx = truthHSVertices.at(0);
673 fillHisto(m_vx_hs_sel_eff_dist, nTruthVertices, getRadialDiff2(recoHardScatter, truthHSVtx) < std::pow(m_cutMinTruthRecoRadialDiff, 2), weight);
674 fillHisto(m_vx_hs_sel_eff_dist_vs_nReco, nRecoVertices, getRadialDiff2(recoHardScatter, truthHSVtx) < std::pow(m_cutMinTruthRecoRadialDiff, 2), weight);
675 }
676 else {
677 ATH_MSG_WARNING("Size of truth HS vertex vector is 0 -- assuming truth HS vertex to NOT be reconstructed.");
678 }
679
680 //Calculating the local PU density around the true HS vertex
681 if (!truthHSVtx){
682 ATH_MSG_INFO("No truthHSVtx vertex - not filling vertex truth matching.");
683 return;
684 }
685 float localPUDensity = getLocalPUDensity(truthHSVtx, truthHSVertices, truthPUVertices);
686 fillHisto(m_vx_PUdensity, localPUDensity, weight);
687 fillHisto(m_vx_nTruth_vs_PUdensity, nTruthVertices, localPUDensity, weight);
688
689 // Best reco HS vertex identified via truth HS weights
690 const xAOD::Vertex* bestRecoHSVtx_truth = InDetVertexTruthMatchUtils::bestHardScatterMatch(vertexContainer);
691 if (!bestRecoHSVtx_truth){
692 ATH_MSG_INFO("No bestRecoHS vertex - not filling vertex truth matching.");
693 return;
694 }
695
696 fillHisto(m_vx_hs_sel_eff_mu, actualMu, (recoHardScatter == bestRecoHSVtx_truth), weight);
697 fillHisto(m_vx_hs_sel_eff, localPUDensity, (recoHardScatter == bestRecoHSVtx_truth), weight);
698 fillHisto(m_vx_hs_sel_eff_vs_nReco, nRecoVertices, (recoHardScatter == bestRecoHSVtx_truth), weight);
699 fillHisto(m_vx_hs_sel_eff_vs_ntruth, nTruthVertices, (recoHardScatter == bestRecoHSVtx_truth), weight);
700
701 // Did we successfully reconstruct our truth HS vertex?
702 bool truthHSVtxRecoed = false;
703 float minTruthRecoRadialDiff2 = std::pow(m_cutMinTruthRecoRadialDiff, 2);
704 float truthRecoRadialDiff2 = -1.;
705 if (truthHSVtx) {
706 // If the radial difference between the truth-pkg-selected best reco HS vertex and the truth HS vertex is
707 // less than some cut (e.g., 0.1 mm), then we say the truth HS vertex is reconstructed
708 truthRecoRadialDiff2 = getRadialDiff2(bestRecoHSVtx_truth, truthHSVtx);
709 if (truthRecoRadialDiff2 < minTruthRecoRadialDiff2) {
710 truthHSVtxRecoed = true;
711 minTruthRecoRadialDiff2 = truthRecoRadialDiff2;
712 }
713 }
714
715 // add variables here so that they are in correct scope (outside loop over vertices)
716 float number_matched = 0;
717 float number_merged = 0;
718 float number_split = 0;
719 float number_fake = 0;
720 float number_matched_HS = 0;
721 float number_merged_HS = 0;
722 float number_split_HS = 0;
723 float number_fake_HS = 0;
724 float number_matched_PU = 0;
725 float number_merged_PU = 0;
726 float number_split_PU = 0;
727 float number_fake_PU = 0;
728
729 // variables for delta z between the HS and the closest one
730 float vx_hs_mindz=9999.;
731 float min_fabs_dz = 9999.;
732
733 // Iterate over vertices:
735 for (const auto& vertex : vertexContainer.stdcont()) {
736
737 // Skip dummy vertex (last one in the container)
738 if (vertex->vertexType() == xAOD::VxType::NoVtx) {
739 continue;
740 }
741
742 fill(*vertex);
743
744 matchType = recoVtxMatchTypeInfo(*vertex);
745 breakdown[matchType] += 1;
746
747
748 const xAOD::TruthVertex *matchVertex = getTruthVertex(vertex);
749 if(!matchVertex) continue;
750 float residual_z = matchVertex->z() - vertex->z();
751 float residual_x = matchVertex->x() - vertex->x();
752 float residual_y = matchVertex->y() - vertex->y();
753 const AmgSymMatrix(3)& covariance = vertex->covariancePosition();
754 float vtxerr_x = fabs(Amg::error(covariance, 0)) > 1e-7 ? Amg::error(covariance, 0) : 1000.;
755 float vtxerr_y = fabs(Amg::error(covariance, 1)) > 1e-7 ? Amg::error(covariance, 1) : 1000.;
756 float vtxerr_z = fabs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
757 localPUDensity = getLocalPUDensity(matchVertex, truthHSVertices, truthPUVertices);
758
759 fillHisto(m_vx_all_z_pull, residual_z/vtxerr_z, weight);
760 fillHisto(m_vx_all_y_pull, residual_y/vtxerr_y, weight);
761 fillHisto(m_vx_all_x_pull, residual_x/vtxerr_x, weight);
762
763 fillHisto(m_vx_all_truth_z_res_vs_PU, localPUDensity, residual_z, weight);
764 fillHisto(m_vx_all_truth_x_res_vs_PU, localPUDensity, residual_x, weight);
765 fillHisto(m_vx_all_truth_y_res_vs_PU, localPUDensity, residual_y, weight);
766
767 fillHisto(m_vx_all_z_res, residual_z, weight);
768 fillHisto(m_vx_all_y_res, residual_y, weight);
769 fillHisto(m_vx_all_x_res, residual_x, weight);
770
771 fillHisto(m_vx_all_truth_z_pull_vs_PU, localPUDensity, residual_z/vtxerr_z, weight);
772 fillHisto(m_vx_all_truth_x_pull_vs_PU, localPUDensity, residual_x/vtxerr_x, weight);
773 fillHisto(m_vx_all_truth_y_pull_vs_PU, localPUDensity, residual_y/vtxerr_y, weight);
774
775 fillHisto(m_vx_all_truth_z_res_vs_nTrk, vertex->nTrackParticles(), residual_z, weight);
776 fillHisto(m_vx_all_truth_x_res_vs_nTrk, vertex->nTrackParticles(), residual_x, weight);
777 fillHisto(m_vx_all_truth_y_res_vs_nTrk, vertex->nTrackParticles(), residual_y, weight);
778
779 fillHisto(m_vx_all_truth_z_pull_vs_nTrk, vertex->nTrackParticles(), residual_z/vtxerr_z, weight);
780 fillHisto(m_vx_all_truth_x_pull_vs_nTrk, vertex->nTrackParticles(), residual_x/vtxerr_x, weight);
781 fillHisto(m_vx_all_truth_y_pull_vs_nTrk, vertex->nTrackParticles(), residual_y/vtxerr_y, weight);
782
783
784
785
786 // New Expert histograms for observables for vertex classifications for HS and PU
787 // For each vertex, loop over all tracks and get sumpt and sum of charges
788 // also use this to get the z asymmetry around the vertex.
789
790 // Declaring variables for the observables
791 const xAOD::TrackParticle* trackTmp = nullptr;
792 float sumPt =0;
793 float minpt = 20000 ; // minimum sum pt required for the 'All' vertices plots - 20 GeV
794 float trackPt = 0;
795
796 // variables for calculation of delta Z asymmetry and delta d asymmetry
797 float z_asym = 0;
798 float sumDZ = 0;
799 float deltaZ =0;
800 float modsumDZ =0;
801 float weighted_sumDZ = 0;
802 float weighted_deltaZ = 0;
803 float weighted_modsumDZ = 0;
804 float weighted_z_asym =0;
805
806 // make vector
807 std::vector<float> track_deltaZ;
808 std::vector<float> track_deltaPt;
809 std::vector<float> track_deltaZ_weighted;
810 // loop over tracks
811 for (size_t i = 0; i < vertex->nTrackParticles(); i++) {
812 trackTmp = vertex->trackParticle(i);
813
814
815 if (trackTmp) {
816 trackPt = trackTmp->pt(); // MeV
817 sumPt = sumPt + trackPt; // in MeV
818 deltaZ = trackTmp->z0() - vertex->z();
819 track_deltaZ.push_back(deltaZ);
820 // get the track weight for each track to get the deltaZ/trk_weight
821 float trk_weight = vertex->trackWeight(i);
822 weighted_deltaZ = deltaZ*trk_weight;
823 // sum of delta z
824 sumDZ = sumDZ + deltaZ;
825 modsumDZ = modsumDZ + std::abs(deltaZ);
826 weighted_sumDZ = weighted_sumDZ + weighted_deltaZ;
827 weighted_modsumDZ = weighted_modsumDZ + std::abs(weighted_deltaZ);
828
829 }
830 } // end loop over tracks
831 if (modsumDZ >0) {
832 z_asym = sumDZ/modsumDZ;
833 }
834 if (weighted_modsumDZ >0) {
835 weighted_z_asym = weighted_sumDZ/weighted_modsumDZ;
836 }
837
838
839
840 double mean_Dz =0;
841 mean_Dz=sumDZ/track_deltaZ.size(); //calculate average
842 double number_tracks =0;
843 number_tracks = track_deltaZ.size(); // get number of tracks
844
845 double z_sd = 0; // standard deviation
846 double z_skew = 0; // skewness of DeltaZ asymmetry
847 double z_kurt = 0; // Kurtosis of DeltaZ asymmetry
848 double z_var=0; // variance of DeltaZ
849 double z_zbar=0; // for use in calculation below
850
851 for ( auto i : track_deltaZ) {
852
853 z_zbar = (i - mean_Dz);
854 z_var =(z_var + z_zbar*z_zbar);
855 z_skew =(z_skew + z_zbar*z_zbar*z_zbar);
856 z_kurt =(z_kurt + z_zbar*z_zbar*z_zbar*z_zbar);
857
858 }
859 z_var = z_var/(number_tracks -1);
860 z_sd = std::sqrt(z_var);
861 z_skew = z_skew/((number_tracks -1)*z_sd*z_sd*z_sd);
862 z_kurt = z_kurt/((number_tracks -1)*z_sd*z_sd*z_sd*z_sd);
863
864 float ndf = vertex->numberDoF();
865 if (ndf != 0) {
866
868 if (vertex == bestRecoHSVtx_truth) {
869
870 fillHisto(m_vx_sumpT_HS_matched,sumPt ,weight);
871 fillHisto(m_vx_z_asym_HS_matched, z_asym,weight);
872 fillHisto(m_vx_z_asym_weighted_HS_matched, weighted_z_asym,weight);
873 fillHisto(m_vx_chi2Over_ndf_HS_matched, vertex->chiSquared()/ndf,weight);
874
877
878
879 for (const float& trkWeight : vertex->trackWeights()) {
880 fillHisto(m_vx_track_weight_HS_matched, trkWeight,weight);
881 fillHisto(m_vx_normalised_track_weight_HS_matched, trkWeight/number_tracks,weight);
882 }
883
884 }
885 else {
886
887 fillHisto(m_vx_sumpT_matched,sumPt ,weight);
888 fillHisto(m_vx_z_asym_matched, z_asym,weight);
889 fillHisto(m_vx_z_asym_weighted_matched, weighted_z_asym,weight);
890 fillHisto(m_vx_chi2Over_ndf_matched, vertex->chiSquared()/ndf,weight);
891
892 fillHisto(m_vx_z0_skewness_matched, z_skew,weight);
893 fillHisto(m_vx_z0_kurtosis_matched, z_kurt,weight);
894
895
896 for (const float& trkWeight : vertex->trackWeights()) {
897 fillHisto(m_vx_track_weight_matched, trkWeight,weight);
898 fillHisto(m_vx_normalised_track_weight_matched, trkWeight/number_tracks,weight);
899 }
900 }
901// fill some histograms that contain both HS and PU above a min pt - say 20GeV
902 if (sumPt > minpt) {
903 fillHisto(m_vx_sumpT_ALL_matched,sumPt ,weight);
904 fillHisto(m_vx_z_asym_ALL_matched, z_asym,weight);
905 fillHisto(m_vx_z_asym_weighted_ALL_matched, weighted_z_asym,weight);
906 fillHisto(m_vx_chi2Over_ndf_ALL_matched, vertex->chiSquared()/ndf,weight);
907
910 for (const float& trkWeight : vertex->trackWeights()) {
911 fillHisto(m_vx_track_weight_ALL_matched, trkWeight,weight);
912 fillHisto(m_vx_normalised_track_weight_ALL_matched, trkWeight/number_tracks,weight);
913 }
914
915 }
916 } // end of if matched vertices
917
919 if (vertex == bestRecoHSVtx_truth) {
920
921 fillHisto(m_vx_sumpT_HS_merged, sumPt ,weight);
922 fillHisto(m_vx_z_asym_HS_merged, z_asym,weight);
923 fillHisto(m_vx_z_asym_weighted_HS_merged, weighted_z_asym,weight);
924 fillHisto(m_vx_chi2Over_ndf_HS_merged, vertex->chiSquared()/ndf,weight);
925
928 for (const float& trkWeight : vertex->trackWeights()) {
929 fillHisto(m_vx_track_weight_HS_merged, trkWeight,weight);
930 fillHisto(m_vx_normalised_track_weight_HS_merged, trkWeight/number_tracks,weight);
931 }
932
933
934
935 }
936 else {
937 fillHisto(m_vx_sumpT_merged, sumPt ,weight);
938 fillHisto(m_vx_z_asym_merged, z_asym,weight);
939 fillHisto(m_vx_z_asym_weighted_merged, weighted_z_asym,weight);
940 fillHisto(m_vx_chi2Over_ndf_merged, vertex->chiSquared()/ndf,weight);
941
942 fillHisto(m_vx_z0_skewness_merged, z_skew,weight);
943 fillHisto(m_vx_z0_kurtosis_merged, z_kurt,weight);
944 for (const float& trkWeight : vertex->trackWeights()) {
945 fillHisto(m_vx_track_weight_merged, trkWeight,weight);
946 fillHisto(m_vx_normalised_track_weight_merged, trkWeight/number_tracks,weight);
947 }
948
949 }
950 if (sumPt > minpt) {
951 fillHisto(m_vx_sumpT_ALL_merged,sumPt ,weight);
952 fillHisto(m_vx_z_asym_ALL_merged, z_asym,weight);
953 fillHisto(m_vx_z_asym_weighted_ALL_merged, weighted_z_asym,weight);
954 fillHisto(m_vx_chi2Over_ndf_ALL_merged, vertex->chiSquared()/ndf,weight);
955
958 for (const float& trkWeight : vertex->trackWeights()) {
959 fillHisto(m_vx_track_weight_ALL_merged, trkWeight,weight);
960 fillHisto(m_vx_normalised_track_weight_ALL_merged, trkWeight/number_tracks,weight);
961 }
962
963 }
964 } //end of if merged vertices
965
967 if (vertex == bestRecoHSVtx_truth) {
968 fillHisto(m_vx_sumpT_HS_split, sumPt ,weight);
969 fillHisto(m_vx_z_asym_HS_split, z_asym,weight);
970 fillHisto(m_vx_z_asym_weighted_HS_split, weighted_z_asym,weight);
971 fillHisto(m_vx_chi2Over_ndf_HS_split, vertex->chiSquared()/ndf,weight);
972
973 fillHisto(m_vx_z0_skewness_HS_split, z_skew,weight);
974 fillHisto(m_vx_z0_kurtosis_HS_split, z_kurt,weight);
975 for (const float& trkWeight : vertex->trackWeights()) {
976 fillHisto(m_vx_track_weight_HS_split, trkWeight,weight);
977 fillHisto(m_vx_normalised_track_weight_HS_split, trkWeight/number_tracks,weight);
978 }
979
980
981 }
982 else {
983 fillHisto(m_vx_sumpT_split, sumPt ,weight);
984 fillHisto(m_vx_z_asym_split, z_asym,weight);
985 fillHisto(m_vx_z_asym_weighted_split, weighted_z_asym,weight);
986 fillHisto(m_vx_chi2Over_ndf_split, vertex->chiSquared()/ndf,weight);
987
988 fillHisto(m_vx_z0_skewness_split, z_skew,weight);
989 fillHisto(m_vx_z0_kurtosis_split, z_kurt,weight);
990 for (const float& trkWeight : vertex->trackWeights()) {
991 fillHisto(m_vx_track_weight_split, trkWeight,weight);
992 fillHisto(m_vx_normalised_track_weight_split, trkWeight/number_tracks,weight);
993 }
994
995
996 }
997
998 if (sumPt > minpt) {
999 fillHisto(m_vx_sumpT_ALL_split,sumPt ,weight);
1000 fillHisto(m_vx_z_asym_ALL_split, z_asym,weight);
1001 fillHisto(m_vx_z_asym_weighted_ALL_split, weighted_z_asym,weight);
1002 fillHisto(m_vx_chi2Over_ndf_ALL_split, vertex->chiSquared()/ndf,weight);
1003
1004 fillHisto(m_vx_z0_skewness_ALL_split, z_skew,weight);
1005 fillHisto(m_vx_z0_kurtosis_ALL_split, z_kurt,weight);
1006 for (const float& trkWeight : vertex->trackWeights()) {
1007 fillHisto(m_vx_track_weight_ALL_split, trkWeight,weight);
1008 fillHisto(m_vx_normalised_track_weight_ALL_split, trkWeight/number_tracks,weight);
1009 }
1010 }
1011
1012 } // end of if split vertices
1013
1014// Count the number of vertices for each type per event
1015
1016
1018 if (vertex == bestRecoHSVtx_truth) {
1019 number_matched_HS++;
1020 }
1021 else {
1022 number_matched_PU++;
1023 }
1024 if (sumPt > minpt) {
1025 number_matched++;
1026 }
1027 }
1028
1030 if (vertex == bestRecoHSVtx_truth) {
1031 number_merged_HS++;
1032 }
1033 else {
1034 number_merged_PU++;
1035 }
1036 if (sumPt > minpt) {
1037 number_merged++;
1038 }
1039 }
1040
1042 if (vertex == bestRecoHSVtx_truth) {
1043 number_split_HS++;
1044 }
1045 else {
1046 number_split_PU++;
1047 }
1048 if (sumPt > minpt) {
1049 number_split++;
1050 }
1051 }
1052
1054 if (vertex == bestRecoHSVtx_truth) {
1055 number_fake_HS++;
1056 }
1057 else {
1058 number_fake_PU++;
1059 }
1060 if (sumPt > minpt) {
1061 number_fake++;
1062 }
1063 }
1064 } // end of if (ndf != 0)
1065
1066
1067
1068// New histos to check for number of tracks for each vertex type
1069 for (const auto& vertex : vertexContainer.stdcont()) {
1070 if (vertex == bestRecoHSVtx_truth) {
1071
1072
1074
1075 fillHisto(m_vx_ntracks_HS_matched, vertex->nTrackParticles(),weight);
1076 }
1077
1079 fillHisto(m_vx_ntracks_HS_merged, vertex->nTrackParticles(),weight);
1080
1081 }
1082
1084 fillHisto(m_vx_ntracks_HS_split, vertex->nTrackParticles(),weight);
1085 }
1086 }
1087 else {
1088
1089
1091
1092 fillHisto(m_vx_ntracks_matched, vertex->nTrackParticles(),weight);
1093 }
1094
1096 fillHisto(m_vx_ntracks_merged, vertex->nTrackParticles(),weight);
1097
1098 }
1099
1101 fillHisto(m_vx_ntracks_split, vertex->nTrackParticles(),weight);
1102 }
1103
1104 }
1105 if (sumPt > minpt) {
1107
1108 fillHisto(m_vx_ntracks_ALL_matched, vertex->nTrackParticles(),weight);
1109 }
1110
1112 fillHisto(m_vx_ntracks_ALL_merged, vertex->nTrackParticles(),weight);
1113
1114 }
1115
1117 fillHisto(m_vx_ntracks_ALL_split, vertex->nTrackParticles(),weight);
1118 }
1119
1120 }
1121
1122 }
1123
1124// delta z between HS and nearby vertices
1125 float absd_hs_dz = std::abs(bestRecoHSVtx_truth->z() - vertex->z());
1126 if(bestRecoHSVtx_truth != vertex && absd_hs_dz < min_fabs_dz) {
1127 min_fabs_dz = absd_hs_dz;
1128 vx_hs_mindz = bestRecoHSVtx_truth->z() - vertex->z();
1129 }
1130// loop over vertices again for dz of every vertices pair
1131 for (const auto& vertex2 : vertexContainer.stdcont()) {
1132 if (vertex2->vertexType() == xAOD::VxType::NoVtx) continue;
1133 if(vertex2 == vertex) continue;
1134 fillHisto(m_vx_all_dz, vertex->z() - vertex2->z(), 0.5*weight);
1135 }
1136
1137 } // end loop over vertices
1138
1139// new histos to count number of vertices per event
1140 fillHisto(m_vx_nVertices_ALL_matched, number_matched,weight);
1141 fillHisto(m_vx_nVertices_ALL_merged, number_merged,weight);
1142 fillHisto(m_vx_nVertices_ALL_split, number_split,weight);
1143 fillHisto(m_vx_nVertices_ALL_fake, number_fake,weight);
1144 fillHisto(m_vx_nVertices_HS_matched, number_matched_HS,weight);
1145 fillHisto(m_vx_nVertices_HS_merged, number_merged_HS,weight);
1146 fillHisto(m_vx_nVertices_HS_split, number_split_HS,weight);
1147 fillHisto(m_vx_nVertices_HS_fake, number_fake_HS,weight);
1148 fillHisto(m_vx_nVertices_matched, number_matched_PU,weight);
1149 fillHisto(m_vx_nVertices_merged, number_merged_PU,weight);
1150 fillHisto(m_vx_nVertices_split, number_split_PU,weight);
1151 fillHisto(m_vx_nVertices_fake, number_fake_PU,weight);
1152
1153// new histo to delta z between HS and the closest one
1154 fillHisto(m_vx_hs_mindz, vx_hs_mindz, weight);
1155
1156 // Now fill plots relating to the reconstruction of our truth HS vertex (efficiency and resolutions)
1157 if (!truthHSVertices.empty()) {
1158 if (truthHSVtxRecoed) {
1159 float residual_z = truthHSVtx->z() - bestRecoHSVtx_truth->z();
1160 float residual_r = std::sqrt(std::pow(truthHSVtx->x() - bestRecoHSVtx_truth->x(), 2) + std::pow(truthHSVtx->y() - bestRecoHSVtx_truth->y(), 2));
1161 float residual_x = truthHSVtx->x() - bestRecoHSVtx_truth->x();
1162 float residual_y = truthHSVtx->y() - bestRecoHSVtx_truth->y();
1163 fillHisto(m_vx_hs_reco_eff, localPUDensity, 1, weight);
1164 fillHisto(m_vx_hs_reco_sel_eff, localPUDensity, (recoHardScatter == bestRecoHSVtx_truth), weight);
1165 fillHisto(m_vx_hs_reco_eff_vs_ntruth, nTruthVertices, 1, weight);
1166 fillHisto(m_vx_hs_reco_sel_eff_vs_ntruth, nTruthVertices, (recoHardScatter == bestRecoHSVtx_truth), weight);
1167 fillHisto(m_vx_hs_reco_long_reso, localPUDensity, getRecoLongitudinalReso(bestRecoHSVtx_truth), weight);
1168 fillHisto(m_vx_hs_reco_trans_reso, localPUDensity, getRecoTransverseReso(bestRecoHSVtx_truth), weight);
1169
1170 fillHisto(m_resHelper_PUdensity_hsVxTruthLong, localPUDensity, residual_z, weight);
1171 fillHisto(m_resHelper_PUdensity_hsVxTruthTransv, localPUDensity, residual_r, weight);
1172
1173 const AmgSymMatrix(3)& covariance = bestRecoHSVtx_truth->covariancePosition();
1174 float vtxerr_x = Amg::error(covariance, 0);
1175 float vtxerr_y = Amg::error(covariance, 1);
1176 float vtxerr_z = Amg::error(covariance, 2);
1177
1178 if(fabs(vtxerr_z) > 1e-7) fillHisto(m_vx_hs_z_pull, residual_z/vtxerr_z, weight);
1179 if(fabs(vtxerr_y) > 1e-7) fillHisto(m_vx_hs_y_pull, residual_y/vtxerr_y, weight);
1180 if(fabs(vtxerr_x) > 1e-7) fillHisto(m_vx_hs_x_pull, residual_x/vtxerr_x, weight);
1181
1182 fillHisto(m_vx_hs_truth_z_res_vs_PU, localPUDensity, residual_z, weight);
1183 fillHisto(m_vx_hs_truth_x_res_vs_PU, localPUDensity, residual_x, weight);
1184 fillHisto(m_vx_hs_truth_y_res_vs_PU, localPUDensity, residual_y, weight);
1185
1186 fillHisto(m_vx_hs_z_res, residual_z, weight);
1187 fillHisto(m_vx_hs_y_res, residual_y, weight);
1188 fillHisto(m_vx_hs_x_res, residual_x, weight);
1189
1190 fillHisto(m_vx_hs_truth_z_pull_vs_PU, localPUDensity, residual_z/vtxerr_z, weight);
1191 fillHisto(m_vx_hs_truth_x_pull_vs_PU, localPUDensity, residual_x/vtxerr_x, weight);
1192 fillHisto(m_vx_hs_truth_y_pull_vs_PU, localPUDensity, residual_y/vtxerr_y, weight);
1193
1194 fillHisto(m_vx_hs_truth_z_res_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_z, weight);
1195 fillHisto(m_vx_hs_truth_x_res_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_x, weight);
1196 fillHisto(m_vx_hs_truth_y_res_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_y, weight);
1197
1198 fillHisto(m_vx_hs_truth_z_pull_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_z/vtxerr_z, weight);
1199 fillHisto(m_vx_hs_truth_x_pull_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_x/vtxerr_x, weight);
1200 fillHisto(m_vx_hs_truth_y_pull_vs_nTrk, bestRecoHSVtx_truth->nTrackParticles(), residual_y/vtxerr_y, weight);
1201
1202 }
1203 else {
1204 fillHisto(m_vx_hs_reco_eff, localPUDensity, 0, weight);
1205 fillHisto(m_vx_hs_reco_eff_vs_ntruth, nTruthVertices, 0, weight);
1206 }
1207 }
1208
1214
1215 // And by hardscatter type:
1217 fillHisto(m_vx_hs_classification, hsType, weight);
1218 switch (hsType) {
1220 fillHisto(m_vx_nReco_vs_nTruth_clean, nTruthVertices, nRecoVertices, weight);
1221 break;
1222 }
1224 fillHisto(m_vx_nReco_vs_nTruth_lowpu, nTruthVertices, nRecoVertices, weight);
1225 break;
1226 }
1228 fillHisto(m_vx_nReco_vs_nTruth_highpu, nTruthVertices, nRecoVertices, weight);
1229 break;
1230 }
1232 fillHisto(m_vx_nReco_vs_nTruth_hssplit, nTruthVertices, nRecoVertices, weight);
1233 break;
1234 }
1236 fillHisto(m_vx_nReco_vs_nTruth_none, nTruthVertices, nRecoVertices, weight);
1237 break;
1238 }
1239 default: {
1240 break;
1241 }
1242 } // End of switch
1243 } // end of EXpert plots - (if (m_detailLevel >= 200))
1244
1245} // 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}

◆ fillResoHist()

void InDetPerfPlot_VertexTruthMatching::fillResoHist ( TH1 * resoHist,
const TH2 * resoHist2D )
staticprivate

Definition at line 487 of file InDetPerfPlot_VertexTruthMatching.cxx.

487 {
488
489 TH1* projHist = nullptr;
490 int safety_counter;
491 TFitResultPtr fitResult;
492 double mean;
493 double rms;
494 double itr_rms = -1.;
495 double itr_rms_err;
496
497 for (int i = 1; i < resoHist2D->GetNbinsX() + 1; i++) {
498
499 projHist = resoHist2D->ProjectionY("projectionY", i, i);
500
501 if (projHist->GetEntries() == 0.) {
502 resoHist->SetBinContent(i, 0.);
503 resoHist->SetBinError(i, 0.);
504 continue;
505 }
506
507 safety_counter = 0;
508
509 fitResult = projHist->Fit("gaus", "QS0");
510 if (!fitResult.Get()) {
511 // Is it necessary to also require fitResult->Status() % 1000 == 0 for a successful fit?
512 // --> fitStatus = migradResult + 10 * minosResult + 100 * hesseResult + 1000 * improveResult
513 resoHist->SetBinContent(i, 0.);
514 resoHist->SetBinError(i, 0.);
515 continue;
516 }
517 mean = fitResult->Parameter(1);
518 rms = fitResult->Parameter(2);
519
520 while (true) {
521
522 projHist->SetAxisRange(mean - 3 * rms, mean + 3 * rms, "X");
523
524 fitResult = projHist->Fit("gaus", "QS0");
525 if (!fitResult.Get()) {
526 itr_rms = 0.;
527 itr_rms_err = 0.;
528 break;
529 }
530 itr_rms = fitResult->Parameter(2);
531 itr_rms_err = fitResult->ParError(2);
532
533 if ((fabs(itr_rms - rms) < 0.0001) || (safety_counter == 5)) {
534 break;
535 }
536
537 safety_counter++;
538 mean = fitResult->Parameter(1);
539 rms = itr_rms;
540
541 }
542
543 resoHist->SetBinContent(i, itr_rms);
544 resoHist->SetBinError(i, itr_rms_err);
545
546 }
547}
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")

◆ 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

Reimplemented from PlotBase.

Definition at line 1248 of file InDetPerfPlot_VertexTruthMatching.cxx.

1248 {
1249
1250 if (m_detailLevel >= 200) {
1251
1254 }
1255
1256} // end InDetPerfPlot_VertexTruthMatching::finalizePlots()
static void fillResoHist(TH1 *resoHist, const TH2 *resoHist2D)

◆ 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 418 of file InDetPerfPlot_VertexTruthMatching.cxx.

418 {
419 const xAOD::Vertex* recoHSVertex = nullptr;
420 float sumPtMax = -1.;
421 const xAOD::TrackParticle* trackTmp = nullptr;
422 float sumPtTmp;
423 for (const auto& vtx : recoVertices.stdcont()) {
424 if (vtx) {
425 sumPtTmp = 0.;
426 for (size_t i = 0; i < vtx->nTrackParticles(); i++) {
427 trackTmp = vtx->trackParticle(i);
428 if (trackTmp) {
429 sumPtTmp += std::pow(trackTmp->pt(), 2);
430 }
431 }
432 if (sumPtTmp > sumPtMax) {
433 sumPtMax = sumPtTmp;
434 recoHSVertex = vtx;
435 }
436 }
437 }
438 return recoHSVertex;
439}

◆ 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 447 of file InDetPerfPlot_VertexTruthMatching.cxx.

447 {
448 float radialWindow2 = std::pow(radialWindow, 2);
449 int nTracksInWindow = 0;
450 float localPUDensity;
451 float radialDiff2;
452 for (const auto& vtx : truthHSVertices) {
453 if (vtx != vtxOfInterest) {
454 radialDiff2 = getRadialDiff2(vtxOfInterest, vtx);
455 if (radialDiff2 < radialWindow2) {
456 nTracksInWindow += 1;
457 }
458 }
459 }
460 for (const auto& vtx : truthPUVertices) {
461 if (vtx != vtxOfInterest) {
462 radialDiff2 = getRadialDiff2(vtxOfInterest, vtx);
463 if (radialDiff2 < radialWindow2) {
464 nTracksInWindow += 1;
465 }
466 }
467 }
468 localPUDensity = (float)(nTracksInWindow) / (2 * radialWindow);
469 return localPUDensity;
470}

◆ getRadialDiff2()

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

Definition at line 443 of file InDetPerfPlot_VertexTruthMatching.cxx.

443 {
444 return (std::pow((vtx1->x() - vtx2->x()), 2) + std::pow((vtx1->y() - vtx2->y()), 2) + std::pow((vtx1->z() - vtx2->z()), 2));
445}

◆ getRecoLongitudinalReso()

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

Definition at line 472 of file InDetPerfPlot_VertexTruthMatching.cxx.

472 {
473 return std::sqrt(recoVtx->covariancePosition()(2, 2));
474}

◆ getRecoTransverseReso()

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

Definition at line 476 of file InDetPerfPlot_VertexTruthMatching.cxx.

476 {
477 float x = recoVtx->x();
478 float y = recoVtx->y();
479 float xErr2 = recoVtx->covariancePosition()(0, 0);
480 float yErr2 = recoVtx->covariancePosition()(1, 1);
481 float xyCov = recoVtx->covariancePosition()(0, 1);
482 float r2 = std::pow(x, 2) + std::pow(y, 2);
483 return std::sqrt(std::pow(x, 2) / r2 * xErr2 + std::pow(y, 2) / r2 * yErr2 + 2 * x * y / r2 * xyCov);
484}
#define y
#define x

◆ getTruthVertex()

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

Definition at line 549 of file InDetPerfPlot_VertexTruthMatching.cxx.

549 {
550 const xAOD::TruthVertex* truthVtx = nullptr;
551 if (recoVtx) {
552 const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
553 try{
554 if (!truthMatchingInfos.isAvailable(*recoVtx)){
555 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR not available -- returning nullptr!");
556 return truthVtx;
557 }
558 const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
559 if (!truthInfos.empty()) {
560 const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
561 const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
562 const xAOD::TruthEvent* truthEvent = nullptr;
563 if (truthEventLink.isValid()) {
564 truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
565 if (truthEvent) {
566 size_t i_vtx = 0;
567 size_t n_vtx = truthEvent->nTruthVertices();
568 while(!truthVtx && i_vtx<n_vtx){
569 truthVtx = truthEvent->truthVertex(i_vtx);
570 i_vtx++;
571 }
572 }
573 }
574 }
575 else {
576 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
577 }
578 }
579 catch (SG::ExcBadAuxVar &){
580 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
581 }
582 }
583 return truthVtx;
584}
const TruthVertex * truthVertex(size_t index) const
Get a pointer to one of the truth vertices.
size_t nTruthVertices() const
Get the number of truth vertices.
std::tuple< ElementLink< xAOD::TruthEventBaseContainer >, float, float > VertexTruthMatchInfo
TruthEvent_v1 TruthEvent
Typedef to implementation.
Definition TruthEvent.h:17

◆ 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 216 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ 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 49 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_detailLevel

int InDetPerfPlot_VertexTruthMatching::m_detailLevel {10}
private

Definition at line 48 of file InDetPerfPlot_VertexTruthMatching.h.

48{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 47 of file InDetPerfPlot_VertexTruthMatching.h.

47{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_PUdensity_hsVxTruthLong

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthLong
private

Definition at line 101 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthTransv

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthTransv
private

Definition at line 104 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthLong
private

Definition at line 103 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthTransv
private

Definition at line 106 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthLong
private

Definition at line 102 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthTransv
private

Definition at line 105 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 257 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 134 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 127 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 131 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 124 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 135 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 128 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 132 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 125 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 133 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 126 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 130 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 123 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_pull
private

Definition at line 114 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_res
private

Definition at line 121 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_pull
private

Definition at line 113 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_res
private

Definition at line 120 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_pull
private

Definition at line 112 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_res
private

Definition at line 119 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_matched
private

Definition at line 232 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_merged
private

Definition at line 233 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_split
private

Definition at line 234 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_matched
private

Definition at line 197 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_merged
private

Definition at line 198 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_split
private

Definition at line 199 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_matched
private

Definition at line 194 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_merged
private

Definition at line 195 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_split
private

Definition at line 196 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_classification

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_classification {}
private

hardscatter classification

Definition at line 64 of file InDetPerfPlot_VertexTruthMatching.h.

64{};

◆ m_vx_hs_mindz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_mindz
private

Definition at line 258 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff
private

Definition at line 78 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 92 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_long_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_long_reso
private

Definition at line 98 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff
private

Definition at line 84 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 96 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_trans_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_trans_reso
private

Definition at line 99 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff
private

Definition at line 80 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist
private

Definition at line 86 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 90 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_mu
private

Definition at line 88 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 82 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 94 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 148 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 141 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 145 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 138 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 149 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 142 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 146 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 139 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 147 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 140 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 144 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 137 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_pull
private

Definition at line 111 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_res
private

Definition at line 118 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_pull
private

Definition at line 110 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_res
private

Definition at line 117 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_pull
private

Definition at line 109 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_res
private

Definition at line 116 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 228 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 229 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 230 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 190 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 191 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 192 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_matched
private

Definition at line 187 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_merged
private

Definition at line 188 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_split
private

Definition at line 189 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_clean

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_clean
private

Definition at line 72 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_dummy

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_dummy
private

Definition at line 71 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_fake

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_fake
private

Definition at line 70 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_highpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_highpu
private

Definition at line 74 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_hssplit

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_hssplit
private

Definition at line 75 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 66 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_lowpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_lowpu
private

Definition at line 73 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_matched

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_matched
private

Definition at line 67 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_merged

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_merged
private

Definition at line 68 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_none

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_none
private

Definition at line 76 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_split

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_split
private

Definition at line 69 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_matched
private

Definition at line 157 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_merged
private

Definition at line 158 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_split
private

Definition at line 159 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_matched
private

Definition at line 154 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_merged
private

Definition at line 155 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_split
private

Definition at line 156 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_matched
private

Definition at line 151 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_merged
private

Definition at line 152 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_split
private

Definition at line 153 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth
private

Definition at line 261 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth_vs_PUdensity

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth_vs_PUdensity
private

Definition at line 262 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_fake
private

Definition at line 246 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_matched
private

Definition at line 243 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_merged
private

Definition at line 244 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_split
private

Definition at line 245 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_fake
private

Definition at line 254 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_fake
private

Definition at line 250 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_matched
private

Definition at line 247 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_merged
private

Definition at line 248 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_split
private

Definition at line 249 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_matched
private

Definition at line 251 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_merged
private

Definition at line 252 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_split
private

Definition at line 253 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_PUdensity

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_PUdensity
private

Definition at line 260 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_matched
private

Definition at line 215 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_merged
private

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_split
private

Definition at line 217 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_matched
private

Definition at line 163 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_merged
private

Definition at line 164 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_split
private

Definition at line 165 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_matched
private

Definition at line 160 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_merged
private

Definition at line 161 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_split
private

Definition at line 162 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_time_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff {}
private

vertex time

Definition at line 60 of file InDetPerfPlot_VertexTruthMatching.h.

60{};

◆ m_vx_time_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff_pull {}
private

Definition at line 61 of file InDetPerfPlot_VertexTruthMatching.h.

61{};

◆ m_vx_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_matched
private

Definition at line 225 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_merged
private

Definition at line 226 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_split
private

Definition at line 227 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_matched
private

Definition at line 183 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_merged
private

Definition at line 184 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_split
private

Definition at line 185 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_matched
private

Definition at line 180 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_merged
private

Definition at line 181 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_split
private

Definition at line 182 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_type_truth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_type_truth {}
private

truth type

Definition at line 51 of file InDetPerfPlot_VertexTruthMatching.h.

51{};

◆ m_vx_x_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff {}
private

Definition at line 52 of file InDetPerfPlot_VertexTruthMatching.h.

52{};

◆ m_vx_x_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff_pull {}
private

Definition at line 53 of file InDetPerfPlot_VertexTruthMatching.h.

53{};

◆ m_vx_y_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff {}
private

Definition at line 54 of file InDetPerfPlot_VertexTruthMatching.h.

54{};

◆ m_vx_y_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff_pull {}
private

Definition at line 55 of file InDetPerfPlot_VertexTruthMatching.h.

55{};

◆ m_vx_z0_kurtosis_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_matched
private

Definition at line 239 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_merged
private

Definition at line 240 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_split
private

Definition at line 241 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_matched
private

Definition at line 210 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_merged
private

Definition at line 211 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_split
private

Definition at line 212 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_matched
private

Definition at line 207 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_merged
private

Definition at line 208 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_split
private

Definition at line 209 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_matched
private

Definition at line 236 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_merged
private

Definition at line 237 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_split
private

Definition at line 238 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_matched
private

Definition at line 204 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_merged
private

Definition at line 205 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_split
private

Definition at line 206 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_matched
private

Definition at line 201 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_merged
private

Definition at line 202 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_split
private

Definition at line 203 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_matched
private

Definition at line 219 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_merged
private

Definition at line 220 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_split
private

Definition at line 221 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_matched
private

Definition at line 170 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_merged
private

Definition at line 171 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_split
private

Definition at line 172 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_matched
private

Definition at line 167 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_merged
private

Definition at line 168 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_split
private

Definition at line 169 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 222 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 223 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 224 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 176 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 177 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 178 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_matched
private

Definition at line 173 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_merged
private

Definition at line 174 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_split
private

Definition at line 175 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff {}
private

Definition at line 56 of file InDetPerfPlot_VertexTruthMatching.h.

56{};

◆ m_vx_z_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff_pull {}
private

Definition at line 57 of file InDetPerfPlot_VertexTruthMatching.h.

57{};

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