ATLAS Offline Software
MdtCalibInput.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MDTCALIBINTEFACES_MDTCALIBINPUT_H
5 #define MDTCALIBINTEFACES_MDTCALIBINPUT_H
6 
8 
9 #include <GaudiKernel/PhysicalConstants.h>
11 #include <Identifier/Identifier.h>
13 #include <variant>
15 namespace MuonGM{
16  class MuonDetectorManager;
17  class MdtReadoutElement;
18 }
19 namespace MuonGMR4{
20  class MuonDetectorManager;
21  class MdtReadoutElement;
22 }
23 namespace Muon{
24  class MdtPrepData;
25 }
26 
27 namespace Trk {
28  class StraightLineSurface;
29 }
30 
31 class MdtDigit;
33 
35  public:
43  MdtCalibInput(const Identifier& id,
44  const int16_t adc,
45  const int16_t tdc,
46  const MuonGMR4::MdtReadoutElement* reEle,
47  const ActsGeometryContext& gctx);
48 
55  MdtCalibInput(const Identifier& id,
56  const int16_t adc,
57  const int16_t tdc,
58  const MuonGM::MdtReadoutElement* reEle);
59 
65  const MuonGM::MuonDetectorManager& detMgr);
66 
72  const MuonGMR4::MuonDetectorManager& detMgr,
73  const ActsGeometryContext& gctx);
75  MdtCalibInput(const Muon::MdtPrepData& prd);
80  const ActsGeometryContext& gctx);
81 
82 
85 
88  const Identifier& identify() const;
90  int16_t tdc() const;
92  int16_t adc() const;
97 
99  const Amg::Vector3D& closestApproach() const;
101  void setClosestApproach(const Amg::Vector3D& approach);
102 
104  const Amg::Vector3D& trackDirection() const;
108  void setTrackDirection(const Amg::Vector3D& trackDir,
109  bool hasPhi);
111  bool trackDirHasPhi() const;
112 
114  double timeOfFlight() const;
116  void setTimeOfFlight(const double toF);
117 
119  double triggerTime() const;
121  void setTriggerTime(const double trigTime);
123  double distanceToTrack() const;
124  enum class BFieldComp{
125  alongWire = 0,
126  alongTrack = 1,
127  };
130  Amg::Vector2D projectMagneticField(const Amg::Vector3D& fieldInGlob) const;
132  double signalPropagationDistance() const;
135 
137  const Amg::Vector3D& surfaceCenter() const;
139  double tubeLength() const;
141  double readOutSide() const;
143  double innerTubeR() const;
144  private:
146  const Amg::Transform3D& localToGlobal() const;
148  Amg::Vector3D center() const;
155 
157  const ActsGeometryContext* m_gctx{nullptr};
159  using ReadoutEle_t = std::variant<const MuonGM::MdtReadoutElement*, const MuonGMR4::MdtReadoutElement*>;
169  bool m_trackHasPhi{false};
171  static constexpr double s_inverseSpeed{1. / Gaudi::Units::c_light};
172  double m_ToF{center().mag() * s_inverseSpeed};
174  double m_trigTime{0.};
176  double m_distToTrack{0.};
177 
178 };
179 
180 std::ostream& operator<<(std::ostream& ostr, const MdtCalibInput& input);
181 
182 
183 #endif
MdtCalibInput::distanceToTrack
double distanceToTrack() const
Returns the distance to track (signed)
Definition: MdtCalibInput.cxx:156
MdtCalibInput::MdtCalibInput
MdtCalibInput(MdtCalibInput &&other)=default
MdtCalibInput::m_trackDir
Amg::Vector3D m_trackDir
Global track direction.
Definition: MdtCalibInput.h:167
MdtCalibInput::setTrackDirection
void setTrackDirection(const Amg::Vector3D &trackDir, bool hasPhi)
Sets the direction of the externally determined track.
Definition: MdtCalibInput.cxx:110
MdtCalibInput::surfaceCenter
const Amg::Vector3D & surfaceCenter() const
Returns the center of the associated surface.
Definition: MdtCalibInput.cxx:121
MdtCalibInput::decriptor
const MuonGMR4::MdtReadoutElement * decriptor() const
Returns the R4 readout element.
Definition: MdtCalibInput.cxx:96
MdtCalibInput::m_trackHasPhi
bool m_trackHasPhi
Does the track direction contain a phi constraint.
Definition: MdtCalibInput.h:169
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
MdtCalibInput::s_inverseSpeed
static constexpr double s_inverseSpeed
Time of flight.
Definition: MdtCalibInput.h:171
MdtCalibInput::BFieldComp::alongWire
@ alongWire
MdtCalibInput::BFieldComp
BFieldComp
Definition: MdtCalibInput.h:124
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:62
MdtCalibInput
Definition: MdtCalibInput.h:34
MdtCalibInput::trackDirHasPhi
bool trackDirHasPhi() const
Returns whether the track has a phi constaint or not.
Definition: MdtCalibInput.cxx:114
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
MdtDigit
Definition: MdtDigit.h:19
MdtCalibInput::triggerTime
double triggerTime() const
Returns the trigger offset time.
Definition: MdtCalibInput.cxx:118
MdtCalibInput::legacySurface
const Trk::StraightLineSurface & legacySurface() const
Returns the assocaited ideal surface (Throw exception if no legacy RE is available)
Definition: MdtCalibInput.cxx:138
MdtCalibInput::legacyDescriptor
const MuonGM::MdtReadoutElement * legacyDescriptor() const
Returns the legacy readout element.
Definition: MdtCalibInput.cxx:87
MdtCalibInput::~MdtCalibInput
~MdtCalibInput()
operator<<
std::ostream & operator<<(std::ostream &ostr, const MdtCalibInput &input)
Definition: MdtCalibInput.cxx:21
MdtCalibInput::closestApproach
const Amg::Vector3D & closestApproach() const
Returns the point of closest approach to the wire.
Definition: MdtCalibInput.cxx:105
MdtCalibInput::m_approach
Amg::Vector3D m_approach
Point of closest approach of the track.
Definition: MdtCalibInput.h:165
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
xAOD::int16_t
setScaleOne setStatusOne setSaturated int16_t
Definition: gFexGlobalRoI_v1.cxx:55
MdtCalibInput::operator=
MdtCalibInput & operator=(MdtCalibInput &&other)=default
MdtCalibInput::identify
const Identifier & identify() const
Returns the Identifier of the hit.
Definition: MdtCalibInput.cxx:84
MdtCalibInput::m_ToF
double m_ToF
Definition: MdtCalibInput.h:172
MdtCalibInput::m_hash
IdentifierHash m_hash
Measurement hash of the Identifier (needed for Phase II)
Definition: MdtCalibInput.h:163
GeoPrimitives.h
MdtCalibInput::localToGlobal
const Amg::Transform3D & localToGlobal() const
Local to global transformation of the tube.
Definition: MdtCalibInput.cxx:192
MdtCalibInput::center
Amg::Vector3D center() const
Translational part of the local -> global transform.
Definition: MdtCalibInput.cxx:203
MdtDriftCircleFwd.h
MdtCalibInput::m_tdc
int16_t m_tdc
Tdc counts of the hit.
Definition: MdtCalibInput.h:154
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:19
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
MdtCalibInput::m_gctx
const ActsGeometryContext * m_gctx
Geometry context, needed to fetch the alignment.
Definition: MdtCalibInput.h:157
MdtCalibInput::tubeLength
double tubeLength() const
Returns the tube length.
Definition: MdtCalibInput.cxx:158
MdtCalibInput::m_trigTime
double m_trigTime
Trigger time.
Definition: MdtCalibInput.h:174
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
MdtCalibInput::m_distToTrack
double m_distToTrack
Distance to track (signed)
Definition: MdtCalibInput.h:176
MdtCalibInput::setClosestApproach
void setClosestApproach(const Amg::Vector3D &approach)
Sets the closest approach.
Definition: MdtCalibInput.cxx:106
MdtCalibInput::innerTubeR
double innerTubeR() const
Returns the inner tube radius.
Definition: MdtCalibInput.cxx:169
MdtCalibInput::signalPropagationDistance
double signalPropagationDistance() const
Calculates the distance that the signal has to travel along the wire.
Definition: MdtCalibInput.cxx:143
MdtCalibInput::ReadoutEle_t
std::variant< const MuonGM::MdtReadoutElement *, const MuonGMR4::MdtReadoutElement * > ReadoutEle_t
Variant type to store the legacy & Phase-II style readout geometry in a single variable.
Definition: MdtCalibInput.h:159
MdtCalibInput::BFieldComp::alongTrack
@ alongTrack
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
MdtCalibInput::setTimeOfFlight
void setTimeOfFlight(const double toF)
Sets the time of flight (Usually globPos.mag() * inverseSpeed of light)
Definition: MdtCalibInput.cxx:116
MuonGMR4::MdtReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:18
IdentifierHash.h
MdtCalibInput::m_RE
ReadoutEle_t m_RE
Pointer to the associated readout element.
Definition: MdtCalibInput.h:161
MdtCalibInput::setTriggerTime
void setTriggerTime(const double trigTime)
Sets the trigger offset time.
Definition: MdtCalibInput.cxx:119
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:73
Muon::MdtPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtPrepData.h:33
MdtCalibInput::adc
int16_t adc() const
Returns the amount of accumulated charge.
Definition: MdtCalibInput.cxx:86
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MdtCalibInput::m_adc
int16_t m_adc
Adc counts of the hit.
Definition: MdtCalibInput.h:152
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:51
MdtCalibInput::projectMagneticField
Amg::Vector2D projectMagneticField(const Amg::Vector3D &fieldInGlob) const
Splits the B-field into the components that point along the transverse track direction & along the tu...
Definition: MdtCalibInput.cxx:125
MdtCalibInput::m_id
Identifier m_id
Tube identifier.
Definition: MdtCalibInput.h:150
xAOD::MdtDriftCircle_v1
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
Definition: MdtDriftCircle_v1.h:21
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
MdtCalibInput::trackDirection
const Amg::Vector3D & trackDirection() const
Returns the track direction (Can be zero)
Definition: MdtCalibInput.cxx:109
MdtCalibInput::tdc
int16_t tdc() const
Returns the tdc counts of the hit.
Definition: MdtCalibInput.cxx:85
MdtCalibInput::timeOfFlight
double timeOfFlight() const
Returns the time of flight.
Definition: MdtCalibInput.cxx:115
MdtCalibInput::readOutSide
double readOutSide() const
Returns the sign of the readout position in local coordinates.
Definition: MdtCalibInput.cxx:180
Trk::StraightLineSurface
Definition: StraightLineSurface.h:51
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MdtCalibInput::MdtCalibInput
MdtCalibInput(const Identifier &id, const int16_t adc, const int16_t tdc, const MuonGMR4::MdtReadoutElement *reEle, const ActsGeometryContext &gctx)
Minimal constructor in the PhaseII geomerty setup.
Definition: MdtCalibInput.cxx:32
Identifier
Definition: IdentifierFieldParser.cxx:14