ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsDataPreparation
src
details
ClusterizationAlg.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 ACTSTRK_DATAPREPARATION_CLUSTERIZATIONALG_H
6
#define ACTSTRK_DATAPREPARATION_CLUSTERIZATIONALG_H
7
8
#include <
AthenaBaseComps/AthReentrantAlgorithm.h
>
9
#include <
AthenaMonitoringKernel/GenericMonitoringTool.h
>
10
#include <GaudiKernel/ToolHandle.h>
11
#include <
StoreGate/ReadHandleKey.h
>
12
#include <
StoreGate/WriteHandleKey.h
>
13
#include <
TrigSteeringEvent/TrigRoiDescriptorCollection.h
>
14
#include <
IRegionSelector/IRegSelTool.h
>
15
#include "
src/Cache.h
"
16
#include "
InDetReadoutGeometry/SiDetectorElementCollection.h
"
17
18
namespace
ActsTrk
{
19
20
template
<
typename
IClusteringTool,
bool
useCache>
21
class
ClusterizationAlg
:
public
AthReentrantAlgorithm
{
22
public
:
23
using
RDOContainer
=
typename
IClusteringTool::RDOContainer;
24
using
ClusterContainer
=
typename
IClusteringTool::ClusterContainer;
25
using
ClusterAuxContainer
=
typename
IClusteringTool::ClusterAuxContainer;
26
using
IDHelper
=
typename
IClusteringTool::IDHelper;
27
using
BaseClusterType
=
typename
ClusterContainer::base_value_type;
28
29
//cache related handles
30
using
Cache_BackendUpdateHandleKey
=
typename
Cache::Handles<BaseClusterType>::BackendUpdateHandleKey
;
31
using
Cache_BackendUpdateHandle
=
typename
Cache::Handles<BaseClusterType>::BackendUpdateHandle
;
32
using
Cache_WriteHandleKey
=
typename
Cache::Handles<BaseClusterType>::WriteHandleKey
;
33
using
Cache_WriteHandle
=
typename
Cache::Handles<BaseClusterType>::WriteHandle
;
34
using
Cache_IDC
=
typename
Cache::Handles<BaseClusterType>::IDC
;
35
using
Cache_IDCLock
=
typename
Cache::Handles<BaseClusterType>::IDC::IDC_WriteHandle
;
36
37
ClusterizationAlg
(
const
std::string& name, ISvcLocator* pSvcLocator);
38
virtual
~ClusterizationAlg
() =
default
;
39
virtual
StatusCode
initialize
()
override
;
40
virtual
StatusCode
execute
(
const
EventContext& ctx)
const override
;
41
virtual
StatusCode
finalize
()
override
;
42
43
private
:
44
ToolHandle<IClusteringTool>
m_clusteringTool
{
this
,
"ClusteringTool"
,
""
,
45
"Clustering Tool"
};
46
47
ToolHandle<GenericMonitoringTool>
m_monTool
{
this
,
"MonTool"
,
""
,
48
"Monitoring tool"
};
49
50
ToolHandle<IRegSelTool>
m_regionSelector
{
this
,
"RegSelTool"
,
""
,
51
"Region selector tool"
};
52
53
SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection>
m_detEleCollKey
{
this
,
"DetEleCollKey"
,
""
};
54
SG::ReadHandleKey<InDet::SiDetectorElementStatus>
m_detElStatus
{
this
,
"DetElStatus"
,
""
};
55
56
SG::ReadHandleKey<RDOContainer>
m_rdoContainerKey
{
this
,
"RDOContainerKey"
,
""
,
57
"Input RDO container key"
};
58
59
SG::ReadHandleKey<TrigRoiDescriptorCollection>
m_roiCollectionKey
{
this
,
"RoIs"
,
""
,
60
"RoIs to read in"
};
61
62
SG::WriteHandleKey<ClusterContainer>
m_clusterContainerKey
{
this
,
"ClustersKey"
,
""
,
63
"Key of output xAOD pixel cluster container"
};
64
65
Cache_WriteHandleKey
m_ClusterCache
{
this
,
"ClusterCache"
,
""
};
66
Cache_BackendUpdateHandleKey
m_ClusterCacheBackend
{
this
,
"ClusterCacheBackend"
,
""
};
67
68
Gaudi::Property<std::string>
m_idHelperName
{
this
,
"IDHelper"
,
""
,
69
"Name of ID helper to fetch from detstore"
};
70
71
const
IDHelper
*
m_idHelper
=
nullptr
;
72
73
private
:
74
enum
EStat
{
75
kNRdo
,
76
kNClusters
,
77
kNStat
78
};
79
80
mutable
std::array<std::atomic<unsigned int>,
kNStat
> m_stat
ATLAS_THREAD_SAFE
{};
81
};
82
83
}
// namespace ActsTrk
84
85
#endif
AthReentrantAlgorithm.h
Cache.h
GenericMonitoringTool.h
IRegSelTool.h
SiDetectorElementCollection.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrigRoiDescriptorCollection.h
ActsTrk::Cache::Handles::BackendUpdateHandle
SG::UpdateHandle< IDCBackend > BackendUpdateHandle
Definition
Cache.h:46
ActsTrk::Cache::Handles::BackendUpdateHandleKey
SG::UpdateHandleKey< IDCBackend > BackendUpdateHandleKey
Definition
Cache.h:45
ActsTrk::Cache::Handles::WriteHandle
SG::WriteHandle< IDC > WriteHandle
Definition
Cache.h:49
ActsTrk::Cache::Handles::IDC
IdentifiableContainer< CacheEntry< OT > > IDC
Definition
Cache.h:43
ActsTrk::Cache::Handles::WriteHandleKey
SG::WriteHandleKey< IDC > WriteHandleKey
Definition
Cache.h:48
ActsTrk::ClusterizationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
ActsTrk::ClusterizationAlg::m_clusteringTool
ToolHandle< IClusteringTool > m_clusteringTool
Definition
ClusterizationAlg.h:44
ActsTrk::ClusterizationAlg::ClusterContainer
typename IClusteringTool::ClusterContainer ClusterContainer
Definition
ClusterizationAlg.h:24
ActsTrk::ClusterizationAlg::m_rdoContainerKey
SG::ReadHandleKey< RDOContainer > m_rdoContainerKey
Definition
ClusterizationAlg.h:56
ActsTrk::ClusterizationAlg::m_idHelper
const IDHelper * m_idHelper
Definition
ClusterizationAlg.h:71
ActsTrk::ClusterizationAlg::IDHelper
typename IClusteringTool::IDHelper IDHelper
Definition
ClusterizationAlg.h:26
ActsTrk::ClusterizationAlg::m_detEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_detEleCollKey
Definition
ClusterizationAlg.h:53
ActsTrk::ClusterizationAlg::m_idHelperName
Gaudi::Property< std::string > m_idHelperName
Definition
ClusterizationAlg.h:68
ActsTrk::ClusterizationAlg::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition
ClusterizationAlg.h:50
ActsTrk::ClusterizationAlg::EStat
EStat
Definition
ClusterizationAlg.h:74
ActsTrk::ClusterizationAlg::kNRdo
@ kNRdo
Definition
ClusterizationAlg.h:75
ActsTrk::ClusterizationAlg::kNClusters
@ kNClusters
Definition
ClusterizationAlg.h:76
ActsTrk::ClusterizationAlg::kNStat
@ kNStat
Definition
ClusterizationAlg.h:77
ActsTrk::ClusterizationAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
Definition
ClusterizationAlg.h:80
ActsTrk::ClusterizationAlg::Cache_IDCLock
typename Cache::Handles< BaseClusterType >::IDC::IDC_WriteHandle Cache_IDCLock
Definition
ClusterizationAlg.h:35
ActsTrk::ClusterizationAlg::Cache_WriteHandleKey
typename Cache::Handles< BaseClusterType >::WriteHandleKey Cache_WriteHandleKey
Definition
ClusterizationAlg.h:32
ActsTrk::ClusterizationAlg::RDOContainer
typename IClusteringTool::RDOContainer RDOContainer
Definition
ClusterizationAlg.h:23
ActsTrk::ClusterizationAlg::ClusterizationAlg
ClusterizationAlg(const std::string &name, ISvcLocator *pSvcLocator)
ActsTrk::ClusterizationAlg::initialize
virtual StatusCode initialize() override
ActsTrk::ClusterizationAlg::m_detElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_detElStatus
Definition
ClusterizationAlg.h:54
ActsTrk::ClusterizationAlg::m_ClusterCache
Cache_WriteHandleKey m_ClusterCache
Definition
ClusterizationAlg.h:65
ActsTrk::ClusterizationAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition
ClusterizationAlg.h:47
ActsTrk::ClusterizationAlg::BaseClusterType
typename ClusterContainer::base_value_type BaseClusterType
Definition
ClusterizationAlg.h:27
ActsTrk::ClusterizationAlg::~ClusterizationAlg
virtual ~ClusterizationAlg()=default
ActsTrk::ClusterizationAlg::finalize
virtual StatusCode finalize() override
ActsTrk::ClusterizationAlg::Cache_BackendUpdateHandleKey
typename Cache::Handles< BaseClusterType >::BackendUpdateHandleKey Cache_BackendUpdateHandleKey
Definition
ClusterizationAlg.h:30
ActsTrk::ClusterizationAlg::m_clusterContainerKey
SG::WriteHandleKey< ClusterContainer > m_clusterContainerKey
Definition
ClusterizationAlg.h:62
ActsTrk::ClusterizationAlg::ClusterAuxContainer
typename IClusteringTool::ClusterAuxContainer ClusterAuxContainer
Definition
ClusterizationAlg.h:25
ActsTrk::ClusterizationAlg::m_ClusterCacheBackend
Cache_BackendUpdateHandleKey m_ClusterCacheBackend
Definition
ClusterizationAlg.h:66
ActsTrk::ClusterizationAlg::Cache_WriteHandle
typename Cache::Handles< BaseClusterType >::WriteHandle Cache_WriteHandle
Definition
ClusterizationAlg.h:33
ActsTrk::ClusterizationAlg::Cache_BackendUpdateHandle
typename Cache::Handles< BaseClusterType >::BackendUpdateHandle Cache_BackendUpdateHandle
Definition
ClusterizationAlg.h:31
ActsTrk::ClusterizationAlg::Cache_IDC
typename Cache::Handles< BaseClusterType >::IDC Cache_IDC
Definition
ClusterizationAlg.h:34
ActsTrk::ClusterizationAlg::m_roiCollectionKey
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Definition
ClusterizationAlg.h:59
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
IdentifiableContainerMT::IDC_WriteHandle
Definition
IdentifiableContainerMT.h:37
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
Generated on
for ATLAS Offline Software by
1.17.0