ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::CscClusterOnTrack Class Referencefinal

Class to represent the calibrated clusters created from CSC strips. More...

#include <CscClusterOnTrack.h>

Inheritance diagram for Muon::CscClusterOnTrack:
Collaboration diagram for Muon::CscClusterOnTrack:

Public Member Functions

 CscClusterOnTrack ()
 CscClusterOnTrack (const CscClusterOnTrack &)
CscClusterOnTrackoperator= (const CscClusterOnTrack &)
 CscClusterOnTrack (const CscPrepData *RIO, Trk::LocalParameters &&locpos, Amg::MatrixX &&locerr, double positionAlongStrip, CscClusterStatus status, CscTimeStatus timeStatus=Muon::CscTimeStatusUndefined, float time=9999.0)
 Constructor with parameters : The base class owns local position, error matrix.
 CscClusterOnTrack (const ElementLinkToIDC_CSC_Container &RIO, Trk::LocalParameters &&locpos, Amg::MatrixX &&locerr, const Identifier &id, const MuonGM::CscReadoutElement *detEL, double positionAlongStrip, CscClusterStatus status, CscTimeStatus timeStatus=Muon::CscTimeStatusUndefined, float time=9999.0)
virtual ~CscClusterOnTrack ()
 Destructor.
virtual CscClusterOnTrackclone () const override final
 Clone this ROT.
virtual const CscPrepDataprepRawData () const override final
 Returns the CscPrepData - is a CscPrepData in this scope.
const ElementLinkToIDC_CSC_ContainerprepRawDataLink () const
virtual const MuonGM::CscReadoutElementdetectorElement () const override final
 Returns the detector element, associated with the PRD of this class.
virtual const Trk::SurfaceassociatedSurface () const override final
 Returns the surface on which this measurement was taken.
CscClusterStatus status () const
 Returns Csc position measurement status flag.
CscTimeStatus timeStatus () const
 Returns Csc time measurement status flag.
float time () const
 Return the time(ns)
virtual MsgStream & dump (MsgStream &stream) const override final
 Dumps information about the PRD.
virtual std::ostream & dump (std::ostream &stream) const override final
 Dumps information about the PRD.
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.
std::unique_ptr< RIO_OnTrackuniqueClone () const
 NVI clone returning unique_ptr.
virtual bool type (MeasurementBaseType::Type type) const override final
 Extended method checking the type.
Identifier identify () const
 return the identifier -extends MeasurementBase
const LocalParameters & localParameters () const
 Interface method to get the LocalParameters.
const Amg::MatrixXlocalCovariance () const
 Interface method to get the localError.

Static Public Member Functions

static std::size_t numberOfInstantiations ()

Static Public Attributes

static std::atomic_size_t s_numberOfInstantiations

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.
Identifier m_identifier {}
 Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)
LocalParameters m_localParams
Amg::MatrixX m_localCovariance

Private Member Functions

virtual void setValues (const Trk::TrkDetElementBase *, const Trk::PrepRawData *) override final
 this method is only used by the custom convertors.

Private Attributes

ElementLinkToIDC_CSC_Container m_rio
 PrepRawData object assoicated with this measurement.
const MuonGM::CscReadoutElementm_detEl
 The detector element, associated with this measurement.
CscClusterStatus m_status
 cluster position measurement status
CscTimeStatus m_timeStatus
 cluster time measurement status
float m_time

Friends

class Trk::ITrkEventCnvTool

Detailed Description

Class to represent the calibrated clusters created from CSC strips.

Definition at line 46 of file CscClusterOnTrack.h.

Constructor & Destructor Documentation

◆ CscClusterOnTrack() [1/4]

Muon::CscClusterOnTrack::CscClusterOnTrack ( )

Definition at line 22 of file CscClusterOnTrack.cxx.

22 :
23 MuonClusterOnTrack(), // call base class ctor
24 m_rio(),
25 m_detEl(nullptr),
28 m_time(9999.0)
29 {}
ElementLinkToIDC_CSC_Container m_rio
PrepRawData object assoicated with this measurement.
const MuonGM::CscReadoutElement * m_detEl
The detector element, associated with this measurement.
CscClusterStatus m_status
cluster position measurement status
CscTimeStatus m_timeStatus
cluster time measurement status
MuonClusterOnTrack()
Pool constructor.
@ CscStatusUndefined
Undefined, should not happen, most likely indicates a problem.
@ CscTimeStatusUndefined
Time is not assessed indicating potential bug.

◆ CscClusterOnTrack() [2/4]

Muon::CscClusterOnTrack::CscClusterOnTrack ( const CscClusterOnTrack & )
default

