ATLAS Offline Software
Loading...
Searching...
No Matches
StripSpacePointFormationAlgBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRK_DATAPREPARATION_StripSpacePointFormationAlgBase_H
6#define ACTSTRK_DATAPREPARATION_StripSpacePointFormationAlgBase_H
7
9#include "GaudiKernel/ToolHandle.h"
11
15
17
21
25
26#include <string>
27
28#include "src/Cache.h"
29#include "SPCacheId.h"
30
31namespace ActsTrk {
44
45 template <bool useCache>
47 public:
49
50 StripSpacePointFormationAlgBase(const std::string& name,
51 ISvcLocator* pSvcLocator);
53 virtual StatusCode initialize() override;
54 virtual StatusCode execute (const EventContext& ctx) const override;
55 virtual StatusCode finalize() override;
57
58 private:
60
65
67
68 SG::ReadHandleKey<xAOD::StripClusterContainer> m_stripClusterContainerKey{this, "StripClusters", "", "name of the input strip cluster container"};
70
72
73
74 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
75
77 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_stripDetEleCollKey{this, "StripDetectorElements", "ITkStripDetectorElementCollection", "Key of input SiDetectorElementCollection for Strip"};
79 SG::ReadCondHandleKey<InDet::SiElementPropertiesTable> m_stripPropertiesKey{this, "StripElementPropertiesTable", "ITkStripElementPropertiesTable", "Key of input SiElementPropertiesTable for Strip"};
81
83
84 SG::WriteHandleKey<xAOD::SpacePointContainer> m_stripSpacePointContainerKey{this, "StripSpacePoints", "", "name of the output strip space point container"};
85 SG::WriteHandleKey<xAOD::SpacePointContainer> m_stripOverlapSpacePointContainerKey{this, "StripOverlapSpacePoints", "", "name of the strip overlap strip space point container"};
87
89
90
91 ToolHandle<ActsTrk::IStripSpacePointFormationTool> m_spacePointMakerTool{this, "SpacePointFormationTool", "", "Tool dedicated to the creation of pixel space points"};
93 ToolHandle<GenericMonitoringTool> m_monTool{this, "MonTool", "", "Monitoring tool"};
95
97
98 Gaudi::Property< bool > m_processOverlapForStrip{this, "ProcessOverlapForStrip", true, "Enable production of eta/phi overlapping strip space points."};
100
101 //caching
107
108 Cache_WriteHandleKey m_SPCache{this,"SPCache",""};
110
111 Cache_WriteHandleKey m_OSPCache{this,"OSPCache",""};
113
114 void fillSpacepoints(xAOD::SpacePointContainer* cont, std::vector<StripSP>& input, const xAOD::StripClusterContainer* inputClusters, unsigned int indexBase=0) const;
115
116 private:
123
124 mutable std::array<std::atomic<unsigned int>, kNStat> m_stat ATLAS_THREAD_SAFE {};
125 };
126
127}
128
130
131#endif // ACTSTRKSPACEPOINTFORMATION_StripSpacePointFormationAlgBase_H
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.
SG::UpdateHandle< IDCBackend > BackendUpdateHandle
Definition Cache.h:44
SG::UpdateHandleKey< IDCBackend > BackendUpdateHandleKey
Definition Cache.h:43
SG::WriteHandle< IDC > WriteHandle
Definition Cache.h:47
IdentifiableContainer< CacheEntry< OT > > IDC
Definition Cache.h:41
SG::WriteHandleKey< IDC > WriteHandleKey
Definition Cache.h:46
void fillSpacepoints(xAOD::SpacePointContainer *cont, std::vector< StripSP > &input, const xAOD::StripClusterContainer *inputClusters, unsigned int indexBase=0) const
typename Cache::Handles< xAOD::SpacePoint >::BackendUpdateHandle Cache_BackendUpdateHandle
SG::ReadHandleKey< xAOD::StripClusterContainer > m_stripClusterContainerKey
ToolHandle< GenericMonitoringTool > m_monTool
For monitoring.
StripSpacePointFormationAlgBase(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode finalize() override
typename Cache::Handles< xAOD::SpacePoint >::WriteHandleKey Cache_WriteHandleKey
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
StripSpacePointFormationAlgBase & operator=(const StripSpacePointFormationAlgBase &)=delete
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
To get beam spot data.
ToolHandle< ActsTrk::IStripSpacePointFormationTool > m_spacePointMakerTool
For space point formation.
SG::WriteHandleKey< xAOD::SpacePointContainer > m_stripSpacePointContainerKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_stripDetEleCollKey
To get detector elements.
virtual StatusCode initialize() override
typename Cache::Handles< xAOD::SpacePoint >::BackendUpdateHandleKey Cache_BackendUpdateHandleKey
virtual ~StripSpacePointFormationAlgBase()=default
StripSpacePointFormationAlgBase(const StripSpacePointFormationAlgBase &)=delete
typename Cache::Handles< xAOD::SpacePoint >::IDC Cache_IDC
SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > m_stripPropertiesKey
To get strip module neighbours.
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKey< xAOD::SpacePointContainer > m_stripOverlapSpacePointContainerKey
typename Cache::Handles< xAOD::SpacePoint >::WriteHandle Cache_WriteHandle
An algorithm that can be simultaneously executed in multiple threads.
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.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
StripClusterContainer_v1 StripClusterContainer
Define the version of the strip cluster container.