Thermal-FIST  1.3
Package for hadron resonance gas model applications
ParticleDecaysMC.h
Go to the documentation of this file.
1 /*
2  * Thermal-FIST package
3  *
4  * Copyright (c) 2015-2019 Volodymyr Vovchenko
5  *
6  * GNU General Public License (GPLv3 or later)
7  */
8 #ifndef PARTICLEDECAYS_H
9 #define PARTICLEDECAYS_H
10 
11 #include <cmath>
12 #include <vector>
13 #include <map>
14 
16 
17 namespace thermalfist {
18 
20  namespace ParticleDecaysMC {
32  double ThreeBodym12F2(double m12, double M, double m1, double m2, double m3);
33 
46  double TernaryThreeBodym12Maximum(double M, double m1, double m2, double m3);
47 
49  extern int threebodysucc, threebodytot;
50 
62  double GetRandomThreeBodym12(double M, double m1, double m2, double m3, double fm12max);
63 
73  SimpleParticle LorentzBoost(const SimpleParticle &part, double vx, double vy, double vz);
74 
85  std::vector<SimpleParticle> TwoBodyDecay(const SimpleParticle & Mother, double m1, long long pdg1, double m2, long long pdg2);
86 
104  std::vector<SimpleParticle> ManyBodyDecay(const SimpleParticle & Mother, std::vector<double> masses, std::vector<long long> pdgs); // TODO: proper implementation for 4+ - body decays
105 
106 
116  void ShuffleDecayProducts(std::vector<double> &masses, std::vector<long long> &pdgs); // TODO: proper implementation for 4+ - body decays
117  }
118 
119 } // namespace thermalfist
120 
121 #endif
int threebodysucc
Used for debugging the succes rate in the rejection sampling of .
double TernaryThreeBodym12Maximum(double M, double m1, double m2, double m3)
Determines the maximum of the probability density function used in a three-body decay.
std::vector< SimpleParticle > TwoBodyDecay(const SimpleParticle &Mother, double m1, long long pdg1, double m2, long long pdg2)
Samples the decay products of a two-body decay.
double GetRandomThreeBodym12(double M, double m1, double m2, double m3, double fm12max)
Sample the invariant mass of the leading two daughter particles in a three-body decay.
Structure holding information about a single particle in the event generator.
double ThreeBodym12F2(double m12, double M, double m1, double m2, double m3)
Square of the probability density function used in a three-body decay (unnormalized) ...
void ShuffleDecayProducts(std::vector< double > &masses, std::vector< long long > &pdgs)
Shuffles the decay products.
std::vector< SimpleParticle > ManyBodyDecay(const SimpleParticle &Mother, std::vector< double > masses, std::vector< long long > pdgs)
Samples the decay products of a many-body decay.
SimpleParticle LorentzBoost(const SimpleParticle &part, double vx, double vy, double vz)
Lorentz boost of the 4-momentum of a particle.
The main namespace where all classes and functions of the Thermal-FIST library reside.