Version: SMASH-2.0
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
 
bool is_proton () const
 
bool is_neutron () const
 
bool is_pion () 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 365 of file particledata.h.

366  : 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:

◆ is_proton()

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

Returns
whether this is a proton/anti-proton

Definition at line 97 of file particledata.h.

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

◆ is_neutron()

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

Returns
whether this is a neutron/anti-neutron

Definition at line 100 of file particledata.h.

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

◆ is_pion()

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

Returns
whether this is a pion (pi+/pi0/pi-)

Definition at line 103 of file particledata.h.

103 { return pdgcode().is_pion(); }
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 109 of file particledata.h.

109 { 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 122 of file particledata.h.

122 { 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 128 of file particledata.h.

128 { 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 133 of file particledata.h.

133 { 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;
50  // Parent particles are not updated by the elastic scatterings,
51  // hypersurface crossings or failed string processes
52  break;
63  // store two parent particles
64  history_.p1 = plist[0].pdgcode();
65  history_.p2 = plist[1].pdgcode();
66  break;
70  case ProcessType::None:
71  // nullify parents
72  history_.p1 = 0x0;
73  history_.p2 = 0x0;
74  break;
75  }
76 }

◆ momentum()

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

Get the particle's 4-momentum.

Returns
particle's 4-momentum [GeV]

Definition at line 152 of file particledata.h.

152 { 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 158 of file particledata.h.

158  {
159  momentum_ = momentum_vector;
160  }
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 168 of file particledata.h.

168  {
169  momentum_ = FourVector(std::sqrt(mass * mass + mom * mom), mom);
170  }

◆ 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 180 of file particledata.h.

180  {
181  momentum_ = FourVector(std::sqrt(mass * mass + px * px + py * py + pz * pz),
182  px, py, pz);
183  }

◆ 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 190 of file particledata.h.

190  {
191  momentum_ = FourVector(momentum_.x0(), mom);
192  }
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 198 of file particledata.h.

198 { 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 203 of file particledata.h.

203 { 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 210 of file particledata.h.

210  {
211  position_ = FourVector(position_.x0(), pos);
212  }
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 218 of file particledata.h.

218  {
219  ParticleData p = *this;
220  p.position_[1] += delta[0];
221  p.position_[2] += delta[1];
222  p.position_[3] += delta[2];
223  return p;
224  }

◆ 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 230 of file particledata.h.

230 { 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 236 of file particledata.h.

236 { 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 245 of file particledata.h.

245  {
246  formation_time_ = form_time;
247  // cross section scaling factor will be a step function in time
248  begin_formation_time_ = form_time;
249  }
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 259 of file particledata.h.

259  {
260  begin_formation_time_ = begin_form_time;
261  formation_time_ = form_time;
262  }

◆ 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 272 of file particledata.h.

272  {
274  }
Here is the caller graph for this function:

◆ 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 287 of file particledata.h.

287  {
288  initial_xsec_scaling_factor_ = xsec_scal;
289  }
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 295 of file particledata.h.

295 { 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 309 of file particledata.h.

309  {
310  return std::sqrt(1. - momentum_.sqr3() / (momentum_.x0() * momentum_.x0()));
311  }
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 317 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 326 of file particledata.h.

326  {
328  }
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 335 of file particledata.h.

335 { 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 341 of file particledata.h.

341 { 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 348 of file particledata.h.

348 { 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 353 of file particledata.h.

353 { 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 78 of file particledata.cc.

78  {
79  double time_of_interest = position_.x0() + delta_time;
80  // cross section scaling factor at the time_of_interest
81  double scaling_factor;
82 
83  if (formation_power_ <= 0.) {
84  // use a step function to form particles
85  if (time_of_interest < formation_time_) {
86  // particles will not be fully formed at time of interest
87  scaling_factor = initial_xsec_scaling_factor_;
88  } else {
89  // particles are fully formed at time of interest
90  scaling_factor = 1.;
91  }
92  } else {
93  // use smooth function to scale cross section (unless particles are already
94  // fully formed at desired time or will start to form later)
95  if (formation_time_ <= time_of_interest) {
96  // particles are fully formed when colliding
97  scaling_factor = 1.;
98  } else if (begin_formation_time_ >= time_of_interest) {
99  // particles will start formimg later
100  scaling_factor = initial_xsec_scaling_factor_;
101  } else {
102  // particles are in the process of formation at the given time
103  scaling_factor =
106  std::pow((time_of_interest - begin_formation_time_) /
109  }
110  }
111  return scaling_factor;
112 }
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 391 of file particledata.h.

391  {
392  dst.history_ = history_;
393  dst.momentum_ = momentum_;
394  dst.position_ = position_;
395  dst.formation_time_ = formation_time_;
396  dst.initial_xsec_scaling_factor_ = initial_xsec_scaling_factor_;
397  dst.begin_formation_time_ = begin_formation_time_;
398  }
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Particles

friend class Particles
friend

Definition at line 381 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 378 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 408 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 418 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 424 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 438 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 441 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 443 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 447 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 449 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 454 of file particledata.h.

◆ history_

HistoryData smash::ParticleData::history_
private

history information

Definition at line 456 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:408
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:152
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:456
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:109
smash::ParticleData::type_
ParticleTypePtr type_
A reference to the ParticleType object for this particle (this contains all the static information).
Definition: particledata.h:424
smash::ProcessType::MultiParticleThreeToTwo
smash::ProcessType::Decay
resonance decay
smash::PdgCode::is_pion
bool is_pion() const
Definition: pdgcode.h:381
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:447
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:158
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::PdgCode::is_proton
bool is_proton() const
Definition: pdgcode.h:327
smash::ProcessType::Thermalization
forced thermalization, many particles are replaced by a thermalized ensemble
smash::ProcessType::MultiParticleThreeMesonsToOne
multi particle scattering
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:454
smash::ProcessType::FailedString
Soft String NNbar annihilation process can fail by lack of energy.
smash::FourVector::x0
double x0() const
Definition: fourvector.h:303
smash::ParticleType::is_hadron
bool is_hadron() const
Definition: particletype.h:197
smash::ParticleData::position_
FourVector position_
position in space: x0, x1, x2, x3 as t, x, y, z
Definition: particledata.h:443
smash::ParticleData::begin_formation_time_
double begin_formation_time_
time when the cross section scaling factor starts to increase to 1
Definition: particledata.h:449
smash::ParticleData::momentum_
FourVector momentum_
momenta of the particle: x0, x1, x2, x3 as E, px, py, pz
Definition: particledata.h:441
smash::ParticleData::formation_power_
static double formation_power_
Power with which the cross section scaling factor grows in time.
Definition: particledata.h:378
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::PdgCode::is_neutron
bool is_neutron() const
Definition: pdgcode.h:333
smash::ParticleType::is_rho
bool is_rho() const
Definition: particletype.h:221
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:203
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:418
smash::ProcessType::TwoToThree
2->3 scattering