ATLAS Offline Software
Loading...
Searching...
No Matches
HgtdTimedClusteringTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRK_DATAPREPARATION_HGTD_TIMEDCLUSTERING_TOOL_H
6#define ACTSTRK_DATAPREPARATION_HGTD_TIMEDCLUSTERING_TOOL_H
7
10
14
15#include "Acts/Definitions/Units.hpp"
16
17namespace Hgtd {
19 UnpackedHgtdRDO(int ncl, int row, int col, float toa, int tot, Identifier id)
20 : NCL(ncl), ROW(row), COL(col), TOA(toa), TOT(tot), ID(id)
21 {};
22
23 int NCL{0};
24 int ROW{0};
25 int COL{0};
26 float TOA{0.f};
27 int TOT{0};
29 };
30}
31
32namespace ActsTrk {
33
35 public extends<AthAlgTool, IHGTDClusteringTool> {
36public:
37 struct Cluster {
38 std::vector<Identifier> ids;
39 std::vector<int> tots;
40 std::vector<double> times;
41 };
42
44 using CellCollection = std::vector<Cell>;
45 using ClusterCollection = std::vector<Cluster>;
46
47public:
48 HgtdTimedClusteringTool(const std::string& type,
49 const std::string& name,
50 const IInterface* parent);
51
52 virtual StatusCode initialize() override;
53 virtual StatusCode clusterize(const EventContext& ctx,
54 const RawDataCollection& RDOs,
55 ClusterContainer& container) const override;
56
57 virtual StatusCode clusterize(const EventContext& ctx,
59 ClusterContainer& container) const override;
60
61private:
62 // N.B. the cluster is added to the container
63 StatusCode makeCluster(const EventContext& ctx,
64 const typename HgtdTimedClusteringTool::Cluster &cluster,
65 xAOD::HGTDCluster& xaodcluster) const;
66
67
68private:
70 const HGTD_ID* m_hgtd_id{nullptr};
71 ToolHandle<HGTD_TdcCalibrationTool> m_hgtd_tdc_calib_tool{this,
72 "HGTD_TdcCalibrationTool","HGTD_TdcCalibrationTool",
73 "Tool that that access TOA TDC calibration and retrieves time of arrival"};
74
75 BooleanProperty m_use_altiroc_rdo{this, "useALTIROC_RDO", false, "Use Altiroc RDO instead of standard"};
76
77 Gaudi::Property<double> m_timeTollerance {this, "TimeTollerance", 0.035 * Acts::UnitConstants::ns};
78 Gaudi::Property<bool> m_addCorners {this, "AddCorners", true};
79};
80
81}
82
83#endif
84
const HGTD_DetectorManager * m_hgtd_det_mgr
virtual StatusCode clusterize(const EventContext &ctx, const RawDataCollection &RDOs, ClusterContainer &container) const override
virtual StatusCode initialize() override
HgtdTimedClusteringTool(const std::string &type, const std::string &name, const IInterface *parent)
ToolHandle< HGTD_TdcCalibrationTool > m_hgtd_tdc_calib_tool
Gaudi::Property< double > m_timeTollerance
StatusCode makeCluster(const EventContext &ctx, const typename HgtdTimedClusteringTool::Cluster &cluster, xAOD::HGTDCluster &xaodcluster) const
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
This is an Identifier helper class for the HGTD subdetector.
Definition HGTD_ID.h:47
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
HGTDCluster_v1 HGTDCluster
Define the version of the pixel cluster class.
Definition HGTDCluster.h:13
UnpackedHgtdRDO(int ncl, int row, int col, float toa, int tot, Identifier id)