![]() |
Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
|
Generate tracks based on TRIM output files. More...
#include <TrackTrim.hh>
Classes | |
struct | Cluster |
Public Member Functions | |
TrackTrim () | |
Default constructor. | |
TrackTrim (Sensor *sensor) | |
Constructor. | |
virtual | ~TrackTrim () |
Destructor. | |
bool | ReadFile (const std::string &file, const unsigned int nIons=0, const unsigned int nSkip=0) |
Load data from an EXYZ.txt file. | |
void | Print () |
Print a summary of the available TRIM data. | |
void | SetCharge (const double q) |
Set the projectile charge [-]. | |
void | SetWorkFunction (const double w) |
Set the W value [eV]. | |
double | GetWorkFunction () const |
Get the W value [eV]. | |
void | SetFanoFactor (const double f) |
Set the Fano factor. | |
void | UnsetFanoFactor () |
Use the default Fano factor. | |
double | GetFanoFactor () const |
Get the Fano factor. | |
void | EnableStepSizeLimit (const double dmax) |
Set a max. distance between subsequent steps. | |
void | DisableStepSizeLimit () |
Do not reduce the steps with respect to the TRIM input file (default). | |
void | EnableEnergyLossLimit (const double emax) |
Set a max. energy loss per cluster. | |
void | DisableEnergyLossLimit () |
Do not limit the energy loss per cluster (default). | |
void | SetParticle (const std::string &part) override |
Set the type of charged particle. | |
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 |
bool | GetCluster (double &xc, double &yc, double &zc, double &tc, int &nc, double &ec, double &extra) |
Public Member Functions inherited from Garfield::Track | |
Track ()=delete | |
Default constructor. | |
Track (const std::string &name) | |
Constructor. | |
virtual | ~Track () |
Destructor. | |
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. | |
virtual double | GetClusterDensity () |
Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionization). | |
virtual double | GetStoppingPower () |
Get the stopping power (mean energy loss [eV] per cm). | |
void | EnablePlotting (ViewDrift *viewer) |
Switch on plotting. | |
void | DisablePlotting () |
Switch off plotting. | |
void | EnableDebugging () |
Switch on debugging messages. | |
void | DisableDebugging () |
Switch off debugging messages. |
Protected Member Functions | |
void | AddIon (const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z, const std::vector< float > &dedx, const std::vector< float > &ekin) |
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) |
Protected Attributes | |
double | m_work = -1. |
Work function [eV] of the target. | |
bool | m_fset = false |
Has the Fano factor been set? | |
double | m_fano = -1. |
Fano factor [-] of the target. | |
double | m_ekin = 0. |
Projectile energy [eV]. | |
std::vector< std::vector< std::array< float, 6 > > > | m_ions |
List of tracks. | |
size_t | m_ion = 0 |
Index of the current track. | |
std::vector< Cluster > | m_clusters |
Clusters on the current track. | |
size_t | m_cluster = 0 |
Index of the next cluster to be returned. | |
double | m_maxStepSize = -1. |
Step size limit. | |
double | m_maxLossPerStep = -1. |
Energy loss limit per step. | |
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 |
Additional Inherited Members | |
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) |
Generate tracks based on TRIM output files.
Definition at line 15 of file TrackTrim.hh.
|
inline |
Garfield::TrackTrim::TrackTrim | ( | Sensor * | sensor | ) |
Constructor.
|
inlinevirtual |
|
protected |
|
inline |
Do not limit the energy loss per cluster (default).
Each segment in the TRIM input file corresponds to one cluster.
Definition at line 56 of file TrackTrim.hh.
|
inline |
Do not reduce the steps with respect to the TRIM input file (default).
Definition at line 51 of file TrackTrim.hh.
|
inline |
Set a max. energy loss per cluster.
Definition at line 53 of file TrackTrim.hh.
|
inline |
Set a max. distance between subsequent steps.
Definition at line 49 of file TrackTrim.hh.
bool Garfield::TrackTrim::GetCluster | ( | double & | xc, |
double & | yc, | ||
double & | zc, | ||
double & | tc, | ||
int & | nc, | ||
double & | ec, | ||
double & | extra ) |
|
inline |
Definition at line 71 of file TrackTrim.hh.
|
inline |
|
inline |
|
overridevirtual |
Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0, dz0).
Implements Garfield::Track.
void Garfield::TrackTrim::Print | ( | ) |
Print a summary of the available TRIM data.
bool Garfield::TrackTrim::ReadFile | ( | const std::string & | file, |
const unsigned int | nIons = 0, | ||
const unsigned int | nSkip = 0 ) |
Load data from an EXYZ.txt file.
|
inline |
Set the projectile charge [-].
Definition at line 31 of file TrackTrim.hh.
|
inline |
|
overridevirtual |
Set the type of charged particle.
Reimplemented from Garfield::Track.
|
inline |
|
inline |
|
protected |
Index of the next cluster to be returned.
Definition at line 93 of file TrackTrim.hh.
|
protected |
Clusters on the current track.
Definition at line 91 of file TrackTrim.hh.
|
protected |
Projectile energy [eV].
Definition at line 84 of file TrackTrim.hh.
|
protected |
Fano factor [-] of the target.
Definition at line 81 of file TrackTrim.hh.
|
protected |
Has the Fano factor been set?
Definition at line 79 of file TrackTrim.hh.
|
protected |
Index of the current track.
Definition at line 88 of file TrackTrim.hh.
|
protected |
List of tracks.
Definition at line 86 of file TrackTrim.hh.
|
protected |
Energy loss limit per step.
Definition at line 98 of file TrackTrim.hh.
|
protected |
Step size limit.
Definition at line 96 of file TrackTrim.hh.
|
protected |
Work function [eV] of the target.
Definition at line 77 of file TrackTrim.hh.