ATLAS Offline Software
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 
29 namespace Trk {
30  class Surface;
31  class LocalParameters;
32  class ITrkEventCnvTool;
33 }
34 
35 namespace InDetDD {
36  class TRT_BaseElement;
37 }
38 
40 
41 namespace InDet{
42  class TRT_DriftCircle;
43 
54 
55  public:
56  friend class Trk::ITrkEventCnvTool;
65 
68  Trk::LocalParameters&& driftRadius,
69  Amg::MatrixX&& errDriftRadius,
70  const IdentifierHash& idDE, double predictedLocZ,
71  const Amg::Vector3D& predictedTrackDirection,
77  const Trk::LocalParameters& driftRadius,
78  const Amg::MatrixX& errDriftRadius,
80  const Identifier& id,
81  double predictedLocZ,
82  float localAngle,
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 
130 
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 
183 
186 
189 
191  const InDetDD::TRT_BaseElement* m_detEl;
192 
193  };
194 
195  inline TRT_DriftCircleOnTrack*
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 
InDet::TRT_DriftCircleOnTrack::side
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
Definition: TRT_DriftCircleOnTrack.cxx:147
InDet::TRT_DriftCircleOnTrack::m_globalPosition
Amg::Vector3D m_globalPosition
global position to be cached
Definition: TRT_DriftCircleOnTrack.h:167
InDet::TRT_DriftCircleOnTrack::status
Trk::DriftCircleStatus status() const
returns the status of the drift radius calibration.
Definition: TRT_DriftCircleOnTrack.h:229
InDet::TRT_DriftCircleOnTrack::idDE
virtual IdentifierHash idDE() const override final
returns the DE hashID
Definition: TRT_DriftCircleOnTrack.h:219
InDet::TRT_DriftCircleOnTrack::prepRawData
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
Definition: TRT_DriftCircleOnTrack.h:202
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
DriftCircleSide.h
InDet::TRT_DriftCircleOnTrack::m_detEl
const InDetDD::TRT_BaseElement * m_detEl
corresponding detector element
Definition: TRT_DriftCircleOnTrack.h:191
Trk::DriftCircleStatus
DriftCircleStatus
Enumerates the 'status' of the wire on which the tracks passed (based on the TRT_Side enum,...
Definition: DriftCircleStatus.h:16
InDet::TRT_DriftCircleOnTrack::m_localAngle
float m_localAngle
local angle to be written out
Definition: TRT_DriftCircleOnTrack.h:170
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
InDet::TRT_DriftCircleOnTrack::associatedSurface
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
Definition: TRT_DriftCircleOnTrack.cxx:154
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
InDet::TRT_DriftCircleOnTrack::highLevel
bool highLevel() const
returns true if the high level threshold was passed
Definition: TRT_DriftCircleOnTrack.h:234
InDet::TRT_DriftCircleOnTrack::TRT_DriftCircleOnTrack
TRT_DriftCircleOnTrack()
Default constructor - needed for POOL.
Definition: TRT_DriftCircleOnTrack.cxx:92
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::TRT_DriftCircleOnTrack::detectorElement
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
Definition: TRT_DriftCircleOnTrack.h:224
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
Trk::RIO_OnTrack::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition: RIO_OnTrack.h:110
InDet::TRT_DriftCircleOnTrack::m_rio
ElementLinkToIDCTRT_DriftCircleContainer m_rio
Definition: TRT_DriftCircleOnTrack.h:175
InDet::TRT_DriftCircleOnTrack::rioType
virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
Method checking the Rio On Track type.
Definition: TRT_DriftCircleOnTrack.h:104
InDet::TRT_DriftCircleOnTrack::setGlobalPositionHelper
void setGlobalPositionHelper()
@calculate and set the global coord of this hit.
Definition: TRT_DriftCircleOnTrack.cxx:168
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:59
InDet::TRT_DriftCircleOnTrack::m_highLevel
bool m_highLevel
the high level flag
Definition: TRT_DriftCircleOnTrack.h:185
CachedUniquePtr.h
Cached unique_ptr with atomic update.
InDet::TRT_DriftCircleOnTrack::m_timeOverThreshold
double m_timeOverThreshold
the time over threshold in nsec
Definition: TRT_DriftCircleOnTrack.h:188
Trk::ITrkEventCnvTool
Definition: ITrkEventCnvTool.h:31
ElementLinkToIDCTRT_DriftCircleContainer
ElementLink< InDet::TRT_DriftCircleContainer > ElementLinkToIDCTRT_DriftCircleContainer
Definition: TRT_DriftCircleOnTrack.h:39
xAODType
Definition: ObjectType.h:13
InDet::TRT_DriftCircleOnTrack::m_status
Trk::DriftCircleStatus m_status
the information how the (possibly signed) drift radius should be understood
Definition: TRT_DriftCircleOnTrack.h:182
Trk::RIO_OnTrackType::TRT_DriftCircle
@ TRT_DriftCircle
Definition: RIO_OnTrack.h:59
TRT_DriftCircleContainer.h
InDet::TRT_DriftCircleOnTrack::timeOverThreshold
double timeOverThreshold() const
returns time over threshold in ns for valid digits; zero otherwise
Definition: TRT_DriftCircleOnTrack.h:239
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
RIO_OnTrack.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::TRT_DriftCircleOnTrack::TRT_DriftCircleOnTrack
TRT_DriftCircleOnTrack(const TRT_DriftCircleOnTrack &)
Copy constructor.
Trk::DriftCircleSide
DriftCircleSide
Enumerates the 'side' of the wire on which the tracks passed (i.e.
Definition: DriftCircleSide.h:16
InDet::TRT_DriftCircleOnTrack::localAngle
float localAngle() const
Definition: TRT_DriftCircleOnTrack.h:244
InDet::TRT_DriftCircleOnTrack::positionAlongWire
float positionAlongWire() const
Definition: TRT_DriftCircleOnTrack.h:249
InDet::TRT_DriftCircleOnTrack::setValues
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...
Definition: TRT_DriftCircleOnTrack.cxx:201
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDet::TRT_DriftCircleOnTrack::m_idDE
IdentifierHash m_idDE
the IdentifierHash - probably not used
Definition: TRT_DriftCircleOnTrack.h:178
InDet::TRT_DriftCircleOnTrack::prepRawDataLink
const ElementLinkToIDCTRT_DriftCircleContainer & prepRawDataLink() const
Definition: TRT_DriftCircleOnTrack.h:214
InDet::TRT_DriftCircleOnTrack::operator=
TRT_DriftCircleOnTrack & operator=(const TRT_DriftCircleOnTrack &)
Assignment operator.
Definition: TRT_DriftCircleOnTrack.cxx:112
InDet::TRT_DriftCircleOnTrack::m_positionAlongWire
float m_positionAlongWire
local position along wire to be written out
Definition: TRT_DriftCircleOnTrack.h:173
InDet::TRT_DriftCircleOnTrack::dump
virtual MsgStream & dump(MsgStream &out) const override final
returns some information about this RIO_OnTrack.
Definition: TRT_DriftCircleOnTrack.cxx:211
InDet::TRT_DriftCircleOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
return the global position of this RIO_OnTrack
Definition: TRT_DriftCircleOnTrack.cxx:160
IdentifierHash
Definition: IdentifierHash.h:38
InDet::TRT_DriftCircleOnTrack::clone
virtual TRT_DriftCircleOnTrack * clone() const override final
allows copying without losing the type information.
Definition: TRT_DriftCircleOnTrack.h:196
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
DriftCircleStatus.h