Thermal-FIST  1.3
Package for hadron resonance gas model applications
Functions | Variables
thermalfist::ParticleDecaysMC Namespace Reference

Contains functions for Monte Carlo generation of decays. More...

Functions

double ThreeBodym12F2 (double m12, double M, double m1, double m2, double m3)
 Square of the \(m_{12}\) probability density function used in a three-body decay (unnormalized) More...
 
double TernaryThreeBodym12Maximum (double M, double m1, double m2, double m3)
 Determines the maximum of the \(m_{12}\) probability density function used in a three-body decay. More...
 
double GetRandomThreeBodym12 (double M, double m1, double m2, double m3, double fm12max)
 Sample the invariant mass \(m_{12}\) of the leading two daughter particles in a three-body decay. More...
 
SimpleParticle LorentzBoost (const SimpleParticle &part, double vx, double vy, double vz)
 Lorentz boost of the 4-momentum of a particle. More...
 
std::vector< SimpleParticleTwoBodyDecay (const SimpleParticle &Mother, double m1, long long pdg1, double m2, long long pdg2)
 Samples the decay products of a two-body decay. More...
 
std::vector< SimpleParticleManyBodyDecay (const SimpleParticle &Mother, std::vector< double > masses, std::vector< long long > pdgs)
 Samples the decay products of a many-body decay. More...
 
void ShuffleDecayProducts (std::vector< double > &masses, std::vector< long long > &pdgs)
 Shuffles the decay products. More...
 

Variables

int threebodysucc = 0
 Used for debugging the succes rate in the rejection sampling of \(m_{12}\). More...
 
int threebodytot = 0
 

Detailed Description

Contains functions for Monte Carlo generation of decays.

Function Documentation

double thermalfist::ParticleDecaysMC::GetRandomThreeBodym12 ( double  M,
double  m1,
double  m2,
double  m3,
double  fm12max 
)

Sample the invariant mass \(m_{12}\) of the leading two daughter particles in a three-body decay.

Parameters
MMass of the decaying particle
m1Mass of the first daughter particle
m2Mass of the first daughter particle
m3Mass of the first daughter particle
fm12maxThe maximum of the \(m_{12}\) probability density (precomputed with TernaryThreeBodym12Maximum())
Returns
The sampled value of \(m_{12}\)

Definition at line 47 of file ParticleDecaysMC.cpp.

SimpleParticle thermalfist::ParticleDecaysMC::LorentzBoost ( const SimpleParticle part,
double  vx,
double  vy,
double  vz 
)

Lorentz boost of the 4-momentum of a particle.

Parameters
[in]partInput particle with a 4-momentum
[in]vxLorentz boost velocity x component
[in]vyLorentz boost velocity y component
[in]vzLorentz boost velocity z component
Returns
SimpleParticle Particle with Lorentz-boosted 4-momentum

Definition at line 63 of file ParticleDecaysMC.cpp.

std::vector< SimpleParticle > thermalfist::ParticleDecaysMC::ManyBodyDecay ( const SimpleParticle Mother,
std::vector< double >  masses,
std::vector< long long >  pdgs 
)

Samples the decay products of a many-body decay.


NOTE

While the decay kinematics of a three-body decay here are exact, decay kinematics for (4+)-body decays are approximate and should be taken into consideration.


Parameters
MotherThe decaying particle
massesMasses of the decay products (in GeV)
pdgsPdg codes of the decay products
Returns
std::vector<SimpleParticle>

Definition at line 121 of file ParticleDecaysMC.cpp.

void thermalfist::ParticleDecaysMC::ShuffleDecayProducts ( std::vector< double > &  masses,
std::vector< long long > &  pdgs 
)

Shuffles the decay products.

Currently used for four+ body decays to avoid having asymmetry in momentum distributions of decay products due to non-exact current implementation of these decays.

Parameters
massesMasses of the decay products (in GeV)
pdgsPdg codes of the decay products

Definition at line 175 of file ParticleDecaysMC.cpp.

double thermalfist::ParticleDecaysMC::TernaryThreeBodym12Maximum ( double  M,
double  m1,
double  m2,
double  m3 
)

Determines the maximum of the \(m_{12}\) probability density function used in a three-body decay.

Uses ternary search.

Parameters
MMass of the decaying particle
m1Mass of the first daughter particle
m2Mass of the first daughter particle
m3Mass of the first daughter particle
Returns
Maximum of the \(m_{12}\) probability density function

Definition at line 24 of file ParticleDecaysMC.cpp.

double thermalfist::ParticleDecaysMC::ThreeBodym12F2 ( double  m12,
double  M,
double  m1,
double  m2,
double  m3 
)

Square of the \(m_{12}\) probability density function used in a three-body decay (unnormalized)

Parameters
m12Invariant mass of the leading two daughter particles in a three-body decay
MMass of the decaying particle
m1Mass of the first daughter particle
m2Mass of the first daughter particle
m3Mass of the first daughter particle
Returns
Square of the probability density for \(m_{12}\)

Definition at line 18 of file ParticleDecaysMC.cpp.

std::vector< SimpleParticle > thermalfist::ParticleDecaysMC::TwoBodyDecay ( const SimpleParticle Mother,
double  m1,
long long  pdg1,
double  m2,
long long  pdg2 
)

Samples the decay products of a two-body decay.

Parameters
MotherThe decaying particle
m1Mass of the first daughter (in GeV)
pdg1Pdg code of the first daughter
m2Mass of the second daughter (in GeV)
pdg2Pdg code of the second daughter
Returns
std::vector<SimpleParticle> Two-component vector of decay products

Definition at line 77 of file ParticleDecaysMC.cpp.

Variable Documentation

int thermalfist::ParticleDecaysMC::threebodysucc = 0

Used for debugging the succes rate in the rejection sampling of \(m_{12}\).

Definition at line 44 of file ParticleDecaysMC.cpp.

int thermalfist::ParticleDecaysMC::threebodytot = 0

Definition at line 44 of file ParticleDecaysMC.cpp.