ATLAS Offline Software
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 //
31 #include "AthAllocators/DataPool.h"
32 
33 #include <string>
34 
37 class SpacePointContainer;
38 class SCT_ID;
39 class PixelID;
40 
41 namespace InDet {
42 
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;
112  SPFCache(const EventContext& inctx) : ctx(inctx), SCTCContainer(nullptr) { }
113  };
114 
115  // methods
116 
125 
130  void addSCT_SpacePoints
131  (const SCT_ClusterCollection* next,
133  const InDetDD::SiDetectorElementCollection* elements,
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 clContainer"};
147  SG::ReadHandleKey<PixelClusterContainer> m_Pixel_clcontainerKey{this, "PixelsClustersName", "PixelClusters", "Pixel clContainer"};
149 
154  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 
178 
183  ToolHandle< SiSpacePointMakerTool > m_SiSpacePointMakerTool{this, "SiSpacePointMakerTool", "InDet::SiSpacePointMakerTool"};
184  ToolHandle<GenericMonitoringTool> m_monTool{this, "monTool", "", "Monitoring tool"};
186 
191  const PixelID* m_idHelperPixel{nullptr};
192  const SCT_ID* m_idHelper{nullptr};
194 
201  bool m_overlap;
203  bool m_cachemode{false};
204  Gaudi::Property<bool> m_useDataPoolWithCache{
205  this, "useDataPoolWithCache", false, "use DataPool With Cache"};
207 
220 
221 
227  float m_xVertex;
228  float m_yVertex;
229  float m_zVertex;
231 
239  mutable std::atomic<int> m_numberOfEvents{0};
240  mutable std::atomic<int> m_numberOfPixel{0};
241  mutable std::atomic<int> m_numberOfSCT{0};
242  mutable std::atomic<int> m_sctCacheHits{0};
243  mutable std::atomic<int> m_pixCacheHits{0};
245 
246  };
247 
248 }
249 
250 #endif // SiSpacePointFormation_SI_POINT_FINDER_H
SiElementPropertiesTable.h
SiSpacePointMakerTool.h
SG::UpdateHandleKey
Property holding a SG store/key/clid from which an UpdateHandle is made.
Definition: UpdateHandleKey.h:40
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
InDet::SiTrackerSpacePointFinder::m_SCTPropertiesKey
SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > m_SCTPropertiesKey
To get SCT neighbours.
Definition: SiTrackerSpacePointFinder.h:157
InDet::SiTrackerSpacePointFinder::m_overlap
bool m_overlap
process all overlapping SCT pairs if true.
Definition: SiTrackerSpacePointFinder.h:201
InDet::SiTrackerSpacePointFinder::m_cachemode
bool m_cachemode
used for online MT counters
Definition: SiTrackerSpacePointFinder.h:203
InDet::SiTrackerSpacePointFinder::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
For beam spot.
Definition: SiTrackerSpacePointFinder.h:155
InDet::SiTrackerSpacePointFinder::m_yVertex
float m_yVertex
Definition: SiTrackerSpacePointFinder.h:228
InDet::SiTrackerSpacePointFinder::m_overlapLimitPhi
float m_overlapLimitPhi
overlap limit for phi-neighbours.
Definition: SiTrackerSpacePointFinder.h:217
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SiTrackerSpacePointFinder::m_pixCacheHits
std::atomic< int > m_pixCacheHits
Definition: SiTrackerSpacePointFinder.h:243
InDet::SiTrackerSpacePointFinder::m_Sct_clcontainerKey
SG::ReadHandleKey< SCT_ClusterContainer > m_Sct_clcontainerKey
Definition: SiTrackerSpacePointFinder.h:146
InDet::SiTrackerSpacePointFinder::m_overrideBS
bool m_overrideBS
Definition: SiTrackerSpacePointFinder.h:226
InDet::SCT_ClusterContainer
Trk::PrepRawDataContainer< SCT_ClusterCollection > SCT_ClusterContainer
Definition: SCT_ClusterContainer.h:27
InDet::SiTrackerSpacePointFinder::m_idHelperPixel
const PixelID * m_idHelperPixel
Definition: SiTrackerSpacePointFinder.h:191
SpacePointOverlapCollection
Definition: SpacePointOverlapCollection.h:26
InDet::SiTrackerSpacePointFinder::m_SiSpacePointMakerTool
ToolHandle< SiSpacePointMakerTool > m_SiSpacePointMakerTool
Definition: SiTrackerSpacePointFinder.h:183
InDet::SiTrackerSpacePointFinder::m_zVertex
float m_zVertex
Definition: SiTrackerSpacePointFinder.h:229
InDet::SiTrackerSpacePointFinder::SPFCache::ctx
const EventContext & ctx
Definition: SiTrackerSpacePointFinder.h:110
SG::ReadHandleKey< SCT_ClusterContainer >
InDet::SiTrackerSpacePointFinder::m_selectSCTs
bool m_selectSCTs
Definition: SiTrackerSpacePointFinder.h:200
InDet::SiTrackerSpacePointFinder::m_numberOfPixel
std::atomic< int > m_numberOfPixel
Definition: SiTrackerSpacePointFinder.h:240
InDet::SiTrackerSpacePointFinder::m_SpacePointContainer_SCTKey
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainer_SCTKey
Definition: SiTrackerSpacePointFinder.h:166
SpacePointContainer.h
InDet::SiTrackerSpacePointFinder::m_SpacePointCache_SCTKey
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_SCTKey
Definition: SiTrackerSpacePointFinder.h:175
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
InDet::SiTrackerSpacePointFinder::SPFCache::SCTCContainer
const SCT_ClusterContainer * SCTCContainer
Definition: SiTrackerSpacePointFinder.h:111
InDet::SiTrackerSpacePointFinder::SiTrackerSpacePointFinder
SiTrackerSpacePointFinder(const SiTrackerSpacePointFinder &)=delete
GeoPrimitives.h
InDet::SiTrackerSpacePointFinder::m_selectPixels
bool m_selectPixels
Definition: SiTrackerSpacePointFinder.h:199
SCT_ClusterCollection.h
GenericMonitoringTool.h
InDet::SiTrackerSpacePointFinder::SPFCache::SPFCache
SPFCache(const EventContext &inctx)
Definition: SiTrackerSpacePointFinder.h:112
InDet::SiTrackerSpacePointFinder::~SiTrackerSpacePointFinder
virtual ~SiTrackerSpacePointFinder()=default
InDet::SiTrackerSpacePointFinder::m_SpacePointContainerPixelKey
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainerPixelKey
Definition: SiTrackerSpacePointFinder.h:167
SG::WriteHandleKey< SpacePointContainer >
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:53
InDet::SiTrackerSpacePointFinder::m_spacepointoverlapCollectionKey
SG::WriteHandleKey< SpacePointOverlapCollection > m_spacepointoverlapCollectionKey
Definition: SiTrackerSpacePointFinder.h:168
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SpacePoint.h
InDet::SiTrackerSpacePointFinder::SPFCache::vertex
Amg::Vector3D vertex
Definition: SiTrackerSpacePointFinder.h:109
InDet::SiTrackerSpacePointFinder::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
For SCT alignment.
Definition: SiTrackerSpacePointFinder.h:159
SpacePointOverlapCollection.h
InDet::SiTrackerSpacePointFinder::m_sctCacheHits
std::atomic< int > m_sctCacheHits
Definition: SiTrackerSpacePointFinder.h:242
InDet::SiTrackerSpacePointFinder::m_useDataPoolWithCache
Gaudi::Property< bool > m_useDataPoolWithCache
Definition: SiTrackerSpacePointFinder.h:204
InDet::SiTrackerSpacePointFinder::m_allClusters
bool m_allClusters
process all clusters without limits if true.
Definition: SiTrackerSpacePointFinder.h:202
PixelClusterCollection.h
InDet::SiTrackerSpacePointFinder::addSCT_SpacePoints
void addSCT_SpacePoints(const SCT_ClusterCollection *next, const SiElementPropertiesTable *properties, const InDetDD::SiDetectorElementCollection *elements, SpacePointCollection *spacepointCollection, SpacePointOverlapCollection *spacepointOverlapCollection, SPFCache &, DataPool< SCT_SpacePoint > *dataItemsSCT) const
Definition: SiTrackerSpacePointFinder.cxx:388
InDet::SiTrackerSpacePointFinder::initialize
virtual StatusCode initialize() override
Definition: SiTrackerSpacePointFinder.cxx:63
python.JsonUtils.properties
properties
Definition: JsonUtils.py:96
DataPool.h
ReadCondHandleKey.h
InDet::SiTrackerSpacePointFinder::m_Pixel_clcontainerKey
SG::ReadHandleKey< PixelClusterContainer > m_Pixel_clcontainerKey
Definition: SiTrackerSpacePointFinder.h:147
AthReentrantAlgorithm.h
InDet::SiTrackerSpacePointFinder::m_numberOfSCT
std::atomic< int > m_numberOfSCT
Definition: SiTrackerSpacePointFinder.h:241
InDet::SiTrackerSpacePointFinder::m_overlapLimitEtaMin
float m_overlapLimitEtaMin
low overlap limit for eta-neighbours.
Definition: SiTrackerSpacePointFinder.h:218
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::SiTrackerSpacePointFinder::m_overlapLimitEtaMax
float m_overlapLimitEtaMax
high overlap limit for eta-neighbours.
Definition: SiTrackerSpacePointFinder.h:219
InDet::SiTrackerSpacePointFinder::SiTrackerSpacePointFinder
SiTrackerSpacePointFinder()=delete
PixelClusterContainer.h
InDet::SiTrackerSpacePointFinder
Definition: SiTrackerSpacePointFinder.h:83
InDet::SiElementPropertiesTable
Definition: SiElementPropertiesTable.h:30
SiDetectorElementCollection.h
InDet::SiTrackerSpacePointFinder::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: SiTrackerSpacePointFinder.h:184
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::SiTrackerSpacePointFinder::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: SiTrackerSpacePointFinder.cxx:125
InDet::SiTrackerSpacePointFinder::m_idHelper
const SCT_ID * m_idHelper
Definition: SiTrackerSpacePointFinder.h:192
SG::ReadCondHandleKey< InDet::BeamSpotData >
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
SiClusterContainer.h
InDet::SiTrackerSpacePointFinder::finalize
virtual StatusCode finalize() override
Definition: SiTrackerSpacePointFinder.cxx:372
SCT_ID
Definition: SCT_ID.h:68
InDet::SiTrackerSpacePointFinder::operator=
SiTrackerSpacePointFinder & operator=(const SiTrackerSpacePointFinder &)=delete
SpacePointCollection
Definition: SpacePointCollection.h:40
SCT_ClusterContainer.h
InDet::SiTrackerSpacePointFinder::m_xVertex
float m_xVertex
Definition: SiTrackerSpacePointFinder.h:227
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
InDet::SiTrackerSpacePointFinder::isClonable
virtual bool isClonable() const override
Make this algorithm clonable.
Definition: SiTrackerSpacePointFinder.h:103
InDet::SiTrackerSpacePointFinder::m_SpacePointCache_PixKey
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_PixKey
Definition: SiTrackerSpacePointFinder.h:176
SpacePointContainer
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h:29
BeamSpotData.h
InDet::SiTrackerSpacePointFinder::SPFCache
This is a temporary object to aid reentrant coding.
Definition: SiTrackerSpacePointFinder.h:108
InDet::SCT_ClusterCollection
Trk::PrepRawDataCollection< SCT_Cluster > SCT_ClusterCollection
Definition: SCT_ClusterCollection.h:26
PixelID
Definition: PixelID.h:67
InDet::SiTrackerSpacePointFinder::m_numberOfEvents
std::atomic< int > m_numberOfEvents
Definition: SiTrackerSpacePointFinder.h:239
InDet::SiTrackerSpacePointFinder::m_overlapLimitOpposite
float m_overlapLimitOpposite
overlap limit for opposite-neighbours.
Definition: SiTrackerSpacePointFinder.h:216