ATLAS Offline Software
Loading...
Searching...
No Matches
PixelClusteringTool.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_PIXEL_CLUSTERING_TOOL_H
6#define ACTSTRK_DATAPREPARATION_PIXEL_CLUSTERING_TOOL_H
7
8
17
18
19namespace ActsTrk {
20
21class PixelClusteringTool : public extends<AthAlgTool,IPixelClusteringTool> {
22public:
23 PixelClusteringTool(const std::string& type,
24 const std::string& name,
25 const IInterface* parent);
26
27 virtual StatusCode
28 clusterize(const EventContext& ctx,
29 const RawDataCollection& RDOs,
30 const InDet::SiDetectorElementStatus& pixelDetElStatus,
31 const InDetDD::SiDetectorElement& element,
32 Acts::Ccl::ClusteringData& data,
33 std::vector<ClusterCollection>& collection) const override;
34
35 virtual std::any makeVars (SG::AuxVectorData& cont) const override;
36
37 virtual StatusCode
38 makeClusters(const EventContext& ctx,
40 const InDetDD::SiDetectorElement& element,
41 size_t icluster,
42 std::any& vars,
43 typename ClusterContainer::iterator itrContainer) const override;
44
45 virtual StatusCode initialize() override;
46
47private:
48 // N.B. the cluster is added to the container
49 // and the tots and charges vectors will be moved to the xAOD object
50
51 StatusCode makeCluster(PixelClusteringTool::Cluster &cluster,
52 const InDetDD::SiDetectorElement* element,
53 const InDetDD::PixelModuleDesign& design,
54 const PixelChargeCalibCondData *calibData,
56 double lorentz_shift,
57 size_t icluster,
58 xAOD::PixelCluster::ClusterVars& clusterVars) const;
59
61 unpackRDOs(const RawDataCollection& RDOs,
62 const InDet::SiDetectorElementStatus& stripDetElStatus,
63 const InDetDD::SiDetectorElement& element) const;
64
65 static inline
66 std::optional<Identifier>
67 isGanged(const Identifier& rdoID,
68 const InDetDD::SiDetectorElement& element);
69
70private:
71 ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"};
72
74 "Pixel charge calibration data"};
75
76 Gaudi::Property<bool> m_addCorners {this, "AddCorners", true};
77 Gaudi::Property<bool> m_useWeightedPos {this, "UseWeightedPosition", false};
78 Gaudi::Property<bool> m_broadErrors {this, "UseBroadErrors", false};
79 Gaudi::Property<bool> m_checkGanged {this, "CheckGanged", false};
80 Gaudi::Property<bool> m_isITk {this, "isITk", true, "True if running in ITk"};
81 const PixelID* m_pixelID {nullptr};
82};
83
84} // namespace ActsTrk
85
86#endif // ACTS_PIXEL_CLUSTERING_TOOL_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
This is an Identifier helper class for the Pixel subdetector.
PixelClusteringTool(const std::string &type, const std::string &name, const IInterface *parent)
IPixelClusteringTool::CellCollection unpackRDOs(const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
Gaudi::Property< bool > m_broadErrors
virtual StatusCode clusterize(const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &pixelDetElStatus, const InDetDD::SiDetectorElement &element, Acts::Ccl::ClusteringData &data, std::vector< ClusterCollection > &collection) const override
SG::ReadCondHandleKey< PixelChargeCalibCondData > m_chargeDataKey
virtual StatusCode initialize() override
StatusCode makeCluster(PixelClusteringTool::Cluster &cluster, const InDetDD::SiDetectorElement *element, const InDetDD::PixelModuleDesign &design, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, double lorentz_shift, size_t icluster, xAOD::PixelCluster::ClusterVars &clusterVars) const
static std::optional< Identifier > isGanged(const Identifier &rdoID, const InDetDD::SiDetectorElement &element)
Gaudi::Property< bool > m_checkGanged
virtual std::any makeVars(SG::AuxVectorData &cont) const override
virtual StatusCode makeClusters(const EventContext &ctx, typename IPixelClusteringTool::ClusterCollection &clusters, const InDetDD::SiDetectorElement &element, size_t icluster, std::any &vars, typename ClusterContainer::iterator itrContainer) const override
Gaudi::Property< bool > m_addCorners
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Gaudi::Property< bool > m_isITk
Gaudi::Property< bool > m_useWeightedPos
Class used to describe the design of a module (diode segmentation and readout scheme).
Class to hold geometrical description of a silicon detector element.
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:69
Manage lookup of vectors of auxiliary data.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...