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

Solid crystalline silicon More...

#include <MediumSilicon.hh>

Inheritance diagram for Garfield::MediumSilicon:

Classes

struct  Band

Public Member Functions

 MediumSilicon ()
 Constructor.
virtual ~MediumSilicon ()
 Destructor.
bool IsSemiconductor () const override
void SetDoping (const char type, const double c)
 Set doping concentration [cm-3] and type ('i', 'n', 'p').
void GetDoping (char &type, double &c) const
 Retrieve doping concentration.
void SetTrapCrossSection (const double ecs, const double hcs)
 Trapping cross-sections for electrons and holes.
void SetTrapDensity (const double n)
 Trap density [cm-3], by default set to zero.
void SetTrappingTime (const double etau, const double htau)
 Set time constant for trapping of electrons and holes [ns].
void SetLowFieldMobility (const double mue, const double muh)
 Specify the low field values of the electron and hole mobilities.
void SetLatticeMobilityModel (const std::string &model)
 Set the parameterisation to be used for calculating the lattice mobility model.
void SetLatticeMobilityModelMinimos ()
 Calculate the lattice mobility using the Minimos model.
void SetLatticeMobilityModelSentaurus ()
 Calculate the lattice mobility using the Sentaurus model (default).
void SetLatticeMobilityModelReggiani ()
 Calculate the lattice mobility using the Reggiani model.
void SetDopingMobilityModelMinimos ()
 Use the Minimos model for the doping-dependence of the mobility.
void SetDopingMobilityModelMasetti ()
 Use the Masetti model for the doping-dependence of the mobility (default).
void SetSaturationVelocity (const double vsate, const double vsath)
 Specify the saturation velocities of electrons and holes.
void SetSaturationVelocityModelMinimos ()
 Calculate the saturation velocities using the Minimos model.
void SetSaturationVelocityModelCanali ()
 Calculate the saturation velocities using the Canali model (default).
void SetSaturationVelocityModelReggiani ()
 Calculate the saturation velocities using the Reggiani model.
void SetHighFieldMobilityModel (const std::string &model)
 Set the parameterisation to be used for the drift velocity as function of the electric field.
void SetHighFieldMobilityModelMinimos ()
 Parameterize the high-field mobility using the Minimos model.
void SetHighFieldMobilityModelCanali ()
 Parameterize the high-field mobility using the Canali model (default).
void SetHighFieldMobilityModelReggiani ()
 Parameterize the high-field mobility using the Reggiani model.
void SetHighFieldMobilityModelConstant ()
 Make the velocity proportional to the electric field (no saturation).
void SetImpactIonisationModel (const std::string &model)
 Set the parameterisation to be used for calculating the impact ionisation coefficient.
void SetImpactIonisationModelVanOverstraetenDeMan ()
 Calculate α using the van Overstraeten-de Man model (default).
void SetImpactIonisationModelGrant ()
 Calculate α using the Grant model.
void SetImpactIonisationModelMassey ()
 Calculate α using the Massey model.
void SetImpactIonisationModelOkutoCrowell ()
 Calculate α using the Okuto-Crowell model.
void SetDiffusionScaling (const double d)
 Apply a scaling factor to the diffusion coefficients.
bool SetMaxElectronEnergy (const double e)
double GetMaxElectronEnergy () const
bool Initialise ()
void EnableScatteringRateOutput (const bool on=true)
void EnableNonParabolicity (const bool on=true)
void EnableFullBandDensityOfStates (const bool on=true)
void EnableAnisotropy (const bool on=true)
bool ElectronVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) override
bool ElectronTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) override
bool ElectronAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) override
double ElectronMobility () override
bool HoleVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) override
bool HoleTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) override
bool HoleAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) override
double HoleMobility () override
double GetElectronEnergy (const double px, const double py, const double pz, double &vx, double &vy, double &vz, const int band=0) override
void GetElectronMomentum (const double e, double &px, double &py, double &pz, int &band) override
double GetElectronNullCollisionRate (const int band) override
double GetElectronCollisionRate (const double e, const int band) override
bool ElectronCollision (const double e, int &type, int &level, double &e1, double &dx, double &dy, double &dz, std::vector< Secondary > &secondaries, int &band) override
void ResetCollisionCounters ()
unsigned int GetNumberOfElectronCollisions () const
unsigned int GetNumberOfLevels () const
unsigned int GetNumberOfElectronCollisions (const unsigned int level) const
unsigned int GetNumberOfElectronBands () const
int GetElectronBandPopulation (const int band)
bool GetOpticalDataRange (double &emin, double &emax, const unsigned int i=0) override
bool GetDielectricFunction (const double e, double &eps1, double &eps2, const unsigned int i=0) override
void ComputeSecondaries (const double e0, double &ee, double &eh)

