ATLAS Offline Software
Loading...
Searching...
No Matches
Muon::RpcPrepData Class Reference

Class to represent RPC measurements. More...

#include <RpcPrepData.h>

Inheritance diagram for Muon::RpcPrepData:
Collaboration diagram for Muon::RpcPrepData:

Public Member Functions

 RpcPrepData ()=default
 RpcPrepData (const RpcPrepData &)=default
 RpcPrepData (RpcPrepData &&) noexcept=default
RpcPrepDataoperator= (const RpcPrepData &)=default
RpcPrepDataoperator= (RpcPrepData &&) noexcept=default
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, const std::vector< Identifier > &rdoList, const Amg::MatrixX &locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const int triggerInfo, const int ambiguityFlag)
 Constructor.
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, Amg::MatrixX &&locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const int triggerInfo, const int ambiguityFlag)
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, const std::vector< Identifier > &rdoList, const Amg::MatrixX &locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const float timeOverThresh, const int triggerInfo, const int ambiguityFlag)
 Extra constructor containing the time over threshold variable.
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, Amg::MatrixX &&locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const float timeOverThresh, const int triggerInfo, const int ambiguityFlag)
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, const std::vector< Identifier > &rdoList, const Amg::MatrixX &locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const int ambiguityFlag)
 Extra Constructor without TriggerInfo for a slimmed version of RpcPrepData to come.
 RpcPrepData (const Identifier &RDOId, const IdentifierHash &idDE, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, Amg::MatrixX &&locErrMat, const MuonGM::RpcReadoutElement *detEl, const float time, const int ambiguityFlag)
virtual ~RpcPrepData ()=default
 Destructor:
float time () const
 Returns the time.
virtual const Amg::Vector3DglobalPosition () const override
 Returns the global position.
virtual const MuonGM::RpcReadoutElementdetectorElement () const override final
 Returns the detector element corresponding to this PRD.
virtual Trk::PrepRawDataType prdType () const override
 Interface method returning the prdType.
int triggerInfo () const
 Returns the trigger coincidence - usually false, unless ijk>5 or highpt&&ijk==0.
int ambiguityFlag () const
 Returns the number of ambiguities associated with this RpcPrepData.
float timeOverThreshold () const
 Returns the time over threshold.
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 IdentifierHash collectionHash () const
 Returns the IdentifierHash corresponding to the PRD collection in the PRD container.
Identifier identify () const
 return the identifier
const Amg::Vector2DlocalPosition () const
 return the local position reference
const std::vector< Identifier > & rdoList () const
 return the List of rdo identifiers (pointers)
const Amg::MatrixXlocalCovariance () const
 return const ref to the error matrix
bool hasLocalCovariance () const
 returns localCovariance().size()!=0
virtual bool type (PrepRawDataType type) const
 Interface method checking the type.
void setHashAndIndex (unsigned short collHash, unsigned short objIndex)
 TEMP for testing: might make some classes friends later ...
const IdentContIndexgetHashAndIndex () const

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
 Global position of measurement.

Private Attributes

const MuonGM::RpcReadoutElementm_detEl {nullptr}
 Cached pointer to the detector element - should never be zero.
float m_time {0.f}
 Float since PRD produced from RDO, and RDO should contain the time calculated from the bcid and the RPC clock ticks.
float m_timeOverThreshold {-1.f}
 time over threshold (BIS78 chips only)
int m_triggerInfo {0}
 usually false, unless ijk>5 or highpt&&ijk==0
int m_ambiguityFlag {0}
 Trigger ambiguities.
Identifier m_clusId { 0 }
 PrepRawData ID, not const because of DataPool.
Amg::Vector2D m_localPos {}
 see derived classes for definition of meaning of LocalPosition
std::vector< Identifierm_rdoList {}
 Stores the identifiers of the RDOs.
Amg::MatrixX m_localCovariance {}
 See derived classes for definition of ErrorMatrix.
IdentContIndex m_indexAndHash
 Stores its own position (index) in collection plus the hash id for the collection (needed for the EL to IDC)

Friends

class Muon::RpcRdoToPrepDataToolMT
class ::RpcPrepDataContainerCnv
class Muon::RpcPrepDataContainerCnv_p1
class Muon::RpcPrepDataContainerCnv_p2

Detailed Description

Class to represent RPC measurements.

Definition at line 34 of file RpcPrepData.h.

Constructor & Destructor Documentation

◆ RpcPrepData() [1/9]

Muon::RpcPrepData::RpcPrepData ( )
default

◆ RpcPrepData() [2/9]

Muon::RpcPrepData::RpcPrepData ( const RpcPrepData & )
default

