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 
43  MdtTwinPrepData() = default;
44  MdtTwinPrepData(const MdtTwinPrepData &) = default;
46 
47 
60  MdtTwinPrepData(const Identifier &id,
61  const Amg::Vector2D& driftRadiusXTwin,
62  const Amg::MatrixX& errDriftRadiusXTwin,
63  const MuonGM::MdtReadoutElement* detEl,
64  const int tdc, const int adc,
65  const int tdcTwin, const int adcTwin,
67 
69  virtual ~MdtTwinPrepData() = default;
70 
72  const Amg::Vector3D& globalPosition() const;
73 
75  int tdcTwin() const;
76 
78  int adcTwin() const;
79 
81  virtual MsgStream& dump( MsgStream& stream) const;
82 
84  virtual std::ostream& dump( std::ostream& stream) const;
85 
86  private:
88  int m_tdcTwin{0};
89 
91  int m_adcTwin{0};
92  };
93 
95  // Inline methods:
97 
98 
99  inline int MdtTwinPrepData::tdcTwin() const { return m_tdcTwin; }
100  inline int MdtTwinPrepData::adcTwin() const { return m_adcTwin; }
101 
102  // return globalPosition:
104  if (!m_globalPosition){
106  .Trk::Surface::localToGlobal(localPosition())};
107  m_globalPosition.set(std::make_unique<Amg::Vector3D>(std::move(gPos)));
108  }
109  return *m_globalPosition;
110  }
111 }
112 
113 #endif // MUONPREPDATA_MDTTWINPREPDATA_H
114 
115 
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:27
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Muon::MdtTwinPrepData::MdtTwinPrepData
MdtTwinPrepData(const MdtTwinPrepData &)=default
Muon::MdtTwinPrepData::MdtTwinPrepData
MdtTwinPrepData()=default
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:103
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:45
Muon::MdtPrepData::adc
int adc() const
Returns the ADC (typically range is 0 to 250)
Definition: MdtPrepData.h:146
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
Muon::MdtTwinPrepData::tdcTwin
int tdcTwin() const
Returns the TDC of twin tube(typically range is 0 to 2500).
Definition: MdtTwinPrepData.h:99
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Muon::MdtTwinPrepData::~MdtTwinPrepData
virtual ~MdtTwinPrepData()=default
Destructor.
Muon::MdtPrepData::tdc
int tdc() const
Returns the TDC (typically range is 0 to 2500).
Definition: MdtPrepData.h:145
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:33
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:88
Muon::MdtPrepData::m_globalPosition
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
Global position of measurement.
Definition: MdtPrepData.h:124
MuonGM::MdtReadoutElement::surface
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:891
Muon::MdtTwinPrepData::adcTwin
int adcTwin() const
Returns the ADC of twin tube(typically range is 0 to 250)
Definition: MdtTwinPrepData.h:100
LVL1::gFEXPos
Definition: gFexPos.h:11
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:91
Muon::MdtPrepData::status
MdtDriftCircleStatus status() const
Returns the status of the measurement.
Definition: MdtPrepData.h:147
Muon::MdtTwinPrepData::dump
virtual MsgStream & dump(MsgStream &stream) const
Dumps information about the PRD.
Definition: MdtTwinPrepData.cxx:27
Muon::MdtPrepData::detectorElement
virtual const MuonGM::MdtReadoutElement * detectorElement() const override
Returns the detector element corresponding to this PRD.
Definition: MdtPrepData.h:141
Muon::MdtTwinPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtTwinPrepData.h:33
Muon::MdtTwinPrepData::operator=
MdtTwinPrepData & operator=(const MdtTwinPrepData &)=default
Identifier
Definition: IdentifierFieldParser.cxx:14