Belle II Software light-2411-aldebaran
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 257 of file MCInitialParticles.h.

258 {
259 if (m_labToCMS)
260 return;
261
262 ROOT::Math::PxPyPzEVector beam = m_her + m_ler;
263 // Save the invariant mass because it's used very often in analysis
264 m_invariantMass = beam.M();
265
266 // If we generate events in CMS we already are in CMS and there is no
267 // transformation so let's use the identity
269 m_labToCMS = new ROOT::Math::LorentzRotation();
270 m_CMSToLab = new ROOT::Math::LorentzRotation();
271 return;
272 }
273
274 m_boostedHER = ROOT::Math::LorentzRotation(ROOT::Math::Boost(beam.BoostToCM())) * m_her;
275 double cmsAngleXZ = atan(m_boostedHER.X() / m_boostedHER.Z());
276 double cmsAngleYZ = atan(m_boostedHER.Y() / m_boostedHER.Z());
277 m_labToCMS = new ROOT::Math::LorentzRotation(
278 LabToCms::rotateLabToCms(-beam.BoostToCM(), cmsAngleXZ, cmsAngleYZ)
279 );
280
281 //cache derived quantities
282 m_CMSToLab = new ROOT::Math::LorentzRotation(m_labToCMS->Inverse());
283 }
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 289 of file MCInitialParticles.h.

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