ATLAS Offline Software
RpcPrepData.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 // RpcPrepPdata.h
7 // Header file for class RpcPrepData
9 // (c) ATLAS Detector software
11 // Class to implement Cluster for Muon - RPC
13 // Version 1.0 03/30/2005 Ketevi A. Assamagan
15 
16 #ifndef MUONPREPRAWDATA_RPCPREPDATA_H
17 #define MUONPREPRAWDATA_RPCPREPDATA_H
18 
19 // Base classes
21 #include "TrkSurfaces/Surface.h"
23 
25 
26 namespace Muon
27 {
28 
29  class RpcRdoToPrepDataToolMT;
30  class RpcPrepDataContainerCnv_p1;
31  class RpcPrepDataContainerCnv_p2;
32 
34 class RpcPrepData : public MuonCluster
35 {
36 
38 
40  // Public methods:
42 public:
43 
44  friend class ::RpcPrepDataContainerCnv;
47 
48  RpcPrepData() = default;
49  RpcPrepData(const RpcPrepData &) = default;
52  RpcPrepData &operator=(RpcPrepData &&) noexcept = default;
53 
54 
68  const IdentifierHash &idDE,
69  const Amg::Vector2D& locpos,
71  const Amg::MatrixX& locErrMat,
72  const MuonGM::RpcReadoutElement* detEl,
73  const float time,
74  const int triggerInfo,
75  const int ambiguityFlag);
77  const IdentifierHash &idDE,
78  const Amg::Vector2D& locpos,
79  std::vector<Identifier>&& rdoList,
80  Amg::MatrixX&& locErrMat,
81  const MuonGM::RpcReadoutElement* detEl,
82  const float time,
83  const int triggerInfo,
84  const int ambiguityFlag);
87  const IdentifierHash &idDE,
88  const Amg::Vector2D& locpos,
90  const Amg::MatrixX& locErrMat,
91  const MuonGM::RpcReadoutElement* detEl,
92  const float time,
93  const float timeOverThresh,
94  const int triggerInfo,
95  const int ambiguityFlag);
97  const IdentifierHash &idDE,
98  const Amg::Vector2D& locpos,
99  std::vector<Identifier>&& rdoList,
100  Amg::MatrixX&& locErrMat,
101  const MuonGM::RpcReadoutElement* detEl,
102  const float time,
103  const float timeOverThresh,
104  const int triggerInfo,
105  const int ambiguityFlag);
106 
107 
109  RpcPrepData( const Identifier& RDOId,
110  const IdentifierHash &idDE,
111  const Amg::Vector2D& locpos,
113  const Amg::MatrixX& locErrMat,
114  const MuonGM::RpcReadoutElement* detEl,
115  const float time,
116  const int ambiguityFlag);
117  RpcPrepData( const Identifier& RDOId,
118  const IdentifierHash &idDE,
119  const Amg::Vector2D& locpos,
120  std::vector<Identifier>&& rdoList,
121  Amg::MatrixX&& locErrMat,
122  const MuonGM::RpcReadoutElement* detEl,
123  const float time,
124  const int ambiguityFlag);
125 
126 
127 
128 
130  virtual ~RpcPrepData() = default;
131 
133  float time() const;
134 
136  virtual const Amg::Vector3D& globalPosition() const override;
137 
140  virtual const MuonGM::RpcReadoutElement* detectorElement() const override final;
141 
143  virtual bool type(Trk::PrepRawDataType type) const override final
144  {
146  }
147 
149  int triggerInfo() const;
150 
155  int ambiguityFlag() const;
156 
158  float timeOverThreshold() const;
159 
161  virtual MsgStream& dump( MsgStream& stream) const override;
162 
164  virtual std::ostream& dump( std::ostream& stream) const override;
165 
166 private:
167 
170 
173  float m_time{0.f};
174 
178  float m_timeOverThreshold{-1.f};
179 
188 
189 
190 
191 };
192 
194 // Inline methods:
196 
197 inline float RpcPrepData::time() const
198 {
199  return m_time;
200 }
201 
203 {
204  return m_detEl;
205 }
206 
207 inline int RpcPrepData::triggerInfo() const
208 {
209  return m_triggerInfo;
210 }
211 
212 inline int RpcPrepData::ambiguityFlag() const
213 {
214  return m_ambiguityFlag;
215 }
216 inline float RpcPrepData::timeOverThreshold() const { return m_timeOverThreshold; }
217 
219  {
220  if (!m_globalPosition) {
221  m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
224  }
225  return *m_globalPosition;
226  }
227 }
228 
229 #endif // MUONPREPRAWDATA_RPCPREPDATA_H
230 
MuonCluster.h
Muon::RpcPrepData::m_detEl
const MuonGM::RpcReadoutElement * m_detEl
Cached pointer to the detector element - should never be zero.
Definition: RpcPrepData.h:169
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
Trk::PrepRawDataType
PrepRawDataType
Definition: PrepRawData.h:39
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Surface.h
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Muon::RpcPrepData::globalPosition
virtual const Amg::Vector3D & globalPosition() const override
Returns the global position.
Definition: RpcPrepData.h:218
Muon::RpcPrepData::timeOverThreshold
float timeOverThreshold() const
Returns the time over threshold.
Definition: RpcPrepData.h:216
Muon::RpcPrepData::m_timeOverThreshold
float m_timeOverThreshold
time over threshold (BIS78 chips only)
Definition: RpcPrepData.h:178
Trk::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:54
Muon::RpcRdoToPrepDataToolMT
Definition: RpcRdoToPrepDataToolMT.h:36
Muon::RpcPrepData::m_time
float m_time
Float since PRD produced from RDO, and RDO should contain the time calculated from the bcid and the R...
Definition: RpcPrepData.h:173
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::PrepRawDataType::RpcPrepData
@ RpcPrepData
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
Muon::RpcPrepData::time
float time() const
Returns the time.
Definition: RpcPrepData.h:197
RpcPrepDataContainerCnv
Create derived converter to customize the saving of identifiable container.
Definition: RpcPrepDataContainerCnv.h:27
Muon::RpcPrepData
Class to represent RPC measurements.
Definition: RpcPrepData.h:35
Muon::RpcPrepData::detectorElement
virtual const MuonGM::RpcReadoutElement * detectorElement() const override final
Returns the detector element corresponding to this PRD.
Definition: RpcPrepData.h:202
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
vector
Definition: MultiHisto.h:13
Muon::RpcPrepDataContainerCnv_p2
Definition: RpcPrepDataContainerCnv_p2.h:29
Muon::RpcPrepData::dump
virtual MsgStream & dump(MsgStream &stream) const override
Dumps information about the PRD.
Definition: RpcPrepData.cxx:119
Muon::RpcPrepData::type
virtual bool type(Trk::PrepRawDataType type) const override final
Interface method checking the type.
Definition: RpcPrepData.h:143
Muon::RpcPrepData::triggerInfo
int triggerInfo() const
Returns the trigger coincidence - usually false, unless ijk>5 or highpt&&ijk==0.
Definition: RpcPrepData.h:207
Muon::RpcPrepData::m_triggerInfo
int m_triggerInfo
usually false, unless ijk>5 or highpt&&ijk==0
Definition: RpcPrepData.h:182
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::RpcPrepDataContainerCnv_p1
Definition: RpcPrepDataContainerCnv_p1.h:28
Muon::RpcPrepData::RpcPrepData
RpcPrepData(const RpcPrepData &)=default
Muon::RpcPrepData::m_ambiguityFlag
int m_ambiguityFlag
Trigger ambiguities.
Definition: RpcPrepData.h:187
Muon::RpcPrepData::RpcPrepData
RpcPrepData(RpcPrepData &&) noexcept=default
Muon::MuonCluster::m_globalPosition
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
Global position of measurement.
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h:96
Muon::MuonCluster
Class representing clusters in the muon system.
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h:37
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
IdentifierHash
Definition: IdentifierHash.h:38
Muon::RpcPrepData::ambiguityFlag
int ambiguityFlag() const
Returns the number of ambiguities associated with this RpcPrepData.
Definition: RpcPrepData.h:212
Muon::RpcPrepData::RpcPrepData
RpcPrepData()=default
Trk::Surface::localToGlobal
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.
RpcReadoutElement.h