ATLAS Offline Software
EMConversionBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef EGAMMATOOLS_EMCONVERSIONBUILDER_H
6 #define EGAMMATOOLS_EMCONVERSIONBUILDER_H
7 
30 
32 #include "GaudiKernel/EventContext.h"
33 #include "GaudiKernel/SystemOfUnits.h"
34 #include "GaudiKernel/ToolHandle.h"
35 
37 
41 
43  : public AthAlgTool
44  , virtual public IEMConversionBuilder
45 {
46 
47 public:
49  EMConversionBuilder(const std::string& type,
50  const std::string& name,
51  const IInterface* parent);
52 
54  virtual ~EMConversionBuilder() = default;
55 
57  StatusCode initialize() override final;
59  virtual StatusCode executeRec(const EventContext& ctx,
60  egammaRec* egRec) const override final;
61 
62 private:
64  StatusCode vertexExecute(const EventContext& ctx,
65  egammaRec* egRec,
66  const xAOD::VertexContainer* conversions) const;
67 
69  bool passPtAndEoverP(const EventContext& ctx,
70  const xAOD::Vertex&,
72 
75 
76  // configuration:
79  this,
80  "ConversionContainerName",
81  "PhotonConversionVertices",
82  "Name of the input conversion container"
83  };
84 
86  ToolHandle<IEMExtrapolationTools> m_extrapolationTool{
87  this,
88  "ExtrapolationTool",
89  "EMExtrapolationTools",
90  "Handle of the extrapolation tool"
91  };
92 
95  Gaudi::Property<bool> m_rejectAllTRT{
96  this,
97  "RejectAllTRTConversions",
98  false,
99  "Ignore all conversion vertices containing exclusively TRT-only tracks"
100  };
101 
104  Gaudi::Property<int> m_minTRTHits{
105  this,
106  "minTRTHits",
107  0,
108  "minimum number of TRT hits for TRT-only tracks (both single and double "
109  "track conversion vertices)"
110  };
111 
113  Gaudi::Property<float> m_minPt_singleTrack{
114  this,
115  "minPt_singleTrack",
116  0 * Gaudi::Units::GeV,
117  "minimum pT for single-track conversion vertices"
118  };
119 
121  Gaudi::Property<float> m_minPt_singleTRT{
122  this,
123  "minPt_singleTRT",
124  2 * Gaudi::Units::GeV,
125  "minimum pT for TRT-only single-track conversion vertices"
126  };
127 
130  Gaudi::Property<float> m_minTRTonlyTrackPt{
131  this,
132  "minTRTonlyTrackPt",
133  0 * Gaudi::Units::GeV,
134  "minimum pT for each track in TRT-only double-track conversion vertices"
135  };
136 
138  Gaudi::Property<float> m_minSumPt_double{
139  this,
140  "minSumPt_double",
141  0 * Gaudi::Units::GeV,
142  "minimum sum pT for double track conversion vertices"
143  };
144 
146  Gaudi::Property<float> m_minSumPt_doubleTRT{
147  this,
148  "minSumPt_doubleTRT",
149  2 * Gaudi::Units::GeV,
150  "minimum sum pT for double TRT track conversion vertices"
151  };
152 
155  Gaudi::Property<float> m_maxEoverP_singleTrack{
156  this,
157  "maxEoverP_singleTrack",
158  10.,
159  "Maximum E/p for single track conversion vertices"
160  };
161 
163  Gaudi::Property<float> m_maxEoverP_singleTrack_EtSf{
164  this,
165  "maxEoverP_singleTrack_EtSf",
166  0.01,
167  "Scale maxEoverP_singleTrack by ( 1+sf*Et(cluster)/GeV )"
168  };
169 
171  Gaudi::Property<float> m_maxTRTTubeHitFraction{
172  this,
173  "maxTRTTubeHitFraction",
174  999.,
175  "Maximum fraction of tube hits for vertices with TRT tracks"
176  };
177  // for 21.0.X: minTRTPrecisionFraction cut applied
178  // InDetTRT_StandaloneScoringTool
179 };
180 
181 #endif
182 
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
VertexContainerFwd.h
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
EMConversionBuilder::executeRec
virtual StatusCode executeRec(const EventContext &ctx, egammaRec *egRec) const override final
execute method
Definition: EMConversionBuilder.cxx:106
EMConversionBuilder
Definition: EMConversionBuilder.h:45
EMConversionBuilder::m_maxTRTTubeHitFraction
Gaudi::Property< float > m_maxTRTTubeHitFraction
"Maximum fraction of tube hits for vertices with TRT tracks
Definition: EMConversionBuilder.h:171
EMConversionBuilder::m_minSumPt_double
Gaudi::Property< float > m_minSumPt_double
minimum sum pT for double track conversion vertices
Definition: EMConversionBuilder.h:138
EMConversionBuilder::m_minSumPt_doubleTRT
Gaudi::Property< float > m_minSumPt_doubleTRT
minimum sum pT for double TRT track conversion vertices
Definition: EMConversionBuilder.h:146
EMConversionBuilder::m_maxEoverP_singleTrack
Gaudi::Property< float > m_maxEoverP_singleTrack
maximum E/p for single track conversion vertices (E is not calibrated)
Definition: EMConversionBuilder.h:155
EMConversionBuilder::~EMConversionBuilder
virtual ~EMConversionBuilder()=default
Destructor.
EMConversionBuilder::initialize
StatusCode initialize() override final
initialize method
Definition: EMConversionBuilder.cxx:88
EMConversionBuilder::getMaxTRTTubeHitFraction
float getMaxTRTTubeHitFraction(const xAOD::Vertex &vertex) const
Return the maximum fraction of TRT tube hits among the tracks.
Definition: EMConversionBuilder.cxx:217
EMConversionBuilder::m_extrapolationTool
ToolHandle< IEMExtrapolationTools > m_extrapolationTool
EMExtrapolationTools.
Definition: EMConversionBuilder.h:86
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
IEMExtrapolationTools.h
xAOD::VertexContainer
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Definition: VertexContainer.h:14
EMConversionBuilder::m_conversionContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_conversionContainerKey
Name of conversion container.
Definition: EMConversionBuilder.h:78
EMConversionBuilder::passPtAndEoverP
bool passPtAndEoverP(const EventContext &ctx, const xAOD::Vertex &, const xAOD::CaloCluster &) const
Return true if vertex and cluster pass Pt and E/p cuts.
Definition: EMConversionBuilder.cxx:179
IEMConversionBuilder
Definition: IEMConversionBuilder.h:31
CaloClusterFwd.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
EMConversionBuilder::vertexExecute
StatusCode vertexExecute(const EventContext &ctx, egammaRec *egRec, const xAOD::VertexContainer *conversions) const
actual implementation method
Definition: EMConversionBuilder.cxx:123
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
EMConversionBuilder::m_minPt_singleTrack
Gaudi::Property< float > m_minPt_singleTrack
minimum pT for single-track conversion vertices
Definition: EMConversionBuilder.h:113
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
EMConversionBuilder::m_minTRTonlyTrackPt
Gaudi::Property< float > m_minTRTonlyTrackPt
minimum pT for each track in TRT-only double-track conversion vertices
Definition: EMConversionBuilder.h:130
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
EMConversionBuilder::m_minTRTHits
Gaudi::Property< int > m_minTRTHits
minimum number of TRT hits for TRT-only tracks (both single and double track conversion vertices)
Definition: EMConversionBuilder.h:104
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
EMConversionBuilder::m_minPt_singleTRT
Gaudi::Property< float > m_minPt_singleTRT
minimum pT for TRT-only single-track conversion vertices
Definition: EMConversionBuilder.h:121
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
EMConversionBuilder::m_maxEoverP_singleTrack_EtSf
Gaudi::Property< float > m_maxEoverP_singleTrack_EtSf
Scale maxEoverP_singleTrack by 1+sf*Et(cluster)/GeV
Definition: EMConversionBuilder.h:163
IEMConversionBuilder.h
egammaRec
Definition: egammaRec.h:31
AthAlgTool
Definition: AthAlgTool.h:26
EMConversionBuilder::EMConversionBuilder
EMConversionBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Definition: EMConversionBuilder.cxx:77
EMConversionBuilder::m_rejectAllTRT
Gaudi::Property< bool > m_rejectAllTRT
Ignore all conversion vertices that contain exclusively TRT-only tracks.
Definition: EMConversionBuilder.h:95