ATLAS Offline Software
Loading...
Searching...
No Matches
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
28
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
47public:
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
64 StatusCode vertexExecute(const EventContext& ctx,
65 egammaRec* egRec,
66 const xAOD::VertexContainer* conversions) const;
67
69 bool passPtAndEoverP(const EventContext& ctx,
72
75
76 // configuration:
78 SG::ReadHandleKey<xAOD::VertexContainer> m_conversionContainerKey{
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
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Principal data class for CaloCell clusters.
Gaudi::Property< float > m_minPt_singleTrack
minimum pT for single-track conversion vertices
float getMaxTRTTubeHitFraction(const xAOD::Vertex &vertex) const
Return the maximum fraction of TRT tube hits among the tracks.
StatusCode vertexExecute(const EventContext &ctx, egammaRec *egRec, const xAOD::VertexContainer *conversions) const
actual implementation method
bool passPtAndEoverP(const EventContext &ctx, const xAOD::Vertex &, const xAOD::CaloCluster &) const
Return true if vertex and cluster pass Pt and E/p cuts.
Gaudi::Property< float > m_maxEoverP_singleTrack
maximum E/p for single track conversion vertices (E is not calibrated)
Gaudi::Property< int > m_minTRTHits
minimum number of TRT hits for TRT-only tracks (both single and double track conversion vertices)
StatusCode initialize() override final
initialize method
Gaudi::Property< float > m_minSumPt_doubleTRT
minimum sum pT for double TRT track conversion vertices
Gaudi::Property< bool > m_rejectAllTRT
Ignore all conversion vertices that contain exclusively TRT-only tracks.
Gaudi::Property< float > m_minTRTonlyTrackPt
minimum pT for each track in TRT-only double-track conversion vertices
EMConversionBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Gaudi::Property< float > m_minSumPt_double
minimum sum pT for double track conversion vertices
Gaudi::Property< float > m_minPt_singleTRT
minimum pT for TRT-only single-track conversion vertices
virtual ~EMConversionBuilder()=default
Destructor.
SG::ReadHandleKey< xAOD::VertexContainer > m_conversionContainerKey
Name of conversion container.
Gaudi::Property< float > m_maxTRTTubeHitFraction
"Maximum fraction of tube hits for vertices with TRT tracks
ToolHandle< IEMExtrapolationTools > m_extrapolationTool
EMExtrapolationTools.
Gaudi::Property< float > m_maxEoverP_singleTrack_EtSf
Scale maxEoverP_singleTrack by 1+sf*Et(cluster)/GeV.
virtual StatusCode executeRec(const EventContext &ctx, egammaRec *egRec) const override final
execute method
Interface for the Reconstruction/egamma/egammaRec/EMConversionBuilder.
Represent an egamma object for internal egamma usage during reconstruction.
Definition egammaRec.h:31
Forward declaration.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
#define private