Private Types

enum class  LatticeMobility { Sentaurus = 0 , Minimos , Reggiani }
enum class  DopingMobility { Minimos = 0 , Masetti }
enum class  SaturationVelocity { Minimos = 0 , Canali , Reggiani }
enum class  HighFieldMobility { Minimos = 0 , Canali , Reggiani , Constant }
enum class  ImpactIonisation { VanOverstraeten = 0 , Grant , Massey , Okuto }

Private Member Functions

bool Update ()
void UpdateLatticeMobility ()
void UpdateDopingMobilityMinimos ()
void UpdateDopingMobilityMasetti ()
void UpdateSaturationVelocity ()
void UpdateHighFieldMobilityCanali ()
void UpdateImpactIonisation ()
double ElectronMobility (const double e) const
double ElectronAlpha (const double e) const
double HoleMobility (const double e) const
double HoleAlpha (const double e) const
bool LoadOpticalData (const std::string &filename)
bool ElectronScatteringRates ()
bool HoleScatteringRates ()
bool AcousticScatteringRates (const double rho, const double kbt, const double dp, Band &band)
bool OpticalScatteringRates (const double rho, const double kbt, const double dtk, const double eph, Band &band)
bool IntervalleyScatteringRates (const double rho, const double kbt, const double dtk, const double eph, Band &bndI, Band &bndF, const double zF, const int collType)
bool IonisationRates (const std::vector< double > &p, const std::vector< double > &eth, const std::vector< double > &b, Band &band)
bool ImpurityScatteringRates (const double kbt, Band &band)
void InitialiseDOS ()
void ComputeDOS ()

Private Attributes

std::mutex m_mutex
double m_diffScale = 1.
double m_bandGap = 1.12
char m_dopingType = 'i'
double m_cDop = 0.
double m_eMuLat = 1.35e-6
double m_hMuLat = 0.45e-6
double m_eMu = 1.35e-6
double m_hMu = 0.45e-6
double m_eBetaCanali = 1.109
double m_hBetaCanali = 1.213
double m_eBetaCanaliInv = 1. / 1.109
double m_hBetaCanaliInv = 1. / 1.213
double m_eVs = 1.02e-2
double m_hVs = 0.72e-2
double m_eRs = 1.35e-6 / 1.02e-2
double m_hRs = 0.45e-6 / 0.72e-2
double m_eHallFactor = 1.15
double m_hHallFactor = 0.7
double m_eTrapCs = 1.e-15
double m_hTrapCs = 1.e-15
double m_eTrapDensity = 0.
double m_hTrapDensity = 0.
double m_eTrapTime = 0.
double m_hTrapTime = 0.
double m_eTrapRate = 0.
double m_hTrapRate = 0.
int m_trappingModel = 0
double m_eImpactA0 = 3.318e5
double m_eImpactA1 = 0.703e6
double m_eImpactA2 = 0.
double m_eImpactB0 = 1.135e6
double m_eImpactB1 = 1.231e6
double m_eImpactB2 = 0.
double m_hImpactA0 = 1.582e6
double m_hImpactA1 = 0.671e6
double m_hImpactB0 = 2.036e6
double m_hImpactB1 = 1.693e6
bool m_hasUserMobility = false
bool m_hasUserSaturationVelocity = false
LatticeMobility m_latticeMobilityModel = LatticeMobility::Sentaurus
DopingMobility m_dopingMobilityModel = DopingMobility::Masetti
SaturationVelocity m_saturationVelocityModel = SaturationVelocity::Canali
HighFieldMobility m_highFieldMobilityModel = HighFieldMobility::Canali
ImpactIonisation m_impactIonisationModel = ImpactIonisation::VanOverstraeten
bool m_cfOutput = false
bool m_nonParabolic = true
bool m_fullBandDos = false
bool m_anisotropic = true
std::array< Band, 3 > m_cb
std::vector< size_t > m_cbIndex
Band m_vb
unsigned int m_nCollElectronAcoustic = 0
unsigned int m_nCollElectronOptical = 0
unsigned int m_nCollElectronIntervalley = 0
unsigned int m_nCollElectronImpurity = 0
unsigned int m_nCollElectronIonisation = 0
std::vector< unsigned int > m_nCollElectronDetailed
std::vector< unsigned int > m_nCollElectronBand
double m_eStepDos = 0.
double m_invStepDos = 0.
std::vector< double > m_fbDosV
std::vector< double > m_fbDosC
double m_fbDosMaxV
double m_fbDosMaxC
std::string m_opticalDataFile = "OpticalData_Si.txt"
std::vector< double > m_egamma
std::vector< double > m_eps1
std::vector< double > m_eps2

