ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MuonR4::SpacePoint Class Reference

The muon space point is the combination of two uncalibrated measurements one of them measures the eta and the other the phi coordinate. More...

#include <SpacePoint.h>

Collaboration diagram for MuonR4::SpacePoint:

Public Member Functions

 SpacePoint (const xAOD::UncalibratedMeasurement *primMeas, const xAOD::UncalibratedMeasurement *secondMeas=nullptr)
 
void setCovariance (AmgSymMatrix(2)&&cov)
 
void setDirection (Amg::Vector3D &&dir)
 
void setNormal (Amg::Vector3D &&normal)
 
void setPosition (Amg::Vector3D &&pos)
 
const xAOD::UncalibratedMeasurementprimaryMeasurement () const
 
const xAOD::UncalibratedMeasurementsecondaryMeasurement () const
 
const MuonGMR4::SpectrometerSectormsSector () const
 
const MuonGMR4::Chamberchamber () const
 : Pointer to the associated chamber More...
 
const Amg::Vector3DpositionInChamber () const
 
const Amg::Vector3DdirectionInChamber () const
 
const Amg::Vector3DnormalInChamber () const
 
Amg::Vector3D planeNormal () const
 Returns the vector pointing out of the measurement plane. More...
 
xAOD::UncalibMeasType type () const
 
bool measuresPhi () const
 : Does the space point contain a phi measurement More...
 
bool measuresEta () const
 : Does the space point contain an eta measurement More...
 
const Identifieridentify () const
 : Identifier of the primary measurement More...
 
double driftRadius () const
 : Returns the size of the drift radius More...
 
Amg::Vector2D uncertainty () const
 : Returns the uncertainties on the space point More...
 
const AmgSymMatrix (2) &covariance() const
 
bool operator== (const SpacePoint &other) const
 : Equality check by checking the prd pointers More...
 
void setInstanceCounts (std::shared_ptr< unsigned > etaCounts, std::shared_ptr< unsigned > phiCounts)
 Set the number of space points built with the same eta / phi prd. More...
 
unsigned int nEtaInstanceCounts () const
 How many space points have been built in total with the same eta prd. More...
 
unsigned int nPhiInstanceCounts () const
 How many space points have been built in total with the same phi prd
More...
 
unsigned int dimension () const
 Is the space point a 1D or combined 2D measurement. More...
 

Private Member Functions

 AmgSymMatrix (2) m_measCovariance
 : Measurement covariance If the spacePoint represents an 1D measurement the second coordinate is the length of the channel (e.g halfLength of the wire or of the associated strip) the uncertainty of the other coordinate, otherwise More...
 

Private Attributes

const xAOD::UncalibratedMeasurementm_primaryMeas {nullptr}
 
const xAOD::UncalibratedMeasurementm_secondaryMeas {nullptr}
 
const MuonGMR4::Chamberm_chamber {xAOD::muonReadoutElement(m_primaryMeas)->chamber()}
 
const MuonGMR4::SpectrometerSectorm_msSector {m_chamber->parent()}
 
bool m_measEta {!m_msSector->idHelperSvc()->measuresPhi(identify())}
 Flag indicating that the measurement is an eta measurement. More...
 
Amg::Vector3D m_pos {Amg::Vector3D::Zero()}
 
Amg::Vector3D m_dir {Amg::Vector3D::Zero()}
 
Amg::Vector3D m_normal {Amg::Vector3D::Zero()}
 
std::shared_ptr< const unsigned > m_etaInstances {std::make_shared<unsigned>(1)}
 In how many space points is the eta measurement used. More...
 
std::shared_ptr< const unsigned > m_phiInstances {std::make_shared<unsigned>(1)}
 In how many space points is the phi measurement used. More...
 

Detailed Description

The muon space point is the combination of two uncalibrated measurements one of them measures the eta and the other the phi coordinate.

In cases, without a complementary measurment the spacepoint just represents the single measurement and hence has a uncertainty into the other direction corresponding to the half-length of the measurement channel

Definition at line 19 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

Constructor & Destructor Documentation

◆ SpacePoint()

SpacePoint::SpacePoint ( const xAOD::UncalibratedMeasurement primMeas,
const xAOD::UncalibratedMeasurement secondMeas = nullptr 
)

In case of 2D measurements like sTgc-pads or BI-RPC strips we can directly take the covariance from the measurement itself. To indicate that the space point measures both, eta & phi coordinate set the secondary measurement to be the primary one

Definition at line 34 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

35  :
36  m_primaryMeas{primMeas},
37  m_secondaryMeas{secondMeas} {
38 
42  if (primMeas->numDimensions() == 2) {
44  }
45  }

Member Function Documentation

◆ AmgSymMatrix() [1/2]

const MuonR4::SpacePoint::AmgSymMatrix ( ) const &

◆ AmgSymMatrix() [2/2]

MuonR4::SpacePoint::AmgSymMatrix ( )
inlineprivate

: Measurement covariance If the spacePoint represents an 1D measurement the second coordinate is the length of the channel (e.g halfLength of the wire or of the associated strip) the uncertainty of the other coordinate, otherwise

Definition at line 99 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

99 {AmgSymMatrix(2)::Identity()};

◆ chamber()

const MuonGMR4::Chamber * SpacePoint::chamber ( ) const

: Pointer to the associated chamber

Definition at line 53 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

53  {
54  return m_chamber;
55  }

◆ dimension()

unsigned int SpacePoint::dimension ( ) const

Is the space point a 1D or combined 2D measurement.

Definition at line 100 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

100  {
101  return (secondaryMeasurement() != nullptr) + 1;
102  }

◆ directionInChamber()

const Amg::Vector3D & SpacePoint::directionInChamber ( ) const

Definition at line 62 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

62  {
63  return m_dir;
64  }

◆ driftRadius()

double SpacePoint::driftRadius ( ) const

: Returns the size of the drift radius

Definition at line 83 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

83  {
85  static_cast<const xAOD::MdtDriftCircle*>(m_primaryMeas)->driftRadius() : 0.;
86  }

◆ identify()

const Identifier & SpacePoint::identify ( ) const

: Identifier of the primary measurement

Definition at line 80 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

80  {
82  }

◆ measuresEta()

bool SpacePoint::measuresEta ( ) const

: Does the space point contain an eta measurement

Definition at line 77 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

77  {
78  return secondaryMeasurement() || m_measEta;
79  }

◆ measuresPhi()

bool SpacePoint::measuresPhi ( ) const

: Does the space point contain a phi measurement

Definition at line 74 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

74  {
75  return secondaryMeasurement() || !m_measEta;
76  }

◆ msSector()

const MuonGMR4::SpectrometerSector * SpacePoint::msSector ( ) const

Definition at line 56 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

56  {
57  return m_msSector;
58  }

◆ nEtaInstanceCounts()

unsigned int SpacePoint::nEtaInstanceCounts ( ) const

How many space points have been built in total with the same eta prd.

Definition at line 98 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

98 { return (*m_etaInstances); }

◆ normalInChamber()

const Amg::Vector3D & SpacePoint::normalInChamber ( ) const

Definition at line 65 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

65  {
66  return m_normal;
67  }

◆ nPhiInstanceCounts()

unsigned int SpacePoint::nPhiInstanceCounts ( ) const

How many space points have been built in total with the same phi prd

Definition at line 99 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

99 { return (*m_phiInstances); }

◆ operator==()

bool MuonR4::SpacePoint::operator== ( const SpacePoint other) const
inline

: Equality check by checking the prd pointers

Definition at line 70 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

70  {
71  return primaryMeasurement() == other.primaryMeasurement() &&
72  secondaryMeasurement() == other.secondaryMeasurement();
73  }

◆ planeNormal()

Amg::Vector3D SpacePoint::planeNormal ( ) const

Returns the vector pointing out of the measurement plane.

Definition at line 68 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

68  {
69  return directionInChamber().cross(normalInChamber()).unit();
70  }

◆ positionInChamber()

const Amg::Vector3D & SpacePoint::positionInChamber ( ) const

Definition at line 59 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

59  {
60  return m_pos;
61  }

◆ primaryMeasurement()

const xAOD::UncalibratedMeasurement * SpacePoint::primaryMeasurement ( ) const

Definition at line 47 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

47  {
48  return m_primaryMeas;
49  }

◆ secondaryMeasurement()

const xAOD::UncalibratedMeasurement * SpacePoint::secondaryMeasurement ( ) const

Definition at line 50 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

50  {
51  return m_secondaryMeas;
52  }

◆ setCovariance()

void MuonR4::SpacePoint::setCovariance ( AmgSymMatrix(2)&&  cov)
inline

Definition at line 32 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

32 { m_measCovariance = std::move(cov); };

◆ setDirection()

void MuonR4::SpacePoint::setDirection ( Amg::Vector3D &&  dir)
inline

◆ setInstanceCounts()

void MuonR4::SpacePoint::setInstanceCounts ( std::shared_ptr< unsigned >  etaCounts,
std::shared_ptr< unsigned >  phiCounts 
)

Set the number of space points built with the same eta / phi prd.

◆ setNormal()

void MuonR4::SpacePoint::setNormal ( Amg::Vector3D &&  normal)
inline

Definition at line 36 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

36 { m_normal = std::move(normal); };

