ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::SCT_SpacePoint Class Referencefinal

An SCT_SpacePoint is created from two SCT_Cluster's from two different wafers. More...

#include <SCT_SpacePoint.h>

Inheritance diagram for InDet::SCT_SpacePoint:
Collaboration diagram for InDet::SCT_SpacePoint:

Public Member Functions

 SCT_SpacePoint ()=default
 Default constructor.
const std::pair< IdentifierHash, IdentifierHash > & elementIdList () const
 return the pair of Ids of the element by reference
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList () const
 return the pair of cluster pointers by reference
const AmgSymMatrix (3) &globCovariance() const
 return the error matrix by reference The Matrix is calculated from the local Covariance Matrix when demanded and the cached
double eta (double z0=0) const
 calculate eta (not cached), needs z0 info
double r () const
 returns the r value of the SpacePoint's position (in cylindrical coordinates).
double phi () const
 returns the phi value of the SpacePoint's position (in cylindrical coordinates).
virtual const Surface & associatedSurface () const override final
 Interface method to get the associated Surface.
virtual const Amg::Vector3DglobalPosition () const override final
 Interface method to get the global Position.
std::unique_ptr< SpacePointuniqueClone () const
 Clone.
virtual bool type (MeasurementBaseType::Type type) const override final
 Extended method checking the type.
const LocalParameters & localParameters () const
 Interface method to get the LocalParameters.
const Amg::MatrixXlocalCovariance () const
 Interface method to get the localError.

Protected Member Functions

 AmgSymMatrix (3) m_globalCovariance
void setupGlobalFromLocalCovariance ()
 set up the global covariance matrix by rotating the local one

Protected Attributes

std::pair< const PrepRawData *, const PrepRawData * > m_clusList
std::pair< IdentifierHash, IdentifierHashm_elemIdList
Amg::Vector3D m_position
LocalParameters m_localParams
Amg::MatrixX m_localCovariance

Parametrised constructors

In order to ensure initialisation, the global Position has to be on the surface associated to the FIRST member of the PRD-pair clusList.

 SCT_SpacePoint (const std::pair< IdentifierHash, IdentifierHash > &elementIdList, const Amg::Vector3D &position, const std::pair< const Trk::PrepRawData *, const Trk::PrepRawData * > &clusList)
 SCT_SpacePoint (const SCT_SpacePoint &)=default
 default move,copy,dtor
SCT_SpacePointoperator= (const SCT_SpacePoint &)=default
 SCT_SpacePoint (SCT_SpacePoint &&) noexcept=default
SCT_SpacePointoperator= (SCT_SpacePoint &&) noexcept=default
virtual ~SCT_SpacePoint ()=default
virtual Trk::SpacePointclone () const override final
 Clones.
virtual MsgStream & dump (MsgStream &out) const override final
 Interface method for output, to be overloaded by child classes*.
virtual std::ostream & dump (std::ostream &out) const override final
 Interface method for output, to be overloaded by child classes*.
void setupLocalCovarianceSCT ()
 method to set up the local Covariance Matrix.
void setup (const std::pair< IdentifierHash, IdentifierHash > &elementIdList, const Amg::Vector3D &position, const std::pair< const Trk::PrepRawData *, const Trk::PrepRawData * > &clusList)
 common method used in constructors.

Detailed Description

An SCT_SpacePoint is created from two SCT_Cluster's from two different wafers.

Definition at line 31 of file SCT_SpacePoint.h.

Constructor & Destructor Documentation

◆ SCT_SpacePoint() [1/4]

InDet::SCT_SpacePoint::SCT_SpacePoint ( )
default

Default constructor.

◆ SCT_SpacePoint() [2/4]

InDet::SCT_SpacePoint::SCT_SpacePoint ( const std::pair< IdentifierHash, IdentifierHash > & elementIdList,
const Amg::Vector3D & position,
const std::pair< const Trk::PrepRawData *, const Trk::PrepRawData * > & clusList )

Definition at line 20 of file SCT_SpacePoint.cxx.

24 : Trk::SpacePoint() {
25 setup(elementIdList, position, clusList);
28}
void setup(const std::pair< IdentifierHash, IdentifierHash > &elementIdList, const Amg::Vector3D &position, const std::pair< const Trk::PrepRawData *, const Trk::PrepRawData * > &clusList)
common method used in constructors.
void setupLocalCovarianceSCT()
method to set up the local Covariance Matrix.
void setupGlobalFromLocalCovariance()
set up the global covariance matrix by rotating the local one
const std::pair< IdentifierHash, IdentifierHash > & elementIdList() const
return the pair of Ids of the element by reference

◆ SCT_SpacePoint() [3/4]

InDet::SCT_SpacePoint::SCT_SpacePoint ( const SCT_SpacePoint & )
default

default move,copy,dtor

◆ SCT_SpacePoint() [4/4]

