Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Gallium-Arsenide. More...
#include <MediumGaAs.hh>
Public Member Functions | |
MediumGaAs () | |
Constructor. | |
virtual | ~MediumGaAs () |
Destructor. | |
bool | IsSemiconductor () const |
void | GetComponent (const unsigned int i, std::string &label, double &f) |
void | SetTrapCrossSection (const double ecs, const double hcs) |
Set electron and hole trapping cross-sections [cm-2]. | |
void | SetTrapDensity (const double n) |
Set the density of traps [cm-3]. | |
void | SetTrappingTime (const double etau, const double htau) |
Set the trapping time [ns] for electrons and holes. | |
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) |
bool | ElectronTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
bool | ElectronAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
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) |
bool | HoleTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
bool | HoleAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
void | SetLowFieldMobility (const double mue, const double muh) |
bool | GetOpticalDataRange (double &emin, double &emax, const unsigned int i=0) |
bool | GetDielectricFunction (const double e, double &eps1, double &eps2, const unsigned int i=0) |
Public Member Functions inherited from Garfield::Medium | |
Medium () | |
virtual | ~Medium () |
int | GetId () const |
const std::string & | GetName () const |
virtual bool | IsGas () const |
virtual bool | IsSemiconductor () const |
void | SetTemperature (const double t) |
double | GetTemperature () const |
void | SetPressure (const double p) |
double | GetPressure () const |
void | SetDielectricConstant (const double eps) |
double | GetDielectricConstant () const |
unsigned int | GetNumberOfComponents () const |
virtual void | GetComponent (const unsigned int i, std::string &label, double &f) |
virtual void | SetAtomicNumber (const double z) |
virtual double | GetAtomicNumber () const |
virtual void | SetAtomicWeight (const double a) |
virtual double | GetAtomicWeight () const |
virtual void | SetNumberDensity (const double n) |
virtual double | GetNumberDensity () const |
virtual void | SetMassDensity (const double rho) |
virtual double | GetMassDensity () const |
virtual void | EnableDrift () |
void | DisableDrift () |
virtual void | EnablePrimaryIonisation () |
void | DisablePrimaryIonisation () |
bool | IsDriftable () const |
bool | IsMicroscopic () const |
bool | IsIonisable () const |
void | SetW (const double w) |
double | GetW () |
void | SetFanoFactor (const double f) |
double | GetFanoFactor () |
virtual 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) |
virtual bool | ElectronDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
virtual bool | ElectronDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double cov[3][3]) |
virtual bool | ElectronTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
virtual bool | ElectronAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
virtual bool | ElectronLorentzAngle (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &lor) |
virtual double | GetElectronEnergy (const double px, const double py, const double pz, double &vx, double &vy, double &vz, const int band=0) |
virtual void | GetElectronMomentum (const double e, double &px, double &py, double &pz, int &band) |
virtual double | GetElectronNullCollisionRate (const int band=0) |
virtual double | GetElectronCollisionRate (const double e, const int band=0) |
virtual bool | GetElectronCollision (const double e, int &type, int &level, double &e1, double &dx, double &dy, double &dz, int &nion, int &ndxc, int &band) |
virtual unsigned int | GetNumberOfIonisationProducts () const |
virtual bool | GetIonisationProduct (const unsigned int i, int &type, double &energy) const |
virtual unsigned int | GetNumberOfDeexcitationProducts () const |
virtual bool | GetDeexcitationProduct (const unsigned int i, double &t, double &s, int &type, double &energy) const |
virtual 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) |
virtual bool | HoleDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
virtual bool | HoleDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double cov[3][3]) |
virtual bool | HoleTownsend (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &alpha) |
virtual bool | HoleAttachment (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &eta) |
virtual bool | IonVelocity (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &vx, double &vy, double &vz) |
virtual bool | IonDiffusion (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &dl, double &dt) |
virtual bool | IonDissociation (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, double &diss) |
void | SetFieldGrid (double emin, double emax, int ne, bool logE, double bmin=0., double bmax=0., int nb=1, double amin=0., double amax=0., int na=1) |
void | SetFieldGrid (const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles) |
void | GetFieldGrid (std::vector< double > &efields, std::vector< double > &bfields, std::vector< double > &angles) |
bool | GetElectronVelocityE (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetElectronVelocityExB (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetElectronVelocityB (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetElectronLongitudinalDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dl) |
bool | GetElectronTransverseDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dt) |
bool | GetElectronTownsend (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &alpha) |
bool | GetElectronAttachment (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &eta) |
bool | GetElectronLorentzAngle (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &lor) |
bool | GetHoleVelocityE (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetHoleVelocityExB (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetHoleVelocityB (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &v) |
bool | GetHoleLongitudinalDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dl) |
bool | GetHoleTransverseDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dt) |
bool | GetHoleTownsend (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &alpha) |
bool | GetHoleAttachment (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &eta) |
bool | GetIonMobility (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &mu) |
bool | GetIonLongitudinalDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dl) |
bool | GetIonTransverseDiffusion (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &dt) |
bool | GetIonDissociation (const unsigned int ie, const unsigned int ib, const unsigned int ia, double &diss) |
void | ResetElectronVelocity () |
void | ResetElectronDiffusion () |
void | ResetElectronTownsend () |
void | ResetElectronAttachment () |
void | ResetElectronLorentzAngle () |
void | ResetHoleVelocity () |
void | ResetHoleDiffusion () |
void | ResetHoleTownsend () |
void | ResetHoleAttachment () |
void | ResetIonMobility () |
void | ResetIonDiffusion () |
void | ResetIonDissociation () |
bool | SetIonMobility (const unsigned int ie, const unsigned int ib, const unsigned int ia, const double mu) |
bool | SetIonMobility (const std::vector< double > &fields, const std::vector< double > &mobilities) |
void | SetExtrapolationMethodVelocity (const std::string &extrLow, const std::string &extrHigh) |
void | SetExtrapolationMethodDiffusion (const std::string &extrLow, const std::string &extrHigh) |
void | SetExtrapolationMethodTownsend (const std::string &extrLow, const std::string &extrHigh) |
void | SetExtrapolationMethodAttachment (const std::string &extrLow, const std::string &extrHigh) |
void | SetExtrapolationMethodIonMobility (const std::string &extrLow, const std::string &extrHigh) |
void | SetExtrapolationMethodIonDissociation (const std::string &extrLow, const std::string &extrHigh) |
void | SetInterpolationMethodVelocity (const unsigned int intrp) |
void | SetInterpolationMethodDiffusion (const unsigned int intrp) |
void | SetInterpolationMethodTownsend (const unsigned int intrp) |
void | SetInterpolationMethodAttachment (const unsigned int intrp) |
void | SetInterpolationMethodIonMobility (const unsigned int intrp) |
void | SetInterpolationMethodIonDissociation (const unsigned int intrp) |
virtual double | ScaleElectricField (const double e) const |
virtual double | UnScaleElectricField (const double e) const |
virtual double | ScaleVelocity (const double v) const |
virtual double | ScaleDiffusion (const double d) const |
virtual double | ScaleDiffusionTensor (const double d) const |
virtual double | ScaleTownsend (const double alpha) const |
virtual double | ScaleAttachment (const double eta) const |
virtual double | ScaleLorentzAngle (const double lor) const |
virtual double | ScaleDissociation (const double diss) const |
virtual bool | GetOpticalDataRange (double &emin, double &emax, const unsigned int i=0) |
virtual bool | GetDielectricFunction (const double e, double &eps1, double &eps2, const unsigned int i=0) |
virtual bool | GetPhotoAbsorptionCrossSection (const double e, double &sigma, const unsigned int i=0) |
virtual double | GetPhotonCollisionRate (const double e) |
virtual bool | GetPhotonCollision (const double e, int &type, int &level, double &e1, double &ctheta, int &nsec, double &esec) |
void | EnableDebugging () |
void | DisableDebugging () |
Additional Inherited Members | |
Protected Member Functions inherited from Garfield::Medium | |
double | GetAngle (const double ex, const double ey, const double ez, const double bx, const double by, const double bz, const double e, const double b) const |
double | Interpolate1D (const double e, const std::vector< double > &table, const std::vector< double > &fields, const unsigned int intpMeth, const int jExtr, const int iExtr) |
bool | GetExtrapolationIndex (std::string extrStr, unsigned int &extrNb) |
void | CloneTable (std::vector< std::vector< std::vector< double > > > &tab, const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles, const unsigned int intp, const unsigned int extrLow, const unsigned int extrHigh, const double init, const std::string &label) |
void | CloneTensor (std::vector< std::vector< std::vector< std::vector< double > > > > &tab, const unsigned int n, const std::vector< double > &efields, const std::vector< double > &bfields, const std::vector< double > &angles, const unsigned int intp, const unsigned int extrLow, const unsigned int extrHigh, const double init, const std::string &label) |
void | InitParamArrays (const unsigned int eRes, const unsigned int bRes, const unsigned int aRes, std::vector< std::vector< std::vector< double > > > &tab, const double val) |
void | InitParamTensor (const unsigned int eRes, const unsigned int bRes, const unsigned int aRes, const unsigned int tRes, std::vector< std::vector< std::vector< std::vector< double > > > > &tab, const double val) |
Protected Attributes inherited from Garfield::Medium | |
std::string | m_className |
int | m_id |
std::string | m_name |
double | m_temperature |
double | m_pressure |
double | m_epsilon |
unsigned int | m_nComponents |
double | m_z |
double | m_a |
double | m_density |
bool | m_driftable |
bool | m_microscopic |
bool | m_ionisable |
double | m_w |
double | m_fano |
bool | m_isChanged |
bool | m_debug |
std::vector< double > | m_eFields |
std::vector< double > | m_bFields |
std::vector< double > | m_bAngles |
bool | m_map2d |
bool | m_hasElectronVelocityE |
bool | m_hasElectronVelocityB |
bool | m_hasElectronVelocityExB |
bool | m_hasElectronDiffLong |
bool | m_hasElectronDiffTrans |
bool | m_hasElectronDiffTens |
bool | m_hasElectronAttachment |
bool | m_hasElectronLorentzAngle |
std::vector< std::vector< std::vector< double > > > | tabElectronVelocityE |
std::vector< std::vector< std::vector< double > > > | tabElectronVelocityExB |
std::vector< std::vector< std::vector< double > > > | tabElectronVelocityB |
std::vector< std::vector< std::vector< double > > > | tabElectronDiffLong |
std::vector< std::vector< std::vector< double > > > | tabElectronDiffTrans |
std::vector< std::vector< std::vector< double > > > | tabElectronTownsend |
std::vector< std::vector< std::vector< double > > > | tabElectronAttachment |
std::vector< std::vector< std::vector< double > > > | tabElectronLorentzAngle |
std::vector< std::vector< std::vector< std::vector< double > > > > | tabElectronDiffTens |
bool | m_hasHoleVelocityE |
bool | m_hasHoleVelocityB |
bool | m_hasHoleVelocityExB |
bool | m_hasHoleDiffLong |
bool | m_hasHoleDiffTrans |
bool | m_hasHoleDiffTens |
bool | m_hasHoleTownsend |
bool | m_hasHoleAttachment |
std::vector< std::vector< std::vector< double > > > | tabHoleVelocityE |
std::vector< std::vector< std::vector< double > > > | tabHoleVelocityExB |
std::vector< std::vector< std::vector< double > > > | tabHoleVelocityB |
std::vector< std::vector< std::vector< double > > > | tabHoleDiffLong |
std::vector< std::vector< std::vector< double > > > | tabHoleDiffTrans |
std::vector< std::vector< std::vector< double > > > | tabHoleTownsend |
std::vector< std::vector< std::vector< double > > > | tabHoleAttachment |
std::vector< std::vector< std::vector< std::vector< double > > > > | tabHoleDiffTens |
bool | m_hasIonMobility |
bool | m_hasIonDiffLong |
bool | m_hasIonDiffTrans |
bool | m_hasIonDissociation |
std::vector< std::vector< std::vector< double > > > | tabIonMobility |
std::vector< std::vector< std::vector< double > > > | tabIonDiffLong |
std::vector< std::vector< std::vector< double > > > | tabIonDiffTrans |
std::vector< std::vector< std::vector< double > > > | tabIonDissociation |
int | thrElectronTownsend |
int | thrElectronAttachment |
int | thrHoleTownsend |
int | thrHoleAttachment |
int | thrIonDissociation |
unsigned int | m_extrLowVelocity |
unsigned int | m_extrHighVelocity |
unsigned int | m_extrLowDiffusion |
unsigned int | m_extrHighDiffusion |
unsigned int | m_extrLowTownsend |
unsigned int | m_extrHighTownsend |
unsigned int | m_extrLowAttachment |
unsigned int | m_extrHighAttachment |
unsigned int | m_extrLowLorentzAngle |
unsigned int | m_extrHighLorentzAngle |
unsigned int | m_extrLowMobility |
unsigned int | m_extrHighMobility |
unsigned int | m_extrLowDissociation |
unsigned int | m_extrHighDissociation |
unsigned int | m_intpVelocity |
unsigned int | m_intpDiffusion |
unsigned int | m_intpTownsend |
unsigned int | m_intpAttachment |
unsigned int | m_intpLorentzAngle |
unsigned int | m_intpMobility |
unsigned int | m_intpDissociation |
Static Protected Attributes inherited from Garfield::Medium | |
static int | m_idCounter = -1 |
Gallium-Arsenide.
Definition at line 10 of file MediumGaAs.hh.
Garfield::MediumGaAs::MediumGaAs | ( | ) |
Constructor.
Definition at line 14 of file MediumGaAs.cc.
|
inlinevirtual |
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 158 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 145 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 114 of file MediumGaAs.cc.
Referenced by ElectronAttachment().
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 49 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 299 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 272 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 230 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 218 of file MediumGaAs.cc.
|
virtual |
Reimplemented from Garfield::Medium.
Definition at line 189 of file MediumGaAs.cc.
Referenced by HoleAttachment().
|
inlinevirtual |
Reimplemented from Garfield::Medium.
Definition at line 18 of file MediumGaAs.hh.
void Garfield::MediumGaAs::SetLowFieldMobility | ( | const double | mue, |
const double | muh | ||
) |
Definition at line 258 of file MediumGaAs.cc.
void Garfield::MediumGaAs::SetTrapCrossSection | ( | const double | ecs, |
const double | hcs | ||
) |
Set electron and hole trapping cross-sections [cm-2].
Definition at line 60 of file MediumGaAs.cc.
void Garfield::MediumGaAs::SetTrapDensity | ( | const double | n | ) |
Set the density of traps [cm-3].
Definition at line 80 of file MediumGaAs.cc.
void Garfield::MediumGaAs::SetTrappingTime | ( | const double | etau, |
const double | htau | ||
) |
Set the trapping time [ns] for electrons and holes.
Definition at line 94 of file MediumGaAs.cc.