ATLAS Offline Software
Loading...
Searching...
No Matches
MuonClusterOnTrack Class Referenceabstract

Base class for Muon cluster RIO_OnTracks. More...

#include <MuonClusterOnTrack.h>

Inheritance diagram for MuonClusterOnTrack:
Collaboration diagram for MuonClusterOnTrack:

Public Member Functions

 MuonClusterOnTrack ()
 Pool constructor.
 MuonClusterOnTrack (Trk::LocalParameters &&locpos, Amg::MatrixX &&locerr, const Identifier &id, const double positionAlongStrip)
 Constructor with parameters.
 MuonClusterOnTrack (const MuonClusterOnTrack &)
MuonClusterOnTrackoperator= (const MuonClusterOnTrack &)
virtual ~MuonClusterOnTrack ()
 Destructor.
virtual MuonClusterOnTrackclone () const override=0
 Clone this ROT.
virtual const MuonClusterprepRawData () const override=0
 Returns the Trk::PrepRawData - is a MuonCluster in this scope.
virtual const Amg::Vector3DglobalPosition () const override
 Returns global position.
virtual double positionAlongStrip () const
virtual IdentifierHash collectionHash () const
 Returns the hashID of the PRD collection.
virtual IdentifierHash idDE () const override
 Returns an invalid hash.
virtual bool rioType (Trk::RIO_OnTrackType::Type type) const override final
 Method checking the Rio On Track type.
virtual MsgStream & dump (MsgStream &stream) const override
 Dumps information about the PRD.
virtual std::ostream & dump (std::ostream &stream) const override
 Dumps information about the PRD.
virtual const MuonGM::MuonClusterReadoutElementdetectorElement () const override=0
 Returns the detector element, associated with the PRD of this class.

Protected Attributes

CxxUtils::CachedUniquePtr< const Amg::Vector3Dm_globalPosition
 cache global position, the global position has to be calculated in the inheriting classes
double m_positionAlongStrip
 The position along the strip - used to calculate the GlobalPosition.

Private Member Functions

virtual void setValues (const Trk::TrkDetElementBase *, const Trk::PrepRawData *) override=0
 Used by custom convertors.

Friends

class ::MuonClusterOnTrackCnv_p1

Detailed Description

Base class for Muon cluster RIO_OnTracks.

Definition at line 34 of file MuonClusterOnTrack.h.

Constructor & Destructor Documentation

◆ MuonClusterOnTrack() [1/3]

Muon::MuonClusterOnTrack::MuonClusterOnTrack ( )

Pool constructor.

Definition at line 22 of file MuonClusterOnTrack.cxx.

22 :
23 Trk::RIO_OnTrack(),
26{ }
double m_positionAlongStrip
The position along the strip - used to calculate the GlobalPosition.
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
cache global position, the global position has to be calculated in the inheriting classes

◆ MuonClusterOnTrack() [2/3]

Muon::MuonClusterOnTrack::MuonClusterOnTrack ( Trk::LocalParameters && locpos,
Amg::MatrixX && locerr,
const Identifier & id,
const double positionAlongStrip )

Constructor with parameters.

Definition at line 39 of file MuonClusterOnTrack.cxx.

44 : RIO_OnTrack(std::move(locpos), std::move(locerr), id), // call base class constructor
virtual double positionAlongStrip() const
RIO_OnTrack()=default
Default Constructor for POOL.

◆ MuonClusterOnTrack() [3/3]

Muon::MuonClusterOnTrack::MuonClusterOnTrack ( const MuonClusterOnTrack & rot)

Definition at line 29 of file MuonClusterOnTrack.cxx.

29 :
30 Trk::RIO_OnTrack(rot),
32{
34 if (rot.m_globalPosition) m_globalPosition.store(std::make_unique<const Amg::Vector3D>(*rot.m_globalPosition));
35}

◆ ~MuonClusterOnTrack()

Muon::MuonClusterOnTrack::~MuonClusterOnTrack ( )
virtualdefault

Destructor.

Member Function Documentation

◆ clone()

virtual MuonClusterOnTrack * Muon::MuonClusterOnTrack::clone ( ) const
overridepure virtual

Clone this ROT.

Implements Trk::RIO_OnTrack.

◆ collectionHash()

IdentifierHash Muon::MuonClusterOnTrack::collectionHash ( ) const
inlinevirtual

Returns the hashID of the PRD collection.

Definition at line 111 of file MuonClusterOnTrack.h.

111 {
112 if( this->prepRawData() ) return prepRawData()->collectionHash();
113 return IdentifierHash();
114 }
virtual const MuonCluster * prepRawData() const override=0
Returns the Trk::PrepRawData - is a MuonCluster in this scope.

◆ detectorElement()

virtual const MuonGM::MuonClusterReadoutElement * Muon::MuonClusterOnTrack::detectorElement ( ) const
overridepure virtual

Returns the detector element, associated with the PRD of this class.

Implements Trk::RIO_OnTrack.

◆ dump() [1/2]

MsgStream & Muon::MuonClusterOnTrack::dump ( MsgStream & stream) const
overridevirtual

Dumps information about the PRD.

Reimplemented from Trk::RIO_OnTrack.

Definition at line 62 of file MuonClusterOnTrack.cxx.