InDet::SCT_SpacePoint::SCT_SpacePoint ( SCT_SpacePoint && )
defaultnoexcept

◆ ~SCT_SpacePoint()

virtual InDet::SCT_SpacePoint::~SCT_SpacePoint ( )
virtualdefault

Member Function Documentation

◆ AmgSymMatrix() [1/2]

const Trk::SpacePoint::AmgSymMatrix ( 3 ) const &
inherited

return the error matrix by reference The Matrix is calculated from the local Covariance Matrix when demanded and the cached

◆ AmgSymMatrix() [2/2]

Trk::SpacePoint::AmgSymMatrix ( 3 )
protectedinherited

◆ associatedSurface()

const Surface & Trk::SpacePoint::associatedSurface ( ) const
finaloverridevirtualinherited

Interface method to get the associated Surface.

Implements Trk::MeasurementBase.

Definition at line 77 of file Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx.

77 {
78 assert(m_clusList.first->detectorElement());
79 return m_clusList.first->detectorElement()->surface();
80 }
std::pair< const PrepRawData *, const PrepRawData * > m_clusList

◆ clone()

Trk::SpacePoint * InDet::SCT_SpacePoint::clone ( ) const
inlinefinaloverridevirtual

Clones.

Implements Trk::SpacePoint.

Definition at line 84 of file SCT_SpacePoint.h.

84 {
85 return new SCT_SpacePoint(*this);
86}
SCT_SpacePoint()=default
Default constructor.

◆ clusterList()

const std::pair< const PrepRawData *, const PrepRawData * > & Trk::SpacePoint::clusterList ( ) const
inlineinherited

return the pair of cluster pointers by reference

Definition at line 127 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

127 {
128 return m_clusList;
129}

◆ dump() [1/2]

MsgStream & InDet::SCT_SpacePoint::dump ( MsgStream & out) const
finaloverridevirtual

Interface method for output, to be overloaded by child classes*.

Implements Trk::SpacePoint.

Definition at line 69 of file SCT_SpacePoint.cxx.

69 {
70 std::ostringstream os;
71 dump(os);
72 out << os.str();
73 return out;
74}
virtual MsgStream & dump(MsgStream &out) const override final
Interface method for output, to be overloaded by child classes*.

◆ dump() [2/2]

std::ostream & InDet::SCT_SpacePoint::dump ( std::ostream & out) const
finaloverridevirtual

Interface method for output, to be overloaded by child classes*.

Implements Trk::SpacePoint.

Definition at line 78 of file SCT_SpacePoint.cxx.

78 {
79 const std::string lf{"\n"}; // linefeed
80 out << "SCT_SpacePoint contains: " << lf;
81 out << "Identifier Hashes ( " << int(this->elementIdList().first) << " , ";
82 out << int(this->elementIdList().second) << " ) " << lf;
83 out << "Global Position: " << Amg::toString(this->globalPosition(), 3) << lf;
84 out << "Global Covariance Matrix " << Amg::toString(this->globCovariance(), 3)
85 << lf;
86 out << "Local Parameters " << this->localParameters() << lf;
87 out << "Local Covariance " << Amg::toString(this->localCovariance()) << lf;
88 out << "Cluster 1 :" << lf << (*this->clusterList().first) << lf;
89 out << "Cluster 2 :" << lf << (*this->clusterList().second) << std::endl;
90
91 return out;
92}
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.

◆ elementIdList()

const std::pair< IdentifierHash, IdentifierHash > & Trk::SpacePoint::elementIdList ( ) const
inlineinherited

return the pair of Ids of the element by reference

Definition at line 122 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

122 {
123 return m_elemIdList;
124}
std::pair< IdentifierHash, IdentifierHash > m_elemIdList

◆ eta()

double Trk::SpacePoint::eta ( double z0 = 0) const
inlineinherited

calculate eta (not cached), needs z0 info

Definition at line 131 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

131 {
132 // double zr = (m_z-z0)/m_r;
133 double zr = (m_position.z() - z0) / m_position.perp();
134 return std::log(zr + std::sqrt(1. + zr * zr));
135}
@ z0
Definition ParamDefs.h:64

◆ globalPosition()

const Amg::Vector3D & Trk::SpacePoint::globalPosition ( ) const
inlinefinaloverridevirtualinherited

Interface method to get the global Position.

Implements Trk::MeasurementBase.

Definition at line 146 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

146 {
147 return m_position;
148}

◆ localCovariance()

const Amg::MatrixX & Trk::MeasurementBase::localCovariance ( ) const
inlineinherited

Interface method to get the localError.

Definition at line 138 of file MeasurementBase.h.

139{
140 return m_localCovariance;
141}
Amg::MatrixX m_localCovariance

◆ localParameters()

const Trk::LocalParameters & Trk::MeasurementBase::localParameters ( ) const
inlineinherited

Interface method to get the LocalParameters.

