ATLAS Offline Software
MdtTwinPrepData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MdtTwinPrepData.h
7 // Header file for class MdtTwinPrepData
9 // (c) ATLAS Detector software
11 // Class to implement DriftCircle for Muons in Twin Tube layers
13 // Version 1.0 02/02/2009 Alex Koutsman
15 
16 #ifndef MUONPREPDATA_MDTTWINPREPDATA_H
17 #define MUONPREPDATA_MDTTWINPREPDATA_H
18 
19 // Base classes
21 
23 
24 namespace MuonGM {
25  class MdtReadoutElement;
26 }
27 
28 namespace Muon
29 {
30 
32  class MdtTwinPrepData : public MdtPrepData
33  {
34 
36  // Public methods:
38  public:
39 
40  friend class ::MdtPrepDataContainerCnv;
41 
42 
46 
47 
61  const Identifier &id,
63  const Amg::Vector2D& driftRadiusXTwin,
64  const Amg::MatrixX& errDriftRadiusXTwin,
65  const MuonGM::MdtReadoutElement* detEl,
66  const int tdc,
67  const int adc,
68  const int tdcTwin,
69  const int adcTwin,
71  );
72 
74  virtual ~MdtTwinPrepData();
75 
77  const Amg::Vector3D& globalPosition() const;
78 
80  int tdcTwin() const;
81 
83  int adcTwin() const;
84 
86  virtual MsgStream& dump( MsgStream& stream) const;
87 
89  virtual std::ostream& dump( std::ostream& stream) const;
90 
91  private:
92 
94  int m_tdcTwin{};
95 
97  int m_adcTwin{};
98 
100  void copy( const MdtTwinPrepData& prd);
101  };
102 
104  // Inline methods:
106 
107 
108  inline int MdtTwinPrepData::tdcTwin() const
109  {
110  return m_tdcTwin;
111  }
112 
113  inline int MdtTwinPrepData::adcTwin() const
114  {
115  return m_adcTwin;
116  }
117 
118  // return globalPosition:
120  {
121  if (not m_globalPosition){
122  m_globalPosition.set(std::make_unique<const Amg::Vector3D>(
124  ->surface(identify())
126  }
127 
128  if (not m_globalPosition)
130 
131  return *m_globalPosition;
132  }
133 
134  inline void MdtTwinPrepData::copy( const MdtTwinPrepData& RIO){
135  m_tdcTwin = RIO.tdcTwin();
136  m_adcTwin = RIO.adcTwin();
137  if (RIO.m_globalPosition){
138  m_globalPosition.store(std::make_unique<Amg::Vector3D>(*RIO.m_globalPosition));
139  }
140 
141  }
142 
143 }
144 
145 #endif // MUONPREPDATA_MDTTWINPREPDATA_H
146 
147 
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Muon::MdtDriftCircleStatus
MdtDriftCircleStatus
Enum to represent the 'status' of Mdt measurements e.g.
Definition: MdtDriftCircleStatus.h:25
MdtPrepDataContainerCnv
Create derived converter to customize the saving of identifiable container.
Definition: MdtPrepDataContainerCnv.h:27
MdtPrepData.h
Muon::MdtTwinPrepData::globalPosition
const Amg::Vector3D & globalPosition() const
Returns the global position of the hit using twin hit information.
Definition: MdtTwinPrepData.h:119
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::MdtPrepData::adc
int adc() const
Returns the ADC (typically range is 0 to 250)
Definition: MdtPrepData.h:166
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:50
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Muon::MdtTwinPrepData::MdtTwinPrepData
MdtTwinPrepData()
Definition: MdtTwinPrepData.cxx:49
Muon::MdtTwinPrepData::tdcTwin
int tdcTwin() const
Returns the TDC of twin tube(typically range is 0 to 2500).
Definition: MdtTwinPrepData.h:108
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Muon::MdtPrepData::tdc
int tdc() const
Returns the TDC (typically range is 0 to 2500).
Definition: MdtPrepData.h:161
Muon::MdtTwinPrepData::operator=
MdtTwinPrepData & operator=(const MdtTwinPrepData &)
Definition: MdtTwinPrepData.cxx:66
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
Muon::MdtPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtPrepData.h:37
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::MdtTwinPrepData::m_tdcTwin
int m_tdcTwin
TDC value of twin tube - typical TDC spectra can go from 0 up to 2500.
Definition: MdtTwinPrepData.h:94
Muon::MdtPrepData::m_globalPosition
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
Global position of measurement.
Definition: MdtPrepData.h:140
Muon::MdtPrepData::collectionHash
virtual IdentifierHash collectionHash() const
Returns the IdentifierHash corresponding to the Mdt tube which was hit.
Definition: MdtPrepData.h:176
Muon::MdtTwinPrepData::copy
void copy(const MdtTwinPrepData &prd)
copy content into this object.
Definition: MdtTwinPrepData.h:134
Muon::MdtTwinPrepData::adcTwin
int adcTwin() const
Returns the ADC of twin tube(typically range is 0 to 250)
Definition: MdtTwinPrepData.h:113
Muon::MdtTwinPrepData::m_adcTwin
int m_adcTwin
ADC value of twin tube - typical ADC spectra can go from 0 up to 250.
Definition: MdtTwinPrepData.h:97
IdentifierHash
Definition: IdentifierHash.h:38
Muon::MdtPrepData::status
MdtDriftCircleStatus status() const
Returns the status of the measurement.
Definition: MdtPrepData.h:171
Muon::MdtTwinPrepData::dump
virtual MsgStream & dump(MsgStream &stream) const
Dumps information about the PRD.
Definition: MdtTwinPrepData.cxx:77
Muon::MdtPrepData::detectorElement
virtual const MuonGM::MdtReadoutElement * detectorElement() const override
Returns the detector element corresponding to this PRD.
Definition: MdtPrepData.h:156
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.
Muon::MdtTwinPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtTwinPrepData.h:33
Trk::PrepRawDataUndefinedVariable
class thrown in the event of an variable not being defined.
Definition: PrepRawData.h:59
Muon::MdtTwinPrepData::~MdtTwinPrepData
virtual ~MdtTwinPrepData()
Destructor.