63{
64 stream << MSG::INFO<<"MuonClusterOnTrack {"<<std::endl;
65
67
68 stream << "Global position (x,y,z) = (";
69 stream <<this->globalPosition().x()<<", "
70 <<this->globalPosition().y()<<", "
71 <<this->globalPosition().z()<<")"<<std::endl;
72 stream << "Position along strip: "<<m_positionAlongStrip<<std::endl;
73 stream<<"}"<<endmsg;
74 return stream;
75}
#define endmsg
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
virtual MsgStream & dump(MsgStream &out) const override
returns the some information about this RIO_OnTrack.

◆ dump() [2/2]

std::ostream & Muon::MuonClusterOnTrack::dump ( std::ostream & stream) const
overridevirtual

Dumps information about the PRD.

Reimplemented from Trk::RIO_OnTrack.

Definition at line 77 of file MuonClusterOnTrack.cxx.

78{
79 stream << "MuonClusterOnTrack {"<<std::endl;
80 std::ios_base::fmtflags originalFormat = stream.flags();
81
83
84 stream << std::setiosflags(std::ios::fixed)<< std::setprecision(3);
85
86 stream << "Position along strip: "<<m_positionAlongStrip<<std::endl;
87 stream<<"}"<<std::endl;
88 stream.flags( originalFormat );
89
90 return stream;
91}

◆ globalPosition()

const Amg::Vector3D & Muon::MuonClusterOnTrack::globalPosition ( ) const
overridevirtual

Returns global position.

Implements Trk::RIO_OnTrack.

Definition at line 93 of file MuonClusterOnTrack.cxx.

93 {
94 if (detectorElement()==nullptr){
95 // Not much we can do here - no detelement, so just return 0,0,0
96 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(0.0,0.0,0.0));
97 }
98
99 if (not m_globalPosition) {
100 // calculate global position from the position of the strip and the position along the strip
101 Amg::Vector2D lpos{Amg::Vector2D::Zero()};
104 else
106
107 Amg::Vector3D gpos{Amg::Vector3D::Zero()};
108 detectorElement()->surface( identify() ).localToGlobal(lpos, gpos, gpos);
109
110 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(gpos));
111 }
112
113 return *m_globalPosition;
114}
virtual const MuonGM::MuonClusterReadoutElement * detectorElement() const override=0
Returns the detector element, associated with the PRD of this class.
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Identifier identify() const
return the identifier -extends MeasurementBase
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:114
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
@ locY
local cartesian
Definition ParamDefs.h:38
@ locX
Definition ParamDefs.h:37

◆ idDE()

IdentifierHash Muon::MuonClusterOnTrack::idDE ( ) const
inlineoverridevirtual

Returns an invalid hash.

Implements Trk::RIO_OnTrack.

Definition at line 116 of file MuonClusterOnTrack.h.

116 {
117 return IdentifierHash();
118 }

◆ operator=()

MuonClusterOnTrack & Muon::MuonClusterOnTrack::operator= ( const MuonClusterOnTrack & rot)

Definition at line 52 of file MuonClusterOnTrack.cxx.

52 {
53 if ( &rot != this) {
54 Trk::RIO_OnTrack::operator=(rot);//base class ass. op.
56 if (rot.m_globalPosition) m_globalPosition.store(std::make_unique<const Amg::Vector3D>(*rot.m_globalPosition));
57 else if (m_globalPosition) m_globalPosition.release().reset();
58 }
59 return *this;
60}
RIO_OnTrack & operator=(const RIO_OnTrack &rot)=default
Assignment operator.

◆ positionAlongStrip()

virtual double Muon::MuonClusterOnTrack::positionAlongStrip ( ) const
inlinevirtual

Definition at line 68 of file MuonClusterOnTrack.h.

68 {
70 }

◆ prepRawData()

virtual const MuonCluster * Muon::MuonClusterOnTrack::prepRawData ( ) const
overridepure virtual

Returns the Trk::PrepRawData - is a MuonCluster in this scope.

Implements Trk::RIO_OnTrack.

◆ rioType()

virtual bool Muon::MuonClusterOnTrack::rioType ( Trk::RIO_OnTrackType::Type type) const
inlinefinaloverridevirtual

Method checking the Rio On Track type.

Implements Trk::RIO_OnTrack.

Definition at line 78 of file MuonClusterOnTrack.h.

79 {
81 }
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.

◆ setValues()

virtual void Muon::MuonClusterOnTrack::setValues ( const Trk::TrkDetElementBase * ,
const Trk::PrepRawData *  )
overrideprivatepure virtual

Used by custom convertors.

Implements Trk::RIO_OnTrack.

◆ ::MuonClusterOnTrackCnv_p1

friend class ::MuonClusterOnTrackCnv_p1
friend

Definition at line 100 of file MuonClusterOnTrack.h.

Member Data Documentation

◆ m_globalPosition

CxxUtils::CachedUniquePtr<const Amg::Vector3D> Muon::MuonClusterOnTrack::m_globalPosition
protected

cache global position, the global position has to be calculated in the inheriting classes

Definition at line 94 of file MuonClusterOnTrack.h.

◆ m_positionAlongStrip

double Muon::MuonClusterOnTrack::m_positionAlongStrip
protected

The position along the strip - used to calculate the GlobalPosition.

Definition at line 97 of file MuonClusterOnTrack.h.


The documentation for this class was generated from the following files: