ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD_Cluster.h
Go to the documentation of this file.
1
22
23#ifndef HGTD_PREPRAWDATA_HGTD_CLUSTER_H
24#define HGTD_PREPRAWDATA_HGTD_CLUSTER_H
25
30#include "TrkSurfaces/Surface.h"
32#include <memory>
33#include <numeric>
34
35class HGTD_Cluster final: public Trk::PrepRawData {
36
37public:
39 HGTD_Cluster(const HGTD_Cluster&) = default;
43 virtual ~HGTD_Cluster() = default;
44
45 // Constructor
46 HGTD_Cluster(const Identifier& rdo_id,
47 const Amg::Vector2D& loc_pos,
48 std::vector<Identifier>&& rdo_list,
49 const InDet::SiWidth& width,
51 Amg::MatrixX&& loc_err_matx,
52 const float time_of_arrival,
53 const float time_of_arrival_err,
54 std::vector<int>&& time_over_threshold);
55
56
57 // return width class reference
58 virtual const InDet::SiWidth& width() const;
59
60 // return global position reference
61 virtual const Amg::Vector3D& globalPosition() const;
62
63 virtual const InDetDD::SolidStateDetectorElementBase* detectorElement() const override;
64
66 virtual Trk::PrepRawDataType prdType() const override;
67 // return time of arrival
68 virtual float time() const;
69
70 // return the resolution of the time of arrival
71 virtual float timeResolution() const;
72
73 // return time over threshold list
74 virtual const std::vector<int>& totList() const;
75
76private:
77 InDet::SiWidth m_width; // col, row, and width in mm
78
80
82
83 float m_time{};
85 std::vector<int> m_time_over_threshold;
86};
87
89// Inline methods:
90
91inline const InDet::SiWidth& HGTD_Cluster::width() const { return m_width; }
92
94 if (!m_det_el) {
96 }
97 if (!m_glob_pos.isValid()) {
98 m_glob_pos.set (m_det_el->surface(identify()).localToGlobal(localPosition()));
99 }
100 return *m_glob_pos.ptr();
101}
102
105 return m_det_el;
106}
107
113
114inline float HGTD_Cluster::time() const { return m_time; }
115
116inline float HGTD_Cluster::timeResolution() const { return m_time_resolution; }
117
118inline const std::vector<int>& HGTD_Cluster::totList() const {
120}
121
122#endif // HGTD_PREPRAWDATA_HGTD_CLUSTER_H
Cached value with atomic update.
Cached value with atomic update.
Definition CachedValue.h:55
HGTD_Cluster & operator=(const HGTD_Cluster &)=default
std::vector< int > m_time_over_threshold
virtual float time() const
CxxUtils::CachedValue< Amg::Vector3D > m_glob_pos
virtual const InDetDD::SolidStateDetectorElementBase * detectorElement() const override
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
virtual ~HGTD_Cluster()=default
InDet::SiWidth m_width
virtual const std::vector< int > & totList() const
float m_time_resolution
virtual const InDet::SiWidth & width() const
const InDetDD::SolidStateDetectorElementBase * m_det_el
virtual const Amg::Vector3D & globalPosition() const
virtual float timeResolution() const
HGTD_Cluster & operator=(HGTD_Cluster &&)=default
HGTD_Cluster(HGTD_Cluster &&)=default
virtual Trk::PrepRawDataType prdType() const override
Interface method checking the type.
HGTD_Cluster(const HGTD_Cluster &)=default
Class to hold geometrical description of a solid state detector element.
class thrown in the event of an variable not being defined.
Definition PrepRawData.h:59
const Amg::Vector2D & localPosition() const
return the local position reference
Identifier identify() const
return the identifier
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
PrepRawDataType
Definition PrepRawData.h:39