ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_DriftCircleOnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TRT_DriftCircleOnTrack.h, (c) ATLAS Detector software
8
9#ifndef INDETRIO_ONTRACK_TRT_DRIFTCIRCLEONTRACK_H
10#define INDETRIO_ONTRACK_TRT_DRIFTCIRCLEONTRACK_H
11
12// Base classes
17
18// InDet
19
20
21// for ElementLink to IdentifiableContainer PixelClusterContainer
23#include "AthLinks/ElementLink.h"
24
25#include "GaudiKernel/GaudiException.h"
26
27#include <atomic>
28
29namespace Trk {
30 class Surface;
31 class LocalParameters;
32 class ITrkEventCnvTool;
33}
34
35namespace InDetDD {
36 class TRT_BaseElement;
37}
38
40
41namespace InDet{
42 class TRT_DriftCircle;
43
52
54
55 public:
65
68 Trk::LocalParameters&& driftRadius,
69 Amg::MatrixX&& errDriftRadius,
70 const IdentifierHash& idDE, double predictedLocZ,
71 const Amg::Vector3D& predictedTrackDirection,
72 const Trk::DriftCircleStatus status);
77 const Trk::LocalParameters& driftRadius,
78 const Amg::MatrixX& errDriftRadius,
80 const Identifier& id,
81 double predictedLocZ,
82 float localAngle,
83 const Trk::DriftCircleStatus status,
84 bool highLevel,
85 double timeOverThreshold);
86
89
91 virtual TRT_DriftCircleOnTrack* clone() const override final;
92
97 virtual const Amg::Vector3D& globalPosition() const override final;
98
102 virtual const Trk::Surface& associatedSurface() const override final;
103
104 virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
105 {
107 }
108
112 virtual const TRT_DriftCircle* prepRawData() const override final;
114
118 virtual IdentifierHash idDE() const override final;
119
123 virtual const InDetDD::TRT_BaseElement* detectorElement() const override final;
124
129 Trk::DriftCircleSide side() const;
130
135 Trk::DriftCircleStatus status() const;
136
137
140 bool highLevel() const ;
141
144 double timeOverThreshold() const;
145
147 virtual MsgStream& dump( MsgStream& out ) const override final;
149 virtual std::ostream& dump( std::ostream& out ) const override final;
150
151 float localAngle() const;
152 float positionAlongWire() const;
153
154
155 private:
158 virtual void setValues(const Trk::TrkDetElementBase* detEl,
159 const Trk::PrepRawData* prd) override final;
160
165
168
171
174
176
179
182 Trk::DriftCircleStatus m_status;
183
186
189
191 const InDetDD::TRT_BaseElement* m_detEl;
192
193 };
194
197 {
198 return new TRT_DriftCircleOnTrack(*this);
199 }
200
201 inline const TRT_DriftCircle*
203 {
204 // ask first if it is valid ...
205 // otherwise it always returns nullptr ...
206 if (m_rio.isValid()) {
207 return m_rio.cachedElement();
208 }
209 return nullptr;
210 }
211
212 inline
215 {
216 return m_rio;
217 }
218
220 {
221 return m_idDE;
222 }
223
225 {
226 return m_detEl;
227 }
228
230 {
231 return m_status;
232 }
233
235 {
236 return m_highLevel;
237 }
238
240 {
241 return m_timeOverThreshold;
242 }
243
245 {
246 return m_localAngle;
247 }
248
250 {
251 return m_positionAlongWire;
252 }
253}
254
255#endif // TRKRIO_ONTRACK_TRT_DRIFTCIRCLEONTRACK_H
256
Cached unique_ptr with atomic update.
ElementLink< InDet::TRT_DriftCircleContainer > ElementLinkToIDCTRT_DriftCircleContainer
Eigen::Matrix< double, 3, 1 > Vector3D
This is a "hash" representation of an Identifier.
Virtual base class of TRT readout elements.
bool highLevel() const
returns true if the high level threshold was passed
TRT_DriftCircleOnTrack & operator=(const TRT_DriftCircleOnTrack &)
Assignment operator.
float m_localAngle
local angle to be written out
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
Trk::DriftCircleStatus m_status
the information how the (possibly signed) drift radius should be understood
float m_positionAlongWire
local position along wire to be written out
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
TRT_DriftCircleOnTrack()
Default constructor - needed for POOL.
void setGlobalPositionHelper()
@calculate and set the global coord of this hit.
ElementLinkToIDCTRT_DriftCircleContainer m_rio
const InDetDD::TRT_BaseElement * m_detEl
corresponding detector element
TRT_DriftCircleOnTrack(const TRT_DriftCircleOnTrack &)
Copy constructor.
IdentifierHash m_idDE
the IdentifierHash - probably not used
double timeOverThreshold() const
returns time over threshold in ns for valid digits; zero otherwise
const ElementLinkToIDCTRT_DriftCircleContainer & prepRawDataLink() const
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
virtual IdentifierHash idDE() const override final
returns the DE hashID
Trk::DriftCircleStatus status() const
returns the status of the drift radius calibration.
virtual const Amg::Vector3D & globalPosition() const override final
return the global position of this RIO_OnTrack
double m_timeOverThreshold
the time over threshold in nsec
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
Method checking the Rio On Track type.
virtual TRT_DriftCircleOnTrack * clone() const override final
allows copying without losing the type information.
virtual void setValues(const Trk::TrkDetElementBase *detEl, const Trk::PrepRawData *prd) override final
ONLY for use in custom convertor Allows the custom convertor to reset values when persistying/reading...
Amg::Vector3D m_globalPosition
global position to be cached
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Abstract Base Class for tracking surfaces.
STL class.
double timeOverThreshold(unsigned int m_word)
bool highLevel(unsigned int m_word)
Definition driftCircle.h:88
Definition of ATLAS Math & Geometry primitives (Amg)
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
DriftCircleStatus
Enumerates the 'status' of the wire on which the tracks passed (based on the TRT_Side enum,...
-event-from-file
STL namespace.
#define private