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 (const std::string &histoIdentifier, const std::string &folder="default", const std::string &nameOverride="")
 Retrieve a single histogram definition, given the unique string identifier.
template<class Htype>
void book (Htype *&pHisto, const std::string &histoIdentifier, const std::string &nameOverride="", const std::string &folder="default")
 Helper method to book histograms using an identifier string.
void book (TH1 *&pHisto, const SingleHistogramDefinition &hd)
 Book a TH1 histogram.
void book (TProfile *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile histogram.
void book (TProfile2D *&pHisto, const SingleHistogramDefinition &hd)
 Book a TProfile2D histogram.
void book (TH2 *&pHisto, const SingleHistogramDefinition &hd)
 Book a 2D histogram (TH2)
void book (TEfficiency *&pHisto, const SingleHistogramDefinition &hd)
 Book a (1-D) TEfficiency.
void initialize ()
void finalize ()
void setDetailLevel (int iDetailLevel)
void RegisterSubPlot (PlotBase *pPlotBase)
std::vector< HistDataretrieveBookedHistograms ()
 Retrieve all booked histograms.
std::vector< TreeDataretrieveBookedTrees ()
 Retrieve all booked trees.
std::vector< EfficiencyDataretrieveBookedEfficiencies ()
 Retrieve all booked efficiency objects.
TTree * BookTree (const std::string &name, bool prependDir=true)
 Book a TTree.
const std::string & getDirectory ()
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.
Methods to book monitoring histograms

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

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

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

std::vector< PlotBase * > m_vSubNodes
std::vector< HistDatam_vBookedHistograms
std::vector< TreeDatam_vBookedTrees
std::vector< EfficiencyDatam_vBookedEfficiencies
std::string m_sDirectory
int m_iDetailLevel

Private Member Functions

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

Static Private Member Functions

static const xAOD::VertexgetHSRecoVertexSumPt2 (const xAOD::VertexContainer &recoVertices)
static float getRecoLongitudinalReso (const xAOD::Vertex *recoVtx)
static float getRecoTransverseReso (const xAOD::Vertex *recoVtx)
static void fillResoHist (TH1 *resoHist, const TH2 *resoHist2D)
static std::string constructPrefix (std::string dir, bool prependDir)

Private Attributes

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

Detailed Description

class holding plots for truth matched vertices

Definition at line 41 of file InDetPerfPlot_VertexTruthMatching.h.

Constructor & Destructor Documentation

◆ InDetPerfPlot_VertexTruthMatching()

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

Definition at line 21 of file InDetPerfPlot_VertexTruthMatching.cxx.

21 :
22 InDetPlotBase(pParent, sDir),
23 m_isITk(isITk),
24 m_detailLevel(detailLevel),
25 m_vx_type_truth(nullptr),
38 m_vx_hs_reco_eff(nullptr),
39 m_vx_hs_sel_eff(nullptr),
41 m_vx_hs_reco_sel_eff(nullptr),
42 m_vx_hs_sel_eff_dist(nullptr),
43 m_vx_hs_sel_eff_mu(nullptr),
50
51 //Longitudinal and transverse resolution plots for hs vertices
58
59 m_vx_hs_z_pull(nullptr),
60 m_vx_hs_y_pull(nullptr),
61 m_vx_hs_x_pull(nullptr),
62 m_vx_all_z_pull(nullptr),
63 m_vx_all_y_pull(nullptr),
64 m_vx_all_x_pull(nullptr),
65 m_vx_hs_z_res(nullptr),
66 m_vx_hs_y_res(nullptr),
67 m_vx_hs_x_res(nullptr),
68 m_vx_all_z_res(nullptr),
69 m_vx_all_y_res(nullptr),
70 m_vx_all_x_res(nullptr),
95
96 // New Expert Histograms for vertex classifiations
97 m_vx_ntracks_matched(nullptr),
98 m_vx_ntracks_merged(nullptr),
99 m_vx_ntracks_split(nullptr),
101 m_vx_ntracks_HS_merged(nullptr),
102 m_vx_ntracks_HS_split(nullptr),
105 m_vx_ntracks_ALL_split(nullptr),
106 m_vx_sumpT_matched(nullptr),
107 m_vx_sumpT_merged(nullptr),
108 m_vx_sumpT_split(nullptr),
109 m_vx_sumpT_HS_matched(nullptr),
110 m_vx_sumpT_HS_merged(nullptr),
111 m_vx_sumpT_HS_split(nullptr),
112
113 m_vx_z_asym_matched(nullptr),
114 m_vx_z_asym_merged(nullptr),
115 m_vx_z_asym_split(nullptr),
116 m_vx_z_asym_HS_matched(nullptr),
117 m_vx_z_asym_HS_merged(nullptr),
118 m_vx_z_asym_HS_split(nullptr),
125
132
139
146
149 m_vx_z0_skewness_split(nullptr),
153
156 m_vx_z0_kurtosis_split(nullptr),
160
161 m_vx_sumpT_ALL_matched(nullptr),
162 m_vx_sumpT_ALL_merged(nullptr),
163 m_vx_sumpT_ALL_split(nullptr),
165 m_vx_z_asym_ALL_merged(nullptr),
166 m_vx_z_asym_ALL_split(nullptr),
170
174
178
182
186
190
198 m_vx_nVertices_HS_fake(nullptr),
199 m_vx_nVertices_matched(nullptr),
200 m_vx_nVertices_merged(nullptr),
201 m_vx_nVertices_split(nullptr),
202 m_vx_nVertices_fake(nullptr),
203
204 m_vx_all_dz(nullptr),
205 m_vx_hs_mindz(nullptr),
206
207 m_vx_PUdensity(nullptr),
208 m_vx_nTruth(nullptr),
210
211
212{
213 // nop
214}
TH1 * m_vx_hs_classification
hardscatter classification
TProfile * m_vx_nReco_vs_nTruth_inclusive
vertex reco efficiency
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.

Member Function Documentation

◆ book() [1/6]

template<class Htype>
void InDetPlotBase::book ( Htype *& pHisto,
const std::string & histoIdentifier,
const std::string & nameOverride = "",
const std::string & 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(const std::string &name, const std::string &labels, const int nBinsX, const float xlo, const float xhi, const bool prependDir=true)
Book a (1-D) TEfficiency histogram.
Definition PlotBase.cxx:257
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(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition PlotBase.cxx:94

◆ book() [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(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2F histogram.
Definition PlotBase.cxx:123

◆ book() [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(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
Book a TProfile histogram.
Definition PlotBase.cxx:186

◆ book() [6/6]

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(const std::string &name, const std::string &labels, const int nBinsX, const double xlo, const double xhi, const int nBinsY, const double ylo, const double yhi, bool prependDir=true, bool useRMS=false)
Book a TProfile 2D histogram with variable binning in x-axis and limits in y-values.
Definition PlotBase.cxx:231

◆ Book1D() [1/2]

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

Book a TH1D histogram.

Definition at line 94 of file PlotBase.cxx.

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

◆ Book1D() [2/2]

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

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

Definition at line 108 of file PlotBase.cxx.

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

◆ Book2D() [1/3]

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

Book a TH2F histogram with variable x axis binning.

Definition at line 144 of file PlotBase.cxx.

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

◆ Book2D() [2/3]

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

Book a TH2F histogram.

Definition at line 123 of file PlotBase.cxx.

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

◆ Book2D() [3/3]

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

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

Definition at line 138 of file PlotBase.cxx.

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

◆ Book3D() [1/2]

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

Book a TH3F histogram.

Definition at line 157 of file PlotBase.cxx.

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

◆ Book3D() [2/2]

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

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

Definition at line 171 of file PlotBase.cxx.

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

◆ BookTEfficiency() [1/2]

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

Book a (1-D) TEfficiency histogram.

Definition at line 257 of file PlotBase.cxx.

257 {
258 std::string prefix = constructPrefix(m_sDirectory, prependDir);
259 //Bool_t oldstat = TEfficiency::AddDirectoryStatus();
260 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi);
261 //hist->SetAutoSave(0);
262 //hist->SetAtoFlush(0);
263 hist->SetDirectory(nullptr);
264 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
265 //TEfficiency::AddDirectory(oldstat);
266 return hist;
267}
std::vector< EfficiencyData > m_vBookedEfficiencies
Definition PlotBase.h:99

◆ BookTEfficiency() [2/2]

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

Book a (2-D) TEfficiency histogram.

Definition at line 270 of file PlotBase.cxx.

270 {
271 std::string prefix = constructPrefix(m_sDirectory, prependDir);
272
273 TEfficiency *hist = new TEfficiency((prefix + name).c_str(), labels.c_str(), nBinsX, xlo, xhi, nBinsY, ylo, yhi);
274 hist->SetDirectory(nullptr);
275 m_vBookedEfficiencies.emplace_back(hist, m_sDirectory);
276
277 return hist;
278}

◆ BookTProfile() [1/2]

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

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

Definition at line 204 of file PlotBase.cxx.

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

◆ BookTProfile() [2/2]

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

Book a TProfile histogram.

Definition at line 186 of file PlotBase.cxx.

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

◆ BookTProfile2D() [1/2]

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

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

Definition at line 231 of file PlotBase.cxx.

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

◆ BookTProfile2D() [2/2]

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

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

Definition at line 245 of file PlotBase.cxx.

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

◆ BookTProfileRangeY()

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

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

Definition at line 217 of file PlotBase.cxx.

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

◆ BookTree()

TTree * PlotBase::BookTree ( const std::string & name,
bool prependDir = true )
inherited

Book a TTree.

Definition at line 281 of file PlotBase.cxx.

281 {
282 std::string prefix = constructPrefix(m_sDirectory, prependDir);
283 TTree *tree = new TTree((prefix + name).c_str(), "");
284
285 tree->SetAutoSave(0);
286 tree->SetAutoFlush(0);
287 tree->SetDirectory(nullptr);
288 m_vBookedTrees.emplace_back(tree, m_sDirectory);
289 return tree;
290}
std::vector< TreeData > m_vBookedTrees
Definition PlotBase.h:98
TChain * tree

◆ constructPrefix()

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

Definition at line 293 of file PlotBase.cxx.

293 {
294 if (!prependDir) {
295 return "";
296 }
297 std::replace(dir.begin(), dir.end(), '/', '_');
298 return dir;
299}

◆ fill() [1/2]

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

Definition at line 582 of file InDetPerfPlot_VertexTruthMatching.cxx.

582 {
583 // not sure how to deal with this type of histogram
584 if(tvrt){
585 float diff_z=vertex.z()-tvrt->z();
586 const AmgSymMatrix(3)& covariance = vertex.covariancePosition();
587 float err_z = fabs(Amg::error(covariance, 2)) > 1e-7 ? Amg::error(covariance, 2) : 1000.;
588 fillHisto(m_vx_z_diff,diff_z, weight);
589 fillHisto(m_vx_z_diff_pull,diff_z/err_z, weight);
590
591 if(m_isITk){
592 static const SG::AuxElement::Accessor<uint8_t> accHasValidTime("hasValidTime");
593 static const SG::AuxElement::Accessor<float> accTime("time");
594 static const SG::AuxElement::Accessor<float> accTimeResolution("timeResolution");
595 if (accHasValidTime.isAvailable(vertex) && accTime.isAvailable(vertex) &&
596 accTimeResolution.isAvailable(vertex)) {
597
598 if (vertex.hasValidTime()) {
599 float diff_time = vertex.time()-tvrt->t()/Gaudi::Units::c_light;
600 float err_time = vertex.timeResolution();
601 fillHisto(m_vx_time_diff, diff_time, weight);
602 fillHisto(m_vx_time_diff_pull, diff_time/err_time, weight);
603 }
604 }
605 }
606
607 }
608
609 // Get the match type info for each vertex:
610 const static xAOD::Vertex::Decorator<InDetVertexTruthMatchUtils::VertexMatchType> recoVtxMatchTypeInfo("VertexMatchType");
612 if (recoVtxMatchTypeInfo.isAvailable(vertex)) {
613 try {
614 matchType = recoVtxMatchTypeInfo(vertex);
615 ATH_MSG_DEBUG("VERTEX DECORATOR ======= " << matchType << ", with nTRACKS === " << vertex.nTrackParticles() << ", vertex index = " << vertex.index() << " AT (x, y, z) = (" << vertex.x() << ", " << vertex.y() << ", " << vertex.z() << ")");
616 fillHisto(m_vx_type_truth, matchType, weight);
617 }
618 catch (SG::ExcBadAuxVar &) {
619 ATH_MSG_WARNING("VertexMatchType DECORATOR seems to be available, but may be broken ===========");
620 }
621 }
622 else {
623 ATH_MSG_WARNING("VertexMatchType DECORATOR is NOT available ===========");
624 }
625
626} // void InDetPerfPlot_VertexTruthMatching::fill(const xAOD::Vertex& vertex) {
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
#define AmgSymMatrix(dim)
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
SG::Decorator< T, ALLOC > Decorator
class to provide type-safe access to aux data.
Definition AuxElement.h:135
float z() const
Vertex longitudinal distance along the beam line form the origin.
float t() const
Vertex time.
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 628 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ fillHisto() [1/9]

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

Definition at line 142 of file InDetPlotBase.cxx.

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

◆ fillHisto() [2/9]

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

Definition at line 134 of file InDetPlotBase.cxx.

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

◆ fillHisto() [3/9]

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

Definition at line 97 of file InDetPlotBase.cxx.

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

◆ fillHisto() [4/9]

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

Definition at line 104 of file InDetPlotBase.cxx.

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

◆ fillHisto() [5/9]

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

Definition at line 112 of file InDetPlotBase.cxx.

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

◆ fillHisto() [6/9]

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

Definition at line 120 of file InDetPlotBase.cxx.

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

◆ fillHisto() [7/9]

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

Definition at line 127 of file InDetPlotBase.cxx.

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

◆ fillHisto() [8/9]

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

Definition at line 82 of file InDetPlotBase.cxx.

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

◆ fillHisto() [9/9]

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

Definition at line 89 of file InDetPlotBase.cxx.

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

◆ fillResoHist()

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

Definition at line 483 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

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

◆ finalizePlots()

void InDetPerfPlot_VertexTruthMatching::finalizePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 1233 of file InDetPerfPlot_VertexTruthMatching.cxx.

1233 {
1234
1235 if (m_detailLevel >= 200) {
1236
1239 }
1240
1241} // end InDetPerfPlot_VertexTruthMatching::finalizePlots()
static void fillResoHist(TH1 *resoHist, const TH2 *resoHist2D)

◆ getDirectory()

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

Definition at line 88 of file PlotBase.h.

88{return m_sDirectory;}

◆ getHSRecoVertexSumPt2()

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

Definition at line 414 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

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

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

◆ getRadialDiff2()

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

Definition at line 439 of file InDetPerfPlot_VertexTruthMatching.cxx.

439 {
440 return (std::pow((vtx1->x() - vtx2->x()), 2) + std::pow((vtx1->y() - vtx2->y()), 2) + std::pow((vtx1->z() - vtx2->z()), 2));
441}

◆ getRecoLongitudinalReso()

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

Definition at line 468 of file InDetPerfPlot_VertexTruthMatching.cxx.

468 {
469 return std::sqrt(recoVtx->covariancePosition()(2, 2));
470}

◆ getRecoTransverseReso()

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

Definition at line 472 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getTruthVertex()

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

Definition at line 545 of file InDetPerfPlot_VertexTruthMatching.cxx.

545 {
546 const xAOD::TruthVertex* truthVtx = nullptr;
547 if (recoVtx) {
548 const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
549 try{
550 if (!truthMatchingInfos.isAvailable(*recoVtx)){
551 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR not available -- returning nullptr!");
552 return truthVtx;
553 }
554 const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
555 if (!truthInfos.empty()) {
556 const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
557 const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
558 const xAOD::TruthEvent* truthEvent = nullptr;
559 if (truthEventLink.isValid()) {
560 truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
561 if (truthEvent) {
562 size_t i_vtx = 0;
563 size_t n_vtx = truthEvent->nTruthVertices();
564 while(!truthVtx && i_vtx<n_vtx){
565 truthVtx = truthEvent->truthVertex(i_vtx);
566 i_vtx++;
567 }
568 }
569 }
570 }
571 else {
572 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
573 }
574 }
575 catch (SG::ExcBadAuxVar &){
576 ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
577 }
578 }
579 return truthVtx;
580}
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:91

◆ initializePlots()

void InDetPerfPlot_VertexTruthMatching::initializePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

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

◆ mBook()

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

book, for use by macro

Definition at line 83 of file InDetPlotBase.h.

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

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

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

Definition at line 163 of file AthMessaging.h.

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

◆ msg() [2/2]

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

The standard message stream.

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

Definition at line 178 of file AthMessaging.h.

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

◆ msgLvl()

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

Test the output level.

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

Definition at line 151 of file AthMessaging.h.

152{
153 if (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

Definition at line 41 of file PlotBase.h.

41{m_vSubNodes.push_back(pPlotBase);}

◆ 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 ( const std::string & histoIdentifier,
const std::string & folder = "default",
const std::string & 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:101

◆ setLevel()

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

Change the current logging level.

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

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

Member Data Documentation

◆ ATLAS_THREAD_SAFE

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

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_cutMinTruthRecoRadialDiff

float InDetPerfPlot_VertexTruthMatching::m_cutMinTruthRecoRadialDiff = 0.1
private

Definition at line 49 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_detailLevel

int InDetPerfPlot_VertexTruthMatching::m_detailLevel {10}
private

Definition at line 48 of file InDetPerfPlot_VertexTruthMatching.h.

48{10};

◆ m_histoDefSvc

ServiceHandle<IHistogramDefinitionSvc> InDetPlotBase::m_histoDefSvc
privateinherited

Definition at line 88 of file InDetPlotBase.h.

◆ m_iDetailLevel

int PlotBase::m_iDetailLevel
protectedinherited

Definition at line 101 of file PlotBase.h.

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_isITk

bool InDetPerfPlot_VertexTruthMatching::m_isITk {false}
private

Definition at line 47 of file InDetPerfPlot_VertexTruthMatching.h.

47{false};

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

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

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

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_resHelper_PUdensity_hsVxTruthLong

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthLong
private

Definition at line 97 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resHelper_PUdensity_hsVxTruthTransv

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthTransv
private

Definition at line 100 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthLong
private

Definition at line 99 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthTransv
private

Definition at line 102 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthLong
private

Definition at line 98 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthTransv
private

Definition at line 101 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

Definition at line 100 of file PlotBase.h.

◆ m_vBookedEfficiencies

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

Definition at line 99 of file PlotBase.h.

◆ m_vBookedHistograms

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

Definition at line 97 of file PlotBase.h.

◆ m_vBookedTrees

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

Definition at line 98 of file PlotBase.h.

◆ m_vSubNodes

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

Definition at line 96 of file PlotBase.h.

◆ m_vx_all_dz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_dz
private

Definition at line 253 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 130 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 123 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 127 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 120 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 131 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 124 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 128 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 121 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 129 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 122 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 126 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 119 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_pull
private

Definition at line 110 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_res
private

Definition at line 117 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_pull
private

Definition at line 109 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_res
private

Definition at line 116 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_pull
private

Definition at line 108 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_res
private

Definition at line 115 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_matched
private

Definition at line 228 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_merged
private

Definition at line 229 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_split
private

Definition at line 230 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_matched
private

Definition at line 193 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_merged
private

Definition at line 194 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_split
private

Definition at line 195 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_matched
private

Definition at line 190 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_merged
private

Definition at line 191 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_split
private

Definition at line 192 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_classification

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_classification {}
private

hardscatter classification

Definition at line 60 of file InDetPerfPlot_VertexTruthMatching.h.

60{};

◆ m_vx_hs_mindz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_mindz
private

Definition at line 254 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff
private

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

◆ m_vx_hs_reco_long_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_long_reso
private

Definition at line 94 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff
private

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

◆ m_vx_hs_reco_trans_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_trans_reso
private

Definition at line 95 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff
private

Definition at line 76 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist
private

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

◆ m_vx_hs_sel_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_mu
private

Definition at line 84 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 78 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 90 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 144 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 137 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 141 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 134 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 145 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 138 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 142 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 135 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 143 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 136 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 140 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 133 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_pull
private

Definition at line 107 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_res
private

Definition at line 114 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_pull
private

Definition at line 106 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_res
private

Definition at line 113 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_pull
private

Definition at line 105 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_res
private

Definition at line 112 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 224 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 225 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 226 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 186 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 187 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 188 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_matched
private

Definition at line 183 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_merged
private

Definition at line 184 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_split
private

Definition at line 185 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_clean

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_clean
private

Definition at line 68 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_dummy

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_dummy
private

Definition at line 67 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_fake

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_fake
private

Definition at line 66 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_highpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_highpu
private

Definition at line 70 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_hssplit

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_hssplit
private

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

◆ m_vx_nReco_vs_nTruth_lowpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_lowpu
private

Definition at line 69 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_matched

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_matched
private

Definition at line 63 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_merged

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_merged
private

Definition at line 64 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_none

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_none
private

Definition at line 72 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_split

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_split
private

Definition at line 65 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_matched
private

Definition at line 153 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_merged
private

Definition at line 154 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_split
private

Definition at line 155 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_matched
private

Definition at line 150 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_merged
private

Definition at line 151 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_split
private

Definition at line 152 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_matched
private

Definition at line 147 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_merged
private

Definition at line 148 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_split
private

Definition at line 149 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth
private

Definition at line 257 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth_vs_PUdensity

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth_vs_PUdensity
private

Definition at line 258 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_fake
private

Definition at line 242 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_matched
private

Definition at line 239 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_merged
private

Definition at line 240 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_split
private

Definition at line 241 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_fake
private

Definition at line 250 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_fake
private

Definition at line 246 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_matched
private

Definition at line 243 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_merged
private

Definition at line 244 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_split
private

Definition at line 245 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_matched
private

Definition at line 247 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_merged
private

Definition at line 248 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_split
private

Definition at line 249 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_PUdensity

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_PUdensity
private

Definition at line 256 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_matched
private

Definition at line 211 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_merged
private

Definition at line 212 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_split
private

Definition at line 213 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_matched
private

Definition at line 159 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_merged
private

Definition at line 160 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_split
private

Definition at line 161 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_matched
private

Definition at line 156 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_merged
private

Definition at line 157 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_split
private

Definition at line 158 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_time_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff {}
private

vertex time

Definition at line 56 of file InDetPerfPlot_VertexTruthMatching.h.

56{};

◆ m_vx_time_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff_pull {}
private

Definition at line 57 of file InDetPerfPlot_VertexTruthMatching.h.

57{};

◆ m_vx_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_matched
private

Definition at line 221 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_merged
private

Definition at line 222 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_split
private

Definition at line 223 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_matched
private

Definition at line 179 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_merged
private

Definition at line 180 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_split
private

Definition at line 181 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_matched
private

Definition at line 176 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_merged
private

Definition at line 177 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_split
private

Definition at line 178 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_type_truth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_type_truth {}
private

truth type

Definition at line 51 of file InDetPerfPlot_VertexTruthMatching.h.

51{};

◆ m_vx_z0_kurtosis_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_matched
private

Definition at line 235 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_merged
private

Definition at line 236 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_split
private

Definition at line 237 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_matched
private

Definition at line 206 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_merged
private

Definition at line 207 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_split
private

Definition at line 208 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_matched
private

Definition at line 203 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_merged
private

Definition at line 204 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_split
private

Definition at line 205 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_matched
private

Definition at line 232 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_merged
private

Definition at line 233 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_split
private

Definition at line 234 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_matched
private

Definition at line 200 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_merged
private

Definition at line 201 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_split
private

Definition at line 202 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_matched
private

Definition at line 197 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_merged
private

Definition at line 198 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_split
private

Definition at line 199 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_matched
private

Definition at line 215 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_merged
private

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_split
private

Definition at line 217 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_matched
private

Definition at line 166 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_merged
private

Definition at line 167 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_split
private

Definition at line 168 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_matched
private

Definition at line 163 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_merged
private

Definition at line 164 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_split
private

Definition at line 165 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 218 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 219 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 220 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 172 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 173 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 174 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_matched
private

Definition at line 169 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_merged
private

Definition at line 170 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_split
private

Definition at line 171 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff {}
private

Definition at line 52 of file InDetPerfPlot_VertexTruthMatching.h.

52{};

◆ m_vx_z_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff_pull {}
private

Definition at line 53 of file InDetPerfPlot_VertexTruthMatching.h.

53{};

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