Belle II Software development
PCmsLabTransform Class Reference

Class to hold Lorentz transformations from/to CMS and boost vector. More...

#include <PCmsLabTransform.h>

Public Member Functions

 PCmsLabTransform ()
 Constructor.
 
B2Vector3D getBoostVector () const
 Returns boost vector (beta=p/E)
 
double getCMSEnergy () const
 Returns CMS energy of e+e- (aka.
 
ROOT::Math::PxPyPzEVector getBeamFourMomentum () const
 Returns LAB four-momentum of e+e-, i.e.
 
const ROOT::Math::LorentzRotation rotateLabToCms () const
 Returns Lorentz transformation from Lab to CMS.
 
const ROOT::Math::LorentzRotation rotateCmsToLab () const
 Returns Lorentz transformation from CMS to Lab.
 

Static Public Member Functions

static ROOT::Math::PxPyPzMVector labToCms (const ROOT::Math::PxPyPzMVector &vec)
 Transforms Lorentz vector into CM System.
 
static ROOT::Math::PxPyPzMVector cmsToLab (const ROOT::Math::PxPyPzMVector &vec)
 Transforms Lorentz vector into Laboratory System.
 
static ROOT::Math::PxPyPzEVector labToCms (const ROOT::Math::PxPyPzEVector &vec)
 Transforms Lorentz vector into CM System.
 
static ROOT::Math::PxPyPzEVector cmsToLab (const ROOT::Math::PxPyPzEVector &vec)
 Transforms Lorentz vector into Laboratory System.
 

Private Attributes

const DBObjPtr< CollisionInvariantMassm_invariantMassDB
 db object for invariant mass.
 
const DBObjPtr< CollisionBoostVectorm_boostVectorDB
 db object for boost vector.
 
const DBObjPtr< CollisionAxisCMSm_axisCmsDB
 db object for collision axis in CM system from boost.
 

Detailed Description

Class to hold Lorentz transformations from/to CMS and boost vector.

Definition at line 30 of file PCmsLabTransform.h.

Member Function Documentation

◆ cmsToLab() [1/2]

ROOT::Math::PxPyPzEVector cmsToLab ( const ROOT::Math::PxPyPzEVector &  vec)
static

Transforms Lorentz vector into Laboratory System.

Parameters
vecLorentz vector in CM System
Returns
Lorentz vector in Laboratory System

Definition at line 31 of file PCmsLabTransform.cc.

32{
34 return T.rotateCmsToLab() * vector;
35}
Class to hold Lorentz transformations from/to CMS and boost vector.
const ROOT::Math::LorentzRotation rotateCmsToLab() const
Returns Lorentz transformation from CMS to Lab.

◆ cmsToLab() [2/2]

ROOT::Math::PxPyPzMVector cmsToLab ( const ROOT::Math::PxPyPzMVector &  vec)
static

Transforms Lorentz vector into Laboratory System.

Parameters
vecLorentz vector in CM System
Returns
Lorentz vector in Laboratory System

Definition at line 19 of file PCmsLabTransform.cc.

20{
22 return T.rotateCmsToLab() * vector;
23}

◆ getBeamFourMomentum()

ROOT::Math::PxPyPzEVector getBeamFourMomentum ( ) const
inline

Returns LAB four-momentum of e+e-, i.e.

pHER + pLER

Definition at line 58 of file PCmsLabTransform.h.

59 {
60 return rotateCmsToLab() * ROOT::Math::PxPyPzEVector(0, 0, 0, getCMSEnergy());
61 }
double getCMSEnergy() const
Returns CMS energy of e+e- (aka.

◆ getBoostVector()

B2Vector3D getBoostVector ( ) const
inline

Returns boost vector (beta=p/E)

Definition at line 42 of file PCmsLabTransform.h.

43 {
44 return m_boostVectorDB->getBoost();
45 }
const DBObjPtr< CollisionBoostVector > m_boostVectorDB
db object for boost vector.

◆ getCMSEnergy()

double getCMSEnergy ( ) const
inline

Returns CMS energy of e+e- (aka.

invariant mass in any system)

Definition at line 50 of file PCmsLabTransform.h.

51 {
52 return m_invariantMassDB->getMass();
53 }
const DBObjPtr< CollisionInvariantMass > m_invariantMassDB
db object for invariant mass.

◆ labToCms() [1/2]

ROOT::Math::PxPyPzEVector labToCms ( const ROOT::Math::PxPyPzEVector &  vec)
static

Transforms Lorentz vector into CM System.

Parameters
vecLorentz vector in Laboratory System
Returns
Lorentz vector in CM System

Definition at line 25 of file PCmsLabTransform.cc.

26{
28 return T.rotateLabToCms() * vector;
29}
const ROOT::Math::LorentzRotation rotateLabToCms() const
Returns Lorentz transformation from Lab to CMS.

◆ labToCms() [2/2]

ROOT::Math::PxPyPzMVector labToCms ( const ROOT::Math::PxPyPzMVector &  vec)
static

Transforms Lorentz vector into CM System.

Parameters
vecLorentz vector in Laboratory System
Returns
Lorentz vector in CM System

Definition at line 13 of file PCmsLabTransform.cc.

14{
16 return T.rotateLabToCms() * vector;
17}

◆ rotateCmsToLab()

const ROOT::Math::LorentzRotation rotateCmsToLab ( ) const
inline

Returns Lorentz transformation from CMS to Lab.

Returns
const reference to Lorentz rotation matrix

Definition at line 76 of file PCmsLabTransform.h.

77 {
78 return rotateLabToCms().Inverse();
79 }

◆ rotateLabToCms()

const ROOT::Math::LorentzRotation rotateLabToCms ( ) const
inline

Returns Lorentz transformation from Lab to CMS.

Returns
const reference to Lorentz rotation matrix

Definition at line 67 of file PCmsLabTransform.h.

68 {
69 return LabToCms::rotateLabToCms(getBoostVector(), m_axisCmsDB->getAngleXZ(), m_axisCmsDB->getAngleYZ());
70 }
static ROOT::Math::LorentzRotation rotateLabToCms(const ROOT::Math::XYZVector &boostVector, double cmsAngleXZ, double cmsAngleYZ)
Function takes 3D boostVector and angles of the HER momentum in the CM system obtained by pure boost.
Definition: LabToCms.h:43
B2Vector3D getBoostVector() const
Returns boost vector (beta=p/E)
const DBObjPtr< CollisionAxisCMS > m_axisCmsDB
db object for collision axis in CM system from boost.

Member Data Documentation

◆ m_axisCmsDB

const DBObjPtr<CollisionAxisCMS> m_axisCmsDB
private

db object for collision axis in CM system from boost.

Definition at line 112 of file PCmsLabTransform.h.

◆ m_boostVectorDB

const DBObjPtr<CollisionBoostVector> m_boostVectorDB
private

db object for boost vector.

Definition at line 111 of file PCmsLabTransform.h.

◆ m_invariantMassDB

const DBObjPtr<CollisionInvariantMass> m_invariantMassDB
private

db object for invariant mass.

Definition at line 110 of file PCmsLabTransform.h.


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