Belle II Software light-2406-ragdoll
framework data objects
Collaboration diagram for framework data objects:

Classes

class  BackgroundInfo
 This class stores the information about what background was mixed or overlayed. More...
 
class  BackgroundMetaData
 Metadata information about the beam background file. More...
 
class  BinnedEventT0
 Database object for storing a binned EventT0 coming from the trigger. More...
 
class  DigitBase
 A common base for subdetector Digits. More...
 
class  DisplayData
 Add custom information to the display. More...
 
class  EventExtraInfo
 Class to stores ExtraInfo of the whole event. More...
 
class  EventMetaData
 Store event, run, and experiment numbers. More...
 
class  EventT0
 Storage element for the eventwise T0 estimation. More...
 
class  FileMetaData
 Metadata information about a file. More...
 
class  Helix
 This class represents an ideal helix in perigee parameterization. More...
 
class  MCInitialParticles
 This class contains the initial state for the given event. More...
 
class  MergedEventConsistency
 Mark if we want to merge the DataStore of a combination of events or not. More...
 
class  ProfileInfo
 Store execution time and memory usage. More...
 
class  RelationContainer
 Class to store relations between StoreArrays in the DataStore. More...
 
class  RelationElement
 Class to store a single element of a relation. More...
 
class  TestChunkData
 Storable object which can be filled with random chunk data of a certain size. More...
 
class  UncertainHelix
 This class represents an ideal helix in perigee parameterization including the covariance matrix of the 5 perigee parameters. More...
 

Functions

std::ostream & operator<< (std::ostream &output, const Helix &helix)
 Output operator for debugging and the generation of unittest error messages.
 
void calculateBoost () const
 Calculate the Lorentz transformations LAB->CMS & CMS->LAB if necessary.
 
void resetBoost ()
 Reset cached transformations after changing parameters.
 

Detailed Description

Function Documentation

◆ calculateBoost()

void calculateBoost ( ) const
inlineprivate

Calculate the Lorentz transformations LAB->CMS & CMS->LAB if necessary.

Definition at line 258 of file MCInitialParticles.h.

259 {
260 if (m_labToCMS)
261 return;
262
263 ROOT::Math::PxPyPzEVector beam = m_her + m_ler;
264 // Save the invariant mass because it's used very often in analysis
265 m_invariantMass = beam.M();
266
267 // If we generate events in CMS we already are in CMS and there is no
268 // transformation so let's use the identity
270 m_labToCMS = new ROOT::Math::LorentzRotation();
271 m_CMSToLab = new ROOT::Math::LorentzRotation();
272 return;
273 }
274
275 m_boostedHER = ROOT::Math::LorentzRotation(ROOT::Math::Boost(beam.BoostToCM())) * m_her;
276 double cmsAngleXZ = atan(m_boostedHER.X() / m_boostedHER.Z());
277 double cmsAngleYZ = atan(m_boostedHER.Y() / m_boostedHER.Z());
278 m_labToCMS = new ROOT::Math::LorentzRotation(
279 LabToCms::rotateLabToCms(-beam.BoostToCM(), cmsAngleXZ, cmsAngleYZ)
280 );
281
282 //cache derived quantities
283 m_CMSToLab = new ROOT::Math::LorentzRotation(m_labToCMS->Inverse());
284 }
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
ROOT::Math::LorentzRotation * m_CMSToLab
transient
ROOT::Math::PxPyPzEVector m_boostedHER
transient
ROOT::Math::PxPyPzEVector m_ler
LER 4vector.
ROOT::Math::PxPyPzEVector m_her
HER 4vector.
@ c_generateCMS
generate initial event in CMS instead of lab
ROOT::Math::LorentzRotation * m_labToCMS
Boost from Lab into CMS.
bool hasGenerationFlags(int flags) const
Check if a certain set of EGenerationFlags is set.

◆ operator<<()

std::ostream & operator<< ( std::ostream &  output,
const Helix helix 
)

Output operator for debugging and the generation of unittest error messages.

Definition at line 631 of file Helix.cc.

632 {
633 return output
634 << "Helix("
635 << "d0=" << helix.getD0() << ", "
636 << "phi0=" << helix.getPhi0() << ", "
637 << "omega=" << helix.getOmega() << ", "
638 << "z0=" << helix.getZ0() << ", "
639 << "tanLambda=" << helix.getTanLambda() << ")";
640 }
double getOmega() const
Getter for omega, which is a signed curvature measure of the track.
Definition: Helix.h:387
double getD0() const
Getter for d0, which is the signed distance to the perigee in the r-phi plane.
Definition: Helix.h:372
double getTanLambda() const
Getter for tan lambda, which is the z over two dimensional arc length slope of the track.
Definition: Helix.h:393
double getZ0() const
Getter for z0, which is the z coordinate of the perigee.
Definition: Helix.h:390
double getPhi0() const
Getter for phi0, which is the azimuth angle of the transverse momentum at the perigee.
Definition: Helix.h:378

◆ resetBoost()

void resetBoost ( )
inlineprivate

Reset cached transformations after changing parameters.

Definition at line 290 of file MCInitialParticles.h.

291 {
292 delete m_labToCMS;
293 delete m_CMSToLab;
294 m_labToCMS = nullptr;
295 m_CMSToLab = nullptr;
296 m_invariantMass = 0.0;
297 m_boostedHER = ROOT::Math::PxPyPzEVector();
298 }