ATLAS Offline Software
Loading...
Searching...
No Matches
RIO_OnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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
26class IdentifierHash;
27class MsgStream;
30
31
32namespace Trk {
33
34 class PrepRawData;
36 class ITrkEventCnvTool;
37
54
66
68 : public MeasurementBase
69 , public Trk::ObjectCounter<Trk::RIO_OnTrack>
70 {
71
72 friend class ITrkEventCnvTool;
73
74 public:
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;
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
127 virtual const Trk::PrepRawData* prepRawData() const = 0;
128
130 virtual IdentifierHash idDE() const = 0;
131
133 virtual const TrkDetElementBase* detectorElement() const = 0;
134
137 Identifier identify() const;
138
139 protected:
140 friend class ::RIO_OnTrackCnv_p1;
141 friend class ::RIO_OnTrackCnv_p2;
144 virtual void setValues(
145 const Trk::TrkDetElementBase* detEl,
146 const Trk::PrepRawData* prd)=0;
147
150 };
151
153 { return m_identifier; }
154}
155
156#endif // TRKRIO_ONTRACK_RIO_ONTRACK_H
157
This is a "hash" representation of an Identifier.
RIO_OnTrack(LocalParameters &&locpars, Amg::MatrixX &&loccov, const Identifier &id)
Constructor with parameters and without externalPrediction.
MeasurementBase()=default
Default constructor - needed for POOL/SEAL.
Helper to enable counting number of instantiations in debug builds.
RIO_OnTrack(const RIO_OnTrack &rot)=default
Copy Constructor.
virtual RIO_OnTrack * clone() const override=0
Pseudo-constructor, needed to avoid excessive RTTI.
RIO_OnTrack & operator=(RIO_OnTrack &&rot)=default
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
virtual const Surface & associatedSurface() const override=0
returns the surface for the local to global transformation
RIO_OnTrack & operator=(const RIO_OnTrack &rot)=default
Assignment operator.
RIO_OnTrack(LocalParameters &&locpars, Amg::MatrixX &&loccov, const Identifier &id)
Constructor with parameters and without externalPrediction.
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
Identifier identify() const
return the identifier -extends MeasurementBase
virtual IdentifierHash idDE() const =0
returns the DE hashID
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
std::unique_ptr< RIO_OnTrack > uniqueClone() const
NVI clone returning unique_ptr.
Definition RIO_OnTrack.h:97
Identifier m_identifier
Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)
friend class ITrkEventCnvTool
Definition RIO_OnTrack.h:72
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...
RIO_OnTrack()=default
Default Constructor for POOL.
RIO_OnTrack(RIO_OnTrack &&rot)=default
virtual const Amg::Vector3D & globalPosition() const override=0
Interface method to get the global Position.
virtual bool rioType(RIO_OnTrackType::Type type) const =0
Method checking the Rio On Track type.
virtual ~RIO_OnTrack()=default
Destructor.
Abstract Base Class for tracking surfaces.
This is the base class for all tracking detector elements with read-out relevant information.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file