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
28#include "TrkSurfaces/Surface.h"
30#include "EventPrimitives/EventPrimitives.h" //Amg::MatrixX etc
32#include <vector>
33
34class Identifier;
35
36
37
38class HGTD_Cluster final: public Trk::PrepRawData {
39
40public:
42 HGTD_Cluster(const HGTD_Cluster&) = default;
46 virtual ~HGTD_Cluster() = default;
47
48 // Constructor
49 HGTD_Cluster(const Identifier& rdo_id,
50 const Amg::Vector2D& loc_pos,
51 std::vector<Identifier>&& rdo_list,
52 const InDet::SiWidth& width,
54 Amg::MatrixX&& loc_err_matx,
55 const float time_of_arrival,
56 const float time_of_arrival_err,
57 std::vector<int>&& time_over_threshold);
58
59
60 // return width class reference
61 const InDet::SiWidth& width() const;
62
63 // return global position reference
64 const Amg::Vector3D& globalPosition() const;
65
66 virtual const InDetDD::SolidStateDetectorElementBase* detectorElement() const override;
67
69 virtual Trk::PrepRawDataType prdType() const override;
70 // return time of arrival
71 float time() const;
72
73 // return the resolution of the time of arrival
74 float timeResolution() const;
75
76 // return time over threshold list
77 const std::vector<int>& totList() const;
78
79private:
80 InDet::SiWidth m_width{}; // col, row, and width in mm
81
83
85
86 float m_time{};
88 std::vector<int> m_time_over_threshold;
89};
90
92// Inline methods:
93
94inline const InDet::SiWidth& HGTD_Cluster::width() const { return m_width; }
95
97 if (!m_det_el) {
99 }
100 if (!m_glob_pos.isValid()) {
101 m_glob_pos.set (m_det_el->surface(identify()).localToGlobal(localPosition()));
102 }
103 return *m_glob_pos.ptr();
104}
105
108 return m_det_el;
109}
110
116
117inline float HGTD_Cluster::time() const { return m_time; }
118
119inline float HGTD_Cluster::timeResolution() const { return m_time_resolution; }
120
121inline const std::vector<int>& HGTD_Cluster::totList() const {
123}
124
125#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
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
const std::vector< int > & totList() const
float m_time_resolution
const InDet::SiWidth & width() const
const InDetDD::SolidStateDetectorElementBase * m_det_el
const Amg::Vector3D & globalPosition() const
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