Garfield++ 4.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Namespaces | |
namespace | Magboltz |
namespace | Numerics |
Collection of numerical routines. | |
namespace | Polygon |
Classes | |
class | AvalancheGrid |
class | AvalancheMC |
class | AvalancheMicroscopic |
Calculate electron drift lines and avalanches using microscopic tracking. More... | |
class | Component |
Abstract base class for components. More... | |
class | ComponentAnalyticField |
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 | ComponentComsol |
Component for importing and interpolating Comsol field maps. More... | |
class | ComponentConstant |
Component with constant electric field. More... | |
class | ComponentCST |
class | ComponentElmer |
Component for importing field maps computed by Elmer. More... | |
class | ComponentElmer2D |
Component for importing 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 |
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 | HeedChamber |
class | KDTree |
class | KDTreeNode |
A node in the k-d tree. More... | |
struct | KDTreeResult |
Search result. More... | |
class | Medium |
Abstract base class for media. 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 |
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 | RandomEngine |
Abstract base class for random number generators. More... | |
class | RandomEngineRoot |
ROOT random number generator. More... | |
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 | TetrahedralTree |
Helper class for searches in field maps. More... | |
class | Track |
Abstract base class for track generation. More... | |
class | TrackBichsel |
class | TrackElectron |
Ionization calculation based on MIP program (S. Biagi). More... | |
class | TrackHeed |
Generate tracks using Heed++. More... | |
class | TrackPAI |
Energy loss calculation using the Photoabsorption-Ionisation Model. More... | |
class | TrackSimple |
Generate tracks based on a cluster density given by the user. More... | |
class | TrackSrim |
class | TrackTrim |
struct | Vec3 |
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 | Vec = std::array< double, 3 > |
Functions | |
void | SetDefaultStyle () |
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). | |
double | RndmGaussian () |
Draw a Gaussian random variate with mean zero and standard deviation one. | |
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) |
double | RndmVoigt (const double mu, const double sigma, const double gamma) |
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) |
void | RndmDirection (double &dx, double &dy, double &dz, const double length=1.) |
Draw a random (isotropic) direction vector. | |
void | ltrim (std::string &line) |
bool | operator< (const KDTreeResult &e1, const KDTreeResult &e2) |
Variables | |
ComponentNeBem3d * | gComponentNeBem3d = nullptr |
PlottingEngine | plottingEngine |
RandomEngineRoot | randomEngine |
Random number generator. | |
typedef std::vector<std::vector<double> > Garfield::KDTreeArray |
using Garfield::Vec = typedef std::array<double, 3> |
Definition at line 48 of file DriftLineRKF.cc.
|
inline |
Definition at line 10 of file Utilities.hh.
Referenced by Garfield::ComponentTcadBase< N >::LoadData(), Garfield::ComponentTcadBase< N >::LoadGrid(), and Garfield::ComponentTcadBase< N >::LoadWeightingField().
|
inline |
|
inline |
Draw a random (isotropic) direction vector.
Definition at line 107 of file Random.hh.
Referenced by Garfield::Medium::GetElectronCollision(), Garfield::MediumSilicon::GetElectronCollision(), Garfield::Medium::GetElectronMomentum(), Garfield::MediumSilicon::GetElectronMomentum(), Garfield::TrackBichsel::NewTrack(), Garfield::TrackElectron::NewTrack(), Garfield::TrackPAI::NewTrack(), Garfield::TrackSimple::NewTrack(), Garfield::TrackHeed::NewTrack(), Garfield::TrackSrim::NewTrack(), Garfield::TrackTrim::NewTrack(), Garfield::TrackHeed::TransportDeltaElectron(), and Garfield::TrackHeed::TransportPhoton().
|
inline |
Draw a Gaussian random variate with mean zero and standard deviation one.
Definition at line 24 of file Random.hh.
Referenced by Garfield::Sensor::AddWhiteNoise(), Garfield::TrackSrim::NewTrack(), Garfield::TrackSrim::RndmEnergyLoss(), RndmGaussian(), RndmPoisson(), RndmVoigt(), and Heed::rnorm_improved().
|
inline |
Draw a Gaussian random variate with mean mu and standard deviation sigma.
Definition at line 47 of file Random.hh.
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.
Definition at line 699 of file Random.cc.
Referenced by Garfield::TrackSrim::NewTrack(), and Garfield::TrackTrim::NewTrack().
double Garfield::RndmLandau | ( | ) |
Draw a random number from a Landau distribution.
Definition at line 104 of file Random.cc.
Referenced by Garfield::TrackSrim::RndmEnergyLoss().
|
inline |
Draw a Lorentzian random variate with mean mu and half-width at half maximum gamma.
Definition at line 53 of file Random.hh.
Referenced by RndmVoigt().
int Garfield::RndmPoisson | ( | const double | mean | ) |
Draw a random number from a Poisson distribution.
Definition at line 664 of file Random.cc.
Referenced by Garfield::Sensor::AddWhiteNoise().
|
inline |
Draw a Polya distributed random number.
Definition at line 70 of file Random.hh.
|
inline |
Draw a random number uniformly distributed in the range [0, 1).
Definition at line 14 of file Random.hh.
Referenced by Garfield::Sensor::AddWhiteNoise(), Garfield::MediumSilicon::ComputeSecondaries(), Garfield::TrackBichsel::GetCluster(), Garfield::TrackElectron::GetCluster(), Garfield::TrackPAI::GetCluster(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::MediumSilicon::GetElectronCollision(), Garfield::MediumSilicon::GetElectronMomentum(), Garfield::MediumMagboltz::GetPhotonCollision(), Garfield::Polygon::Inside(), main(), RndmDirection(), RndmGaussian(), RndmHeedWF(), RndmLorentzian(), RndmPoisson(), RndmUniformPos(), and RndmVavilov().
|
inline |
Draw a random number uniformly distributed in the range (0, 1).
Definition at line 17 of file Random.hh.
Referenced by Garfield::MediumSilicon::ComputeSecondaries(), Garfield::TrackBichsel::GetCluster(), Garfield::TrackSimple::GetCluster(), Garfield::TrackElectron::GetCluster(), Garfield::TrackPAI::GetCluster(), Garfield::MediumMagboltz::GetElectronCollision(), RndmLandau(), and RndmPolya().
double Garfield::RndmVavilov | ( | const double | rkappa, |
const double | beta2 | ||
) |
Draw a random number from a Vavilov distribution.
Definition at line 300 of file Random.cc.
Referenced by Garfield::TrackSrim::RndmEnergyLoss().
|
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 61 of file Random.hh.
|
inline |
Definition at line 10 of file Plotting.hh.
ComponentNeBem3d * Garfield::gComponentNeBem3d = nullptr |
Definition at line 382 of file ComponentNeBem3d.cc.
Referenced by Garfield::ComponentNeBem3d::Initialise(), neBEM::neBEMGetBoundingPlanes(), neBEM::neBEMGetMirror(), neBEM::neBEMGetNbPrimitives(), neBEM::neBEMGetPeriodicities(), neBEM::neBEMGetPrimitive(), neBEM::neBEMVolumeDescription(), and neBEM::neBEMVolumePoint().
PlottingEngine Garfield::plottingEngine |
Definition at line 13 of file PlottingEngine.cc.
Referenced by main(), SetDefaultStyle(), and Garfield::ViewBase::ViewBase().
RandomEngineRoot Garfield::randomEngine |
Random number generator.
Definition at line 6 of file RandomEngineRoot.cc.
Referenced by main(), and RndmUniform().