Detailed Description

Solid crystalline silicon

Definition at line 14 of file MediumSilicon.hh.

Member Enumeration Documentation

◆ DopingMobility

enum class Garfield::MediumSilicon::DopingMobility
strongprivate
Enumerator
Minimos 
Masetti 

Definition at line 181 of file MediumSilicon.hh.

181{ Minimos = 0, Masetti };

◆ HighFieldMobility

Enumerator
Minimos 
Canali 
Reggiani 
Constant 

Definition at line 183 of file MediumSilicon.hh.

183{ Minimos = 0, Canali, Reggiani, Constant };

◆ ImpactIonisation

Enumerator
VanOverstraeten 
Grant 
Massey 
Okuto 

Definition at line 184 of file MediumSilicon.hh.

184{ VanOverstraeten = 0, Grant, Massey, Okuto };

◆ LatticeMobility

enum class Garfield::MediumSilicon::LatticeMobility
strongprivate
Enumerator
Sentaurus 
Minimos 
Reggiani 

Definition at line 180 of file MediumSilicon.hh.

180{ Sentaurus = 0, Minimos, Reggiani };

◆ SaturationVelocity

Enumerator
Minimos 
Canali 
Reggiani 

Definition at line 182 of file MediumSilicon.hh.

182{ Minimos = 0, Canali, Reggiani };

Constructor & Destructor Documentation

◆ MediumSilicon()

Garfield::MediumSilicon::MediumSilicon ( )

Constructor.

◆ ~MediumSilicon()

virtual Garfield::MediumSilicon::~MediumSilicon ( )
inlinevirtual

Destructor.

Definition at line 19 of file MediumSilicon.hh.

19{}

Member Function Documentation

◆ AcousticScatteringRates()

bool Garfield::MediumSilicon::AcousticScatteringRates ( const double rho,
const double kbt,
const double dp,
Band & band )
private

◆ ComputeDOS()

void Garfield::MediumSilicon::ComputeDOS ( )
private

◆ ComputeSecondaries()

void Garfield::MediumSilicon::ComputeSecondaries ( const double e0,
double & ee,
double & eh )

◆ ElectronAlpha()

double Garfield::MediumSilicon::ElectronAlpha ( const double e) const
private

◆ ElectronAttachment()

bool Garfield::MediumSilicon::ElectronAttachment ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & eta )
override

◆ ElectronCollision()

bool Garfield::MediumSilicon::ElectronCollision ( const double e,
int & type,
int & level,
double & e1,
double & dx,
double & dy,
double & dz,
std::vector< Secondary > & secondaries,
int & band )
override

◆ ElectronMobility() [1/2]

double Garfield::MediumSilicon::ElectronMobility ( )
inlineoverride

Definition at line 128 of file MediumSilicon.hh.

128{ return m_eMu; }

◆ ElectronMobility() [2/2]

double Garfield::MediumSilicon::ElectronMobility ( const double e) const
private

◆ ElectronScatteringRates()

bool Garfield::MediumSilicon::ElectronScatteringRates ( )
private

◆ ElectronTownsend()

bool Garfield::MediumSilicon::ElectronTownsend ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & alpha )
override

◆ ElectronVelocity()

bool Garfield::MediumSilicon::ElectronVelocity ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & vx,
double & vy,
double & vz )
override

◆ EnableAnisotropy()

void Garfield::MediumSilicon::EnableAnisotropy ( const bool on = true)
inline

Definition at line 116 of file MediumSilicon.hh.

◆ EnableFullBandDensityOfStates()

void Garfield::MediumSilicon::EnableFullBandDensityOfStates ( const bool on = true)
inline

Definition at line 113 of file MediumSilicon.hh.

113 {
114 m_fullBandDos = on;
115 }

◆ EnableNonParabolicity()

void Garfield::MediumSilicon::EnableNonParabolicity ( const bool on = true)
inline

Definition at line 112 of file MediumSilicon.hh.

◆ EnableScatteringRateOutput()

void Garfield::MediumSilicon::EnableScatteringRateOutput ( const bool on = true)
inline

