ATLAS Offline Software
EGElectronAmbiguityTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EGElectronAmbiguityTool.h, (c) ATLAS Detector software
8 
9 #ifndef DERIVATIONFRAMEWORK_EGELECTRONAMBIGUITYTOOL_H
10 #define DERIVATIONFRAMEWORK_EGELECTRONAMBIGUITYTOOL_H
11 
12 #include "GaudiKernel/ToolHandle.h"
13 
16 
17 #include "GaudiKernel/EventContext.h"
20 
22 #include "xAODEgamma/Electron.h"
26 #include "xAODTracking/Vertex.h"
28 
29 #include <string>
30 
31 namespace DerivationFramework {
32 
33 class EGElectronAmbiguityTool : public extends<AthAlgTool, IAugmentationTool>
34 {
35 
36 public:
37  EGElectronAmbiguityTool(const std::string& t,
38  const std::string& n,
39  const IInterface* p);
40 
41  virtual StatusCode initialize() override final;
42  virtual StatusCode addBranches() const override final;
43 
44 private:
46  this,
47  "ContainerName",
48  "Electrons",
49  "SG key of electron container"
50  };
52  this,
53  "VtxContainerName",
54  "PrimaryVertices",
55  "SG key of vertex container"
56  };
58  this,
59  "tpContainerName",
60  "InDetTrackParticles",
61  "SG key of track particles container"
62  };
63 
65  this,
66  "tpCName",
67  "GSFTrackParticles",
68  "SG key of TrackParticleInputContainer"
69  };
70 
71  // Write decoration handle keys
73  m_drv{ this, "DFCommonSimpleConvRadius", "", "" };
74 
76  m_dphiv{ this, "DFCommonSimpleConvPhi", "", "" };
77 
79  m_dmee{ this, "DFCommonSimpleMee", "", "" };
80 
82  m_dmeeVtx{ this, "DFCommonSimpleMeeAtVtx", "", "" };
83 
85  m_dsep{ this, "DFCommonSimpleSeparation", "", "" };
86 
88  m_dambi{ this, "DFCommonAddAmbiguity", "", "" };
89 
91  m_dtrv{ this, "DFCommonProdTrueRadius", "", "" };
92 
94  m_dtpv{ this, "DFCommonProdTruePhi", "", "" };
95 
97  m_dtzv{ this, "DFCommonProdTrueZ", "", "" };
98 
99  struct DecorHandles {
100  DecorHandles (const EGElectronAmbiguityTool& tool, const EventContext& ctx);
110  };
111  friend struct DecorHandles;
112 
114  DecorHandles& dh,
115  std::unique_ptr<ConstDataVector<xAOD::TrackParticleContainer>>& tpC,
116  const xAOD::Electron* ele,
117  const xAOD::Vertex* pvtx) const;
118 
119  bool m_isMC{};
120 
121  // cuts to select the electron to run on
122  double m_elepTCut;
123  std::string m_idCut;
124 
125  // cuts to select the other track
126  unsigned int m_nSiCut;
128 
129  // cuts to define the various types :
130  // ambi = -1 : no other track, 0 : other track exists but no good gamma reco,
131  // 1 : gamma*, 2 : material conversion
133 };
134 }
135 
136 #endif // DERIVATIONFRAMEWORK_EGCONVERSIONINFOTOOL_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::WriteDecorHandleKey< xAOD::ElectronContainer >
DerivationFramework::EGElectronAmbiguityTool::m_dtrv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dtrv
Definition: EGElectronAmbiguityTool.h:91
DerivationFramework::EGElectronAmbiguityTool::m_dmee
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dmee
Definition: EGElectronAmbiguityTool.h:79
DerivationFramework::EGElectronAmbiguityTool::initialize
virtual StatusCode initialize() override final
Definition: EGElectronAmbiguityTool.cxx:86
DerivationFramework::EGElectronAmbiguityTool::addBranches
virtual StatusCode addBranches() const override final
Definition: EGElectronAmbiguityTool.cxx:133
DerivationFramework::EGElectronAmbiguityTool::m_isMC
bool m_isMC
Definition: EGElectronAmbiguityTool.h:119
DerivationFramework::EGElectronAmbiguityTool::m_dambi
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dambi
Definition: EGElectronAmbiguityTool.h:88
DerivationFramework::EGElectronAmbiguityTool::m_tpContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tpContainerName
Definition: EGElectronAmbiguityTool.h:57
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtrv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtrv
Definition: EGElectronAmbiguityTool.h:107
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtzv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtzv
Definition: EGElectronAmbiguityTool.h:109
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
IAugmentationTool.h
DerivationFramework::EGElectronAmbiguityTool::m_drv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_drv
Definition: EGElectronAmbiguityTool.h:73
DerivationFramework::EGElectronAmbiguityTool::m_dctCut
double m_dctCut
Definition: EGElectronAmbiguityTool.h:127
DerivationFramework::EGElectronAmbiguityTool::m_rvECCut
double m_rvECCut
Definition: EGElectronAmbiguityTool.h:132
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::drv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > drv
Definition: EGElectronAmbiguityTool.h:101
DerivationFramework::EGElectronAmbiguityTool::m_tpCName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tpCName
Definition: EGElectronAmbiguityTool.h:64
PyPoolBrowser.dh
dh
Definition: PyPoolBrowser.py:102
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::ReadHandleKey< xAOD::ElectronContainer >
DerivationFramework::EGElectronAmbiguityTool::m_sepCut
double m_sepCut
Definition: EGElectronAmbiguityTool.h:127
DerivationFramework::EGElectronAmbiguityTool::m_elepTCut
double m_elepTCut
Definition: EGElectronAmbiguityTool.h:122
DerivationFramework::EGElectronAmbiguityTool::m_dsep
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dsep
Definition: EGElectronAmbiguityTool.h:85
DerivationFramework::EGElectronAmbiguityTool::m_VtxContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_VtxContainerName
Definition: EGElectronAmbiguityTool.h:51
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
DerivationFramework::EGElectronAmbiguityTool::m_nSiCut
unsigned int m_nSiCut
Definition: EGElectronAmbiguityTool.h:126
ElectronContainer.h
DerivationFramework::EGElectronAmbiguityTool::m_dzCut
double m_dzCut
Definition: EGElectronAmbiguityTool.h:127
beamspotman.n
n
Definition: beamspotman.py:729
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
AthAlgTool.h
WriteDecorHandle.h
Handle class for adding a decoration to an object.
DerivationFramework::EGElectronAmbiguityTool::m_idCut
std::string m_idCut
Definition: EGElectronAmbiguityTool.h:123
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
Vertex.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dmee
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dmee
Definition: EGElectronAmbiguityTool.h:103
DerivationFramework::EGElectronAmbiguityTool::DecorHandles
Definition: EGElectronAmbiguityTool.h:99
DerivationFramework::EGElectronAmbiguityTool::m_dmeeVtx
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dmeeVtx
Definition: EGElectronAmbiguityTool.h:82
DerivationFramework::EGElectronAmbiguityTool::m_dphiv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dphiv
Definition: EGElectronAmbiguityTool.h:76
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dphiv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dphiv
Definition: EGElectronAmbiguityTool.h:102
DerivationFramework::EGElectronAmbiguityTool::EGElectronAmbiguityTool
EGElectronAmbiguityTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: EGElectronAmbiguityTool.cxx:52
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:452
xAOD::Electron_v1
Definition: Electron_v1.h:34
TrackParticle.h
DerivationFramework::EGElectronAmbiguityTool::m_dtpv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dtpv
Definition: EGElectronAmbiguityTool.h:94
VertexContainer.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dmeeVtx
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dmeeVtx
Definition: EGElectronAmbiguityTool.h:104
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::DecorHandles
DecorHandles(const EGElectronAmbiguityTool &tool, const EventContext &ctx)
Definition: EGElectronAmbiguityTool.cxx:119
ConstDataVector
DataVector adapter that acts like it holds const pointers.
Definition: ConstDataVector.h:76
DerivationFramework::EGElectronAmbiguityTool
Definition: EGElectronAmbiguityTool.h:34
DerivationFramework::EGElectronAmbiguityTool::m_containerName
SG::ReadHandleKey< xAOD::ElectronContainer > m_containerName
Definition: EGElectronAmbiguityTool.h:45
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dambi
SG::WriteDecorHandle< xAOD::ElectronContainer, int > dambi
Definition: EGElectronAmbiguityTool.h:106
Electron.h
DerivationFramework::EGElectronAmbiguityTool::decorateSimple
StatusCode decorateSimple(DecorHandles &dh, std::unique_ptr< ConstDataVector< xAOD::TrackParticleContainer >> &tpC, const xAOD::Electron *ele, const xAOD::Vertex *pvtx) const
Definition: EGElectronAmbiguityTool.cxx:294
DerivationFramework::EGElectronAmbiguityTool::m_dtzv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dtzv
Definition: EGElectronAmbiguityTool.h:97
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dsep
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dsep
Definition: EGElectronAmbiguityTool.h:105
DerivationFramework::EGElectronAmbiguityTool::m_meeAtVtxECCut
double m_meeAtVtxECCut
Definition: EGElectronAmbiguityTool.h:132
DerivationFramework::EGElectronAmbiguityTool::m_meeICCut
double m_meeICCut
Definition: EGElectronAmbiguityTool.h:132
TrackParticleContainer.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtpv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtpv
Definition: EGElectronAmbiguityTool.h:108