Version: SMASH-1.8
smash::ParticleData Class Reference

#include <particledata.h>

ParticleData contains the dynamic information of a certain particle.

Each particle has its momentum, position and other relevant physical data entry.

Definition at line 52 of file particledata.h.

Collaboration diagram for smash::ParticleData:
[legend]

Public Member Functions

 ParticleData (const ParticleType &particle_type, int unique_id=-1)
 Create a new particle with the given particle_type and optionally a specific unique_id. More...
 
int32_t id () const
 Get the id of the particle. More...
 
void set_id (int i)
 Set id of the particle. More...
 
PdgCode pdgcode () const
 Get the pdgcode of the particle. More...
 
bool is_hadron () const
 
bool is_baryon () const
 
bool is_nucleus () const
 
bool is_rho () const
 
double pole_mass () const
 Get the particle's pole mass ("on-shell"). More...
 
double effective_mass () const
 Get the particle's effective mass. More...
 
const ParticleTypetype () const
 Get the type of the particle. More...
 
uint32_t id_process () const
 Get the id of the last action. More...
 
HistoryData get_history () const
 Get history information. More...
 
void set_history (int ncoll, uint32_t pid, ProcessType pt, double time_of_or, const ParticleList &plist)
 Store history information. More...
 
const FourVectormomentum () const
 Get the particle's 4-momentum. More...
 
void set_4momentum (const FourVector &momentum_vector)
 Set the particle's 4-momentum directly. More...
 
void set_4momentum (double mass, const ThreeVector &mom)
 Set the momentum of the particle given its mass and momentum three-vector. More...
 
void set_4momentum (double mass, double px, double py, double pz)
 Set the momentum of the particle. More...
 
void set_3momentum (const ThreeVector &mom)
 Set the momentum of the particle without modifying the energy. More...
 
const FourVectorposition () const
 Get the particle's position in Minkowski space. More...
 
void set_4position (const FourVector &pos)
 Set the particle's 4-position directly. More...
 
void set_3position (const ThreeVector &pos)
 Set particle's 3-position. More...
 
ParticleData translated (const ThreeVector &delta) const
 Translate the particle position. More...
 
double formation_time () const
 Get the absolute formation time of the particle. More...
 
double begin_formation_time () const
 Get the absolute time, where the cross section scaling factor slowly starts increasing from the given scaling factor to 1. More...
 
void set_formation_time (const double &form_time)
 Set the absolute formation time. More...
 
void set_slow_formation_times (double begin_form_time, double form_time)
 Set the time, when the cross section scaling factor begins, and finishes to increase from the given cross section scaling factor to 1. More...
 
const double & initial_xsec_scaling_factor () const
 Get the initially assigned cross section scaling factor. More...
 
void set_cross_section_scaling_factor (const double &xsec_scal)
 Set the particle's initial cross_section_scaling_factor. More...
 
ThreeVector velocity () const
 Get the velocity 3-vector. More...
 
double inverse_gamma () const
 Get the inverse of the gamma factor from the current velocity of the particle. More...
 
void boost (const ThreeVector &v)
 Apply a full Lorentz boost of momentum and position. More...
 
void boost_momentum (const ThreeVector &v)
 Apply a Lorentz-boost to only the momentum. More...
 
bool operator== (const ParticleData &a) const
 Check whether two particles have the same id. More...
 
bool operator< (const ParticleData &a) const
 Check if this particle has a smaller id than another particle. More...
 
bool operator== (int id_a) const
 Check if the particle has a given id. More...
 
bool operator< (int id_a) const
 Check whether the particle's id is smaller than the given id. More...
 
 ParticleData (const ParticleType &ptype, int uid, int index)
 Construct a particle with the given type, id and index in Particles. More...
 
double xsec_scaling_factor (double delta_time=0.) const
 Return the cross section scaling factor at a given time. More...
 

Static Public Attributes

static double formation_power_ = 0.0
 Power with which the cross section scaling factor grows in time. More...
 

Private Member Functions

 ParticleData ()=default
 Default constructor. More...
 
void copy_to (ParticleData &dst) const
 Copies some information of the particle to the given particle dst. More...
 

Private Attributes

int32_t id_ = -1
 Each particle has a unique identifier. More...
 
