11 #include <TLorentzRotation.h>
12 #include <TRotation.h>
13 #include <TLorentzVector.h>
14 #include <analysis/dataobjects/Particle.h>
15 #include <analysis/utility/PCmsLabTransform.h>
35 virtual TVector3
getVertex(
const TVector3& vector)
const = 0;
52 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const = 0;
144 virtual TVector3
getVertex(
const TVector3& vector)
const override;
151 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const override;
186 virtual TVector3
getVertex(
const TVector3& vector)
const override;
193 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const override;
222 virtual TVector3
getVertex(
const TVector3& vector)
const override;
229 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const override;
258 explicit RotationFrame(
const TVector3& newX,
const TVector3& newY,
const TVector3& newZ);
265 virtual TVector3
getVertex(
const TVector3& vector)
const override;
272 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const override;
301 explicit CMSRotationFrame(
const TVector3& newX,
const TVector3& newY,
const TVector3& newZ);
308 virtual TVector3
getVertex(
const TVector3& vector)
const override;
315 virtual TLorentzVector
getMomentum(
const TLorentzVector& vector)
const override;
342 template<
class ...Args>
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in cms frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in cms frame.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in cms frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in cms frame.
PCmsLabTransform m_transform
Lab to CMS Transform.
Stack frame for cms and Rotation frame.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rotation frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rotation frame.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in rotation frame.
CMSRotationFrame(const TVector3 &newX, const TVector3 &newY, const TVector3 &newZ)
Create new rotation frame.
RotationFrame rotationframe
Rotationframe.
CMSFrame cmsframe
CMSFrame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in rotation frame.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in lab frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in lab frame.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in lab frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in lab frame.
Class to store reconstructed particles.
Abstract base class of all reference frames.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const =0
Get momentum 4-vector in reference frame.
virtual TMatrixFSym getVertexErrorMatrix(const Particle *particle) const
Wrapper for particles.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const =0
Get Vertex error matrix in reference frame.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const =0
Get Momentum error matrix in reference frame.
virtual TVector3 getVertex(const Particle *particle) const
Wrapper for particles.
virtual TVector3 getVertex(const TVector3 &vector) const =0
Get vertex 3-vector in reference frame.
static std::stack< const ReferenceFrame * > m_reference_frames
Stack of current rest frames.
virtual TLorentzVector getMomentum(const Particle *particle) const
Wrapper for particles.
virtual TMatrixFSym getMomentumErrorMatrix(const Particle *particle) const
Wrapper for particles.
static void Pop()
Pop current rest frame.
static const ReferenceFrame & GetCurrent()
Get current rest frame.
static void Push(const ReferenceFrame *frame)
Push rest frame of given particle.
Rest frame of a particle.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rest frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rest frame System.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in rest frame.
TVector3 m_boost
boost of RF relative to the lab frame
TLorentzRotation m_lab2restframe
Lorentz transformation connecting lab and rest frame.
RestFrame(const Particle *particle)
Create new rest frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in rest frame system.
TVector3 m_displacement
displacement of RF origin in th lab frame
TLorentzVector m_momentum
momentum of RF in the lab frame
Rotation frame around vector.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rotation frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rotation frame.
RotationFrame(const TVector3 &newX, const TVector3 &newY, const TVector3 &newZ)
Create new rotation frame.
TRotation m_rotation
Rotation.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in rotation frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in rotation frame.
A template class to apply the reference frame.
UseReferenceFrame(Args &&... params)
Constructor which applies the reference frame
T m_frame
the reference frame
Abstract base class for different kinds of events.