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

[WIP] Ionization calculation based on MIP program (S. Biagi). More...

#include <TrackElectron.hh>

Inheritance diagram for Garfield::TrackElectron:
Garfield::Track

Classes

struct  Cluster
struct  Parameters

Public Member Functions

 TrackElectron ()
 Constructor.
virtual ~TrackElectron ()
 Destructor.
void SetParticle (const std::string &particle) 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
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).
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 ( $\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.

Static Private Member Functions

static bool Setup (Medium *gas, std::vector< Parameters > &par, std::vector< double > &frac)
static bool Update (const double density, const double beta2, const std::vector< Parameters > &par, const std::vector< double > &frac, std::vector< double > &prob, double &mfp, double &dedx)
static double Delta (const double x, const Parameters &par)
static double Esec (const double e0, const Parameters &par)

Private Attributes

std::vector< Clusterm_clusters
double m_mfp = 0.
double m_dedx = 0.

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

[WIP] Ionization calculation based on MIP program (S. Biagi).

Definition at line 14 of file TrackElectron.hh.

Constructor & Destructor Documentation

◆ TrackElectron()

Garfield::TrackElectron::TrackElectron ( )

Constructor.

◆ ~TrackElectron()

virtual Garfield::TrackElectron::~TrackElectron ( )
inlinevirtual

Destructor.

Definition at line 24 of file TrackElectron.hh.

24{}

Member Function Documentation

◆ Delta()

double Garfield::TrackElectron::Delta ( const double x,
const Parameters & par )
staticprivate

◆ Esec()

double Garfield::TrackElectron::Esec ( const double e0,
const Parameters & par )
staticprivate

◆ GetClusterDensity()

double Garfield::TrackElectron::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::TrackElectron::GetClusters ( ) const
inline

Definition at line 32 of file TrackElectron.hh.

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

◆ GetStoppingPower()

double Garfield::TrackElectron::GetStoppingPower ( )
overridevirtual

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

Reimplemented from Garfield::Track.

◆ NewTrack()

bool Garfield::TrackElectron::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.

◆ SetParticle()

void Garfield::TrackElectron::SetParticle ( const std::string & part)
overridevirtual

Set the type of charged particle.

  • electron,e-
  • positron,e+
  • muon,mu-
  • mu+
  • pion,pi-
  • pi+
  • kaon,K-
  • K+
  • proton,p
  • anti-proton,p-bar
  • deuteron,d
  • alpha

Reimplemented from Garfield::Track.

◆ Setup()

bool Garfield::TrackElectron::Setup ( Medium * gas,
std::vector< Parameters > & par,
std::vector< double > & frac )
staticprivate

◆ Update()

bool Garfield::TrackElectron::Update ( const double density,
const double beta2,
const std::vector< Parameters > & par,
const std::vector< double > & frac,
std::vector< double > & prob,
double & mfp,
double & dedx )
staticprivate

Member Data Documentation

◆ m_clusters

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

Definition at line 55 of file TrackElectron.hh.

◆ m_dedx

double Garfield::TrackElectron::m_dedx = 0.
private

Definition at line 60 of file TrackElectron.hh.

◆ m_mfp

double Garfield::TrackElectron::m_mfp = 0.
private

Definition at line 58 of file TrackElectron.hh.


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