Definition at line 111 of file MediumSilicon.hh.

◆ GetDielectricFunction()

bool Garfield::MediumSilicon::GetDielectricFunction ( const double e,
double & eps1,
double & eps2,
const unsigned int i = 0 )
override

◆ GetDoping()

void Garfield::MediumSilicon::GetDoping ( char & type,
double & c ) const

Retrieve doping concentration.

◆ GetElectronBandPopulation()

int Garfield::MediumSilicon::GetElectronBandPopulation ( const int band)

◆ GetElectronCollisionRate()

double Garfield::MediumSilicon::GetElectronCollisionRate ( const double e,
const int band )
override

◆ GetElectronEnergy()

double Garfield::MediumSilicon::GetElectronEnergy ( const double px,
const double py,
const double pz,
double & vx,
double & vy,
double & vz,
const int band = 0 )
override

◆ GetElectronMomentum()

void Garfield::MediumSilicon::GetElectronMomentum ( const double e,
double & px,
double & py,
double & pz,
int & band )
override

◆ GetElectronNullCollisionRate()

double Garfield::MediumSilicon::GetElectronNullCollisionRate ( const int band)
override

◆ GetMaxElectronEnergy()

double Garfield::MediumSilicon::GetMaxElectronEnergy ( ) const
inline

Definition at line 105 of file MediumSilicon.hh.

105{ return m_cb[2].eFinal; }
std::array< Band, 3 > m_cb

◆ GetNumberOfElectronBands()

unsigned int Garfield::MediumSilicon::GetNumberOfElectronBands ( ) const

◆ GetNumberOfElectronCollisions() [1/2]

unsigned int Garfield::MediumSilicon::GetNumberOfElectronCollisions ( ) const

◆ GetNumberOfElectronCollisions() [2/2]

unsigned int Garfield::MediumSilicon::GetNumberOfElectronCollisions ( const unsigned int level) const

◆ GetNumberOfLevels()

unsigned int Garfield::MediumSilicon::GetNumberOfLevels ( ) const

◆ GetOpticalDataRange()

bool Garfield::MediumSilicon::GetOpticalDataRange ( double & emin,
double & emax,
const unsigned int i = 0 )
override

◆ HoleAlpha()

double Garfield::MediumSilicon::HoleAlpha ( const double e) const
private

◆ HoleAttachment()

bool Garfield::MediumSilicon::HoleAttachment ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & eta )
override

◆ HoleMobility() [1/2]

double Garfield::MediumSilicon::HoleMobility ( )
inlineoverride

Definition at line 140 of file MediumSilicon.hh.

140{ return m_hMu; }

◆ HoleMobility() [2/2]

double Garfield::MediumSilicon::HoleMobility ( const double e) const
private

◆ HoleScatteringRates()

bool Garfield::MediumSilicon::HoleScatteringRates ( )
private

◆ HoleTownsend()

bool Garfield::MediumSilicon::HoleTownsend ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & alpha )
override

◆ HoleVelocity()

bool Garfield::MediumSilicon::HoleVelocity ( const double ex,
const double ey,
const double ez,
const double bx,
const double by,
const double bz,
double & vx,
double & vy,
double & vz )
override

◆ ImpurityScatteringRates()

bool Garfield::MediumSilicon::ImpurityScatteringRates ( const double kbt,
Band & band )
private

◆ Initialise()

bool Garfield::MediumSilicon::Initialise ( )

◆ InitialiseDOS()

void Garfield::MediumSilicon::InitialiseDOS ( )
private

◆ IntervalleyScatteringRates()

bool Garfield::MediumSilicon::IntervalleyScatteringRates ( const double rho,
const double kbt,
const double dtk,
const double eph,
Band & bndI,
Band & bndF,
const double zF,
const int collType )
private

◆ IonisationRates()

bool Garfield::MediumSilicon::IonisationRates ( const std::vector< double > & p,
const std::vector< double > & eth,
const std::vector< double > & b,
Band & band )
private

◆ IsSemiconductor()

bool Garfield::MediumSilicon::IsSemiconductor ( ) const
inlineoverride

Definition at line 21 of file MediumSilicon.hh.

21{ return true; }

◆ LoadOpticalData()

bool Garfield::MediumSilicon::LoadOpticalData ( const std::string & filename)
private

◆ OpticalScatteringRates()

bool Garfield::MediumSilicon::OpticalScatteringRates ( const double rho,
const double kbt,
const double dtk,
const double eph,
Band & band )
private

◆ ResetCollisionCounters()

