ATLAS Offline Software
Loading...
Searching...
No Matches
SiTrackerSpacePointFinder.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef SiSpacePointFormation_SI_POINT_FINDER_H
8#define SiSpacePointFormation_SI_POINT_FINDER_H
9
14#include "Identifier/Identifier.h"
28
29#include "GaudiKernel/ToolHandle.h"
30//
32
33#include <string>
34
38class SCT_ID;
39class PixelID;
40
41namespace InDet {
42
82
84
85 public:
86
91 SiTrackerSpacePointFinder(const std::string& name,
92 ISvcLocator* pSvcLocator);
93
94 virtual ~SiTrackerSpacePointFinder() = default;
95
96 virtual StatusCode initialize() override;
97
98 virtual StatusCode execute (const EventContext& ctx) const override;
99
100 virtual StatusCode finalize() override;
101
103 virtual bool isClonable() const override { return true; };
105
106 private:
108 struct SPFCache{
110 const EventContext& ctx;
111 const SCT_ClusterContainer* SCTCContainer;
112 SPFCache(const EventContext& inctx) : ctx(inctx), SCTCContainer(nullptr) { }
113 };
114
115 // methods
116
125
131 (const SCT_ClusterCollection* next,
132 const SiElementPropertiesTable* properties,
134 SpacePointCollection* spacepointCollection,
135 SpacePointOverlapCollection* spacepointOverlapCollection,
136 SPFCache&,
137 DataPool<SCT_SpacePoint>* dataItemsSCT) const;
139
140 // data members
141
146 SG::ReadHandleKey<SCT_ClusterContainer> m_Sct_clcontainerKey{this, "SCT_ClustersName", "SCT_Clusters", "SCT clContainer"};
147 SG::ReadHandleKey<PixelClusterContainer> m_Pixel_clcontainerKey{this, "PixelsClustersName", "PixelClusters", "Pixel clContainer"};
149
154
155 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
157 SG::ReadCondHandleKey<InDet::SiElementPropertiesTable> m_SCTPropertiesKey{this, "SCTPropertiesKey", "SCT_ElementPropertiesTable", "Key of input SiElementPropertiesTable for SCT"};
159 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
161
166 SG::WriteHandleKey<SpacePointContainer> m_SpacePointContainer_SCTKey{this, "SpacePointsSCTName", "SCT_SpacePoints", "SpacePoint SCT container"};
167 SG::WriteHandleKey<SpacePointContainer> m_SpacePointContainerPixelKey{this, "SpacePointsPixelName", "PixelSpacePoints", "SpacePoint Pixel container"};
168 SG::WriteHandleKey<SpacePointOverlapCollection> m_spacepointoverlapCollectionKey{this, "SpacePointsOverlapName", "OverlapSpacePoints", "Space Point Overlap collection"};
170
179
180
185 ToolHandle< SiSpacePointMakerTool > m_SiSpacePointMakerTool{this, "SiSpacePointMakerTool", "InDet::SiSpacePointMakerTool"};
186 ToolHandle<GenericMonitoringTool> m_monTool{this, "monTool", "", "Monitoring tool"};
188
193 const PixelID* m_idHelperPixel{nullptr};
194 const SCT_ID* m_idHelper{nullptr};
196
201 BooleanProperty m_selectPixels{this, "ProcessPixels", true};
202 BooleanProperty m_selectSCTs{this, "ProcessSCTs", true};
203 BooleanProperty m_overlap
204 {this, "ProcessOverlaps", true, "process overlaps of SCT wafers"};
205 BooleanProperty m_allClusters
206 {this, "AllClusters", false, "process all clusters without limits"};
207 bool m_cachemode{false};
209 {this, "useDataPoolWithCache", false, "use DataPool With Cache"};
210 BooleanProperty m_useSCTLayerDep_OverlapCuts{this,"useSCTLayerDep_OverlapCuts", true};
211 BooleanProperty m_doEndcapEtaOverlapSP{this,"doEndcapEtaOverlapSP", false};
213
223 {this, "OverlapLimitOpposite", 2.8, "overlap limit for opposite-neighbour"};
224 FloatProperty m_overlapLimitPhi
225 {this, "OverlapLimitPhi", 5.64, "overlap limit for phi-neighbours"};
227 {this, "OverlapLimitEtaMin", 1.68, "low overlap limit for eta-neighbours"};
229 {this, "OverlapLimitEtaMax", 3.0, "high overlap limit for eta-neighbours"};
230
231
236 BooleanProperty m_overrideBS{this, "OverrideBeamSpot", false};
237 FloatProperty m_xVertex{this, "VertexX", 0.};
238 FloatProperty m_yVertex{this, "VertexY", 0.};
239 FloatProperty m_zVertex{this, "VertexZ", 0.};
241
249 mutable std::atomic<int> m_numberOfEvents{0};
250 mutable std::atomic<int> m_numberOfPixel{0};
251 mutable std::atomic<int> m_numberOfSCT{0};
252 mutable std::atomic<int> m_sctCacheHits{0};
253 mutable std::atomic<int> m_pixCacheHits{0};
254 mutable std::atomic<int> m_nspacePoints{0};
255 mutable std::atomic<int> m_nspacePointsOverlap{0};
257
258 };
259
260}
261
262#endif // SiSpacePointFormation_SI_POINT_FINDER_H
Base class for conditions algorithms.
An STL vector of pointers that by default owns its pointed-to elements.
Base class for conditions algorithms.
a typed memory pool that saves time spent allocation small object.
Definition DataPool.h:63
Class to hold the SiDetectorElement objects to be put in the detector store.
virtual StatusCode initialize() override
SiTrackerSpacePointFinder(const SiTrackerSpacePointFinder &)=delete
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainer_SCTKey
virtual StatusCode execute(const EventContext &ctx) const override
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_PixKey
SG::ReadHandleKey< PixelClusterContainer > m_Pixel_clcontainerKey
SG::WriteHandleKey< SpacePointOverlapCollection > m_spacepointoverlapCollectionKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
For SCT alignment.
virtual bool isClonable() const override
Make this algorithm clonable.
SiTrackerSpacePointFinder(const std::string &name, ISvcLocator *pSvcLocator)
bool m_cachemode
used for online MT counters
ToolHandle< GenericMonitoringTool > m_monTool
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
For beam spot.
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainerPixelKey
SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > m_SCTPropertiesKey
To get SCT neighbours.
SG::ReadHandleKey< SCT_ClusterContainer > m_Sct_clcontainerKey
void addSCT_SpacePoints(const SCT_ClusterCollection *next, const SiElementPropertiesTable *properties, const InDetDD::SiDetectorElementCollection *elements, SpacePointCollection *spacepointCollection, SpacePointOverlapCollection *spacepointOverlapCollection, SPFCache &, DataPool< SCT_SpacePoint > *dataItemsSCT) const
SiTrackerSpacePointFinder & operator=(const SiTrackerSpacePointFinder &)=delete
virtual ~SiTrackerSpacePointFinder()=default
ToolHandle< SiSpacePointMakerTool > m_SiSpacePointMakerTool
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_SCTKey
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
This is a temporary object to aid reentrant coding.