Definition at line 132 of file MeasurementBase.h.

133{
134 return m_localParams;
135}
LocalParameters m_localParams

◆ operator=() [1/2]

SCT_SpacePoint & InDet::SCT_SpacePoint::operator= ( const SCT_SpacePoint & )
default

◆ operator=() [2/2]

SCT_SpacePoint & InDet::SCT_SpacePoint::operator= ( SCT_SpacePoint && )
defaultnoexcept

◆ phi()

double Trk::SpacePoint::phi ( ) const
inlineinherited

returns the phi value of the SpacePoint's position (in cylindrical coordinates).

This is calculated once in the ctor and then cached

Definition at line 141 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

141 {
142 return m_position.phi();
143}

◆ r()

double Trk::SpacePoint::r ( ) const
inlineinherited

returns the r value of the SpacePoint's position (in cylindrical coordinates).

This is calculated once in the ctor and then cached

Definition at line 137 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

137 {
138 return m_position.perp();
139}

◆ setup()

void InDet::SCT_SpacePoint::setup ( const std::pair< IdentifierHash, IdentifierHash > & elementIdList,
const Amg::Vector3D & position,
const std::pair< const Trk::PrepRawData *, const Trk::PrepRawData * > & clusList )
private

common method used in constructors.

Definition at line 32 of file SCT_SpacePoint.cxx.

36 {
37 m_clusList = clusList;
39 m_elemIdList.first = elementIdList.first;
40 m_elemIdList.second = elementIdList.second;
41 assert((clusList.first != 0) && (clusList.second != 0));
42 assert(clusList.first->detectorElement());
43 std::optional<Amg::Vector2D> locpos{
44 clusList.first->detectorElement()->surface().globalToLocal(position)};
45 assert(locpos);
46 Trk::MeasurementBase::m_localParams = Trk::LocalParameters(*locpos);
47}
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.

◆ setupGlobalFromLocalCovariance()

ATH_FLATTEN void Trk::SpacePoint::setupGlobalFromLocalCovariance ( )
protectedinherited

set up the global covariance matrix by rotating the local one

Definition at line 63 of file Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx.

63 {
64 const Amg::MatrixX& lc = this->localCovariance();
65
66 Eigen::Matrix3d cov;
67
68 cov << lc(0, 0), lc(0, 1), 0.,
69 lc(1, 0), lc(1, 1), 0.,
70 // cppcheck-suppress constStatement
71 0., 0., 0.;
72
73 const Amg::RotationMatrix3D& R = associatedSurface().transform().rotation();
74 m_globalCovariance = R * cov * R.transpose();
75 }
virtual const Surface & associatedSurface() const override final
Interface method to get the associated Surface.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)

◆ setupLocalCovarianceSCT()

void InDet::SCT_SpacePoint::setupLocalCovarianceSCT ( )
private

method to set up the local Covariance Matrix.

Definition at line 51 of file SCT_SpacePoint.cxx.

51 {
52
53 /* For performance reason only, the error is assumed constant.
54 numbers are taken from
55 Trigger/TrigTools/TrigOfflineSpacePointTool/OfflineSpacePointProviderTool
56 */
57 constexpr double deltaY = 0.0004; // roughly pitch of SCT (80 mu) / sqrt(12)
58 constexpr double offdiag = 25. * deltaY;
59 constexpr double elem11 = 1600. * deltaY;
60 Amg::MatrixX cov(2, 2);
61 cov << deltaY, offdiag,
62 offdiag, elem11;
63
65}

◆ type()

virtual bool Trk::SpacePoint::type ( MeasurementBaseType::Type type) const
inlinefinaloverridevirtualinherited

Extended method checking the type.

Implements Trk::MeasurementBase.

Definition at line 87 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

87 {
89 }
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.

◆ uniqueClone()

std::unique_ptr< SpacePoint > Trk::SpacePoint::uniqueClone ( ) const
inlineinherited

Clone.

Definition at line 82 of file Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h.

82 {
83 return std::unique_ptr<SpacePoint>(clone());
84 }
virtual SpacePoint * clone() const override=0
Clone.

Member Data Documentation

◆ m_clusList

std::pair<const PrepRawData*, const PrepRawData*> Trk::SpacePoint::m_clusList
protectedinherited

◆ m_elemIdList

std::pair<IdentifierHash, IdentifierHash> Trk::SpacePoint::m_elemIdList
protectedinherited

◆ m_localCovariance

Amg::MatrixX Trk::MeasurementBase::m_localCovariance
protectedinherited

Definition at line 112 of file MeasurementBase.h.

◆ m_localParams

LocalParameters Trk::MeasurementBase::m_localParams
protectedinherited

Definition at line 111 of file MeasurementBase.h.

◆ m_position

Amg::Vector3D Trk::SpacePoint::m_position
protectedinherited

The documentation for this class was generated from the following files: