 |
Belle II Software
release-05-02-19
|
11 #include <analysis/utility/ReferenceFrame.h>
21 m_momentum(particle->get4Vector()),
22 m_displacement(particle->getVertex()),
23 m_boost(m_momentum.BoostVector()),
24 m_lab2restframe(TLorentzRotation(-m_boost))
46 return a.Vect() -
m_boost * a.T();
57 TMatrixD lorentzrot(4, 4);
59 for (
int i = 0; i < 4; ++i)
60 for (
int j = 0; j < 4; ++j)
63 TMatrixFSym tmp_matrix(matrix);
65 return tmp_matrix.Similarity(lorentzrot);
70 TMatrixD lorentzrot(4, 3);
72 for (
int i = 0; i < 4; ++i)
73 for (
int j = 0; j < 3; ++j)
76 TMatrixFSym tmp_matrix(matrix);
77 auto rotated_error_matrix = tmp_matrix.Similarity(lorentzrot);
79 TMatrixD timeshift(3, 4);
88 return rotated_error_matrix.Similarity(timeshift);
130 TMatrixD lorentzrot(4, 4);
133 for (
int i = 0; i < 4; ++i)
134 for (
int j = 0; j < 4; ++j)
135 lorentzrot(i, j) = labToCmsFrame(i, j);
137 TMatrixFSym tmp_matrix(matrix);
138 return tmp_matrix.Similarity(lorentzrot);
143 TMatrixD lorentzrot(4, 3);
146 for (
int i = 0; i < 4; ++i)
147 for (
int j = 0; j < 3; ++j)
148 lorentzrot(i, j) = labToCmsFrame(i, j);
150 TMatrixFSym tmp_matrix(matrix);
151 auto rotated_error_matrix = tmp_matrix.Similarity(lorentzrot);
153 TMatrixD timeshift(3, 4);
159 timeshift(0, 3) = boost_vector(0);
160 timeshift(1, 3) = boost_vector(1);
161 timeshift(2, 3) = boost_vector(2);
163 return rotated_error_matrix.Similarity(timeshift);
168 m_rotation.RotateAxes(newX.Unit(), newY.Unit(), newZ.Unit());
179 TVector3 rotated_vector =
m_rotation * vector.Vect();
181 return TLorentzVector(rotated_vector, vector[3]);
186 TMatrixD extendedrot(4, 4);
188 for (
int i = 0; i < 3; ++i)
189 for (
int j = 0; j < 3; ++j)
191 extendedrot(3, 3) = 1;
193 TMatrixFSym tmp_matrix(matrix);
194 return tmp_matrix.Similarity(extendedrot);
199 TMatrixD rotmatrix(3, 3);
200 for (
int i = 0; i < 3; ++i)
201 for (
int j = 0; j < 3; ++j)
204 TMatrixFSym tmp_matrix(matrix);
205 return tmp_matrix.Similarity(rotmatrix);
209 rotationframe(newX, newY, newZ)
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rotation frame.
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.
CMSFrame cmsframe
CMSFrame.
CMSRotationFrame(const TVector3 &newX, const TVector3 &newY, const TVector3 &newZ)
Create new rotation 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.
PCmsLabTransform m_transform
Lab to CMS Transform.
static std::stack< const ReferenceFrame * > m_reference_frames
Stack of current rest frames.
TRotation m_rotation
Rotation.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in cms frame.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rest frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in rest frame system.
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.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in rest frame.
virtual TMatrixFSym getVertexErrorMatrix(const TMatrixFSym &matrix) const override
Get Vertex error matrix in rotation frame.
virtual TMatrixFSym getMomentumErrorMatrix(const TMatrixFSym &matrix) const override
Get Momentum error matrix in rotation frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rotation frame.
RestFrame(const Particle *particle)
Create new rest frame.
Abstract base class for different kinds of events.
TVector3 m_displacement
displacement of RF origin in th lab frame
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in lab frame.
virtual TVector3 getVertex(const TVector3 &vector) const override
Get vertex 3-vector in cms frame.
Abstract base class of all reference frames.
Class to store reconstructed particles.
RotationFrame(const TVector3 &newX, const TVector3 &newY, const TVector3 &newZ)
Create new rotation frame.
static const ReferenceFrame & GetCurrent()
Get current rest frame.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rest frame System.
virtual TLorentzVector getMomentum(const TLorentzVector &vector) const override
Get Lorentz vector in rotation frame.
TLorentzRotation m_lab2restframe
Lorentz transformation connecting lab and rest frame.
RotationFrame rotationframe
Rotationframe.
TVector3 m_boost
boost of RF relative to the lab frame
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.