![]() |
Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
|
Generate tracks using differential cross-sections for silicon computed by Hans Bichsel. More...
#include <TrackBichsel.hh>
Classes | |
struct | Cluster |
Public Member Functions | |
TrackBichsel () | |
Default constructor. | |
TrackBichsel (Sensor *sensor) | |
Constructor. | |
virtual | ~TrackBichsel () |
Destructor. | |
bool | NewTrack (const double x0, const double y0, const double z0, const double t0, const double dx0, const double dy0, const double dz0) override |
Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0, dz0). | |
const std::vector< Cluster > & | GetClusters () const |
double | GetClusterDensity () override |
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionization). | |
double | GetStoppingPower () override |
Get the stopping power (mean energy loss [eV] per cm). | |
bool | Initialise () |
bool | ComputeCrossSection () |
Public Member Functions inherited from Garfield::Track | |
Track ()=delete | |
Default constructor. | |
Track (const std::string &name) | |
Constructor. | |
virtual | ~Track () |
Destructor. | |
virtual void | SetParticle (const std::string &part) |
Set the type of charged particle. | |
void | SetEnergy (const double e) |
Set the particle energy. | |
void | SetBetaGamma (const double bg) |
Set the relative momentum of the particle. | |
void | SetBeta (const double beta) |
Set the speed ( ![]() | |
void | SetGamma (const double gamma) |
Set the Lorentz factor of the particle. | |
void | SetMomentum (const double p) |
Set the particle momentum. | |
void | SetKineticEnergy (const double ekin) |
Set the kinetic energy of the particle. | |
double | GetEnergy () const |
Return the particle energy. | |
double | GetBetaGamma () const |
Return the ![]() | |
double | GetBeta () const |
Return the speed ( ![]() | |
double | GetGamma () const |
Return the Lorentz factor of the projectile. | |
double | GetMomentum () const |
Return the particle momentum. | |
double | GetKineticEnergy () const |
Return the kinetic energy of the projectile. | |
double | GetCharge () const |
Get the charge of the projectile. | |
double | GetMass () const |
Get the mass [eV / c2] of the projectile. | |
void | SetSensor (Sensor *s) |
Set the sensor through which to transport the particle. | |
void | EnablePlotting (ViewDrift *viewer) |
Switch on plotting. | |
void | DisablePlotting () |
Switch off plotting. | |
void | EnableDebugging () |
Switch on debugging messages. | |
void | DisableDebugging () |
Switch off debugging messages. |
Private Attributes | |
std::array< double, NEnergyBins+1 > | m_E |
std::array< double, NEnergyBins > | m_dfdE |
Optical oscillator strength density. | |
std::array< double, NEnergyBins > | m_eps1 |
Real part of the dielectric function. | |
std::array< double, NEnergyBins > | m_eps2 |
Imaginary part of the dielectric function. | |
std::array< double, NEnergyBins > | m_int |
Integral over the generalised oscillator strength density. | |
std::array< double, NEnergyBins > | m_k1 |
Lower limit of the integral over the GOS. | |
std::array< double, NCdfBins > | m_tab |
double | m_density |
Density of silicon. | |
double | m_conv = 0.0092456 |
Conversion from optical loss function to oscillator strength density. | |
bool | m_initialised = false |
double | m_imfp = 0. |
Inverse mean free path [cm-1]. | |
double | m_dEdx = 0. |
Stopping power [eV/cm]. | |
double | m_speed = SpeedOfLight |
Particle speed. | |
std::vector< Cluster > | m_clusters |
Static Private Attributes | |
static constexpr size_t | NEnergyBins = 1250 |
static constexpr size_t | NCdfBins = 10000 |
Additional Inherited Members | |
Protected Member Functions inherited from Garfield::Track | |
void | PlotNewTrack (const double x0, const double y0, const double z0) |
void | PlotCluster (const double x0, const double y0, const double z0) |
Static Protected Member Functions inherited from Garfield::Track | |
static std::array< double, 3 > | StepBfield (const double dt, const double qoverm, const double vmag, double bx, double by, double bz, std::array< double, 3 > &dir) |
Protected Attributes inherited from Garfield::Track | |
std::string | m_className = "Track" |
double | m_q = -1. |
int | m_spin = 1 |
double | m_mass |
double | m_energy = 0. |
double | m_beta2 = 1. |
bool | m_isElectron = false |
std::string | m_particleName = "mu-" |
Sensor * | m_sensor = nullptr |
bool | m_isChanged = true |
ViewDrift * | m_viewer = nullptr |
bool | m_debug = false |
size_t | m_plotId = 0 |
Generate tracks using differential cross-sections for silicon computed by Hans Bichsel.
References:
Definition at line 18 of file TrackBichsel.hh.
|
inline |
Garfield::TrackBichsel::TrackBichsel | ( | Sensor * | sensor | ) |
Constructor.
|
inlinevirtual |
bool Garfield::TrackBichsel::ComputeCrossSection | ( | ) |
|
overridevirtual |
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionization).
Reimplemented from Garfield::Track.
|
inline |
Definition at line 35 of file TrackBichsel.hh.
|
overridevirtual |
Get the stopping power (mean energy loss [eV] per cm).
Reimplemented from Garfield::Track.
bool Garfield::TrackBichsel::Initialise | ( | ) |
|
overridevirtual |
Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0, dz0).
Implements Garfield::Track.
|
private |
Definition at line 76 of file TrackBichsel.hh.
|
private |
Conversion from optical loss function to oscillator strength density.
Definition at line 64 of file TrackBichsel.hh.
|
private |
Stopping power [eV/cm].
Definition at line 71 of file TrackBichsel.hh.
|
private |
Density of silicon.
Definition at line 62 of file TrackBichsel.hh.
|
private |
Optical oscillator strength density.
Definition at line 48 of file TrackBichsel.hh.
|
private |
Definition at line 45 of file TrackBichsel.hh.
|
private |
Real part of the dielectric function.
Definition at line 50 of file TrackBichsel.hh.
|
private |
Imaginary part of the dielectric function.
Definition at line 52 of file TrackBichsel.hh.
|
private |
Inverse mean free path [cm-1].
Definition at line 69 of file TrackBichsel.hh.
|
private |
Definition at line 66 of file TrackBichsel.hh.
|
private |
Integral over the generalised oscillator strength density.
Definition at line 54 of file TrackBichsel.hh.
|
private |
Lower limit of the integral over the GOS.
Definition at line 56 of file TrackBichsel.hh.
|
private |
Particle speed.
Definition at line 74 of file TrackBichsel.hh.
|
private |
Definition at line 59 of file TrackBichsel.hh.
|
staticconstexprprivate |
Definition at line 58 of file TrackBichsel.hh.
|
staticconstexprprivate |
Definition at line 44 of file TrackBichsel.hh.