Belle II Software development
RotationFrame Class Reference

Rotation frame around vector. More...

#include <ReferenceFrame.h>

Inheritance diagram for RotationFrame:
ReferenceFrame

Public Member Functions

 RotationFrame (const ROOT::Math::XYZVector &newX, const ROOT::Math::XYZVector &newY, const ROOT::Math::XYZVector &newZ)
 Create new rotation frame.
 
virtual ROOT::Math::XYZVector getVertex (const ROOT::Math::XYZVector &vector) const override
 Get vertex 3-vector in rotation frame.
 
virtual ROOT::Math::PxPyPzEVector getMomentum (const ROOT::Math::PxPyPzEVector &vector) const override
 Get Lorentz vector in rotation frame.
 
virtual TMatrixFSym getMomentumErrorMatrix (const TMatrixFSym &matrix) const override
 Get Momentum error matrix in rotation frame.
 
virtual TMatrixFSym getVertexErrorMatrix (const TMatrixFSym &matrix) const override
 Get Vertex error matrix in rotation frame.
 
virtual ROOT::Math::XYZVector getVertex (const Particle *particle) const
 Wrapper for particles.
 
virtual ROOT::Math::PxPyPzEVector getMomentum (const Particle *particle) const
 Wrapper for particles.
 
virtual TMatrixFSym getMomentumErrorMatrix (const Particle *particle) const
 Wrapper for particles.
 
virtual TMatrixFSym getVertexErrorMatrix (const Particle *particle) const
 Wrapper for particles.
 

Static Public Member Functions

static const ReferenceFrameGetCurrent ()
 Get current rest frame.
 

Static Private Member Functions

static void Push (const ReferenceFrame *frame)
 Push rest frame of given particle.
 
static void Pop ()
 Pop current rest frame.
 

Private Attributes

ROOT::Math::Rotation3D m_rotation
 Rotation.
 

Static Private Attributes

static std::stack< const ReferenceFrame * > m_reference_frames
 Stack of current rest frames.
 

Detailed Description

Rotation frame around vector.

Definition at line 253 of file ReferenceFrame.h.

Constructor & Destructor Documentation

◆ RotationFrame()

RotationFrame ( const ROOT::Math::XYZVector & newX,
const ROOT::Math::XYZVector & newY,
const ROOT::Math::XYZVector & newZ )
explicit

Create new rotation frame.

Definition at line 163 of file ReferenceFrame.cc.

164 :
165 m_rotation(newX.Unit(), newY.Unit(), newZ.Unit())
166{
167 m_rotation.Invert();
168}
ROOT::Math::Rotation3D m_rotation
Rotation.

Member Function Documentation

◆ GetCurrent()

const ReferenceFrame & GetCurrent ( )
staticinherited

Get current rest frame.

Returns
RestFrame

Definition at line 26 of file ReferenceFrame.cc.

27{
28 if (m_reference_frames.empty()) {
29 static LabFrame _default;
30 return _default;
31 } else {
32 return *m_reference_frames.top();
33 }
34}
static std::stack< const ReferenceFrame * > m_reference_frames
Stack of current rest frames.

◆ getMomentum() [1/2]

virtual ROOT::Math::PxPyPzEVector getMomentum ( const Particle * particle) const
inlinevirtualinherited

Wrapper for particles.

Parameters
particleparticle
Returns
momentum 4-vector in reference frame

Definition at line 60 of file ReferenceFrame.h.

61 {
62 return getMomentum(particle->get4Vector());
63 }

◆ getMomentum() [2/2]

ROOT::Math::PxPyPzEVector getMomentum ( const ROOT::Math::PxPyPzEVector & vector) const
overridevirtual

Get Lorentz vector in rotation frame.

Parameters
vectorLorentz vector from particle
Returns
Lorentz vector in rotation frame

Implements ReferenceFrame.

Definition at line 175 of file ReferenceFrame.cc.

