Garfield++ 3.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <DriftLineRKF.hh>
Public Member Functions | |
DriftLineRKF () | |
Constructor. | |
~DriftLineRKF () | |
Destructor. | |
void | SetSensor (Sensor *s) |
Set the sensor. | |
void | EnablePlotting (ViewDrift *view) |
Switch on drift line plotting. | |
void | DisablePlotting () |
Switch off drift line plotting. | |
void | EnableSignalCalculation (const bool on=true) |
Switch on/off calculation of induced currents (default: enabled). | |
void | SetSignalAveragingOrder (const unsigned int navg) |
void | SetIntegrationAccuracy (const double eps) |
Set the accuracy of the Runge Kutta Fehlberg drift line integration. | |
void | SetMaximumStepSize (const double ms) |
Set the maximum step size that is allowed. By default, there is no limit. | |
void | UnsetMaximumStepSize () |
Do not apply an upper limit to the step size that is allowed. | |
void | RejectKinks (const bool on=true) |
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 | EnableAvalanche (const bool on=true) |
Enable/disable simulation electron multiplication (default: on). | |
void | EnableIonTail (const bool on=true) |
Enable/disable simulation of the ion tail (default: off). | |
void | SetGainFluctuationsFixed (const double gain=-1.) |
Do not randomize the avalanche size. | |
void | SetGainFluctuationsPolya (const double theta, const double mean=-1.) |
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) |
Simulate the drift line of a hole with a given starting point. | |
bool | DriftIon (const double x0, const double y0, const double z0, const double t0) |
Simulate the drift line of an ion with a given starting point. | |
bool | DriftPositron (const double x0, const double y0, const double z0, const double t0) |
bool | DriftNegativeIon (const double x0, const double y0, const double z0, const double t0) |
void | PrintDriftLine () const |
Print the trajectory of the most recent drift line. | |
void | GetEndPoint (double &x, double &y, double &z, double &t, int &st) const |
Get the end point and status flag of the most recent drift line. | |
unsigned int | GetNumberOfDriftLinePoints () const |
Get the number of points of the most recent drift line. | |
void | GetDriftLinePoint (const unsigned int i, double &x, double &y, double &z, double &t) const |
Get the coordinates and time of a point along the most recent drift line. | |
double | GetArrivalTimeSpread (const double eps=1.e-4) |
double | GetGain (const double eps=1.e-4) |
Compute the multiplication factor for the current drift line. | |
double | GetLoss (const double eps=1.e-4) |
Compute the attachment loss factor for the current drift line. | |
double | GetDriftTime () const |
void | GetAvalancheSize (double &ne, double &ni) const |
void | EnableDebugging () |
void | DisableDebugging () |
Calculation of drift lines based on macroscopic transport coefficients using Runge-Kutta-Fehlberg integration.
Definition at line 18 of file DriftLineRKF.hh.
Garfield::DriftLineRKF::DriftLineRKF | ( | ) |
Constructor.
Definition at line 45 of file DriftLineRKF.cc.
|
inline |
|
inline |
Definition at line 108 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::DisablePlotting | ( | ) |
Switch off drift line plotting.
Definition at line 85 of file DriftLineRKF.cc.
bool Garfield::DriftLineRKF::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 122 of file DriftLineRKF.cc.
bool Garfield::DriftLineRKF::DriftHole | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Simulate the drift line of a hole with a given starting point.
Definition at line 186 of file DriftLineRKF.cc.
bool Garfield::DriftLineRKF::DriftIon | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Simulate the drift line of an ion with a given starting point.
Definition at line 196 of file DriftLineRKF.cc.
bool Garfield::DriftLineRKF::DriftNegativeIon | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Simulate the drift line of an ion with a given starting point, assuming that it has negative charge.
Definition at line 206 of file DriftLineRKF.cc.
bool Garfield::DriftLineRKF::DriftPositron | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | t0 | ||
) |
Simulate the drift line of an electron with a given starting point, assuming that it has positive charge.
Definition at line 173 of file DriftLineRKF.cc.
|
inline |
Enable/disable simulation electron multiplication (default: on).
Definition at line 59 of file DriftLineRKF.hh.
|
inline |
Definition at line 107 of file DriftLineRKF.hh.
|
inline |
Enable/disable simulation of the ion tail (default: off).
Definition at line 61 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::EnablePlotting | ( | ViewDrift * | view | ) |
Switch on drift line plotting.
Definition at line 77 of file DriftLineRKF.cc.
|
inline |
Switch on/off calculation of induced currents (default: enabled).
Definition at line 34 of file DriftLineRKF.hh.
double Garfield::DriftLineRKF::GetArrivalTimeSpread | ( | const double | eps = 1.e-4 | ) |
Compute the sigma of the arrival time distribution for the current drift line by integrating the longitudinal diffusion coefficient.
Definition at line 676 of file DriftLineRKF.cc.
|
inline |
Definition at line 105 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::GetDriftLinePoint | ( | const unsigned int | i, |
double & | x, | ||
double & | y, | ||
double & | z, | ||
double & | t | ||
) | const |
Get the coordinates and time of a point along the most recent drift line.
Definition at line 1224 of file DriftLineRKF.cc.
|
inline |
Definition at line 103 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::GetEndPoint | ( | double & | x, |
double & | y, | ||
double & | z, | ||
double & | t, | ||
int & | st | ||
) | const |
Get the end point and status flag of the most recent drift line.
Definition at line 1209 of file DriftLineRKF.cc.
double Garfield::DriftLineRKF::GetGain | ( | const double | eps = 1.e-4 | ) |
Compute the multiplication factor for the current drift line.
Definition at line 740 of file DriftLineRKF.cc.
double Garfield::DriftLineRKF::GetLoss | ( | const double | eps = 1.e-4 | ) |
Compute the attachment loss factor for the current drift line.
Definition at line 794 of file DriftLineRKF.cc.
|
inline |
Get the number of points of the most recent drift line.
Definition at line 91 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::PrintDriftLine | ( | ) | const |
Print the trajectory of the most recent drift line.
Definition at line 1182 of file DriftLineRKF.cc.
|
inline |
Request (or not) the drift line calculation to be aborted if the drift line makes a bend sharper than 90 degrees.
Definition at line 49 of file DriftLineRKF.hh.
|
inline |
Set multiplication factor for the signal induced by electrons.
Definition at line 52 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::SetGainFluctuationsFixed | ( | const double | gain = -1. | ) |
Do not randomize the avalanche size.
Definition at line 87 of file DriftLineRKF.cc.
void Garfield::DriftLineRKF::SetGainFluctuationsPolya | ( | const double | theta, |
const double | mean = -1. |
||
) |
Sample the avalanche size from a Polya distribution with shape parameter theta.
Definition at line 101 of file DriftLineRKF.cc.
|
inline |
Set multiplication factor for the signal induced by holes.
Definition at line 54 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::SetIntegrationAccuracy | ( | const double | eps | ) |
Set the accuracy of the Runge Kutta Fehlberg drift line integration.
Definition at line 58 of file DriftLineRKF.cc.
|
inline |
Set multiplication factor for the signal induced by ions.
Definition at line 56 of file DriftLineRKF.hh.
void Garfield::DriftLineRKF::SetMaximumStepSize | ( | const double | ms | ) |
Set the maximum step size that is allowed. By default, there is no limit.
Definition at line 67 of file DriftLineRKF.cc.
void Garfield::DriftLineRKF::SetSensor | ( | Sensor * | s | ) |
Set the sensor.
Definition at line 50 of file DriftLineRKF.cc.
|
inline |
Set the number of points to be used when averaging the delayed signal vector over a time bin in the Sensor class. The averaging is done with a point Newton-Raphson integration. Default: 2.
Definition at line 39 of file DriftLineRKF.hh.
|
inline |
Do not apply an upper limit to the step size that is allowed.
Definition at line 46 of file DriftLineRKF.hh.