◆ setPosition()

void MuonR4::SpacePoint::setPosition ( Amg::Vector3D &&  pos)
inline

◆ type()

xAOD::UncalibMeasType SpacePoint::type ( ) const

Definition at line 71 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

71  {
72  return primaryMeasurement()->type();
73  }

◆ uncertainty()

Amg::Vector2D SpacePoint::uncertainty ( ) const

: Returns the uncertainties on the space point

Definition at line 87 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx.

87  {
88  return Amg::Vector2D{ Amg::error(m_measCovariance,0),Amg::error(m_measCovariance,1) };
89  }

Member Data Documentation

◆ m_chamber

const MuonGMR4::Chamber* MuonR4::SpacePoint::m_chamber {xAOD::muonReadoutElement(m_primaryMeas)->chamber()}
private

◆ m_dir

Amg::Vector3D MuonR4::SpacePoint::m_dir {Amg::Vector3D::Zero()}
private

◆ m_etaInstances

std::shared_ptr<const unsigned> MuonR4::SpacePoint::m_etaInstances {std::make_shared<unsigned>(1)}
private

In how many space points is the eta measurement used.

Definition at line 101 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

◆ m_measEta

bool MuonR4::SpacePoint::m_measEta {!m_msSector->idHelperSvc()->measuresPhi(identify())}
private

Flag indicating that the measurement is an eta measurement.

Definition at line 90 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

◆ m_msSector

const MuonGMR4::SpectrometerSector* MuonR4::SpacePoint::m_msSector {m_chamber->parent()}
private

◆ m_normal

Amg::Vector3D MuonR4::SpacePoint::m_normal {Amg::Vector3D::Zero()}
private

◆ m_phiInstances

std::shared_ptr<const unsigned> MuonR4::SpacePoint::m_phiInstances {std::make_shared<unsigned>(1)}
private

In how many space points is the phi measurement used.

Definition at line 103 of file MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h.

◆ m_pos

Amg::Vector3D MuonR4::SpacePoint::m_pos {Amg::Vector3D::Zero()}
private

◆ m_primaryMeas

const xAOD::UncalibratedMeasurement* MuonR4::SpacePoint::m_primaryMeas {nullptr}
private

◆ m_secondaryMeas

const xAOD::UncalibratedMeasurement* MuonR4::SpacePoint::m_secondaryMeas {nullptr}
private

The documentation for this class was generated from the following files:
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:82
MuonR4::SpacePoint::normalInChamber
const Amg::Vector3D & normalInChamber() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:65
MuonR4::SpacePoint::m_phiInstances
std::shared_ptr< const unsigned > m_phiInstances
In how many space points is the phi measurement used.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:103
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:200
MuonR4::SpacePoint::secondaryMeasurement
const xAOD::UncalibratedMeasurement * secondaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:50
MuonR4::SpacePoint::m_msSector
const MuonGMR4::SpectrometerSector * m_msSector
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:88
MuonR4::SpacePoint::m_chamber
const MuonGMR4::Chamber * m_chamber
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:87
MuonR4::SpacePoint::m_etaInstances
std::shared_ptr< const unsigned > m_etaInstances
In how many space points is the eta measurement used.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:101
MuonR4::SpacePoint::primaryMeasurement
const xAOD::UncalibratedMeasurement * primaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:47
MuonR4::SpacePoint::m_normal
Amg::Vector3D m_normal
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:93
MuonR4::SpacePoint::m_secondaryMeas
const xAOD::UncalibratedMeasurement * m_secondaryMeas
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:85
xAOD::UncalibratedMeasurement_v1::type
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
xAOD::UncalibratedMeasurement_v1::numDimensions
virtual unsigned int numDimensions() const =0
Returns the number of dimensions of the measurement.
beamspotman.dir
string dir
Definition: beamspotman.py:621
MuonR4::SpacePoint::directionInChamber
const Amg::Vector3D & directionInChamber() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:62
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
MuonR4::SpacePoint::m_pos
Amg::Vector3D m_pos
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:91
MuonR4::SpacePoint::m_dir
Amg::Vector3D m_dir
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:92
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MuonR4::SpacePoint::m_measEta
bool m_measEta
Flag indicating that the measurement is an eta measurement.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:90
MuonR4::SpacePoint::driftRadius
double driftRadius() const
: Returns the size of the drift radius
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:83
xAOD::MdtDriftCircle_v1
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
Definition: MdtDriftCircle_v1.h:21
MuonR4::SpacePoint::AmgSymMatrix
const AmgSymMatrix(2) &covariance() const
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
MuonR4::SpacePoint::m_primaryMeas
const xAOD::UncalibratedMeasurement * m_primaryMeas
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:84