Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
Loading...
Searching...
No Matches
Garfield::TrackBichsel Class Reference

Generate tracks using differential cross-sections for silicon computed by Hans Bichsel. More...

#include <TrackBichsel.hh>

Inheritance diagram for Garfield::TrackBichsel:
Garfield::Track

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 ( $\beta = v/c$) of the particle.
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 $\beta\gamma$ of the projectile.
double GetBeta () const
 Return the speed ( $\beta = v/c$) of the projectile.
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, NEnergyBinsm_dfdE
 Optical oscillator strength density.
std::array< double, NEnergyBinsm_eps1
 Real part of the dielectric function.
std::array< double, NEnergyBinsm_eps2
 Imaginary part of the dielectric function.
std::array< double, NEnergyBinsm_int
 Integral over the generalised oscillator strength density.
std::array< double, NEnergyBinsm_k1
 Lower limit of the integral over the GOS.
std::array< double, NCdfBinsm_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< Clusterm_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
ViewDriftm_viewer = nullptr
bool m_debug = false
size_t m_plotId = 0

Detailed Description

Generate tracks using differential cross-sections for silicon computed by Hans Bichsel.

References:

Definition at line 18 of file TrackBichsel.hh.

Constructor & Destructor Documentation

◆ TrackBichsel() [1/2]

Garfield::TrackBichsel::TrackBichsel ( )
inline

Default constructor.

Definition at line 26 of file TrackBichsel.hh.

26: TrackBichsel(nullptr) {}
TrackBichsel()
Default constructor.

◆ TrackBichsel() [2/2]

Garfield::TrackBichsel::TrackBichsel ( Sensor * sensor)

Constructor.

◆ ~TrackBichsel()

virtual Garfield::TrackBichsel::~TrackBichsel ( )
inlinevirtual

Destructor.

Definition at line 30 of file TrackBichsel.hh.

30{}

Member Function Documentation

◆ ComputeCrossSection()

bool Garfield::TrackBichsel::ComputeCrossSection ( )

◆ GetClusterDensity()

double Garfield::TrackBichsel::GetClusterDensity ( )
overridevirtual

Get the cluster density (number of ionizing collisions per cm or inverse mean free path for ionization).

Reimplemented from Garfield::Track.

◆ GetClusters()

const std::vector< Cluster > & Garfield::TrackBichsel::GetClusters ( ) const
inline

Definition at line 35 of file TrackBichsel.hh.

35{ return m_clusters; }
std::vector< Cluster > m_clusters

◆ GetStoppingPower()

double Garfield::TrackBichsel::GetStoppingPower ( )
overridevirtual

Get the stopping power (mean energy loss [eV] per cm).

Reimplemented from Garfield::Track.

◆ Initialise()

bool Garfield::TrackBichsel::Initialise ( )

◆ NewTrack()

bool Garfield::TrackBichsel::NewTrack ( const double x0,
const double y0,
const double z0,
const double t0,
const double dx0,
const double dy0,
const double dz0 )
overridevirtual

Calculate a new track starting from (x0, y0, z0) at time t0 in direction (dx0, dy0, dz0).

Implements Garfield::Track.

Member Data Documentation

◆ m_clusters

std::vector<Cluster> Garfield::TrackBichsel::m_clusters
private

Definition at line 76 of file TrackBichsel.hh.

◆ m_conv

double Garfield::TrackBichsel::m_conv = 0.0092456
private

Conversion from optical loss function to oscillator strength density.

Definition at line 64 of file TrackBichsel.hh.

◆ m_dEdx

double Garfield::TrackBichsel::m_dEdx = 0.
private

Stopping power [eV/cm].

Definition at line 71 of file TrackBichsel.hh.

◆ m_density

double Garfield::TrackBichsel::m_density
private

Density of silicon.

Definition at line 62 of file TrackBichsel.hh.

◆ m_dfdE

std::array<double, NEnergyBins> Garfield::TrackBichsel::m_dfdE
private

Optical oscillator strength density.

Definition at line 48 of file TrackBichsel.hh.

◆ m_E

std::array<double, NEnergyBins + 1> Garfield::TrackBichsel::m_E
private

Definition at line 45 of file TrackBichsel.hh.

◆ m_eps1

std::array<double, NEnergyBins> Garfield::TrackBichsel::m_eps1
private

Real part of the dielectric function.

Definition at line 50 of file TrackBichsel.hh.

◆ m_eps2

std::array<double, NEnergyBins> Garfield::TrackBichsel::m_eps2
private

Imaginary part of the dielectric function.

Definition at line 52 of file TrackBichsel.hh.

◆ m_imfp

double Garfield::TrackBichsel::m_imfp = 0.
private

Inverse mean free path [cm-1].

Definition at line 69 of file TrackBichsel.hh.

◆ m_initialised

bool Garfield::TrackBichsel::m_initialised = false
private

Definition at line 66 of file TrackBichsel.hh.

◆ m_int

std::array<double, NEnergyBins> Garfield::TrackBichsel::m_int
private

Integral over the generalised oscillator strength density.

Definition at line 54 of file TrackBichsel.hh.

◆ m_k1

std::array<double, NEnergyBins> Garfield::TrackBichsel::m_k1
private

Lower limit of the integral over the GOS.

Definition at line 56 of file TrackBichsel.hh.

◆ m_speed

double Garfield::TrackBichsel::m_speed = SpeedOfLight
private

Particle speed.

Definition at line 74 of file TrackBichsel.hh.

◆ m_tab

std::array<double, NCdfBins> Garfield::TrackBichsel::m_tab
private

Definition at line 59 of file TrackBichsel.hh.

◆ NCdfBins

size_t Garfield::TrackBichsel::NCdfBins = 10000
staticconstexprprivate

Definition at line 58 of file TrackBichsel.hh.

◆ NEnergyBins

size_t Garfield::TrackBichsel::NEnergyBins = 1250
staticconstexprprivate

Definition at line 44 of file TrackBichsel.hh.


The documentation for this class was generated from the following file: