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

class holding plots for truth matched vertices More...

#include <InDetPerfPlot_VertexTruthMatching.h>

Inheritance diagram for InDetPerfPlot_VertexTruthMatching:
Collaboration diagram for InDetPerfPlot_VertexTruthMatching:

Public Member Functions

 InDetPerfPlot_VertexTruthMatching (InDetPlotBase *pParent, const std::string &dirName, const int detailLevel=10, bool isITk=false)
void fill (const xAOD::Vertex &vertex, const xAOD::TruthVertex *tvrt=0, float weight=1.0)
void fill (const xAOD::Vertex *recoHardScatter, const xAOD::VertexContainer &vertexContainer, const std::vector< const xAOD::TruthVertex * > &truthHSVertices, const std::vector< const xAOD::TruthVertex * > &truthPUVertices, float actualMu, float weight=1.0)
SingleHistogramDefinition retrieveDefinition (std::string_view histoIdentifier, std::string_view folder="default", std::string_view nameOverride="")
 Retrieve a single histogram definition, given the unique string identifier.
template<class Htype>
void book (Htype *&pHisto, std::string_view histoIdentifier, std::string_view nameOverride="", std::string_view folder="default")
 Helper method to book histograms using an identifier string.
void book (TH1 *&pHisto, const SingleHistogramDefinition &hd)
 Book a TH1 histogram.
