Garfield++ 4.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <particle_def.h>
Public Member Functions | |
particle_def () | |
Default constructor. | |
particle_def (const std::string &fname, const std::string &fnotation, double fmass, double fcharge, int flepton_n, int fbarion_n, float fspin, const spin_def &fisospin) | |
Constructor. | |
particle_def (const std::string &fname, const std::string &fnotation, double fmass, double fcharge, int flepton_n, int fbarion_n, float fspin, float fisospin_total, float fisospin_proj) | |
Constructor. | |
particle_def (const std::string &fname, const std::string &fnotation, particle_def &p) | |
Constructor to create an anti-particle. | |
particle_def (const particle_def &f) | |
Copy constructor. | |
particle_def & | operator= (const particle_def &f)=default |
Assignment operator. | |
~particle_def () | |
Destructor. | |
particle_def | anti_particle (const particle_def &p) |
Function for making an anti-particle. | |
void | print (std::ostream &file, int l) const |
void | set_mass (const double m) |
void | set_charge (const double z) |
void | verify () |
Check that there is no particle with the same name in the container. | |
Static Public Member Functions | |
static void | printall (std::ostream &file) |
static std::list< particle_def * > & | get_logbook () |
static const std::list< particle_def * > & | get_const_logbook () |
static particle_def * | get_particle_def (const std::string &fnotation) |
Public Attributes | |
std::string | name = "none" |
std::string | notation = "none" |
Short name to make data summary files short. | |
double | mass = 0. |
double | charge = 0. |
int | lepton_n = 0 |
int | baryon_n = 0 |
float | spin = 0. |
spin_def | isospin |
Definition of particles. Only the basic information: the name, the notation, the mass, the charge, and other auxiliary data.
The organization is similar to AtomDef from directory matter, with the exception that the internal data are not declared as private. Of course, the user should not change them.
The principle of definitions of particles is dictionary or a database: the particles are not repeated, each particle is presented in the total system no more than one time. The system knows each particle presented in it. The particle characteristics can be obtained by literal notation. The system declines the secondary initialization. The copying is not declined. When the user program wants to refer to particle, it has to use either char* (string) notation, or pointer (or reference) to one of these objects. The user pogram can initialize the new particles. The standard particles are initialized right here, below.
1999 - 2004, I. Smirnov
Definition at line 42 of file particle_def.h.
|
inline |
Default constructor.
Definition at line 55 of file particle_def.h.
Referenced by anti_particle().
Heed::particle_def::particle_def | ( | const std::string & | fname, |
const std::string & | fnotation, | ||
double | fmass, | ||
double | fcharge, | ||
int | flepton_n, | ||
int | fbarion_n, | ||
float | fspin, | ||
const spin_def & | fisospin | ||
) |
Constructor.
Definition at line 78 of file particle_def.cpp.
|
inline |
Constructor.
Definition at line 63 of file particle_def.h.
Heed::particle_def::particle_def | ( | const std::string & | fname, |
const std::string & | fnotation, | ||
particle_def & | p | ||
) |
Constructor to create an anti-particle.
Definition at line 94 of file particle_def.cpp.
|
inline |
|
inline |
particle_def Heed::particle_def::anti_particle | ( | const particle_def & | p | ) |
Function for making an anti-particle.
Definition at line 106 of file particle_def.cpp.
Referenced by particle_def().
|
static |
Definition at line 117 of file particle_def.cpp.
|
static |
Initialize the logbook at the first request and keep it as internal static variable.
Definition at line 112 of file particle_def.cpp.
Referenced by get_const_logbook(), get_particle_def(), particle_def(), Heed::particle_type::particle_type(), printall(), and ~particle_def().
|
static |
Return the address of particle with this name if it is registered in system, or NULL otherwise.
Definition at line 121 of file particle_def.cpp.
|
default |
Assignment operator.
void Heed::particle_def::print | ( | std::ostream & | file, |
int | l | ||
) | const |
Definition at line 133 of file particle_def.cpp.
|
static |
Definition at line 136 of file particle_def.cpp.
void Heed::particle_def::set_charge | ( | const double | z | ) |
void Heed::particle_def::set_mass | ( | const double | m | ) |
Definition at line 129 of file particle_def.cpp.
Referenced by Garfield::TrackHeed::NewTrack().
|
inline |
Check that there is no particle with the same name in the container.
Definition at line 102 of file particle_def.h.
Referenced by particle_def().
int Heed::particle_def::baryon_n = 0 |
Definition at line 51 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), and particle_def().
double Heed::particle_def::charge = 0. |
Definition at line 48 of file particle_def.h.
Referenced by anti_particle(), Heed::eparticle::force(), Heed::operator<<(), particle_def(), and set_charge().
spin_def Heed::particle_def::isospin |
Definition at line 53 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), and particle_def().
int Heed::particle_def::lepton_n = 0 |
Definition at line 50 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), and particle_def().
double Heed::particle_def::mass = 0. |
Definition at line 47 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), particle_def(), Heed::HeedParticle::physics(), Heed::HeedParticle_BGM::physics(), and set_mass().
std::string Heed::particle_def::name = "none" |
Definition at line 44 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), and particle_def().
std::string Heed::particle_def::notation = "none" |
Short name to make data summary files short.
Definition at line 46 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), particle_def(), and Heed::particle_type::print_notation().
float Heed::particle_def::spin = 0. |
Definition at line 52 of file particle_def.h.
Referenced by anti_particle(), Heed::operator<<(), and particle_def().