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 
34  : public AthAlgTool
35  , public IAugmentationTool
36 {
37 
38 public:
39  EGElectronAmbiguityTool(const std::string& t,
40  const std::string& n,
41  const IInterface* p);
42 
43  virtual StatusCode initialize() override final;
44  virtual StatusCode addBranches() const override final;
45 
46 private:
48  this,
49  "ContainerName",
50  "Electrons",
51  "SG key of electron container"
52  };
54  this,
55  "VtxContainerName",
56  "PrimaryVertices",
57  "SG key of vertex container"
58  };
60  this,
61  "tpContainerName",
62  "InDetTrackParticles",
63  "SG key of track particles container"
64  };
65 
67  this,
68  "tpCName",
69  "GSFTrackParticles",
70  "SG key of TrackParticleInputContainer"
71  };
72 
73  // Write decoration handle keys
75  m_drv{ this, "DFCommonSimpleConvRadius", "", "" };
76 
78  m_dphiv{ this, "DFCommonSimpleConvPhi", "", "" };
79 
81  m_dmee{ this, "DFCommonSimpleMee", "", "" };
82 
84  m_dmeeVtx{ this, "DFCommonSimpleMeeAtVtx", "", "" };
85 
87  m_dsep{ this, "DFCommonSimpleSeparation", "", "" };
88 
90  m_dambi{ this, "DFCommonAddAmbiguity", "", "" };
91 
93  m_dtrv{ this, "DFCommonProdTrueRadius", "", "" };
94 
96  m_dtpv{ this, "DFCommonProdTruePhi", "", "" };
97 
99  m_dtzv{ this, "DFCommonProdTrueZ", "", "" };
100 
101  struct DecorHandles {
102  DecorHandles (const EGElectronAmbiguityTool& tool, const EventContext& ctx);
112  };
113  friend struct DecorHandles;
114 
116  DecorHandles& dh,
117  std::unique_ptr<ConstDataVector<xAOD::TrackParticleContainer>>& tpC,
118  const xAOD::Electron* ele,
119  const xAOD::Vertex* pvtx) const;
120 
121  bool m_isMC{};
122 
123  // cuts to select the electron to run on
124  double m_elepTCut;
125  std::string m_idCut;
126 
127  // cuts to select the other track
128  unsigned int m_nSiCut;
130 
131  // cuts to define the various types :
132  // ambi = -1 : no other track, 0 : other track exists but no good gamma reco,
133  // 1 : gamma*, 2 : material conversion
135 };
136 }
137 
138 #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:93
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::EGElectronAmbiguityTool::m_dmee
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dmee
Definition: EGElectronAmbiguityTool.h:81
DerivationFramework::EGElectronAmbiguityTool::initialize
virtual StatusCode initialize() override final
Definition: EGElectronAmbiguityTool.cxx:85
DerivationFramework::EGElectronAmbiguityTool::addBranches
virtual StatusCode addBranches() const override final
Pass the thinning service
Definition: EGElectronAmbiguityTool.cxx:132
DerivationFramework::EGElectronAmbiguityTool::m_isMC
bool m_isMC
Definition: EGElectronAmbiguityTool.h:121
DerivationFramework::EGElectronAmbiguityTool::m_dambi
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dambi
Definition: EGElectronAmbiguityTool.h:90
DerivationFramework::EGElectronAmbiguityTool::m_tpContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tpContainerName
Definition: EGElectronAmbiguityTool.h:59
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtrv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtrv
Definition: EGElectronAmbiguityTool.h:109
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtzv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtzv
Definition: EGElectronAmbiguityTool.h:111
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:75
DerivationFramework::EGElectronAmbiguityTool::m_dctCut
double m_dctCut
Definition: EGElectronAmbiguityTool.h:129
DerivationFramework::EGElectronAmbiguityTool::m_rvECCut
double m_rvECCut
Definition: EGElectronAmbiguityTool.h:134
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::drv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > drv
Definition: EGElectronAmbiguityTool.h:103
DerivationFramework::EGElectronAmbiguityTool::m_tpCName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tpCName
Definition: EGElectronAmbiguityTool.h:66
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:129
DerivationFramework::EGElectronAmbiguityTool::m_elepTCut
double m_elepTCut
Definition: EGElectronAmbiguityTool.h:124
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::EGElectronAmbiguityTool::m_dsep
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dsep
Definition: EGElectronAmbiguityTool.h:87
DerivationFramework::EGElectronAmbiguityTool::m_VtxContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_VtxContainerName
Definition: EGElectronAmbiguityTool.h:53
DerivationFramework::EGElectronAmbiguityTool::m_nSiCut
unsigned int m_nSiCut
Definition: EGElectronAmbiguityTool.h:128
ElectronContainer.h
DerivationFramework::EGElectronAmbiguityTool::m_dzCut
double m_dzCut
Definition: EGElectronAmbiguityTool.h:129
beamspotman.n
n
Definition: beamspotman.py:731
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:99
AthAlgTool.h
WriteDecorHandle.h
Handle class for adding a decoration to an object.
DerivationFramework::EGElectronAmbiguityTool::m_idCut
std::string m_idCut
Definition: EGElectronAmbiguityTool.h:125
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
Vertex.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dmee
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dmee
Definition: EGElectronAmbiguityTool.h:105
DerivationFramework::EGElectronAmbiguityTool::DecorHandles
Definition: EGElectronAmbiguityTool.h:101
DerivationFramework::EGElectronAmbiguityTool::m_dmeeVtx
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dmeeVtx
Definition: EGElectronAmbiguityTool.h:84
DerivationFramework::EGElectronAmbiguityTool::m_dphiv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dphiv
Definition: EGElectronAmbiguityTool.h:78
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dphiv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dphiv
Definition: EGElectronAmbiguityTool.h:104
DerivationFramework::EGElectronAmbiguityTool::EGElectronAmbiguityTool
EGElectronAmbiguityTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: EGElectronAmbiguityTool.cxx:50
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
xAOD::Electron_v1
Definition: Electron_v1.h:34
TrackParticle.h
DerivationFramework::EGElectronAmbiguityTool::m_dtpv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dtpv
Definition: EGElectronAmbiguityTool.h:96
VertexContainer.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dmeeVtx
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dmeeVtx
Definition: EGElectronAmbiguityTool.h:106
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:118
ConstDataVector
DataVector adapter that acts like it holds const pointers.
Definition: ConstDataVector.h:76
DerivationFramework::EGElectronAmbiguityTool
Definition: EGElectronAmbiguityTool.h:36
DerivationFramework::EGElectronAmbiguityTool::m_containerName
SG::ReadHandleKey< xAOD::ElectronContainer > m_containerName
Definition: EGElectronAmbiguityTool.h:47
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dambi
SG::WriteDecorHandle< xAOD::ElectronContainer, int > dambi
Definition: EGElectronAmbiguityTool.h:108
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:293
DerivationFramework::EGElectronAmbiguityTool::m_dtzv
SG::WriteDecorHandleKey< xAOD::ElectronContainer > m_dtzv
Definition: EGElectronAmbiguityTool.h:99
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dsep
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dsep
Definition: EGElectronAmbiguityTool.h:107
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::EGElectronAmbiguityTool::m_meeAtVtxECCut
double m_meeAtVtxECCut
Definition: EGElectronAmbiguityTool.h:134
DerivationFramework::EGElectronAmbiguityTool::m_meeICCut
double m_meeICCut
Definition: EGElectronAmbiguityTool.h:134
TrackParticleContainer.h
DerivationFramework::EGElectronAmbiguityTool::DecorHandles::dtpv
SG::WriteDecorHandle< xAOD::ElectronContainer, float > dtpv
Definition: EGElectronAmbiguityTool.h:110