void Garfield::MediumSilicon::ResetCollisionCounters ( )

◆ SetDiffusionScaling()

void Garfield::MediumSilicon::SetDiffusionScaling ( const double d)
inline

Apply a scaling factor to the diffusion coefficients.

Definition at line 101 of file MediumSilicon.hh.

◆ SetDoping()

void Garfield::MediumSilicon::SetDoping ( const char type,
const double c )

Set doping concentration [cm-3] and type ('i', 'n', 'p').

◆ SetDopingMobilityModelMasetti()

void Garfield::MediumSilicon::SetDopingMobilityModelMasetti ( )

Use the Masetti model for the doping-dependence of the mobility (default).

◆ SetDopingMobilityModelMinimos()

void Garfield::MediumSilicon::SetDopingMobilityModelMinimos ( )

Use the Minimos model for the doping-dependence of the mobility.

◆ SetHighFieldMobilityModel()

void Garfield::MediumSilicon::SetHighFieldMobilityModel ( const std::string & model)

Set the parameterisation to be used for the drift velocity as function of the electric field.

The currently implemented models are

  • Canali
  • Reggiani
  • Minimos
  • Constant (velocity increases linearly with the electric field) The default is Canali.

◆ SetHighFieldMobilityModelCanali()

void Garfield::MediumSilicon::SetHighFieldMobilityModelCanali ( )

Parameterize the high-field mobility using the Canali model (default).

◆ SetHighFieldMobilityModelConstant()

void Garfield::MediumSilicon::SetHighFieldMobilityModelConstant ( )

Make the velocity proportional to the electric field (no saturation).

◆ SetHighFieldMobilityModelMinimos()

void Garfield::MediumSilicon::SetHighFieldMobilityModelMinimos ( )

Parameterize the high-field mobility using the Minimos model.

◆ SetHighFieldMobilityModelReggiani()

void Garfield::MediumSilicon::SetHighFieldMobilityModelReggiani ( )

Parameterize the high-field mobility using the Reggiani model.

◆ SetImpactIonisationModel()

void Garfield::MediumSilicon::SetImpactIonisationModel ( const std::string & model)

Set the parameterisation to be used for calculating the impact ionisation coefficient.

The currently implemented models are

  • van Overstraeten - de Man
  • Okuto - Crowell
  • Massey
  • Grant The default is van Overstraeten - de Man.

◆ SetImpactIonisationModelGrant()

void Garfield::MediumSilicon::SetImpactIonisationModelGrant ( )

Calculate α using the Grant model.

◆ SetImpactIonisationModelMassey()

void Garfield::MediumSilicon::SetImpactIonisationModelMassey ( )

Calculate α using the Massey model.

◆ SetImpactIonisationModelOkutoCrowell()

void Garfield::MediumSilicon::SetImpactIonisationModelOkutoCrowell ( )

Calculate α using the Okuto-Crowell model.

◆ SetImpactIonisationModelVanOverstraetenDeMan()

void Garfield::MediumSilicon::SetImpactIonisationModelVanOverstraetenDeMan ( )

Calculate α using the van Overstraeten-de Man model (default).

◆ SetLatticeMobilityModel()

void Garfield::MediumSilicon::SetLatticeMobilityModel ( const std::string & model)

Set the parameterisation to be used for calculating the lattice mobility model.

The currently implemented models are

  • Sentaurus
  • Reggiani
  • Minimos The default is Sentaurus.

◆ SetLatticeMobilityModelMinimos()

void Garfield::MediumSilicon::SetLatticeMobilityModelMinimos ( )

Calculate the lattice mobility using the Minimos model.

◆ SetLatticeMobilityModelReggiani()

void Garfield::MediumSilicon::SetLatticeMobilityModelReggiani ( )

Calculate the lattice mobility using the Reggiani model.

◆ SetLatticeMobilityModelSentaurus()

void Garfield::MediumSilicon::SetLatticeMobilityModelSentaurus ( )

Calculate the lattice mobility using the Sentaurus model (default).

◆ SetLowFieldMobility()

void Garfield::MediumSilicon::SetLowFieldMobility ( const double mue,
const double muh )

Specify the low field values of the electron and hole mobilities.

◆ SetMaxElectronEnergy()

bool Garfield::MediumSilicon::SetMaxElectronEnergy ( const double e)

◆ SetSaturationVelocity()

void Garfield::MediumSilicon::SetSaturationVelocity ( const double vsate,
const double vsath )

Specify the saturation velocities of electrons and holes.

