ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsToolInterfaces
ActsToolInterfaces
ICellClusteringToolBase.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 ACTSTOOLINTERFACES_ICELLCLUSTERINGTOOLBASE_H
6
#define ACTSTOOLINTERFACES_ICELLCLUSTERINGTOOLBASE_H
7
8
#include <GaudiKernel/IAlgTool.h>
9
#include <
InDetReadoutGeometry/SiDetectorElement.h
>
10
#include <
InDetReadoutGeometry/SiDetectorElementStatus.h
>
11
#include <cstdint>
12
#include <concepts>
13
#include <any>
14
#include <vector>
15
#include <utility>
16
17
namespace
ActsTrk
{
18
19
template
<
typename
T_RDO_Container>
20
struct
RDOContainerTraits
{
21
using
PerModuleRDOs
=
typename
T_RDO_Container::base_value_type;
22
};
23
24
// forward declaration (defintion Tracking/Acts/ActsDataPreparation/src/details/CellContainer.h)
25
template
<
typename
coordinates_t, std::
size_t
NDIM, std::
unsigned
_
int
egral index_t>
26
struct
CellContainer
;
27
28
template
<
typename
T_RDO_Container,
typename
T_OutputContainer, std::
size_t
NDIM, std::
int
egral coordinate_t=std::
int
16_t>
29
class
ICellClusteringToolBase
:
virtual
public
IAlgTool {
30
public
:
31
using
RDOContainer
= T_RDO_Container;
32
using
RawDataCollection
=
RDOContainerTraits<T_RDO_Container>::PerModuleRDOs
;
33
using
ClusterContainer
= T_OutputContainer;
34
35
using
CellContainer
=
ActsTrk::CellContainer<coordinate_t,NDIM,std::uint16_t>
;
36
42
virtual
std::pair<unsigned int, unsigned int>
43
countCells
(
const
RDOContainer
& rdo_collection,
44
const
std::vector<IdentifierHash> &listOfIds,
45
const
InDetDD::SiDetectorElementCollection
&detector_elements)
const
=0;
46
50
virtual
StatusCode
51
clusterize
(
const
EventContext& ctx,
52
const
RawDataCollection
& RDOs,
53
const
InDet::SiDetectorElementStatus
& stripDetElStatus,
54
const
InDetDD::SiDetectorElement
& element,
55
CellContainer
&cell_container)
const
= 0;
56
60
virtual
std::any
createEventDataCache
(
ClusterContainer
& cont,
61
std::size_t nClusterRDOs)
const
= 0;
62
74
virtual
StatusCode
75
makeClusters
(
const
EventContext& ctx,
76
const
RDOContainer
&rdo_container,
77
const
CellContainer
& cell_container,
78
unsigned
int
module_i,
79
const
InDetDD::SiDetectorElement
& element,
80
unsigned
int
icluster,
81
ClusterContainer
& cont,
82
std::any& vars)
const
= 0;
83
};
84
}
85
#endif
SiDetectorElementStatus.h
SiDetectorElement.h
ActsTrk::ICellClusteringToolBase
Definition
ICellClusteringToolBase.h:29
ActsTrk::ICellClusteringToolBase::CellContainer
ActsTrk::CellContainer< coordinate_t, NDIM, std::uint16_t > CellContainer
Definition
ICellClusteringToolBase.h:35
ActsTrk::ICellClusteringToolBase::RDOContainer
T_RDO_Container RDOContainer
Definition
ICellClusteringToolBase.h:31
ActsTrk::ICellClusteringToolBase::RawDataCollection
RDOContainerTraits< T_RDO_Container >::PerModuleRDOs RawDataCollection
Definition
ICellClusteringToolBase.h:32
ActsTrk::ICellClusteringToolBase::ClusterContainer
T_OutputContainer ClusterContainer
Definition
ICellClusteringToolBase.h:33
ActsTrk::ICellClusteringToolBase::clusterize
virtual StatusCode clusterize(const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element, CellContainer &cell_container) const =0
clusterize the given RDOs.
ActsTrk::ICellClusteringToolBase::countCells
virtual std::pair< unsigned int, unsigned int > countCells(const RDOContainer &rdo_collection, const std::vector< IdentifierHash > &listOfIds, const InDetDD::SiDetectorElementCollection &detector_elements) const =0
count the number of cells and expected number of clusters for the given RDO collection.
ActsTrk::ICellClusteringToolBase::makeClusters
virtual StatusCode makeClusters(const EventContext &ctx, const RDOContainer &rdo_container, const CellContainer &cell_container, unsigned int module_i, const InDetDD::SiDetectorElement &element, unsigned int icluster, ClusterContainer &cont, std::any &vars) const =0
create the final cluster collection based on the temporary cluster collection.
ActsTrk::ICellClusteringToolBase::createEventDataCache
virtual std::any createEventDataCache(ClusterContainer &cont, std::size_t nClusterRDOs) const =0
Create a per event cache which can be used to speed up the construction of the final cluster collecti...
InDetDD::SiDetectorElementCollection
Class to hold the SiDetectorElement objects to be put in the detector store.
Definition
SiDetectorElementCollection.h:27
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDet::SiDetectorElementStatus
Definition
SiDetectorElementStatus.h:62
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::CellContainer
temporary cell container suitable for the in-place clusterization
Definition
CellContainer.h:30
ActsTrk::RDOContainerTraits
Definition
ICellClusteringToolBase.h:20
ActsTrk::RDOContainerTraits::PerModuleRDOs
typename T_RDO_Container::base_value_type PerModuleRDOs
Definition
ICellClusteringToolBase.h:21
Generated on
for ATLAS Offline Software by
1.17.0