unsigned index_ = std::numeric_limits<unsigned>::max()
 Internal index in the Particles list. More...
 
ParticleTypePtr type_
 A reference to the ParticleType object for this particle (this contains all the static information). More...
 
bool hole_ = false
 If true, the object is an entry in Particles::data_ and does not hold valid particle data. More...
 
FourVector momentum_
 momenta of the particle: x0, x1, x2, x3 as E, px, py, pz More...
 
FourVector position_
 position in space: x0, x1, x2, x3 as t, x, y, z More...
 
double formation_time_ = 0.0
 Formation time at which the particle is fully formed given as an absolute value in the computational frame. More...
 
double begin_formation_time_ = 0.0
 time when the cross section scaling factor starts to increase to 1 More...
 
double initial_xsec_scaling_factor_ = 1.0
 Initial cross section scaling factor. More...
 
HistoryData history_
 history information More...
 

Friends

class Particles
 

Constructor & Destructor Documentation

◆ ParticleData() [1/3]

smash::ParticleData::ParticleData ( const ParticleType particle_type,
int  unique_id = -1 
)
inlineexplicit

Create a new particle with the given particle_type and optionally a specific unique_id.

All other values are initialized to unphysical values.

Parameters
[in]particle_typeType of particle to be created
[in]unique_idid of particle to be created

Definition at line 63 of file particledata.h.

64  : id_(unique_id), type_(&particle_type) {}

◆ ParticleData() [2/3]

smash::ParticleData::ParticleData ( const ParticleType ptype,
int  uid,
int  index 
)
inline

Construct a particle with the given type, id and index in Particles.

This constructor may only be called (directly or indirectly) from Particles. This constructor should be private, but can't be in order to support vector::emplace_back.

Parameters
[in]ptypeType of the particle to be constructed
[in]uidid of the particle to be constructed
[in]indexindex of the particle to be constructed

Definition at line 355 of file particledata.h.

356  : id_(uid), index_(index), type_(&ptype) {}

◆ ParticleData() [3/3]

smash::ParticleData::ParticleData ( )
privatedefault

Default constructor.

Member Function Documentation

◆ id()

int32_t smash::ParticleData::id ( ) const
inline

Get the id of the particle.

Returns
particle id

Definition at line 70 of file particledata.h.

70 { return id_; }
Here is the caller graph for this function:

◆ set_id()

void smash::ParticleData::set_id ( int  i)
inline

Set id of the particle.

Parameters
[in]iid to be assigned to the particle

Definition at line 75 of file particledata.h.

75 { id_ = i; }

◆ pdgcode()

PdgCode smash::ParticleData::pdgcode ( ) const
inline

Get the pdgcode of the particle.

Returns
pdgcode of the particle

Definition at line 81 of file particledata.h.