◆ SetSaturationVelocityModelCanali()

void Garfield::MediumSilicon::SetSaturationVelocityModelCanali ( )

Calculate the saturation velocities using the Canali model (default).

◆ SetSaturationVelocityModelMinimos()

void Garfield::MediumSilicon::SetSaturationVelocityModelMinimos ( )

Calculate the saturation velocities using the Minimos model.

◆ SetSaturationVelocityModelReggiani()

void Garfield::MediumSilicon::SetSaturationVelocityModelReggiani ( )

Calculate the saturation velocities using the Reggiani model.

◆ SetTrapCrossSection()

void Garfield::MediumSilicon::SetTrapCrossSection ( const double ecs,
const double hcs )

Trapping cross-sections for electrons and holes.

◆ SetTrapDensity()

void Garfield::MediumSilicon::SetTrapDensity ( const double n)

Trap density [cm-3], by default set to zero.

◆ SetTrappingTime()

void Garfield::MediumSilicon::SetTrappingTime ( const double etau,
const double htau )

Set time constant for trapping of electrons and holes [ns].

◆ Update()

bool Garfield::MediumSilicon::Update ( )
private

◆ UpdateDopingMobilityMasetti()

void Garfield::MediumSilicon::UpdateDopingMobilityMasetti ( )
private

◆ UpdateDopingMobilityMinimos()

void Garfield::MediumSilicon::UpdateDopingMobilityMinimos ( )
private

◆ UpdateHighFieldMobilityCanali()

void Garfield::MediumSilicon::UpdateHighFieldMobilityCanali ( )
private

◆ UpdateImpactIonisation()

void Garfield::MediumSilicon::UpdateImpactIonisation ( )
private

◆ UpdateLatticeMobility()

void Garfield::MediumSilicon::UpdateLatticeMobility ( )
private

◆ UpdateSaturationVelocity()

void Garfield::MediumSilicon::UpdateSaturationVelocity ( )
private

Member Data Documentation

◆ m_anisotropic

bool Garfield::MediumSilicon::m_anisotropic = true
private

Definition at line 254 of file MediumSilicon.hh.

◆ m_bandGap

double Garfield::MediumSilicon::m_bandGap = 1.12
private

Definition at line 191 of file MediumSilicon.hh.

◆ m_cb

std::array<Band, 3> Garfield::MediumSilicon::m_cb
private

Definition at line 292 of file MediumSilicon.hh.

◆ m_cbIndex

std::vector<size_t> Garfield::MediumSilicon::m_cbIndex
private

Definition at line 293 of file MediumSilicon.hh.

◆ m_cDop

double Garfield::MediumSilicon::m_cDop = 0.
private

Definition at line 195 of file MediumSilicon.hh.

◆ m_cfOutput

bool Garfield::MediumSilicon::m_cfOutput = false
private

Definition at line 251 of file MediumSilicon.hh.

◆ m_diffScale

double Garfield::MediumSilicon::m_diffScale = 1.
private

Definition at line 189 of file MediumSilicon.hh.

◆ m_dopingMobilityModel

DopingMobility Garfield::MediumSilicon::m_dopingMobilityModel = DopingMobility::Masetti
private

Definition at line 245 of file MediumSilicon.hh.

◆ m_dopingType

char Garfield::MediumSilicon::m_dopingType = 'i'
private

Definition at line 193 of file MediumSilicon.hh.

◆ m_eBetaCanali

double Garfield::MediumSilicon::m_eBetaCanali = 1.109
private

Definition at line 204 of file MediumSilicon.hh.

◆ m_eBetaCanaliInv

double Garfield::MediumSilicon::m_eBetaCanaliInv = 1. / 1.109
private

Definition at line 206 of file MediumSilicon.hh.

◆ m_egamma

std::vector<double> Garfield::MediumSilicon::m_egamma
private

Definition at line 315 of file MediumSilicon.hh.

◆ m_eHallFactor

double Garfield::MediumSilicon::m_eHallFactor = 1.15
private

Definition at line 215 of file MediumSilicon.hh.

◆ m_eImpactA0

double Garfield::MediumSilicon::m_eImpactA0 = 3.318e5
private

Definition at line 230 of file MediumSilicon.hh.

◆ m_eImpactA1

double Garfield::MediumSilicon::m_eImpactA1 = 0.703e6
private

Definition at line 231 of file MediumSilicon.hh.

◆ m_eImpactA2

double Garfield::MediumSilicon::m_eImpactA2 = 0.
private

Definition at line 232 of file MediumSilicon.hh.

