Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DecoratePromptLeptonImproved.h
Go to the documentation of this file.
1 // This is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef PROMPT_DECORATEPROMPTLEPTONRNN_H
8 #define PROMPT_DECORATEPROMPTLEPTONRNN_H
9 
10 /**********************************************************************************
11  * @Package: LeptonTaggers
12  * @Class : DecoratePromptLeptonImproved
13  * @Author : Fudong He
14  * @Author : Rustem Ospanov
15  *
16  * @Brief :
17  *
18  * Decorate leptons with prompt BDT output
19  *
20  **********************************************************************************/
21 
22 // Local
23 #include "VarHolder.h"
24 
25 // Tools
27 
28 // Athena
30 #include "GaudiKernel/ToolHandle.h"
33 
34 // xAOD
36 #include "xAODMuon/MuonContainer.h"
37 #include "xAODJet/JetContainer.h"
39 #include "xAODTracking/Vertex.h"
40 
41 // ROOT
42 #include "TMVA/Reader.h"
43 #include "TStopwatch.h"
44 #include "TH1.h"
45 
46 #include <unordered_map>
47 #include <optional>
48 
49 namespace Prompt
50 {
51  class DecoratePromptLeptonImproved: public AthAlgorithm
52  {
53  /*
54  This class is mainly used to calculate and decorate the PromptLeptonImproved BDT to the lepton, workflow like:
55  1. Calculate the input variables of the BDT:
56  1.1 Find the track jet nearby and calculate the variables relate to the track jet.
57  1.2 Calculate the secondary vertex variables with the vertices that associate to the lepton.
58  1.3 Get the dedicated RNN score of the lepton
59  2. Predict the PromptLeptonImproved for electrons or muons by TMVA
60  3. Decorate the PromptLeptonImproved BDT and its input variables to the leptons
61 
62  */
63 
64  public:
65 
66  DecoratePromptLeptonImproved(const std::string& name, ISvcLocator *pSvcLocator);
67 
68  virtual StatusCode initialize() override;
69  virtual StatusCode execute() override;
70  virtual StatusCode finalize() override;
71 
72  private:
75 
76  bool initializeTMVAReader();
77 
80 
81  void decorateElec(
82  const xAOD::Electron &electron,
83  const xAOD::JetContainer &trackJets,
85  const xAOD::Vertex *primaryVertex,
86  std::vector<decoratorFloatH_t>& floatDecors,
87  std::vector<decoratorShortH_t>& shortDecors
88  );
89 
90  void decorateMuon(
91  const xAOD::Muon &muon,
92  const xAOD::JetContainer &trackJets,
93  const xAOD::Vertex *primaryVertex,
94  std::vector<decoratorFloatH_t>& floatDecors,
95  std::vector<decoratorShortH_t>& shortDecors
96  );
97 
98  void getMutualVariables(
99  const xAOD::IParticle &particle,
100  const xAOD::Jet &track_jet,
101  const xAOD::TrackParticle *track,
102  Prompt::VarHolder &vars
103  ) const;
104 
105  void getMuonAnpVariables(
106  const xAOD::Muon &muon,
107  Prompt::VarHolder &vars,
108  const xAOD::Vertex *primaryVertex
109  ) const;
110 
112  const xAOD::Electron &elec,
114  Prompt::VarHolder &vars,
115  const xAOD::Vertex *primaryVertex
116  );
117 
118  float accessIsolation(const SG::ConstAccessor<float> &isoAccessor,
119  const xAOD::IParticle &particle) const;
120 
121  void addVarsToTMVA(Prompt::VarHolder &vars);
122 
123  void fillVarDefault(Prompt::VarHolder &vars) const;
124 
125  void decorateAuxLepton(
126  const xAOD::IParticle &particle,
127  Prompt::VarHolder &vars,
128  std::vector<decoratorFloatH_t>& floatDecors,
129  std::vector<decoratorShortH_t>& shortDecors
130  ) const;
131 
132  template<class T> std::pair<double, const xAOD::Jet*> findTrackJet(const T &part, const xAOD::JetContainer &jets);
133 
134  double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton,
135  const xAOD::Vertex *secondaryVertex,
136  const xAOD::Vertex *primaryVertex) const;
137 
138  double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton,
139  const xAOD::Vertex *secondaryVertex,
140  const xAOD::Vertex *primaryVertex) const;
141 
144 
145  using floatAccessorMap = std::map<Prompt::Def::Var, AccessFloat>;
146 
147  // Properties:
148  Gaudi::Property<std::string> m_leptonsName {
149  this, "LeptonContainerName", "",
150  "Container's name of the lepton that you want to decorate. Also need to set ElectronContainerKey or MuonContainerKey accordingly"
151  };
152 
153  Gaudi::Property<std::string> m_configFileVersion {this, "ConfigFileVersion", "", "BDT weight file version"};
154  Gaudi::Property<std::string> m_configPathOverride {this, "ConfigPathOverride", "", "Path of the local BDT weight file you want to study/test"};
155  Gaudi::Property<std::string> m_inputVarDecoratePrefix {this, "InputVarDecoratePrefix", "", "Prefix of the variables that will be decorated into the lepton"};
156  Gaudi::Property<std::string> m_BDTName {this, "BDTName", "", "BDT name"};
157  Gaudi::Property<std::string> m_methodTitleMVA {this, "MethodTitleMVA", "BDT", "Help to config the path of the BDT xml file"};
158 
159  Gaudi::Property<std::vector<std::string>> m_accessorRNNVars {this, "accessorRNNVars", {}, "Name of the RNN accessor of the lepton"};
160  Gaudi::Property<std::vector<std::string>> m_stringIntVars {this, "stringIntVars", {}, "Vector of the BDT int variables' names and they will be decorated into lepton if not in the veto list"};
161  Gaudi::Property<std::vector<std::string>> m_stringFloatVars {this, "stringFloatVars", {}, "Vector of the BDT float variables' names and they will be decorated into lepton if not in the veto list"};
162  Gaudi::Property<std::vector<std::string>> m_extraDecoratorFloatVars {this, "extraDecoratorFloatVars", {}, "Extra float variables' names you want to compute and decorate into the lepton"};
163  Gaudi::Property<std::vector<std::string>> m_extraDecoratorShortVars {this, "extraDecoratorShortVars", {}, "Extra short variables' names you want to compute and decorate into the lepton"};
164  Gaudi::Property<std::vector<std::string>> m_vetoDecoratorFloatVars {this, "vetoDecoratorFloatVars", {}, "Vector of the float variables' names you do not want to save"};
165  Gaudi::Property<std::vector<std::string>> m_vetoDecoratorShortVars {this, "vetoDecoratorShortVars", {}, "Vector of the short variables' names you do not want to save"};
166  Gaudi::Property<std::vector<double>> m_leptonPtBinsVector {this, "leptonPtBinsVector", {}, "pT bin edges that are used for MVABin calculation"};
167 
168  Gaudi::Property<bool> m_printTime {this, "PrintTime", false, "Whether to print current time"};
169 
170  Gaudi::Property<std::string> m_vertexLinkName {this, "VertexLinkName", "", "ElementLink name of the secondary vertices"};
171  Gaudi::Property<double> m_vertexMinChiSquaredProb {this, "VertexMinChiSquaredProb", 0.03, "Vertex chi2 cut"};
172  Gaudi::Property<double> m_vertexMinThetaBarrElec {this, "VertexMinThetaBarrElec", 0.002, "Vertex theta between lepton and the direction of sv-pv cut for barrel electrons"};
173  Gaudi::Property<double> m_vertexMinThetaEcapElec {this, "VertexMinThetaEcapElec", 0.001, "Vertex theta between lepton and the direction of sv-pv cut for central electrons"};
174  Gaudi::Property<double> m_vertexBarrEcapAbsEtaAt {this, "VertexBarrEcapAbsEtaAt", 1.37, "Relate to the vertex cut above, define the barrel and central electrons by abs(eta)"};
175  Gaudi::Property<double> m_elecMinCalErelConeSize {this, "ElecMinCalErelConeSize", 0.15, "Cut of the cluster for calculating the core energy of the lepton"};
176  Gaudi::Property<double> m_maxLepTrackJetDR {this, "maxLepTrackJetDR", 0.4, "Maximum distance between lepton and track jet for track jet matching"};
177 
178  // Read/write handles
180  this, "TrackJetContainerName", "", "Track Jet container name"
181  };
183  this, "PrimaryVertexContainerName", "", "Primary vertex container name"
184  };
186  this, "ClusterContainerName", "",
187  "Container name of the Clusters which are used to calculate the input variables for the PromptLeptonImproved"
188  };
189 
191  this, "ElectronContainerKey", "Electrons",
192  "Container's name of the electrons that you want to decorate"
193  };
195  this, "MuonContainerKey", "Muons",
196  "Container's name of the muons that you want to decorate"
197  };
198 
199 
200  // Variables:
201  std::vector<Prompt::Def::Var> m_intVars;
202  std::vector<Prompt::Def::Var> m_floatVars;
203  std::vector<Prompt::Def::Var> m_allVars;
204 
205  std::unique_ptr<Prompt::VarHolder> m_vars;
206 
208 
209  std::unique_ptr<TMVA::Reader> m_TMVAReader;
210  std::vector<Float_t> m_varTMVA;
211 
212  std::optional<AccessVertex> m_accessDeepSecondaryVertex;
213 
215 
216  std::unique_ptr<TH1D> m_leptonPtBinHist;
217 
218  TStopwatch m_timerAll;
219  TStopwatch m_timerExec;
220  TStopwatch m_timerMuon;
221  TStopwatch m_timerElec;
222 
224  { this, "FloatDecorHandleKeys", {} };
226  { this, "ShortDecorHandleKeys", {} };
227 
228  using DecorMap_t = std::unordered_map<Def::Var, size_t>;
231 
232  };
233 }
234 
235 #endif // PROMPT_DECORATEPROMPTLEPTON_H
Prompt::DecoratePromptLeptonImproved::m_primaryVertexKey
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexKey
Definition: DecoratePromptLeptonImproved.h:202
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
Prompt::DecoratePromptLeptonImproved::getVertexLongitudinalNormDist
double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const
Definition: DecoratePromptLeptonImproved.cxx:875
Prompt
Definition: DecoratePLIT.h:29
Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorShortVars
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorShortVars
Definition: DecoratePromptLeptonImproved.h:185
Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorFloatVars
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorFloatVars
Definition: DecoratePromptLeptonImproved.h:184
Prompt::DecoratePromptLeptonImproved::m_elecMinCalErelConeSize
Gaudi::Property< double > m_elecMinCalErelConeSize
Definition: DecoratePromptLeptonImproved.h:195
Prompt::DecoratePromptLeptonImproved::m_leptonPtBinsVector
Gaudi::Property< std::vector< double > > m_leptonPtBinsVector
Definition: DecoratePromptLeptonImproved.h:186
Prompt::DecoratePromptLeptonImproved::initializeTMVAReader
bool initializeTMVAReader()
Definition: DecoratePromptLeptonImproved.cxx:220
Prompt::DecoratePromptLeptonImproved::m_intVars
std::vector< Prompt::Def::Var > m_intVars
Definition: DecoratePromptLeptonImproved.h:221
Prompt::VarHolder
Definition: VarHolder.h:112
Prompt::DecoratePromptLeptonImproved::m_allVars
std::vector< Prompt::Def::Var > m_allVars
Definition: DecoratePromptLeptonImproved.h:223
Prompt::DecoratePromptLeptonImproved::m_accessRNNMap
floatAccessorMap m_accessRNNMap
Definition: DecoratePromptLeptonImproved.h:234
Prompt::DecoratePromptLeptonImproved::m_BDTName
Gaudi::Property< std::string > m_BDTName
Definition: DecoratePromptLeptonImproved.h:176
Prompt::DecoratePromptLeptonImproved::initializeConstAccessors
void initializeConstAccessors()
Definition: DecoratePromptLeptonImproved.cxx:381
defineDB.jets
jets
Definition: JetTagCalibration/share/defineDB.py:24
Prompt::DecoratePromptLeptonImproved::m_electronsKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronsKey
Definition: DecoratePromptLeptonImproved.h:210
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
Prompt::DecoratePromptLeptonImproved::findTrackJet
std::pair< double, const xAOD::Jet * > findTrackJet(const T &part, const xAOD::JetContainer &jets)
Definition: DecoratePromptLeptonImproved.cxx:845
SG::ConstAccessor< float >
Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaEcapElec
Gaudi::Property< double > m_vertexMinThetaEcapElec
Definition: DecoratePromptLeptonImproved.h:193
Prompt::DecoratePromptLeptonImproved::m_stringFloatVars
Gaudi::Property< std::vector< std::string > > m_stringFloatVars
Definition: DecoratePromptLeptonImproved.h:181
Prompt::DecoratePromptLeptonImproved::getMuonAnpVariables
void getMuonAnpVariables(const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) const
Definition: DecoratePromptLeptonImproved.cxx:592
Prompt::DecoratePromptLeptonImproved::m_vertexBarrEcapAbsEtaAt
Gaudi::Property< double > m_vertexBarrEcapAbsEtaAt
Definition: DecoratePromptLeptonImproved.h:194
SG::ReadHandleKey< xAOD::JetContainer >
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
Prompt::DecoratePromptLeptonImproved::m_shortDecorHandleKeys
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > m_shortDecorHandleKeys
Definition: DecoratePromptLeptonImproved.h:246
Prompt::DecoratePromptLeptonImproved::DecorMap_t
std::unordered_map< Def::Var, size_t > DecorMap_t
Definition: DecoratePromptLeptonImproved.h:248
Prompt::DecoratePromptLeptonImproved::getElectronAnpVariables
void getElectronAnpVariables(const xAOD::Electron &elec, const xAOD::CaloClusterContainer &clusters, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:504
Prompt::DecoratePromptLeptonImproved::m_muonsKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
Definition: DecoratePromptLeptonImproved.h:214
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
Prompt::DecoratePromptLeptonImproved::m_timerExec
TStopwatch m_timerExec
Definition: DecoratePromptLeptonImproved.h:239
Prompt::DecoratePromptLeptonImproved::finalize
virtual StatusCode finalize() override
Definition: DecoratePromptLeptonImproved.cxx:124
Prompt::DecoratePromptLeptonImproved::m_TMVAReader
std::unique_ptr< TMVA::Reader > m_TMVAReader
Definition: DecoratePromptLeptonImproved.h:229
AthAlgorithm.h
Prompt::DecoratePromptLeptonImproved::m_timerElec
TStopwatch m_timerElec
Definition: DecoratePromptLeptonImproved.h:241
Prompt::DecoratePromptLeptonImproved::execute
virtual StatusCode execute() override
Definition: DecoratePromptLeptonImproved.cxx:144
Prompt::DecoratePromptLeptonImproved::m_extraDecoratorShortVars
Gaudi::Property< std::vector< std::string > > m_extraDecoratorShortVars
Definition: DecoratePromptLeptonImproved.h:183
Prompt::DecoratePromptLeptonImproved::m_methodTitleMVA
Gaudi::Property< std::string > m_methodTitleMVA
Definition: DecoratePromptLeptonImproved.h:177
ElectronContainer.h
Prompt::DecoratePromptLeptonImproved::m_extraDecoratorFloatVars
Gaudi::Property< std::vector< std::string > > m_extraDecoratorFloatVars
Definition: DecoratePromptLeptonImproved.h:182
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
Prompt::DecoratePromptLeptonImproved::m_BDTVarKey
Prompt::Def::Var m_BDTVarKey
Definition: DecoratePromptLeptonImproved.h:227
Prompt::DecoratePromptLeptonImproved::floatAccessorMap
std::map< Prompt::Def::Var, AccessFloat > floatAccessorMap
Definition: DecoratePromptLeptonImproved.h:165
Prompt::DecoratePromptLeptonImproved::m_inputVarDecoratePrefix
Gaudi::Property< std::string > m_inputVarDecoratePrefix
Definition: DecoratePromptLeptonImproved.h:175
Prompt::DecoratePromptLeptonImproved::m_printTime
Gaudi::Property< bool > m_printTime
Definition: DecoratePromptLeptonImproved.h:188
Prompt::DecoratePromptLeptonImproved::m_floatVars
std::vector< Prompt::Def::Var > m_floatVars
Definition: DecoratePromptLeptonImproved.h:222
Prompt::DecoratePromptLeptonImproved::m_floatDecorMap
DecorMap_t m_floatDecorMap
Definition: DecoratePromptLeptonImproved.h:249
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
Vertex.h
Prompt::DecoratePromptLeptonImproved::m_shortDecorMap
DecorMap_t m_shortDecorMap
Definition: DecoratePromptLeptonImproved.h:250
AthAlgorithm
Definition: AthAlgorithm.h:47
Prompt::DecoratePromptLeptonImproved::m_maxLepTrackJetDR
Gaudi::Property< double > m_maxLepTrackJetDR
Definition: DecoratePromptLeptonImproved.h:196
Prompt::DecoratePromptLeptonImproved::accessIsolation
float accessIsolation(const SG::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &particle) const
Definition: DecoratePromptLeptonImproved.cxx:741
Prompt::DecoratePromptLeptonImproved::decorateElec
void decorateElec(const xAOD::Electron &electron, const xAOD::JetContainer &trackJets, const xAOD::CaloClusterContainer &clusters, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors)
Definition: DecoratePromptLeptonImproved.cxx:404
PathResolver.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Prompt::DecoratePromptLeptonImproved::addVarsToTMVA
void addVarsToTMVA(Prompt::VarHolder &vars)
Definition: DecoratePromptLeptonImproved.cxx:762
Prompt::DecoratePromptLeptonImproved::m_leptonPtBinHist
std::unique_ptr< TH1D > m_leptonPtBinHist
Definition: DecoratePromptLeptonImproved.h:236
Prompt::DecoratePromptLeptonImproved::m_accessorRNNVars
Gaudi::Property< std::vector< std::string > > m_accessorRNNVars
Definition: DecoratePromptLeptonImproved.h:179
Prompt::DecoratePromptLeptonImproved::m_stringIntVars
Gaudi::Property< std::vector< std::string > > m_stringIntVars
Definition: DecoratePromptLeptonImproved.h:180
Prompt::DecoratePromptLeptonImproved::m_clusterContainerKey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterContainerKey
Definition: DecoratePromptLeptonImproved.h:205
xAOD::Electron_v1
Definition: Electron_v1.h:34
Prompt::DecoratePromptLeptonImproved::fillVarDefault
void fillVarDefault(Prompt::VarHolder &vars) const
Definition: DecoratePromptLeptonImproved.cxx:789
VarHolder.h
MuonContainer.h
Prompt::DecoratePromptLeptonImproved::m_configPathOverride
Gaudi::Property< std::string > m_configPathOverride
Definition: DecoratePromptLeptonImproved.h:174
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
Prompt::DecoratePromptLeptonImproved::m_varTMVA
std::vector< Float_t > m_varTMVA
Definition: DecoratePromptLeptonImproved.h:230
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Prompt::DecoratePromptLeptonImproved::m_timerAll
TStopwatch m_timerAll
Definition: DecoratePromptLeptonImproved.h:238
JetContainer.h
Prompt::DecoratePromptLeptonImproved::m_floatDecorHandleKeys
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > m_floatDecorHandleKeys
Definition: DecoratePromptLeptonImproved.h:244
WriteDecorHandleKeyArray.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Prompt::DecoratePromptLeptonImproved::m_vertexLinkName
Gaudi::Property< std::string > m_vertexLinkName
Definition: DecoratePromptLeptonImproved.h:190
Prompt::DecoratePromptLeptonImproved::initialize
virtual StatusCode initialize() override
Definition: DecoratePromptLeptonImproved.cxx:44
Prompt::DecoratePromptLeptonImproved::getMutualVariables
void getMutualVariables(const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars) const
Definition: DecoratePromptLeptonImproved.cxx:670
Prompt::DecoratePromptLeptonImproved::m_configFileVersion
Gaudi::Property< std::string > m_configFileVersion
Definition: DecoratePromptLeptonImproved.h:173
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Prompt::DecoratePromptLeptonImproved::m_accessDeepSecondaryVertex
std::optional< AccessVertex > m_accessDeepSecondaryVertex
Definition: DecoratePromptLeptonImproved.h:232
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
Prompt::DecoratePromptLeptonImproved::m_timerMuon
TStopwatch m_timerMuon
Definition: DecoratePromptLeptonImproved.h:240
Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaBarrElec
Gaudi::Property< double > m_vertexMinThetaBarrElec
Definition: DecoratePromptLeptonImproved.h:192
Prompt::Def::Var
Var
Definition: VarHolder.h:57
Prompt::DecoratePromptLeptonImproved::m_vertexMinChiSquaredProb
Gaudi::Property< double > m_vertexMinChiSquaredProb
Definition: DecoratePromptLeptonImproved.h:191
Prompt::DecoratePromptLeptonImproved::DecoratePromptLeptonImproved
DecoratePromptLeptonImproved(const std::string &name, ISvcLocator *pSvcLocator)
Definition: DecoratePromptLeptonImproved.cxx:38
Prompt::DecoratePromptLeptonImproved::initializeDecorators
StatusCode initializeDecorators()
Definition: DecoratePromptLeptonImproved.cxx:262
Prompt::DecoratePromptLeptonImproved::decorateMuon
void decorateMuon(const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors)
Definition: DecoratePromptLeptonImproved.cxx:455
Prompt::DecoratePromptLeptonImproved::getVertexCosThetaWithLepDir
double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const
Definition: DecoratePromptLeptonImproved.cxx:902
Prompt::DecoratePromptLeptonImproved::m_vars
std::unique_ptr< Prompt::VarHolder > m_vars
Definition: DecoratePromptLeptonImproved.h:225
Prompt::DecoratePromptLeptonImproved::decorateAuxLepton
void decorateAuxLepton(const xAOD::IParticle &particle, Prompt::VarHolder &vars, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors) const
Definition: DecoratePromptLeptonImproved.cxx:804
Prompt::DecoratePromptLeptonImproved::m_trackJetsKey
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetsKey
Definition: DecoratePromptLeptonImproved.h:199
Prompt::DecoratePromptLeptonImproved::m_leptonsName
Gaudi::Property< std::string > m_leptonsName
Definition: DecoratePromptLeptonImproved.h:168