ATLAS Offline Software
DecoratePromptLeptonImproved.h
Go to the documentation of this file.
1 // This is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 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"
31 
32 // xAOD
34 #include "xAODMuon/MuonContainer.h"
35 #include "xAODJet/JetContainer.h"
37 #include "xAODTracking/Vertex.h"
38 
39 // ROOT
40 #include "TMVA/Reader.h"
41 #include "TStopwatch.h"
42 #include "TH1.h"
43 
44 namespace Prompt
45 {
47  {
48  /*
49  This class is mainly used to calculate and decorate the PromptLeptonImproved BDT to the lepton, workflow like:
50  1. Calculate the input variables of the BDT:
51  1.1 Find the track jet nearby and calculate the variables relate to the track jet.
52  1.2 Calculate the secondary vertex variables with the vertices that associate to the lepton.
53  1.3 Get the dedicated RNN score of the lepton
54  2. Predict the PromptLeptonImproved for electrons or muons by TMVA
55  3. Decorate the PromptLeptonImproved BDT and its input variables to the leptons
56 
57  */
58 
59  public:
60 
61  DecoratePromptLeptonImproved(const std::string& name, ISvcLocator *pSvcLocator);
62 
63  virtual StatusCode initialize() override;
64  virtual StatusCode execute() override;
65  virtual StatusCode finalize() override;
66 
67  private:
68 
69  bool initializeTMVAReader();
70 
73 
74  void decorateElec(
75  const xAOD::Electron &electron,
76  const xAOD::JetContainer &trackJets,
78  const xAOD::Vertex *primaryVertex
79  );
80 
81  void decorateMuon(
82  const xAOD::Muon &muon,
83  const xAOD::JetContainer &trackJets,
84  const xAOD::Vertex *primaryVertex
85  );
86 
87  void getMutualVariables(
89  const xAOD::Jet &track_jet,
91  Prompt::VarHolder &vars
92  );
93 
95  const xAOD::Muon &muon,
96  Prompt::VarHolder &vars,
97  const xAOD::Vertex *primaryVertex
98  );
99 
101  const xAOD::Electron &elec,
103  Prompt::VarHolder &vars,
104  const xAOD::Vertex *primaryVertex
105  );
106 
108  const xAOD::IParticle &particle);
109 
110  void addVarsToTMVA(Prompt::VarHolder &vars);
111 
112  void fillVarDefault(Prompt::VarHolder &vars) const;
113 
114  void decorateAuxLepton(
115  const xAOD::IParticle &particle,
116  Prompt::VarHolder &vars
117  );
118 
119  template<class T> std::pair<double, const xAOD::Jet*> findTrackJet(const T &part, const xAOD::JetContainer &jets);
120 
121  double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton,
122  const xAOD::Vertex *secondaryVertex,
123  const xAOD::Vertex *primaryVertex);
124 
125  double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton,
126  const xAOD::Vertex *secondaryVertex,
127  const xAOD::Vertex *primaryVertex);
128 
129  typedef std::map<Prompt::Def::Var, SG::AuxElement::Decorator<short> > shortDecoratorMap;
130  typedef std::map<Prompt::Def::Var, SG::AuxElement::Decorator<float> > floatDecoratorMap;
131 
134 
135  typedef std::map<Prompt::Def::Var, AccessFloat> floatAccessorMap;
136 
137  // Properties:
138  Gaudi::Property<std::string> m_leptonsName {
139  this, "LeptonContainerName", "",
140  "Container's name of the lepton that you want to decorate. Also need to set ElectronContainerKey or MuonContainerKey accordingly"
141  };
142 
143  Gaudi::Property<std::string> m_configFileVersion {this, "ConfigFileVersion", "", "BDT weight file version"};
144  Gaudi::Property<std::string> m_configPathOverride {this, "ConfigPathOverride", "", "Path of the local BDT weight file you want to study/test"};
145  Gaudi::Property<std::string> m_inputVarDecoratePrefix {this, "InputVarDecoratePrefix", "", "Prefix of the variables that will be decorated into the lepton"};
146  Gaudi::Property<std::string> m_BDTName {this, "BDTName", "", "BDT name"};
147  Gaudi::Property<std::string> m_methodTitleMVA {this, "MethodTitleMVA", "BDT", "Help to config the path of the BDT xml file"};
148 
149  Gaudi::Property<std::vector<std::string>> m_accessorRNNVars {this, "accessorRNNVars", {}, "Name of the RNN accessor of the lepton"};
150  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"};
151  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"};
152  Gaudi::Property<std::vector<std::string>> m_extraDecoratorFloatVars {this, "extraDecoratorFloatVars", {}, "Extra float variables' names you want to compute and decorate into the lepton"};
153  Gaudi::Property<std::vector<std::string>> m_extraDecoratorShortVars {this, "extraDecoratorShortVars", {}, "Extra short variables' names you want to compute and decorate into the lepton"};
154  Gaudi::Property<std::vector<std::string>> m_vetoDecoratorFloatVars {this, "vetoDecoratorFloatVars", {}, "Vector of the float variables' names you do not want to save"};
155  Gaudi::Property<std::vector<std::string>> m_vetoDecoratorShortVars {this, "vetoDecoratorShortVars", {}, "Vector of the short variables' names you do not want to save"};
156  Gaudi::Property<std::vector<double>> m_leptonPtBinsVector {this, "leptonPtBinsVector", {}, "pT bin edges that are used for MVABin calculation"};
157 
158  Gaudi::Property<bool> m_printTime {this, "PrintTime", false, "Whether to print current time"};
159 
160  Gaudi::Property<std::string> m_vertexLinkName {this, "VertexLinkName", "", "ElementLink name of the secondary vertices"};
161  Gaudi::Property<double> m_vertexMinChiSquaredProb {this, "VertexMinChiSquaredProb", 0.03, "Vertex chi2 cut"};
162  Gaudi::Property<double> m_vertexMinThetaBarrElec {this, "VertexMinThetaBarrElec", 0.002, "Vertex theta between lepton and the direction of sv-pv cut for barrel electrons"};
163  Gaudi::Property<double> m_vertexMinThetaEcapElec {this, "VertexMinThetaEcapElec", 0.001, "Vertex theta between lepton and the direction of sv-pv cut for central electrons"};
164  Gaudi::Property<double> m_vertexBarrEcapAbsEtaAt {this, "VertexBarrEcapAbsEtaAt", 1.37, "Relate to the vertex cut above, define the barrel and central electrons by abs(eta)"};
165  Gaudi::Property<double> m_elecMinCalErelConeSize {this, "ElecMinCalErelConeSize", 0.15, "Cut of the cluster for calculating the core energy of the lepton"};
166  Gaudi::Property<double> m_maxLepTrackJetDR {this, "maxLepTrackJetDR", 0.4, "Maximum distance between lepton and track jet for track jet matching"};
167 
168  // Read/write handles
170  this, "TrackJetContainerName", "", "Track Jet container name"
171  };
173  this, "PrimaryVertexContainerName", "", "Primary vertex container name"
174  };
176  this, "ClusterContainerName", "",
177  "Container name of the Clusters which are used to calculate the input variables for the PromptLeptonImproved"
178  };
179 
181  this, "ElectronContainerKey", "Electrons",
182  "Container's name of the electrons that you want to decorate"
183  };
185  this, "MuonContainerKey", "Muons",
186  "Container's name of the muons that you want to decorate"
187  };
188 
189 
190  // Variables:
191  std::vector<Prompt::Def::Var> m_intVars;
192  std::vector<Prompt::Def::Var> m_floatVars;
193  std::vector<Prompt::Def::Var> m_allVars;
194 
195  std::unique_ptr<Prompt::VarHolder> m_vars;
196 
198 
201 
202  std::unique_ptr<TMVA::Reader> m_TMVAReader;
203  std::vector<Float_t> m_varTMVA;
204 
205  std::unique_ptr<AccessFloat> m_accessCalIsolation30;
206  std::unique_ptr<AccessFloat> m_accessTrackIsolation30;
207  std::unique_ptr<AccessFloat> m_accessTrackIsolation30TTVA;
208  std::unique_ptr<AccessFloat> m_accessMuonCalE;
209  std::unique_ptr<AccessFloat> m_accessMuonParamEnergyLoss;
210  std::unique_ptr<AccessVertex> m_accessDeepSecondaryVertex;
211 
213 
214  std::unique_ptr<TH1D> m_leptonPtBinHist;
215 
216  TStopwatch m_timerAll;
217  TStopwatch m_timerExec;
218  TStopwatch m_timerMuon;
219  TStopwatch m_timerElec;
220  };
221 }
222 
223 #endif // PROMPT_DECORATEPROMPTLEPTON_H
Prompt::DecoratePromptLeptonImproved::m_primaryVertexKey
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexKey
Definition: DecoratePromptLeptonImproved.h:192
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
Prompt
Definition: DecoratePromptLeptonImproved.h:45
Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorShortVars
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorShortVars
Definition: DecoratePromptLeptonImproved.h:175
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorFloatVars
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorFloatVars
Definition: DecoratePromptLeptonImproved.h:174
Prompt::DecoratePromptLeptonImproved::m_elecMinCalErelConeSize
Gaudi::Property< double > m_elecMinCalErelConeSize
Definition: DecoratePromptLeptonImproved.h:185
Prompt::DecoratePromptLeptonImproved::m_leptonPtBinsVector
Gaudi::Property< std::vector< double > > m_leptonPtBinsVector
Definition: DecoratePromptLeptonImproved.h:176
Prompt::DecoratePromptLeptonImproved::initializeTMVAReader
bool initializeTMVAReader()
Definition: DecoratePromptLeptonImproved.cxx:189
Prompt::DecoratePromptLeptonImproved::m_intVars
std::vector< Prompt::Def::Var > m_intVars
Definition: DecoratePromptLeptonImproved.h:211
Prompt::VarHolder
Definition: VarHolder.h:112
Prompt::DecoratePromptLeptonImproved::m_allVars
std::vector< Prompt::Def::Var > m_allVars
Definition: DecoratePromptLeptonImproved.h:213
Prompt::DecoratePromptLeptonImproved::m_accessRNNMap
floatAccessorMap m_accessRNNMap
Definition: DecoratePromptLeptonImproved.h:232
Prompt::DecoratePromptLeptonImproved::m_BDTName
Gaudi::Property< std::string > m_BDTName
Definition: DecoratePromptLeptonImproved.h:166
Prompt::DecoratePromptLeptonImproved::initializeConstAccessors
void initializeConstAccessors()
Definition: DecoratePromptLeptonImproved.cxx:360
Prompt::DecoratePromptLeptonImproved::decorateMuon
void decorateMuon(const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:442
Prompt::DecoratePromptLeptonImproved::m_electronsKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronsKey
Definition: DecoratePromptLeptonImproved.h:200
Prompt::DecoratePromptLeptonImproved::findTrackJet
std::pair< double, const xAOD::Jet * > findTrackJet(const T &part, const xAOD::JetContainer &jets)
Definition: DecoratePromptLeptonImproved.cxx:828
Prompt::DecoratePromptLeptonImproved::AccessFloat
SG::AuxElement::ConstAccessor< float > AccessFloat
Definition: DecoratePromptLeptonImproved.h:152
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaEcapElec
Gaudi::Property< double > m_vertexMinThetaEcapElec
Definition: DecoratePromptLeptonImproved.h:183
Prompt::DecoratePromptLeptonImproved::m_stringFloatVars
Gaudi::Property< std::vector< std::string > > m_stringFloatVars
Definition: DecoratePromptLeptonImproved.h:171
Prompt::DecoratePromptLeptonImproved::m_vertexBarrEcapAbsEtaAt
Gaudi::Property< double > m_vertexBarrEcapAbsEtaAt
Definition: DecoratePromptLeptonImproved.h:184
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
Prompt::DecoratePromptLeptonImproved::m_accessCalIsolation30
std::unique_ptr< AccessFloat > m_accessCalIsolation30
Definition: DecoratePromptLeptonImproved.h:225
Prompt::DecoratePromptLeptonImproved::getElectronAnpVariables
void getElectronAnpVariables(const xAOD::Electron &elec, const xAOD::CaloClusterContainer &clusters, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:489
Prompt::DecoratePromptLeptonImproved::m_muonsKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
Definition: DecoratePromptLeptonImproved.h:204
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
Prompt::DecoratePromptLeptonImproved::m_timerExec
TStopwatch m_timerExec
Definition: DecoratePromptLeptonImproved.h:237
Prompt::DecoratePromptLeptonImproved::finalize
virtual StatusCode finalize() override
Definition: DecoratePromptLeptonImproved.cxx:106
Prompt::DecoratePromptLeptonImproved::m_TMVAReader
std::unique_ptr< TMVA::Reader > m_TMVAReader
Definition: DecoratePromptLeptonImproved.h:222
AthAlgorithm.h
Prompt::DecoratePromptLeptonImproved::m_timerElec
TStopwatch m_timerElec
Definition: DecoratePromptLeptonImproved.h:239
Prompt::DecoratePromptLeptonImproved::execute
virtual StatusCode execute() override
Definition: DecoratePromptLeptonImproved.cxx:126
Prompt::DecoratePromptLeptonImproved::m_extraDecoratorShortVars
Gaudi::Property< std::vector< std::string > > m_extraDecoratorShortVars
Definition: DecoratePromptLeptonImproved.h:173
Prompt::DecoratePromptLeptonImproved::m_methodTitleMVA
Gaudi::Property< std::string > m_methodTitleMVA
Definition: DecoratePromptLeptonImproved.h:167
ElectronContainer.h
Prompt::DecoratePromptLeptonImproved::decorateAuxLepton
void decorateAuxLepton(const xAOD::IParticle &particle, Prompt::VarHolder &vars)
Definition: DecoratePromptLeptonImproved.cxx:789
Prompt::DecoratePromptLeptonImproved::m_extraDecoratorFloatVars
Gaudi::Property< std::vector< std::string > > m_extraDecoratorFloatVars
Definition: DecoratePromptLeptonImproved.h:172
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Prompt::DecoratePromptLeptonImproved
Definition: DecoratePromptLeptonImproved.h:57
Prompt::DecoratePromptLeptonImproved::getMuonAnpVariables
void getMuonAnpVariables(const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:577
Prompt::DecoratePromptLeptonImproved::m_BDTVarKey
Prompt::Def::Var m_BDTVarKey
Definition: DecoratePromptLeptonImproved.h:217
Prompt::DecoratePromptLeptonImproved::m_accessTrackIsolation30TTVA
std::unique_ptr< AccessFloat > m_accessTrackIsolation30TTVA
Definition: DecoratePromptLeptonImproved.h:227
Prompt::DecoratePromptLeptonImproved::m_accessMuonParamEnergyLoss
std::unique_ptr< AccessFloat > m_accessMuonParamEnergyLoss
Definition: DecoratePromptLeptonImproved.h:229
Prompt::DecoratePromptLeptonImproved::m_inputVarDecoratePrefix
Gaudi::Property< std::string > m_inputVarDecoratePrefix
Definition: DecoratePromptLeptonImproved.h:165
Prompt::DecoratePromptLeptonImproved::m_floatMap
floatDecoratorMap m_floatMap
Definition: DecoratePromptLeptonImproved.h:220
Prompt::DecoratePromptLeptonImproved::m_printTime
Gaudi::Property< bool > m_printTime
Definition: DecoratePromptLeptonImproved.h:178
Prompt::DecoratePromptLeptonImproved::m_accessDeepSecondaryVertex
std::unique_ptr< AccessVertex > m_accessDeepSecondaryVertex
Definition: DecoratePromptLeptonImproved.h:230
Prompt::DecoratePromptLeptonImproved::m_floatVars
std::vector< Prompt::Def::Var > m_floatVars
Definition: DecoratePromptLeptonImproved.h:212
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Vertex.h
Prompt::DecoratePromptLeptonImproved::m_accessMuonCalE
std::unique_ptr< AccessFloat > m_accessMuonCalE
Definition: DecoratePromptLeptonImproved.h:228
Prompt::DecoratePromptLeptonImproved::getMutualVariables
void getMutualVariables(const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars)
Definition: DecoratePromptLeptonImproved.cxx:655
AthAlgorithm
Definition: AthAlgorithm.h:47
Prompt::DecoratePromptLeptonImproved::m_maxLepTrackJetDR
Gaudi::Property< double > m_maxLepTrackJetDR
Definition: DecoratePromptLeptonImproved.h:186
Prompt::DecoratePromptLeptonImproved::shortDecoratorMap
std::map< Prompt::Def::Var, SG::AuxElement::Decorator< short > > shortDecoratorMap
Definition: DecoratePromptLeptonImproved.h:149
PathResolver.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Prompt::DecoratePromptLeptonImproved::addVarsToTMVA
void addVarsToTMVA(Prompt::VarHolder &vars)
Definition: DecoratePromptLeptonImproved.cxx:747
Prompt::DecoratePromptLeptonImproved::m_leptonPtBinHist
std::unique_ptr< TH1D > m_leptonPtBinHist
Definition: DecoratePromptLeptonImproved.h:234
Prompt::DecoratePromptLeptonImproved::m_accessorRNNVars
Gaudi::Property< std::vector< std::string > > m_accessorRNNVars
Definition: DecoratePromptLeptonImproved.h:169
Prompt::DecoratePromptLeptonImproved::m_accessTrackIsolation30
std::unique_ptr< AccessFloat > m_accessTrackIsolation30
Definition: DecoratePromptLeptonImproved.h:226
Prompt::DecoratePromptLeptonImproved::m_stringIntVars
Gaudi::Property< std::vector< std::string > > m_stringIntVars
Definition: DecoratePromptLeptonImproved.h:170
Prompt::DecoratePromptLeptonImproved::floatDecoratorMap
std::map< Prompt::Def::Var, SG::AuxElement::Decorator< float > > floatDecoratorMap
Definition: DecoratePromptLeptonImproved.h:150
Prompt::DecoratePromptLeptonImproved::m_clusterContainerKey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterContainerKey
Definition: DecoratePromptLeptonImproved.h:195
xAOD::Electron_v1
Definition: Electron_v1.h:34
Prompt::DecoratePromptLeptonImproved::fillVarDefault
void fillVarDefault(Prompt::VarHolder &vars) const
Definition: DecoratePromptLeptonImproved.cxx:774
VarHolder.h
MuonContainer.h
Prompt::DecoratePromptLeptonImproved::m_configPathOverride
Gaudi::Property< std::string > m_configPathOverride
Definition: DecoratePromptLeptonImproved.h:164
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:223
Prompt::DecoratePromptLeptonImproved::m_shortMap
shortDecoratorMap m_shortMap
Definition: DecoratePromptLeptonImproved.h:219
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Prompt::DecoratePromptLeptonImproved::m_timerAll
TStopwatch m_timerAll
Definition: DecoratePromptLeptonImproved.h:236
JetContainer.h
Prompt::DecoratePromptLeptonImproved::AccessVertex
SG::AuxElement::ConstAccessor< std::vector< ElementLink< xAOD::VertexContainer > > > AccessVertex
Definition: DecoratePromptLeptonImproved.h:153
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
Prompt::DecoratePromptLeptonImproved::accessIsolation
float accessIsolation(SG::AuxElement::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &particle)
Definition: DecoratePromptLeptonImproved.cxx:726
Prompt::DecoratePromptLeptonImproved::floatAccessorMap
std::map< Prompt::Def::Var, AccessFloat > floatAccessorMap
Definition: DecoratePromptLeptonImproved.h:155
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
Prompt::DecoratePromptLeptonImproved::m_vertexLinkName
Gaudi::Property< std::string > m_vertexLinkName
Definition: DecoratePromptLeptonImproved.h:180
Prompt::DecoratePromptLeptonImproved::initialize
virtual StatusCode initialize() override
Definition: DecoratePromptLeptonImproved.cxx:26
Prompt::DecoratePromptLeptonImproved::m_configFileVersion
Gaudi::Property< std::string > m_configFileVersion
Definition: DecoratePromptLeptonImproved.h:163
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Prompt::DecoratePromptLeptonImproved::m_timerMuon
TStopwatch m_timerMuon
Definition: DecoratePromptLeptonImproved.h:238
Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaBarrElec
Gaudi::Property< double > m_vertexMinThetaBarrElec
Definition: DecoratePromptLeptonImproved.h:182
Prompt::DecoratePromptLeptonImproved::getVertexCosThetaWithLepDir
double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:885
Prompt::Def::Var
Var
Definition: VarHolder.h:57
Prompt::DecoratePromptLeptonImproved::m_vertexMinChiSquaredProb
Gaudi::Property< double > m_vertexMinChiSquaredProb
Definition: DecoratePromptLeptonImproved.h:181
Prompt::DecoratePromptLeptonImproved::DecoratePromptLeptonImproved
DecoratePromptLeptonImproved(const std::string &name, ISvcLocator *pSvcLocator)
Definition: DecoratePromptLeptonImproved.cxx:20
Prompt::DecoratePromptLeptonImproved::getVertexLongitudinalNormDist
double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:858
Prompt::DecoratePromptLeptonImproved::initializeDecorators
StatusCode initializeDecorators()
Definition: DecoratePromptLeptonImproved.cxx:231
Prompt::DecoratePromptLeptonImproved::m_vars
std::unique_ptr< Prompt::VarHolder > m_vars
Definition: DecoratePromptLeptonImproved.h:215
Prompt::DecoratePromptLeptonImproved::decorateElec
void decorateElec(const xAOD::Electron &electron, const xAOD::JetContainer &trackJets, const xAOD::CaloClusterContainer &clusters, const xAOD::Vertex *primaryVertex)
Definition: DecoratePromptLeptonImproved.cxx:393
Prompt::DecoratePromptLeptonImproved::m_trackJetsKey
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetsKey
Definition: DecoratePromptLeptonImproved.h:189
Prompt::DecoratePromptLeptonImproved::m_leptonsName
Gaudi::Property< std::string > m_leptonsName
Definition: DecoratePromptLeptonImproved.h:158