◆ m_eImpactB0

double Garfield::MediumSilicon::m_eImpactB0 = 1.135e6
private

Definition at line 233 of file MediumSilicon.hh.

◆ m_eImpactB1

double Garfield::MediumSilicon::m_eImpactB1 = 1.231e6
private

Definition at line 234 of file MediumSilicon.hh.

◆ m_eImpactB2

double Garfield::MediumSilicon::m_eImpactB2 = 0.
private

Definition at line 235 of file MediumSilicon.hh.

◆ m_eMu

double Garfield::MediumSilicon::m_eMu = 1.35e-6
private

Definition at line 201 of file MediumSilicon.hh.

◆ m_eMuLat

double Garfield::MediumSilicon::m_eMuLat = 1.35e-6
private

Definition at line 198 of file MediumSilicon.hh.

◆ m_eps1

std::vector<double> Garfield::MediumSilicon::m_eps1
private

Definition at line 316 of file MediumSilicon.hh.

◆ m_eps2

std::vector<double> Garfield::MediumSilicon::m_eps2
private

Definition at line 317 of file MediumSilicon.hh.

◆ m_eRs

double Garfield::MediumSilicon::m_eRs = 1.35e-6 / 1.02e-2
private

Definition at line 212 of file MediumSilicon.hh.

◆ m_eStepDos

double Garfield::MediumSilicon::m_eStepDos = 0.
private

Definition at line 307 of file MediumSilicon.hh.

◆ m_eTrapCs

double Garfield::MediumSilicon::m_eTrapCs = 1.e-15
private

Definition at line 219 of file MediumSilicon.hh.

◆ m_eTrapDensity

double Garfield::MediumSilicon::m_eTrapDensity = 0.
private

Definition at line 221 of file MediumSilicon.hh.

◆ m_eTrapRate

double Garfield::MediumSilicon::m_eTrapRate = 0.
private

Definition at line 225 of file MediumSilicon.hh.

◆ m_eTrapTime

double Garfield::MediumSilicon::m_eTrapTime = 0.
private

Definition at line 223 of file MediumSilicon.hh.

◆ m_eVs

double Garfield::MediumSilicon::m_eVs = 1.02e-2
private

Definition at line 209 of file MediumSilicon.hh.

◆ m_fbDosC

std::vector<double> Garfield::MediumSilicon::m_fbDosC
private

Definition at line 310 of file MediumSilicon.hh.

◆ m_fbDosMaxC

double Garfield::MediumSilicon::m_fbDosMaxC
private

Definition at line 311 of file MediumSilicon.hh.

◆ m_fbDosMaxV

double Garfield::MediumSilicon::m_fbDosMaxV
private

Definition at line 311 of file MediumSilicon.hh.

◆ m_fbDosV

std::vector<double> Garfield::MediumSilicon::m_fbDosV
private

Definition at line 309 of file MediumSilicon.hh.

◆ m_fullBandDos

bool Garfield::MediumSilicon::m_fullBandDos = false
private

Definition at line 253 of file MediumSilicon.hh.

◆ m_hasUserMobility

bool Garfield::MediumSilicon::m_hasUserMobility = false
private

Definition at line 242 of file MediumSilicon.hh.

◆ m_hasUserSaturationVelocity

bool Garfield::MediumSilicon::m_hasUserSaturationVelocity = false
private

Definition at line 243 of file MediumSilicon.hh.

◆ m_hBetaCanali

double Garfield::MediumSilicon::m_hBetaCanali = 1.213
private

Definition at line 205 of file MediumSilicon.hh.

◆ m_hBetaCanaliInv

double Garfield::MediumSilicon::m_hBetaCanaliInv = 1. / 1.213
private

Definition at line 207 of file MediumSilicon.hh.

◆ m_hHallFactor

double Garfield::MediumSilicon::m_hHallFactor = 0.7
private

Definition at line 216 of file MediumSilicon.hh.

◆ m_highFieldMobilityModel

HighFieldMobility Garfield::MediumSilicon::m_highFieldMobilityModel = HighFieldMobility::Canali
private

Definition at line 247 of file MediumSilicon.hh.

◆ m_hImpactA0

double Garfield::MediumSilicon::m_hImpactA0 = 1.582e6
private

Definition at line 236 of file MediumSilicon.hh.

◆ m_hImpactA1

double Garfield::MediumSilicon::m_hImpactA1 = 0.671e6
private

Definition at line 237 of file MediumSilicon.hh.

◆ m_hImpactB0