◆ RpcPrepData() [3/9]

Muon::RpcPrepData::RpcPrepData ( RpcPrepData && )
defaultnoexcept

◆ RpcPrepData() [4/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
const std::vector< Identifier > & rdoList,
const Amg::MatrixX & locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const int triggerInfo,
const int ambiguityFlag )

Constructor.

Parameters
RDOIdThe identifier of the central strip of the cluster
idDEThe IdenifierHash of the collection used to store this object (i.e. of Muon::CscPrepDataCollection)
locposThe local coords of the measurement (this object will now own the LocalPostion)
rdoListVector of all the Identifiers of the strips used in this cluster
locErrMatThe error of the measurement (this object will now own the ErrorMatrix)
detElThe pointer to the Detector Element on which this measurement was made (must NOT be zero). Ownership is NOT taken (the pointer is assumed to belong to GeoModel and will not be deleted)
timeThe time measured by the RPC
triggerInfoThe trigger info flag - see m_triggerInfo for more definition.
ambiguityFlagThe ambiguity flag - see m_ambiguityFlag for more definition.

Definition at line 21 of file RpcPrepData.cxx.

29 :
30 MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
31 m_detEl(detEl),
32 m_time(time),
35{ }
float m_time
Float since PRD produced from RDO, and RDO should contain the time calculated from the bcid and the R...
int m_ambiguityFlag
Trigger ambiguities.
int triggerInfo() const
Returns the trigger coincidence - usually false, unless ijk>5 or highpt&&ijk==0.
int m_triggerInfo
usually false, unless ijk>5 or highpt&&ijk==0
const MuonGM::RpcReadoutElement * m_detEl
Cached pointer to the detector element - should never be zero.
int ambiguityFlag() const
Returns the number of ambiguities associated with this RpcPrepData.
float time() const
Returns the time.
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)

◆ RpcPrepData() [5/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
Amg::MatrixX && locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const int triggerInfo,
const int ambiguityFlag )

Definition at line 68 of file RpcPrepData.cxx.

76 :
77 MuonCluster(RDOId, idDE, locpos, std::move(rdoList), std::move(locErrMat)), //call base class constructor
78 m_detEl(detEl),
79 m_time(time),
82{ }

◆ RpcPrepData() [6/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
const std::vector< Identifier > & rdoList,
const Amg::MatrixX & locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const float timeOverThresh,
const int triggerInfo,
const int ambiguityFlag )

Extra constructor containing the time over threshold variable.

Definition at line 37 of file RpcPrepData.cxx.

46 :
47 MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
48 m_detEl(detEl),
49 m_time(time),
50 m_timeOverThreshold(timeOverThresh),
53{ }
float m_timeOverThreshold
time over threshold (BIS78 chips only)

◆ RpcPrepData() [7/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
Amg::MatrixX && locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const float timeOverThresh,
const int triggerInfo,
const int ambiguityFlag )

Definition at line 84 of file RpcPrepData.cxx.

93 :
94 MuonCluster(RDOId, idDE, locpos, std::move(rdoList), std::move(locErrMat)), //call base class constructor
95 m_detEl(detEl),
96 m_time(time),
97 m_timeOverThreshold(timeOverThresh),
100{ }

◆ RpcPrepData() [8/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
const std::vector< Identifier > & rdoList,
const Amg::MatrixX & locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const int ambiguityFlag )

Extra Constructor without TriggerInfo for a slimmed version of RpcPrepData to come.

Definition at line 55 of file RpcPrepData.cxx.

62 :
63 MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
64 m_detEl(detEl),
65 m_time(time),

◆ RpcPrepData() [9/9]

Muon::RpcPrepData::RpcPrepData ( const Identifier & RDOId,
const IdentifierHash & idDE,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
Amg::MatrixX && locErrMat,
const MuonGM::RpcReadoutElement * detEl,
const float time,
const int ambiguityFlag )

Definition at line 102 of file RpcPrepData.cxx.

109 :
110 MuonCluster(RDOId, idDE, locpos, std::move(rdoList), std::move(locErrMat)), //call base class constructor
111 m_detEl(detEl),
112 m_time(time),
114{
115
116}

◆ ~RpcPrepData()

virtual Muon::RpcPrepData::~RpcPrepData ( )
virtualdefault

Destructor:

Member Function Documentation

◆ ambiguityFlag()

int Muon::RpcPrepData::ambiguityFlag ( ) const
inline

Returns the number of ambiguities associated with this RpcPrepData.

  • 0 if the ambiguites have not been removed by choice;
  • 1 if the ambiguities are fully solved
  • i+1 if "i" other MuonPrepRawData are produced along with the current one from a single RDO hit

