Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  private:
145  const Amg::Transform3D& localToGlobal() const;
147  Amg::Vector3D center() const;
154 
156  const ActsGeometryContext* m_gctx{nullptr};
158  using ReadoutEle_t = std::variant<const MuonGM::MdtReadoutElement*, const MuonGMR4::MdtReadoutElement*>;
168  bool m_trackHasPhi{false};
170  static constexpr double s_inverseSpeed{1. / Gaudi::Units::c_light};
171  double m_ToF{center().mag() * s_inverseSpeed};
173  double m_trigTime{0.};
175  double m_distToTrack{0.};
176 
177 };
178 
179 std::ostream& operator<<(std::ostream& ostr, const MdtCalibInput& input);
180 
181 
182 #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:166
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:168
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:170
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:164
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:171
MdtCalibInput::m_hash
IdentifierHash m_hash
Measurement hash of the Identifier (needed for Phase II)
Definition: MdtCalibInput.h:162
GeoPrimitives.h
MdtCalibInput::localToGlobal
const Amg::Transform3D & localToGlobal() const
set whether the
Definition: MdtCalibInput.cxx:181
MdtCalibInput::center
Amg::Vector3D center() const
Translational part of the local -> global transform.
Definition: MdtCalibInput.cxx:192
MdtDriftCircleFwd.h
MdtCalibInput::m_tdc
int16_t m_tdc
Tdc counts of the hit.
Definition: MdtCalibInput.h:153
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:156
MdtCalibInput::tubeLength
double tubeLength() const
Returns the tube length.
Definition: MdtCalibInput.cxx:158
MdtCalibInput::m_trigTime
double m_trigTime
Trigger time.
Definition: MdtCalibInput.h:173
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:175
MdtCalibInput::setClosestApproach
void setClosestApproach(const Amg::Vector3D &approach)
Sets the closest approach.
Definition: MdtCalibInput.cxx:106
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:158
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:22
IdentifierHash.h
MdtCalibInput::m_RE
ReadoutEle_t m_RE
Pointer to the associated readout element.
Definition: MdtCalibInput.h:160
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:63
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:151
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:50
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:149
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:169
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