Belle II Software light-2406-ragdoll
|
This class contains the initial state for the given event. More...
#include <MCInitialParticles.h>
Public Types | |
enum | EGenerationFlags { c_generateCMS = 1 << 0 , c_smearBeamEnergy = 1 << 1 , c_smearBeamDirection = 1 << 2 , c_smearBeam = c_smearBeamEnergy | c_smearBeamDirection , c_smearVertex = 1 << 3 , c_smearALL = c_smearVertex | c_smearBeam } |
Possible Flags for initial event generation. More... | |
Public Member Functions | |
MCInitialParticles () | |
Default constructor. | |
MCInitialParticles (const MCInitialParticles &b) | |
Copy constructor. | |
MCInitialParticles & | operator= (const MCInitialParticles &b) |
Assignment operator. | |
bool | operator== (const MCInitialParticles &b) const |
Equality operator. | |
virtual | ~MCInitialParticles () |
Free memory of the LorentzRotation if it was created. | |
void | set (const ROOT::Math::PxPyPzEVector &her, const ROOT::Math::PxPyPzEVector &ler, const ROOT::Math::XYZVector &vertex) |
Set the initial event values, i.e. | |
void | setByLorentzTransformation (double Ecms, double bX, double bY, double bZ, double angleXZ, double angleYZ, const ROOT::Math::XYZVector &vertex) |
Initialize the event values from CMS energy and parameters of the Lorentz transformation between LAB and CMS. | |
void | setHER (const ROOT::Math::PxPyPzEVector &her) |
Set the High Energy Beam 4-momentum. | |
void | setLER (const ROOT::Math::PxPyPzEVector &ler) |
Set the Low Energy Beam 4-momentum. | |
void | setVertex (const ROOT::Math::XYZVector &vertex) |
Set the vertex position. | |
void | setTime (double time) |
Set collision time. | |
virtual void | setGenerationFlags (int flags) |
Set the generation flags to be used for event generation (ORed combination of EGenerationFlags) | |
const ROOT::Math::PxPyPzEVector & | getHER () const |
Get 4vector of the high energy beam. | |
const ROOT::Math::PxPyPzEVector & | getLER () const |
Get 4vector of the low energy beam. | |
const ROOT::Math::XYZVector & | getVertex () const |
Get the position of the collision. | |
double | getTime () const |
Get collision time. | |
double | getEnergy () const |
Get the actual collision energy (in lab system) | |
double | getMass () const |
Get the invariant mass of the collision (= energy in CMS) | |
ROOT::Math::XYZVector | getBoostVector () const |
Get the boost vector (velocity of system produced in the collision) | |
ROOT::Math::PxPyPzEVector | getBoostedHER () const |
Get the 4-vector of electron beam in CM system obtained by pure boost. | |
const ROOT::Math::LorentzRotation & | getLabToCMS () const |
Return the LorentzRotation to convert from lab to CMS frame. | |
const ROOT::Math::LorentzRotation & | getCMSToLab () const |
Return the LorentzRotation to convert from CMS to lab frame. | |
bool | getValidFlag () const |
Get the flag to check if a valid MCInitialParticles object was already generated and filled in an event. | |
int | getGenerationFlags () const |
Get the generation flags to be used for event generation (ORed combination of EGenerationFlags) | |
bool | hasGenerationFlags (int flags) const |
Check if a certain set of EGenerationFlags is set. | |
std::string | getGenerationFlagString (const std::string &separator=" ") const |
Return string representation of all active flags for printing. | |
Static Public Member Functions | |
static ROOT::Math::LorentzRotation | cmsToLab (double bX, double bY, double bZ, double angleXZ, double angleYZ) |
Return the LorentzRotation from CMS to LAB based on the following parameters. | |
Protected Attributes | |
int | m_generationFlags {0} |
Flags to be used when generating events. | |
Private Member Functions | |
void | calculateBoost () const |
Calculate the Lorentz transformations LAB->CMS & CMS->LAB if necessary. | |
void | resetBoost () |
Reset cached transformations after changing parameters. | |
ClassDef (MCInitialParticles, 5) | |
ROOT Dictionary. | |
Private Attributes | |
ROOT::Math::PxPyPzEVector | m_her |
HER 4vector. | |
ROOT::Math::PxPyPzEVector | m_ler |
LER 4vector. | |
ROOT::Math::XYZVector | m_vertex |
collision position | |
double | m_time = 0 |
collision time | |
ROOT::Math::LorentzRotation * | m_labToCMS {nullptr} |
Boost from Lab into CMS. | |
ROOT::Math::LorentzRotation * | m_CMSToLab {nullptr} |
transient | |
double | m_invariantMass {0.0} |
transient | |
ROOT::Math::PxPyPzEVector | m_boostedHER |
transient | |
bool | m_validFlag = false |
transient | |
This class contains the initial state for the given event.
This is not to be confused with the nominal beam parameters but is an event dependent info which contains all implemented smearing effects. It is only set in Montecarlo.
Definition at line 31 of file MCInitialParticles.h.
enum EGenerationFlags |
Possible Flags for initial event generation.
Definition at line 36 of file MCInitialParticles.h.
|
inline |
|
inline |
Copy constructor.
Definition at line 55 of file MCInitialParticles.h.
|
inlinevirtual |
Free memory of the LorentzRotation if it was created.
Definition at line 89 of file MCInitialParticles.h.
|
static |
Return the LorentzRotation from CMS to LAB based on the following parameters.
bX | x-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
bY | y-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
bZ | z-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
angleXZ | angle in the XZ plane of the collision axis in the CM system obtained by pure boost |
angleYZ | angle in the YZ plane of the collision axis in the CM system obtained by pure boost |
Definition at line 31 of file MCInitialParticles.cc.
|
inline |
Get the 4-vector of electron beam in CM system obtained by pure boost.
Definition at line 185 of file MCInitialParticles.h.
|
inline |
Get the boost vector (velocity of system produced in the collision)
Definition at line 182 of file MCInitialParticles.h.
|
inline |
Return the LorentzRotation to convert from CMS to lab frame.
Definition at line 194 of file MCInitialParticles.h.
|
inline |
Get the actual collision energy (in lab system)
Definition at line 176 of file MCInitialParticles.h.
|
inline |
Get the generation flags to be used for event generation (ORed combination of EGenerationFlags)
Definition at line 203 of file MCInitialParticles.h.
std::string getGenerationFlagString | ( | const std::string & | separator = " " | ) | const |
Return string representation of all active flags for printing.
separator | separation string to be put between flags |
Definition at line 13 of file MCInitialParticles.cc.
|
inline |
|
inline |
Return the LorentzRotation to convert from lab to CMS frame.
Definition at line 188 of file MCInitialParticles.h.
|
inline |
|
inline |
Get the invariant mass of the collision (= energy in CMS)
Definition at line 179 of file MCInitialParticles.h.
|
inline |
|
inline |
Get the flag to check if a valid MCInitialParticles object was already generated and filled in an event.
Definition at line 200 of file MCInitialParticles.h.
|
inline |
|
inline |
Check if a certain set of EGenerationFlags is set.
Definition at line 206 of file MCInitialParticles.h.
|
inline |
Assignment operator.
Definition at line 59 of file MCInitialParticles.h.
|
inline |
Equality operator.
Definition at line 68 of file MCInitialParticles.h.
|
inline |
Set the initial event values, i.e.
the four momenta of both beams and the vertex
her | 4vector of the high energy beam |
ler | 4vector of the low energy beam |
vertex | position of the actual collision vertex |
Definition at line 97 of file MCInitialParticles.h.
|
inline |
Initialize the event values from CMS energy and parameters of the Lorentz transformation between LAB and CMS.
In addition the vertex is also initialized.
Ecms | centre-of-mass energy of the collision |
bX | x-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
bY | y-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
bZ | z-component of the boost vector, i.e. of (pHER + pLER) / (eHER + eLER), where pHER & pLER are momentum 3-vectors |
angleXZ | angle in the XZ plane of the collision axis in the CM system obtained by pure boost |
angleYZ | angle in the YZ plane of the collision axis in the CM system obtained by pure boost |
vertex | position of the actual collision vertex |
Definition at line 116 of file MCInitialParticles.h.
|
inlinevirtual |
Set the generation flags to be used for event generation (ORed combination of EGenerationFlags)
Reimplemented in BeamParameters.
Definition at line 161 of file MCInitialParticles.h.
|
inline |
Set the High Energy Beam 4-momentum.
Definition at line 138 of file MCInitialParticles.h.
|
inline |
Set the Low Energy Beam 4-momentum.
Definition at line 145 of file MCInitialParticles.h.
|
inline |
|
inline |
Set the vertex position.
Definition at line 152 of file MCInitialParticles.h.
|
mutableprivate |
transient
HER 4-momentum in CM frame obtained by pure boost (calculated on first use, not saved to file)
Definition at line 243 of file MCInitialParticles.h.
|
mutableprivate |
transient
Boost from CMS into lab. (calculated on first use, not saved to file)
Definition at line 239 of file MCInitialParticles.h.
|
protected |
Flags to be used when generating events.
Definition at line 250 of file MCInitialParticles.h.
|
private |
HER 4vector.
Definition at line 229 of file MCInitialParticles.h.
|
mutableprivate |
transient
invariant mass of HER+LER (calculated on first use, not saved to file)
Definition at line 241 of file MCInitialParticles.h.
|
mutableprivate |
Boost from Lab into CMS.
(calculated on first use, not saved to file)
Definition at line 237 of file MCInitialParticles.h.
|
private |
LER 4vector.
Definition at line 231 of file MCInitialParticles.h.
|
private |
collision time
Definition at line 235 of file MCInitialParticles.h.
|
private |
transient
Flag to check if a valid MCInitialParticles object was already generated and filled in an event.
Definition at line 245 of file MCInitialParticles.h.
|
private |
collision position
Definition at line 233 of file MCInitialParticles.h.