Thermal-FIST 1.5
Package for hadron resonance gas model applications
Loading...
Searching...
No Matches
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
17namespace 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
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
86 SimpleParticle LorentzBoostMomentumOnly(const SimpleParticle& part, double vx, double vy, double vz);
87
97 SimpleParticle LorentzBoostMomentaAndCoordinates(const SimpleParticle& part, double vx, double vy, double vz);
98
109 std::vector<SimpleParticle> TwoBodyDecay(const SimpleParticle & Mother, double m1, long long pdg1, double m2, long long pdg2);
110
128 std::vector<SimpleParticle> ManyBodyDecay(const SimpleParticle & Mother, std::vector<double> masses, std::vector<long long> pdgs); // TODO: proper implementation for 4+ - body decays
129
130
140 void ShuffleDecayProducts(std::vector<double> &masses, std::vector<long long> &pdgs); // TODO: proper implementation for 4+ - body decays
141
142
152 double ParticleDistanceSquared(const SimpleParticle& part1, const SimpleParticle& part2);
153
159 double ComputeDCA(const SimpleParticle& part);
160 }
161
162} // namespace thermalfist
163
164#endif
Contains functions for Monte Carlo generation of decays.
SimpleParticle LorentzBoostMomentaAndCoordinates(const SimpleParticle &part, double vx, double vy, double vz)
Lorentz boost of the 4-coordinate and 4-momentum of a particle.
double ComputeDCA(const SimpleParticle &part)
Computes the distance of closest approach (DCA) to the origin.
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)
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 ParticleDistanceSquared(const SimpleParticle &part1, const SimpleParticle &part2)
Return the square of the distance between particles at equal time.
void ShuffleDecayProducts(std::vector< double > &masses, std::vector< long long > &pdgs)
Shuffles the decay products.
SimpleParticle LorentzBoostMomentumOnly(const SimpleParticle &part, double vx, double vy, double vz)
Lorentz boost of the 4-momentum of a particle.
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.
double TernaryThreeBodym12Maximum(double M, double m1, double m2, double m3)
Determines the maximum of the probability density function used 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.
int threebodysucc
Used for debugging the succes rate in the rejection sampling of .
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.
The main namespace where all classes and functions of the Thermal-FIST library reside.
Definition CosmicEoS.h:9
Structure holding information about a single particle in the event generator.