ATLAS Offline Software
MSVtxValidationAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MSVTXVALIDATIONALG_H
6 #define MSVTXVALIDATIONALG_H
7 
8 #include <memory>
9 #include <vector>
10 #include <string>
11 
12 #include <TLorentzVector.h>
13 #include <TH1.h>
14 #include <TMath.h>
15 
17 #include "StoreGate/ReadHandle.h"
19 
20 #include "GaudiKernel/ToolHandle.h"
21 #include "GaudiKernel/ITHistSvc.h"
22 #include "GaudiKernel/SystemOfUnits.h"
23 
26 
33 #include "xAODJet/JetContainer.h"
35 
41 
42 
43 namespace defaults {
44  inline constexpr int Int = -99999;
45  inline constexpr float Float = -99999.;
46 }
47 
48 
50  public:
51  // using the AthHistogramAlgorithm constructor which creates a THistSvc, whose pointer is accessible via histSvc()
53 
54  virtual StatusCode initialize() override final;
55  virtual StatusCode execute() override final;
56  virtual StatusCode finalize() override final;
57 
58  private:
59  // ================
60  // input containers
61  // ================
62  SG::ReadHandleKey<xAOD::EventInfo> m_evtKey{this, "EvtKey", "EventInfo"};
63  SG::ReadHandleKey<xAOD::TruthParticleContainer> m_TruthParticleKey{this, "TruthParticleKey", "TruthParticles"};
64  SG::ReadHandleKey<xAOD::TruthVertexContainer> m_TruthVertexKey{this, "TruthVertexKey", "TruthVertices"};
65  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrackParticleKey{this, "TrackParticleKey", "InDetTrackParticles"};
66  SG::ReadHandleKey<xAOD::JetContainer> m_JetKey{this, "JetKey", "HLT_AntiKt4EMTopoJets_nojcalib"};
68  SG::ReadHandleKey<xAOD::MuonSegmentContainer> m_MuonSegKey{this, "MuonSegmentsKey", "MuonSegments"};
69  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrackletKey{this, "TrackletKey", "MSonlyTracklets"};
70  SG::ReadHandleKey<xAOD::VertexContainer> m_MSVtxKey{this, "MSVertexKey", "MSDisplacedVertex"};
71 
72  // ========
73  // triggers
74  // ========
75  // Tool names are passed from the python configuration
76  PublicToolHandle<Trig::TrigDecisionTool> m_trigDec{this, "TrigDecisionTool", "", "TrigDecisionTool (optional)"};
77  PublicToolHandle<Trig::R3MatchingTool> m_matchingTool{this, "R3MatchingTool", "", "R3MatchingTool (optional)"};
78  // struct for easy passing of trigger decisions
79  struct TriggerInfo {
80  std::string triggerString;
81  std::vector<std::string> names;
82  std::vector<bool> passed;
83  };
84  // jet trigger configuration
85  Gaudi::Property<std::string> m_triggerStringJets{this, "TriggerString", "HLT_j400.*"}; // accepts single trigger name, comma separated list of trigger names, or regex
86  Gaudi::Property<float> m_jetTriggerMatchingDR{this, "jetTriggerMatching", 0.1, "max dR distance for jet trigger matching"};
87 
88 
89  // Algorithm properties
90  Gaudi::Property<bool> m_isMC{this, "isMC", true, "is the input data simulated (MC) or real data?"};
91  Gaudi::Property<bool> m_readTriggers{this, "readTriggers", false, "should trigger information be read?"};
92  // what variables to fill
93  Gaudi::Property<bool> m_dumpTruthParticles{this, "dumpTruthParticles", false, "dump truth particles to the tree"};
94  Gaudi::Property<bool> m_dumpTruthVertices{this, "dumpTruthVertices", false, "dump truth vertices to the tree"};
95  Gaudi::Property<bool> m_fillMET{this, "fillMET", false, "add met information to the tree"};
96  Gaudi::Property<bool> m_fillJets{this, "fillJets", false, "add jet information to the tree"};
97  Gaudi::Property<bool> m_computeActiveVertices{this, "computeActiveVertices", false, "extracts active vertices in the vicinity of a jet by looping through truth particles. Requires isMC."};
98  Gaudi::Property<bool> m_computeVertexIso{this, "computeVertexIso", false, "add vertex isolation variables to the tree"};
99  // truth particles
100  Gaudi::Property<int> m_pdgId_portal{this, "pdgId_portal", 25, "Truth portal PDGId"};
101  Gaudi::Property<int> m_pdgId_llp{this, "pdgId_llp", 35, "Truth LLP PDGId"};
102  Gaudi::Property<bool> m_llp_genStableChildren{this, "llp_genStableChildren", false, "Restricts the TruthParticle-LLP linking to generator stable children rather than detector stable children"};
103  // isolation variables
104  Gaudi::Property<float> m_trackIso_pT{this, "trackIso_pT", 5.0*Gaudi::Units::GeV, "minimum track pT [GeV] to be considered for isolation"};
105  Gaudi::Property<float> m_softTrackIso_R{this, "softTrackIso_R", 0.2, "cone radius around vertex to sum up track pT"};
106  Gaudi::Property<float> m_jetIso_pT{this, "jetIso_pT", 20.0*Gaudi::Units::GeV, "minimum jet pT [GeV] to be considered for isolation"};
107  Gaudi::Property<float> m_jetIso_LogRatio{this, "jetIso_LogRatio", 0.5, "max log ECal/HCal ratio for jet to be considered for isolation"};
108 
109  // ================
110  // filling routines
111  // ================
112  StatusCode fillTruth(const EventContext& ctx);
113  StatusCode fillTruthVertex(const EventContext& ctx);
114  StatusCode fillTruthParticle(const EventContext& ctx);
115  StatusCode fillJet(const EventContext& ctx);
116  StatusCode fillMet(const EventContext& ctx);
117  StatusCode fillTracklets(const EventContext& ctx);
118  StatusCode fillMSVtx(const EventContext& ctx);
119  // filling helpers
120  StatusCode fillLLP(std::vector<const xAOD::TruthParticle*>& llps);
121  void fillHits(const xAOD::Vertex* vtx, const std::string& decorator_str, MuonVal::VectorBranch<int>& branch);
122  TriggerInfo getTriggerDecisions(std::string triggerString);
123  template <typename T>
124  bool getTriggerMatchingDecision(const T* object, TriggerInfo& triggerInfo, float dRmatching);
125  StatusCode fillActiveVertices(const EventContext& ctx, const xAOD::Jet* jet);
127 
128 
129  // ========================================================================
130  // tree and branches
131  // n-tuple branches with kinematics filled in units of GeV
132  // additional variables are added to IParticleFourMomBranch in initialize()
133  // ========================================================================
134  MuonVal::MuonTesterTree m_tree{"MSVtxValidTree", "MSVtxValidation"};
135  using ParticleBranchPtr_t = std::shared_ptr<MuonVal::IParticleFourMomBranch>;
136 
137  // truth vertex
138  // taken from https://geant4.kek.jp/lxr/source/processes/hadronic/management/include/G4HadronicProcessType.hh#L46
139  std::unordered_set<int> m_hadronicProcessEnum = {111, 116, 121, 131, 132, 141, 151, 152, 161, 165, 166, 167, 210, 310};
140  // taken from https://geant4.kek.jp/lxr/source/processes/electromagnetic/utils/include/G4EmProcessSubType.hh#L43
141  std::unordered_set<int> m_emProcessEnum = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,30,31,40,49};
144  MuonVal::VectorBranch<int>& m_truthVtx_interactionType{m_tree.newVector<int>("truthVtx_ interactionType")}; // 0 for hadronic, 1 for EM, -1 for other
145  MuonVal::VectorBranch<int>& m_truthVtx_NchildrenDirect{m_tree.newVector<int>("truthVtx_NchildrenDirect")}; // number of outgoing particles from the vertex
146  MuonVal::VectorBranch<int>& m_truthVtx_Nchildren{m_tree.newVector<int>("truthVtx_Nchildren")}; // number of detector stable decay products
147  MuonVal::VectorBranch<int>& m_truthVtx_NchildrenCharged{m_tree.newVector<int>("truthVtx_NchildrenCharged")}; // number of charged detector stable decay products
149 
150  // truth particles
153  std::unique_ptr<std::vector<int>> m_truthParticle_llpVtx_link_tmp = std::make_unique<std::vector<int>>(); // temporary vector to hold the vertex link information before filling the branch
155  std::unique_ptr<std::vector<int>> m_truthParticle_actVtx_link_tmp = std::make_unique<std::vector<int>>();
157  std::unique_ptr<std::vector<int>> m_truthParticle_truthVtx_link_tmp = std::make_unique<std::vector<int>>();
158 
159  // portal particle
162 
163  // truth LLPs and their children
168 
169  // truth displaced vertex
175 
176  // reconstructed MS vertex
182  // hits near the vertex
201  // vertex isolation variables
205 
206  // tracklets
218 
219  // muon segments
220  std::shared_ptr<MuonPRDTest::SegmentVariables> m_muonSeg{nullptr};
221 
222  // jet
228 
229  // active vertices associated to jets
241 
242  // met
248 
249 
250  // ==========
251  // histograms
252  // ==========
253  TH1F* m_h_LLP1LLP2dR{nullptr};
254  TH1F* m_h_diLLPMass{nullptr};
255  TH1F* m_h_leadLLPLxy{nullptr};
256  TH1F* m_h_leadLLPLz{nullptr};
258  TH1F* m_h_leadLLPpt{nullptr};
263 };
264 
265 #endif // MSVTXVALIDATIONALG_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
MSVtxValidationAlg::fillActiveVertices
StatusCode fillActiveVertices(const EventContext &ctx, const xAOD::Jet *jet)
Definition: MSVtxValidationAlg.cxx:341
MSVtxValidationAlg::TriggerInfo::names
std::vector< std::string > names
Definition: MSVtxValidationAlg.h:81
MSVtxValidationAlg::TriggerInfo
Definition: MSVtxValidationAlg.h:79
MSVtxValidationAlg::m_llpVtx_pos
MuonVal::ThreeVectorBranch m_llpVtx_pos
Definition: MSVtxValidationAlg.h:170
MSVtxValidationAlg::m_h_subleadLLPLz
TH1F * m_h_subleadLLPLz
Definition: MSVtxValidationAlg.h:260
MSVtxValidationAlg::m_truthVtx_truthParticle_link
MuonVal::MatrixBranch< int > & m_truthVtx_truthParticle_link
Definition: MSVtxValidationAlg.h:148
MSVtxValidationAlg::m_msVtx_nTGC
MuonVal::VectorBranch< int > & m_msVtx_nTGC
Definition: MSVtxValidationAlg.h:195
MSVtxValidationAlg::m_truthParticle_llpVtx_link_tmp
std::unique_ptr< std::vector< int > > m_truthParticle_llpVtx_link_tmp
Definition: MSVtxValidationAlg.h:153
MSVtxValidationAlg::m_trklet_q
MuonVal::VectorBranch< float > & m_trklet_q
Definition: MSVtxValidationAlg.h:216
MSVtxValidationAlg::m_softTrackIso_R
Gaudi::Property< float > m_softTrackIso_R
Definition: MSVtxValidationAlg.h:105
MSVtxValidationAlg::m_h_leadLLPpt
TH1F * m_h_leadLLPpt
Definition: MSVtxValidationAlg.h:258
MSVtxValidationAlg::m_MuonSegKey
SG::ReadHandleKey< xAOD::MuonSegmentContainer > m_MuonSegKey
Definition: MSVtxValidationAlg.h:68
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
AthHistogramAlgorithm::AthHistogramAlgorithm
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: AthHistogramAlgorithm.cxx:31
MSVtxValidationAlg::m_readTriggers
Gaudi::Property< bool > m_readTriggers
Definition: MSVtxValidationAlg.h:91
defaults::Int
constexpr int Int
Definition: MSVtxValidationAlg.h:44
MSVtxValidationAlg::m_truthParticle_truthVtx_link
MuonVal::VectorBranch< int > & m_truthParticle_truthVtx_link
Definition: MSVtxValidationAlg.h:156
MSVtxValidationAlg::m_msVtx_chi2
MuonVal::VectorBranch< float > & m_msVtx_chi2
Definition: MSVtxValidationAlg.h:179
MSVtxValidationAlg::m_tree
MuonVal::MuonTesterTree m_tree
Definition: MSVtxValidationAlg.h:134
MSVtxValidationAlg::m_truthParticle_actVtx_link_tmp
std::unique_ptr< std::vector< int > > m_truthParticle_actVtx_link_tmp
Definition: MSVtxValidationAlg.h:155
MSVtxValidationAlg::m_muonSeg
std::shared_ptr< MuonPRDTest::SegmentVariables > m_muonSeg
Definition: MSVtxValidationAlg.h:220
MSVtxValidationAlg::m_portal
ParticleBranchPtr_t m_portal
Definition: MSVtxValidationAlg.h:160
MSVtxValidationAlg::fillTruthParticle
StatusCode fillTruthParticle(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:126
MSVtxValidationAlg::m_actVtx_jet_dPhi
MuonVal::VectorBranch< float > & m_actVtx_jet_dPhi
Definition: MSVtxValidationAlg.h:239
MSVtxValidationAlg::fillTruth
StatusCode fillTruth(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:118
MSVtxValidationAlg::getTriggerMatchingDecision
bool getTriggerMatchingDecision(const T *object, TriggerInfo &triggerInfo, float dRmatching)
Definition: MSVtxValidationAlg.cxx:326
MSVtxValidationAlg::m_truthParticle_truthVtx_link_tmp
std::unique_ptr< std::vector< int > > m_truthParticle_truthVtx_link_tmp
Definition: MSVtxValidationAlg.h:157
MSVtxValidationAlg::m_h_subleadLLPctau
TH1F * m_h_subleadLLPctau
Definition: MSVtxValidationAlg.h:261
MSVtxValidationAlg::m_actVtx_pT
MuonVal::VectorBranch< float > & m_actVtx_pT
Definition: MSVtxValidationAlg.h:235
MSVtxValidationAlg::m_computeVertexIso
Gaudi::Property< bool > m_computeVertexIso
Definition: MSVtxValidationAlg.h:98
MSVtxValidationAlg::m_portal_N
MuonVal::ScalarBranch< int > & m_portal_N
Definition: MSVtxValidationAlg.h:161
IParticleFourMomBranch.h
MSVtxValidationAlg::finalize
virtual StatusCode finalize() override final
Definition: MSVtxValidationAlg.cxx:528
MSVtxValidationAlg::m_truthVtx_NchildrenCharged
MuonVal::VectorBranch< int > & m_truthVtx_NchildrenCharged
Definition: MSVtxValidationAlg.h:147
MSVtxValidationAlg::m_TrackParticleKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackParticleKey
Definition: MSVtxValidationAlg.h:65
TruthVertexContainer.h
MSVtxValidationAlg::m_msVtx_nTGC_M
MuonVal::VectorBranch< int > & m_msVtx_nTGC_M
Definition: MSVtxValidationAlg.h:199
TruthParticleContainer.h
MSVtxValidationAlg::m_msVtx_Ntrklet
MuonVal::VectorBranch< int > & m_msVtx_Ntrklet
Definition: MSVtxValidationAlg.h:181
MSVtxValidationAlg::m_met_y
MuonVal::ScalarBranch< float > & m_met_y
Definition: MSVtxValidationAlg.h:245
MSVtxValidationAlg::m_msVtx_nRPC_M
MuonVal::VectorBranch< int > & m_msVtx_nRPC_M
Definition: MSVtxValidationAlg.h:193
MSVtxValidationAlg::m_met_phi
MuonVal::ScalarBranch< float > & m_met_phi
Definition: MSVtxValidationAlg.h:246
MSVtxValidationAlg::m_msVtx_nRPC_E
MuonVal::VectorBranch< int > & m_msVtx_nRPC_E
Definition: MSVtxValidationAlg.h:192
MSVtxValidationAlg::m_actVtx_jet_dEta
MuonVal::VectorBranch< float > & m_actVtx_jet_dEta
Definition: MSVtxValidationAlg.h:238
MSVtxValidationAlg::m_llpVtx_Lxy
MuonVal::VectorBranch< float > & m_llpVtx_Lxy
Definition: MSVtxValidationAlg.h:172
defaults
Definition: MSVtxValidationAlg.h:43
defineDB.jets
jets
Definition: JetTagCalibration/share/defineDB.py:24
MSVtxValidationAlg::ParticleBranchPtr_t
std::shared_ptr< MuonVal::IParticleFourMomBranch > ParticleBranchPtr_t
Definition: MSVtxValidationAlg.h:135
MSVtxValidationAlg::m_jet_actVtx_link
MuonVal::MatrixBranch< int > & m_jet_actVtx_link
Definition: MSVtxValidationAlg.h:227
MSVtxValidationAlg::fillMSVtx
StatusCode fillMSVtx(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:428
MSVtxValidationAlg::m_JetKey
SG::ReadHandleKey< xAOD::JetContainer > m_JetKey
Definition: MSVtxValidationAlg.h:66
TrigDecisionTool.h
MSVtxValidationAlg::m_llpVtx_N
MuonVal::ScalarBranch< int > & m_llpVtx_N
Definition: MSVtxValidationAlg.h:171
EventInfoBranch.h
defaults::Float
constexpr float Float
Definition: MSVtxValidationAlg.h:45
MSVtxValidationAlg::m_truthParticle
ParticleBranchPtr_t m_truthParticle
Definition: MSVtxValidationAlg.h:151
MuonVal::VectorBranch< int >
MuonTesterTree.h
MSVtxValidationAlg::m_msVtx_nMDT_M
MuonVal::VectorBranch< int > & m_msVtx_nMDT_M
Definition: MSVtxValidationAlg.h:187
MSVtxValidationAlg::m_MSVtxKey
SG::ReadHandleKey< xAOD::VertexContainer > m_MSVtxKey
Definition: MSVtxValidationAlg.h:70
ThreeVectorBranch.h
MSVtxValidationAlg::m_truthVtx_status
MuonVal::VectorBranch< int > & m_truthVtx_status
Definition: MSVtxValidationAlg.h:143
MSVtxValidationAlg::m_msVtx_nTGC_inwards
MuonVal::VectorBranch< int > & m_msVtx_nTGC_inwards
Definition: MSVtxValidationAlg.h:196
SG::ReadHandleKey< xAOD::EventInfo >
MSVtxValidationAlg::m_actVtx_mass
MuonVal::VectorBranch< float > & m_actVtx_mass
Definition: MSVtxValidationAlg.h:234
MSVtxValidationAlg::m_trackIso_pT
Gaudi::Property< float > m_trackIso_pT
Definition: MSVtxValidationAlg.h:104
MSVtxValidationAlg::m_jet
ParticleBranchPtr_t m_jet
Definition: MSVtxValidationAlg.h:223
MSVtxValidationAlg::m_msVtx_nTGC_E
MuonVal::VectorBranch< int > & m_msVtx_nTGC_E
Definition: MSVtxValidationAlg.h:198
MSVtxValidationAlg::fillJet
StatusCode fillJet(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:286
MuonVal::ThreeVectorBranch
Definition: ThreeVectorBranch.h:19
MSVtxValidationAlg::m_met_x
MuonVal::ScalarBranch< float > & m_met_x
Definition: MSVtxValidationAlg.h:244
MSVtxValidationAlg::m_trklet_z0
MuonVal::VectorBranch< float > & m_trklet_z0
Definition: MSVtxValidationAlg.h:211
MSVtxValidationAlg::m_msVtx_isoJets_mindR
MuonVal::VectorBranch< float > & m_msVtx_isoJets_mindR
Definition: MSVtxValidationAlg.h:204
MSVtxValidationAlg::m_met
MuonVal::ScalarBranch< float > & m_met
Definition: MSVtxValidationAlg.h:243
MuonSegmentContainer.h
AthHistogramAlgorithm.h
MSVtxValidationAlg::m_llpVtx_truthParticle_link
MuonVal::MatrixBranch< int > & m_llpVtx_truthParticle_link
Definition: MSVtxValidationAlg.h:174
MSVtxValidationAlg::m_truthVtx_Nchildren
MuonVal::VectorBranch< int > & m_truthVtx_Nchildren
Definition: MSVtxValidationAlg.h:146
MSVtxValidationAlg::m_msVtx_nRPC_I
MuonVal::VectorBranch< int > & m_msVtx_nRPC_I
Definition: MSVtxValidationAlg.h:191
MSVtxValidationAlg::m_llp_Nchildren
MuonVal::VectorBranch< int > & m_llp_Nchildren
Definition: MSVtxValidationAlg.h:166
MSVtxValidationAlg::m_truthParticle_llpVtx_link
MuonVal::VectorBranch< int > & m_truthParticle_llpVtx_link
Definition: MSVtxValidationAlg.h:152
MSVtxValidationAlg::m_actVtx_energy
MuonVal::VectorBranch< float > & m_actVtx_energy
Definition: MSVtxValidationAlg.h:233
MSVtxValidationAlg::m_fillMET
Gaudi::Property< bool > m_fillMET
Definition: MSVtxValidationAlg.h:95
MSVtxValidationAlg::m_msVtx_nDoF
MuonVal::VectorBranch< int > & m_msVtx_nDoF
Definition: MSVtxValidationAlg.h:180
MSVtxValidationAlg::m_msVtx_nRPC
MuonVal::VectorBranch< int > & m_msVtx_nRPC
Definition: MSVtxValidationAlg.h:189
MSVtxValidationAlg::m_jet_triggers
MuonVal::VectorBranch< int > & m_jet_triggers
Definition: MSVtxValidationAlg.h:225
MSVtxValidationAlg::m_trklet_pos
MuonVal::ThreeVectorBranch m_trklet_pos
Definition: MSVtxValidationAlg.h:207
MSVtxValidationAlg::m_msVtx_nMDT_inwards
MuonVal::VectorBranch< int > & m_msVtx_nMDT_inwards
Definition: MSVtxValidationAlg.h:184
MSVtxValidationAlg::m_TruthVertexKey
SG::ReadHandleKey< xAOD::TruthVertexContainer > m_TruthVertexKey
Definition: MSVtxValidationAlg.h:64
MSVtxValidationAlg::m_trklet_theta
MuonVal::VectorBranch< float > & m_trklet_theta
Definition: MSVtxValidationAlg.h:212
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
MSVtxValidationAlg::m_pdgId_portal
Gaudi::Property< int > m_pdgId_portal
Definition: MSVtxValidationAlg.h:100
MuonVal::MuonTesterTree
Definition: MuonTesterTree.h:30
MSVtxValidationAlg::m_llp
ParticleBranchPtr_t m_llp
Definition: MSVtxValidationAlg.h:164
MSVtxValidationAlg::m_jetIso_pT
Gaudi::Property< float > m_jetIso_pT
Definition: MSVtxValidationAlg.h:106
MSVtxValidationAlg::m_actVtx_jet_link
MuonVal::VectorBranch< int > & m_actVtx_jet_link
Definition: MSVtxValidationAlg.h:237
MSVtxValidationAlg::m_msVtx_N
MuonVal::ScalarBranch< int > & m_msVtx_N
Definition: MSVtxValidationAlg.h:178
MSVtxValidationAlg::m_llp_genStableChildren
Gaudi::Property< bool > m_llp_genStableChildren
Definition: MSVtxValidationAlg.h:102
MSVtxValidationAlg::m_msVtx_isoTracks_pTsum
MuonVal::VectorBranch< float > & m_msVtx_isoTracks_pTsum
Definition: MSVtxValidationAlg.h:203
MSVtxValidationAlg::execute
virtual StatusCode execute() override final
Definition: MSVtxValidationAlg.cxx:505
MSVtxValidationAlg::m_h_LLP1LLP2dR
TH1F * m_h_LLP1LLP2dR
Definition: MSVtxValidationAlg.h:253
MSVtxValidationAlg::m_emProcessEnum
std::unordered_set< int > m_emProcessEnum
Definition: MSVtxValidationAlg.h:141
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MSVtxValidationAlg::initialize
virtual StatusCode initialize() override final
Definition: MSVtxValidationAlg.cxx:14
MSVtxValidationAlg::m_truthVtx_NchildrenDirect
MuonVal::VectorBranch< int > & m_truthVtx_NchildrenDirect
Definition: MSVtxValidationAlg.h:145
MSVtxValidationAlg::m_msVtx_nMDT_O
MuonVal::VectorBranch< int > & m_msVtx_nMDT_O
Definition: MSVtxValidationAlg.h:188
MSVtxValidationAlg::m_msVtx_nTGC_I
MuonVal::VectorBranch< int > & m_msVtx_nTGC_I
Definition: MSVtxValidationAlg.h:197
MSVtxValidationAlg::m_sumEt
MuonVal::ScalarBranch< float > & m_sumEt
Definition: MSVtxValidationAlg.h:247
MSVtxValidationAlg
Definition: MSVtxValidationAlg.h:49
MSVtxValidationAlg::m_llp_NchildrenCharged
MuonVal::VectorBranch< int > & m_llp_NchildrenCharged
Definition: MSVtxValidationAlg.h:167
MSVtxValidationAlg::fillMSVtxIsolation
StatusCode fillMSVtxIsolation(const xAOD::Vertex *msVtx, const xAOD::TrackParticleContainer *tracks, const xAOD::JetContainer *jets)
Definition: MSVtxValidationAlg.cxx:494
MSVtxValidationAlg::fillTruthVertex
StatusCode fillTruthVertex(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:241
MSVtxValidationAlg::m_computeActiveVertices
Gaudi::Property< bool > m_computeActiveVertices
Definition: MSVtxValidationAlg.h:97
MSVtxValidationAlg::m_msVtx_nMDT
MuonVal::VectorBranch< int > & m_msVtx_nMDT
Definition: MSVtxValidationAlg.h:183
MSVtxValidationAlg::m_matchingTool
PublicToolHandle< Trig::R3MatchingTool > m_matchingTool
Definition: MSVtxValidationAlg.h:77
MSVtxValidationAlg::m_llp_N
MuonVal::ScalarBranch< int > & m_llp_N
Definition: MSVtxValidationAlg.h:165
MSVtxValidationAlg::m_trklet_d0
MuonVal::VectorBranch< float > & m_trklet_d0
Definition: MSVtxValidationAlg.h:210
MuonVal::MuonTesterTree::newVector
VectorBranch< T > & newVector(const std::string &name)
Creates new branches and returns their reference.
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
MSVtxValidationAlg::m_actVtx_pos
MuonVal::ThreeVectorBranch m_actVtx_pos
Definition: MSVtxValidationAlg.h:230
MSVtxValidationAlg::m_jet_N
MuonVal::ScalarBranch< int > & m_jet_N
Definition: MSVtxValidationAlg.h:224
MSVtxValidationAlg::m_actVtx_NChildren
MuonVal::VectorBranch< int > & m_actVtx_NChildren
Definition: MSVtxValidationAlg.h:231
MSVtxValidationAlg::TriggerInfo::triggerString
std::string triggerString
Definition: MSVtxValidationAlg.h:80
MSVtxValidationAlg::m_msVtx_isoTracks_mindR
MuonVal::VectorBranch< float > & m_msVtx_isoTracks_mindR
Definition: MSVtxValidationAlg.h:202
MSVtxValidationAlg::m_msVtx_nMDT_E
MuonVal::VectorBranch< int > & m_msVtx_nMDT_E
Definition: MSVtxValidationAlg.h:186
MSVtxValidationAlg::m_jetIso_LogRatio
Gaudi::Property< float > m_jetIso_LogRatio
Definition: MSVtxValidationAlg.h:107
MSVtxValidationAlg::m_trklet_phi
MuonVal::VectorBranch< float > & m_trklet_phi
Definition: MSVtxValidationAlg.h:214
TriggerInfo
This class contains trigger related information.
Definition: TriggerInfo.h:77
MuonVal::ScalarBranch< int >
MSVtxValidationAlg::m_hadronicProcessEnum
std::unordered_set< int > m_hadronicProcessEnum
Definition: MSVtxValidationAlg.h:139
MSVtxValidationAlg::m_h_diLLPMass
TH1F * m_h_diLLPMass
Definition: MSVtxValidationAlg.h:254
MSVtxValidationAlg::m_TruthParticleKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_TruthParticleKey
Definition: MSVtxValidationAlg.h:63
MuonVal::MuonTesterTree::newScalar
ScalarBranch< T > & newScalar(const std::string &name)
MSVtxValidationAlg::m_trklet_vtxLink
MuonVal::VectorBranch< int > & m_trklet_vtxLink
Definition: MSVtxValidationAlg.h:217
MSVtxValidationAlg::m_msVtx_nRPC_O
MuonVal::VectorBranch< int > & m_msVtx_nRPC_O
Definition: MSVtxValidationAlg.h:194
MSVtxValidationAlg::m_llpVtx_ctau
MuonVal::VectorBranch< float > & m_llpVtx_ctau
Definition: MSVtxValidationAlg.h:173
MSVtxValidationAlg::m_pdgId_llp
Gaudi::Property< int > m_pdgId_llp
Definition: MSVtxValidationAlg.h:101
MSVtxValidationAlg::m_msVtx_nMDT_I
MuonVal::VectorBranch< int > & m_msVtx_nMDT_I
Definition: MSVtxValidationAlg.h:185
MSVtxValidationAlg::m_evtKey
SG::ReadHandleKey< xAOD::EventInfo > m_evtKey
Definition: MSVtxValidationAlg.h:62
EventInfo.h
MSVtxValidationAlg::TriggerInfo::passed
std::vector< bool > passed
Definition: MSVtxValidationAlg.h:82
MSVtxValidationAlg::m_msVtx_pos
MuonVal::ThreeVectorBranch m_msVtx_pos
Definition: MSVtxValidationAlg.h:177
MSVtxValidationAlg::m_truthVtx_interactionType
MuonVal::VectorBranch< int > & m_truthVtx_interactionType
Definition: MSVtxValidationAlg.h:144
MSVtxValidationAlg::m_MetKey
SG::ReadHandleKey< xAOD::MissingETContainer > m_MetKey
Definition: MSVtxValidationAlg.h:67
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
MSVtxValidationAlg::m_trigDec
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
Definition: MSVtxValidationAlg.h:76
RTTAlgmain.branch
branch
Definition: RTTAlgmain.py:61
MSVtxValidationAlg::m_h_subleadLLPpt
TH1F * m_h_subleadLLPpt
Definition: MSVtxValidationAlg.h:262
MSVtxValidationAlg::m_truthVtx_pos
MuonVal::ThreeVectorBranch m_truthVtx_pos
Definition: MSVtxValidationAlg.h:142
VertexContainer.h
MSVtxValidationAlg::getTriggerDecisions
TriggerInfo getTriggerDecisions(std::string triggerString)
Definition: MSVtxValidationAlg.cxx:310
MSVtxValidationAlg::m_trklet_eta
MuonVal::VectorBranch< float > & m_trklet_eta
Definition: MSVtxValidationAlg.h:213
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
JetContainer.h
MuonVal::MatrixBranch< int >
MSVtxValidationAlg::m_trklet_qOverP
MuonVal::VectorBranch< float > & m_trklet_qOverP
Definition: MSVtxValidationAlg.h:215
MSVtxValidationAlg::m_msVtx_nTGC_O
MuonVal::VectorBranch< int > & m_msVtx_nTGC_O
Definition: MSVtxValidationAlg.h:200
MSVtxValidationAlg::m_triggerStringJets
Gaudi::Property< std::string > m_triggerStringJets
Definition: MSVtxValidationAlg.h:85
MSVtxValidationAlg::m_h_leadLLPLz
TH1F * m_h_leadLLPLz
Definition: MSVtxValidationAlg.h:256
MSVtxValidationAlg::fillHits
void fillHits(const xAOD::Vertex *vtx, const std::string &decorator_str, MuonVal::VectorBranch< int > &branch)
Definition: MSVtxValidationAlg.cxx:485
R3MatchingTool.h
SegmentVariables.h
MSVtxValidationAlg::m_actVtx_chainDepth
MuonVal::VectorBranch< int > & m_actVtx_chainDepth
Definition: MSVtxValidationAlg.h:232
MSVtxValidationAlg::m_trklet_N
MuonVal::ScalarBranch< int > & m_trklet_N
Definition: MSVtxValidationAlg.h:209
MuonVal::MuonTesterTree::newMatrix
MatrixBranch< T > & newMatrix(const std::string &name)
MSVtxValidationAlg::m_trklet_mom
MuonVal::ThreeVectorBranch m_trklet_mom
Definition: MSVtxValidationAlg.h:208
MSVtxValidationAlg::m_h_subleadLLPLxy
TH1F * m_h_subleadLLPLxy
Definition: MSVtxValidationAlg.h:259
MSVtxValidationAlg::m_actVtx_truthParticle_link
MuonVal::MatrixBranch< int > & m_actVtx_truthParticle_link
Definition: MSVtxValidationAlg.h:240
MSVtxValidationAlg::m_msVtx_nRPC_inwards
MuonVal::VectorBranch< int > & m_msVtx_nRPC_inwards
Definition: MSVtxValidationAlg.h:190
MSVtxValidationAlg::m_actVtx_scalarPtSum
MuonVal::VectorBranch< float > & m_actVtx_scalarPtSum
Definition: MSVtxValidationAlg.h:236
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
MSVtxValidationAlg::m_h_leadLLPLxy
TH1F * m_h_leadLLPLxy
Definition: MSVtxValidationAlg.h:255
MSVtxValidationAlg::m_jetTriggerMatchingDR
Gaudi::Property< float > m_jetTriggerMatchingDR
Definition: MSVtxValidationAlg.h:86
ReadHandle.h
Handle class for reading from StoreGate.
MSVtxValidationAlg::m_dumpTruthVertices
Gaudi::Property< bool > m_dumpTruthVertices
Definition: MSVtxValidationAlg.h:94
MSVtxValidationAlg::m_dumpTruthParticles
Gaudi::Property< bool > m_dumpTruthParticles
Definition: MSVtxValidationAlg.h:93
MSVtxValidationAlg::m_TrackletKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackletKey
Definition: MSVtxValidationAlg.h:69
MSVtxValidationAlg::fillLLP
StatusCode fillLLP(std::vector< const xAOD::TruthParticle * > &llps)
Definition: MSVtxValidationAlg.cxx:165
MSVtxValidationAlg::fillTracklets
StatusCode fillTracklets(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:399
MSVtxValidationAlg::m_jet_NactVtx
MuonVal::VectorBranch< int > & m_jet_NactVtx
Definition: MSVtxValidationAlg.h:226
MissingETContainer.h
MSVtxValidationAlg::fillMet
StatusCode fillMet(const EventContext &ctx)
Definition: MSVtxValidationAlg.cxx:385
TrackParticleContainer.h
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
MSVtxValidationAlg::m_fillJets
Gaudi::Property< bool > m_fillJets
Definition: MSVtxValidationAlg.h:96
MSVtxValidationAlg::m_truthParticle_actVtx_link
MuonVal::VectorBranch< int > & m_truthParticle_actVtx_link
Definition: MSVtxValidationAlg.h:154
MSVtxValidationAlg::m_h_leadLLPctau
TH1F * m_h_leadLLPctau
Definition: MSVtxValidationAlg.h:257
MSVtxValidationAlg::m_isMC
Gaudi::Property< bool > m_isMC
Definition: MSVtxValidationAlg.h:90