Definition at line 211 of file RpcPrepData.h.

212{
213 return m_ambiguityFlag;
214}

◆ collectionHash()

IdentifierHash MuonCluster::collectionHash ( ) const
inlinevirtualinherited

Returns the IdentifierHash corresponding to the PRD collection in the PRD container.

Definition at line 97 of file MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h.

98 {
99 return getHashAndIndex().collHash();
100 }
unsigned short collHash() const
Accessor to hash, obj index and combined index.
const IdentContIndex & getHashAndIndex() const

◆ detectorElement()

const MuonGM::RpcReadoutElement * Muon::RpcPrepData::detectorElement ( ) const
inlinefinaloverridevirtual

Returns the detector element corresponding to this PRD.

The pointer will be zero if the det el is not defined (i.e. it was not passed in by the ctor)

Implements Trk::PrepRawData.

Definition at line 201 of file RpcPrepData.h.

202{
203 return m_detEl;
204}

◆ dump() [1/2]

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

Dumps information about the PRD.

Reimplemented from Muon::MuonCluster.

Reimplemented in Muon::RpcCoinData.

Definition at line 119 of file RpcPrepData.cxx.

120 {
121 stream << MSG::INFO<<"RpcPrepData {"<<std::endl;
122
123 MuonCluster::dump(stream);
124
125 stream <<"time = "<<this->time()<<", ";
126 stream<<"triggerInfo = "<<this->triggerInfo()<<", ";
127 stream<<"ambiguityFlag = "<<this->ambiguityFlag()<<", ";
128 stream<<"}"<<endmsg;
129
130 return stream;
131 }
#define endmsg
virtual MsgStream & dump(MsgStream &stream) const override
Dumps information about the PRD.

◆ dump() [2/2]

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

Dumps information about the PRD.

Reimplemented from Muon::MuonCluster.

Reimplemented in Muon::RpcCoinData.

Definition at line 134 of file RpcPrepData.cxx.

135 {
136 stream << "RpcPrepData {"<<std::endl;
137
138 MuonCluster::dump(stream);
139 std::stringstream s;
140 s << std::setiosflags(std::ios::fixed);
141 s << std::setprecision(4);
142 s <<"time = "<<this->time()<<", ";
143 s <<"triggerInfo = "<<this->triggerInfo()<<", ";
144 s <<"ambiguityFlag = "<<this->ambiguityFlag()<<", ";
145 s <<"}"<<std::endl;
146 stream << s.str();
147
148 return stream;
149 }

◆ getHashAndIndex()

const IdentContIndex & Trk::PrepRawData::getHashAndIndex ( ) const
inherited

◆ globalPosition()

const Amg::Vector3D & Muon::RpcPrepData::globalPosition ( ) const
inlineoverridevirtual

Returns the global position.

Implements Muon::MuonCluster.

Definition at line 217 of file RpcPrepData.h.

218 {
219 if (!m_globalPosition) {
220 m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
221 m_detEl->surface(identify())
223 }
224 return *m_globalPosition;
225 }
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
Global position of measurement.
const Amg::Vector2D & localPosition() const
return the local position reference
Identifier identify() const
return the identifier
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.

◆ hasLocalCovariance()

bool Trk::PrepRawData::hasLocalCovariance ( ) const
inherited

returns localCovariance().size()!=0

◆ identify()

Identifier Trk::PrepRawData::identify ( ) const
inherited

return the identifier

◆ localCovariance()

const Amg::MatrixX & Trk::PrepRawData::localCovariance ( ) const
inherited

return const ref to the error matrix

◆ localPosition()

const Amg::Vector2D & Trk::PrepRawData::localPosition ( ) const
inherited

return the local position reference

◆ numberOfInstantiations()

std::size_t Trk::ObjectCounter< Trk::PrepRawData >::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=() [1/2]

RpcPrepData & Muon::RpcPrepData::operator= ( const RpcPrepData & )
default

◆ operator=() [2/2]

RpcPrepData & Muon::RpcPrepData::operator= ( RpcPrepData && )
defaultnoexcept

◆ prdType()

virtual Trk::PrepRawDataType Muon::RpcPrepData::prdType ( ) const
inlineoverridevirtual

Interface method returning the prdType.

Implements Trk::PrepRawData.

Definition at line 143 of file RpcPrepData.h.

◆ rdoList()

const std::vector< Identifier > & Trk::PrepRawData::rdoList ( ) const
inherited

return the List of rdo identifiers (pointers)

◆ setHashAndIndex()

void Trk::PrepRawData::setHashAndIndex ( unsigned short collHash,
unsigned short objIndex )
inherited

