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

Detailed Description

class holding plots for truth matched vertices

Definition at line 41 of file InDetPerfPlot_VertexTruthMatching.h.

Constructor & Destructor Documentation

◆ InDetPerfPlot_VertexTruthMatching()

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

Definition at line 21 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

Member Function Documentation

◆ book() [1/6]

template<class Htype>
void InDetPlotBase::book ( Htype *& pHisto,
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 586 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ fill() [2/2]

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

Definition at line 639 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ fillHisto() [1/9]

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

Definition at line 142 of file InDetPlotBase.cxx.

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

◆ fillHisto() [2/9]

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

Definition at line 134 of file InDetPlotBase.cxx.

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

◆ fillHisto() [3/9]

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

Definition at line 97 of file InDetPlotBase.cxx.

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

◆ fillHisto() [4/9]

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

Definition at line 104 of file InDetPlotBase.cxx.

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

◆ fillHisto() [5/9]

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

Definition at line 112 of file InDetPlotBase.cxx.

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

◆ fillHisto() [6/9]

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

Definition at line 120 of file InDetPlotBase.cxx.

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

◆ fillHisto() [7/9]

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

Definition at line 127 of file InDetPlotBase.cxx.

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

◆ fillHisto() [8/9]

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

Definition at line 82 of file InDetPlotBase.cxx.

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

◆ fillHisto() [9/9]

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

Definition at line 89 of file InDetPlotBase.cxx.

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

◆ fillResoHist()

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

Definition at line 487 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ finalize()

void PlotBase::finalize ( )
inherited

Definition at line 47 of file PlotBase.cxx.

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

◆ finalizePlots()

void InDetPerfPlot_VertexTruthMatching::finalizePlots ( )
privatevirtual

Reimplemented from PlotBase.

Definition at line 1244 of file InDetPerfPlot_VertexTruthMatching.cxx.

1244 {
1245
1246 if (m_detailLevel >= 200) {
1247
1250 }
1251
1252} // 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 418 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getLocalPUDensity()

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

Definition at line 447 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRadialDiff2()

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

Definition at line 443 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRecoLongitudinalReso()

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

Definition at line 472 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getRecoTransverseReso()

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

Definition at line 476 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ getTruthVertex()

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

Definition at line 549 of file InDetPerfPlot_VertexTruthMatching.cxx.

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

◆ initialize()

void PlotBase::initialize ( )
inherited

Definition at line 39 of file PlotBase.cxx.

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

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

◆ msg() [2/2]

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

The standard message stream.

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

Definition at line 182 of file AthMessaging.h.

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

◆ msgLvl()

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

Test the output level.

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

Definition at line 151 of file AthMessaging.h.

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

◆ RegisterSubPlot()

void PlotBase::RegisterSubPlot ( PlotBase * pPlotBase)
inlineinherited

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

◆ m_resHelper_PUdensity_hsVxTruthTransv

TH2* InDetPerfPlot_VertexTruthMatching::m_resHelper_PUdensity_hsVxTruthTransv
private

Definition at line 104 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthLong
private

Definition at line 103 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resmean_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resmean_vs_PUdensity_hsVxTruthTransv
private

Definition at line 106 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthLong

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthLong
private

Definition at line 102 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_resolution_vs_PUdensity_hsVxTruthTransv

TH1* InDetPerfPlot_VertexTruthMatching::m_resolution_vs_PUdensity_hsVxTruthTransv
private

Definition at line 105 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_sDirectory

std::string PlotBase::m_sDirectory
protectedinherited

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

◆ m_vx_all_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_nTrk
private

Definition at line 134 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_pull_vs_PU
private

Definition at line 127 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_nTrk
private

Definition at line 131 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_x_res_vs_PU
private

Definition at line 124 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_nTrk
private

Definition at line 135 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_pull_vs_PU
private

Definition at line 128 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_nTrk
private

Definition at line 132 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_y_res_vs_PU
private

Definition at line 125 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_nTrk
private

Definition at line 133 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_pull_vs_PU
private

Definition at line 126 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_nTrk
private

Definition at line 130 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_all_truth_z_res_vs_PU
private

Definition at line 123 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_pull
private

Definition at line 114 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_x_res
private

Definition at line 121 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_pull
private

Definition at line 113 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_y_res
private

Definition at line 120 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_pull
private

Definition at line 112 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_all_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_all_z_res
private

Definition at line 119 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_matched
private

Definition at line 232 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_merged
private

Definition at line 233 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_ALL_split
private

Definition at line 234 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_matched
private

Definition at line 197 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_merged
private

Definition at line 198 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_HS_split
private

Definition at line 199 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_matched
private

Definition at line 194 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_merged
private

Definition at line 195 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_chi2Over_ndf_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_chi2Over_ndf_split
private

Definition at line 196 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_classification

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_classification {}
private

hardscatter classification

Definition at line 64 of file InDetPerfPlot_VertexTruthMatching.h.

64{};

◆ m_vx_hs_mindz

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_mindz
private

Definition at line 258 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff
private

Definition at line 78 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_eff_vs_ntruth
private

Definition at line 92 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_long_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_long_reso
private

Definition at line 98 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff
private

Definition at line 84 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_sel_eff_vs_ntruth
private

Definition at line 96 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_reco_trans_reso

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_hs_reco_trans_reso
private

Definition at line 99 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff
private

Definition at line 80 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist
private

Definition at line 86 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_dist_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_dist_vs_nReco
private

Definition at line 90 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_mu

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_mu
private

Definition at line 88 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_nReco

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_nReco
private

Definition at line 82 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_sel_eff_vs_ntruth

TEfficiency* InDetPerfPlot_VertexTruthMatching::m_vx_hs_sel_eff_vs_ntruth
private

Definition at line 94 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_nTrk
private

Definition at line 148 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_pull_vs_PU
private

Definition at line 141 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_nTrk
private

Definition at line 145 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_x_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_x_res_vs_PU
private

Definition at line 138 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_nTrk
private

Definition at line 149 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_pull_vs_PU
private

Definition at line 142 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_nTrk
private

Definition at line 146 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_y_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_y_res_vs_PU
private

Definition at line 139 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_nTrk
private

Definition at line 147 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_pull_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_pull_vs_PU
private

Definition at line 140 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_nTrk

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_nTrk
private

Definition at line 144 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_truth_z_res_vs_PU

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_hs_truth_z_res_vs_PU
private

Definition at line 137 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_pull
private

Definition at line 111 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_x_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_x_res
private

Definition at line 118 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_pull
private

Definition at line 110 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_y_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_y_res
private

Definition at line 117 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_pull
private

Definition at line 109 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_hs_z_res

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_hs_z_res
private

Definition at line 116 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_matched
private

Definition at line 228 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_merged
private

Definition at line 229 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_ALL_split
private

Definition at line 230 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_matched
private

Definition at line 190 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_merged
private

Definition at line 191 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_HS_split
private

Definition at line 192 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_matched
private

Definition at line 187 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_merged
private

Definition at line 188 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_normalised_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_normalised_track_weight_split
private

Definition at line 189 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_clean

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_clean
private

Definition at line 72 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_dummy

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_dummy
private

Definition at line 71 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_fake

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_fake
private

Definition at line 70 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_highpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_highpu
private

Definition at line 74 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_hssplit

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_hssplit
private

Definition at line 75 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_inclusive

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_inclusive
private

vertex reco efficiency

Definition at line 66 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_lowpu

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_lowpu
private

Definition at line 73 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_matched

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_matched
private

Definition at line 67 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_merged

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_merged
private

Definition at line 68 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_none

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_none
private

Definition at line 76 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nReco_vs_nTruth_split

TProfile* InDetPerfPlot_VertexTruthMatching::m_vx_nReco_vs_nTruth_split
private

Definition at line 69 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_matched
private

Definition at line 157 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_merged
private

Definition at line 158 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_ALL_split
private

Definition at line 159 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_matched
private

Definition at line 154 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_merged
private

Definition at line 155 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_HS_split
private

Definition at line 156 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_matched
private

Definition at line 151 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_merged
private

Definition at line 152 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_ntracks_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_ntracks_split
private

Definition at line 153 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth
private

Definition at line 261 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nTruth_vs_PUdensity

TH2* InDetPerfPlot_VertexTruthMatching::m_vx_nTruth_vs_PUdensity
private

Definition at line 262 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_fake
private

Definition at line 246 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_matched
private

Definition at line 243 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_merged
private

Definition at line 244 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_ALL_split
private

Definition at line 245 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_fake
private

Definition at line 254 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_fake

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_fake
private

Definition at line 250 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_matched
private

Definition at line 247 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_merged
private

Definition at line 248 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_HS_split
private

Definition at line 249 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_matched
private

Definition at line 251 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_merged
private

Definition at line 252 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_nVertices_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_nVertices_split
private

Definition at line 253 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_PUdensity

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_PUdensity
private

Definition at line 260 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_matched
private

Definition at line 215 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_merged
private

Definition at line 216 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_ALL_split
private

Definition at line 217 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_matched
private

Definition at line 163 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_merged
private

Definition at line 164 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_HS_split
private

Definition at line 165 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_matched
private

Definition at line 160 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_merged
private

Definition at line 161 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_sumpT_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_sumpT_split
private

Definition at line 162 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_time_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff {}
private

vertex time

Definition at line 60 of file InDetPerfPlot_VertexTruthMatching.h.

60{};

◆ m_vx_time_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_time_diff_pull {}
private

Definition at line 61 of file InDetPerfPlot_VertexTruthMatching.h.

61{};

◆ m_vx_track_weight_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_matched
private

Definition at line 225 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_merged
private

Definition at line 226 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_ALL_split
private

Definition at line 227 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_matched
private

Definition at line 183 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_merged
private

Definition at line 184 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_HS_split
private

Definition at line 185 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_matched
private

Definition at line 180 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_merged
private

Definition at line 181 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_track_weight_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_track_weight_split
private

Definition at line 182 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_type_truth

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_type_truth {}
private

truth type

Definition at line 51 of file InDetPerfPlot_VertexTruthMatching.h.

51{};

◆ m_vx_x_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff {}
private

Definition at line 52 of file InDetPerfPlot_VertexTruthMatching.h.

52{};

◆ m_vx_x_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_x_diff_pull {}
private

Definition at line 53 of file InDetPerfPlot_VertexTruthMatching.h.

53{};

◆ m_vx_y_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff {}
private

Definition at line 54 of file InDetPerfPlot_VertexTruthMatching.h.

54{};

◆ m_vx_y_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_y_diff_pull {}
private

Definition at line 55 of file InDetPerfPlot_VertexTruthMatching.h.

55{};

◆ m_vx_z0_kurtosis_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_matched
private

Definition at line 239 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_merged
private

Definition at line 240 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_ALL_split
private

Definition at line 241 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_matched
private

Definition at line 210 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_merged
private

Definition at line 211 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_HS_split
private

Definition at line 212 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_matched
private

Definition at line 207 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_merged
private

Definition at line 208 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_kurtosis_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_kurtosis_split
private

Definition at line 209 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_matched
private

Definition at line 236 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_merged
private

Definition at line 237 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_ALL_split
private

Definition at line 238 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_matched
private

Definition at line 204 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_merged
private

Definition at line 205 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_HS_split
private

Definition at line 206 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_matched
private

Definition at line 201 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_merged
private

Definition at line 202 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z0_skewness_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z0_skewness_split
private

Definition at line 203 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_matched
private

Definition at line 219 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_merged
private

Definition at line 220 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_ALL_split
private

Definition at line 221 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_matched
private

Definition at line 170 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_merged
private

Definition at line 171 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_HS_split
private

Definition at line 172 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_matched
private

Definition at line 167 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_merged
private

Definition at line 168 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_split
private

Definition at line 169 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_matched
private

Definition at line 222 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_merged
private

Definition at line 223 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_ALL_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_ALL_split
private

Definition at line 224 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_matched
private

Definition at line 176 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_merged
private

Definition at line 177 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_HS_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_HS_split
private

Definition at line 178 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_matched

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_matched
private

Definition at line 173 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_merged

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_merged
private

Definition at line 174 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_asym_weighted_split

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_asym_weighted_split
private

Definition at line 175 of file InDetPerfPlot_VertexTruthMatching.h.

◆ m_vx_z_diff

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff {}
private

Definition at line 56 of file InDetPerfPlot_VertexTruthMatching.h.

56{};

◆ m_vx_z_diff_pull

TH1* InDetPerfPlot_VertexTruthMatching::m_vx_z_diff_pull {}
private

Definition at line 57 of file InDetPerfPlot_VertexTruthMatching.h.

57{};

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