81 { return type_->pdgcode(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_hadron()

bool smash::ParticleData::is_hadron ( ) const
inline

Returns
true if this is a baryon, antibaryon or meson.

Definition at line 85 of file particledata.h.

85 { return type_->is_hadron(); }
Here is the call graph for this function:

◆ is_baryon()

bool smash::ParticleData::is_baryon ( ) const
inline

Returns
whether this PDG code identifies a baryon.

Definition at line 88 of file particledata.h.

88 { return pdgcode().is_baryon(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_nucleus()

bool smash::ParticleData::is_nucleus ( ) const
inline

Returns
true if this is a nucleus, false otherwise

Definition at line 91 of file particledata.h.

91 { return pdgcode().is_nucleus(); }
Here is the call graph for this function:

◆ is_rho()

bool smash::ParticleData::is_rho ( ) const
inline

Returns
whether this is a rho meson (rho+/rho0/rho-)

Definition at line 94 of file particledata.h.

94 { return type_->is_rho(); }
Here is the call graph for this function:

◆ pole_mass()

double smash::ParticleData::pole_mass ( ) const
inline

Get the particle's pole mass ("on-shell").

Returns
pole mass of the particle [GeV]

Definition at line 99 of file particledata.h.

99 { return type_->mass(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ effective_mass()

double smash::ParticleData::effective_mass ( ) const

Get the particle's effective mass.

Determined from the 4-momentum \(m=\sqrt{p_\mu p^\mu}\). Possibly "off-shell".

Returns
Effective mass [GeV]

Definition at line 21 of file particledata.cc.

21  {
22  const double m_pole = pole_mass();
23  if (m_pole < really_small) {
24  // prevent numerical problems with massless or very light particles
25  return m_pole;
26  } else {
27  return momentum().abs();
28  }
29 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ type()

const ParticleType& smash::ParticleData::type ( ) const
inline

Get the type of the particle.

Returns
ParticleType object associated to this particle.

Definition at line 112 of file particledata.h.

112 { return *type_; }
Here is the caller graph for this function:

◆ id_process()

uint32_t smash::ParticleData::id_process ( ) const
inline

Get the id of the last action.

Returns
id of particle's latest collision

Definition at line 118 of file particledata.h.

118 { return history_.id_process; }
Here is the caller graph for this function:

◆ get_history()

HistoryData smash::ParticleData::get_history ( ) const
inline

Get history information.

Returns
particle history struct

Definition at line 123 of file particledata.h.

123 { return history_; }
Here is the caller graph for this function:

◆ set_history()

void smash::ParticleData::set_history ( int  ncoll,
uint32_t  pid,
ProcessType  pt,
double  time_of_or,
const ParticleList &  plist 
)

Store history information.

The history contains the type of process and possibly the PdgCodes of the parent particles (plist). Note that history is not set for dileptons and photons.

Parameters
[in]ncollparticle's number of collisions
[in]pidid of the particle's latest process
[in]ptprocess type of the particle's latest process
[in]time_of_ortime of latest collision [fm]
[in]plistlist of parent particles

Definition at line 31 of file particledata.cc.

33  {
34  if (pt != ProcessType::Wall) {
36  history_.time_last_collision = time_last_coll;
37  }
38  history_.id_process = pid;
40  switch (pt) {
41  case ProcessType::Decay:
42  case ProcessType::Wall:
43  // only store one parent
44  history_.p1 = plist[0].pdgcode();
45  history_.p2 = 0x0;
46  break;
49  // Parent particles are not updated by the elastic scatterings or
50  // hypersurface crossings
51  break;
61  // store two parent particles
62  history_.p1 = plist[0].pdgcode();
63  history_.p2 = plist[1].pdgcode();
64  break;
66  case ProcessType::None:
67  // nullify parents
68  history_.p1 = 0x0;
69  history_.p2 = 0x0;
70  break;
71  }
72 }

◆ momentum()

const FourVector& smash::ParticleData::momentum ( ) const
inline

Get the particle's 4-momentum.

Returns
particle's 4-momentum [GeV]

Definition at line 142 of file particledata.h.

142 { return momentum_; }
Here is the caller graph for this function:

◆ set_4momentum() [1/3]

void smash::ParticleData::set_4momentum ( const FourVector momentum_vector)
inline

Set the particle's 4-momentum directly.

Parameters
[in]momentum_vector4-vector \(p^\mu = (E,\vec{p})^T\)

Definition at line 148 of file particledata.h.

148  {
149  momentum_ = momentum_vector;
150  }
Here is the caller graph for this function:

◆ set_4momentum() [2/3]

void smash::ParticleData::set_4momentum ( double  mass,
const ThreeVector mom 
)
inline

Set the momentum of the particle given its mass and momentum three-vector.

Parameters
[in]massthe mass of the particle (without E_kin contribution) [GeV]
[in]momthe three-momentum of the particle [GeV]

Definition at line 158 of file particledata.h.

158  {
159  momentum_ = FourVector(std::sqrt(mass * mass + mom * mom), mom);
160  }

◆ set_4momentum() [3/3]

void smash::ParticleData::set_4momentum ( double  mass,
double  px,
double  py,
double  pz 
)
inline

Set the momentum of the particle.

Parameters
[in]massthe mass of the particle (without E_kin contribution) [GeV]
[in]pxx-component of the momentum [GeV]
[in]pyy-component of the momentum [GeV]
[in]pzz-component of the momentum [GeV]

Definition at line 170 of file particledata.h.

170  {
171  momentum_ = FourVector(std::sqrt(mass * mass + px * px + py * py + pz * pz),
172  px, py, pz);
173  }

◆ set_3momentum()

void smash::ParticleData::set_3momentum ( const ThreeVector mom)
inline

Set the momentum of the particle without modifying the energy.

WARNING: Mass gets modified.

Parameters
[in]mommomentum 3-vector [GeV]

Definition at line 180 of file particledata.h.

180  {
181  momentum_ = FourVector(momentum_.x0(), mom);
182  }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ position()

const FourVector& smash::ParticleData::position ( ) const
inline

Get the particle's position in Minkowski space.

Returns
particle's position 4-vector

Definition at line 188 of file particledata.h.

188 { return position_; }
Here is the caller graph for this function:

◆ set_4position()

void smash::ParticleData::set_4position ( const FourVector pos)
inline

Set the particle's 4-position directly.

Parameters
[in]posposition 4-vector

Definition at line 193 of file particledata.h.

193 { position_ = pos; }
Here is the caller graph for this function:

◆ set_3position()

void smash::ParticleData::set_3position ( const ThreeVector pos)
inline

Set particle's 3-position.

The time component is not changed

Parameters
[in]posposition 3-vector

Definition at line 200 of file particledata.h.

200  {
201  position_ = FourVector(position_.x0(), pos);
202  }
Here is the call graph for this function:

◆ translated()

ParticleData smash::ParticleData::translated ( const ThreeVector delta) const
inline

Translate the particle position.

Parameters
[in]delta3-vector by which the particle is translated [fm]

Definition at line 208 of file particledata.h.

208  {
209  ParticleData p = *this;
210  p.position_[1] += delta[0];
211  p.position_[2] += delta[1];
212  p.position_[3] += delta[2];
213  return p;
214  }

◆ formation_time()

double smash::ParticleData::formation_time ( ) const
inline

Get the absolute formation time of the particle.

Returns
particle's formation time

Definition at line 220 of file particledata.h.

220 { return formation_time_; }
Here is the caller graph for this function:

◆ begin_formation_time()

double smash::ParticleData::begin_formation_time ( ) const
inline

Get the absolute time, where the cross section scaling factor slowly starts increasing from the given scaling factor to 1.

Returns
time, when scaling factor starts increasing

Definition at line 226 of file particledata.h.

226 { return begin_formation_time_; }

◆ set_formation_time()

void smash::ParticleData::set_formation_time ( const double &  form_time)
inline

Set the absolute formation time.

The particle's cross section scaling factor will be a Heavyside fuction of time.

Parameters
[in]form_timeabsolute formation time

Definition at line 235 of file particledata.h.

235  {
236  formation_time_ = form_time;
237  // cross section scaling factor will be a step function in time
238  begin_formation_time_ = form_time;
239  }
Here is the caller graph for this function:

◆ set_slow_formation_times()

void smash::ParticleData::set_slow_formation_times ( double  begin_form_time,
double  form_time 
)
inline

Set the time, when the cross section scaling factor begins, and finishes to increase from the given cross section scaling factor to 1.

The cross section will only grow slowly, if the option is used.

Parameters
[in]begin_form_timetime when the cross section starts to increase
[in]form_timetime when the cross section reaches 1

Definition at line 249 of file particledata.h.

249  {
250  begin_formation_time_ = begin_form_time;
251  formation_time_ = form_time;
252  }

◆ initial_xsec_scaling_factor()

const double& smash::ParticleData::initial_xsec_scaling_factor ( ) const
inline

Get the initially assigned cross section scaling factor.

Depending on the config, the cross section scaling factor might change with time, while this value will not be updated.

Returns
particle's initially assigned cross section scaling factor

Definition at line 262 of file particledata.h.

262  {
264  }

◆ set_cross_section_scaling_factor()

void smash::ParticleData::set_cross_section_scaling_factor ( const double &  xsec_scal)
inline

Set the particle's initial cross_section_scaling_factor.

All cross sections of this particle are scaled down by this factor until the formation time is over.

If the particle formation power is set to be positive, this will only be the initial scaling factor, while the actual scaling factor grows with time.

Parameters
[in]xsec_scalcross section scaling factor

Definition at line 277 of file particledata.h.

277  {
278  initial_xsec_scaling_factor_ = xsec_scal;
279  }
Here is the caller graph for this function:

◆ velocity()

ThreeVector smash::ParticleData::velocity ( ) const
inline

Get the velocity 3-vector.

Returns
3-velocity of the particle

Definition at line 285 of file particledata.h.

285 { return momentum_.velocity(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ inverse_gamma()

double smash::ParticleData::inverse_gamma ( ) const
inline

Get the inverse of the gamma factor from the current velocity of the particle.

\[\frac{1}{\gamma}=\sqrt{1-v^2}\]

This functions is more efficient than calculating the gamma factor from velocity, since the velocity function must execute three divisions (for every space component of the momentum vector).

Returns
inverse gamma factor

Definition at line 299 of file particledata.h.

299  {
300  return std::sqrt(1. - momentum_.sqr3() / (momentum_.x0() * momentum_.x0()));
301  }
Here is the call graph for this function:

◆ boost()

void smash::ParticleData::boost ( const ThreeVector v)
inline

Apply a full Lorentz boost of momentum and position.

Parameters
[in]vboost 3-velocity

Definition at line 307 of file particledata.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ boost_momentum()

void smash::ParticleData::boost_momentum ( const ThreeVector v)
inline

Apply a Lorentz-boost to only the momentum.

Parameters
[in]vboost 3-veloctity

Definition at line 316 of file particledata.h.

316  {
318  }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator==() [1/2]

bool smash::ParticleData::operator== ( const ParticleData a) const
inline

Check whether two particles have the same id.

Parameters
[in]aparticle to compare to
Returns
whether the particles have the same id

Definition at line 325 of file particledata.h.

325 { return this->id_ == a.id_; }

◆ operator<() [1/2]

bool smash::ParticleData::operator< ( const ParticleData a) const
inline

Check if this particle has a smaller id than another particle.

Parameters
[in]aparticle to compare to
Returns
whether this particle has a smaller id than other particle

Definition at line 331 of file particledata.h.

331 { return this->id_ < a.id_; }

◆ operator==() [2/2]

bool smash::ParticleData::operator== ( int  id_a) const
inline

Check if the particle has a given id.

Parameters
[in]id_aid to compare to
Returns
whether the particle has the given id

Definition at line 338 of file particledata.h.

338 { return this->id_ == id_a; }

◆ operator<() [2/2]

bool smash::ParticleData::operator< ( int  id_a) const
inline

Check whether the particle's id is smaller than the given id.

Parameters
[in]id_anumber to compare particle's id to

Definition at line 343 of file particledata.h.

343 { return this->id_ < id_a; }

◆ xsec_scaling_factor()

double smash::ParticleData::xsec_scaling_factor ( double  delta_time = 0.) const

Return the cross section scaling factor at a given time.

Parameters
[in]delta_timescaling factor at current time plus this time will be returned.
Returns
the cross section scaling factor at a specified time.

Definition at line 74 of file particledata.cc.

74  {
75  double time_of_interest = position_.x0() + delta_time;
76  // cross section scaling factor at the time_of_interest
77  double scaling_factor;
78 
79  if (formation_power_ <= 0.) {
80  // use a step function to form particles
81  if (time_of_interest < formation_time_) {
82  // particles will not be fully formed at time of interest
83  scaling_factor = initial_xsec_scaling_factor_;
84  } else {
85  // particles are fully formed at time of interest
86  scaling_factor = 1.;
87  }
88  } else {
89  // use smooth function to scale cross section (unless particles are already
90  // fully formed at desired time or will start to form later)
91  if (formation_time_ <= time_of_interest) {
92  // particles are fully formed when colliding
93  scaling_factor = 1.;
94  } else if (begin_formation_time_ >= time_of_interest) {
95  // particles will start formimg later
96  scaling_factor = initial_xsec_scaling_factor_;
97  } else {
98  // particles are in the process of formation at the given time
99  scaling_factor =
102  std::pow((time_of_interest - begin_formation_time_) /
105  }
106  }
107  return scaling_factor;
108 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_to()

void smash::ParticleData::copy_to ( ParticleData dst) const
inlineprivate

Copies some information of the particle to the given particle dst.

Specifically it avoids to copy id_, index_, and type_.

Parameters
[in]dstparticle values are copied to

Definition at line 381 of file particledata.h.

381  {
382  dst.history_ = history_;
383  dst.momentum_ = momentum_;
384  dst.position_ = position_;
385  dst.formation_time_ = formation_time_;
386  dst.initial_xsec_scaling_factor_ = initial_xsec_scaling_factor_;
387  dst.begin_formation_time_ = begin_formation_time_;
388  }
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Particles

friend class Particles
friend

Definition at line 371 of file particledata.h.

Member Data Documentation

◆ formation_power_

double smash::ParticleData::formation_power_ = 0.0
static

Power with which the cross section scaling factor grows in time.

Definition at line 368 of file particledata.h.

◆ id_

int32_t smash::ParticleData::id_ = -1
private

Each particle has a unique identifier.

This identifier is used for identifying the particle in the output files. It is specifically not used for searching for ParticleData objects in lists of particles, though it may be used to identify two ParticleData objects as referencing the same particle. This is why the comparison operators depend only on the id_ member.

Definition at line 398 of file particledata.h.

◆ index_

unsigned smash::ParticleData::index_ = std::numeric_limits<unsigned>::max()
private

Internal index in the Particles list.

This number is used to find the Experiment-wide original of this copy.

The value is read and written from the Particles class.

See also
Particles::data_

Definition at line 408 of file particledata.h.

◆ type_

ParticleTypePtr smash::ParticleData::type_
private

A reference to the ParticleType object for this particle (this contains all the static information).

Default-initialized with an invalid index.

Definition at line 414 of file particledata.h.

◆ hole_

bool smash::ParticleData::hole_ = false
private

If true, the object is an entry in Particles::data_ and does not hold valid particle data.

Specifically iterations over Particles must skip objects with hole_ == true. All other ParticleData instances should set this member to false.

See also
Particles::data_

Definition at line 428 of file particledata.h.

◆ momentum_

FourVector smash::ParticleData::momentum_
private

momenta of the particle: x0, x1, x2, x3 as E, px, py, pz

Definition at line 431 of file particledata.h.

◆ position_

FourVector smash::ParticleData::position_
private

position in space: x0, x1, x2, x3 as t, x, y, z

Definition at line 433 of file particledata.h.

◆ formation_time_

double smash::ParticleData::formation_time_ = 0.0
private

Formation time at which the particle is fully formed given as an absolute value in the computational frame.

Definition at line 437 of file particledata.h.

◆ begin_formation_time_

double smash::ParticleData::begin_formation_time_ = 0.0
private

time when the cross section scaling factor starts to increase to 1

Definition at line 439 of file particledata.h.

◆ initial_xsec_scaling_factor_

double smash::ParticleData::initial_xsec_scaling_factor_ = 1.0
private

Initial cross section scaling factor.

1 by default, since a particle is fully formed in this case.

Definition at line 444 of file particledata.h.

◆ history_

HistoryData smash::ParticleData::history_
private

history information

Definition at line 446 of file particledata.h.


The documentation for this class was generated from the following files:
smash::ParticleData::id_
int32_t id_
Each particle has a unique identifier.
Definition: particledata.h:398
smash::ProcessType::StringHard
hard string process involving 2->2 QCD process by PYTHIA.
smash::ParticleData::momentum
const FourVector & momentum() const
Get the particle's 4-momentum.
Definition: particledata.h:142
smash::HistoryData::p1
PdgCode p1
PdgCode of the first parent particles.
Definition: particledata.h:39
smash::ParticleData::history_
HistoryData history_
history information
Definition: particledata.h:446
smash::HistoryData::collisions_per_particle
int32_t collisions_per_particle
Collision counter per particle, zero only for initially present particles.
Definition: particledata.h:26
smash::ParticleData::pole_mass
double pole_mass() const
Get the particle's pole mass ("on-shell").
Definition: particledata.h:99
smash::ParticleData::type_
ParticleTypePtr type_
A reference to the ParticleType object for this particle (this contains all the static information).
Definition: particledata.h:414
smash::ProcessType::Decay
resonance decays
smash::ProcessType::StringSoftDoubleDiffractive
double diffractive. Two strings are formed, one from A and one from B.
smash::ParticleData::ParticleData
ParticleData()=default
Default constructor.
smash::ProcessType::StringSoftNonDiffractive
non-diffractive. Two strings are formed both have ends in A and B.
smash::ParticleData::formation_time_
double formation_time_
Formation time at which the particle is fully formed given as an absolute value in the computational ...
Definition: particledata.h:437
smash::ParticleType::mass
double mass() const
Definition: particletype.h:144
smash::PdgCode::is_nucleus
bool is_nucleus() const
Definition: pdgcode.h:288
smash::ParticleData::pdgcode
PdgCode pdgcode() const
Get the pdgcode of the particle.
Definition: particledata.h:81
smash::ParticleType::pdgcode
PdgCode pdgcode() const
Definition: particletype.h:156
smash::ProcessType::TwoToTwo
2->2 inelastic scattering
smash::HistoryData::process_type
ProcessType process_type
type of the last action
Definition: particledata.h:30
smash::ProcessType::StringSoftSingleDiffractiveXB
single diffractive AB->XB.
smash::ParticleData::set_4momentum
void set_4momentum(const FourVector &momentum_vector)
Set the particle's 4-momentum directly.
Definition: particledata.h:148
smash::HistoryData::time_last_collision
double time_last_collision
Time of the last action (excluding walls), time of kinetic freeze_out for HBT analysis this time shou...
Definition: particledata.h:37
smash::really_small
constexpr double really_small
Numerical error tolerance.
Definition: constants.h:37
smash::ProcessType::Thermalization
forced thermalization, many particles are replaced by a thermalized ensemble
smash::ProcessType::Wall
box wall crossing
smash::ParticleData::initial_xsec_scaling_factor_
double initial_xsec_scaling_factor_
Initial cross section scaling factor.
Definition: particledata.h:444
smash::FourVector::x0
double x0() const
Definition: fourvector.h:303
smash::ParticleType::is_hadron
bool is_hadron() const
Definition: particletype.h:194
smash::ParticleData::position_
FourVector position_
position in space: x0, x1, x2, x3 as t, x, y, z
Definition: particledata.h:433
smash::ParticleData::begin_formation_time_
double begin_formation_time_
time when the cross section scaling factor starts to increase to 1
Definition: particledata.h:439
smash::ParticleData::momentum_
FourVector momentum_
momenta of the particle: x0, x1, x2, x3 as E, px, py, pz
Definition: particledata.h:431
smash::ParticleData::formation_power_
static double formation_power_
Power with which the cross section scaling factor grows in time.
Definition: particledata.h:368
smash::HistoryData::id_process
int32_t id_process
id of the last action
Definition: particledata.h:28
smash::ProcessType::Bremsstrahlung
bremsstrahlung process: a + b -> a + b + photon
smash::HistoryData::p2
PdgCode p2
PdgCode of the second parent particles.
Definition: particledata.h:41
smash::FourVector::velocity
ThreeVector velocity() const
Get the velocity (3-vector divided by zero component).
Definition: fourvector.h:323
smash::ParticleType::is_rho
bool is_rho() const
Definition: particletype.h:218
smash::FourVector::abs
double abs() const
calculate the lorentz invariant absolute value
Definition: fourvector.h:454
smash::ProcessType::StringSoftSingleDiffractiveAX
(41-45) soft string excitations.
smash::ProcessType::StringSoftAnnihilation
a special case of baryon-antibaryon annihilation.
smash::ProcessType::Elastic
elastic scattering: particles remain the same, only momenta change
smash::ParticleData::set_4position
void set_4position(const FourVector &pos)
Set the particle's 4-position directly.
Definition: particledata.h:193
smash::ProcessType::HyperSurfaceCrossing
Hypersurface crossing Particles are removed from the evolution and printed to a separate output to se...
smash::DensityType::None
smash::pdg::p
constexpr int p
Proton.
Definition: pdgcode_constants.h:28
smash::PdgCode::is_baryon
bool is_baryon() const
Definition: pdgcode.h:315
smash::FourVector::lorentz_boost
FourVector lorentz_boost(const ThreeVector &v) const
Returns the FourVector boosted with velocity v.
Definition: fourvector.cc:16
smash::ProcessType::TwoToOne
resonance formation (2->1)
smash::FourVector::sqr3
double sqr3() const
calculate the square of the spatial three-vector
Definition: fourvector.h:464
smash::ParticleData::index_
unsigned index_
Internal index in the Particles list.
Definition: particledata.h:408