TEMP for testing: might make some classes friends later ...

◆ time()

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

Returns the time.

Definition at line 196 of file RpcPrepData.h.

197{
198 return m_time;
199}

◆ timeOverThreshold()

float Muon::RpcPrepData::timeOverThreshold ( ) const
inline

Returns the time over threshold.

Definition at line 215 of file RpcPrepData.h.

215{ return m_timeOverThreshold; }

◆ triggerInfo()

int Muon::RpcPrepData::triggerInfo ( ) const
inline

Returns the trigger coincidence - usually false, unless ijk>5 or highpt&&ijk==0.

Definition at line 206 of file RpcPrepData.h.

207{
208 return m_triggerInfo;
209}

◆ type()

virtual bool Trk::PrepRawData::type ( PrepRawDataType type) const
inlinevirtualinherited

Interface method checking the type.

Reimplemented in InDet::PixelCluster, and InDet::SCT_Cluster.

Definition at line 133 of file PrepRawData.h.

133 {
134 return prdType() == type;
135 }
virtual bool type(PrepRawDataType type) const
Interface method checking the type.
virtual PrepRawDataType prdType() const =0
Interface method returning the prdType.

◆ ::RpcPrepDataContainerCnv

friend class ::RpcPrepDataContainerCnv
friend

Definition at line 44 of file RpcPrepData.h.

◆ Muon::RpcPrepDataContainerCnv_p1

friend class Muon::RpcPrepDataContainerCnv_p1
friend

Definition at line 45 of file RpcPrepData.h.

◆ Muon::RpcPrepDataContainerCnv_p2

friend class Muon::RpcPrepDataContainerCnv_p2
friend

Definition at line 46 of file RpcPrepData.h.

◆ Muon::RpcRdoToPrepDataToolMT

friend class Muon::RpcRdoToPrepDataToolMT
friend

Definition at line 37 of file RpcPrepData.h.

Member Data Documentation

◆ m_ambiguityFlag

int Muon::RpcPrepData::m_ambiguityFlag {0}
private

Trigger ambiguities.

  • 0 if the ambiguites have not been removed by choice;
  • 1 if the ambiguities are fully solved
  • i+1 if "i" other preprawdata are produced along with the current one from a single RDO hit

Definition at line 186 of file RpcPrepData.h.

186{0};

◆ m_clusId

Identifier Trk::PrepRawData::m_clusId { 0 }
privateinherited

PrepRawData ID, not const because of DataPool.

Definition at line 156 of file PrepRawData.h.

156{ 0 };

◆ m_detEl

const MuonGM::RpcReadoutElement* Muon::RpcPrepData::m_detEl {nullptr}
private

Cached pointer to the detector element - should never be zero.

Definition at line 168 of file RpcPrepData.h.

168{nullptr};

◆ m_globalPosition

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

Global position of measurement.

Calculated on demand and cached

Definition at line 89 of file MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h.

◆ m_indexAndHash

IdentContIndex Trk::PrepRawData::m_indexAndHash
privateinherited

Stores its own position (index) in collection plus the hash id for the collection (needed for the EL to IDC)

Definition at line 167 of file PrepRawData.h.

◆ m_localCovariance

Amg::MatrixX Trk::PrepRawData::m_localCovariance {}
privateinherited

See derived classes for definition of ErrorMatrix.

Definition at line 163 of file PrepRawData.h.

163{};

◆ m_localPos

Amg::Vector2D Trk::PrepRawData::m_localPos {}
privateinherited

see derived classes for definition of meaning of LocalPosition

Definition at line 159 of file PrepRawData.h.

159{};

◆ m_rdoList

std::vector<Identifier> Trk::PrepRawData::m_rdoList {}
privateinherited

Stores the identifiers of the RDOs.

Definition at line 161 of file PrepRawData.h.

161{};

◆ m_time

float Muon::RpcPrepData::m_time {0.f}
private

Float since PRD produced from RDO, and RDO should contain the time calculated from the bcid and the RPC clock ticks.

(as bcid*25+ticks*3.125).

Definition at line 172 of file RpcPrepData.h.

172{0.f};

◆ m_timeOverThreshold

float Muon::RpcPrepData::m_timeOverThreshold {-1.f}
private

time over threshold (BIS78 chips only)

Definition at line 177 of file RpcPrepData.h.

177{-1.f};

◆ m_triggerInfo

int Muon::RpcPrepData::m_triggerInfo {0}
private

usually false, unless ijk>5 or highpt&&ijk==0

Definition at line 181 of file RpcPrepData.h.

181{0};

◆ s_numberOfInstantiations

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

Definition at line 22 of file TrkObjectCounter.h.


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