![]() |
Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
|
Namespaces | |
namespace | Degrade |
namespace | Magboltz |
namespace | Numerics |
Collection of numerical routines. | |
namespace | Polygon |
Classes | |
class | AvalancheGrid |
Calculate avalanches in a uniform electric field using avalanche statistics. More... | |
class | AvalancheGridSpaceCharge |
Propagates avalanches with the 2d (axi-symmetric) space-charge routine from Lippmann, Riegler (2004) in uniform background fields. More... | |
class | AvalancheMC |
Calculate drift lines and avalanches based on macroscopic transport coefficients, using Monte Carlo integration. More... | |
class | AvalancheMicroscopic |
Calculate electron drift lines and avalanches using microscopic tracking. More... | |
class | Component |
Abstract base class for components. More... | |
class | ComponentAnalyticField |
Semi-analytic calculation of two-dimensional configurations consisting of wires, planes, and tubes. More... | |
class | ComponentAnsys121 |
Component for importing and interpolating two-dimensional ANSYS field maps. More... | |
class | ComponentAnsys123 |
Component for importing and interpolating three-dimensional ANSYS field maps. More... | |
class | ComponentChargedRing |
Component for calculating the field of a system of charged r,z rings. More... | |
class | ComponentComsol |
Component for importing and interpolating Comsol field maps. More... | |
class | ComponentConstant |
Component with constant electric field. More... | |
class | ComponentCST |
Component for importing and interpolating field maps from CST. More... | |
class | ComponentElmer |
Component for importing field maps computed by Elmer. More... | |
class | ComponentElmer2d |
Component for importing two-dimensional field maps computed by Elmer. More... | |
class | ComponentFieldMap |
Base class for components based on finite-element field maps. More... | |
class | ComponentGrid |
Component for interpolating field maps on a regular mesh. More... | |
class | ComponentNeBem2d |
Two-dimensional implementation of the nearly exact Boundary Element Method. More... | |
class | ComponentNeBem3d |
Interface to neBEM. More... | |
class | ComponentNeBem3dMap |
Component for interpolating field maps stored in a mesh generated by neBEM. More... | |
class | ComponentParallelPlate |
Component for parallel-plate geometries. More... | |
class | ComponentTcad2d |
Interpolation in a two-dimensional field map created by Sentaurus Device. More... | |
class | ComponentTcad3d |
Interpolation in a three-dimensional field map created by Sentaurus Device. More... | |
class | ComponentTcadBase |
Interpolation in a field map created by Sentaurus Device. More... | |
class | ComponentUser |
Simple component with electric field given by a user function. More... | |
class | ComponentVoxel |
Component for interpolating field maps stored in a regular mesh. More... | |
class | DriftLineRKF |
Calculation of drift lines based on macroscopic transport coefficients using Runge-Kutta-Fehlberg integration. More... | |
class | Geometry |
Abstract base class for geometry classes. More... | |
class | GeometryRoot |
Use a geometry defined using the ROOT TGeo package. More... | |
class | GeometrySimple |
"Native" geometry, using simple shapes. More... | |
class | KDTree |
Main k-d tree class. More... | |
class | KDTreeNode |
A node in the k-d tree. More... | |
struct | KDTreeResult |
Search result. More... | |
class | Medium |
Abstract base class for components. More... | |
class | MediumCdTe |
Cadmium-Telluride. More... | |
class | MediumConductor |
Conducting medium. More... | |
class | MediumDiamond |
Diamond. More... | |
class | MediumGaAs |
Gallium-Arsenide. More... | |
class | MediumGaN |
Gallium-Nitride. More... | |
class | MediumGas |
Base class for gas media. More... | |
class | MediumMagboltz |
Interface to Magboltz (version 11). More... | |
class | MediumPlastic |
Plastic medium. More... | |
class | MediumSilicon |
Solid crystalline silicon More... | |
class | OpticalData |
Photoabsorption cross-sections for some gases. More... | |
struct | Panel |
Surface panel. More... | |
class | PlottingEngine |
Plotting style. More... | |
class | QuadTree |
Quadtree search. More... | |
class | Random |
class | RandomEngine |
Abstract base class for random number generators. More... | |
class | RandomEngineRoot |
class | RandomEngineSTL |
class | Sensor |
Sensor. More... | |
class | Shaper |
Class for signal processing. More... | |
class | Solid |
Abstract base class for solids. More... | |
class | SolidBox |
Box. More... | |
class | SolidExtrusion |
Extrusion. More... | |
class | SolidHole |
Box with a cylindrical hole. More... | |
class | SolidRidge |
Triangular prism (Toblerone bar). More... | |
class | SolidSphere |
Sphere. More... | |
class | SolidTube |
Cylindrical tube. More... | |
class | SolidWire |
Wire. More... | |
class | Track |
Abstract base class for track generation. More... | |
class | TrackBichsel |
Generate tracks using differential cross-sections for silicon computed by Hans Bichsel. More... | |
class | TrackDegrade |
Interface to Degrade. More... | |
class | TrackElectron |
[WIP] Ionization calculation based on MIP program (S. Biagi). More... | |
class | TrackHeed |
Generate tracks using Heed++. More... | |
class | TrackPAI |
class | TrackSimple |
Generate tracks based on a cluster density given by the user. More... | |
class | TrackSrim |
Generate tracks based on SRIM energy loss, range and straggling tables. More... | |
class | TrackTrim |
Generate tracks based on TRIM output files. More... | |
class | Vec1Impl |
class | Vec2Impl |
class | Vec3Impl |
class | Vector |
class | ViewBase |
Base class for visualization classes. More... | |
class | ViewCell |
Visualize the "cell" defined in an analytic-field component. More... | |
class | ViewDrift |
Visualize drift lines and tracks. More... | |
class | ViewFEMesh |
Draw the mesh of a field-map component. More... | |
class | ViewField |
Visualize the potential or electric field of a component or sensor. More... | |
class | ViewGeometry |
Visualize a geometry defined using the "native" shapes. More... | |
class | ViewIsochrons |
Draw equal time contour lines. More... | |
class | ViewMedium |
Plot transport coefficients as function of electric and magnetic field. More... | |
class | ViewSignal |
Plot the signal computed by a sensor as a ROOT histogram. More... |
Typedefs | |
typedef std::vector< std::vector< double > > | KDTreeArray |
using | Vec3 = Vec3Impl<double> |
using | Vec3D = Vec3Impl<double> |
using | Vec3F = Vec3Impl<float> |
using | ViewMesh = ViewFEMesh |
Enumerations | |
enum class | Particle { Electron = 0 , Ion , Hole , Positron , NegativeIon , Photon } |
enum class | MPRunMode { Normal = 0 , GPUExclusive } |
Functions | |
double | RndmUniform () |
Draw a random number uniformly distributed in the range [0, 1). | |
double | RndmUniformPos () |
Draw a random number uniformly distributed in the range (0, 1). | |
std::pair< double, double > | RndmGaussians () |
Draw two Gaussian random variates with mean zero and standard deviation one. | |
double | RndmGaussian () |
Draw a Gaussian random variate with mean zero and standard deviation one. | |
std::pair< double, double > | RndmGaussians (const double mu, const double sigma) |
Draw two Gaussian random variates with mean mu and standard deviation sigma. | |
double | RndmGaussian (const double mu, const double sigma) |
Draw a Gaussian random variate with mean mu and standard deviation sigma. | |
double | RndmLorentzian (const double mu, const double gamma) |
Draw a Lorentzian random variate with mean mu and half-width at half maximum gamma. | |
double | RndmVoigt (const double mu, const double sigma, const double gamma) |
Draw a random number according to a Voigt function with mean mu. | |
unsigned int | RndmYuleFurry (const double mean) |
Draw a random number from a geometric distribution. | |
double | RndmPolya (const double theta) |
Draw a Polya distributed random number. | |
double | RndmLandau () |
Draw a random number from a Landau distribution. | |
double | RndmVavilov (const double rkappa, const double beta2) |
Draw a random number from a Vavilov distribution. | |
int | RndmPoisson (const double mean) |
Draw a random number from a Poisson distribution. | |
double | RndmHeedWF (const double w, const double f) |
Draw a random energy needed to create a single electron in a material asymptotic work function W and Fano factor F, according to Igor Smirnov's phenomenological model. | |
void | RndmDirection (double &dx, double &dy, double &dz, const double length=1.) |
Draw a random (isotropic) direction vector. | |
class | GARFIELD_CLASS_NAME (TetrahedralTree) |
Helper class for searches in field maps. | |
void | ltrim (std::string &line) |
void | rtrim (std::string &line) |
std::vector< std::string > | tokenize (const std::string &line) |
bool | startsWith (const std::string &line, const std::string &s) |
Variables | |
ComponentNeBem3d * | gComponentNeBem3d |
typedef std::vector<std::vector<double> > Garfield::KDTreeArray |
using Garfield::Vec3 = Vec3Impl<double> |
Definition at line 27 of file TetrahedralTree.hh.
using Garfield::Vec3D = Vec3Impl<double> |
using Garfield::Vec3F = Vec3Impl<float> |
using Garfield::ViewMesh = ViewFEMesh |
Definition at line 163 of file ViewFEMesh.hh.
|
strong |
|
strong |
Enumerator | |
---|---|
Electron | |
Ion | |
Hole | |
Positron | |
NegativeIon | |
Photon |
Definition at line 7 of file GarfieldConstants.hh.
class Garfield::GARFIELD_CLASS_NAME | ( | TetrahedralTree | ) |
Helper class for searches in field maps.
This class stores the mesh nodes and elements in an Octree data structure to optimize the element search operations
Author: Ali Sheharyar
Organization: Texas A&M University at Qatar
Destructor
Insert a mesh element with given bounding box and index to the tree.
Create and initialise GPU Transfer class
Definition at line 1 of file TetrahedralTree.hh.
|
inline |
Definition at line 11 of file Utilities.hh.
|
inline |
Draw a random (isotropic) direction vector.
Definition at line 146 of file Random.hh.
|
inline |
Draw a Gaussian random variate with mean zero and standard deviation one.
Definition at line 51 of file Random.hh.
|
inline |
Draw a Gaussian random variate with mean mu and standard deviation sigma.
Definition at line 66 of file Random.hh.
|
inline |
Draw two Gaussian random variates with mean zero and standard deviation one.
Definition at line 36 of file Random.hh.
|
inline |
double Garfield::RndmHeedWF | ( | const double | w, |
const double | f ) |
Draw a random energy needed to create a single electron in a material asymptotic work function W and Fano factor F, according to Igor Smirnov's phenomenological model.
double Garfield::RndmLandau | ( | ) |
Draw a random number from a Landau distribution.
|
inline |
Draw a Lorentzian random variate with mean mu and half-width at half maximum gamma.
int Garfield::RndmPoisson | ( | const double | mean | ) |
Draw a random number from a Poisson distribution.
|
inline |
Draw a Polya distributed random number.
Definition at line 109 of file Random.hh.
|
inline |
|
inline |
Draw a random number uniformly distributed in the range (0, 1).
double Garfield::RndmVavilov | ( | const double | rkappa, |
const double | beta2 ) |
Draw a random number from a Vavilov distribution.
|
inline |
Draw a random number according to a Voigt function with mean mu.
The Voigt function is a convolution of a Gaussian (standard deviation sigma) and a Lorentzian (half width gamma).
Definition at line 80 of file Random.hh.
|
inline |
Draw a random number from a geometric distribution.
Definition at line 89 of file Random.hh.
|
inline |
Definition at line 17 of file Utilities.hh.
|
inline |
Definition at line 33 of file Utilities.hh.
|
inline |
Definition at line 24 of file Utilities.hh.
|
extern |