◆ CscClusterOnTrack() [3/4]

Muon::CscClusterOnTrack::CscClusterOnTrack ( const CscPrepData * RIO,
Trk::LocalParameters && locpos,
Amg::MatrixX && locerr,
double positionAlongStrip,
CscClusterStatus status,
CscTimeStatus timeStatus = Muon::CscTimeStatusUndefined,
float time = 9999.0 )

Constructor with parameters : The base class owns local position, error matrix.

Everything else has ownership elsewhere.

Parameters
[in]RIORequired (i.e. must not be NULL). Ownership is not taken.
[in]locposRequired (i.e. must not be NULL). Ownership is taken.
[in]locerrRequired (i.e. must not be NULL). Ownership is taken.
[in]positionAlongStripRequired Used to calculate global position.
[in]statusRequired Measure of 'quality' of cluster - see CscClusterStatus for more info.
[in]timeRequired

Definition at line 35 of file CscClusterOnTrack.cxx.

42 :
43 MuonClusterOnTrack(std::move(locpos), std::move(locerr), RIO->identify(), positionAlongStrip), //call base class constructor
44 m_detEl( RIO->detectorElement() ),
48{
49 //Set EL
50 // m_rio = ElementLinkToIDC_CSC_Container("CSC_Clusters", RIO->getHashAndIndex().hashAndIndex(), RIO);
51 m_rio.setElement(RIO);
52}
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Return the detector element corresponding to this PRD.
CscClusterStatus status() const
Returns Csc position measurement status flag.
CscTimeStatus timeStatus() const
Returns Csc time measurement status flag.
float time() const
Return the time(ns)
virtual double positionAlongStrip() const
Identifier identify() const
return the identifier

◆ CscClusterOnTrack() [4/4]

Muon::CscClusterOnTrack::CscClusterOnTrack ( const ElementLinkToIDC_CSC_Container & RIO,
Trk::LocalParameters && locpos,
Amg::MatrixX && locerr,
const Identifier & id,
const MuonGM::CscReadoutElement * detEL,
double positionAlongStrip,
CscClusterStatus status,
CscTimeStatus timeStatus = Muon::CscTimeStatusUndefined,
float time = 9999.0 )

Definition at line 54 of file CscClusterOnTrack.cxx.

63 :
64 MuonClusterOnTrack(std::move(locpos), std::move(locerr), id, positionAlongStrip), //call base class constructor
65 m_rio( RIO ),
66 m_detEl( detEl ),
70{
71}

◆ ~CscClusterOnTrack()

Muon::CscClusterOnTrack::~CscClusterOnTrack ( )
virtualdefault

Destructor.

Member Function Documentation

◆ associatedSurface()

const Trk::Surface & Muon::CscClusterOnTrack::associatedSurface ( ) const
inlinefinaloverridevirtual

Returns the surface on which this measurement was taken.

(i.e. a surface of a detector element)

Implements Trk::RIO_OnTrack.

Definition at line 172 of file CscClusterOnTrack.h.

173{
174 // FIXME! This will crash if detectorElement() returns 0! EJWM
175 return detectorElement()->surface(identify());
176}
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Returns the detector element, associated with the PRD of this class.
Identifier identify() const
return the identifier -extends MeasurementBase

◆ clone()

CscClusterOnTrack * Muon::CscClusterOnTrack::clone ( ) const
inlinefinaloverridevirtual

Clone this ROT.

Implements Muon::MuonClusterOnTrack.

Definition at line 149 of file CscClusterOnTrack.h.

150{
151 return new CscClusterOnTrack(*this);
152}

◆ collectionHash()

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

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.
virtual IdentifierHash collectionHash() const
Returns the IdentifierHash corresponding to the PRD collection in the PRD container.

◆ detectorElement()

const MuonGM::CscReadoutElement * Muon::CscClusterOnTrack::detectorElement ( ) const
inlinefinaloverridevirtual

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

Implements Muon::MuonClusterOnTrack.

Definition at line 167 of file CscClusterOnTrack.h.

168{
169 return m_detEl;
170}

◆ dump() [1/2]

MsgStream & Muon::CscClusterOnTrack::dump ( MsgStream & stream) const
finaloverridevirtual

Dumps information about the PRD.

Reimplemented from Muon::MuonClusterOnTrack.

Definition at line 92 of file CscClusterOnTrack.cxx.

