ATLAS Offline Software
Loading...
Searching...
No Matches
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>
11#include <cstdint>
12#include <concepts>
13#include <any>
14#include <vector>
15#include <utility>
16
17namespace ActsTrk {
18
19// forward declaration (defintion Tracking/Acts/ActsDataPreparation/src/details/CellContainer.h)
20template <typename coordinates_t, std::size_t NDIM, std::unsigned_integral index_t>
21struct CellContainer;
22
23template <typename T_RDO_Container, typename T_OutputContainer, std::size_t NDIM, std::integral coordinate_t=std::int16_t>
24class ICellClusteringToolBase : virtual public IAlgTool {
25public:
26 using RDOContainer = T_RDO_Container;
27 using RawDataCollection = typename RDOContainer::base_value_type;
28 using ClusterContainer = T_OutputContainer;
29
31
37 virtual std::pair<unsigned int, unsigned int>
38 countCells(const RDOContainer& rdo_collection,
39 const std::vector<IdentifierHash> &listOfIds,
40 const InDetDD::SiDetectorElementCollection &detector_elements) const =0;
41
45 virtual StatusCode
46 clusterize(const EventContext& ctx,
47 const RawDataCollection& RDOs,
48 const InDet::SiDetectorElementStatus& stripDetElStatus,
49 const InDetDD::SiDetectorElement& element,
50 CellContainer &cell_container) const = 0;
51
55 virtual std::any createEventDataCache(ClusterContainer& cont,
56 std::size_t nClusterRDOs) const = 0;
57
69 virtual StatusCode
70 makeClusters(const EventContext& ctx,
71 const RDOContainer &rdo_container,
72 const CellContainer& cell_container,
73 unsigned int module_i,
74 const InDetDD::SiDetectorElement& element,
75 unsigned int icluster,
76 ClusterContainer& cont,
77 std::any& vars) const = 0;
78};
79}
80#endif
typename RDOContainer::base_value_type RawDataCollection
ActsTrk::CellContainer< coordinate_t, NDIM, std::uint16_t > CellContainer
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.
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.
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.
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...
Class to hold the SiDetectorElement objects to be put in the detector store.
Class to hold geometrical description of a silicon detector element.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
temporary cell container suitable for the in-place clusterization