ATLAS Offline Software
RIO_OnTrack.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // RIO_OnTrack.h, (c) ATLAS Detector software
8 
9 #ifndef TRKRIO_ONTRACK_RIO_ONTRACK_H
10 #define TRKRIO_ONTRACK_RIO_ONTRACK_H
11 
12 // Amg
15 // Trk
19 // Identifier
20 #include "Identifier/Identifier.h"
21 
22 #include <iosfwd>
23 #include <atomic>
24 #include <memory>
25 
26 class IdentifierHash;
27 class MsgStream;
28 class RIO_OnTrackCnv_p1;
29 class RIO_OnTrackCnv_p2;
30 
31 
32 namespace Trk {
33 
34  class PrepRawData;
35  class TrkDetElementBase;
36  class ITrkEventCnvTool;
37 
55  namespace RIO_OnTrackType{
56  enum Type{
63  HGTD_Cluster=6
64  };
65  }
66 
68  : public MeasurementBase
69  , public Trk::ObjectCounter<Trk::RIO_OnTrack>
70  {
71 
72  friend class ITrkEventCnvTool;
73 
74  public:
76  RIO_OnTrack(LocalParameters&& locpars,
77  Amg::MatrixX&& loccov,
78  const Identifier& id);
79 
81  RIO_OnTrack() = default;
83  RIO_OnTrack(const RIO_OnTrack& rot) = default;
84  RIO_OnTrack(RIO_OnTrack&& rot) = default;
85 
87  RIO_OnTrack& operator=(const RIO_OnTrack& rot) = default;
88  RIO_OnTrack& operator=(RIO_OnTrack&& rot) = default;
89 
91  virtual ~RIO_OnTrack() = default;
92 
94  virtual RIO_OnTrack* clone() const override = 0;
95 
97  std::unique_ptr<RIO_OnTrack> uniqueClone() const {
98  return std::unique_ptr<RIO_OnTrack>(clone());
99  };
100 
103  virtual const Surface& associatedSurface() const override = 0;
104 
107  virtual const Amg::Vector3D& globalPosition() const override = 0;
108 
110  virtual bool type(MeasurementBaseType::Type type) const override final
111  {
113  }
114 
116  virtual bool rioType(RIO_OnTrackType::Type type) const = 0;
117 
119  virtual MsgStream& dump( MsgStream& out ) const override;
120 
122  virtual std::ostream& dump( std::ostream& out ) const override;
123 
128  virtual const Trk::PrepRawData* prepRawData() const = 0;
129 
132  virtual IdentifierHash idDE() const = 0;
133 
136  virtual const TrkDetElementBase* detectorElement() const = 0;
137 
140  virtual Identifier identify() const final;
141 
142  protected:
143  friend class ::RIO_OnTrackCnv_p1;
144  friend class ::RIO_OnTrackCnv_p2;
147  virtual void setValues(
148  const Trk::TrkDetElementBase* detEl,
149  const Trk::PrepRawData* prd)=0;
150 
153  };
154 
156  { return m_identifier; }
157 }
158 
159 #endif // TRKRIO_ONTRACK_RIO_ONTRACK_H
160 
Trk::RIO_OnTrack::uniqueClone
std::unique_ptr< RIO_OnTrack > uniqueClone() const
NVI clone returning unique_ptr.
Definition: RIO_OnTrack.h:97
Trk::RIO_OnTrack::operator=
RIO_OnTrack & operator=(RIO_OnTrack &&rot)=default
Trk::LocalParameters
Definition: LocalParameters.h:98
Trk::RIO_OnTrack::dump
virtual MsgStream & dump(MsgStream &out) const override
returns the some information about this RIO_OnTrack.
Definition: RIO_OnTrack.cxx:32
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
PixelCluster
Definition: Trigger/TrigAccel/TrigCudaFitter/src/PixelCluster.h:7
MeasurementBase.h
Trk::RIO_OnTrack::setValues
virtual void setValues(const Trk::TrkDetElementBase *detEl, const Trk::PrepRawData *prd)=0
ONLY for use in custom convertor Allows the custom convertor to reset values when persistying/reading...
Trk::RIO_OnTrack::clone
virtual RIO_OnTrack * clone() const override=0
Pseudo-constructor, needed to avoid excessive RTTI.
Trk::RIO_OnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override=0
Interface method to get the global Position.
Trk::RIO_OnTrack::RIO_OnTrack
RIO_OnTrack(const RIO_OnTrack &rot)=default
Copy Constructor.
TrkObjectCounter.h
Trk::RIO_OnTrack::rioType
virtual bool rioType(RIO_OnTrackType::Type type) const =0
Method checking the Rio On Track type.
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
RIO_OnTrackCnv_p2
Definition: RIO_OnTrackCnv_p2.h:22
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
Trk::ObjectCounter
Helper to enable counting number of instantiations in debug builds.
Definition: TrkObjectCounter.h:18
Trk::RIO_OnTrack::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition: RIO_OnTrack.h:110
HGTD_Cluster
Definition: HGTD_Cluster.h:35
Trk::RIO_OnTrack::RIO_OnTrack
RIO_OnTrack(RIO_OnTrack &&rot)=default
Trk::RIO_OnTrack::RIO_OnTrack
RIO_OnTrack()=default
Default Constructor for POOL.
GeoPrimitives.h
Trk::RIO_OnTrackType::SCTCluster
@ SCTCluster
Definition: RIO_OnTrack.h:58
Trk::RIO_OnTrack::~RIO_OnTrack
virtual ~RIO_OnTrack()=default
Destructor.
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
RIO_OnTrackCnv_p1
Definition: RIO_OnTrackCnv_p1.h:30
Trk::ITrkEventCnvTool
Definition: ITrkEventCnvTool.h:31
Trk::RIO_OnTrack::operator=
RIO_OnTrack & operator=(const RIO_OnTrack &rot)=default
Assignment operator.
xAODType
Definition: ObjectType.h:13
Trk::RIO_OnTrackType::TRT_DriftCircle
@ TRT_DriftCircle
Definition: RIO_OnTrack.h:59
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::MeasurementBase
Definition: MeasurementBase.h:58
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::RIO_OnTrackType::MdtDriftCircle
@ MdtDriftCircle
Definition: RIO_OnTrack.h:60
Trk::RIO_OnTrack::idDE
virtual IdentifierHash idDE() const =0
returns the DE hashID
test_pythinning.out
out
Definition: test_pythinning.py:94
MuonCluster
Definition: Trigger/TrigAlgorithms/TrigLongLivedParticles/src/MuonCluster.h:46
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
LocalParameters.h
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
Trk::RIO_OnTrack::m_identifier
Identifier m_identifier
Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)
Definition: RIO_OnTrack.h:152
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
Trk::RIO_OnTrackType::PlanarCluster
@ PlanarCluster
Definition: RIO_OnTrack.h:62
Trk::RIO_OnTrack::associatedSurface
virtual const Surface & associatedSurface() const override=0
returns the surface for the local to global transformation
Trk::RIO_OnTrack::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
IdentifierHash
Definition: IdentifierHash.h:38
Trk::MeasurementBaseType::Type
Type
Definition: MeasurementBase.h:46
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::RIO_OnTrackType::Type
Type
Definition: RIO_OnTrack.h:56