ATLAS Offline Software
PixelClusteringTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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 
18 
19 
20 namespace ActsTrk {
21 
22 class PixelClusteringTool : public extends<AthAlgTool,IPixelClusteringTool> {
23 public:
24  PixelClusteringTool(const std::string& type,
25  const std::string& name,
26  const IInterface* parent);
27 
28  virtual StatusCode
29  clusterize(const EventContext& ctx,
30  const RawDataCollection& RDOs,
31  const InDet::SiDetectorElementStatus& pixelDetElStatus,
32  const InDetDD::SiDetectorElement& element,
33  Acts::Ccl::ClusteringData& data,
34  std::vector<ClusterCollection>& collection) const override;
35 
36  virtual StatusCode
37  makeClusters(const EventContext& ctx,
39  const InDetDD::SiDetectorElement& element,
40  typename ClusterContainer::iterator itrContainer) const override;
41 
42  virtual StatusCode initialize() override;
43 
44 private:
45  // N.B. the cluster is added to the container
46  // and the tots and charges vectors will be moved to the xAOD object
47 
48  StatusCode makeCluster(const EventContext& ctx,
49  PixelClusteringTool::Cluster &cluster,
50  const InDetDD::SiDetectorElement* element,
51  const InDetDD::PixelModuleDesign& design,
52  const PixelChargeCalibCondData *calibData,
54  xAOD::PixelCluster& container) const;
55 
57  unpackRDOs(const RawDataCollection& RDOs,
58  const InDet::SiDetectorElementStatus& stripDetElStatus,
59  const InDetDD::SiDetectorElement& element) const;
60 
61  static inline
62  std::optional<Identifier>
63  isGanged(const Identifier& rdoID,
64  const InDetDD::SiDetectorElement& element);
65 
66 private:
67  ServiceHandle< InDetDD::IPixelReadoutManager > m_pixelReadout {this, "PixelReadoutManager", "InDetDD::ITk::PixelReadoutManager",
68  "Pixel readout manager" };
69 
70  ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"};
71 
73  "Pixel charge calibration data"};
74 
75  Gaudi::Property<bool> m_addCorners {this, "AddCorners", true};
76  Gaudi::Property<bool> m_useWeightedPos {this, "UseWeightedPosition", false};
77  Gaudi::Property<bool> m_broadErrors {this, "UseBroadErrors", false};
78  Gaudi::Property<bool> m_checkGanged {this, "CheckGanged", false};
79  Gaudi::Property<bool> m_isITk {this, "isITk", true, "True if running in ITk"};
80  const PixelID* m_pixelID {nullptr};
81 };
82 
83 } // namespace ActsTrk
84 
85 #endif // ACTS_PIXEL_CLUSTERING_TOOL_H
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
ActsTrk::PixelClusteringTool::m_broadErrors
Gaudi::Property< bool > m_broadErrors
Definition: PixelClusteringTool.h:77
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
IPixelClusteringTool.h
ActsTrk::PixelClusteringTool::m_pixelLorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Definition: PixelClusteringTool.h:70
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:45
ActsTrk::PixelClusteringTool::m_isITk
Gaudi::Property< bool > m_isITk
Definition: PixelClusteringTool.h:79
ActsTrk::IPixelClusteringTool::CellCollection
std::vector< Cell > CellCollection
Definition: Tracking/Acts/ActsToolInterfaces/ActsToolInterfaces/IPixelClusteringTool.h:41
ActsTrk::PixelClusteringTool
Definition: PixelClusteringTool.h:22
ActsTrk::PixelClusteringTool::m_pixelID
const PixelID * m_pixelID
Definition: PixelClusteringTool.h:80
ActsTrk::PixelClusteringTool::unpackRDOs
IPixelClusteringTool::CellCollection unpackRDOs(const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
Definition: PixelClusteringTool.cxx:318
ISiLorentzAngleTool.h
ActsTrk::PixelClusteringTool::m_useWeightedPos
Gaudi::Property< bool > m_useWeightedPos
Definition: PixelClusteringTool.h:76
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::PixelClusteringTool::m_addCorners
Gaudi::Property< bool > m_addCorners
Definition: PixelClusteringTool.h:75
ActsTrk::PixelClusteringTool::m_chargeDataKey
SG::ReadCondHandleKey< PixelChargeCalibCondData > m_chargeDataKey
Definition: PixelClusteringTool.h:72
ActsTrk::PixelClusteringTool::PixelClusteringTool
PixelClusteringTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: PixelClusteringTool.cxx:64
ActsTrk::PixelClusteringTool::m_pixelReadout
ServiceHandle< InDetDD::IPixelReadoutManager > m_pixelReadout
Definition: PixelClusteringTool.h:67
ActsTrk::PixelClusteringTool::makeCluster
StatusCode makeCluster(const EventContext &ctx, PixelClusteringTool::Cluster &cluster, const InDetDD::SiDetectorElement *element, const InDetDD::PixelModuleDesign &design, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, xAOD::PixelCluster &container) const
Definition: PixelClusteringTool.cxx:70
PixelRDORawData.h
InDet::SiDetectorElementStatus
Definition: SiDetectorElementStatus.h:62
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::PixelClusteringTool::initialize
virtual StatusCode initialize() override
Definition: PixelClusteringTool.cxx:42
PixelChargeCalibCondData
Definition: PixelChargeCalibCondData.h:24
PixelClusterContainer.h
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::PixelClusteringTool::clusterize
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
Definition: PixelClusteringTool.cxx:248
PixelChargeCalibCondData::CalibrationStrategy
CalibrationStrategy
Definition: PixelChargeCalibCondData.h:34
IPixelReadoutManager.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
ActsTrk::PixelClusteringTool::makeClusters
virtual StatusCode makeClusters(const EventContext &ctx, typename IPixelClusteringTool::ClusterCollection &clusters, const InDetDD::SiDetectorElement &element, typename ClusterContainer::iterator itrContainer) const override
Definition: PixelClusteringTool.cxx:275
SG::ReadCondHandleKey< PixelChargeCalibCondData >
ActsTrk::PixelClusteringTool::isGanged
static std::optional< Identifier > isGanged(const Identifier &rdoID, const InDetDD::SiDetectorElement &element)
Definition: PixelClusteringTool.cxx:369
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
PixelModuleDesign.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
ActsTrk::PixelClusteringTool::m_checkGanged
Gaudi::Property< bool > m_checkGanged
Definition: PixelClusteringTool.h:78
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MdtCalibInput.h:31
ActsTrk::IPixelClusteringTool::ClusterCollection
std::vector< Cluster > ClusterCollection
Definition: Tracking/Acts/ActsToolInterfaces/ActsToolInterfaces/IPixelClusteringTool.h:48
PixelID
Definition: PixelID.h:67
PixelChargeCalibCondData.h
ServiceHandle< InDetDD::IPixelReadoutManager >
Identifier
Definition: IdentifierFieldParser.cxx:14