ATLAS Offline Software
MdtCalibInput.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MDTCALIBINTEFACES_MDTCALIBINPUT_H
5 #define MDTCALIBINTEFACES_MDTCALIBINPUT_H
6 
9 
19 
20 
21 #include <GaudiKernel/PhysicalConstants.h>
23 
24 #include <iostream>
25 
26 
28 public:
35  const MuonGM::MuonDetectorManager& detMgr);
36 
38  const MuonGMR4::MuonDetectorManager& detMgr,
39  const ActsGeometryContext& gctx);
40 
42  MdtCalibInput(const Muon::MdtPrepData& prd);
44  MdtCalibInput(const Identifier& id,
45  const int adc,
46  const int tdc,
47  const Amg::Vector3D& globalPos);
48 
50  const Identifier& identify() const;
52  int tdc() const;
54  int adc() const;
56  bool isMasked() const;
61 
63  const Amg::Vector3D& globalPos() const;
65  const Amg::Vector3D& closestApproach() const;
67  void setClosestApproach(const Amg::Vector3D& approach);
68 
70  const Amg::Vector3D& trackDirection() const;
72  void setTrackDirection(const Amg::Vector3D& trackDir);
73 
74 
76  double timeOfFlight() const;
78  void setTimeOfFlight(const double toF);
79 
81  double triggerTime() const;
83  void setTriggerTime(const double trigTime);
85  double distanceToTrack() const;
86  enum BFieldComp{
87  alongWire = 0,
89  };
92  Amg::Vector2D projectMagneticField(const Amg::Vector3D& fieldInGlob) const;
94  double signalPropagationDistance() const;
96  const Trk::SaggedLineSurface& idealSurface() const;
97 
102  std::unique_ptr<Trk::StraightLineSurface> releaseSurface();
103 
105  const Amg::Vector3D& surfaceCenter() const;
107  const Amg::Vector3D& saggedSurfCenter() const;
109  double tubeLength() const;
111  double readOutSide() const;
112 private:
113 
115  bool m_isMasked{false};
116  int m_adc{0};
117  int m_tdc{0};
120 
121  const ActsGeometryContext* m_gctx{nullptr};
124 
125  Amg::Transform3D m_globToLoc{Amg::Transform3D::Identity()};
129 
131  static constexpr double s_inverseSpeed{1. / Gaudi::Units::c_light};
132  double m_ToF{m_globPos.mag() * s_inverseSpeed};
134  double m_trigTime{0.};
136  double m_distToTrack{0.};
137 
139 
140 };
141 
142 std::ostream& operator<<(std::ostream& ostr, const MdtCalibInput& input);
143 
144 
145 #endif
MdtCalibInput::tdc
int tdc() const
Returns the tdc counts of the hit.
Definition: MdtCalibInput.cxx:63
MdtCalibInput::distanceToTrack
double distanceToTrack() const
Returns the distance to track (signed)
Definition: MdtCalibInput.cxx:141
MdtCalibInput::m_trackDir
Amg::Vector3D m_trackDir
Definition: MdtCalibInput.h:128
MdtCalibInput::alongWire
@ alongWire
Definition: MdtCalibInput.h:87
MdtCalibInput::surfaceCenter
const Amg::Vector3D & surfaceCenter() const
Returns the center of the associated surface.
Definition: MdtCalibInput.cxx:85
MdtReadoutElement.h
MdtCalibInput::decriptor
const MuonGMR4::MdtReadoutElement * decriptor() const
Returns the R4 readout element.
Definition: MdtCalibInput.cxx:66
MdtCalibInput::s_inverseSpeed
static constexpr double s_inverseSpeed
Time of flight.
Definition: MdtCalibInput.h:131
MdtCalibInput::m_globPos
Amg::Vector3D m_globPos
Definition: MdtCalibInput.h:126
StraightLineSurface.h
MdtCalibInput::BFieldComp
BFieldComp
Definition: MdtCalibInput.h:86
MdtCalibInput::globalPos
const Amg::Vector3D & globalPos() const
Returns the global position of the hit.
Definition: MdtCalibInput.cxx:68
MdtCalibInput::alongTrack
@ alongTrack
Definition: MdtCalibInput.h:88
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:61
MdtCalibInput
Definition: MdtCalibInput.h:27
MdtCalibInput::MdtCalibInput
MdtCalibInput(const MdtDigit &digit, const MuonGM::MuonDetectorManager &detMgr)
Constructor taking the MdtDigits – Typically used inside digitization or RDO -> PRD conversion Given ...
Definition: MdtCalibInput.cxx:22
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:82
MdtCalibInput::m_isMasked
bool m_isMasked
Definition: MdtCalibInput.h:115
MdtCalibInput::legacyDescriptor
const MuonGM::MdtReadoutElement * legacyDescriptor() const
Returns the legacy readout element.
Definition: MdtCalibInput.cxx:65
CxxUtils::CachedUniquePtrT< Trk::StraightLineSurface >
MdtCalibInput::isMasked
bool isMasked() const
Returns whether the constructing digit has been masked.
Definition: MdtCalibInput.cxx:67
MdtCalibInput::m_tdc
int m_tdc
Definition: MdtCalibInput.h:117
operator<<
std::ostream & operator<<(std::ostream &ostr, const MdtCalibInput &input)
Definition: MdtCalibInput.cxx:8
MdtCalibInput::closestApproach
const Amg::Vector3D & closestApproach() const
Returns the point of closest approach to the wire.
Definition: MdtCalibInput.cxx:69
MdtDigit.h
MdtPrepData.h
MdtCalibInput::m_legRE
const MuonGM::MdtReadoutElement * m_legRE
Pointer to the readout elements of the legacy geometry.
Definition: MdtCalibInput.h:119
MdtCalibInput::m_approach
Amg::Vector3D m_approach
Definition: MdtCalibInput.h:127
MdtCalibInput::releaseSurface
std::unique_ptr< Trk::StraightLineSurface > releaseSurface()
Releases the sagged line surface (Can be a nullptr)
Definition: MdtCalibInput.cxx:74
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
MdtCalibInput::identify
const Identifier & identify() const
Returns the Identifier of the hit.
Definition: MdtCalibInput.cxx:62
MdtCalibInput::setTrackDirection
void setTrackDirection(const Amg::Vector3D &trackDir)
Sets the track direction if it's given from an external seed.
Definition: MdtCalibInput.cxx:78
MdtCalibInput::m_ToF
double m_ToF
Definition: MdtCalibInput.h:132
MdtCalibInput::m_hash
IdentifierHash m_hash
Definition: MdtCalibInput.h:123
GeoPrimitives.h
MdtCalibInput::adc
int adc() const
Returns the amount of accumulated charge.
Definition: MdtCalibInput.cxx:64
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:50
MdtCalibInput::m_gctx
const ActsGeometryContext * m_gctx
Definition: MdtCalibInput.h:121
MdtCalibInput::tubeLength
double tubeLength() const
Returns the tube length.
Definition: MdtCalibInput.cxx:143
MdtCalibInput::m_trigTime
double m_trigTime
Trigger time.
Definition: MdtCalibInput.h:134
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
CachedUniquePtr.h
Cached unique_ptr with atomic update.
MuonDetectorManager.h
MdtCalibInput::m_distToTrack
double m_distToTrack
Distance to track (signed)
Definition: MdtCalibInput.h:136
MdtCalibInput::setClosestApproach
void setClosestApproach(const Amg::Vector3D &approach)
Sets the closest approach.
Definition: MdtCalibInput.cxx:70
MdtCalibInput::signalPropagationDistance
double signalPropagationDistance() const
Calculates the distance that the signal has to travel along the wire.
Definition: MdtCalibInput.cxx:131
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
MdtCalibInput::m_saggedSurf
CxxUtils::CachedUniquePtrT< Trk::StraightLineSurface > m_saggedSurf
Definition: MdtCalibInput.h:138
MdtCalibInput::setTimeOfFlight
void setTimeOfFlight(const double toF)
Sets the time of flight (Usually globPos.mag() * inverseSpeed of light)
Definition: MdtCalibInput.cxx:80
MuonGMR4::MdtReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:15
MdtCalibInput::m_globToLoc
Amg::Transform3D m_globToLoc
Definition: MdtCalibInput.h:125
MdtCalibInput::setTriggerTime
void setTriggerTime(const double trigTime)
Sets the trigger offset time.
Definition: MdtCalibInput.cxx:83
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:37
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonDetectorManager.h
MdtCalibInput::m_RE
const MuonGMR4::MdtReadoutElement * m_RE
Definition: MdtCalibInput.h:122
MdtCalibInput::m_adc
int m_adc
Definition: MdtCalibInput.h:116
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
MdtReadoutElement.h
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:90
Trk::SaggedLineSurface
Definition: SaggedLineSurface.h:35
MdtCalibInput::saggedSurface
const Trk::StraightLineSurface & saggedSurface() const
Returns the surface modeling the wire sagging at the point of the closest approach (Throw exceptions ...
Definition: MdtCalibInput.cxx:110
MdtCalibInput::m_id
Identifier m_id
Definition: MdtCalibInput.h:114
IdentifierHash
Definition: IdentifierHash.h:38
MdtCalibInput::trackDirection
const Amg::Vector3D & trackDirection() const
Returns the track direction (Can be zero)
Definition: MdtCalibInput.cxx:77
MdtCalibInput::timeOfFlight
double timeOfFlight() const
Returns the time of flight.
Definition: MdtCalibInput.cxx:79
MdtCalibInput::saggedSurfCenter
const Amg::Vector3D & saggedSurfCenter() const
Returns the center of the sagged line surface.
Definition: MdtCalibInput.cxx:88
MdtCalibInput::readOutSide
double readOutSide() const
Returns the sign of the readout position in local coordinates.
Definition: MdtCalibInput.cxx:148
Trk::StraightLineSurface
Definition: StraightLineSurface.h:51
MdtCalibInput::idealSurface
const Trk::SaggedLineSurface & idealSurface() const
Returns the assocaited ideal surface (Throw exception if no legacy RE is available)
Definition: MdtCalibInput.cxx:102
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32