void book (TProfile *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile histogram.
void book (TProfile2D *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile2D histogram.
void book (TH2 *&pHisto, const SingleHistogramDefinition &hd)
 Book a 2D histogram (TH2).
void book (TEfficiency *&pHisto, const SingleHistogramDefinition &hd)
 Book a (1-D) TEfficiency.
void initialize ()
void finalize ()
void setDetailLevel (int iDetailLevel)
void RegisterSubPlot (PlotBase *pPlotBase)
std::vector< HistData > retrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeData > retrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyData > retrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects.
TTree * BookTree (std::string_view name, bool prependDir=true)
 Book a TTree.
const std::string & getDirectory ()
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.
Methods to book monitoring histograms

Note: methods starting with capitals should be deprecated in favour of camel-cased methods

TH1D * Book1D (std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
 Book a TH1D histogram.
TH1D * Book1D (std::string_view name, TH1 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH1D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
 Book a TH2F histogram.
TH2F * Book2D (std::string_view name, TH2 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH2D histogram using refHist as reference for number of bins and axis range.
TH2F * Book2D (std::string_view name, std::string_view labels, int nBinsX, Double_t *binsX, int nBinsY, Double_t startY, Double_t endY, bool prependDir=true)
 Book a TH2F histogram with variable x axis binning.
TH3F * Book3D (std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, int nBinsZ, float startZ, float endZ, bool prependDir=true)
 Book a TH3F histogram.
TH3F * Book3D (std::string_view name, TH3 *refHist, std::string_view labels, bool prependDir=true)
 Book a TH3F histogram using refHist as reference for number of bins and axis range.
TProfile * BookTProfile (std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
 Book a TProfile histogram.
TProfile * BookTProfile (std::string_view name, std::string_view labels, int nBinsX, float *binsX, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis.
TProfile * BookTProfileRangeY (std::string_view name, std::string_view labels, int nBinsX, double *binsX, double startY, double endY, bool prependDir=true)
 Book a TProfile histogram with variable binning in x-axis and limits in y-values.
TProfile2D * BookTProfile2D (std::string_view name, std::string_view labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TProfile2D * BookTProfile2D (std::string_view name, std::string_view labels, const int nBinsX, double *binsX, const int nBinsY, double *binsY, bool prependDir=true, bool useRMS=false)
 Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
TEfficiency * BookTEfficiency (std::string_view name, std::string_view labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
 Book a (1-D) TEfficiency histogram.
TEfficiency * BookTEfficiency (std::string_view name, std::string_view labels, const int nBinsX, const float xlo, const float xhi, const int nBinsy, const float ylo, const float yhi, const bool prependDir=true)
 Book a (2-D) TEfficiency histogram.

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Static Private Member Functions

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

Private Attributes

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

Detailed Description

class holding plots for truth matched vertices

Definition at line 43 of file InDetPerfPlot_VertexTruthMatching.h.

Constructor & Destructor Documentation

◆ InDetPerfPlot_VertexTruthMatching()

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

Definition at line 21 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

Member Function Documentation

◆ book() [1/6]

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

Helper method to book histograms using an identifier string.

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

◆ book() [2/6]

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

Book a (1-D) TEfficiency.

Definition at line 71 of file InDetPlotBase.cxx.

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

◆ book() [3/6]

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

Book a TH1 histogram.

Definition at line 43 of file InDetPlotBase.cxx.

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

◆ book() [4/6]

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

Book a 2D histogram (TH2).

Definition at line 63 of file InDetPlotBase.cxx.

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

◆ book() [5/6]

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

Book a TProfile histogram.

Definition at line 49 of file InDetPlotBase.cxx.

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

◆ book() [6/6]

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

Book a TProfile2D histogram.

Definition at line 56 of file InDetPlotBase.cxx.

56 {
57 if (hd.isValid()) {
58 pHisto = BookTProfile2D(hd.name, hd.allTitles, hd.nBinsX, hd.xAxis.first, hd.xAxis.second, hd.nBinsY, hd.yAxis.first,
59 hd.yAxis.second, false);
60 }
61 }
TProfile2D * BookTProfile2D(std::string_view name, std::string_view labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false)
Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
Definition PlotBase.cxx:231

◆ Book1D() [1/2]

TH1D * PlotBase::Book1D ( std::string_view name,
std::string_view labels,
int nBins,
float start,
float end,
bool prependDir = true )
inherited

Book a TH1D histogram.

Definition at line 94 of file PlotBase.cxx.

95 {
96 std::string prefix = constructPrefix(m_sDirectory, prependDir);
97 Bool_t oldstat = TH1::AddDirectoryStatus();
98 TH1::AddDirectory(false);
99 TH1D *hist = new TH1D(prefix.append(name).c_str(), labels.data(), nBins, start, end);
100 TH1::AddDirectory(oldstat);
101
102 hist->Sumw2();
103 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
104 return hist;
105}
static std::string constructPrefix(std::string dir, bool prependDir)
Definition PlotBase.cxx:289
std::vector< HistData > m_vBookedHistograms
Definition PlotBase.h:98
std::string m_sDirectory
Definition PlotBase.h:101

◆ Book1D() [2/2]

TH1D * PlotBase::Book1D ( std::string_view name,
TH1 * refHist,
std::string_view labels,
bool prependDir = true )
inherited

Book a TH1D histogram using refHist as reference for number of bins and axis range.

Definition at line 108 of file PlotBase.cxx.

108 {
109 std::string prefix = constructPrefix(m_sDirectory, prependDir);
110 Bool_t oldstat = TH1::AddDirectoryStatus();
111 TH1::AddDirectory(false);
112 TH1D *hist = new TH1D(prefix.append(name).c_str(), labels.data(), refHist->GetNbinsX(),
113 refHist->GetXaxis()->GetXbins()->GetArray());
114 hist->Sumw2();
115 TH1::AddDirectory(oldstat);
116
117
118 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
119 return hist;
120}

◆ Book2D() [1/3]

TH2F * PlotBase::Book2D ( std::string_view name,
std::string_view labels,
int nBinsX,
Double_t * binsX,
int nBinsY,
Double_t startY,
Double_t endY,
bool prependDir = true )
inherited

Book a TH2F histogram with variable x axis binning.

Definition at line 144 of file PlotBase.cxx.

145 {
146 std::string prefix = constructPrefix(m_sDirectory, prependDir);
147 Bool_t oldstat = TH2::AddDirectoryStatus();
148 TH2::AddDirectory(false);
149 TH2F *hist = new TH2F(prefix.append(name).c_str(), labels.data(), nBinsX, binsX, nBinsY, startY, endY);
150 hist->Sumw2();
151 TH2::AddDirectory(oldstat);
152 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
153 return hist;
154}
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ Book2D() [2/3]

TH2F * PlotBase::Book2D ( std::string_view name,
std::string_view labels,
int nBinsX,
float startX,
float endX,
int nBinsY,
float startY,
float endY,
bool prependDir = true )
inherited

Book a TH2F histogram.

Definition at line 123 of file PlotBase.cxx.

124 {
125 std::string prefix = constructPrefix(m_sDirectory, prependDir);
126 Bool_t oldstat = TH2::AddDirectoryStatus();
127 TH2::AddDirectory(false);
128 TH2F *hist = new TH2F(prefix.append(name).c_str(), labels.data(), nBinsX, startX, endX, nBinsY, startY, endY);
129 hist->Sumw2();
130 TH2::AddDirectory(oldstat);
131
132
133 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
134 return hist;
135}

◆ Book2D() [3/3]

TH2F * PlotBase::Book2D ( std::string_view name,
TH2 * refHist,
std::string_view labels,
bool prependDir = true )
inherited

Book a TH2D histogram using refHist as reference for number of bins and axis range.

Definition at line 138 of file PlotBase.cxx.

138 {
139 return Book2D(name, labels, refHist->GetNbinsX(), refHist->GetXaxis()->GetXmin(), refHist->GetXaxis()->GetXmax(),
140 refHist->GetNbinsY(), refHist->GetYaxis()->GetXmin(), refHist->GetYaxis()->GetXmax(), prependDir);
141}

◆ Book3D() [1/2]

TH3F * PlotBase::Book3D ( std::string_view name,
std::string_view labels,
int nBinsX,
float startX,
float endX,
int nBinsY,
float startY,
float endY,
int nBinsZ,
float startZ,
float endZ,
bool prependDir = true )
inherited

Book a TH3F histogram.

Definition at line 157 of file PlotBase.cxx.

158 {
159 std::string prefix = constructPrefix(m_sDirectory, prependDir);
160 Bool_t oldstat = TH3::AddDirectoryStatus();
161 TH3::AddDirectory(false);
162 TH3F *hist = new TH3F(prefix.append(name).c_str(),
163 labels.data(), nBinsX, startX, endX, nBinsY, startY, endY, nBinsZ, startZ, endZ);
164 hist->Sumw2();
165 TH3::AddDirectory(oldstat);
166 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
167 return hist;
168}

◆ Book3D() [2/2]

TH3F * PlotBase::Book3D ( std::string_view name,
TH3 * refHist,
std::string_view labels,
bool prependDir = true )
inherited

Book a TH3F histogram using refHist as reference for number of bins and axis range.

Definition at line 171 of file PlotBase.cxx.

171 {
172 std::string prefix = constructPrefix(m_sDirectory, prependDir);
173 Bool_t oldstat = TH3::AddDirectoryStatus();
174 TH3::AddDirectory(false);
175 TH3F *hist = new TH3F(prefix.append(name).c_str(), labels.data(), refHist->GetNbinsX(),
176 refHist->GetXaxis()->GetXbins()->GetArray(), refHist->GetNbinsY(),
177 refHist->GetYaxis()->GetXbins()->GetArray(), refHist->GetNbinsZ(),
178 refHist->GetZaxis()->GetXbins()->GetArray());
179 TH3::AddDirectory(oldstat);
180
181 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
182 return hist;
183}

◆ BookTEfficiency() [1/2]

TEfficiency * PlotBase::BookTEfficiency ( std::string_view name,
std::string_view labels,
const int nBinsX,
const float xlo,
const float xhi,
const bool prependDir = true )
inherited

Book a (1-D) TEfficiency histogram.

Definition at line 257 of file PlotBase.cxx.

257 {
258 std::string prefix = constructPrefix(m_sDirectory, prependDir);
259 TEfficiency *hist = new TEfficiency(prefix.append(name).c_str(), labels.data(), nBinsX, xlo, xhi);
260 hist->SetDirectory(nullptr);
261 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
262 return hist;
263}
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition PlotBase.h:100

◆ BookTEfficiency() [2/2]

TEfficiency * PlotBase::BookTEfficiency ( std::string_view name,
std::string_view labels,
const int nBinsX,
const float xlo,
const float xhi,
const int nBinsy,
const float ylo,
const float yhi,
const bool prependDir = true )
inherited

Book a (2-D) TEfficiency histogram.

Definition at line 266 of file PlotBase.cxx.

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

◆ BookTProfile() [1/2]

TProfile * PlotBase::BookTProfile ( std::string_view name,
std::string_view labels,
int nBinsX,
float * binsX,
bool prependDir = true )
inherited

Book a TProfile histogram with variable binning in x-axis.

Definition at line 204 of file PlotBase.cxx.

204 {
205 std::string prefix = constructPrefix(m_sDirectory, prependDir);
206 TProfile *hist(nullptr);
207 Bool_t oldstat = TProfile::AddDirectoryStatus();
208 TProfile::AddDirectory(false);
209
210 hist = new TProfile(prefix.append(name).c_str(), labels.data(), nBinsX, binsX);
211 TProfile::AddDirectory(oldstat);
212 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
213 return hist;
214}

◆ BookTProfile() [2/2]

TProfile * PlotBase::BookTProfile ( std::string_view name,
std::string_view labels,
int nBinsX,
float startX,
float endX,
float startY = -1,
float endY = -1,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile histogram.

Definition at line 186 of file PlotBase.cxx.

187 {
188 std::string prefix = constructPrefix(m_sDirectory, prependDir);
189 TProfile *hist(nullptr);
190 Bool_t oldstat = TProfile::AddDirectoryStatus();
191 TProfile::AddDirectory(false);
192 std::string opt = useRMS ? "S" : "";
193 if ((startY == -1) and (endY == -1)) {
194 hist = new TProfile(prefix.append(name).c_str(), labels.data(), nBinsX, startX, endX, opt.c_str());
195 } else {
196 hist = new TProfile(prefix.append(name).c_str(), labels.data(), nBinsX, startX, endX, startY, endY, opt.c_str());
197 }
198 TProfile::AddDirectory(oldstat);
199 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
200 return hist;
201}

◆ BookTProfile2D() [1/2]

TProfile2D * PlotBase::BookTProfile2D ( std::string_view name,
std::string_view labels,
const int nBinsX,
const double xlo,
const double xhi,
const int nBinsY,
const double ylo,
const double yhi,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 231 of file PlotBase.cxx.

233 {
234 std::string prefix = constructPrefix(m_sDirectory, prependDir);
235 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
236 TProfile2D::AddDirectory(false);
237 std::string opt = useRMS ? "S" : "";
238 TProfile2D *hist = new TProfile2D(prefix.append(name).c_str(), labels.data(), nBinsX, xlo, xhi, nBinsY, ylo, yhi, opt.c_str());
239 TProfile2D::AddDirectory(oldstat);
240 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
241 return hist;
242}

◆ BookTProfile2D() [2/2]

TProfile2D * PlotBase::BookTProfile2D ( std::string_view name,
std::string_view labels,
const int nBinsX,
double * binsX,
const int nBinsY,
double * binsY,
bool prependDir = true,
bool useRMS = false )
inherited

Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.

Definition at line 245 of file PlotBase.cxx.

245 {
246 std::string prefix = constructPrefix(m_sDirectory, prependDir);
247 Bool_t oldstat = TProfile2D::AddDirectoryStatus();
248 TProfile2D::AddDirectory(false);
249 std::string opt = useRMS ? "S" : "";
250 TProfile2D *hist = new TProfile2D(prefix.append(name).c_str(), labels.data(), nBinsX, binsX, nBinsY, binsY, opt.c_str());
251 TProfile2D::AddDirectory(oldstat);
252 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
253 return hist;
254}

◆ BookTProfileRangeY()

TProfile * PlotBase::BookTProfileRangeY ( std::string_view name,
std::string_view labels,
int nBinsX,
double * binsX,
double startY,
double endY,
bool prependDir = true )
inherited

Book a TProfile histogram with variable binning in x-axis and limits in y-values.

Definition at line 217 of file PlotBase.cxx.

218 {
219 std::string prefix = constructPrefix(m_sDirectory, prependDir);
220 TProfile *hist(nullptr);
221 Bool_t oldstat = TProfile::AddDirectoryStatus();
222 TProfile::AddDirectory(false);
223
224 hist = new TProfile(prefix.append(name).c_str(), labels.data(), (Int_t) nBinsX, binsX, startY, endY);
225 TProfile::AddDirectory(oldstat);
226 m_vBookedHistograms.emplace_back(hist, m_sDirectory);
227 return hist;
228}

◆ BookTree()

TTree * PlotBase::BookTree ( std::string_view name,
bool prependDir = true )
inherited

Book a TTree.

Definition at line 277 of file PlotBase.cxx.

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

◆ constructPrefix()

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

Definition at line 289 of file PlotBase.cxx.

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

◆ fill() [1/2]

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

Definition at line 539 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ fill() [2/2]

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

Definition at line 592 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ fillHisto() [1/9]

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

Definition at line 142 of file InDetPlotBase.cxx.

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

◆ fillHisto() [2/9]

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

Definition at line 134 of file InDetPlotBase.cxx.

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

◆ fillHisto() [3/9]

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

Definition at line 97 of file InDetPlotBase.cxx.

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

◆ fillHisto() [4/9]

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

Definition at line 104 of file InDetPlotBase.cxx.

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

◆ fillHisto() [5/9]

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

Definition at line 112 of file InDetPlotBase.cxx.

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

◆ fillHisto() [6/9]

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

Definition at line 120 of file InDetPlotBase.cxx.

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

◆ fillHisto() [7/9]

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

Definition at line 127 of file InDetPlotBase.cxx.

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

◆ fillHisto() [8/9]

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

Definition at line 82 of file InDetPlotBase.cxx.

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

◆ fillHisto() [9/9]

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

Definition at line 89 of file InDetPlotBase.cxx.

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

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

47 {
48 for (auto *subNode: m_vSubNodes) {
49 subNode->finalize();
50 }
52}
std::vector< PlotBase * > m_vSubNodes
Definition PlotBase.h:97
virtual void finalizePlots()
Definition PlotBase.h:93

◆ finalizePlots()

void InDetPerfPlot_VertexTruthMatching::finalizePlots ( )
privatevirtual

◆ getDirectory()

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

Definition at line 89 of file PlotBase.h.

89{return m_sDirectory;}

◆ getHSRecoVertexSumPt2()

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

Definition at line 434 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getLocalPUDensity()

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

Definition at line 463 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRadialDiff2()

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

Definition at line 459 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRecoLongitudinalReso()

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

Definition at line 488 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRecoTransverseReso()

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

Definition at line 492 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getTruthVertex()

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

Definition at line 502 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

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

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

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

◆ mBook()

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

book, for use by macro

Definition at line 84 of file InDetPlotBase.h.

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

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

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

Definition at line 167 of file AthMessaging.h.

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

◆ msg() [2/2]

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

The standard message stream.

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

Definition at line 182 of file AthMessaging.h.

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

◆ msgLvl()

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

Test the output level.

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

Definition at line 151 of file AthMessaging.h.

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

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

Definition at line 42 of file PlotBase.h.

42{m_vSubNodes.push_back(pPlotBase);}

◆ retrieveBookedEfficiencies()

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

Retrieve all booked efficiency objects.

Definition at line 83 of file PlotBase.cxx.

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

◆ retrieveBookedHistograms()

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

Retrieve all booked histograms.

Definition at line 63 of file PlotBase.cxx.

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

◆ retrieveBookedTrees()

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

Retrieve all booked trees.

Definition at line 73 of file PlotBase.cxx.

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

◆ retrieveDefinition()

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

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

Definition at line 151 of file InDetPlotBase.cxx.

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

◆ setDetailLevel()

void PlotBase::setDetailLevel ( int iDetailLevel)
inherited

Definition at line 55 of file PlotBase.cxx.

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

◆ setLevel()

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

Change the current logging level.

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

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

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

Messaging initialized (initMessaging).

Definition at line 141 of file AthMessaging.h.

◆ m_cutMinTruthRecoRadialDiff

float InDetPerfPlot_VertexTruthMatching::m_cutMinTruthRecoRadialDiff = 0.1
private

Definition at line 51 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_detailLevel

int InDetPerfPlot_VertexTruthMatching::m_detailLevel {10}
private

Definition at line 50 of file InDetPerfPlot_VertexTruthMatching.h.

50{10};

◆ m_histoDefSvc

ServiceHandle<IHistogramDefinitionSvc> InDetPlotBase::m_histoDefSvc
privateinherited

Definition at line 89 of file InDetPlotBase.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 102 of file PlotBase.h.

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_isITk

bool InDetPerfPlot_VertexTruthMatching::m_isITk {false}
private

Definition at line 49 of file InDetPerfPlot_VertexTruthMatching.h.

49{false};

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

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

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

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_resHelper_mu_hsVxTruthLong

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_mu_hsVxTruthLong
private

Definition at line 117 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthLong

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthLong
private

Definition at line 111 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthTransv

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthTransv
private

Definition at line 114 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_mu_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_mu_hsVxTruthLong
private

Definition at line 119 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthLong
private

Definition at line 113 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthTransv
private

Definition at line 116 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_mu_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_mu_hsVxTruthLong
private

Definition at line 118 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthLong
private

Definition at line 112 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthTransv
private

Definition at line 115 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolutionHelper

IDPVM::ResolutionHelper InDetPerfPlot_VertexTruthMatching::m_resolutionHelper {}
private

Definition at line 108 of file InDetPerfPlot_VertexTruthMatching.h.

108{};

◆ m_resolutionMethod

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

Definition at line 109 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_vBookedEfficiencies

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

Definition at line 100 of file PlotBase.h.

◆ m_vBookedHistograms

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

Definition at line 98 of file PlotBase.h.

◆ m_vBookedTrees

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

Definition at line 99 of file PlotBase.h.

◆ m_vSubNodes

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

Definition at line 97 of file PlotBase.h.

◆ m_vx_all_dz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_dz
private

Definition at line 269 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_nTrk
private

Definition at line 146 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_PU
private

Definition at line 139 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_nTrk
private

Definition at line 143 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_PU
private

Definition at line 136 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_nTrk
private

Definition at line 147 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_PU
private

Definition at line 140 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_nTrk
private

Definition at line 144 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_PU
private

Definition at line 137 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_nTrk
private

Definition at line 145 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_PU
private

Definition at line 138 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_nTrk
private

Definition at line 142 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_PU
private

Definition at line 135 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_pull
private

Definition at line 126 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_res
private

Definition at line 133 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_pull
private

Definition at line 125 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_res
private

Definition at line 132 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_pull
private

Definition at line 124 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_res
private

Definition at line 131 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_matched
private

Definition at line 244 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_merged
private

Definition at line 245 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_split
private

Definition at line 246 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_matched
private

Definition at line 209 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_merged
private

Definition at line 210 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_split
private

Definition at line 211 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_matched
private

Definition at line 206 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_merged
private

Definition at line 207 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_split
private

Definition at line 208 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_classification

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_classification {}
private

hardscatter classification

Definition at line 66 of file InDetPerfPlot_VertexTruthMatching.h.

66{};

◆ m_vx_hs_mindz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_mindz
private

Definition at line 270 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff
private

Definition at line 80 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff_mu
private

Definition at line 96 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff_vs_ntruth
private

Definition at line 94 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_long_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_long_reso
private

Definition at line 104 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff
private

Definition at line 86 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff_vs_ntruth
private

Definition at line 100 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_trans_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_trans_reso
private

Definition at line 105 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff
private

Definition at line 82 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist
private

Definition at line 88 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist_vs_nReco
private

Definition at line 92 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_mu
private

Definition at line 90 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_nReco
private

Definition at line 84 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_ntruth
private

Definition at line 98 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_nTrk
private

Definition at line 160 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_PU
private

Definition at line 153 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_nTrk
private

Definition at line 157 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_PU
private

Definition at line 150 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_nTrk
private

Definition at line 161 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_PU
private

Definition at line 154 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_nTrk
private

Definition at line 158 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_PU
private

Definition at line 151 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_nTrk
private

Definition at line 159 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_PU
private

Definition at line 152 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_nTrk
private

Definition at line 156 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_PU
private

Definition at line 149 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_pull
private

Definition at line 123 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_res
private

Definition at line 130 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_pull
private

Definition at line 122 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_res
private

Definition at line 129 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_pull
private

Definition at line 121 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_res
private

Definition at line 128 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_matched
private

Definition at line 240 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_merged
private

Definition at line 241 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_split
private

Definition at line 242 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_matched
private

Definition at line 202 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_merged
private

Definition at line 203 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_split
private

Definition at line 204 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_matched
private

Definition at line 199 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_merged
private

Definition at line 200 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_split
private

Definition at line 201 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_clean

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_clean
private

Definition at line 74 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_dummy

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_dummy
private

Definition at line 73 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_fake

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_fake
private

Definition at line 72 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_highpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_highpu
private

Definition at line 76 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_hssplit

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_hssplit
private

Definition at line 77 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_inclusive

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_inclusive
private

vertex reco efficiency

Definition at line 68 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_lowpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_lowpu
private

Definition at line 75 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_matched

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_matched
private

Definition at line 69 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_merged

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_merged
private

Definition at line 70 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_none

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_none
private

Definition at line 78 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_split

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_split
private

Definition at line 71 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_matched
private

Definition at line 169 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_merged
private

Definition at line 170 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_split
private

Definition at line 171 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_matched
private

Definition at line 166 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_merged
private

Definition at line 167 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_split
private

Definition at line 168 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_matched
private

Definition at line 163 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_merged
private

Definition at line 164 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_split
private

Definition at line 165 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth
private

Definition at line 273 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth_vs_PUdensity

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth_vs_PUdensity
private

Definition at line 274 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_fake
private

Definition at line 258 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_matched
private

Definition at line 255 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_merged
private

Definition at line 256 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_split
private

Definition at line 257 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_fake
private

Definition at line 266 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_fake
private

Definition at line 262 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_matched
private

Definition at line 259 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_merged
private

Definition at line 260 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_split
private

Definition at line 261 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_matched
private

Definition at line 263 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_merged
private

Definition at line 264 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_split
private

Definition at line 265 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_PUdensity

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_PUdensity
private

Definition at line 272 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_matched
private

Definition at line 227 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_merged
private

Definition at line 228 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_split
private

Definition at line 229 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_matched
private

Definition at line 175 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_merged
private

Definition at line 176 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_split
private

Definition at line 177 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_matched
private

Definition at line 172 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_merged
private

Definition at line 173 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_split
private

Definition at line 174 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_time_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff {}
private

vertex time

Definition at line 62 of file InDetPerfPlot_VertexTruthMatching.h.

62{};

◆ m_vx_time_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff_pull {}
private

Definition at line 63 of file InDetPerfPlot_VertexTruthMatching.h.

63{};

◆ m_vx_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_matched
private

Definition at line 237 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_merged
private

Definition at line 238 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_split
private

Definition at line 239 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_matched
private

Definition at line 195 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_merged
private

Definition at line 196 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_split
private

Definition at line 197 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_matched
private

Definition at line 192 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_merged
private

Definition at line 193 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_split
private

Definition at line 194 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_type_truth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_type_truth {}
private

truth type

Definition at line 53 of file InDetPerfPlot_VertexTruthMatching.h.

53{};

◆ m_vx_x_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff {}
private

Definition at line 54 of file InDetPerfPlot_VertexTruthMatching.h.

54{};

◆ m_vx_x_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff_pull {}
private

Definition at line 55 of file InDetPerfPlot_VertexTruthMatching.h.

55{};

◆ m_vx_y_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff {}
private

Definition at line 56 of file InDetPerfPlot_VertexTruthMatching.h.

56{};

◆ m_vx_y_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff_pull {}
private

Definition at line 57 of file InDetPerfPlot_VertexTruthMatching.h.

57{};

◆ m_vx_z0_kurtosis_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_matched
private

Definition at line 251 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_merged
private

Definition at line 252 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_split
private

Definition at line 253 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_matched
private

Definition at line 222 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_merged
private

Definition at line 223 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_split
private

Definition at line 224 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_matched
private

Definition at line 219 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_merged
private

Definition at line 220 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_split
private

Definition at line 221 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_matched
private

Definition at line 248 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_merged
private

Definition at line 249 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_split
private

Definition at line 250 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_matched
private

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_merged
private

Definition at line 217 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_split
private

Definition at line 218 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_matched
private

Definition at line 213 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_merged
private

Definition at line 214 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_split
private

Definition at line 215 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_matched
private

Definition at line 231 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_merged
private

Definition at line 232 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_split
private

Definition at line 233 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_matched
private

Definition at line 182 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_merged
private

Definition at line 183 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_split
private

Definition at line 184 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_matched
private

Definition at line 179 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_merged
private

Definition at line 180 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_split
private

Definition at line 181 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_matched
private

Definition at line 234 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_merged
private

Definition at line 235 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_split
private

Definition at line 236 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_matched
private

Definition at line 188 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_merged
private

Definition at line 189 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_split
private

Definition at line 190 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_matched
private

Definition at line 185 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_merged
private

Definition at line 186 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_split
private

Definition at line 187 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff {}
private

Definition at line 58 of file InDetPerfPlot_VertexTruthMatching.h.

58{};

◆ m_vx_z_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff_pull {}
private

Definition at line 59 of file InDetPerfPlot_VertexTruthMatching.h.

59{};

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