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