ATLAS Offline Software
CalibratedSpacePoint.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
6 namespace {
7  static const Amg::Vector3D zero{Amg::Vector3D::Zero()};
8 }
9 namespace MuonR4{
10  std::string CalibratedSpacePoint::toString(const State s) {
11  switch (s){
12  case State::Valid:
13  return "valid";
14  case State::Outlier:
15  return "outlier";
16  case State::FailedCalib:
17  return "failed calibration";
18  case State::Duplicate:
19  return "duplicate";
20 
21  }
22  return "unknown";
23  }
25  Amg::Vector3D&& posInChamber,
26  State st):
27  m_posInChamber{std::move(posInChamber)},
28  m_parent{uncalibSpacePoint},
29  m_state{st} {
30  }
34  static const Amg::Vector3D s_Dir{Amg::Vector3D::UnitX()};
35  return m_parent? m_parent->sensorDirection() : (m_beamLine ? (*m_beamLine) : s_Dir);
36  }
38  static const Amg::Vector3D s_Dir{Amg::Vector3D::UnitY()};
42  return m_parent? m_parent->toNextSensor() : (m_beamLine ? zero : s_Dir);
43  }
45  static const Amg::Vector3D s_Dir{Amg::Vector3D::UnitZ()};
46  return m_parent ? m_parent->planeNormal() : (m_beamLine ? zero : s_Dir);
47  }
50  return m_cov;
51  }
54  bool CalibratedSpacePoint::measuresLoc1() const { return measuresEta(); }
56  using enum xAOD::UncalibMeasType;
57  const auto t = type();
58  return t == MdtDriftCircleType || (t == Other && m_beamLine != nullptr);
59  }
61  return m_driftRadius;
62  }
66  }
67  double CalibratedSpacePoint::time() const { return m_time; }
69  m_time = t;
70  m_measuresTime = true;
71  }
76  unsigned CalibratedSpacePoint::dimension() const { return measuresEta() + measuresPhi(); }
79  m_beamLine = std::make_unique<Amg::Vector3D>(std::move(beamDir));
80  }
81 
82  void CalibratedSpacePoint::print(std::ostream& ostr) const {
84  ostr<<"Calibrated SP "<<spacePoint()->msSector()->idHelperSvc()->toString(spacePoint()->identify());
85  } else {
86  ostr<<"Auxiliary measurement";
87  }
88  ostr<<" ("<<toString(fitState())<<")";
89  ostr<<" @ "<<Amg::toString(localPosition());
91  ostr<<", wire: "<<Amg::toString(sensorDirection())<<", drift R: "<<driftRadius();
92  } else {
93  ostr<<", (dir/toNext/planeNormal): "<<Amg::toString(sensorDirection())
95  }
96  auto boolToStr = [](const bool B) -> std::string {
97  return B ? "yay" : "nay";
98  };
99  if (hasTime()) {
100  ostr<<", time: "<<time();
101  }
102  ostr<<", measures eta/phi/time: "<<boolToStr(measuresEta())
103  <<"/"<<boolToStr(measuresPhi())<<"/"<<boolToStr(hasTime());
104  ostr<<", covariance (eta/phi/time): ("<<m_cov[Acts::toUnderlying(CovIdx::etaCov)]<<", "
105  <<m_cov[Acts::toUnderlying(CovIdx::phiCov)]<<", "<<m_cov[Acts::toUnderlying(CovIdx::timeCov)]<<")";
106  }
107 }
MuonR4::CalibratedSpacePoint::print
void print(std::ostream &ostr) const
Print function.
Definition: CalibratedSpacePoint.cxx:82
beamspotman.r
def r
Definition: beamspotman.py:672
MuonR4::SpacePoint::msSector
const MuonGMR4::SpectrometerSector * msSector() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:84
xAOD::identify
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/Root/UtilFunctions.cxx:95
MuonR4::CalibratedSpacePoint::toNextSensor
const Amg::Vector3D & toNextSensor() const
Definition: CalibratedSpacePoint.cxx:37
MuonR4::CalibratedSpacePoint::State::FailedCalib
@ FailedCalib
MuonR4::SpacePoint::type
xAOD::UncalibMeasType type() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:88
MuonR4::CalibratedSpacePoint::covariance
const Cov_t & covariance() const
Returns the covariance array.
Definition: CalibratedSpacePoint.cxx:49
MuonR4::SpacePoint::planeNormal
const Amg::Vector3D & planeNormal() const
Returns the vector pointing out of the measurement plane.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:53
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
MuonR4::SpacePoint::CovIdx::timeCov
@ timeCov
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:200
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
MuonR4::SpacePoint::CovIdx::etaCov
@ etaCov
MuonR4::CalibratedSpacePoint::localPosition
const Amg::Vector3D & localPosition() const
Definition: CalibratedSpacePoint.cxx:32
MuonR4::SpacePoint::measuresPhi
bool measuresPhi() const
: Does the space point contain a phi measurement
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:91
MuonR4::CalibratedSpacePoint::m_posInChamber
Amg::Vector3D m_posInChamber
Calibrated position.
Definition: CalibratedSpacePoint.h:101
CalibratedSpacePoint.h
MuonR4::CalibratedSpacePoint::m_cov
Cov_t m_cov
Covariance array.
Definition: CalibratedSpacePoint.h:103
MuonR4::CalibratedSpacePoint::m_measuresTime
bool m_measuresTime
time flag (By default true for Mdt detectors)
Definition: CalibratedSpacePoint.h:116
MuonR4::CalibratedSpacePoint::setBeamDirection
void setBeamDirection(Amg::Vector3D &&beamDir)
Sets the beamline direction.
Definition: CalibratedSpacePoint.cxx:78
MuonR4::CalibratedSpacePoint::measuresPhi
bool measuresPhi() const
Returns whether the calibrated space point measures phi.
Definition: CalibratedSpacePoint.cxx:72
MuonR4::CalibratedSpacePoint::State::Outlier
@ Outlier
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
MuonR4::CalibratedSpacePoint::State
State
State flag to distinguish different space point states.
Definition: CalibratedSpacePoint.h:26
MuonR4::CalibratedSpacePoint::setDriftRadius
void setDriftRadius(const double r)
Update the drift radius of the space point measurement.
Definition: CalibratedSpacePoint.cxx:63
MuonR4::CalibratedSpacePoint::isStraw
bool isStraw() const
Returns whether the measurement is a Mdt.
Definition: CalibratedSpacePoint.cxx:55
MuonR4::CalibratedSpacePoint::hasTime
bool hasTime() const
Returns whether the measurement carries time information.
Definition: CalibratedSpacePoint.cxx:52
python.getProblemFolderFromLogs.st
st
Definition: getProblemFolderFromLogs.py:68
MuonR4::CalibratedSpacePoint::m_driftRadius
double m_driftRadius
Calibrated drift radius.
Definition: CalibratedSpacePoint.h:105
MuonR4::CalibratedSpacePoint::State::Duplicate
@ Duplicate
xAOD::Other
@ Other
MuonR4::CalibratedSpacePoint::type
xAOD::UncalibMeasType type() const
Returns the space point type.
Definition: CalibratedSpacePoint.cxx:64
MuonR4::CalibratedSpacePoint::m_beamLine
std::shared_ptr< Amg::Vector3D > m_beamLine
Direction of the beamline (Beamspot constraint)
Definition: CalibratedSpacePoint.h:112
MuonR4::SpacePoint
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:24
MuonR4::CalibratedSpacePoint::setTimeMeasurement
void setTimeMeasurement(double t)
Set the time measurement.
Definition: CalibratedSpacePoint.cxx:68
MuonGMR4::SpectrometerSector::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the IdHelpeSvc.
Definition: SpectrometerSector.cxx:61
MuonR4::SpacePoint::CovIdx::phiCov
@ phiCov
MuonR4::CalibratedSpacePoint::fitState
State fitState() const
Returns the state of the calibrated space point.
Definition: CalibratedSpacePoint.cxx:74
MuonR4::SpacePoint::toNextSensor
const Amg::Vector3D & toNextSensor() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:52
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4::CalibratedSpacePoint::m_state
State m_state
Calibration state.
Definition: CalibratedSpacePoint.h:114
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::CalibratedSpacePoint::dimension
unsigned dimension() const
Returns the local dimension of the measurement.
Definition: CalibratedSpacePoint.cxx:76
MuonR4::CalibratedSpacePoint::toString
static std::string toString(const State s)
Converts the state enum into a string.
Definition: CalibratedSpacePoint.cxx:10
Muon::IMuonIdHelperSvc::toString
virtual std::string toString(const Identifier &id) const =0
print all fields to string
MuonR4::CalibratedSpacePoint::setCovariance
void setCovariance(const Cov_t &cov)
Set the covariance matrix of the calibrated space point.
Definition: CalibratedSpacePoint.cxx:77
MuonR4::SpacePoint::measuresEta
bool measuresEta() const
: Does the space point contain an eta measurement
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:94
MuonR4::CalibratedSpacePoint::Cov_t
SpacePoint::Cov_t Cov_t
Definition: CalibratedSpacePoint.h:16
MuonR4::CalibratedSpacePoint::m_time
double m_time
Calibrated time (Acts units)
Definition: CalibratedSpacePoint.h:107
MuonR4::CalibratedSpacePoint::planeNormal
const Amg::Vector3D & planeNormal() const
Returns the vector pointing out of the measurement plane.
Definition: CalibratedSpacePoint.cxx:44
xAOD::UncalibMeasType
UncalibMeasType
Define the type of the uncalibrated measurement.
Definition: MeasurementDefs.h:25
GeoPrimitivesToStringConverter.h
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
MuonR4::CalibratedSpacePoint::measuresLoc0
bool measuresLoc0() const
Returns whether the measurement constains the non-bending direction.
Definition: CalibratedSpacePoint.cxx:53
MuonR4::CalibratedSpacePoint::setFitState
void setFitState(State st)
Set the state of the calibrated space point.
Definition: CalibratedSpacePoint.cxx:75
MuonR4::CalibratedSpacePoint::sensorDirection
const Amg::Vector3D & sensorDirection() const
Definition: CalibratedSpacePoint.cxx:33
MuonR4::CalibratedSpacePoint::spacePoint
const SpacePoint * spacePoint() const
The pointer to the space point out of which this space point has been built.
Definition: CalibratedSpacePoint.cxx:31
MuonR4::CalibratedSpacePoint::CalibratedSpacePoint
CalibratedSpacePoint(const SpacePoint *uncalibSpacePoint, Amg::Vector3D &&posInChamber, State st=State::Valid)
Standard constructor.
Definition: CalibratedSpacePoint.cxx:24
MuonR4::CalibratedSpacePoint::driftRadius
double driftRadius() const
: Returns the size of the drift radius
Definition: CalibratedSpacePoint.cxx:60
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
MuonR4::CalibratedSpacePoint::time
double time() const
Returns the measurement's recorded time.
Definition: CalibratedSpacePoint.cxx:67
MuonR4::CalibratedSpacePoint::measuresLoc1
bool measuresLoc1() const
Returns whether the measurement constains the bending direction.
Definition: CalibratedSpacePoint.cxx:54
zero
void zero(TH2 *h)
zero the contents of a 2d histogram
Definition: comparitor.cxx:438
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MuonR4::SpacePoint::sensorDirection
const Amg::Vector3D & sensorDirection() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:51
MuonR4::CalibratedSpacePoint::m_parent
const SpacePoint * m_parent
Uncalibrated space point from which this space point is constructed.
Definition: CalibratedSpacePoint.h:110
MuonR4::CalibratedSpacePoint::measuresEta
bool measuresEta() const
Returns whether the calibrated space point measures eta.
Definition: CalibratedSpacePoint.cxx:73