ATLAS Offline Software
Loading...
Searching...
No Matches
ActsEgammaSelectedTrackCopy.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef EGAMMAALGS_ACTSEGAMMASELECTEDTRACKCOPY_H
6#define EGAMMAALGS_ACTSEGAMMASELECTEDTRACKCOPY_H
7
9
11#include "GaudiKernel/EventContext.h"
12#include "GaudiKernel/ToolHandle.h"
17
21
27
28
30#include <Gaudi/Accumulators.h>
31
33
47{
48public:
50 ActsEgammaSelectedTrackCopy(const std::string& name, ISvcLocator* pSvcLocator);
51 virtual ~ActsEgammaSelectedTrackCopy() override = default;
52
53 virtual StatusCode initialize() override final;
54 virtual StatusCode finalize() override final;
55 virtual StatusCode execute(const EventContext& ctx) const override final;
56
57 constexpr static double s_calorimeterEtaCoverage = 1.5;
58 constexpr static double s_maxExtrapolationRadius = 2250.0;
59
62 bool matchWithExtrapolation(const EventContext& ctx,
63 const xAOD::CaloCluster& cluster,
64 const xAOD::TrackParticle& track,
65 const std::shared_ptr<const Acts::Surface>& perigeeSurface) const;
66
68 const xAOD::TrackParticle& track) const;
69
70 struct CaloMatch {
71 int layer;
73 };
74
75 std::array<std::optional<CaloMatch>, 4> extrapolateToCalo(
76 const Acts::BoundTrackParameters &parameters,
77 const xAOD::CaloCluster& cluster,
78 const EventContext& ctx) const;
79
80 PublicToolHandle<ActsTrk::ITrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", ""};
81
82 ToolHandle<ActsTrk::IExtrapolationTool> m_extrapolationTool {
83 this,
84 "ExtrapolationTool",
85 "ExtrapolationTool",
86 "Tool to run propagation in an ACTS trackign geometry"
87 };
88
90 ToolHandle<IegammaCaloClusterSelector> m_egammaCaloClusterSelector {
91 this,
92 "egammaCaloClusterSelector",
93 "egammaCaloClusterSelector",
94 "Tool that makes the cluster selection"
95 };
96
99 this,
100 "ClusterContainerName",
101 "egammaTopoCluster",
102 "Input calo cluster for seeding"
103 };
104
106 this,
107 "TrackParticleContainerName",
108 "InDetTrackParticles",
109 "Input TrackParticles to select from"
110 };
111
113 this,
114 "TrackParticleTimeDecoration",
115 "",
116 "Time assigned to this track"};
117
119 this,
120 "CaloDetDescrManager",
121 "CaloDetDescrManager",
122 "SG Key for CaloDetDescrManager in the Condition Store"
123 };
124
126 this,
127 "OutputTrkPartContainerName",
128 "ActsEgammaSelectedTrackParticles",
129 "Output selected TrackParticles"
130 };
131
133 Gaudi::Property<double> m_broadDeltaEta {
134 this,
135 "broadDeltaEta",
136 0.2,
137 "Value of broad cut for delta eta"
138 };
139
140 Gaudi::Property<double> m_broadDeltaPhi {
141 this,
142 "broadDeltaPhi",
143 0.3,
144 "Value of broad cut for delta phi"
145 };
146
148 Gaudi::Property<double> m_narrowDeltaEta{
149 this,
150 "narrowDeltaEta",
151 0.05,
152 "Value of narrow cut for delta eta"
153 };
154
155 Gaudi::Property<double> m_narrowDeltaPhi{
156 this,
157 "narrowDeltaPhi",
158 0.05,
159 "Value of narrow cut for delta phi"
160 };
161
162 Gaudi::Property<double> m_narrowDeltaPhiBrem{
163 this,
164 "narrowDeltaPhiBrem",
165 0.2,
166 "Value of the narrow cut for delta phi in the brem direction"
167 };
168
169 Gaudi::Property<double> m_narrowRescale{
170 this,
171 "narrowDeltaPhiRescale",
172 0.05,
173 "Value of the narrow cut for delta phi Rescale"
174 };
175
176 Gaudi::Property<double> m_narrowRescaleBrem{
177 this,
178 "narrowDeltaPhiRescaleBrem",
179 0.1,
180 "Value of the narrow cut for delta phi Rescale Brem"
181 };
182
183 std::array<Acts::GeometryIdentifier, 4> m_barrelCaloGeoIds;
184
185 mutable Gaudi::Accumulators::Counter<> m_AllClusters {};
186 mutable Gaudi::Accumulators::Counter<> m_SelectedClusters {};
187 mutable Gaudi::Accumulators::Counter<> m_AllTracks {};
188 mutable Gaudi::Accumulators::Counter<> m_SelectedTracks {};
189};
190#endif
Definition of CaloDetDescrManager.
DataVector adapter that acts like it holds const pointers.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
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.
Gaudi::Accumulators::Counter m_AllClusters
virtual StatusCode finalize() override final
virtual StatusCode initialize() override final
bool checkBroadCriteria(const xAOD::CaloCluster &cluster, const xAOD::TrackParticle &track) const
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackParticleTimeDecorKey
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
virtual StatusCode execute(const EventContext &ctx) const override final
static constexpr double s_calorimeterEtaCoverage
static constexpr double s_maxExtrapolationRadius
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
Gaudi::Property< double > m_narrowDeltaEta
Narrow windows.
bool matchWithExtrapolation(const EventContext &ctx, const xAOD::CaloCluster &cluster, const xAOD::TrackParticle &track, const std::shared_ptr< const Acts::Surface > &perigeeSurface) const
Track selection method.
Gaudi::Property< double > m_broadDeltaPhi
Gaudi::Accumulators::Counter m_SelectedClusters
Gaudi::Property< double > m_narrowDeltaPhi
SG::WriteHandleKey< ConstDataVector< xAOD::TrackParticleContainer > > m_OutputTrkPartContainerKey
std::array< Acts::GeometryIdentifier, 4 > m_barrelCaloGeoIds
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterContainerKey
Names of input output collections.
virtual ~ActsEgammaSelectedTrackCopy() override=default
Gaudi::Property< double > m_narrowDeltaPhiBrem
Gaudi::Accumulators::Counter m_SelectedTracks
Gaudi::Property< double > m_narrowRescale
std::array< std::optional< CaloMatch >, 4 > extrapolateToCalo(const Acts::BoundTrackParameters &parameters, const xAOD::CaloCluster &cluster, const EventContext &ctx) const
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Gaudi::Property< double > m_broadDeltaEta
Broad windows.
Gaudi::Accumulators::Counter m_AllTracks
Gaudi::Property< double > m_narrowRescaleBrem
ActsEgammaSelectedTrackCopy(const std::string &name, ISvcLocator *pSvcLocator)
Default constructor.
ToolHandle< IegammaCaloClusterSelector > m_egammaCaloClusterSelector
Tool to filter the calo clusters.
An algorithm that can be simultaneously executed in multiple threads.
Principal data class for CaloCell clusters.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
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.
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
#define private