Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <AvalancheMC.hh>
Public Member Functions | |
AvalancheMC () | |
Constructor. | |
~AvalancheMC () | |
Destructor. | |
void | SetSensor (Sensor *s) |
Set the sensor. | |
void | EnablePlotting (ViewDrift *view) |
Switch on drift line plotting. | |
void | DisablePlotting () |
void | EnableSignalCalculation () |
Switch on calculation of induced currents (default: disabled). | |
void | DisableSignalCalculation () |
void | EnableInducedChargeCalculation () |
Switch on calculation of induced charge (default: disabled). | |
void | DisableInducedChargeCalculation () |
void | EnableProjectedPathIntegration () |
void | DisableProjectedPathIntegration () |
void | EnableDiffusion () |
Switch on diffusion (default: enabled) | |
void | DisableDiffusion () |
void | EnableAttachment () |
void | DisableAttachment () |
void | EnableTcadTraps () |
Switch on calculating trapping with TCAD traps. | |
void | DisableTcadTraps () |
void | EnableTcadVelocity () |
Switch on TCAD velocity maps. | |
void | DisableTcadVelocity () |
void | EnableMagneticField () |
Enable use of magnetic field in stepping algorithm. | |
void | DisableMagneticField () |
void | SetTimeSteps (const double d=0.02) |
Use fixed-time steps (default 20 ps). | |
void | SetDistanceSteps (const double d=0.001) |
Use fixed distance steps (default 10 um). | |
void | SetCollisionSteps (const int n=100) |
void | SetTimeWindow (const double t0, const double t1) |
Define a time interval (only carriers inside the interval are drifted). | |
void | UnsetTimeWindow () |
void | SetHoles () |
Treat positive charge carriers as holes (default: ions). | |
void | SetIons () |
void | SetElectronSignalScalingFactor (const double scale) |
Set multiplication factor for the signal induced by electrons. | |
void | SetHoleSignalScalingFactor (const double scale) |
Set multiplication factor for the signal induced by holes. | |
void | SetIonSignalScalingFactor (const double scale) |
Set multiplication factor for the signal induced by ions. | |
void | GetAvalancheSize (int &ne, int &ni) const |
Return the number of electrons and ions/holes in the avalanche. | |
unsigned int | GetNumberOfDriftLinePoints () const |
Return the number of points along the last simulated drift line. | |
void | GetDriftLinePoint (const unsigned int i, double &x, double &y, double &z, double &t) const |
Return the coordinates and time of a point along the last drift line. | |
unsigned int | GetNumberOfElectronEndpoints () const |
unsigned int | GetNumberOfHoleEndpoints () const |
unsigned int | GetNumberOfIonEndpoints () const |
void | GetElectronEndpoint (const unsigned int i, double &x0, double &y0, double &z0, double &t0, double &x1, double &y1, double &z1, double &t1, int &status) const |
void | GetHoleEndpoint (const unsigned int i, double &x0, double &y0, double &z0, double &t0, double &x1, double &y1, double &z1, double &t1, int &status) const |
void | GetIonEndpoint (const unsigned int i, double &x0, double &y0, double &z0, double &t0, double &x1, double &y1, double &z1, double &t1, int &status) const |
bool | DriftElectron (const double x0, const double y0, const double z0, const double t0) |
Simulate the drift line of an electron with a given starting point. | |
bool | DriftHole (const double x0, const double y0, const double z0, const double t0) |
bool | DriftIon (const double x0, const double y0, const double z0, const double t0) |
bool | AvalancheElectron (const double x0, const double y0, const double z0, const double t0, const bool hole=false) |
Simulate an avalanche initiated by an electron with given starting point. | |
bool | AvalancheHole (const double x0, const double y0, const double z0, const double t0, const bool electron=false) |
bool | AvalancheElectronHole (const double x0, const double y0, const double z0, const double t0) |
void | EnableDebugging () |
Switch on debugging messages (default: off). | |
void | DisableDebugging () |
Calculate drift lines and avalanches based on macroscopic transport coefficients, using Monte Carlo integration.
Definition at line 15 of file AvalancheMC.hh.
Garfield::AvalancheMC::AvalancheMC | ( | ) |
Constructor.
Definition at line 15 of file AvalancheMC.cc.
|
inline |
bool Garfield::AvalancheMC::AvalancheElectron | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0, | ||
const bool | hole = false |
||
) |
Simulate an avalanche initiated by an electron with given starting point.
Definition at line 511 of file AvalancheMC.cc.
bool Garfield::AvalancheMC::AvalancheElectronHole | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Definition at line 527 of file AvalancheMC.cc.
bool Garfield::AvalancheMC::AvalancheHole | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0, | ||
const bool | electron = false |
||
) |
Definition at line 519 of file AvalancheMC.cc.
|
inline |
Definition at line 50 of file AvalancheMC.hh.
|
inline |
Definition at line 151 of file AvalancheMC.hh.
|
inline |
Definition at line 45 of file AvalancheMC.hh.
|
inline |
Definition at line 36 of file AvalancheMC.hh.
|
inline |
Definition at line 62 of file AvalancheMC.hh.
|
inline |
Definition at line 28 of file AvalancheMC.hh.
|
inline |
Definition at line 41 of file AvalancheMC.hh.
|
inline |
Definition at line 32 of file AvalancheMC.hh.
|
inline |
Definition at line 54 of file AvalancheMC.hh.
|
inline |
Definition at line 58 of file AvalancheMC.hh.
bool Garfield::AvalancheMC::DriftElectron | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Simulate the drift line of an electron with a given starting point.
Definition at line 210 of file AvalancheMC.cc.
Referenced by GarfieldPhysics::DoIt().
bool Garfield::AvalancheMC::DriftHole | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Definition at line 230 of file AvalancheMC.cc.
bool Garfield::AvalancheMC::DriftIon | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Definition at line 249 of file AvalancheMC.cc.
|
inline |
Switch on attachment (and multiplication) for drift line calculation (default: enabled). For avalanches the flag is ignored.
Definition at line 49 of file AvalancheMC.hh.
|
inline |
Switch on debugging messages (default: off).
Definition at line 150 of file AvalancheMC.hh.
|
inline |
Switch on diffusion (default: enabled)
Definition at line 44 of file AvalancheMC.hh.
|
inline |
Switch on calculation of induced charge (default: disabled).
Definition at line 35 of file AvalancheMC.hh.
|
inline |
Enable use of magnetic field in stepping algorithm.
Definition at line 61 of file AvalancheMC.hh.
void Garfield::AvalancheMC::EnablePlotting | ( | ViewDrift * | view | ) |
Switch on drift line plotting.
Definition at line 59 of file AvalancheMC.cc.
|
inline |
Switch on equilibration of multiplication and attachment over the drift line (default: enabled)
Definition at line 40 of file AvalancheMC.hh.
|
inline |
Switch on calculation of induced currents (default: disabled).
Definition at line 31 of file AvalancheMC.hh.
|
inline |
Switch on calculating trapping with TCAD traps.
Definition at line 53 of file AvalancheMC.hh.
|
inline |
Switch on TCAD velocity maps.
Definition at line 57 of file AvalancheMC.hh.
|
inline |
Return the number of electrons and ions/holes in the avalanche.
Definition at line 94 of file AvalancheMC.hh.
void Garfield::AvalancheMC::GetDriftLinePoint | ( | const unsigned int | i, |
double & | x, | ||
double & | y, | ||
double & | z, | ||
double & | t | ||
) | const |
Return the coordinates and time of a point along the last drift line.
Definition at line 130 of file AvalancheMC.cc.
void Garfield::AvalancheMC::GetElectronEndpoint | ( | const unsigned int | i, |
double & | x0, | ||
double & | y0, | ||
double & | z0, | ||
double & | t0, | ||
double & | x1, | ||
double & | y1, | ||
double & | z1, | ||
double & | t1, | ||
int & | status | ||
) | const |
Return the coordinates and time of start and end point of a given electron drift line.
i | index of the drift line |
x0,y0,z0,t0 | coordinates and time of the starting point |
x1,y1,z1,t1 | coordinates and time of the end point |
status | status code (see GarfieldConstants.hh) |
Definition at line 188 of file AvalancheMC.cc.
Referenced by GarfieldPhysics::DoIt().
void Garfield::AvalancheMC::GetHoleEndpoint | ( | const unsigned int | i, |
double & | x0, | ||
double & | y0, | ||
double & | z0, | ||
double & | t0, | ||
double & | x1, | ||
double & | y1, | ||
double & | z1, | ||
double & | t1, | ||
int & | status | ||
) | const |
Definition at line 145 of file AvalancheMC.cc.
void Garfield::AvalancheMC::GetIonEndpoint | ( | const unsigned int | i, |
double & | x0, | ||
double & | y0, | ||
double & | z0, | ||
double & | t0, | ||
double & | x1, | ||
double & | y1, | ||
double & | z1, | ||
double & | t1, | ||
int & | status | ||
) | const |
Definition at line 167 of file AvalancheMC.cc.
|
inline |
Return the number of points along the last simulated drift line.
Definition at line 100 of file AvalancheMC.hh.
|
inline |
Return the number of electron trajectories in the last simulated avalanche (including captured electrons).
Definition at line 107 of file AvalancheMC.hh.
|
inline |
Definition at line 110 of file AvalancheMC.hh.
|
inline |
Definition at line 113 of file AvalancheMC.hh.
void Garfield::AvalancheMC::SetCollisionSteps | ( | const int | n = 100 | ) |
Use exponentially distributed time steps with mean equal to the specified multiple of the collision time (default model).
Definition at line 101 of file AvalancheMC.cc.
void Garfield::AvalancheMC::SetDistanceSteps | ( | const double | d = 0.001 | ) |
Use fixed distance steps (default 10 um).
Definition at line 85 of file AvalancheMC.cc.
|
inline |
Set multiplication factor for the signal induced by electrons.
Definition at line 81 of file AvalancheMC.hh.
|
inline |
Treat positive charge carriers as holes (default: ions).
Definition at line 77 of file AvalancheMC.hh.
|
inline |
Set multiplication factor for the signal induced by holes.
Definition at line 85 of file AvalancheMC.hh.
|
inline |
Definition at line 78 of file AvalancheMC.hh.
|
inline |
Set multiplication factor for the signal induced by ions.
Definition at line 89 of file AvalancheMC.hh.
void Garfield::AvalancheMC::SetSensor | ( | Sensor * | s | ) |
Set the sensor.
Definition at line 49 of file AvalancheMC.cc.
Referenced by GarfieldPhysics::InitializePhysics().
void Garfield::AvalancheMC::SetTimeSteps | ( | const double | d = 0.02 | ) |
Use fixed-time steps (default 20 ps).
Definition at line 69 of file AvalancheMC.cc.
void Garfield::AvalancheMC::SetTimeWindow | ( | const double | t0, |
const double | t1 | ||
) |
Define a time interval (only carriers inside the interval are drifted).
Definition at line 117 of file AvalancheMC.cc.
|
inline |
Definition at line 74 of file AvalancheMC.hh.