Thermal-FIST 1.5
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
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)
 
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.
 
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.
 
SimpleParticle LorentzBoost (const SimpleParticle &part, double vx, double vy, double vz)
 Lorentz boost of the 4-momentum and 4-coordinate of a particle.
 
SimpleParticle LorentzBoostMomentumOnly (const SimpleParticle &part, double vx, double vy, double vz)
 Lorentz boost of the 4-momentum of a particle.
 
SimpleParticle LorentzBoostMomentaAndCoordinates (const SimpleParticle &part, double vx, double vy, double vz)
 Lorentz boost of the 4-coordinate and 4-momentum of a particle.
 
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.
 
std::vector< SimpleParticleManyBodyDecay (const SimpleParticle &Mother, std::vector< double > masses, std::vector< long long > pdgs)
 Samples the decay products of a many-body decay.
 
void ShuffleDecayProducts (std::vector< double > &masses, std::vector< long long > &pdgs)
 Shuffles the decay products.
 
double ParticleDistanceSquared (const SimpleParticle &part1, const SimpleParticle &part2)
 Return the square of the distance between particles at equal time.
 
double ComputeDCA (const SimpleParticle &part)
 Computes the distance of closest approach (DCA) to the origin.
 

Variables

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

Detailed Description

Contains functions for Monte Carlo generation of decays.

Function Documentation

◆ ComputeDCA()

double thermalfist::ParticleDecaysMC::ComputeDCA ( const SimpleParticle & part)

Computes the distance of closest approach (DCA) to the origin.

Parameters
partParticle

Definition at line 269 of file ParticleDecaysMC.cpp.

◆ GetRandomThreeBodym12()

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.

◆ LorentzBoost()

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

Lorentz boost of the 4-momentum and 4-coordinate 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 and 4-coordinate

Definition at line 60 of file ParticleDecaysMC.cpp.

◆ LorentzBoostMomentaAndCoordinates()

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

Lorentz boost of the 4-coordinate and 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 83 of file ParticleDecaysMC.cpp.

◆ LorentzBoostMomentumOnly()

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

Lorentz boost of the 4-momentum of a particle.

  Does *not* boost the coordinates!
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 64 of file ParticleDecaysMC.cpp.

◆ ManyBodyDecay()

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 167 of file ParticleDecaysMC.cpp.

◆ ParticleDistanceSquared()

double thermalfist::ParticleDecaysMC::ParticleDistanceSquared ( const SimpleParticle & part1,
const SimpleParticle & part2 )

Return the square of the distance between particles at equal time.

Makes Lorentz boost into the pair rest frame, then propagates the earlier particle to other particle's time, and computed the square of the distance between particles at that time.

Parameters
part1First particle
part2Second particle

Definition at line 242 of file ParticleDecaysMC.cpp.

◆ ShuffleDecayProducts()

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 228 of file ParticleDecaysMC.cpp.

◆ TernaryThreeBodym12Maximum()

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.

◆ ThreeBodym12F2()

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.

◆ TwoBodyDecay()

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 110 of file ParticleDecaysMC.cpp.

Variable Documentation

◆ threebodysucc

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.

◆ threebodytot

int thermalfist::ParticleDecaysMC::threebodytot = 0

Definition at line 49 of file ParticleDecaysMC.h.