Belle II Software development
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.
double atan(double a)
atan for double
Definition: beamHelpers.h:34

◆ 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 }

◆ 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 }