176{
177 return m_rotation * vector;
178}

◆ getMomentumErrorMatrix() [1/2]

virtual TMatrixFSym getMomentumErrorMatrix ( const Particle * particle) const
inlinevirtualinherited

Wrapper for particles.

Parameters
particleparticle
Returns
Covariance matrix in reference frame

Definition at line 77 of file ReferenceFrame.h.

78 {
79 return getMomentumErrorMatrix(particle->getMomentumErrorMatrix());
80 }

◆ getMomentumErrorMatrix() [2/2]

TMatrixFSym getMomentumErrorMatrix ( const TMatrixFSym & matrix) const
overridevirtual

Get Momentum error matrix in rotation frame.

Parameters
matrixCovariance matrix from particle
Returns
Covariance matrix in rotation frame

Implements ReferenceFrame.

Definition at line 180 of file ReferenceFrame.cc.

181{
182 TMatrixD extendedrot(4, 4);
183 extendedrot.Zero();
184 m_rotation.GetRotationMatrix(extendedrot);
185 extendedrot(3, 3) = 1;
186
187 TMatrixFSym tmp_matrix(matrix);
188 return tmp_matrix.Similarity(extendedrot);
189}

◆ getVertex() [1/2]

virtual ROOT::Math::XYZVector getVertex ( const Particle * particle) const
inlinevirtualinherited

Wrapper for particles.

Parameters
particle
Returns
3-vector in reference frame

Definition at line 43 of file ReferenceFrame.h.

44 {
45 return getVertex(particle->getVertex());
46 }

◆ getVertex() [2/2]

ROOT::Math::XYZVector getVertex ( const ROOT::Math::XYZVector & vector) const
overridevirtual

Get vertex 3-vector in rotation frame.

Parameters
vector3-vector from particle
Returns
3-vector in rotation frame

Implements ReferenceFrame.

Definition at line 170 of file ReferenceFrame.cc.

171{
172 return m_rotation * vector;
173}

◆ getVertexErrorMatrix() [1/2]

virtual TMatrixFSym getVertexErrorMatrix ( const Particle * particle) const
inlinevirtualinherited

Wrapper for particles.

Parameters
particle
Returns
Covariance matrix in reference frame

Definition at line 94 of file ReferenceFrame.h.

95 {
96 return getVertexErrorMatrix(particle->getVertexErrorMatrix());
97 }

◆ getVertexErrorMatrix() [2/2]

TMatrixFSym getVertexErrorMatrix ( const TMatrixFSym & matrix) const
overridevirtual

Get Vertex error matrix in rotation frame.

Parameters
matrixCovariance matrix from particle
Returns
Covariance matrix in rotation frame

Implements ReferenceFrame.

Definition at line 191 of file ReferenceFrame.cc.

192{
193 TMatrixD rotmatrix(3, 3);
194 m_rotation.GetRotationMatrix(rotmatrix);
195
196 TMatrixFSym tmp_matrix(matrix);
197 return tmp_matrix.Similarity(rotmatrix);
198}

◆ Pop()

static void Pop ( )
inlinestaticprivateinherited

Pop current rest frame.

Definition at line 118 of file ReferenceFrame.h.

119 {
120 m_reference_frames.pop();
121 }

◆ Push()

static void Push ( const ReferenceFrame * frame)
inlinestaticprivateinherited

Push rest frame of given particle.

Parameters
frameUse this reference frame

Definition at line 110 of file ReferenceFrame.h.

111 {
112 m_reference_frames.push(frame);
113 }

Member Data Documentation

◆ m_reference_frames

std::stack< const ReferenceFrame * > m_reference_frames
staticprivateinherited

Stack of current rest frames.

Definition at line 123 of file ReferenceFrame.h.

◆ m_rotation

ROOT::Math::Rotation3D m_rotation
private

Rotation.

Definition at line 290 of file ReferenceFrame.h.


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