ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MSVtxPlotMaker Class Reference

#include <MSVtxPlotMaker.h>

Collaboration diagram for MSVtxPlotMaker:

Classes

struct  AngularVtxConstiTH1
 
struct  Chi2TH1
 
struct  EffInputTH1
 
struct  NHitsTH1
 
struct  NVtxTH1
 
struct  ResidualTH1
 
struct  VtxPosTGraph
 
struct  VtxPosTH
 

Public Member Functions

 MSVtxPlotMaker (const std::string &datapath, const std::string &pltdir, const std::string &treename="MSVtxValidTree")
 
virtual ~MSVtxPlotMaker ()
 
void makePlots ()
 

Private Member Functions

void setup ()
 
void setPlotStyle ()
 
void formatPlots ()
 
void fillPlots ()
 
void outputResults ()
 
void setupBranches ()
 
void formatTGraphs ()
 
void fillTruthVtxPlots (const std::vector< Amg::Vector3D > &truth_vertices)
 
void fillReconstructionObjectsHists ()
 
void fillRecoVtxPlots (const std::vector< Amg::Vector3D > &reco_vertices, const std::vector< std::vector< Amg::Vector3D >> &reco_constituentPos)
 
void fillTruthComparisonHists (const std::vector< Amg::Vector3D > &reco_vertices, const std::vector< Amg::Vector3D > &truth_vertices)
 
void fillEfficiency_NumeratorDenominatorHists (const std::vector< Amg::Vector3D > &vertices, const std::vector< Amg::Vector3D > &match_candidates, std::unique_ptr< EffInputTH1 > &denomHists, std::unique_ptr< EffInputTH1 > &numHists)
 
void fillNvtxHists (const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< NVtxTH1 > &hists)
 
void fillVtxPosMaps (const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< VtxPosTGraph > &graphs)
 
void fillVtxPosHists (const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< VtxPosTH > &hists)
 
void fillChi2Hists (double chi2, double NDoF, std::unique_ptr< Chi2TH1 > &hists)
 
void fillAngularVtxConstiHists (const Amg::Vector3D &vtx, const std::vector< Amg::Vector3D > &consti, std::unique_ptr< AngularVtxConstiTH1 > &hists)
 
void fillVtxNhitsHists (double total, double inwards, double inner, double middle, double outer, std::unique_ptr< NHitsTH1 > &hists)
 
void fillResidualHists (double eta, double dR, double d_theta, double d_phi, double d_Lxy, double d_z, double d_phys, std::unique_ptr< ResidualTH1 > &hists)
 
void fillVtxPosFiducialVolHists (const Amg::Vector3D &vtx, std::unique_ptr< EffInputTH1 > &hists)
 
void saveVtxPos (std::unique_ptr< VtxPosTH > &hists, const TString &plotdir)
 
void saveTGraph (TMultiGraph *zLxy, TMultiGraph *etaphi, std::unique_ptr< VtxPosTGraph > &graphs, const TString &plotdir)
 
void saveTH1 (TH1 *h, TString plotpath, const char *dectectorLabel="", const char *new_ylabel=nullptr, bool norm=false, bool logy=false)
 
void saveTHStack (TH1 *h1, TH1 *h2, const TString &h1_legend, const TString &h2_legend, const TString &title, const TString &plotpath, int color1=2, int color2=1)
 
void saveTEfficiency (TH1 *h_num, TH1 *h_denom, const TString &title, const TString &plotpath)
 
void saveTH2 (TH2 *h, const TString &plotpath)
 
void setColorPalette (TStyle *plotStyle)
 
TH1 * getUnmatchedHist (TH1 *h_all, TH1 *h_matched, const TString &name_unmatched)
 

Private Attributes

std::string m_datapath {}
 
std::string m_treename {}
 
TString m_plotdir {}
 
TString m_plotdir_truthVtx {}
 
TString m_plotdir_recoVtx {}
 
TString m_plotdir_recoVtxHits {}
 
TString m_plotdir_vtxResiduals {}
 
TString m_plotdir_inputObjects {}
 
TString m_plotdir_vtxEfficiency {}
 
TString m_plotdir_vtxFakeRate {}
 
TTree * m_tree {nullptr}
 
std::unique_ptr< TFile > m_input_file {nullptr}
 
std::unique_ptr< TFile > m_output_file {nullptr}
 
std::unique_ptr< TCanvas > m_c {nullptr}
 
std::vector< double > * m_truthVtx_x {nullptr}
 
std::vector< double > * m_truthVtx_y {nullptr}
 
std::vector< double > * m_truthVtx_z {nullptr}
 
std::vector< double > * m_msVtx_chi2 {nullptr}
 
std::vector< int > * m_msVtx_Ntrklet {nullptr}
 
std::vector< double > * m_msVtx_x {nullptr}
 
std::vector< double > * m_msVtx_y {nullptr}
 
std::vector< double > * m_msVtx_z {nullptr}
 
std::vector< int > * m_msVtx_nMDT {nullptr}
 
std::vector< int > * m_msVtx_nMDT_inwards {nullptr}
 
std::vector< int > * m_msVtx_nMDT_I {nullptr}
 
std::vector< int > * m_msVtx_nMDT_M {nullptr}
 
std::vector< int > * m_msVtx_nMDT_O {nullptr}
 
std::vector< int > * m_msVtx_nRPC {nullptr}
 
std::vector< int > * m_msVtx_nRPC_inwards {nullptr}
 
std::vector< int > * m_msVtx_nRPC_I {nullptr}
 
std::vector< int > * m_msVtx_nRPC_M {nullptr}
 
std::vector< int > * m_msVtx_nRPC_O {nullptr}
 
std::vector< int > * m_msVtx_nTGC {nullptr}
 
std::vector< int > * m_msVtx_nTGC_inwards {nullptr}
 
std::vector< int > * m_msVtx_nTGC_I {nullptr}
 
std::vector< int > * m_msVtx_nTGC_M {nullptr}
 
std::vector< int > * m_msVtx_nTGC_O {nullptr}
 
std::vector< double > * m_obj_x {nullptr}
 
std::vector< double > * m_obj_y {nullptr}
 
std::vector< double > * m_obj_z {nullptr}
 
std::vector< double > * m_obj_phi {nullptr}
 
std::vector< double > * m_obj_theta {nullptr}
 
std::vector< double > * m_obj_eta {nullptr}
 
std::vector< int > * m_obj_vtxLink {nullptr}
 
TH1 * m_h_Nvtx_truth = new TH1D("Nvtx_truth", "Nvtx_truth; Number of truth vertices in the barrel or endcaps; Events / bin", 4, 0, 4)
 
TH1 * m_h_Nvtx_truth_b = new TH1D("Nvtx_truth_b", "Nvtx_truth_b; Number of truth vertices in the barrel; Events / bin", 4, 0, 4)
 
TH1 * m_h_Nvtx_truth_e = new TH1D("Nvtx_truth_e", "Nvtx_truth_e; Number of truth vertices in the endcaps; Events / bin", 4, 0, 4)
 
TMultiGraph * m_zLxy_truth = new TMultiGraph("zLxy_mg_truth", "zLxy_mg_truth")
 
TGraph * m_zLxy_truth_b = new TGraph()
 
TGraph * m_zLxy_truth_e = new TGraph()
 
TGraph * m_zLxy_truth_out = new TGraph()
 
TMultiGraph * m_etaphi_truth = new TMultiGraph("etaphi_mg_truth", "etaphi_mg_truth")
 
TGraph * m_etaphi_truth_b = new TGraph()
 
TGraph * m_etaphi_truth_e = new TGraph()
 
TGraph * m_etaphi_truth_out = new TGraph()
 
TH1 * m_h_distanceToIP_truth = new TH1D("distanceToIP_truth", "distanceToIP_truth; Truth vertex |#bf{r}| [m]; Vertices / bin", 50, 0, 20)
 
TH2 * m_h_zLxy_truth = new TH2D("zLxy_truth", "zLxy_truth; Truth vertex z [m]; Truth vertex L_{xy} [m]", 128, -16, 16, 52, -1, 12)
 
TH2 * m_h_etaphi_truth = new TH2D("etaphi_truth", "etaphi_truth; Truth vertex #kern[-1.0]{ #eta}; Truth vertex #kern[-1.0]{ #phi} [rad]", 80, -2.6, 2.6, 40, -TMath::Pi(), TMath::Pi()+1)
 
TH1 * m_h_Nvtx = new TH1D("Nvtx", "Nvtx; Number of reco vertices in barrel or endcaps; Events / bin", 3, 0, 3)
 
TH1 * m_h_Nvtx_b = new TH1D("Nvtx_b", "Nvtx_b; Number of reco vertices in the barrel; Events / bin", 3, 0, 3)
 
TH1 * m_h_Nvtx_e = new TH1D("Nvtx_e", "Nvtx_e; Number of reco vertices in the endcaps; Events / bin", 3, 0, 3)
 
TMultiGraph * m_zLxy = new TMultiGraph("zLxy_mg", "zLxy_mg")
 
TGraph * m_zLxy_b = new TGraph()
 
TGraph * m_zLxy_e = new TGraph()
 
TGraph * m_zLxy_out = new TGraph()
 
TMultiGraph * m_etaphi = new TMultiGraph("etaphi_mg", "etaphi_mg")
 
TGraph * m_etaphi_b = new TGraph()
 
TGraph * m_etaphi_e = new TGraph()
 
TGraph * m_etaphi_out = new TGraph()
 
TH1 * m_h_distanceToIP = new TH1D("distanceToIP", "distanceToIP; Reco vertex |#bf{r}| [m]; Vertices / bin", 50, 0, 20)
 
TH2 * m_h_zLxy = new TH2D("zLxy", "zLxy; Reco vertex z [m]; Reco vertex L_{xy} [m]", 128, -16, 16, 52, -1, 12)
 
TH2 * m_h_etaphi = new TH2D("etaphi", "etaphi; Reco vertex #kern[-1.0]{ #eta}; Reco vertex #kern[-1.0]{ #phi} [rad]", 80, -2.6, 2.6, 40, -TMath::Pi(), TMath::Pi()+1)
 
TH1 * m_h_chi2_b = new TH1D("chi2_b", "chi2_b; Reco vertex #chi^{2}; Vertices / bin", 100, 0, 10)
 
TH1 * m_h_chi2_e = new TH1D("chi2_e", "chi2_e; Reco vertex #chi^{2}; Vertices / bin", 100, 0, 10)
 
TH1 * m_h_chi2nDoF_b = new TH1D("chi2nDoF_b", "chi2nDoF_b; Reco vertex #chi^{2}/n_{DoF}; Vertices / bin", 100, 0, 5)
 
TH1 * m_h_chi2nDoF_e = new TH1D("chi2nDoF_e", "chi2nDoF_e; Reco vertex #chi^{2}/n_{DoF}; Vertices / bin", 100, 0, 5)
 
TH1 * m_h_chi2prob_b = new TH1D("chi2_prob_b", "chi2_prob_b; Reco vertex #chi^{2} probability; Vertices / bin", 100, 0, 1)
 
TH1 * m_h_chi2prob_e = new TH1D("chi2_prob_e", "chi2_prob_e; Reco vertex #chi^{2} probability; Vertices / bin", 100, 0, 1)
 
TH1 * m_h_Nconsti_b = new TH1D("Nconstituents_b", "Nconstituents_b; Reco vertex number of constituents; Vertices / bin", 39, 1, 40)
 
TH1 * m_h_Nconsti_e = new TH1D("Nconstituents_e", "Nconstituents_e; Reco vertex number of constituents; Vertices / bin", 39, 1, 40)
 
TH1 * m_h_VtxConsti_dR_b = new TH1D("VtxConsti_dR_b", "VtxConsti_dR_b; #Delta R(reco vtx, constituent); Number of vertex-constituent pairs / bin", 100, 0, 3)
 
TH1 * m_h_VtxConsti_dRmax_b = new TH1D("VtxConsti_dRmax_b", "VtxConsti_dRmax_b; max #kern[-0.3]{#Delta } #kern[-0.2]{ R(reco vtx, constituent)}; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_VtxConsti_dphimax_b = new TH1D("VtxConsti_dphimax_b", "VtxConsti_dphimax_b; max #kern[-0.3]{#Delta } #kern[-0.3]{ #phi (reco vtx, constituent)}; Vertices / bin", 50, -2.5, 2.5)
 
TH1 * m_h_VtxConsti_detamax_b = new TH1D("VtxConsti_detamax_b", "VtxConsti_detamax_b; max #kern[-0.3]{#Delta } #kern[-0.3]{ #eta (reco vtx, constituent)}; Vertices / bin", 50, -1.0, 1.0)
 
TH1 * m_h_VtxConsti_dR_e = new TH1D("VtxConsti_dR_e", "VtxConsti_dR_e; #Delta R(reco vtx, constituent); Number of vertex-constituent pairs / bin", 100, 0, 3)
 
TH1 * m_h_VtxConsti_dRmax_e = new TH1D("VtxConsti_dRmax_e", "VtxConsti_dRmax_e; max #kern[-0.3]{#Delta } #kern[-0.2]{ R(reco vtx, constituent)}; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_VtxConsti_dphimax_e = new TH1D("VtxConsti_dphimax_e", "VtxConsti_dphimax_e; max #kern[-0.3]{#Delta } #kern[-0.3]{ #phi (reco vtx, constituent)}; Vertices / bin", 50, -2.5, 2.5)
 
TH1 * m_h_VtxConsti_detamax_e = new TH1D("VtxConsti_detamax_e", "VtxConsti_detamax_e; max #kern[-0.3]{#Delta } #kern[-0.3]{ #eta (reco vtx, constituent)}; Vertices / bin", 50, -1.0, 1.0)
 
TH1 * m_h_nMDT_b = new TH1D("nMDT_b", "nMDT_b; Number of MDT hits near the reco vertex; Vertices / bin", 100, 0, 4000)
 
TH1 * m_h_nMDT_e = new TH1D("nMDT_e", "nMDT_e; Number of MDT hits near the reco vertex; Vertices / bin", 100, 0, 4000)
 
TH1 * m_h_nMDT_I_b = new TH1D("nMDT_I_b", "nMDT_I_b; Number of inner layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 1000)
 
TH1 * m_h_nMDT_I_e = new TH1D("nMDT_I_e", "nMDT_I_e; Number of inner layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 1000)
 
TH1 * m_h_nMDT_M_b = new TH1D("nMDT_M_b", "nMDT_M_b; Number of middle layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
 
TH1 * m_h_nMDT_M_e = new TH1D("nMDT_M_e", "nMDT_M_e; Number of middle layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
 
TH1 * m_h_nMDT_O_b = new TH1D("nMDT_O_b", "nMDT_O_b; Number of outer layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
 
TH1 * m_h_nMDT_O_e = new TH1D("nMDT_O_e", "nMDT_O_e; Number of outer layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
 
TH1 * m_h_nMDT_InwardsTotal_b = new TH1D("nMDT_InwardsTotal_b", "nMDT_InwardsTotal_b; fraction of MDT hits inwards of the reco vertex; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_InwardsTotal_e = new TH1D("nMDT_InwardsTotal_e", "nMDT_InwardsTotal_e; fraction of MDT hits inwards of the reco vertex; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_IM_b = new TH1D("nMDT_IM_b", "nMDT_IM_b; Reco vertex inner/middle layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_IM_e = new TH1D("nMDT_IM_e", "nMDT_IM_e; Reco vertex inner/middle layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_IO_b = new TH1D("nMDT_IO_b", "nMDT_IO_b; Reco vertex inner/outer layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_IO_e = new TH1D("nMDT_IO_e", "nMDT_IO_e; Reco vertex inner/outer layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_MO_b = new TH1D("nMDT_MO_b", "nMDT_MO_b; Reco vertex middle/outer layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nMDT_MO_e = new TH1D("nMDT_MO_e", "nMDT_MO_e; Reco vertex middle/outer layer MDT hits; Vertices / bin", 100, 0, 3)
 
TH1 * m_h_nRPC = new TH1D("nRPC", "nRPC_e; Number of RPC hits near the reco vertex; Vertices / bin", 50, 0, 1500)
 
TH1 * m_h_nRPC_I = new TH1D("nRPC_I", "nRPC_I_e; Number of inner layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 500)
 
TH1 * m_h_nRPC_M = new TH1D("nRPC_M", "nRPC_M_e; Number of middle layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
 
TH1 * m_h_nRPC_O = new TH1D("nRPC_O", "nRPC_O_e; Number of outer layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
 
TH1 * m_h_nRPC_InwardsTotal = new TH1D("nRPC_InwardsTotal", "nRPC_InwardsTotal_e; fraction of RPC hits inwards of the reco vertex; Vertices / bin", 50, 0, 1)
 
TH1 * m_h_nRPC_IM = new TH1D("nRPC_IM", "nRPC_IM_e; Reco vertex inner/middle layer RPC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_nRPC_IO = new TH1D("nRPC_IO", "nRPC_IO_e; Reco vertex inner/outer layer RPC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_nRPC_MO = new TH1D("nRPC_MO", "nRPC_MO_e; Reco vertex middle/outer layer RPC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_nTGC = new TH1D("nTGC", "nTGC_e; Number of TGC hits near the reco vertex; Vertices / bin", 50, 0, 1500)
 
TH1 * m_h_nTGC_I = new TH1D("nTGC_I", "nTGC_I_e; Number of inner layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 500)
 
TH1 * m_h_nTGC_M = new TH1D("nTGC_M", "nTGC_M_e; Number of middle layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
 
TH1 * m_h_nTGC_O = new TH1D("nTGC_O", "nTGC_O_e; Number of outer layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
 
TH1 * m_h_nTGC_InwardsTotal = new TH1D("nTGC_InwardsTotal", "nTGC_InwardsTotal_e; fraction of TGC hits inwards of the reco vertex; Vertices / bin", 50, 0, 1)
 
TH1 * m_h_nTGC_IM = new TH1D("nTGC_IM", "nTGC_IM_e; Reco vertex inner/middle layer TGC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_nTGC_IO = new TH1D("nTGC_IO", "nTGC_IO_e; Reco vertex inner/outer layer TGC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_nTGC_MO = new TH1D("nTGC_MO", "nTGC_MO_e; Reco vertex middle/outer layer TGC hits; Vertices / bin", 50, 0, 3)
 
TH1 * m_h_Nobj = new TH1D("Nobj", "Nobj; Number of objects; Events / bin", 20, 0, 20)
 
TH1 * m_h_Nobj_b = new TH1D("Nobj_b", "Nobj_b; Number of objects in the barrel; Events / bin", 20, 0, 20)
 
TH1 * m_h_Nobj_e = new TH1D("Nobj_e", "Nobj_e; Number of objects in the endcaps; Events / bin", 20, 0, 20)
 
TH1 * m_h_NobjReco = new TH1D("objN_reco", "objN_reco; Number of objects used for reconstruction in the barrel; Events / bin", 20, 0, 20)
 
TH1 * m_h_NobjReco_b = new TH1D("objN_reco_b", "objN_reco_b; Number of objects used for reconstruction in the barrel; Events / bin", 20, 0, 20)
 
TH1 * m_h_NobjReco_e = new TH1D("objN_reco_e", "objN_reco_e; Number of objects used for reconstruction in the endcaps; Events / bin", 20, 0, 20)
 
TH1 * m_h_obj_phi_b = new TH1D("objPhi_b", "objPhi_b; Object #kern[-0.05]{#phi in the barrel}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
 
TH1 * m_h_obj_phi_e = new TH1D("objPhi_e", "objPhi_e; Object #kern[-0.05]{#phi in the endcaps}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
 
TH1 * m_h_obj_eta = new TH1D("objEta", "objEta; Object #eta; Objects / bin", 50, -2.7, 2.7)
 
TH1 * m_h_objReco_phi_b = new TH1D("objPhi_reco_b", "objPhi_reco_b; Object #kern[-0.04]{#phi used for reconstruction in the barrel}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
 
TH1 * m_h_objReco_phi_e = new TH1D("objPhi_reco_e", "objPhi_reco_e; Object #kern[-0.04]{#phi used for reconstruction in the endcaps}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
 
TH1 * m_h_objReco_eta = new TH1D("objEta_reco", "objEta_reco; Object #kern[-0.06]{#eta used for reconstruction}; Objects / bin", 50, -2.7, 2.7)
 
TH1 * m_h_delta_R_b = new TH1D("delta_R_b", "delta_R; #Delta R(reco Vtx, truth Vtx); Vertices / bin", 50, 0, 0.5)
 
TH1 * m_h_delta_R_e = new TH1D("delta_R_e", "delta_R; #Delta R(reco Vtx, truth Vtx); Vertices / bin", 50, 0, 0.5)
 
TH1 * m_h_delta_theta_b = new TH1D("delta_theta_b", "delta_theta; #theta_{reco} - #theta_{truth} [rad]; Vertices / 0.01 rad", 100, -0.5, 0.5)
 
TH1 * m_h_delta_theta_e = new TH1D("delta_theta_e", "delta_theta; #theta_{reco} - #theta_{truth} [rad]; Vertices / 0.01 rad", 100, -0.5, 0.5)
 
TH1 * m_h_delta_phi_b = new TH1D("delta_phi_b", "delta_phi; #phi_{reco} - #phi_{truth} [rad]; Vertices / 0.02 rad", 50, -0.5, 0.5)
 
TH1 * m_h_delta_phi_e = new TH1D("delta_phi_e", "delta_phi; #phi_{reco} - #phi_{truth} [rad]; Vertices / 0.02 rad", 50, -0.5, 0.5)
 
TH1 * m_h_delta_Lxy_b = new TH1D("delta_Lxy_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_Lxy_e = new TH1D("delta_Lxy_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_b = new TH1D("delta_z_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_e = new TH1D("delta_z_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_phys_b = new TH1D("delta_phys_b", "delta_phys; |#bf{r}_{reco} - #bf{r}_{truth}| [cm]; Vertices / 10 cm", 50, 0, 500)
 
TH1 * m_h_delta_phys_e = new TH1D("delta_phys_e", "delta_phys; |#bf{r}_{reco} - #bf{r}_{truth}| [cm]; Vertices / 10 cm", 75, 0, 750)
 
TH1 * m_h_delta_Lxy_posEta_b = new TH1D("delta_Lxy_posEta_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_Lxy_posEta_e = new TH1D("delta_Lxy_posEta_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_Lxy_negEta_b = new TH1D("delta_Lxy_negEta_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_Lxy_negEta_e = new TH1D("delta_Lxy_negEta_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_posEta_b = new TH1D("delta_z_posEta_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_negEta_b = new TH1D("delta_z_negEta_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_posEta_e = new TH1D("delta_z_posEta_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_delta_z_negEta_e = new TH1D("delta_z_negEta_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
 
TH1 * m_h_Reco_Lxy_b = new TH1D("vReco_Lxy_b", "reco vertex b; Reco vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
 
TH1 * m_h_RecoTruth_Lxy_b = new TH1D("RecoTruth_Lxy_b", "reco vertex matched to truth in the barrel; Reco vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
 
TH1 * m_h_Truth_Lxy_b = new TH1D("Truth_Lxy_b", "truth vertex b; Truth vertex L_{xy} [m]; Truth vertices / bin", 30, 0, 9)
 
TH1 * m_h_TruthReco_Lxy_b = new TH1D("TruthReco_Lxy_b", "truth vertex matched to reco in the barrel; Truth vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
 
TH1 * m_h_Reco_z_e = new TH1D("Reco_z_e", "reco vertex z; Reco vertex |z| [m]; Vertices / bin", 40, 0, 16)
 
TH1 * m_h_RecoTruth_z_e = new TH1D("RecoTruth_z_e", "reco vertex z matched to truth in the endcaps; Reco vertex |z| [m]; Vertices / bin", 40, 0, 16)
 
TH1 * m_h_Truth_z_e = new TH1D("Truth_z_e", "truth vertex z; Truth vertex |z| [m]; Truth vertices / bin", 40, 0, 16)
 
TH1 * m_h_TruthReco_z_e = new TH1D("TruthReco_z_e", "truth vertex z matched to reco in the endcaps; Truth vertex |z| [m]; Vertices / bin", 40, 0, 16)
 
TH1 * m_h_Reco_eta = new TH1D("Reco_eta", "reco vertex eta; Reco vertex #eta; Vertices / bin", 30, -3, 3)
 
TH1 * m_h_RecoTruth_eta = new TH1D("RecoTruth_eta", "reco vertex matched to truth; Reco vertex #eta; Vertices / bin", 30, -3, 3)
 
TH1 * m_h_Truth_eta = new TH1D("Truth_eta", "truth vertex eta; Truth vertex #eta; Truth vertices / bin", 30, -3, 3)
 
TH1 * m_h_TruthReco_eta = new TH1D("TruthReco_eta", "truth vertex matched to reco; Truth vertex #eta; Vertices / bin", 30, -3, 3)
 
TH1 * m_h_Reco_r_b = new TH1D("Reco_r_b", "reco vertex r; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
TH1 * m_h_RecoTruth_r_b = new TH1D("RecoTruth_r_b", "reco vertex matched to truth; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
TH1 * m_h_Truth_r_b = new TH1D("Truth_r_b", "truth vertex r; Truth vertex |#bf{r}| [m]; Truth vertices / bin", 60, 0, 18)
 
TH1 * m_h_TruthReco_r_b = new TH1D("TruthReco_r_b", "truth vertex matched to reco; Truth vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
TH1 * m_h_Reco_r_e = new TH1D("Reco_r_e", "reco vertex r; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
TH1 * m_h_RecoTruth_r_e = new TH1D("RecoTruth_r_e", "reco vertex matched to truth; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
TH1 * m_h_Truth_r_e = new TH1D("Truth_r_e", "truth vertex r; Truth vertex |#bf{r}| [m]; Truth vertices / bin", 60, 0, 18)
 
TH1 * m_h_TruthReco_r_e = new TH1D("TruthReco_r_e", "truth vertex matched to reco; Truth vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
 
std::unique_ptr< NVtxTH1m_h_NVtx_truth = std::make_unique<NVtxTH1>(m_h_Nvtx_truth, m_h_Nvtx_truth_b, m_h_Nvtx_truth_e)
 
std::unique_ptr< NVtxTH1m_h_NVtx = std::make_unique<NVtxTH1>(m_h_Nvtx, m_h_Nvtx_b, m_h_Nvtx_e)
 
std::unique_ptr< VtxPosTGraphm_h_VtxPos = std::make_unique<VtxPosTGraph>(m_zLxy_b, m_etaphi_b, m_zLxy_e, m_etaphi_e, m_zLxy_out, m_etaphi_out)
 
std::unique_ptr< VtxPosTGraphm_h_VtxPos_truth = std::make_unique<VtxPosTGraph>(m_zLxy_truth_b, m_etaphi_truth_b, m_zLxy_truth_e, m_etaphi_truth_e, m_zLxy_truth_out, m_etaphi_truth_out)
 
std::unique_ptr< VtxPosTHm_h_VtxPosHists = std::make_unique<VtxPosTH>(m_h_zLxy, m_h_etaphi, m_h_distanceToIP)
 
std::unique_ptr< VtxPosTHm_h_VtxPosHists_truth = std::make_unique<VtxPosTH>(m_h_zLxy_truth, m_h_etaphi_truth, m_h_distanceToIP_truth)
 
std::unique_ptr< Chi2TH1m_h_VtxChi2_b = std::make_unique<Chi2TH1>(m_h_chi2_b, m_h_chi2nDoF_b, m_h_chi2prob_b)
 
std::unique_ptr< Chi2TH1m_h_VtxChi2_e = std::make_unique<Chi2TH1>(m_h_chi2_e, m_h_chi2nDoF_e, m_h_chi2prob_e)
 
std::unique_ptr< AngularVtxConstiTH1m_h_AngularVtxConsti_b = std::make_unique<AngularVtxConstiTH1>(m_h_VtxConsti_dR_b, m_h_VtxConsti_dRmax_b, m_h_VtxConsti_dphimax_b, m_h_VtxConsti_detamax_b)
 
std::unique_ptr< AngularVtxConstiTH1m_h_AngularVtxConsti_e = std::make_unique<AngularVtxConstiTH1>(m_h_VtxConsti_dR_e, m_h_VtxConsti_dRmax_e, m_h_VtxConsti_dphimax_e, m_h_VtxConsti_detamax_e)
 
std::unique_ptr< ResidualTH1m_h_VtxResiduals_b = std::make_unique<ResidualTH1>(m_h_delta_R_b, m_h_delta_theta_b, m_h_delta_phi_b, m_h_delta_Lxy_b, m_h_delta_z_b, m_h_delta_phys_b, m_h_delta_Lxy_posEta_b, m_h_delta_Lxy_negEta_b, m_h_delta_z_posEta_b, m_h_delta_z_negEta_b)
 
std::unique_ptr< ResidualTH1m_h_VtxResiduals_e = std::make_unique<ResidualTH1>(m_h_delta_R_e, m_h_delta_theta_e, m_h_delta_phi_e, m_h_delta_Lxy_e, m_h_delta_z_e, m_h_delta_phys_e, m_h_delta_Lxy_posEta_e, m_h_delta_Lxy_negEta_e, m_h_delta_z_posEta_e, m_h_delta_z_negEta_e)
 
std::unique_ptr< NHitsTH1m_h_Nhits_MDT_b = std::make_unique<NHitsTH1>(m_h_nMDT_b, m_h_nMDT_I_b, m_h_nMDT_M_b, m_h_nMDT_O_b, m_h_nMDT_InwardsTotal_b, m_h_nMDT_IM_b, m_h_nMDT_IO_b, m_h_nMDT_MO_b)
 
std::unique_ptr< NHitsTH1m_h_Nhits_MDT_e = std::make_unique<NHitsTH1>(m_h_nMDT_e, m_h_nMDT_I_e, m_h_nMDT_M_e, m_h_nMDT_O_e, m_h_nMDT_InwardsTotal_e, m_h_nMDT_IM_e, m_h_nMDT_IO_e, m_h_nMDT_MO_e)
 
std::unique_ptr< NHitsTH1m_h_Nhits_RPC = std::make_unique<NHitsTH1>(m_h_nRPC, m_h_nRPC_I, m_h_nRPC_M, m_h_nRPC_O, m_h_nRPC_InwardsTotal, m_h_nRPC_IM, m_h_nRPC_IO, m_h_nRPC_MO)
 
std::unique_ptr< NHitsTH1m_h_Nhits_TGC = std::make_unique<NHitsTH1>(m_h_nTGC, m_h_nTGC_I, m_h_nTGC_M, m_h_nTGC_O, m_h_nTGC_InwardsTotal, m_h_nTGC_IM, m_h_nTGC_IO, m_h_nTGC_MO)
 
std::unique_ptr< EffInputTH1m_h_Truth = std::make_unique<EffInputTH1>(m_h_Truth_Lxy_b, m_h_Truth_r_b, m_h_Truth_z_e, m_h_Truth_r_e, m_h_Truth_eta)
 
std::unique_ptr< EffInputTH1m_h_TruthRecoMatched = std::make_unique<EffInputTH1>(m_h_TruthReco_Lxy_b, m_h_TruthReco_r_b, m_h_TruthReco_z_e, m_h_TruthReco_r_e, m_h_TruthReco_eta)
 
std::unique_ptr< EffInputTH1m_h_Reco = std::make_unique<EffInputTH1>(m_h_Reco_Lxy_b, m_h_Reco_r_b, m_h_Reco_z_e, m_h_Reco_r_e, m_h_Reco_eta)
 
std::unique_ptr< EffInputTH1m_h_RecoTruthMatched = std::make_unique<EffInputTH1>(m_h_RecoTruth_Lxy_b, m_h_RecoTruth_r_b, m_h_RecoTruth_z_e, m_h_RecoTruth_r_e, m_h_RecoTruth_eta)
 

Detailed Description

Definition at line 40 of file MSVtxPlotMaker.h.

Constructor & Destructor Documentation

◆ MSVtxPlotMaker()

MSVtxPlotMaker::MSVtxPlotMaker ( const std::string &  datapath,
const std::string &  pltdir,
const std::string &  treename = "MSVtxValidTree" 
)

Definition at line 13 of file MSVtxPlotMaker.cxx.

13  :
14  m_datapath(datapath), m_treename(treename),
15  m_plotdir(pltdir),
16  m_plotdir_truthVtx(m_plotdir+"truthVtx/"),
17  m_plotdir_recoVtx(m_plotdir+"recoVtx/"),
19  m_plotdir_vtxResiduals(m_plotdir+"vtxResiduals/"),
20  m_plotdir_inputObjects(m_plotdir+"inputObjects/"),
21  m_plotdir_vtxEfficiency(m_plotdir+"vtxEfficiency/"),
22  m_plotdir_vtxFakeRate(m_plotdir+"vtxFakeRate/")
23  {}

◆ ~MSVtxPlotMaker()

MSVtxPlotMaker::~MSVtxPlotMaker ( )
virtualdefault

Member Function Documentation

◆ fillAngularVtxConstiHists()

void MSVtxPlotMaker::fillAngularVtxConstiHists ( const Amg::Vector3D vtx,
const std::vector< Amg::Vector3D > &  consti,
std::unique_ptr< AngularVtxConstiTH1 > &  hists 
)
private

Definition at line 587 of file MSVtxPlotMaker.cxx.

587  {
588  // Fills histograms with the angular differences between the vertex and its constituents.
589 
590  if (consti.size() == 0) return; // no constituents
591 
592  double dphi{-1}, deta{-1}, deltaR{-1};
593  double dphi_max{0}, deta_max{0}, dR_max{0};
594 
595  for (const Amg::Vector3D &c : consti){
596  dphi = xAOD::P4Helpers::deltaPhi(vtx.phi(), c.phi());
597  deta = vtx.eta() - c.eta();
598  deltaR = xAOD::P4Helpers::deltaR(vtx.eta(), vtx.phi(), c.eta(), c.phi());
599  hists->h_dR->Fill(deltaR);
600  if (std::abs(dphi) > std::abs(dphi_max)) dphi_max = dphi;
601  if (std::abs(deta) > std::abs(deta_max)) deta_max = deta;
602  if (deltaR > dR_max) dR_max = deltaR;
603  }
604 
605  hists->h_dphimax->Fill(dphi_max);
606  hists->h_detamax->Fill(deta_max);
607  hists->h_dRmax->Fill(dR_max);
608 
609  return;
610 }

◆ fillChi2Hists()

void MSVtxPlotMaker::fillChi2Hists ( double  chi2,
double  NDoF,
std::unique_ptr< Chi2TH1 > &  hists 
)
private

Definition at line 577 of file MSVtxPlotMaker.cxx.

577  {
578  // Fills histograms related to the chi2 value of the vertex fit.
579  hists->h_chi2->Fill(chi2);
580  hists->h_chi2nDoF->Fill(chi2/NDoF);
581  hists->h_chi2prob->Fill( TMath::Prob(chi2, NDoF-1));
582 
583  return;
584 }

◆ fillEfficiency_NumeratorDenominatorHists()

void MSVtxPlotMaker::fillEfficiency_NumeratorDenominatorHists ( const std::vector< Amg::Vector3D > &  vertices,
const std::vector< Amg::Vector3D > &  match_candidates,
std::unique_ptr< EffInputTH1 > &  denomHists,
std::unique_ptr< EffInputTH1 > &  numHists 
)
private

Definition at line 512 of file MSVtxPlotMaker.cxx.

513  {
514  // Fills the transverse distance (barrel vertices only), longitudinal distance (endcaps vertices only), eta-binned, and distance to the IP binned histograms
515  // for vertices passing the good vertex selection. These are the denominator histograms for efficiency calculations.
516  // If additionally, the vertex can be macthed to an element in match_candidates, the numerator histograms are filled.
517 
518  for(const Amg::Vector3D &vtx : vertices){
519  if (!isGoodVtx(vtx)) continue;
520  fillVtxPosFiducialVolHists(vtx, denomHists);
521  if (!hasMatch(vtx, match_candidates)) continue;
522  fillVtxPosFiducialVolHists(vtx, numHists);
523  }
524 
525  return;
526 }

◆ fillNvtxHists()

void MSVtxPlotMaker::fillNvtxHists ( const std::vector< Amg::Vector3D > &  vertices,
std::unique_ptr< NVtxTH1 > &  hists 
)
private

Definition at line 531 of file MSVtxPlotMaker.cxx.

531  {
532  // Fills the number of vertices in the whole detector region and split into barrel and endcaps.
533  hists->h_Nvtx->Fill(getNvtxDetectorRegion(vertices));
534  hists->h_Nvtx_b->Fill(getNvtxBarrel(vertices));
535  hists->h_Nvtx_e->Fill(getNvtxEndcaps(vertices));
536 
537  return;
538 }

◆ fillPlots()

void MSVtxPlotMaker::fillPlots ( )
private

Definition at line 85 of file MSVtxPlotMaker.cxx.

85  {
86  // main loop over the events which fills the plots
87 
88  for(int i=0; i<m_tree->GetEntries(); ++i){
89  m_tree->GetEntry(i);
90 
91  const std::vector<Amg::Vector3D> truth_vertices = getVertexPos(*m_truthVtx_x, *m_truthVtx_y, *m_truthVtx_z);
92  const std::vector<Amg::Vector3D> reco_vertices = getVertexPos(*m_msVtx_x, *m_msVtx_y, *m_msVtx_z);
93  const std::vector<std::vector<Amg::Vector3D>> reco_constituentPos = getConstituentPos(reco_vertices.size(), *m_obj_vtxLink,
94  *m_obj_x, *m_obj_y, *m_obj_z);
95 
96  fillTruthVtxPlots(truth_vertices);
98  fillRecoVtxPlots(reco_vertices, reco_constituentPos);
99  fillTruthComparisonHists(reco_vertices, truth_vertices);
100 
101  // histograms for vertex efficiency: fraction of truth vertices that are reconstructed
103  // histograms for vertex purity: fraction of reconstructed vertices that are truth vertices
105  }
106 
107  return;
108 }

◆ fillReconstructionObjectsHists()

void MSVtxPlotMaker::fillReconstructionObjectsHists ( )
private

Definition at line 417 of file MSVtxPlotMaker.cxx.

417  {
418  // fill histograms for the objects from which vertices can be reconstructed
419 
420  int Nobj_count = m_obj_phi->size();
421  int Nobj_count_b{0}, Nobj_count_e{0};
422  int NobjReco_count{0};
423  int NobjReco_count_b{0}, NobjReco_count_e{0};
424 
425  for (int i=0; i<Nobj_count; ++i){
426  double obj_phi = (*m_obj_phi)[i];
427  double obj_eta = (*m_obj_eta)[i];
428  bool used_in_reco = (*m_obj_vtxLink)[i] != -1;
429  m_h_obj_eta->Fill(obj_eta);
430  if (used_in_reco){
431  ++NobjReco_count;
432  m_h_objReco_eta->Fill(obj_eta);
433  }
434 
435  if (inBarrel(obj_eta)){
436  ++Nobj_count_b;
437  m_h_obj_phi_b->Fill(obj_phi);
438  if (used_in_reco){
439  ++NobjReco_count_b;
440  m_h_objReco_phi_b->Fill(obj_phi);
441  }
442  }
443  if (inEndcaps(obj_eta)){
444  ++Nobj_count_e;
445  m_h_obj_phi_e->Fill(obj_phi);
446  if (used_in_reco){
447  ++NobjReco_count_e;
448  m_h_objReco_phi_e->Fill(obj_phi);
449  }
450  }
451  }
452  m_h_Nobj->Fill(Nobj_count);
453  m_h_Nobj_b->Fill(Nobj_count_b);
454  m_h_Nobj_e->Fill(Nobj_count_e);
455  m_h_NobjReco->Fill(NobjReco_count);
456  m_h_NobjReco_b->Fill(NobjReco_count_b);
457  m_h_NobjReco_e->Fill(NobjReco_count_e);
458 
459  return;
460 }

◆ fillRecoVtxPlots()

void MSVtxPlotMaker::fillRecoVtxPlots ( const std::vector< Amg::Vector3D > &  reco_vertices,
const std::vector< std::vector< Amg::Vector3D >> &  reco_constituentPos 
)
private

Definition at line 463 of file MSVtxPlotMaker.cxx.

463  {
464 
465  fillNvtxHists(reco_vertices, m_h_NVtx);
466  fillVtxPosMaps(reco_vertices, m_h_VtxPos);
467  fillVtxPosHists(reco_vertices, m_h_VtxPosHists);
468 
469  for (unsigned int j=0; j<reco_vertices.size(); ++j){
470  if (inBarrel(reco_vertices[j])){
471  m_h_Nconsti_b->Fill((*m_msVtx_Ntrklet)[j]);
473  fillAngularVtxConstiHists(reco_vertices[j], reco_constituentPos[j], m_h_AngularVtxConsti_b);
476  }
477  if (inEndcaps(reco_vertices[j])){
478  m_h_Nconsti_e->Fill((*m_msVtx_Ntrklet)[j]);
480  fillAngularVtxConstiHists(reco_vertices[j], reco_constituentPos[j], m_h_AngularVtxConsti_e);
483  }
484  }
485 
486  return;
487 }

◆ fillResidualHists()

void MSVtxPlotMaker::fillResidualHists ( double  eta,
double  dR,
double  d_theta,
double  d_phi,
double  d_Lxy,
double  d_z,
double  d_phys,
std::unique_ptr< ResidualTH1 > &  hists 
)
private

Definition at line 631 of file MSVtxPlotMaker.cxx.

631  {
632  // Fills histograms with the differences between the reconstructed and the matched truth vertex.
633  // The value of eta can be used to split the histograms into positive and negative eta regions.
634  hists->h_delta_R->Fill(dR);
635  hists->h_delta_theta->Fill(d_theta);
636  hists->h_delta_phi->Fill(d_phi);
637  hists->h_delta_Lxy->Fill(d_Lxy);
638  hists->h_delta_z->Fill(d_z);
639  hists->h_delta_phys->Fill(d_phys);
640 
641  if (eta >= 0){
642  hists->h_delta_Lxy_posEta->Fill(d_Lxy);
643  hists->h_delta_z_posEta->Fill(d_z);
644  }
645  else {
646  hists->h_delta_Lxy_negEta->Fill(d_Lxy);
647  hists->h_delta_z_negEta->Fill(d_z);
648  }
649 
650  return;
651 }

◆ fillTruthComparisonHists()

void MSVtxPlotMaker::fillTruthComparisonHists ( const std::vector< Amg::Vector3D > &  reco_vertices,
const std::vector< Amg::Vector3D > &  truth_vertices 
)
private

Definition at line 490 of file MSVtxPlotMaker.cxx.

490  {
491  // fills the histograms detailing the differences between reconstructed and truth vertices
492  for (const Amg::Vector3D &vtx : reco_vertices){
493  if (!inFiducialVol(vtx)) continue;
494  Amg::Vector3D truth_vtx = findBestMatch(vtx, truth_vertices);
495  if (!isValidMatch(truth_vtx)) continue;
496 
497  double dR = xAOD::P4Helpers::deltaR(vtx.eta(), vtx.phi(), truth_vtx.eta(), truth_vtx.phi()); // angular distance
498  double d_theta = vtx.theta() - truth_vtx.theta();
499  double d_phi = Amg::deltaPhi(vtx, truth_vtx);
500  double d_Lxy = (vtx.perp() - truth_vtx.perp())/Gaudi::Units::cm; // distance in transverse plane
501  double d_z = (vtx.z() - truth_vtx.z())/Gaudi::Units::cm; // in cm
502  double d_phys = Amg::distance(vtx, truth_vtx)/Gaudi::Units::cm; // distance to the IP in cm
503 
504  if (inFiducialVolBarrel(vtx)) fillResidualHists(truth_vtx.eta(), dR, d_theta, d_phi, d_Lxy, d_z, d_phys, m_h_VtxResiduals_b);
505  if (inFiducialVolEndcaps(vtx)) fillResidualHists(truth_vtx.eta(), dR, d_theta, d_phi, d_Lxy, d_z, d_phys, m_h_VtxResiduals_e);
506  }
507 
508  return;
509 }

◆ fillTruthVtxPlots()

void MSVtxPlotMaker::fillTruthVtxPlots ( const std::vector< Amg::Vector3D > &  truth_vertices)
private

Definition at line 407 of file MSVtxPlotMaker.cxx.

407  {
408 
409  fillNvtxHists(truth_vertices, m_h_NVtx_truth);
410  fillVtxPosMaps(truth_vertices, m_h_VtxPos_truth);
411  fillVtxPosHists(truth_vertices, m_h_VtxPosHists_truth);
412 
413  return;
414 }

◆ fillVtxNhitsHists()

void MSVtxPlotMaker::fillVtxNhitsHists ( double  total,
double  inwards,
double  inner,
double  middle,
double  outer,
std::unique_ptr< NHitsTH1 > &  hists 
)
private

Definition at line 613 of file MSVtxPlotMaker.cxx.

613  {
614  // Fills histograms with the number of hits associated to the vertex, hits inwards of the vertex and the ratios between hits in different muon spectrometer layers.
615 
616  if (total < 0) return; // no hits
617 
618  hists->h_total->Fill(total);
619  hists->h_I->Fill(inner);
620  hists->h_M->Fill(middle);
621  hists->h_O->Fill(outer);
622  hists->h_inwardsTotal->Fill(inwards/total);
623  if (middle > 0) hists->h_IM->Fill(inner/middle);
624  if (outer > 0) hists->h_IO->Fill(inner/outer);
625  if (outer > 0) hists->h_MO->Fill(middle/outer);
626 
627  return;
628 }

◆ fillVtxPosFiducialVolHists()

void MSVtxPlotMaker::fillVtxPosFiducialVolHists ( const Amg::Vector3D vtx,
std::unique_ptr< EffInputTH1 > &  hists 
)
private

Definition at line 654 of file MSVtxPlotMaker.cxx.

654  {
655  // Fills the transverse distance (barrel vertices only), longitudinal distance (endcaps vertices only),
656  // eta-binned, and distance to the IP binned histograms.
657  if (inFiducialVolBarrel(vtx)){
658  hists->h_Lxy->Fill(vtx.perp()/Gaudi::Units::m);
659  hists->h_distanceToIP_b->Fill(vtx.mag()/Gaudi::Units::m);
660  }
661  if (inFiducialVolEndcaps(vtx)){
662  hists->h_z->Fill(std::abs(vtx.z()/Gaudi::Units::m));
663  hists->h_distanceToIP_e->Fill(vtx.mag()/Gaudi::Units::m);
664  }
665  hists->h_eta->Fill(vtx.eta());
666 
667  return;
668 }

◆ fillVtxPosHists()

void MSVtxPlotMaker::fillVtxPosHists ( const std::vector< Amg::Vector3D > &  vertices,
std::unique_ptr< VtxPosTH > &  hists 
)
private

Definition at line 562 of file MSVtxPlotMaker.cxx.

562  {
563  // Fills the transverse distance, longitudinal distance, eta-binned, phi-binned and distance to the IP -binned histograms
564  // Requires the vertex to be within the detector region (inside the barrel or endcaps).
565 
566  for (const Amg::Vector3D &vtx : vertices){
567  if (!inDetectorRegion(vtx)) continue;
568  hists->h_zLxy->Fill(vtx.z()/Gaudi::Units::m, vtx.perp()/Gaudi::Units::m);
569  hists->h_etaphi->Fill(vtx.eta(), vtx.phi());
570  hists->h_distanceToIP->Fill(vtx.mag()/Gaudi::Units::m);
571  }
572 
573  return;
574 }

◆ fillVtxPosMaps()

void MSVtxPlotMaker::fillVtxPosMaps ( const std::vector< Amg::Vector3D > &  vertices,
std::unique_ptr< VtxPosTGraph > &  graphs 
)
private

Definition at line 541 of file MSVtxPlotMaker.cxx.

541  {
542  // Fills the barrel, endcaps, or outside the detector region z-Lxy and eta-phi maps with the vertex position.
543  for (const Amg::Vector3D &vtx : vertices){
544  if (inBarrel(vtx)){
545  graphs->zLxy_b->SetPoint(graphs->zLxy_b->GetN(), vtx.z()/Gaudi::Units::m, vtx.perp()/Gaudi::Units::m);
546  graphs->etaphi_b->SetPoint(graphs->etaphi_b->GetN(), vtx.eta(), vtx.phi());
547  }
548  else if (inEndcaps(vtx)){
549  graphs->zLxy_e->SetPoint(graphs->zLxy_e->GetN(), vtx.z()/Gaudi::Units::m, vtx.perp()/Gaudi::Units::m);
550  graphs->etaphi_e->SetPoint(graphs->etaphi_e->GetN(), vtx.eta(), vtx.phi());
551  }
552  else {
553  graphs->zLxy_out->SetPoint(graphs->zLxy_out->GetN(), vtx.z()/Gaudi::Units::m, vtx.perp()/Gaudi::Units::m);
554  graphs->etaphi_out->SetPoint(graphs->etaphi_out->GetN(), vtx.eta(), vtx.phi());
555  }
556  }
557 
558  return;
559 }

◆ formatPlots()

void MSVtxPlotMaker::formatPlots ( )
private

Definition at line 77 of file MSVtxPlotMaker.cxx.

77  {
78  // Call formating routines for the plots
79  formatTGraphs();
80 
81  return;
82 }

◆ formatTGraphs()

void MSVtxPlotMaker::formatTGraphs ( )
private

Definition at line 376 of file MSVtxPlotMaker.cxx.

376  {
377  // Set the formating options for TGraph and TMultiGraph
378 
379  // Lxy-z map of truth vertices
380  m_zLxy_truth->SetTitle("zLxy_truth; Truth vertex z [m]; Truth vertex L_{xy} [m]");
381  m_zLxy_truth_b->SetMarkerColor(1); m_zLxy_truth_b->SetMarkerStyle(20); m_zLxy_truth_b->SetMarkerSize(0.5);
382  m_zLxy_truth_e->SetMarkerColor(2); m_zLxy_truth_e->SetMarkerStyle(20); m_zLxy_truth_e->SetMarkerSize(0.5);
383  m_zLxy_truth_out->SetMarkerColor(14); m_zLxy_truth_out->SetMarkerStyle(24); m_zLxy_truth_out->SetMarkerSize(0.5);
384  // eta-phi map of truth vertices
385  m_etaphi_truth->SetTitle("etaphi_truth; Truth vertex #eta; Truth vertex #phi [rad]");
386  m_etaphi_truth_b->SetMarkerColor(1); m_etaphi_truth_b->SetMarkerStyle(20); m_etaphi_truth_b->SetMarkerSize(0.5);
387  m_etaphi_truth_e->SetMarkerColor(2); m_etaphi_truth_e->SetMarkerStyle(20); m_etaphi_truth_e->SetMarkerSize(0.5);
388  m_etaphi_truth_out->SetMarkerColor(14); m_etaphi_truth_out->SetMarkerStyle(24); m_etaphi_truth_out->SetMarkerSize(0.5);
389 
390  // Lxy-z map of reconstructed vertices
391  m_zLxy->SetTitle("zLxy; Reco vertex z [m]; Reco vertex L_{xy} [m]");
392  m_zLxy_b->SetMarkerColor(1); m_zLxy_b->SetMarkerStyle(20); m_zLxy_b->SetMarkerSize(0.5);
393  m_zLxy_e->SetMarkerColor(2); m_zLxy_e->SetMarkerStyle(20); m_zLxy_e->SetMarkerSize(0.5);
394  m_zLxy_out->SetMarkerColor(14); m_zLxy_out->SetMarkerStyle(24); m_zLxy_out->SetMarkerSize(0.5);
395  // eta-phi map of reconstructed vertices
396  m_etaphi->SetTitle("etaphi; Reco vertex #eta; Reco vertex #phi [rad]");
397  m_etaphi_b->SetMarkerColor(1); m_etaphi_b->SetMarkerStyle(20); m_etaphi_b->SetMarkerSize(0.5);
398  m_etaphi_e->SetMarkerColor(2); m_etaphi_e->SetMarkerStyle(20); m_etaphi_e->SetMarkerSize(0.5);
399  m_etaphi_out->SetMarkerColor(14); m_etaphi_out->SetMarkerStyle(24); m_etaphi_out->SetMarkerSize(0.5);
400 
401  return;
402 }

◆ getUnmatchedHist()

TH1 * MSVtxPlotMaker::getUnmatchedHist ( TH1 *  h_all,
TH1 *  h_matched,
const TString &  name_unmatched 
)
private

Definition at line 874 of file MSVtxPlotMaker.cxx.

874  {
875  // takes the difference between the all vertices and the matched vertices to get the unmatched vertices
876  TH1* h_unmatched = (TH1*)h_all->Clone(name_unmatched);
877  h_unmatched->Add(h_matched, -1);
878  return h_unmatched;
879 }

◆ makePlots()

void MSVtxPlotMaker::makePlots ( )

Definition at line 31 of file MSVtxPlotMaker.cxx.

31  {
32  // Generates a series of plots from the input data (m_datapath and m_treename) and stores these at m_plotdir
33  // as a figure and in a root file.
34  setup();
35  setPlotStyle();
36  formatPlots();
37  fillPlots();
38  outputResults();
39 }

◆ outputResults()

void MSVtxPlotMaker::outputResults ( )
private

Definition at line 111 of file MSVtxPlotMaker.cxx.

111  {
112  // draw, save, write the plots
113  m_c = std::make_unique<TCanvas>();
114  m_output_file->cd();
115 
116 
117  // truth vertices
121  // position
124 
125 
126  // reconstructed vertices
130  // position
133  // chi squared
138  saveTH1(m_h_chi2prob_b, m_plotdir_recoVtx+"chi2_prob_b");
139  saveTH1(m_h_chi2prob_e, m_plotdir_recoVtx+"chi2_prob_e");
140  // constituents
141  saveTH1(m_h_Nconsti_b, m_plotdir_recoVtx+"Nconstituents_b");
142  saveTH1(m_h_Nconsti_e, m_plotdir_recoVtx+"Nconstituents_e");
143  saveTH1(m_h_VtxConsti_dR_b, m_plotdir_recoVtx+"VtxConsti_dR_b");
144  saveTH1(m_h_VtxConsti_dRmax_b, m_plotdir_recoVtx+"VtxConsti_dRmax_b");
145  saveTH1(m_h_VtxConsti_dphimax_b, m_plotdir_recoVtx+"VtxConsti_dphimax_b");
146  saveTH1(m_h_VtxConsti_detamax_b, m_plotdir_recoVtx+"VtxConsti_detamax_b");
147  saveTH1(m_h_VtxConsti_dR_e, m_plotdir_recoVtx+"VtxConsti_dR_e");
148  saveTH1(m_h_VtxConsti_dRmax_e, m_plotdir_recoVtx+"VtxConsti_dRmax_e");
149  saveTH1(m_h_VtxConsti_dphimax_e, m_plotdir_recoVtx+"VtxConsti_dphimax_e");
150  saveTH1(m_h_VtxConsti_detamax_e, m_plotdir_recoVtx+"VtxConsti_detamax_e");
151  // MDT hits
160  saveTH1(m_h_nMDT_InwardsTotal_b, m_plotdir_recoVtxHits+"nMDT_InwardsTotal_b");
161  saveTH1(m_h_nMDT_InwardsTotal_e, m_plotdir_recoVtxHits+"nMDT_InwardsTotal_e");
168  // RPC hits
177  // TGC hits
186 
187 
188  // input objects for the vertex reconstruction
189  // use counts from eta and phi histograms to fill the total number of objects available and used for reconstruction
191  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_eta->GetEntries())), TString::Format("Total: %d", int(m_h_obj_eta->GetEntries())),
192  TString("objN_stack; Number of objects; Events / bin"), m_plotdir_inputObjects+"objN_stack");
194  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_phi_b->GetEntries())), TString::Format("Total: %d", int(m_h_obj_phi_b->GetEntries())),
195  TString("objN_stack_b; Number of objects in the barrel; Events / bin"), m_plotdir_inputObjects+"objN_stack_b");
197  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_phi_e->GetEntries())), TString::Format("Total: %d", int(m_h_obj_phi_e->GetEntries())),
198  TString("objN_stack_e; Number of objects in the endcaps; Events / bin"), m_plotdir_inputObjects+"objN_stack_e");
200  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_eta->GetEntries())), TString::Format("Total: %d", int(m_h_obj_eta->GetEntries())),
201  TString("objEta_stack; Object #kern[-0.425]{#eta }; Events / bin"), m_plotdir_inputObjects+"objEta_stack");
203  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_phi_b->GetEntries())), TString::Format("Total: %d", int(m_h_obj_phi_b->GetEntries())),
204  TString("objPhi_stack_b; Object #kern[-0.09]{#phi in the barrel}; Events / bin"), m_plotdir_inputObjects+"objPhi_stack_b");
206  TString::Format("#splitline{Used in}{reconstruction: %d}", int(m_h_objReco_phi_e->GetEntries())), TString::Format("Total: %d", int(m_h_obj_phi_e->GetEntries())),
207  TString("objPhi_stack_e; Object #kern[-0.09]{#phi in the endcaps}; Events / bin"), m_plotdir_inputObjects+"objPhi_stack_e");
208  // objects used for reconstruction
215 
216 
217  // vertex residuals
218  // barrel
225  // endcaps
232  // split into positive and negative eta
233  saveTH1(m_h_delta_Lxy_posEta_b, m_plotdir_vtxResiduals+"delta_Lxy_posEta_b", TString::Format("0 < #kern[-0.45]{#eta <} %.2f", fidVol_barrel_etaCut).Data());
234  saveTH1(m_h_delta_Lxy_negEta_b, m_plotdir_vtxResiduals+"delta_Lxy_negEta_b", TString::Format("-%.2f < #kern[-0.45]{#eta <} 0", fidVol_barrel_etaCut).Data());
236  saveTH1(m_h_delta_Lxy_negEta_e, m_plotdir_vtxResiduals+"delta_Lxy_negEta_e", TString::Format("-%.2f < #kern[-0.45]{#eta <} -%.2f", fidVol_endcaps_etaCut_up, fidVol_endcaps_etaCut_low).Data());
237  saveTH1(m_h_delta_z_posEta_b, m_plotdir_vtxResiduals+"delta_z_posEta_b", TString::Format("0 < #kern[-0.45]{#eta <} %.2f", fidVol_barrel_etaCut).Data());
238  saveTH1(m_h_delta_z_negEta_b, m_plotdir_vtxResiduals+"delta_z_negEta_b", TString::Format("-%.2f < #kern[-0.45]{#eta <} 0", fidVol_barrel_etaCut).Data());
240  saveTH1(m_h_delta_z_negEta_e, m_plotdir_vtxResiduals+"delta_z_negEta_e", TString::Format("-%.2f < #kern[-0.45]{#eta <} -%.2f", fidVol_endcaps_etaCut_up, fidVol_endcaps_etaCut_low).Data());
241 
242 
243  // vertex efficiency
244  // transverse distance: barrel
246  TString::Format("#splitline{Truth vertices}{matched to reco: %d}", int(m_h_TruthReco_Lxy_b->GetEntries())), TString::Format("Truth vertices: %d", int(m_h_Truth_Lxy_b->GetEntries())),
247  TString("stack_vtxeff_Lxy_b; Truth vertex L_{xy} [m]; Vertices / bin"), m_plotdir_vtxEfficiency+"num_denom_vtxeff_Lxy_b");
249  TString("vtxeff_Lxy_b; Truth vertex L_{xy} [m]; Efficiency: n_{truth}^{reco matched} / n_{truth}"), m_plotdir_vtxEfficiency+"vtxeff_Lxy_b");
250 
251  // longitudinal distance: endcap
253  TString::Format("#splitline{Truth vertices}{matched to reco: %d}", int(m_h_TruthReco_z_e->GetEntries())), TString::Format("Truth vertices: %d", int(m_h_Truth_z_e->GetEntries())),
254  TString("stack_vtxeff_z_e; Truth vertex |z| [m]; Vertices / bin"), m_plotdir_vtxEfficiency+"num_denom_vtxeff_z_e");
256  TString("vtxeff_z_e; Truth vertex |z| [m]; Efficiency: n_{truth}^{reco matched} / n_{truth}"), m_plotdir_vtxEfficiency+"vtxeff_z_e");
257 
258  // eta-binned
260  TString::Format("#splitline{Truth vertices}{matched to reco: %d}", int(m_h_TruthReco_eta->GetEntries())), TString::Format("Truth vertices: %d", int(m_h_Truth_eta->GetEntries())),
261  TString("stack_vtxeff_eta; Truth vertex #kern[-0.425]{#eta }; Vertices / bin"), m_plotdir_vtxEfficiency+"num_denom_vtxeff_eta");
263  TString("vtxeff_eta; Truth vertex #kern[-0.425]{#eta }; Efficiency: n_{truth}^{reco matched} / n_{truth}"), m_plotdir_vtxEfficiency+"vtxeff_eta");
264 
265  // distance form IP: barrel
267  TString::Format("#splitline{Truth vertices}{matched to reco: %d}", int(m_h_TruthReco_r_b->GetEntries())), TString::Format("Truth vertices: %d", int(m_h_Truth_r_b->GetEntries())),
268  TString("stack_vtxeff_r_b; Truth vertex |#bf{r}| [m]; Vertices / bin"), m_plotdir_vtxEfficiency+"num_denom_vtxeff_r_b");
270  TString("vtxeff_r_b; Truth vertex |#bf{r}| [m]; Efficiency: n_{truth}^{reco matched} / n_{truth}"), m_plotdir_vtxEfficiency+"vtxeff_r_b");
271 
272  // distance form IP: endcap
274  TString::Format("#splitline{Truth vertices}{matched to reco: %d}", int(m_h_TruthReco_r_e->GetEntries())), TString::Format("Truth vertices: %d", int(m_h_Truth_r_e->GetEntries())),
275  TString("stack_vtxeff_r_e; Truth vertex |#bf{r}| [m]; Vertices / bin"), m_plotdir_vtxEfficiency+"num_denom_vtxeff_r_e");
277  TString("vtxeff_r_e; Truth vertex |#bf{r}| [m]; Efficiency: n_{truth}^{reco matched} / n_{truth}"), m_plotdir_vtxEfficiency+"vtxeff_r_e");
278 
279 
280  // vertex fakerate
281  // transverse distance: barrel
282  TH1 *h_RecoNoTruth_Lxy_b = getUnmatchedHist(m_h_Reco_Lxy_b, m_h_RecoTruth_Lxy_b, TString("RecoNoTruth_b"));
283  saveTHStack(h_RecoNoTruth_Lxy_b, m_h_Reco_Lxy_b,
284  TString::Format("#splitline{Reco vertices}{not matched to truth: %d}", int(h_RecoNoTruth_Lxy_b->GetEntries())), TString::Format("Reco vertices: %d", int(m_h_Reco_Lxy_b->GetEntries())),
285  TString("stack_vtxfrate_Lxy_b; Reco vertex L_{xy} [m]; Vertices / bin"), m_plotdir_vtxFakeRate+"num_denom_vtxfrate_Lxy_b");
286  saveTEfficiency(h_RecoNoTruth_Lxy_b, m_h_Reco_Lxy_b,
287  TString("vtxfrate_Lxy_b; Reco vertex L_{xy} [m]; Fake rate: n_{reco}^{not truth matched} / n_{reco}"), m_plotdir_vtxFakeRate+"vtxfrate_Lxy_b");
288  // longitudinal distance: endcap
289  TH1 *h_RecoNoTruth_z_e = getUnmatchedHist(m_h_Reco_z_e, m_h_RecoTruth_z_e, TString("RecoNoTruth_e"));
290  saveTHStack(h_RecoNoTruth_z_e, m_h_Reco_z_e,
291  TString::Format("#splitline{Reco vertices}{not matched to truth: %d}", int(h_RecoNoTruth_z_e->GetEntries())), TString::Format("Reco vertices: %d", int(m_h_Reco_z_e->GetEntries())),
292  TString("stack_vtxfrate_z_e; Reco vertex |z| [m]; Vertices / bin"), m_plotdir_vtxFakeRate+"num_denom_vtxfrate_z_e");
293  saveTEfficiency(h_RecoNoTruth_z_e, m_h_Reco_z_e,
294  TString("vtxfrate_z_e; Reco vertex |z| [m]; Fake rate: n_{reco}^{not truth matched} / n_{reco}"), m_plotdir_vtxFakeRate+"vtxfrate_z_e");
295 
296  // eta-binned
297  TH1 *h_RecoNoTruth_eta = getUnmatchedHist(m_h_Reco_eta, m_h_RecoTruth_eta, TString("RecoNoTruth_eta"));
298  saveTHStack(h_RecoNoTruth_eta, m_h_Reco_eta,
299  TString::Format("#splitline{Reco vertices}{not matched to truth: %d}", int(h_RecoNoTruth_eta->GetEntries())), TString::Format("Reco vertices: %d", int(m_h_Reco_eta->GetEntries())),
300  TString("stack_vtxfrate_eta; Reco vertex #kern[-0.425]{#eta }; Vertices / bin"), m_plotdir_vtxFakeRate+"num_denom_vtxfrate_eta");
301  saveTEfficiency(h_RecoNoTruth_eta, m_h_Reco_eta,
302  TString("vtxfrate_eta; Reco vertex #kern[-0.425]{#eta }; Fake rate: n_{reco}^{not truth matched} / n_{reco}"), m_plotdir_vtxFakeRate+"vtxfrate_eta");
303 
304  // distance form IP: barrel
305  TH1 *h_RecoNoTruth_r_b = getUnmatchedHist(m_h_Reco_r_b, m_h_RecoTruth_r_b, TString("RecoNoTruth_r_b"));
306  saveTHStack(h_RecoNoTruth_r_b, m_h_Reco_r_b,
307  TString::Format("#splitline{Reco vertices}{not matched to truth: %d}", int(h_RecoNoTruth_r_b->GetEntries())), TString::Format("Reco vertices: %d", int(m_h_Reco_r_b->GetEntries())),
308  TString("stack_vtxfrate_r_b; Reco vertex |#bf{r}| [m]; Vertices / bin"), m_plotdir_vtxFakeRate+"num_denom_vtxfrate_r_b");
309  saveTEfficiency(h_RecoNoTruth_r_b, m_h_Reco_r_b,
310  TString("vtxfrate_r_b; Reco vertex |#bf{r}| [m]; Fake rate: n_{reco}^{not truth matched} / n_{reco}"), m_plotdir_vtxFakeRate+"vtxfrate_r_b");
311 
312  // distance form IP: endcaps
313  TH1 *h_RecoNoTruth_r_e = getUnmatchedHist(m_h_Reco_r_e, m_h_RecoTruth_r_e, TString("RecoNoTruth_r_e"));
314  saveTHStack(h_RecoNoTruth_r_e, m_h_Reco_r_e,
315  TString::Format("#splitline{Reco vertices}{not matched to truth: %d}", int(h_RecoNoTruth_r_e->GetEntries())), TString::Format("Reco vertices: %d", int(m_h_Reco_r_e->GetEntries())),
316  TString("stack_vtxfrate_r_e; Reco vertex |#bf{r}| [m]; Vertices / bin"), m_plotdir_vtxFakeRate+"num_denom_vtxfrate_r_e");
317  saveTEfficiency(h_RecoNoTruth_r_e, m_h_Reco_r_e,
318  TString("vtxfrate_r_e; Reco vertex |#bf{r}| [m]; Fake rate: n_{reco}^{not truth matched} / n_{reco}"), m_plotdir_vtxFakeRate+"vtxfrate_r_e");
319 
320 
321  m_output_file->Write();
322  m_output_file->Delete("*;2"); // delete all nameclye 2 objects
323  m_output_file->Close();
324 
325  return;
326 }

◆ saveTEfficiency()

void MSVtxPlotMaker::saveTEfficiency ( TH1 *  h_num,
TH1 *  h_denom,
const TString &  title,
const TString &  plotpath 
)
private

Definition at line 803 of file MSVtxPlotMaker.cxx.

804  {
805  // computes a TEfficiency object from the passed numerator and denominator histogram and saves it
806 
807  TEfficiency* h_eff = new TEfficiency(*h_num, *h_denom);
808  h_eff->SetTitle(title);
809  TObjArray *tx_eff = title.Tokenize(";");
810  h_eff->SetName(((TObjString*)(tx_eff->At(0)))->String());
811  // set drawing style and draw
812  h_eff->SetLineColor(1);
813  h_eff->SetMarkerColor(1);
814  h_eff->SetMarkerSize(0.5);
815  h_eff->SetMarkerStyle(24);
816  h_eff->Draw();
817  gPad->Update();
818  // adjust maximum for sufficient space for annotations and draw annotations
819  TGraphAsymmErrors* g_eff = h_eff->GetPaintedGraph();
820  double maxy = getMaxy(g_eff);
821  g_eff->GetYaxis()->SetRangeUser(0, 1.4*maxy);
822  g_eff->GetXaxis()->SetTitle(((TObjString*)(tx_eff->At(1)))->String());
823  g_eff->GetYaxis()->SetTitle(((TObjString*)(tx_eff->At(2)))->String());
824  // annotations
825  if (TString(h_eff->GetName()).Contains("_Lxy_")) drawDetectorBoundaryLines("Lxy", 1.1*maxy);
826  if (TString(h_eff->GetName()).Contains("_z_")) drawDetectorBoundaryLines("z", 1.1*maxy);
827  drawDetectorRegionLabel(h_eff->GetName());
828  drawATLASlabel("Simulation Internal");
829  gPad->Update();
830 
831  m_c->SaveAs(plotpath+".pdf");
832  h_eff->Write();
833 
834  return;
835 }

◆ saveTGraph()

void MSVtxPlotMaker::saveTGraph ( TMultiGraph *  zLxy,
TMultiGraph *  etaphi,
std::unique_ptr< VtxPosTGraph > &  graphs,
const TString &  plotdir 
)
private

Definition at line 693 of file MSVtxPlotMaker.cxx.

693  {
694  // Combines the TGraph objects to a the TMultiGraph and save it.
695  zLxy->Add(graphs->zLxy_b, "P");
696  zLxy->Add(graphs->zLxy_e, "P");
697  zLxy->Add(graphs->zLxy_out, "P");
698  zLxy->GetXaxis()->SetRangeUser(-16,16);
699  zLxy->GetYaxis()->SetRangeUser(-1,12);
700  zLxy->Draw("A");
701  drawATLASlabel("Simulation Internal");
702  TLegend* legend_zLxy = makeLegend(0.16, 0.02, 0.65, 0.07, 0.05);
703  legend_zLxy->SetNColumns(3);
704  legend_zLxy->AddEntry(graphs->zLxy_b, "Barrel", "p");
705  legend_zLxy->AddEntry(graphs->zLxy_e, "Endcaps", "p");
706  legend_zLxy->AddEntry(graphs->zLxy_out, "Outside", "p");
707  legend_zLxy->Draw();
708  m_c->SaveAs(plotdir+"map_zLxy.pdf");
709  zLxy->Write();
710 
711  etaphi->Add(graphs->etaphi_b, "P");
712  etaphi->Add(graphs->etaphi_e, "P");
713  etaphi->Add(graphs->etaphi_out, "P");
714  etaphi->GetXaxis()->SetRangeUser(-2.6,2.6);
715  etaphi->GetYaxis()->SetRangeUser(-TMath::Pi()-0.25,TMath::Pi()+1);
716  etaphi->Draw("A");
717  drawATLASlabel("Simulation Internal");
718  TLegend* legend_etaphi = makeLegend(0.16, 0.02, 0.65, 0.07, 0.05);
719  legend_etaphi->SetNColumns(3);
720  legend_etaphi->AddEntry(graphs->etaphi_b, "Barrel", "p");
721  legend_etaphi->AddEntry(graphs->etaphi_e, "Endcaps", "p");
722  legend_etaphi->AddEntry(graphs->etaphi_out, "Outside", "p");
723  legend_etaphi->Draw();
724  m_c->SaveAs(plotdir+"map_etaphi.pdf");
725  etaphi->Write();
726 
727  return;
728 }

◆ saveTH1()

void MSVtxPlotMaker::saveTH1 ( TH1 *  h,
TString  plotpath,
const char *  dectectorLabel = "",
const char *  new_ylabel = nullptr,
bool  norm = false,
bool  logy = false 
)
private

Definition at line 731 of file MSVtxPlotMaker.cxx.

731  {
732  // Saves the histogram with a detector label annotation and optionally normalizes (giving the frequency probability for each bin) it.
733  // Also allows to set a new y axis label and plot with a log y scale
734  // If normalisation or log scaling is applied, "_norm" or "_log" are appended to the histogram and file name
735 
736  double maxy_factor = 1.4; // assures sufficeint space of annotations
737 
738  if (norm){
739  h->Scale(1. / h->Integral()); // Add the argument "width" to normalize by bin-count*width to get the approximate pdf
740  h->SetName(TString(h->GetName())+"_norm");
741  plotpath = plotpath.Insert(plotpath.Last(*"."),"_norm");
742  }
743 
744  if (logy){
745  gPad->SetLogy();
746  h->SetName(TString(h->GetName())+"_log");
747  plotpath = plotpath.Insert(plotpath.Last(*"."),"_log");
748  maxy_factor = 4;
749  }
750 
751  if (new_ylabel){
752  h->GetYaxis()->SetTitle(new_ylabel);
753  }
754 
755  h->SetMaximum(h->GetMaximum()*maxy_factor);
756  h->Draw("hist");
757  drawDetectorRegionLabel(h->GetName(), dectectorLabel);
758  drawATLASlabel("Simulation Internal");
759  m_c->SaveAs(plotpath+".pdf");
760  h->Write();
761 
762  // reset log scale for next plots
763  gPad->SetLogy(0);
764 
765  return;
766 }

◆ saveTH2()

void MSVtxPlotMaker::saveTH2 ( TH2 *  h,
const TString &  plotpath 
)
private

Definition at line 838 of file MSVtxPlotMaker.cxx.

838  {
839  // adjust margins to fit the palette on the pad
840  gPad->SetRightMargin(0.15);
841  h->Draw("colz");
842  drawATLASlabel("Simulation Internal");
843  m_c->SaveAs(plotpath+".pdf");
844  gPad->SetRightMargin(0.05); // reset margin for next plots
845 
846  return;
847 }

◆ saveTHStack()

void MSVtxPlotMaker::saveTHStack ( TH1 *  h1,
TH1 *  h2,
const TString &  h1_legend,
const TString &  h2_legend,
const TString &  title,
const TString &  plotpath,
int  color1 = 2,
int  color2 = 1 
)
private

Definition at line 769 of file MSVtxPlotMaker.cxx.

772  {
773  // save the passed TH1 as a THStack.
774  // The THStack title is required to have the format "name; x-axis label; y-axis label"
775  TObjArray *tx_stack = title.Tokenize(";");
776  auto name = ((TObjString*)(tx_stack->At(0)))->String();
777  THStack *h_stack = new THStack(name, name);
778  h1->SetLineColor(color1);
779  h2->SetLineColor(color2);
780  h_stack->Add(h1);
781  h_stack->Add(h2);
782  // adjust maximum for sufficent space for annotations and draw
783  double maxy = h2->GetMaximum()>h1->GetMaximum() ? h2->GetMaximum() : h1->GetMaximum();
784  h_stack->SetMaximum(1.4*maxy);
785  h_stack->Draw("nostack");
786  h_stack->GetXaxis()->SetTitle(((TObjString*)(tx_stack->At(1)))->String());
787  h_stack->GetYaxis()->SetTitle(((TObjString*)(tx_stack->At(2)))->String());
788  // add annotations
789  TLegend* legend = makeLegend();
790  legend->AddEntry(h1, h1_legend, "l");
791  legend->AddEntry(h2, h2_legend, "l");
792  legend->Draw();
794  drawATLASlabel("Simulation Internal");
795 
796  m_c->SaveAs(plotpath+".pdf");
797  h_stack->Write();
798 
799  return;
800 }

◆ saveVtxPos()

void MSVtxPlotMaker::saveVtxPos ( std::unique_ptr< VtxPosTH > &  hists,
const TString &  plotdir 
)
private

Definition at line 673 of file MSVtxPlotMaker.cxx.

673  {
674  // Saves the passed TH2s and TH1.
675  saveTH2(hists->h_zLxy, plotdir+"zLxy");
676  saveTH2(hists->h_etaphi, plotdir+"etaphi");
677 
678  // project and save the 1D histograms
679  const TString extra = plotdir.Contains("truth") ? TString("_truth") : TString("");
680 
681  saveTH1(hists->h_zLxy->ProjectionX("z"+extra), plotdir+"z"+extra, "", "Vertices / bin");
682  saveTH1(hists->h_zLxy->ProjectionY("Lxy"+extra), plotdir+"Lxy"+extra, "", "Vertices / bin");
683  saveTH1(hists->h_etaphi->ProjectionX("eta"+extra), plotdir+"eta"+extra, "", "Vertices / bin");
684  TH1* h_phi = hists->h_etaphi->ProjectionY("phi"+extra);
685  h_phi->GetXaxis()->SetRangeUser(-TMath::Pi(), TMath::Pi()); // adjust range
686  saveTH1(h_phi, plotdir+"phi"+extra, "", "Vertices / bin");
687  saveTH1(hists->h_distanceToIP, plotdir+"distanceToIP");
688 
689  return;
690 }

◆ setColorPalette()

void MSVtxPlotMaker::setColorPalette ( TStyle *  plotStyle)
private

Definition at line 853 of file MSVtxPlotMaker.cxx.

853  {
854  // define a custom colour palette
855  Int_t palette[100];
856  // define colours and compute the gradient between them.
857  // the i-th entry in the following arrays defines the rgb values
858  Double_t Red[] = {0.0, 0.0, 1.0, 1.0};
859  Double_t Green[] = {1.0, 1.0, 1.0, 0.0};
860  Double_t Blue[] = {1.0, 0.0, 0.0, 0.0};
861  Double_t Length[] = {0.0, 0.33, 0.66, 1.0};
862  Int_t firstColorIdx = TColor::CreateGradientColorTable(std::size(Length), Length, Red, Green, Blue, std::size(palette));
863  // fill the pallette with the gradient
864  for (unsigned int i=0; i<std::size(palette); i++) palette[i] = firstColorIdx+i;
865 
866  plotStyle->SetPalette(std::size(palette), palette);
867  // plotStyle->SetPalette(kBlueRedYellow); // more standard color palette
868  plotStyle->SetNumberContours(100);
869 
870  return;
871 }

◆ setPlotStyle()

void MSVtxPlotMaker::setPlotStyle ( )
private

Definition at line 62 of file MSVtxPlotMaker.cxx.

62  {
63  // set the plot style and the color palette
64  gROOT->SetStyle("ATLAS");
65  TStyle* plotStyle = gROOT->GetStyle("ATLAS");
66  plotStyle->SetOptTitle(0);
67  plotStyle->SetHistLineWidth(1.);
68 
69  setColorPalette(plotStyle);
70  plotStyle->cd();
71  gROOT->ForceStyle();
72 
73  return;
74 }

◆ setup()

void MSVtxPlotMaker::setup ( )
private

Definition at line 42 of file MSVtxPlotMaker.cxx.

42  {
43  // set up input file and its tree as well as the output root file.
44  m_input_file = std::make_unique<TFile>(m_datapath.c_str(), "read");
45  m_tree = (TTree*)m_input_file->Get(m_treename.c_str());
46  setupBranches();
47 
48  gSystem->mkdir(m_plotdir, kTRUE);
49  gSystem->mkdir(m_plotdir_truthVtx, kTRUE);
50  gSystem->mkdir(m_plotdir_recoVtx, kTRUE);
51  gSystem->mkdir(m_plotdir_recoVtxHits, kTRUE);
52  gSystem->mkdir(m_plotdir_vtxResiduals, kTRUE);
53  gSystem->mkdir(m_plotdir_inputObjects, kTRUE);
54  gSystem->mkdir(m_plotdir_vtxEfficiency, kTRUE);
55  gSystem->mkdir(m_plotdir_vtxFakeRate, kTRUE);
56  m_output_file = std::make_unique<TFile>(m_plotdir+"Histograms.root", "recreate");
57 
58  return;
59 }

◆ setupBranches()

void MSVtxPlotMaker::setupBranches ( )
private

Definition at line 332 of file MSVtxPlotMaker.cxx.

332  {
333  // truth vertex variables
334  m_tree->SetBranchAddress("llpVtx_X", &m_truthVtx_x);
335  m_tree->SetBranchAddress("llpVtx_Y", &m_truthVtx_y);
336  m_tree->SetBranchAddress("llpVtx_Z", &m_truthVtx_z);
337 
338  // reconstructed vertex variables
339  m_tree->SetBranchAddress("msVtx_chi2", &m_msVtx_chi2);
340  m_tree->SetBranchAddress("msVtx_Ntrklet", &m_msVtx_Ntrklet);
341  m_tree->SetBranchAddress("msVtx_X", &m_msVtx_x);
342  m_tree->SetBranchAddress("msVtx_Y", &m_msVtx_y);
343  m_tree->SetBranchAddress("msVtx_Z", &m_msVtx_z);
344  // MDT hits near the vertex: total and per layer
345  m_tree->SetBranchAddress("msVtx_nMDT", &m_msVtx_nMDT);
346  m_tree->SetBranchAddress("msVtx_nMDT_inwards", &m_msVtx_nMDT_inwards);
347  m_tree->SetBranchAddress("msVtx_nMDT_I", &m_msVtx_nMDT_I);
348  m_tree->SetBranchAddress("msVtx_nMDT_M", &m_msVtx_nMDT_M);
349  m_tree->SetBranchAddress("msVtx_nMDT_O", &m_msVtx_nMDT_O);
350  // RPC hits near the vertex: total and per layer
351  m_tree->SetBranchAddress("msVtx_nRPC", &m_msVtx_nRPC);
352  m_tree->SetBranchAddress("msVtx_nRPC_inwards", &m_msVtx_nRPC_inwards);
353  m_tree->SetBranchAddress("msVtx_nRPC_I", &m_msVtx_nRPC_I);
354  m_tree->SetBranchAddress("msVtx_nRPC_M", &m_msVtx_nRPC_M);
355  m_tree->SetBranchAddress("msVtx_nRPC_O", &m_msVtx_nRPC_O);
356  // TGC hits near the vertex: total and per layer
357  m_tree->SetBranchAddress("msVtx_nTGC", &m_msVtx_nTGC);
358  m_tree->SetBranchAddress("msVtx_nTGC_inwards", &m_msVtx_nTGC_inwards);
359  m_tree->SetBranchAddress("msVtx_nTGC_I", &m_msVtx_nTGC_I);
360  m_tree->SetBranchAddress("msVtx_nTGC_M", &m_msVtx_nTGC_M);
361  m_tree->SetBranchAddress("msVtx_nTGC_O", &m_msVtx_nTGC_O);
362 
363  // input objects for the vertex reconstruction
364  m_tree->SetBranchAddress("trklet_posX", &m_obj_x);
365  m_tree->SetBranchAddress("trklet_posY", &m_obj_y);
366  m_tree->SetBranchAddress("trklet_posZ", &m_obj_z);
367  m_tree->SetBranchAddress("trklet_phi", &m_obj_phi);
368  m_tree->SetBranchAddress("trklet_theta", &m_obj_theta);
369  m_tree->SetBranchAddress("trklet_eta", &m_obj_eta);
370  m_tree->SetBranchAddress("trklet_vtxLink", &m_obj_vtxLink);
371 
372  return;
373 }

Member Data Documentation

◆ m_c

std::unique_ptr<TCanvas> MSVtxPlotMaker::m_c {nullptr}
private

Definition at line 194 of file MSVtxPlotMaker.h.

◆ m_datapath

std::string MSVtxPlotMaker::m_datapath {}
private

Definition at line 181 of file MSVtxPlotMaker.h.

◆ m_etaphi

TMultiGraph* MSVtxPlotMaker::m_etaphi = new TMultiGraph("etaphi_mg", "etaphi_mg")
private

Definition at line 267 of file MSVtxPlotMaker.h.

◆ m_etaphi_b

TGraph* MSVtxPlotMaker::m_etaphi_b = new TGraph()
private

Definition at line 268 of file MSVtxPlotMaker.h.

◆ m_etaphi_e

TGraph* MSVtxPlotMaker::m_etaphi_e = new TGraph()
private

Definition at line 269 of file MSVtxPlotMaker.h.

◆ m_etaphi_out

TGraph* MSVtxPlotMaker::m_etaphi_out = new TGraph()
private

Definition at line 270 of file MSVtxPlotMaker.h.

◆ m_etaphi_truth

TMultiGraph* MSVtxPlotMaker::m_etaphi_truth = new TMultiGraph("etaphi_mg_truth", "etaphi_mg_truth")
private

Definition at line 245 of file MSVtxPlotMaker.h.

◆ m_etaphi_truth_b

TGraph* MSVtxPlotMaker::m_etaphi_truth_b = new TGraph()
private

Definition at line 246 of file MSVtxPlotMaker.h.

◆ m_etaphi_truth_e

TGraph* MSVtxPlotMaker::m_etaphi_truth_e = new TGraph()
private

Definition at line 247 of file MSVtxPlotMaker.h.

◆ m_etaphi_truth_out

TGraph* MSVtxPlotMaker::m_etaphi_truth_out = new TGraph()
private

Definition at line 248 of file MSVtxPlotMaker.h.

◆ m_h_AngularVtxConsti_b

Definition at line 418 of file MSVtxPlotMaker.h.

◆ m_h_AngularVtxConsti_e

Definition at line 419 of file MSVtxPlotMaker.h.

◆ m_h_chi2_b

TH1* MSVtxPlotMaker::m_h_chi2_b = new TH1D("chi2_b", "chi2_b; Reco vertex #chi^{2}; Vertices / bin", 100, 0, 10)
private

Definition at line 277 of file MSVtxPlotMaker.h.

◆ m_h_chi2_e

TH1* MSVtxPlotMaker::m_h_chi2_e = new TH1D("chi2_e", "chi2_e; Reco vertex #chi^{2}; Vertices / bin", 100, 0, 10)
private

Definition at line 278 of file MSVtxPlotMaker.h.

◆ m_h_chi2nDoF_b

TH1* MSVtxPlotMaker::m_h_chi2nDoF_b = new TH1D("chi2nDoF_b", "chi2nDoF_b; Reco vertex #chi^{2}/n_{DoF}; Vertices / bin", 100, 0, 5)
private

Definition at line 279 of file MSVtxPlotMaker.h.

◆ m_h_chi2nDoF_e

TH1* MSVtxPlotMaker::m_h_chi2nDoF_e = new TH1D("chi2nDoF_e", "chi2nDoF_e; Reco vertex #chi^{2}/n_{DoF}; Vertices / bin", 100, 0, 5)
private

Definition at line 280 of file MSVtxPlotMaker.h.

◆ m_h_chi2prob_b

TH1* MSVtxPlotMaker::m_h_chi2prob_b = new TH1D("chi2_prob_b", "chi2_prob_b; Reco vertex #chi^{2} probability; Vertices / bin", 100, 0, 1)
private

Definition at line 281 of file MSVtxPlotMaker.h.

◆ m_h_chi2prob_e

TH1* MSVtxPlotMaker::m_h_chi2prob_e = new TH1D("chi2_prob_e", "chi2_prob_e; Reco vertex #chi^{2} probability; Vertices / bin", 100, 0, 1)
private

Definition at line 282 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_b

TH1* MSVtxPlotMaker::m_h_delta_Lxy_b = new TH1D("delta_Lxy_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 359 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_e

TH1* MSVtxPlotMaker::m_h_delta_Lxy_e = new TH1D("delta_Lxy_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 360 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_negEta_b

TH1* MSVtxPlotMaker::m_h_delta_Lxy_negEta_b = new TH1D("delta_Lxy_negEta_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 368 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_negEta_e

TH1* MSVtxPlotMaker::m_h_delta_Lxy_negEta_e = new TH1D("delta_Lxy_negEta_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 369 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_posEta_b

TH1* MSVtxPlotMaker::m_h_delta_Lxy_posEta_b = new TH1D("delta_Lxy_posEta_b", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 366 of file MSVtxPlotMaker.h.

◆ m_h_delta_Lxy_posEta_e

TH1* MSVtxPlotMaker::m_h_delta_Lxy_posEta_e = new TH1D("delta_Lxy_posEta_e", "delta_Lxy; L_{xy}^{reco} - L_{xy}^{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 367 of file MSVtxPlotMaker.h.

◆ m_h_delta_phi_b

TH1* MSVtxPlotMaker::m_h_delta_phi_b = new TH1D("delta_phi_b", "delta_phi; #phi_{reco} - #phi_{truth} [rad]; Vertices / 0.02 rad", 50, -0.5, 0.5)
private

Definition at line 357 of file MSVtxPlotMaker.h.

◆ m_h_delta_phi_e

TH1* MSVtxPlotMaker::m_h_delta_phi_e = new TH1D("delta_phi_e", "delta_phi; #phi_{reco} - #phi_{truth} [rad]; Vertices / 0.02 rad", 50, -0.5, 0.5)
private

Definition at line 358 of file MSVtxPlotMaker.h.

◆ m_h_delta_phys_b

TH1* MSVtxPlotMaker::m_h_delta_phys_b = new TH1D("delta_phys_b", "delta_phys; |#bf{r}_{reco} - #bf{r}_{truth}| [cm]; Vertices / 10 cm", 50, 0, 500)
private

Definition at line 363 of file MSVtxPlotMaker.h.

◆ m_h_delta_phys_e

TH1* MSVtxPlotMaker::m_h_delta_phys_e = new TH1D("delta_phys_e", "delta_phys; |#bf{r}_{reco} - #bf{r}_{truth}| [cm]; Vertices / 10 cm", 75, 0, 750)
private

Definition at line 364 of file MSVtxPlotMaker.h.

◆ m_h_delta_R_b

TH1* MSVtxPlotMaker::m_h_delta_R_b = new TH1D("delta_R_b", "delta_R; #Delta R(reco Vtx, truth Vtx); Vertices / bin", 50, 0, 0.5)
private

Definition at line 353 of file MSVtxPlotMaker.h.

◆ m_h_delta_R_e

TH1* MSVtxPlotMaker::m_h_delta_R_e = new TH1D("delta_R_e", "delta_R; #Delta R(reco Vtx, truth Vtx); Vertices / bin", 50, 0, 0.5)
private

Definition at line 354 of file MSVtxPlotMaker.h.

◆ m_h_delta_theta_b

TH1* MSVtxPlotMaker::m_h_delta_theta_b = new TH1D("delta_theta_b", "delta_theta; #theta_{reco} - #theta_{truth} [rad]; Vertices / 0.01 rad", 100, -0.5, 0.5)
private

Definition at line 355 of file MSVtxPlotMaker.h.

◆ m_h_delta_theta_e

TH1* MSVtxPlotMaker::m_h_delta_theta_e = new TH1D("delta_theta_e", "delta_theta; #theta_{reco} - #theta_{truth} [rad]; Vertices / 0.01 rad", 100, -0.5, 0.5)
private

Definition at line 356 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_b

TH1* MSVtxPlotMaker::m_h_delta_z_b = new TH1D("delta_z_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 361 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_e

TH1* MSVtxPlotMaker::m_h_delta_z_e = new TH1D("delta_z_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 362 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_negEta_b

TH1* MSVtxPlotMaker::m_h_delta_z_negEta_b = new TH1D("delta_z_negEta_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 371 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_negEta_e

TH1* MSVtxPlotMaker::m_h_delta_z_negEta_e = new TH1D("delta_z_negEta_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 373 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_posEta_b

TH1* MSVtxPlotMaker::m_h_delta_z_posEta_b = new TH1D("delta_z_posEta_b", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 370 of file MSVtxPlotMaker.h.

◆ m_h_delta_z_posEta_e

TH1* MSVtxPlotMaker::m_h_delta_z_posEta_e = new TH1D("delta_z_posEta_e", "delta_z; z_{reco} - z_{truth} [cm]; Vertices / 10 cm", 100, -500, 500)
private

Definition at line 372 of file MSVtxPlotMaker.h.

◆ m_h_distanceToIP

TH1* MSVtxPlotMaker::m_h_distanceToIP = new TH1D("distanceToIP", "distanceToIP; Reco vertex |#bf{r}| [m]; Vertices / bin", 50, 0, 20)
private

Definition at line 272 of file MSVtxPlotMaker.h.

◆ m_h_distanceToIP_truth

TH1* MSVtxPlotMaker::m_h_distanceToIP_truth = new TH1D("distanceToIP_truth", "distanceToIP_truth; Truth vertex |#bf{r}| [m]; Vertices / bin", 50, 0, 20)
private

Definition at line 250 of file MSVtxPlotMaker.h.

◆ m_h_etaphi

TH2* MSVtxPlotMaker::m_h_etaphi = new TH2D("etaphi", "etaphi; Reco vertex #kern[-1.0]{ #eta}; Reco vertex #kern[-1.0]{ #phi} [rad]", 80, -2.6, 2.6, 40, -TMath::Pi(), TMath::Pi()+1)
private

Definition at line 275 of file MSVtxPlotMaker.h.

◆ m_h_etaphi_truth

TH2* MSVtxPlotMaker::m_h_etaphi_truth = new TH2D("etaphi_truth", "etaphi_truth; Truth vertex #kern[-1.0]{ #eta}; Truth vertex #kern[-1.0]{ #phi} [rad]", 80, -2.6, 2.6, 40, -TMath::Pi(), TMath::Pi()+1)
private

Definition at line 253 of file MSVtxPlotMaker.h.

◆ m_h_Nconsti_b

TH1* MSVtxPlotMaker::m_h_Nconsti_b = new TH1D("Nconstituents_b", "Nconstituents_b; Reco vertex number of constituents; Vertices / bin", 39, 1, 40)
private

Definition at line 284 of file MSVtxPlotMaker.h.

◆ m_h_Nconsti_e

TH1* MSVtxPlotMaker::m_h_Nconsti_e = new TH1D("Nconstituents_e", "Nconstituents_e; Reco vertex number of constituents; Vertices / bin", 39, 1, 40)
private

Definition at line 285 of file MSVtxPlotMaker.h.

◆ m_h_Nhits_MDT_b

Definition at line 423 of file MSVtxPlotMaker.h.

◆ m_h_Nhits_MDT_e

Definition at line 424 of file MSVtxPlotMaker.h.

◆ m_h_Nhits_RPC

Definition at line 425 of file MSVtxPlotMaker.h.

◆ m_h_Nhits_TGC

Definition at line 426 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_b

TH1* MSVtxPlotMaker::m_h_nMDT_b = new TH1D("nMDT_b", "nMDT_b; Number of MDT hits near the reco vertex; Vertices / bin", 100, 0, 4000)
private

Definition at line 301 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_e

TH1* MSVtxPlotMaker::m_h_nMDT_e = new TH1D("nMDT_e", "nMDT_e; Number of MDT hits near the reco vertex; Vertices / bin", 100, 0, 4000)
private

Definition at line 302 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_I_b

TH1* MSVtxPlotMaker::m_h_nMDT_I_b = new TH1D("nMDT_I_b", "nMDT_I_b; Number of inner layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 1000)
private

Definition at line 303 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_I_e

TH1* MSVtxPlotMaker::m_h_nMDT_I_e = new TH1D("nMDT_I_e", "nMDT_I_e; Number of inner layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 1000)
private

Definition at line 304 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_IM_b

TH1* MSVtxPlotMaker::m_h_nMDT_IM_b = new TH1D("nMDT_IM_b", "nMDT_IM_b; Reco vertex inner/middle layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 311 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_IM_e

TH1* MSVtxPlotMaker::m_h_nMDT_IM_e = new TH1D("nMDT_IM_e", "nMDT_IM_e; Reco vertex inner/middle layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 312 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_InwardsTotal_b

TH1* MSVtxPlotMaker::m_h_nMDT_InwardsTotal_b = new TH1D("nMDT_InwardsTotal_b", "nMDT_InwardsTotal_b; fraction of MDT hits inwards of the reco vertex; Vertices / bin", 100, 0, 3)
private

Definition at line 309 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_InwardsTotal_e

TH1* MSVtxPlotMaker::m_h_nMDT_InwardsTotal_e = new TH1D("nMDT_InwardsTotal_e", "nMDT_InwardsTotal_e; fraction of MDT hits inwards of the reco vertex; Vertices / bin", 100, 0, 3)
private

Definition at line 310 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_IO_b

TH1* MSVtxPlotMaker::m_h_nMDT_IO_b = new TH1D("nMDT_IO_b", "nMDT_IO_b; Reco vertex inner/outer layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 313 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_IO_e

TH1* MSVtxPlotMaker::m_h_nMDT_IO_e = new TH1D("nMDT_IO_e", "nMDT_IO_e; Reco vertex inner/outer layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 314 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_M_b

TH1* MSVtxPlotMaker::m_h_nMDT_M_b = new TH1D("nMDT_M_b", "nMDT_M_b; Number of middle layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
private

Definition at line 305 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_M_e

TH1* MSVtxPlotMaker::m_h_nMDT_M_e = new TH1D("nMDT_M_e", "nMDT_M_e; Number of middle layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
private

Definition at line 306 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_MO_b

TH1* MSVtxPlotMaker::m_h_nMDT_MO_b = new TH1D("nMDT_MO_b", "nMDT_MO_b; Reco vertex middle/outer layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 315 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_MO_e

TH1* MSVtxPlotMaker::m_h_nMDT_MO_e = new TH1D("nMDT_MO_e", "nMDT_MO_e; Reco vertex middle/outer layer MDT hits; Vertices / bin", 100, 0, 3)
private

Definition at line 316 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_O_b

TH1* MSVtxPlotMaker::m_h_nMDT_O_b = new TH1D("nMDT_O_b", "nMDT_O_b; Number of outer layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
private

Definition at line 307 of file MSVtxPlotMaker.h.

◆ m_h_nMDT_O_e

TH1* MSVtxPlotMaker::m_h_nMDT_O_e = new TH1D("nMDT_O_e", "nMDT_O_e; Number of outer layer MDT hits near the reco vertex; Vertices / bin", 100, 0, 2500)
private

Definition at line 308 of file MSVtxPlotMaker.h.

◆ m_h_Nobj

TH1* MSVtxPlotMaker::m_h_Nobj = new TH1D("Nobj", "Nobj; Number of objects; Events / bin", 20, 0, 20)
private

Definition at line 338 of file MSVtxPlotMaker.h.

◆ m_h_Nobj_b

TH1* MSVtxPlotMaker::m_h_Nobj_b = new TH1D("Nobj_b", "Nobj_b; Number of objects in the barrel; Events / bin", 20, 0, 20)
private

Definition at line 339 of file MSVtxPlotMaker.h.

◆ m_h_Nobj_e

TH1* MSVtxPlotMaker::m_h_Nobj_e = new TH1D("Nobj_e", "Nobj_e; Number of objects in the endcaps; Events / bin", 20, 0, 20)
private

Definition at line 340 of file MSVtxPlotMaker.h.

◆ m_h_NobjReco

TH1* MSVtxPlotMaker::m_h_NobjReco = new TH1D("objN_reco", "objN_reco; Number of objects used for reconstruction in the barrel; Events / bin", 20, 0, 20)
private

Definition at line 341 of file MSVtxPlotMaker.h.

◆ m_h_NobjReco_b

TH1* MSVtxPlotMaker::m_h_NobjReco_b = new TH1D("objN_reco_b", "objN_reco_b; Number of objects used for reconstruction in the barrel; Events / bin", 20, 0, 20)
private

Definition at line 342 of file MSVtxPlotMaker.h.

◆ m_h_NobjReco_e

TH1* MSVtxPlotMaker::m_h_NobjReco_e = new TH1D("objN_reco_e", "objN_reco_e; Number of objects used for reconstruction in the endcaps; Events / bin", 20, 0, 20)
private

Definition at line 343 of file MSVtxPlotMaker.h.

◆ m_h_nRPC

TH1* MSVtxPlotMaker::m_h_nRPC = new TH1D("nRPC", "nRPC_e; Number of RPC hits near the reco vertex; Vertices / bin", 50, 0, 1500)
private

Definition at line 318 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_I

TH1* MSVtxPlotMaker::m_h_nRPC_I = new TH1D("nRPC_I", "nRPC_I_e; Number of inner layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 500)
private

Definition at line 319 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_IM

TH1* MSVtxPlotMaker::m_h_nRPC_IM = new TH1D("nRPC_IM", "nRPC_IM_e; Reco vertex inner/middle layer RPC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 323 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_InwardsTotal

TH1* MSVtxPlotMaker::m_h_nRPC_InwardsTotal = new TH1D("nRPC_InwardsTotal", "nRPC_InwardsTotal_e; fraction of RPC hits inwards of the reco vertex; Vertices / bin", 50, 0, 1)
private

Definition at line 322 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_IO

TH1* MSVtxPlotMaker::m_h_nRPC_IO = new TH1D("nRPC_IO", "nRPC_IO_e; Reco vertex inner/outer layer RPC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 324 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_M

TH1* MSVtxPlotMaker::m_h_nRPC_M = new TH1D("nRPC_M", "nRPC_M_e; Number of middle layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
private

Definition at line 320 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_MO

TH1* MSVtxPlotMaker::m_h_nRPC_MO = new TH1D("nRPC_MO", "nRPC_MO_e; Reco vertex middle/outer layer RPC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 325 of file MSVtxPlotMaker.h.

◆ m_h_nRPC_O

TH1* MSVtxPlotMaker::m_h_nRPC_O = new TH1D("nRPC_O", "nRPC_O_e; Number of outer layer RPC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
private

Definition at line 321 of file MSVtxPlotMaker.h.

◆ m_h_nTGC

TH1* MSVtxPlotMaker::m_h_nTGC = new TH1D("nTGC", "nTGC_e; Number of TGC hits near the reco vertex; Vertices / bin", 50, 0, 1500)
private

Definition at line 327 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_I

TH1* MSVtxPlotMaker::m_h_nTGC_I = new TH1D("nTGC_I", "nTGC_I_e; Number of inner layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 500)
private

Definition at line 328 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_IM

TH1* MSVtxPlotMaker::m_h_nTGC_IM = new TH1D("nTGC_IM", "nTGC_IM_e; Reco vertex inner/middle layer TGC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 332 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_InwardsTotal

TH1* MSVtxPlotMaker::m_h_nTGC_InwardsTotal = new TH1D("nTGC_InwardsTotal", "nTGC_InwardsTotal_e; fraction of TGC hits inwards of the reco vertex; Vertices / bin", 50, 0, 1)
private

Definition at line 331 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_IO

TH1* MSVtxPlotMaker::m_h_nTGC_IO = new TH1D("nTGC_IO", "nTGC_IO_e; Reco vertex inner/outer layer TGC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 333 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_M

TH1* MSVtxPlotMaker::m_h_nTGC_M = new TH1D("nTGC_M", "nTGC_M_e; Number of middle layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
private

Definition at line 329 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_MO

TH1* MSVtxPlotMaker::m_h_nTGC_MO = new TH1D("nTGC_MO", "nTGC_MO_e; Reco vertex middle/outer layer TGC hits; Vertices / bin", 50, 0, 3)
private

Definition at line 334 of file MSVtxPlotMaker.h.

◆ m_h_nTGC_O

TH1* MSVtxPlotMaker::m_h_nTGC_O = new TH1D("nTGC_O", "nTGC_O_e; Number of outer layer TGC hits near the reco vertex; Vertices / bin", 50, 0, 1000)
private

Definition at line 330 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx

TH1* MSVtxPlotMaker::m_h_Nvtx = new TH1D("Nvtx", "Nvtx; Number of reco vertices in barrel or endcaps; Events / bin", 3, 0, 3)
private

Definition at line 257 of file MSVtxPlotMaker.h.

◆ m_h_NVtx

std::unique_ptr<NVtxTH1> MSVtxPlotMaker::m_h_NVtx = std::make_unique<NVtxTH1>(m_h_Nvtx, m_h_Nvtx_b, m_h_Nvtx_e)
private

Definition at line 408 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx_b

TH1* MSVtxPlotMaker::m_h_Nvtx_b = new TH1D("Nvtx_b", "Nvtx_b; Number of reco vertices in the barrel; Events / bin", 3, 0, 3)
private

Definition at line 258 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx_e

TH1* MSVtxPlotMaker::m_h_Nvtx_e = new TH1D("Nvtx_e", "Nvtx_e; Number of reco vertices in the endcaps; Events / bin", 3, 0, 3)
private

Definition at line 259 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx_truth

TH1* MSVtxPlotMaker::m_h_Nvtx_truth = new TH1D("Nvtx_truth", "Nvtx_truth; Number of truth vertices in the barrel or endcaps; Events / bin", 4, 0, 4)
private

Definition at line 235 of file MSVtxPlotMaker.h.

◆ m_h_NVtx_truth

std::unique_ptr<NVtxTH1> MSVtxPlotMaker::m_h_NVtx_truth = std::make_unique<NVtxTH1>(m_h_Nvtx_truth, m_h_Nvtx_truth_b, m_h_Nvtx_truth_e)
private

Definition at line 407 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx_truth_b

TH1* MSVtxPlotMaker::m_h_Nvtx_truth_b = new TH1D("Nvtx_truth_b", "Nvtx_truth_b; Number of truth vertices in the barrel; Events / bin", 4, 0, 4)
private

Definition at line 236 of file MSVtxPlotMaker.h.

◆ m_h_Nvtx_truth_e

TH1* MSVtxPlotMaker::m_h_Nvtx_truth_e = new TH1D("Nvtx_truth_e", "Nvtx_truth_e; Number of truth vertices in the endcaps; Events / bin", 4, 0, 4)
private

Definition at line 237 of file MSVtxPlotMaker.h.

◆ m_h_obj_eta

TH1* MSVtxPlotMaker::m_h_obj_eta = new TH1D("objEta", "objEta; Object #eta; Objects / bin", 50, -2.7, 2.7)
private

Definition at line 347 of file MSVtxPlotMaker.h.

◆ m_h_obj_phi_b

TH1* MSVtxPlotMaker::m_h_obj_phi_b = new TH1D("objPhi_b", "objPhi_b; Object #kern[-0.05]{#phi in the barrel}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
private

Definition at line 345 of file MSVtxPlotMaker.h.

◆ m_h_obj_phi_e

TH1* MSVtxPlotMaker::m_h_obj_phi_e = new TH1D("objPhi_e", "objPhi_e; Object #kern[-0.05]{#phi in the endcaps}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
private

Definition at line 346 of file MSVtxPlotMaker.h.

◆ m_h_objReco_eta

TH1* MSVtxPlotMaker::m_h_objReco_eta = new TH1D("objEta_reco", "objEta_reco; Object #kern[-0.06]{#eta used for reconstruction}; Objects / bin", 50, -2.7, 2.7)
private

Definition at line 350 of file MSVtxPlotMaker.h.

◆ m_h_objReco_phi_b

TH1* MSVtxPlotMaker::m_h_objReco_phi_b = new TH1D("objPhi_reco_b", "objPhi_reco_b; Object #kern[-0.04]{#phi used for reconstruction in the barrel}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
private

Definition at line 348 of file MSVtxPlotMaker.h.

◆ m_h_objReco_phi_e

TH1* MSVtxPlotMaker::m_h_objReco_phi_e = new TH1D("objPhi_reco_e", "objPhi_reco_e; Object #kern[-0.04]{#phi used for reconstruction in the endcaps}; Objects / bin", 100, -TMath::Pi(), TMath::Pi())
private

Definition at line 349 of file MSVtxPlotMaker.h.

◆ m_h_Reco

std::unique_ptr<EffInputTH1> MSVtxPlotMaker::m_h_Reco = std::make_unique<EffInputTH1>(m_h_Reco_Lxy_b, m_h_Reco_r_b, m_h_Reco_z_e, m_h_Reco_r_e, m_h_Reco_eta)
private

Definition at line 430 of file MSVtxPlotMaker.h.

◆ m_h_Reco_eta

TH1* MSVtxPlotMaker::m_h_Reco_eta = new TH1D("Reco_eta", "reco vertex eta; Reco vertex #eta; Vertices / bin", 30, -3, 3)
private

Definition at line 389 of file MSVtxPlotMaker.h.

◆ m_h_Reco_Lxy_b

TH1* MSVtxPlotMaker::m_h_Reco_Lxy_b = new TH1D("vReco_Lxy_b", "reco vertex b; Reco vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
private

Definition at line 379 of file MSVtxPlotMaker.h.

◆ m_h_Reco_r_b

TH1* MSVtxPlotMaker::m_h_Reco_r_b = new TH1D("Reco_r_b", "reco vertex r; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 394 of file MSVtxPlotMaker.h.

◆ m_h_Reco_r_e

TH1* MSVtxPlotMaker::m_h_Reco_r_e = new TH1D("Reco_r_e", "reco vertex r; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 399 of file MSVtxPlotMaker.h.

◆ m_h_Reco_z_e

TH1* MSVtxPlotMaker::m_h_Reco_z_e = new TH1D("Reco_z_e", "reco vertex z; Reco vertex |z| [m]; Vertices / bin", 40, 0, 16)
private

Definition at line 384 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruth_eta

TH1* MSVtxPlotMaker::m_h_RecoTruth_eta = new TH1D("RecoTruth_eta", "reco vertex matched to truth; Reco vertex #eta; Vertices / bin", 30, -3, 3)
private

Definition at line 390 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruth_Lxy_b

TH1* MSVtxPlotMaker::m_h_RecoTruth_Lxy_b = new TH1D("RecoTruth_Lxy_b", "reco vertex matched to truth in the barrel; Reco vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
private

Definition at line 380 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruth_r_b

TH1* MSVtxPlotMaker::m_h_RecoTruth_r_b = new TH1D("RecoTruth_r_b", "reco vertex matched to truth; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 395 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruth_r_e

TH1* MSVtxPlotMaker::m_h_RecoTruth_r_e = new TH1D("RecoTruth_r_e", "reco vertex matched to truth; Reco vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 400 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruth_z_e

TH1* MSVtxPlotMaker::m_h_RecoTruth_z_e = new TH1D("RecoTruth_z_e", "reco vertex z matched to truth in the endcaps; Reco vertex |z| [m]; Vertices / bin", 40, 0, 16)
private

Definition at line 385 of file MSVtxPlotMaker.h.

◆ m_h_RecoTruthMatched

Definition at line 431 of file MSVtxPlotMaker.h.

◆ m_h_Truth

Definition at line 428 of file MSVtxPlotMaker.h.

◆ m_h_Truth_eta

TH1* MSVtxPlotMaker::m_h_Truth_eta = new TH1D("Truth_eta", "truth vertex eta; Truth vertex #eta; Truth vertices / bin", 30, -3, 3)
private

Definition at line 391 of file MSVtxPlotMaker.h.

◆ m_h_Truth_Lxy_b

TH1* MSVtxPlotMaker::m_h_Truth_Lxy_b = new TH1D("Truth_Lxy_b", "truth vertex b; Truth vertex L_{xy} [m]; Truth vertices / bin", 30, 0, 9)
private

Definition at line 381 of file MSVtxPlotMaker.h.

◆ m_h_Truth_r_b

TH1* MSVtxPlotMaker::m_h_Truth_r_b = new TH1D("Truth_r_b", "truth vertex r; Truth vertex |#bf{r}| [m]; Truth vertices / bin", 60, 0, 18)
private

Definition at line 396 of file MSVtxPlotMaker.h.

◆ m_h_Truth_r_e

TH1* MSVtxPlotMaker::m_h_Truth_r_e = new TH1D("Truth_r_e", "truth vertex r; Truth vertex |#bf{r}| [m]; Truth vertices / bin", 60, 0, 18)
private

Definition at line 401 of file MSVtxPlotMaker.h.

◆ m_h_Truth_z_e

TH1* MSVtxPlotMaker::m_h_Truth_z_e = new TH1D("Truth_z_e", "truth vertex z; Truth vertex |z| [m]; Truth vertices / bin", 40, 0, 16)
private

Definition at line 386 of file MSVtxPlotMaker.h.

◆ m_h_TruthReco_eta

TH1* MSVtxPlotMaker::m_h_TruthReco_eta = new TH1D("TruthReco_eta", "truth vertex matched to reco; Truth vertex #eta; Vertices / bin", 30, -3, 3)
private

Definition at line 392 of file MSVtxPlotMaker.h.

◆ m_h_TruthReco_Lxy_b

TH1* MSVtxPlotMaker::m_h_TruthReco_Lxy_b = new TH1D("TruthReco_Lxy_b", "truth vertex matched to reco in the barrel; Truth vertex L_{xy} [m]; Vertices / bin", 30, 0, 9)
private

Definition at line 382 of file MSVtxPlotMaker.h.

◆ m_h_TruthReco_r_b

TH1* MSVtxPlotMaker::m_h_TruthReco_r_b = new TH1D("TruthReco_r_b", "truth vertex matched to reco; Truth vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 397 of file MSVtxPlotMaker.h.

◆ m_h_TruthReco_r_e

TH1* MSVtxPlotMaker::m_h_TruthReco_r_e = new TH1D("TruthReco_r_e", "truth vertex matched to reco; Truth vertex |#bf{r}| [m]; Vertices / bin", 60, 0, 18)
private

Definition at line 402 of file MSVtxPlotMaker.h.

◆ m_h_TruthReco_z_e

TH1* MSVtxPlotMaker::m_h_TruthReco_z_e = new TH1D("TruthReco_z_e", "truth vertex z matched to reco in the endcaps; Truth vertex |z| [m]; Vertices / bin", 40, 0, 16)
private

Definition at line 387 of file MSVtxPlotMaker.h.

◆ m_h_TruthRecoMatched

Definition at line 429 of file MSVtxPlotMaker.h.

◆ m_h_VtxChi2_b

std::unique_ptr<Chi2TH1> MSVtxPlotMaker::m_h_VtxChi2_b = std::make_unique<Chi2TH1>(m_h_chi2_b, m_h_chi2nDoF_b, m_h_chi2prob_b)
private

Definition at line 415 of file MSVtxPlotMaker.h.

◆ m_h_VtxChi2_e

std::unique_ptr<Chi2TH1> MSVtxPlotMaker::m_h_VtxChi2_e = std::make_unique<Chi2TH1>(m_h_chi2_e, m_h_chi2nDoF_e, m_h_chi2prob_e)
private

Definition at line 416 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_detamax_b

TH1* MSVtxPlotMaker::m_h_VtxConsti_detamax_b = new TH1D("VtxConsti_detamax_b", "VtxConsti_detamax_b; max #kern[-0.3]{#Delta } #kern[-0.3]{ #eta (reco vtx, constituent)}; Vertices / bin", 50, -1.0, 1.0)
private

Definition at line 290 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_detamax_e

TH1* MSVtxPlotMaker::m_h_VtxConsti_detamax_e = new TH1D("VtxConsti_detamax_e", "VtxConsti_detamax_e; max #kern[-0.3]{#Delta } #kern[-0.3]{ #eta (reco vtx, constituent)}; Vertices / bin", 50, -1.0, 1.0)
private

Definition at line 294 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dphimax_b

TH1* MSVtxPlotMaker::m_h_VtxConsti_dphimax_b = new TH1D("VtxConsti_dphimax_b", "VtxConsti_dphimax_b; max #kern[-0.3]{#Delta } #kern[-0.3]{ #phi (reco vtx, constituent)}; Vertices / bin", 50, -2.5, 2.5)
private

Definition at line 289 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dphimax_e

TH1* MSVtxPlotMaker::m_h_VtxConsti_dphimax_e = new TH1D("VtxConsti_dphimax_e", "VtxConsti_dphimax_e; max #kern[-0.3]{#Delta } #kern[-0.3]{ #phi (reco vtx, constituent)}; Vertices / bin", 50, -2.5, 2.5)
private

Definition at line 293 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dR_b

TH1* MSVtxPlotMaker::m_h_VtxConsti_dR_b = new TH1D("VtxConsti_dR_b", "VtxConsti_dR_b; #Delta R(reco vtx, constituent); Number of vertex-constituent pairs / bin", 100, 0, 3)
private

Definition at line 287 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dR_e

TH1* MSVtxPlotMaker::m_h_VtxConsti_dR_e = new TH1D("VtxConsti_dR_e", "VtxConsti_dR_e; #Delta R(reco vtx, constituent); Number of vertex-constituent pairs / bin", 100, 0, 3)
private

Definition at line 291 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dRmax_b

TH1* MSVtxPlotMaker::m_h_VtxConsti_dRmax_b = new TH1D("VtxConsti_dRmax_b", "VtxConsti_dRmax_b; max #kern[-0.3]{#Delta } #kern[-0.2]{ R(reco vtx, constituent)}; Vertices / bin", 50, 0, 3)
private

Definition at line 288 of file MSVtxPlotMaker.h.

◆ m_h_VtxConsti_dRmax_e

TH1* MSVtxPlotMaker::m_h_VtxConsti_dRmax_e = new TH1D("VtxConsti_dRmax_e", "VtxConsti_dRmax_e; max #kern[-0.3]{#Delta } #kern[-0.2]{ R(reco vtx, constituent)}; Vertices / bin", 50, 0, 3)
private

Definition at line 292 of file MSVtxPlotMaker.h.

◆ m_h_VtxPos

std::unique_ptr<VtxPosTGraph> MSVtxPlotMaker::m_h_VtxPos = std::make_unique<VtxPosTGraph>(m_zLxy_b, m_etaphi_b, m_zLxy_e, m_etaphi_e, m_zLxy_out, m_etaphi_out)
private

Definition at line 410 of file MSVtxPlotMaker.h.

◆ m_h_VtxPos_truth

Definition at line 411 of file MSVtxPlotMaker.h.

◆ m_h_VtxPosHists

std::unique_ptr<VtxPosTH> MSVtxPlotMaker::m_h_VtxPosHists = std::make_unique<VtxPosTH>(m_h_zLxy, m_h_etaphi, m_h_distanceToIP)
private

Definition at line 412 of file MSVtxPlotMaker.h.

◆ m_h_VtxPosHists_truth

std::unique_ptr<VtxPosTH> MSVtxPlotMaker::m_h_VtxPosHists_truth = std::make_unique<VtxPosTH>(m_h_zLxy_truth, m_h_etaphi_truth, m_h_distanceToIP_truth)
private

Definition at line 413 of file MSVtxPlotMaker.h.

◆ m_h_VtxResiduals_b

Definition at line 421 of file MSVtxPlotMaker.h.

◆ m_h_VtxResiduals_e

Definition at line 422 of file MSVtxPlotMaker.h.

◆ m_h_zLxy

TH2* MSVtxPlotMaker::m_h_zLxy = new TH2D("zLxy", "zLxy; Reco vertex z [m]; Reco vertex L_{xy} [m]", 128, -16, 16, 52, -1, 12)
private

Definition at line 274 of file MSVtxPlotMaker.h.

◆ m_h_zLxy_truth

TH2* MSVtxPlotMaker::m_h_zLxy_truth = new TH2D("zLxy_truth", "zLxy_truth; Truth vertex z [m]; Truth vertex L_{xy} [m]", 128, -16, 16, 52, -1, 12)
private

Definition at line 252 of file MSVtxPlotMaker.h.

◆ m_input_file

std::unique_ptr<TFile> MSVtxPlotMaker::m_input_file {nullptr}
private

Definition at line 192 of file MSVtxPlotMaker.h.

◆ m_msVtx_chi2

std::vector<double>* MSVtxPlotMaker::m_msVtx_chi2 {nullptr}
private

Definition at line 201 of file MSVtxPlotMaker.h.

◆ m_msVtx_nMDT

std::vector<int>* MSVtxPlotMaker::m_msVtx_nMDT {nullptr}
private

Definition at line 206 of file MSVtxPlotMaker.h.

◆ m_msVtx_nMDT_I

std::vector<int>* MSVtxPlotMaker::m_msVtx_nMDT_I {nullptr}
private

Definition at line 208 of file MSVtxPlotMaker.h.

◆ m_msVtx_nMDT_inwards

std::vector<int>* MSVtxPlotMaker::m_msVtx_nMDT_inwards {nullptr}
private

Definition at line 207 of file MSVtxPlotMaker.h.

◆ m_msVtx_nMDT_M

std::vector<int>* MSVtxPlotMaker::m_msVtx_nMDT_M {nullptr}
private

Definition at line 209 of file MSVtxPlotMaker.h.

◆ m_msVtx_nMDT_O

std::vector<int>* MSVtxPlotMaker::m_msVtx_nMDT_O {nullptr}
private

Definition at line 210 of file MSVtxPlotMaker.h.

◆ m_msVtx_nRPC

std::vector<int>* MSVtxPlotMaker::m_msVtx_nRPC {nullptr}
private

Definition at line 211 of file MSVtxPlotMaker.h.

◆ m_msVtx_nRPC_I

std::vector<int>* MSVtxPlotMaker::m_msVtx_nRPC_I {nullptr}
private

Definition at line 213 of file MSVtxPlotMaker.h.

◆ m_msVtx_nRPC_inwards

std::vector<int>* MSVtxPlotMaker::m_msVtx_nRPC_inwards {nullptr}
private

Definition at line 212 of file MSVtxPlotMaker.h.

◆ m_msVtx_nRPC_M

std::vector<int>* MSVtxPlotMaker::m_msVtx_nRPC_M {nullptr}
private

Definition at line 214 of file MSVtxPlotMaker.h.

◆ m_msVtx_nRPC_O

std::vector<int>* MSVtxPlotMaker::m_msVtx_nRPC_O {nullptr}
private

Definition at line 215 of file MSVtxPlotMaker.h.

◆ m_msVtx_nTGC

std::vector<int>* MSVtxPlotMaker::m_msVtx_nTGC {nullptr}
private

Definition at line 216 of file MSVtxPlotMaker.h.

◆ m_msVtx_nTGC_I

std::vector<int>* MSVtxPlotMaker::m_msVtx_nTGC_I {nullptr}
private

Definition at line 218 of file MSVtxPlotMaker.h.

◆ m_msVtx_nTGC_inwards

std::vector<int>* MSVtxPlotMaker::m_msVtx_nTGC_inwards {nullptr}
private

Definition at line 217 of file MSVtxPlotMaker.h.

◆ m_msVtx_nTGC_M

std::vector<int>* MSVtxPlotMaker::m_msVtx_nTGC_M {nullptr}
private

Definition at line 219 of file MSVtxPlotMaker.h.

◆ m_msVtx_nTGC_O

std::vector<int>* MSVtxPlotMaker::m_msVtx_nTGC_O {nullptr}
private

Definition at line 220 of file MSVtxPlotMaker.h.

◆ m_msVtx_Ntrklet

std::vector<int>* MSVtxPlotMaker::m_msVtx_Ntrklet {nullptr}
private

Definition at line 202 of file MSVtxPlotMaker.h.

◆ m_msVtx_x

std::vector<double>* MSVtxPlotMaker::m_msVtx_x {nullptr}
private

Definition at line 203 of file MSVtxPlotMaker.h.

◆ m_msVtx_y

std::vector<double>* MSVtxPlotMaker::m_msVtx_y {nullptr}
private

Definition at line 204 of file MSVtxPlotMaker.h.

◆ m_msVtx_z

std::vector<double>* MSVtxPlotMaker::m_msVtx_z {nullptr}
private

Definition at line 205 of file MSVtxPlotMaker.h.

◆ m_obj_eta

std::vector<double>* MSVtxPlotMaker::m_obj_eta {nullptr}
private

Definition at line 227 of file MSVtxPlotMaker.h.

◆ m_obj_phi

std::vector<double>* MSVtxPlotMaker::m_obj_phi {nullptr}
private

Definition at line 225 of file MSVtxPlotMaker.h.

◆ m_obj_theta

std::vector<double>* MSVtxPlotMaker::m_obj_theta {nullptr}
private

Definition at line 226 of file MSVtxPlotMaker.h.

◆ m_obj_vtxLink

std::vector<int>* MSVtxPlotMaker::m_obj_vtxLink {nullptr}
private

Definition at line 228 of file MSVtxPlotMaker.h.

◆ m_obj_x

std::vector<double>* MSVtxPlotMaker::m_obj_x {nullptr}
private

Definition at line 222 of file MSVtxPlotMaker.h.

◆ m_obj_y

std::vector<double>* MSVtxPlotMaker::m_obj_y {nullptr}
private

Definition at line 223 of file MSVtxPlotMaker.h.

◆ m_obj_z

std::vector<double>* MSVtxPlotMaker::m_obj_z {nullptr}
private

Definition at line 224 of file MSVtxPlotMaker.h.

◆ m_output_file

std::unique_ptr<TFile> MSVtxPlotMaker::m_output_file {nullptr}
private

Definition at line 193 of file MSVtxPlotMaker.h.

◆ m_plotdir

TString MSVtxPlotMaker::m_plotdir {}
private

Definition at line 183 of file MSVtxPlotMaker.h.

◆ m_plotdir_inputObjects

TString MSVtxPlotMaker::m_plotdir_inputObjects {}
private

Definition at line 188 of file MSVtxPlotMaker.h.

◆ m_plotdir_recoVtx

TString MSVtxPlotMaker::m_plotdir_recoVtx {}
private

Definition at line 185 of file MSVtxPlotMaker.h.

◆ m_plotdir_recoVtxHits

TString MSVtxPlotMaker::m_plotdir_recoVtxHits {}
private

Definition at line 186 of file MSVtxPlotMaker.h.

◆ m_plotdir_truthVtx

TString MSVtxPlotMaker::m_plotdir_truthVtx {}
private

Definition at line 184 of file MSVtxPlotMaker.h.

◆ m_plotdir_vtxEfficiency

TString MSVtxPlotMaker::m_plotdir_vtxEfficiency {}
private

Definition at line 189 of file MSVtxPlotMaker.h.

◆ m_plotdir_vtxFakeRate

TString MSVtxPlotMaker::m_plotdir_vtxFakeRate {}
private

Definition at line 190 of file MSVtxPlotMaker.h.

◆ m_plotdir_vtxResiduals

TString MSVtxPlotMaker::m_plotdir_vtxResiduals {}
private

Definition at line 187 of file MSVtxPlotMaker.h.

◆ m_tree

TTree* MSVtxPlotMaker::m_tree {nullptr}
private

Definition at line 191 of file MSVtxPlotMaker.h.

◆ m_treename

std::string MSVtxPlotMaker::m_treename {}
private

Definition at line 182 of file MSVtxPlotMaker.h.

◆ m_truthVtx_x

std::vector<double>* MSVtxPlotMaker::m_truthVtx_x {nullptr}
private

Definition at line 197 of file MSVtxPlotMaker.h.

◆ m_truthVtx_y

std::vector<double>* MSVtxPlotMaker::m_truthVtx_y {nullptr}
private

Definition at line 198 of file MSVtxPlotMaker.h.

◆ m_truthVtx_z

std::vector<double>* MSVtxPlotMaker::m_truthVtx_z {nullptr}
private

Definition at line 199 of file MSVtxPlotMaker.h.

◆ m_zLxy

TMultiGraph* MSVtxPlotMaker::m_zLxy = new TMultiGraph("zLxy_mg", "zLxy_mg")
private

Definition at line 262 of file MSVtxPlotMaker.h.

◆ m_zLxy_b

TGraph* MSVtxPlotMaker::m_zLxy_b = new TGraph()
private

Definition at line 263 of file MSVtxPlotMaker.h.

◆ m_zLxy_e

TGraph* MSVtxPlotMaker::m_zLxy_e = new TGraph()
private

Definition at line 264 of file MSVtxPlotMaker.h.

◆ m_zLxy_out

TGraph* MSVtxPlotMaker::m_zLxy_out = new TGraph()
private

Definition at line 265 of file MSVtxPlotMaker.h.

◆ m_zLxy_truth

TMultiGraph* MSVtxPlotMaker::m_zLxy_truth = new TMultiGraph("zLxy_mg_truth", "zLxy_mg_truth")
private

Definition at line 240 of file MSVtxPlotMaker.h.

◆ m_zLxy_truth_b

TGraph* MSVtxPlotMaker::m_zLxy_truth_b = new TGraph()
private

Definition at line 241 of file MSVtxPlotMaker.h.

◆ m_zLxy_truth_e

TGraph* MSVtxPlotMaker::m_zLxy_truth_e = new TGraph()
private

Definition at line 242 of file MSVtxPlotMaker.h.

◆ m_zLxy_truth_out

TGraph* MSVtxPlotMaker::m_zLxy_truth_out = new TGraph()
private

Definition at line 243 of file MSVtxPlotMaker.h.


The documentation for this class was generated from the following files:
MSVtxPlotMaker::m_h_TruthReco_Lxy_b
TH1 * m_h_TruthReco_Lxy_b
Definition: MSVtxPlotMaker.h:382
MSVtxPlotMaker::m_h_nTGC_IO
TH1 * m_h_nTGC_IO
Definition: MSVtxPlotMaker.h:333
MSVtxPlotMaker::fillEfficiency_NumeratorDenominatorHists
void fillEfficiency_NumeratorDenominatorHists(const std::vector< Amg::Vector3D > &vertices, const std::vector< Amg::Vector3D > &match_candidates, std::unique_ptr< EffInputTH1 > &denomHists, std::unique_ptr< EffInputTH1 > &numHists)
Definition: MSVtxPlotMaker.cxx:512
MSVtxPlotMaker::m_h_VtxConsti_dRmax_b
TH1 * m_h_VtxConsti_dRmax_b
Definition: MSVtxPlotMaker.h:288
MSVtxPlotMaker::m_h_delta_z_b
TH1 * m_h_delta_z_b
Definition: MSVtxPlotMaker.h:361
MSVtxPlotMaker::fillTruthVtxPlots
void fillTruthVtxPlots(const std::vector< Amg::Vector3D > &truth_vertices)
Definition: MSVtxPlotMaker.cxx:407
MSVtxPlotMaker::m_h_obj_eta
TH1 * m_h_obj_eta
Definition: MSVtxPlotMaker.h:347
MSVtxPlotMaker::m_etaphi_b
TGraph * m_etaphi_b
Definition: MSVtxPlotMaker.h:268
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
MSVtxPlotMaker::m_h_NobjReco
TH1 * m_h_NobjReco
Definition: MSVtxPlotMaker.h:341
MSVtxPlotMaker::m_h_chi2_b
TH1 * m_h_chi2_b
Definition: MSVtxPlotMaker.h:277
MSVtxPlotMaker::m_h_nMDT_MO_b
TH1 * m_h_nMDT_MO_b
Definition: MSVtxPlotMaker.h:315
MSVtxPlotMaker::m_h_Truth_r_b
TH1 * m_h_Truth_r_b
Definition: MSVtxPlotMaker.h:396
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
MSVtxPlotMaker::m_h_VtxConsti_dphimax_e
TH1 * m_h_VtxConsti_dphimax_e
Definition: MSVtxPlotMaker.h:293
MSVtxPlotMaker::m_h_Reco_r_e
TH1 * m_h_Reco_r_e
Definition: MSVtxPlotMaker.h:399
MuonVertexValidationMacroPlotAnnotations::getMaxy
double getMaxy(const TGraphAsymmErrors *graph, double current_max)
Definition: PlotAnnotations.cxx:103
MSVtxPlotMaker::fillAngularVtxConstiHists
void fillAngularVtxConstiHists(const Amg::Vector3D &vtx, const std::vector< Amg::Vector3D > &consti, std::unique_ptr< AngularVtxConstiTH1 > &hists)
Definition: MSVtxPlotMaker.cxx:587
MSVtxPlotMaker::m_h_Nhits_MDT_b
std::unique_ptr< NHitsTH1 > m_h_Nhits_MDT_b
Definition: MSVtxPlotMaker.h:423
MSVtxPlotMaker::m_truthVtx_x
std::vector< double > * m_truthVtx_x
Definition: MSVtxPlotMaker.h:197
MSVtxPlotMaker::m_h_Nobj
TH1 * m_h_Nobj
Definition: MSVtxPlotMaker.h:338
MSVtxPlotMaker::m_h_nRPC
TH1 * m_h_nRPC
Definition: MSVtxPlotMaker.h:318
MSVtxPlotMaker::m_msVtx_nMDT_M
std::vector< int > * m_msVtx_nMDT_M
Definition: MSVtxPlotMaker.h:209
MSVtxPlotMaker::m_h_delta_z_negEta_e
TH1 * m_h_delta_z_negEta_e
Definition: MSVtxPlotMaker.h:373
MSVtxPlotMaker::m_truthVtx_z
std::vector< double > * m_truthVtx_z
Definition: MSVtxPlotMaker.h:199
MSVtxPlotMaker::m_h_delta_Lxy_posEta_b
TH1 * m_h_delta_Lxy_posEta_b
Definition: MSVtxPlotMaker.h:366
MSVtxPlotMaker::m_h_delta_R_b
TH1 * m_h_delta_R_b
Definition: MSVtxPlotMaker.h:353
MSVtxPlotMaker::m_h_nMDT_IM_e
TH1 * m_h_nMDT_IM_e
Definition: MSVtxPlotMaker.h:312
MSVtxPlotMaker::m_h_Nhits_TGC
std::unique_ptr< NHitsTH1 > m_h_Nhits_TGC
Definition: MSVtxPlotMaker.h:426
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
graphs
Definition: graphs.py:1
MSVtxPlotMaker::m_h_nMDT_IO_e
TH1 * m_h_nMDT_IO_e
Definition: MSVtxPlotMaker.h:314
MSVtxPlotMaker::m_h_TruthReco_r_e
TH1 * m_h_TruthReco_r_e
Definition: MSVtxPlotMaker.h:402
Data
@ Data
Definition: BaseObject.h:11
Amg::deltaPhi
double deltaPhi(const Amg::Vector3D &v1, const Amg::Vector3D &v2)
Definition: GeoPrimitivesHelpers.h:113
MSVtxPlotMaker::m_h_nMDT_IM_b
TH1 * m_h_nMDT_IM_b
Definition: MSVtxPlotMaker.h:311
MSVtxPlotMaker::m_h_VtxConsti_dphimax_b
TH1 * m_h_VtxConsti_dphimax_b
Definition: MSVtxPlotMaker.h:289
MSVtxPlotMaker::saveTH1
void saveTH1(TH1 *h, TString plotpath, const char *dectectorLabel="", const char *new_ylabel=nullptr, bool norm=false, bool logy=false)
Definition: MSVtxPlotMaker.cxx:731
MuonVertexValidationMacroUtils::getNvtxDetectorRegion
int getNvtxDetectorRegion(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:49
MSVtxPlotMaker::m_zLxy_truth_e
TGraph * m_zLxy_truth_e
Definition: MSVtxPlotMaker.h:242
StateLessPT_NewConfig.Format
Format
Definition: StateLessPT_NewConfig.py:146
MSVtxPlotMaker::m_h_AngularVtxConsti_e
std::unique_ptr< AngularVtxConstiTH1 > m_h_AngularVtxConsti_e
Definition: MSVtxPlotMaker.h:419
MSVtxPlotMaker::m_h_Truth
std::unique_ptr< EffInputTH1 > m_h_Truth
Definition: MSVtxPlotMaker.h:428
MSVtxPlotMaker::m_h_delta_phys_e
TH1 * m_h_delta_phys_e
Definition: MSVtxPlotMaker.h:364
MuonVertexValidationMacroUtils::fidVol_endcaps_etaCut_low
constexpr double fidVol_endcaps_etaCut_low
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:22
MSVtxPlotMaker::m_msVtx_nRPC_O
std::vector< int > * m_msVtx_nRPC_O
Definition: MSVtxPlotMaker.h:215
MuonVertexValidationMacroUtils::getVertexPos
std::vector< Amg::Vector3D > getVertexPos(const std::vector< double > &vtx_x, const std::vector< double > &vtx_y, const std::vector< double > &vtx_z)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:131
MSVtxPlotMaker::m_h_Nvtx_b
TH1 * m_h_Nvtx_b
Definition: MSVtxPlotMaker.h:258
MSVtxPlotMaker::m_zLxy_e
TGraph * m_zLxy_e
Definition: MSVtxPlotMaker.h:264
MSVtxPlotMaker::m_h_delta_z_posEta_e
TH1 * m_h_delta_z_posEta_e
Definition: MSVtxPlotMaker.h:372
MSVtxPlotMaker::m_etaphi_out
TGraph * m_etaphi_out
Definition: MSVtxPlotMaker.h:270
MuonVertexValidationMacroUtils::isGoodVtx
bool isGoodVtx(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:84
MuonVertexValidationMacroUtils::getConstituentPos
std::vector< std::vector< Amg::Vector3D > > getConstituentPos(int Nvtx, const std::vector< int > &obj_vtx_link, const std::vector< double > &obj_x, const std::vector< double > &obj_y, const std::vector< double > &obj_z)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:142
MSVtxPlotMaker::m_input_file
std::unique_ptr< TFile > m_input_file
Definition: MSVtxPlotMaker.h:192
xAOD::P4Helpers::deltaPhi
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
Definition: xAODP4Helpers.h:69
MSVtxPlotMaker::fillChi2Hists
void fillChi2Hists(double chi2, double NDoF, std::unique_ptr< Chi2TH1 > &hists)
Definition: MSVtxPlotMaker.cxx:577
MSVtxPlotMaker::fillTruthComparisonHists
void fillTruthComparisonHists(const std::vector< Amg::Vector3D > &reco_vertices, const std::vector< Amg::Vector3D > &truth_vertices)
Definition: MSVtxPlotMaker.cxx:490
MSVtxPlotMaker::m_plotdir_inputObjects
TString m_plotdir_inputObjects
Definition: MSVtxPlotMaker.h:188
MSVtxPlotMaker::m_h_nTGC_M
TH1 * m_h_nTGC_M
Definition: MSVtxPlotMaker.h:329
MuonVertexValidationMacroPlotAnnotations::drawATLASlabel
void drawATLASlabel(const char *text, double x, double y, double textsize)
Definition: PlotAnnotations.cxx:23
MSVtxPlotMaker::m_h_nRPC_IM
TH1 * m_h_nRPC_IM
Definition: MSVtxPlotMaker.h:323
MSVtxPlotMaker::m_h_RecoTruth_z_e
TH1 * m_h_RecoTruth_z_e
Definition: MSVtxPlotMaker.h:385
MSVtxPlotMaker::m_h_Nhits_RPC
std::unique_ptr< NHitsTH1 > m_h_Nhits_RPC
Definition: MSVtxPlotMaker.h:425
MSVtxPlotMaker::m_msVtx_x
std::vector< double > * m_msVtx_x
Definition: MSVtxPlotMaker.h:203
MSVtxPlotMaker::m_msVtx_nTGC_O
std::vector< int > * m_msVtx_nTGC_O
Definition: MSVtxPlotMaker.h:220
MSVtxPlotMaker::m_h_nMDT_MO_e
TH1 * m_h_nMDT_MO_e
Definition: MSVtxPlotMaker.h:316
MSVtxPlotMaker::m_msVtx_nTGC
std::vector< int > * m_msVtx_nTGC
Definition: MSVtxPlotMaker.h:216
MSVtxPlotMaker::m_h_Nvtx_truth_e
TH1 * m_h_Nvtx_truth_e
Definition: MSVtxPlotMaker.h:237
MSVtxPlotMaker::m_obj_theta
std::vector< double > * m_obj_theta
Definition: MSVtxPlotMaker.h:226
MSVtxPlotMaker::m_msVtx_nMDT_I
std::vector< int > * m_msVtx_nMDT_I
Definition: MSVtxPlotMaker.h:208
MSVtxPlotMaker::m_h_nMDT_M_b
TH1 * m_h_nMDT_M_b
Definition: MSVtxPlotMaker.h:305
MSVtxPlotMaker::m_h_chi2_e
TH1 * m_h_chi2_e
Definition: MSVtxPlotMaker.h:278
MSVtxPlotMaker::m_obj_phi
std::vector< double > * m_obj_phi
Definition: MSVtxPlotMaker.h:225
MSVtxPlotMaker::saveTEfficiency
void saveTEfficiency(TH1 *h_num, TH1 *h_denom, const TString &title, const TString &plotpath)
Definition: MSVtxPlotMaker.cxx:803
read_hist_ntuple.h1
h1
Definition: read_hist_ntuple.py:21
MSVtxPlotMaker::m_h_nMDT_e
TH1 * m_h_nMDT_e
Definition: MSVtxPlotMaker.h:302
MSVtxPlotMaker::m_zLxy
TMultiGraph * m_zLxy
Definition: MSVtxPlotMaker.h:262
MSVtxPlotMaker::m_h_Nvtx
TH1 * m_h_Nvtx
Definition: MSVtxPlotMaker.h:257
MSVtxPlotMaker::m_h_delta_Lxy_posEta_e
TH1 * m_h_delta_Lxy_posEta_e
Definition: MSVtxPlotMaker.h:367
MSVtxPlotMaker::fillVtxNhitsHists
void fillVtxNhitsHists(double total, double inwards, double inner, double middle, double outer, std::unique_ptr< NHitsTH1 > &hists)
Definition: MSVtxPlotMaker.cxx:613
MSVtxPlotMaker::m_h_RecoTruth_eta
TH1 * m_h_RecoTruth_eta
Definition: MSVtxPlotMaker.h:390
MSVtxPlotMaker::m_h_nTGC_MO
TH1 * m_h_nTGC_MO
Definition: MSVtxPlotMaker.h:334
MSVtxPlotMaker::m_zLxy_out
TGraph * m_zLxy_out
Definition: MSVtxPlotMaker.h:265
MSVtxPlotMaker::formatPlots
void formatPlots()
Definition: MSVtxPlotMaker.cxx:77
MSVtxPlotMaker::m_h_nRPC_InwardsTotal
TH1 * m_h_nRPC_InwardsTotal
Definition: MSVtxPlotMaker.h:322
MSVtxPlotMaker::m_h_chi2prob_b
TH1 * m_h_chi2prob_b
Definition: MSVtxPlotMaker.h:281
MuonVertexValidationMacroUtils::fidVol_endcaps_etaCut_up
constexpr double fidVol_endcaps_etaCut_up
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:23
MSVtxPlotMaker::m_h_delta_phi_b
TH1 * m_h_delta_phi_b
Definition: MSVtxPlotMaker.h:357
MSVtxPlotMaker::m_h_nMDT_I_e
TH1 * m_h_nMDT_I_e
Definition: MSVtxPlotMaker.h:304
MSVtxPlotMaker::m_h_Reco
std::unique_ptr< EffInputTH1 > m_h_Reco
Definition: MSVtxPlotMaker.h:430
logy
bool logy
Definition: listroot.cxx:45
MSVtxPlotMaker::m_h_delta_Lxy_negEta_b
TH1 * m_h_delta_Lxy_negEta_b
Definition: MSVtxPlotMaker.h:368
MSVtxPlotMaker::saveTHStack
void saveTHStack(TH1 *h1, TH1 *h2, const TString &h1_legend, const TString &h2_legend, const TString &title, const TString &plotpath, int color1=2, int color2=1)
Definition: MSVtxPlotMaker.cxx:769
MSVtxPlotMaker::m_h_nRPC_MO
TH1 * m_h_nRPC_MO
Definition: MSVtxPlotMaker.h:325
MSVtxPlotMaker::m_plotdir_recoVtxHits
TString m_plotdir_recoVtxHits
Definition: MSVtxPlotMaker.h:186
MSVtxPlotMaker::m_plotdir
TString m_plotdir
Definition: MSVtxPlotMaker.h:183
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
MSVtxPlotMaker::m_h_VtxConsti_dR_e
TH1 * m_h_VtxConsti_dR_e
Definition: MSVtxPlotMaker.h:291
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
MSVtxPlotMaker::m_h_TruthRecoMatched
std::unique_ptr< EffInputTH1 > m_h_TruthRecoMatched
Definition: MSVtxPlotMaker.h:429
MSVtxPlotMaker::m_tree
TTree * m_tree
Definition: MSVtxPlotMaker.h:191
MSVtxPlotMaker::m_msVtx_nMDT_inwards
std::vector< int > * m_msVtx_nMDT_inwards
Definition: MSVtxPlotMaker.h:207
MSVtxPlotMaker::m_h_chi2nDoF_b
TH1 * m_h_chi2nDoF_b
Definition: MSVtxPlotMaker.h:279
MSVtxPlotMaker::m_h_delta_phys_b
TH1 * m_h_delta_phys_b
Definition: MSVtxPlotMaker.h:363
MSVtxPlotMaker::m_h_chi2nDoF_e
TH1 * m_h_chi2nDoF_e
Definition: MSVtxPlotMaker.h:280
MSVtxPlotMaker::m_h_delta_Lxy_e
TH1 * m_h_delta_Lxy_e
Definition: MSVtxPlotMaker.h:360
MSVtxPlotMaker::m_h_Reco_eta
TH1 * m_h_Reco_eta
Definition: MSVtxPlotMaker.h:389
MSVtxPlotMaker::m_h_nMDT_O_e
TH1 * m_h_nMDT_O_e
Definition: MSVtxPlotMaker.h:308
MSVtxPlotMaker::m_h_Reco_r_b
TH1 * m_h_Reco_r_b
Definition: MSVtxPlotMaker.h:394
MSVtxPlotMaker::m_h_nRPC_IO
TH1 * m_h_nRPC_IO
Definition: MSVtxPlotMaker.h:324
MuonVertexValidationMacroPlotAnnotations::drawDetectorRegionLabel
void drawDetectorRegionLabel(const char *name, const char *customlabel, double x, double y, double textsize)
Definition: PlotAnnotations.cxx:35
MSVtxPlotMaker::m_zLxy_truth
TMultiGraph * m_zLxy_truth
Definition: MSVtxPlotMaker.h:240
MSVtxPlotMaker::m_zLxy_truth_b
TGraph * m_zLxy_truth_b
Definition: MSVtxPlotMaker.h:241
MSVtxPlotMaker::m_etaphi_truth_out
TGraph * m_etaphi_truth_out
Definition: MSVtxPlotMaker.h:248
lumiFormat.i
int i
Definition: lumiFormat.py:85
MSVtxPlotMaker::m_h_RecoTruth_r_b
TH1 * m_h_RecoTruth_r_b
Definition: MSVtxPlotMaker.h:395
xAOD::P4Helpers::deltaR
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
Definition: xAODP4Helpers.h:150
python.html.AtlRunQueryDQSummary.datapath
datapath
Definition: AtlRunQueryDQSummary.py:1205
MSVtxPlotMaker::m_h_Nconsti_b
TH1 * m_h_Nconsti_b
Definition: MSVtxPlotMaker.h:284
h
MSVtxPlotMaker::m_h_nTGC
TH1 * m_h_nTGC
Definition: MSVtxPlotMaker.h:327
MSVtxPlotMaker::m_c
std::unique_ptr< TCanvas > m_c
Definition: MSVtxPlotMaker.h:194
MSVtxPlotMaker::m_h_Truth_eta
TH1 * m_h_Truth_eta
Definition: MSVtxPlotMaker.h:391
MSVtxPlotMaker::m_h_Nobj_b
TH1 * m_h_Nobj_b
Definition: MSVtxPlotMaker.h:339
MSVtxPlotMaker::m_h_nRPC_I
TH1 * m_h_nRPC_I
Definition: MSVtxPlotMaker.h:319
MSVtxPlotMaker::m_zLxy_b
TGraph * m_zLxy_b
Definition: MSVtxPlotMaker.h:263
covarianceTool.title
title
Definition: covarianceTool.py:542
MSVtxPlotMaker::m_treename
std::string m_treename
Definition: MSVtxPlotMaker.h:182
MuonVertexValidationMacroPlotAnnotations::drawDetectorBoundaryLines
void drawDetectorBoundaryLines(const char *bin_var, double y_max)
Definition: PlotAnnotations.cxx:84
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:523
MSVtxPlotMaker::m_h_VtxConsti_dR_b
TH1 * m_h_VtxConsti_dR_b
Definition: MSVtxPlotMaker.h:287
MSVtxPlotMaker::fillVtxPosHists
void fillVtxPosHists(const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< VtxPosTH > &hists)
Definition: MSVtxPlotMaker.cxx:562
MSVtxPlotMaker::m_msVtx_nMDT
std::vector< int > * m_msVtx_nMDT
Definition: MSVtxPlotMaker.h:206
MSVtxPlotMaker::saveTGraph
void saveTGraph(TMultiGraph *zLxy, TMultiGraph *etaphi, std::unique_ptr< VtxPosTGraph > &graphs, const TString &plotdir)
Definition: MSVtxPlotMaker.cxx:693
MSVtxPlotMaker::m_plotdir_truthVtx
TString m_plotdir_truthVtx
Definition: MSVtxPlotMaker.h:184
MSVtxPlotMaker::m_h_Reco_Lxy_b
TH1 * m_h_Reco_Lxy_b
Definition: MSVtxPlotMaker.h:379
python.handimod.Green
int Green
Definition: handimod.py:524
MakeTH3DFromTH2Ds.hists
hists
Definition: MakeTH3DFromTH2Ds.py:72
MSVtxPlotMaker::m_h_nMDT_b
TH1 * m_h_nMDT_b
Definition: MSVtxPlotMaker.h:301
MSVtxPlotMaker::m_etaphi
TMultiGraph * m_etaphi
Definition: MSVtxPlotMaker.h:267
MuonVertexValidationMacroPlotAnnotations::makeLegend
TLegend * makeLegend(double lower_x, double lower_y, double upper_x, double upper_y, double textsize)
Definition: PlotAnnotations.cxx:13
MSVtxPlotMaker::m_h_nTGC_O
TH1 * m_h_nTGC_O
Definition: MSVtxPlotMaker.h:330
MSVtxPlotMaker::fillReconstructionObjectsHists
void fillReconstructionObjectsHists()
Definition: MSVtxPlotMaker.cxx:417
MSVtxPlotMaker::m_msVtx_nTGC_I
std::vector< int > * m_msVtx_nTGC_I
Definition: MSVtxPlotMaker.h:218
MSVtxPlotMaker::m_etaphi_truth_e
TGraph * m_etaphi_truth_e
Definition: MSVtxPlotMaker.h:247
MuonVertexValidationMacroUtils::inDetectorRegion
bool inDetectorRegion(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:32
MSVtxPlotMaker::fillVtxPosMaps
void fillVtxPosMaps(const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< VtxPosTGraph > &graphs)
Definition: MSVtxPlotMaker.cxx:541
MSVtxPlotMaker::setPlotStyle
void setPlotStyle()
Definition: MSVtxPlotMaker.cxx:62
MSVtxPlotMaker::m_h_nRPC_M
TH1 * m_h_nRPC_M
Definition: MSVtxPlotMaker.h:320
MSVtxPlotMaker::m_h_Reco_z_e
TH1 * m_h_Reco_z_e
Definition: MSVtxPlotMaker.h:384
MSVtxPlotMaker::m_msVtx_Ntrklet
std::vector< int > * m_msVtx_Ntrklet
Definition: MSVtxPlotMaker.h:202
MSVtxPlotMaker::m_h_nTGC_I
TH1 * m_h_nTGC_I
Definition: MSVtxPlotMaker.h:328
MSVtxPlotMaker::m_h_objReco_eta
TH1 * m_h_objReco_eta
Definition: MSVtxPlotMaker.h:350
MSVtxPlotMaker::m_h_Truth_Lxy_b
TH1 * m_h_Truth_Lxy_b
Definition: MSVtxPlotMaker.h:381
MSVtxPlotMaker::m_h_delta_z_negEta_b
TH1 * m_h_delta_z_negEta_b
Definition: MSVtxPlotMaker.h:371
MSVtxPlotMaker::m_h_VtxPos
std::unique_ptr< VtxPosTGraph > m_h_VtxPos
Definition: MSVtxPlotMaker.h:410
MuonVertexValidationMacroUtils::getNvtxBarrel
int getNvtxBarrel(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:37
MSVtxPlotMaker::m_h_objReco_phi_e
TH1 * m_h_objReco_phi_e
Definition: MSVtxPlotMaker.h:349
python.handimod.extra
int extra
Definition: handimod.py:522
MSVtxPlotMaker::m_h_NobjReco_e
TH1 * m_h_NobjReco_e
Definition: MSVtxPlotMaker.h:343
MSVtxPlotMaker::m_h_nMDT_InwardsTotal_b
TH1 * m_h_nMDT_InwardsTotal_b
Definition: MSVtxPlotMaker.h:309
python.handimod.Red
Red
Definition: handimod.py:551
MSVtxPlotMaker::setup
void setup()
Definition: MSVtxPlotMaker.cxx:42
plotBeamSpotVxVal.legend
legend
Definition: plotBeamSpotVxVal.py:98
MSVtxPlotMaker::m_h_obj_phi_b
TH1 * m_h_obj_phi_b
Definition: MSVtxPlotMaker.h:345
MSVtxPlotMaker::m_zLxy_truth_out
TGraph * m_zLxy_truth_out
Definition: MSVtxPlotMaker.h:243
MSVtxPlotMaker::m_msVtx_nTGC_M
std::vector< int > * m_msVtx_nTGC_M
Definition: MSVtxPlotMaker.h:219
MSVtxPlotMaker::m_h_delta_phi_e
TH1 * m_h_delta_phi_e
Definition: MSVtxPlotMaker.h:358
MSVtxPlotMaker::m_h_VtxChi2_e
std::unique_ptr< Chi2TH1 > m_h_VtxChi2_e
Definition: MSVtxPlotMaker.h:416
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MuonVertexValidationMacroUtils::isValidMatch
bool isValidMatch(const Amg::Vector3D &match_candidate)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:119
MSVtxPlotMaker::m_h_delta_theta_b
TH1 * m_h_delta_theta_b
Definition: MSVtxPlotMaker.h:355
MSVtxPlotMaker::m_h_TruthReco_eta
TH1 * m_h_TruthReco_eta
Definition: MSVtxPlotMaker.h:392
MSVtxPlotMaker::fillVtxPosFiducialVolHists
void fillVtxPosFiducialVolHists(const Amg::Vector3D &vtx, std::unique_ptr< EffInputTH1 > &hists)
Definition: MSVtxPlotMaker.cxx:654
MSVtxPlotMaker::m_h_NVtx_truth
std::unique_ptr< NVtxTH1 > m_h_NVtx_truth
Definition: MSVtxPlotMaker.h:407
MSVtxPlotMaker::formatTGraphs
void formatTGraphs()
Definition: MSVtxPlotMaker.cxx:376
MSVtxPlotMaker::m_plotdir_vtxResiduals
TString m_plotdir_vtxResiduals
Definition: MSVtxPlotMaker.h:187
MuonVertexValidationMacroUtils::inFiducialVol
bool inFiducialVol(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:71
MSVtxPlotMaker::m_h_NVtx
std::unique_ptr< NVtxTH1 > m_h_NVtx
Definition: MSVtxPlotMaker.h:408
MSVtxPlotMaker::m_h_nTGC_InwardsTotal
TH1 * m_h_nTGC_InwardsTotal
Definition: MSVtxPlotMaker.h:331
MSVtxPlotMaker::m_h_VtxConsti_dRmax_e
TH1 * m_h_VtxConsti_dRmax_e
Definition: MSVtxPlotMaker.h:292
MSVtxPlotMaker::m_h_Nvtx_e
TH1 * m_h_Nvtx_e
Definition: MSVtxPlotMaker.h:259
MSVtxPlotMaker::m_h_VtxPosHists
std::unique_ptr< VtxPosTH > m_h_VtxPosHists
Definition: MSVtxPlotMaker.h:412
MSVtxPlotMaker::m_h_delta_Lxy_b
TH1 * m_h_delta_Lxy_b
Definition: MSVtxPlotMaker.h:359
MuonVertexValidationMacroUtils::inEndcaps
bool inEndcaps(double eta)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:22
MSVtxPlotMaker::fillResidualHists
void fillResidualHists(double eta, double dR, double d_theta, double d_phi, double d_Lxy, double d_z, double d_phys, std::unique_ptr< ResidualTH1 > &hists)
Definition: MSVtxPlotMaker.cxx:631
MSVtxPlotMaker::m_h_delta_z_posEta_b
TH1 * m_h_delta_z_posEta_b
Definition: MSVtxPlotMaker.h:370
MSVtxPlotMaker::m_h_delta_Lxy_negEta_e
TH1 * m_h_delta_Lxy_negEta_e
Definition: MSVtxPlotMaker.h:369
MSVtxPlotMaker::m_h_objReco_phi_b
TH1 * m_h_objReco_phi_b
Definition: MSVtxPlotMaker.h:348
MSVtxPlotMaker::m_plotdir_recoVtx
TString m_plotdir_recoVtx
Definition: MSVtxPlotMaker.h:185
MSVtxPlotMaker::m_plotdir_vtxEfficiency
TString m_plotdir_vtxEfficiency
Definition: MSVtxPlotMaker.h:189
MSVtxPlotMaker::m_h_TruthReco_z_e
TH1 * m_h_TruthReco_z_e
Definition: MSVtxPlotMaker.h:387
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MSVtxPlotMaker::m_h_delta_z_e
TH1 * m_h_delta_z_e
Definition: MSVtxPlotMaker.h:362
MuonVertexValidationMacroUtils::inFiducialVolEndcaps
bool inFiducialVolEndcaps(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:64
MSVtxPlotMaker::m_plotdir_vtxFakeRate
TString m_plotdir_vtxFakeRate
Definition: MSVtxPlotMaker.h:190
MuonVertexValidationMacroUtils::inFiducialVolBarrel
bool inFiducialVolBarrel(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:57
MSVtxPlotMaker::m_h_Nhits_MDT_e
std::unique_ptr< NHitsTH1 > m_h_Nhits_MDT_e
Definition: MSVtxPlotMaker.h:424
MSVtxPlotMaker::m_h_nMDT_M_e
TH1 * m_h_nMDT_M_e
Definition: MSVtxPlotMaker.h:306
MSVtxPlotMaker::m_msVtx_nMDT_O
std::vector< int > * m_msVtx_nMDT_O
Definition: MSVtxPlotMaker.h:210
MuonVertexValidationMacroUtils::inBarrel
bool inBarrel(double eta)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:12
MSVtxPlotMaker::m_msVtx_nRPC
std::vector< int > * m_msVtx_nRPC
Definition: MSVtxPlotMaker.h:211
MSVtxPlotMaker::m_msVtx_chi2
std::vector< double > * m_msVtx_chi2
Definition: MSVtxPlotMaker.h:201
MSVtxPlotMaker::m_h_Truth_r_e
TH1 * m_h_Truth_r_e
Definition: MSVtxPlotMaker.h:401
MSVtxPlotMaker::m_truthVtx_y
std::vector< double > * m_truthVtx_y
Definition: MSVtxPlotMaker.h:198
MSVtxPlotMaker::saveVtxPos
void saveVtxPos(std::unique_ptr< VtxPosTH > &hists, const TString &plotdir)
Definition: MSVtxPlotMaker.cxx:673
MSVtxPlotMaker::getUnmatchedHist
TH1 * getUnmatchedHist(TH1 *h_all, TH1 *h_matched, const TString &name_unmatched)
Definition: MSVtxPlotMaker.cxx:874
MuonVertexValidationMacroUtils::getNvtxEndcaps
int getNvtxEndcaps(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:43
MSVtxPlotMaker::m_msVtx_nTGC_inwards
std::vector< int > * m_msVtx_nTGC_inwards
Definition: MSVtxPlotMaker.h:217
MSVtxPlotMaker::m_h_RecoTruth_r_e
TH1 * m_h_RecoTruth_r_e
Definition: MSVtxPlotMaker.h:400
MSVtxPlotMaker::m_h_VtxResiduals_e
std::unique_ptr< ResidualTH1 > m_h_VtxResiduals_e
Definition: MSVtxPlotMaker.h:422
MSVtxPlotMaker::m_h_Truth_z_e
TH1 * m_h_Truth_z_e
Definition: MSVtxPlotMaker.h:386
MSVtxPlotMaker::m_output_file
std::unique_ptr< TFile > m_output_file
Definition: MSVtxPlotMaker.h:193
MSVtxPlotMaker::m_h_RecoTruth_Lxy_b
TH1 * m_h_RecoTruth_Lxy_b
Definition: MSVtxPlotMaker.h:380
MSVtxPlotMaker::m_datapath
std::string m_datapath
Definition: MSVtxPlotMaker.h:181
MSVtxPlotMaker::m_obj_z
std::vector< double > * m_obj_z
Definition: MSVtxPlotMaker.h:224
MSVtxPlotMaker::m_h_delta_R_e
TH1 * m_h_delta_R_e
Definition: MSVtxPlotMaker.h:354
MSVtxPlotMaker::m_obj_y
std::vector< double > * m_obj_y
Definition: MSVtxPlotMaker.h:223
MSVtxPlotMaker::m_h_VtxPos_truth
std::unique_ptr< VtxPosTGraph > m_h_VtxPos_truth
Definition: MSVtxPlotMaker.h:411
MSVtxPlotMaker::m_obj_vtxLink
std::vector< int > * m_obj_vtxLink
Definition: MSVtxPlotMaker.h:228
MSVtxPlotMaker::m_h_VtxChi2_b
std::unique_ptr< Chi2TH1 > m_h_VtxChi2_b
Definition: MSVtxPlotMaker.h:415
MSVtxPlotMaker::m_h_nMDT_IO_b
TH1 * m_h_nMDT_IO_b
Definition: MSVtxPlotMaker.h:313
MSVtxPlotMaker::m_msVtx_y
std::vector< double > * m_msVtx_y
Definition: MSVtxPlotMaker.h:204
MSVtxPlotMaker::m_h_VtxResiduals_b
std::unique_ptr< ResidualTH1 > m_h_VtxResiduals_b
Definition: MSVtxPlotMaker.h:421
MSVtxPlotMaker::m_h_delta_theta_e
TH1 * m_h_delta_theta_e
Definition: MSVtxPlotMaker.h:356
MSVtxPlotMaker::m_msVtx_nRPC_M
std::vector< int > * m_msVtx_nRPC_M
Definition: MSVtxPlotMaker.h:214
MSVtxPlotMaker::m_h_VtxConsti_detamax_b
TH1 * m_h_VtxConsti_detamax_b
Definition: MSVtxPlotMaker.h:290
MSVtxPlotMaker::m_h_NobjReco_b
TH1 * m_h_NobjReco_b
Definition: MSVtxPlotMaker.h:342
MSVtxPlotMaker::setupBranches
void setupBranches()
Definition: MSVtxPlotMaker.cxx:332
MSVtxPlotMaker::m_msVtx_z
std::vector< double > * m_msVtx_z
Definition: MSVtxPlotMaker.h:205
MSVtxPlotMaker::m_h_nTGC_IM
TH1 * m_h_nTGC_IM
Definition: MSVtxPlotMaker.h:332
MSVtxPlotMaker::m_msVtx_nRPC_inwards
std::vector< int > * m_msVtx_nRPC_inwards
Definition: MSVtxPlotMaker.h:212
MSVtxPlotMaker::outputResults
void outputResults()
Definition: MSVtxPlotMaker.cxx:111
MSVtxPlotMaker::m_obj_x
std::vector< double > * m_obj_x
Definition: MSVtxPlotMaker.h:222
MSVtxPlotMaker::m_etaphi_truth_b
TGraph * m_etaphi_truth_b
Definition: MSVtxPlotMaker.h:246
MSVtxPlotMaker::m_h_nMDT_I_b
TH1 * m_h_nMDT_I_b
Definition: MSVtxPlotMaker.h:303
MSVtxPlotMaker::m_h_Nconsti_e
TH1 * m_h_Nconsti_e
Definition: MSVtxPlotMaker.h:285
MSVtxPlotMaker::m_h_Nvtx_truth
TH1 * m_h_Nvtx_truth
Definition: MSVtxPlotMaker.h:235
MSVtxPlotMaker::m_h_nMDT_O_b
TH1 * m_h_nMDT_O_b
Definition: MSVtxPlotMaker.h:307
MSVtxPlotMaker::m_h_RecoTruthMatched
std::unique_ptr< EffInputTH1 > m_h_RecoTruthMatched
Definition: MSVtxPlotMaker.h:431
MuonVertexValidationMacroUtils::findBestMatch
Amg::Vector3D findBestMatch(const Amg::Vector3D &vtx, const std::vector< Amg::Vector3D > &candidates)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:100
MSVtxPlotMaker::m_h_Nvtx_truth_b
TH1 * m_h_Nvtx_truth_b
Definition: MSVtxPlotMaker.h:236
MSVtxPlotMaker::m_h_AngularVtxConsti_b
std::unique_ptr< AngularVtxConstiTH1 > m_h_AngularVtxConsti_b
Definition: MSVtxPlotMaker.h:418
MSVtxPlotMaker::m_etaphi_truth
TMultiGraph * m_etaphi_truth
Definition: MSVtxPlotMaker.h:245
MSVtxPlotMaker::m_h_Nobj_e
TH1 * m_h_Nobj_e
Definition: MSVtxPlotMaker.h:340
MSVtxPlotMaker::m_msVtx_nRPC_I
std::vector< int > * m_msVtx_nRPC_I
Definition: MSVtxPlotMaker.h:213
MSVtxPlotMaker::m_h_TruthReco_r_b
TH1 * m_h_TruthReco_r_b
Definition: MSVtxPlotMaker.h:397
MSVtxPlotMaker::fillNvtxHists
void fillNvtxHists(const std::vector< Amg::Vector3D > &vertices, std::unique_ptr< NVtxTH1 > &hists)
Definition: MSVtxPlotMaker.cxx:531
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
python.compressB64.c
def c
Definition: compressB64.py:93
MSVtxPlotMaker::m_etaphi_e
TGraph * m_etaphi_e
Definition: MSVtxPlotMaker.h:269
MuonVertexValidationMacroUtils::hasMatch
bool hasMatch(const Amg::Vector3D &vtx1, const std::vector< Amg::Vector3D > &vtx2_vec)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:124
MSVtxPlotMaker::m_h_chi2prob_e
TH1 * m_h_chi2prob_e
Definition: MSVtxPlotMaker.h:282
MSVtxPlotMaker::m_h_nMDT_InwardsTotal_e
TH1 * m_h_nMDT_InwardsTotal_e
Definition: MSVtxPlotMaker.h:310
MSVtxPlotMaker::setColorPalette
void setColorPalette(TStyle *plotStyle)
Definition: MSVtxPlotMaker.cxx:853
MuonVertexValidationMacroUtils::fidVol_barrel_etaCut
constexpr double fidVol_barrel_etaCut
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:18
MSVtxPlotMaker::fillPlots
void fillPlots()
Definition: MSVtxPlotMaker.cxx:85
MSVtxPlotMaker::fillRecoVtxPlots
void fillRecoVtxPlots(const std::vector< Amg::Vector3D > &reco_vertices, const std::vector< std::vector< Amg::Vector3D >> &reco_constituentPos)
Definition: MSVtxPlotMaker.cxx:463
MSVtxPlotMaker::m_h_nRPC_O
TH1 * m_h_nRPC_O
Definition: MSVtxPlotMaker.h:321
MSVtxPlotMaker::m_h_VtxPosHists_truth
std::unique_ptr< VtxPosTH > m_h_VtxPosHists_truth
Definition: MSVtxPlotMaker.h:413
MSVtxPlotMaker::m_h_VtxConsti_detamax_e
TH1 * m_h_VtxConsti_detamax_e
Definition: MSVtxPlotMaker.h:294
MSVtxPlotMaker::m_obj_eta
std::vector< double > * m_obj_eta
Definition: MSVtxPlotMaker.h:227
MSVtxPlotMaker::m_h_obj_phi_e
TH1 * m_h_obj_phi_e
Definition: MSVtxPlotMaker.h:346
MSVtxPlotMaker::saveTH2
void saveTH2(TH2 *h, const TString &plotpath)
Definition: MSVtxPlotMaker.cxx:838