ATLAS Offline Software
Loading...
Searching...
No Matches
photonSuperClusterBuilder.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 EGAMMAALGS_PHOTONSUPERCLUSTERBUILDER_H
6#define EGAMMAALGS_PHOTONSUPERCLUSTERBUILDER_H
7
9
10#include "GaudiKernel/EventContext.h"
14
16
17// Fwd declarations
22
23#include <string>
24#include <vector>
25
65{
66
67public:
68 photonSuperClusterBuilder(const std::string& name, ISvcLocator* pSvcLocator);
69
70 virtual StatusCode initialize() override final;
71
72private:
73
74
76 const egammaRec *egRec) const override final;
77
78 virtual StatusCode redoMatching(
79 const EventContext &ctx,
80 SG::WriteHandle<EgammaRecContainer> &newEgammaRecs) const final override;
81
111 virtual std::vector<std::size_t> searchForSecondaryClusters(
112 std::size_t photonInd,
113 const EgammaRecContainer* egammaRecs,
114 std::vector<bool>& isUsed) const override final;
115
117 bool matchesVtx(
118 const std::vector<const xAOD::Vertex*>& seedVertices,
119 const std::vector<xAOD::EgammaParameters::ConversionType>& seedVertexType,
120 const egammaRec* egRec) const;
121
123 bool matchesVtxTrack(
124 const std::vector<const xAOD::TrackParticle*>& seedVertexTracks,
125 const egammaRec* egRec) const;
126
128 ToolHandle<IEMConversionBuilder> m_conversionBuilder{
129 this,
130 "ConversionBuilderTool",
131 "EMConversionBuilder",
132 "Tool that matches conversion vertices to egammaRecs"
133 };
134
135 // options for how to build superclusters
137 Gaudi::Property<bool> m_addClustersInWindow{
138 this,
139 "AddClustersInWindow",
140 true,
141 "add the topoclusters in window"
142 };
143
145 Gaudi::Property<bool> m_addClustersMatchingVtx{
146 this,
147 "AddClustersMatchingVtx",
148 true,
149 "add the topoclusters matching conversion vertex"
150 };
151
153 Gaudi::Property<bool> m_useOnlyLeadingVertex{
154 this,
155 "UseOnlyLeadingVertex",
156 true,
157 "use only the leading vertex for matching"
158 };
159
161 Gaudi::Property<bool> m_useOnlySi{
162 this,
163 "UseOnlySi",
164 true,
165 "use only vertices/tracks with silicon tracks for adding sec. clusters "
166 "(Mix not considered Si)"
167 };
168
170 Gaudi::Property<bool> m_addClustersMatchingVtxTracks{
171 this,
172 "AddClustrsMatchingVtxTracks",
173 true,
174 "add the topoclusters matching conversion vertex tracks"
175 };
176
178 Gaudi::Property<bool> m_useOnlyLeadingTrack{
179 this,
180 "UseOnlyLeadingTrack",
181 true,
182 "use only the leading track for matching"
183 };
184
186 Gaudi::Property<bool> m_doConversions{ this,
187 "doConversions",
188 true,
189 "Boolean to do conversion matching" };
190};
191
192#endif
Definition of CaloDetDescrManager.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Represent an egamma object for internal egamma usage during reconstruction.
Definition egammaRec.h:31
egammaSuperClusterBuilderBase(const std::string &name, ISvcLocator *pSvcLocator)
Protected constructor since this class should not be instantiated by itself.
Gaudi::Property< bool > m_addClustersMatchingVtx
add the topoclusters matching conversion vertex
Gaudi::Property< bool > m_useOnlyLeadingTrack
use only the leading track for matching
virtual StatusCode redoMatching(const EventContext &ctx, SG::WriteHandle< EgammaRecContainer > &newEgammaRecs) const final override
virtual std::vector< std::size_t > searchForSecondaryClusters(std::size_t photonInd, const EgammaRecContainer *egammaRecs, std::vector< bool > &isUsed) const override final
Return extra clusters that can be added to make supercluster.
bool matchesVtxTrack(const std::vector< const xAOD::TrackParticle * > &seedVertexTracks, const egammaRec *egRec) const
Does the cluster match a conversion vertex track with the seed?
bool matchesVtx(const std::vector< const xAOD::Vertex * > &seedVertices, const std::vector< xAOD::EgammaParameters::ConversionType > &seedVertexType, const egammaRec *egRec) const
Does the cluster share conversion vertex?
virtual xAOD::EgammaParameters::EgammaType getEgammaRecType(const egammaRec *egRec) const override final
photonSuperClusterBuilder(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_doConversions
private member flag to do the conversion building and matching
Gaudi::Property< bool > m_useOnlySi
use only vertices/tracks with silicon tracks
Gaudi::Property< bool > m_addClustersMatchingVtxTracks
add the topoclusters matching conversion vertex tracks
Gaudi::Property< bool > m_addClustersInWindow
add the topoclusters in window
ToolHandle< IEMConversionBuilder > m_conversionBuilder
Tool to retrieve the conversions.
Gaudi::Property< bool > m_useOnlyLeadingVertex
use only the leading vertex for matching
virtual StatusCode initialize() override final
should be called by the derived class in the initialize phase
DataVector< egammaRec > EgammaRecContainer
The container is a simple typedef for now.