double Garfield::MediumSilicon::m_hImpactB0 = 2.036e6
private

Definition at line 238 of file MediumSilicon.hh.

◆ m_hImpactB1

double Garfield::MediumSilicon::m_hImpactB1 = 1.693e6
private

Definition at line 239 of file MediumSilicon.hh.

◆ m_hMu

double Garfield::MediumSilicon::m_hMu = 0.45e-6
private

Definition at line 202 of file MediumSilicon.hh.

◆ m_hMuLat

double Garfield::MediumSilicon::m_hMuLat = 0.45e-6
private

Definition at line 199 of file MediumSilicon.hh.

◆ m_hRs

double Garfield::MediumSilicon::m_hRs = 0.45e-6 / 0.72e-2
private

Definition at line 213 of file MediumSilicon.hh.

◆ m_hTrapCs

double Garfield::MediumSilicon::m_hTrapCs = 1.e-15
private

Definition at line 220 of file MediumSilicon.hh.

◆ m_hTrapDensity

double Garfield::MediumSilicon::m_hTrapDensity = 0.
private

Definition at line 222 of file MediumSilicon.hh.

◆ m_hTrapRate

double Garfield::MediumSilicon::m_hTrapRate = 0.
private

Definition at line 226 of file MediumSilicon.hh.

◆ m_hTrapTime

double Garfield::MediumSilicon::m_hTrapTime = 0.
private

Definition at line 224 of file MediumSilicon.hh.

◆ m_hVs

double Garfield::MediumSilicon::m_hVs = 0.72e-2
private

Definition at line 210 of file MediumSilicon.hh.

◆ m_impactIonisationModel

ImpactIonisation Garfield::MediumSilicon::m_impactIonisationModel = ImpactIonisation::VanOverstraeten
private

Definition at line 248 of file MediumSilicon.hh.

◆ m_invStepDos

double Garfield::MediumSilicon::m_invStepDos = 0.
private

Definition at line 308 of file MediumSilicon.hh.

◆ m_latticeMobilityModel

LatticeMobility Garfield::MediumSilicon::m_latticeMobilityModel = LatticeMobility::Sentaurus
private

Definition at line 244 of file MediumSilicon.hh.

◆ m_mutex

std::mutex Garfield::MediumSilicon::m_mutex
private

Definition at line 186 of file MediumSilicon.hh.

◆ m_nCollElectronAcoustic

unsigned int Garfield::MediumSilicon::m_nCollElectronAcoustic = 0
private

Definition at line 298 of file MediumSilicon.hh.

◆ m_nCollElectronBand

std::vector<unsigned int> Garfield::MediumSilicon::m_nCollElectronBand
private

Definition at line 304 of file MediumSilicon.hh.

◆ m_nCollElectronDetailed

std::vector<unsigned int> Garfield::MediumSilicon::m_nCollElectronDetailed
private

Definition at line 303 of file MediumSilicon.hh.

◆ m_nCollElectronImpurity

unsigned int Garfield::MediumSilicon::m_nCollElectronImpurity = 0
private

Definition at line 301 of file MediumSilicon.hh.

◆ m_nCollElectronIntervalley

unsigned int Garfield::MediumSilicon::m_nCollElectronIntervalley = 0
private

Definition at line 300 of file MediumSilicon.hh.

◆ m_nCollElectronIonisation

unsigned int Garfield::MediumSilicon::m_nCollElectronIonisation = 0
private

Definition at line 302 of file MediumSilicon.hh.

◆ m_nCollElectronOptical

unsigned int Garfield::MediumSilicon::m_nCollElectronOptical = 0
private

Definition at line 299 of file MediumSilicon.hh.

◆ m_nonParabolic

bool Garfield::MediumSilicon::m_nonParabolic = true
private

Definition at line 252 of file MediumSilicon.hh.

◆ m_opticalDataFile

std::string Garfield::MediumSilicon::m_opticalDataFile = "OpticalData_Si.txt"
private

Definition at line 314 of file MediumSilicon.hh.

◆ m_saturationVelocityModel

SaturationVelocity Garfield::MediumSilicon::m_saturationVelocityModel = SaturationVelocity::Canali
private

Definition at line 246 of file MediumSilicon.hh.

◆ m_trappingModel

int Garfield::MediumSilicon::m_trappingModel = 0
private

Definition at line 227 of file MediumSilicon.hh.

◆ m_vb

Band Garfield::MediumSilicon::m_vb
private

Definition at line 295 of file MediumSilicon.hh.


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