93 {
94 stream << MSG::INFO<<"CscClusterOnTrack {"<<std::endl;
95 stream <<"Time: "<<m_time<<std::endl;
96 stream <<"Status: "<<m_status<<std::endl;
97 stream <<"TimeStatus: "<<m_timeStatus<<std::endl;
98
100
101 stream << "Cluster Status: "<<toString(m_status)<<std::endl;
102 stream << "Cluster Time Status: "<<toString(m_timeStatus)<<std::endl;
103
104 stream<<"}"<<endmsg;
105 return stream;
106 }
#define endmsg
virtual MsgStream & dump(MsgStream &stream) const override
Dumps information about the PRD.
std::string toString(CscStripStatus cstat)
Return a string description of a CSC cluster status flag.

◆ dump() [2/2]

std::ostream & Muon::CscClusterOnTrack::dump ( std::ostream & stream) const
finaloverridevirtual

Dumps information about the PRD.

Reimplemented from Muon::MuonClusterOnTrack.

Definition at line 108 of file CscClusterOnTrack.cxx.

109 {
110 stream << "CscClusterOnTrack {"<<std::endl;
111 stream <<"Time: "<<m_time<<std::endl;
112 stream <<"Status: "<<m_status<<std::endl;
113 stream <<"TimeStatus: "<<m_timeStatus<<std::endl;
114
116
117 stream << "Cluster Status: "<<toString(m_status)<<std::endl;
118 stream << "Cluster Time Status: "<<toString(m_timeStatus)<<std::endl;
119
120 stream<<"}"<<std::endl;
121 return stream;
122 }

◆ globalPosition()

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

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}
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
virtual const MuonGM::MuonClusterReadoutElement * detectorElement() const override=0
Returns the detector element, associated with the PRD of this class.
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.
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
inlineoverridevirtualinherited

Returns an invalid hash.

Implements Trk::RIO_OnTrack.

Definition at line 116 of file MuonClusterOnTrack.h.

116 {
117 return IdentifierHash();
118 }

◆ identify()

Identifier Trk::RIO_OnTrack::identify ( ) const
inlineinherited

return the identifier -extends MeasurementBase

Definition at line 152 of file RIO_OnTrack.h.

153 { return m_identifier; }
Identifier m_identifier
Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)

◆ localCovariance()

const Amg::MatrixX & Trk::MeasurementBase::localCovariance ( ) const
inlineinherited

Interface method to get the localError.

Definition at line 138 of file MeasurementBase.h.

139{
140 return m_localCovariance;
141}
Amg::MatrixX m_localCovariance

◆ localParameters()

const Trk::LocalParameters & Trk::MeasurementBase::localParameters ( ) const
inlineinherited

Interface method to get the LocalParameters.

Definition at line 132 of file MeasurementBase.h.

133{
134 return m_localParams;
135}
LocalParameters m_localParams

◆ numberOfInstantiations()

std::size_t Trk::ObjectCounter< Trk::RIO_OnTrack >::numberOfInstantiations ( )
inlinestaticinherited

Definition at line 25 of file TrkObjectCounter.h.

26 {
27#ifndef NDEBUG
28 return s_numberOfInstantiations.load();
29#endif
30 return 0;
31 }
Helper to enable counting number of instantiations in debug builds.

◆ operator=()

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

Definition at line 78 of file CscClusterOnTrack.cxx.

79 {
80 if ( &rot != this)
81 {
82 MuonClusterOnTrack::operator=(rot);//base class ass. op.
83 m_rio = rot.m_rio;
84 m_detEl = rot.m_detEl;
85 m_status = rot.m_status;
87 m_time = rot.m_time;
88 }
89 return *this;
90 }
ElementLinkToIDC_CSC_Container m_rio
PrepRawData object assoicated with this measurement.
const MuonGM::CscReadoutElement * m_detEl
The detector element, associated with this measurement.
CscClusterStatus m_status
cluster position measurement status
CscTimeStatus m_timeStatus
cluster time measurement status
MuonClusterOnTrack & operator=(const MuonClusterOnTrack &)

◆ positionAlongStrip()

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

Definition at line 68 of file MuonClusterOnTrack.h.

68 {
70 }

◆ prepRawData()

const CscPrepData * Muon::CscClusterOnTrack::prepRawData ( ) const
inlinefinaloverridevirtual

Returns the CscPrepData - is a CscPrepData in this scope.

Implements Muon::MuonClusterOnTrack.

Definition at line 154 of file CscClusterOnTrack.h.

155{
156 if (m_rio.isValid()) return m_rio.cachedElement();
157 //std::cout<<"CscClusterOnTrack::WARNING invalid PRD"<<std::endl;
158 return 0;
159}

◆ prepRawDataLink()

const ElementLinkToIDC_CSC_Container & Muon::CscClusterOnTrack::prepRawDataLink ( ) const
inline

Definition at line 162 of file CscClusterOnTrack.h.

163{
164 return m_rio;
165}

◆ rioType()

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

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()

void Muon::CscClusterOnTrack::setValues ( const Trk::TrkDetElementBase * detEl,
const Trk::PrepRawData *  )
inlinefinaloverrideprivatevirtual

this method is only used by the custom convertors.

Warning
At the moment it only actually sets the CscPrepData, since that's all that's stored
Todo
Throw exception if TrkDetElementBase isn't correct concrete type

Implements Muon::MuonClusterOnTrack.

Definition at line 193 of file CscClusterOnTrack.h.

195 {
196 // TODO should check this works EJWM
197 //m_rio = dynamic_cast<const CscPrepData*>(rio);
198 //assert(0!=m_rio);
199 m_detEl = dynamic_cast<const MuonGM::CscReadoutElement*>(detEl);
200 assert(0!=m_detEl);
201 }

◆ status()

CscClusterStatus Muon::CscClusterOnTrack::status ( ) const
inline

Returns Csc position measurement status flag.

Definition at line 178 of file CscClusterOnTrack.h.

179{
180 return m_status;
181}

◆ time()

float Muon::CscClusterOnTrack::time ( ) const
inline

Return the time(ns)

Definition at line 188 of file CscClusterOnTrack.h.

189{
190 return m_time;
191}

◆ timeStatus()

CscTimeStatus Muon::CscClusterOnTrack::timeStatus ( ) const
inline

Returns Csc time measurement status flag.

Definition at line 183 of file CscClusterOnTrack.h.

184{
185 return m_timeStatus;
186}

◆ type()

virtual bool Trk::RIO_OnTrack::type ( MeasurementBaseType::Type type) const
inlinefinaloverridevirtualinherited

Extended method checking the type.

Implements Trk::MeasurementBase.

Definition at line 110 of file RIO_OnTrack.h.

111 {
113 }
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.

◆ uniqueClone()

std::unique_ptr< RIO_OnTrack > Trk::RIO_OnTrack::uniqueClone ( ) const
inlineinherited

NVI clone returning unique_ptr.

Definition at line 97 of file RIO_OnTrack.h.

97 {
98 return std::unique_ptr<RIO_OnTrack>(clone());
99 };
virtual RIO_OnTrack * clone() const override=0
Pseudo-constructor, needed to avoid excessive RTTI.

◆ Trk::ITrkEventCnvTool

friend class Trk::ITrkEventCnvTool
friend

Definition at line 50 of file CscClusterOnTrack.h.

Member Data Documentation

◆ m_detEl

const MuonGM::CscReadoutElement* Muon::CscClusterOnTrack::m_detEl
private

The detector element, associated with this measurement.

Definition at line 133 of file CscClusterOnTrack.h.

◆ m_globalPosition

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

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

Definition at line 94 of file MuonClusterOnTrack.h.

◆ m_identifier

Identifier Trk::RIO_OnTrack::m_identifier {}
protectedinherited

Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)

Definition at line 149 of file RIO_OnTrack.h.

149{};

◆ m_localCovariance

Amg::MatrixX Trk::MeasurementBase::m_localCovariance
protectedinherited

Definition at line 112 of file MeasurementBase.h.

◆ m_localParams

LocalParameters Trk::MeasurementBase::m_localParams
protectedinherited

Definition at line 111 of file MeasurementBase.h.

◆ m_positionAlongStrip

double Muon::MuonClusterOnTrack::m_positionAlongStrip
protectedinherited

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

Definition at line 97 of file MuonClusterOnTrack.h.

◆ m_rio

ElementLinkToIDC_CSC_Container Muon::CscClusterOnTrack::m_rio
private

PrepRawData object assoicated with this measurement.

Definition at line 130 of file CscClusterOnTrack.h.

◆ m_status

CscClusterStatus Muon::CscClusterOnTrack::m_status
private

cluster position measurement status

Definition at line 136 of file CscClusterOnTrack.h.

◆ m_time

float Muon::CscClusterOnTrack::m_time
private

Definition at line 141 of file CscClusterOnTrack.h.

◆ m_timeStatus

CscTimeStatus Muon::CscClusterOnTrack::m_timeStatus
private

cluster time measurement status

Definition at line 139 of file CscClusterOnTrack.h.

◆ s_numberOfInstantiations

std::atomic_size_t Trk::ObjectCounter< Trk::RIO_OnTrack >::s_numberOfInstantiations
inlinestaticinherited

Definition at line 22 of file TrkObjectCounter.h.


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