![]() |
Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
|
Interpolation in a field map created by Sentaurus Device. More...
#include <ComponentTcadBase.hh>
Classes | |
| struct | Defect |
| struct | Element |
| struct | Region |
Public Member Functions | |
| ComponentTcadBase ()=delete | |
| Default constructor. | |
| ComponentTcadBase (const std::string &name) | |
| Constructor. | |
| virtual | ~ComponentTcadBase () |
| Destructor. | |
| bool | Initialise (const std::string &gridfilename, const std::string &datafilename) |
| Import mesh and field map from files. | |
| bool | SetWeightingField (const std::string &datfile1, const std::string &datfile2, const double dv, const std::string &label) |
| Import field maps defining the prompt weighting field and potential. | |
| bool | SetWeightingPotential (const std::string &datfile1, const std::string &datfile2, const double dv, const std::string &label) |
| Import field maps defining the prompt weighting field and potential. | |
| bool | SetWeightingFieldShift (const std::string &label, const double x, const double y, const double z) |
| Shift the maps of weighting field/potential for a given electrode with respect to the original mesh. | |
| bool | SetDynamicWeightingPotential (const std::string &datfile1, const std::string &datfile2, const double dv, const double t, const std::string &label) |
| Import time-dependent weighting potentials at t >= 0. | |
| bool | SetDynamicWeightingField (const std::string &datfile1, const std::string &datfile2, const double dv, const double t, const std::string &label) |
| Import time-dependent weighting fields at t >= 0. | |
| void | PrintRegions () const |
| List all currently defined regions. | |
| size_t | GetNumberOfRegions () const |
| Get the number of regions in the device. | |
| void | GetRegion (const size_t ireg, std::string &name, bool &active) const |
| Get the name and "active volume" flag of a region. | |
| void | SetDriftRegion (const size_t ireg) |
| Make a region active ("driftable"). | |
| void | UnsetDriftRegion (const size_t ireg) |
| Make a region inactive. | |
| void | SetMedium (const size_t ireg, Medium *m) |
| Set the medium to be associated to a given region. | |
| void | SetMedium (const std::string &material, Medium *m) |
| Set the medium to be associated to all regions with a given material. | |
| size_t | GetNumberOfElements () const override |
| Return the number of mesh elements. | |
| bool | GetElementNodes (const size_t i, std::vector< size_t > &nodes) const override |
| Get the indices of the nodes constituting a given element. | |
| bool | GetElementRegion (const size_t i, size_t ®ion, bool &active) const override |
| Get the region/material of a mesh element and a flag whether it is associated to an active medium. | |
| size_t | GetNumberOfNodes () const override |
| Return the number of mesh nodes. | |
| void | EnableVelocityMap (const bool on) |
| Switch use of the imported velocity map on/off. | |
| size_t | GetNumberOfDonors () |
| Get the number of donor states found in the map. | |
| size_t | GetNumberOfAcceptors () |
| Get the number of acceptor states found in the map. | |
| bool | SetDonor (const size_t donorNumber, const double exsec, const double hxsec, const double concentration) |
| Set the properties of a donor-type defect state. | |
| bool | SetAcceptor (const size_t acceptorNumber, const double exsec, const double hxsec, const double concentration) |
| Set the properties of an acceptor-type defect state. | |
| void | EnableAlphaMap (const bool on=true) |
| Use the imported impact ionisation map or not. | |
| void | EnableTrapOccupationMap (const bool on=true) |
| Use the imported trapping map or not. | |
| void | EnableLifetimeMap (const bool on=true) |
| Use the imported lifetime map or not. | |
| bool | GetElectronMobility (const double x, const double y, const double z, double &mob) |
| Get the electron mobility at a given point in the mesh. | |
| bool | GetHoleMobility (const double x, const double y, const double z, double &mob) |
| Get the hole mobility at a given point in the mesh. | |
| double | ElectronLifetime (const double x, const double y, const double z) |
| double | HoleLifetime (const double x, const double y, const double z) |
| void | WeightingField (const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string &label) override |
| Calculate the weighting field at a given point and for a given electrode. | |
| double | WeightingPotential (const double x, const double y, const double z, const std::string &label) override |
| Calculate the weighting potential at a given point. | |
| const std::vector< double > & | DelayedSignalTimes (const std::string &label) override |
| Return the time steps at which the delayed weighting potential/field are stored/evaluated. | |
| void | DelayedWeightingField (const double x, const double y, const double z, const double t, double &wx, double &wy, double &wz, const std::string &label) override |
| Calculate the delayed weighting field at a given point and time and for a given electrode. | |
| double | DelayedWeightingPotential (const double x, const double y, const double z, const double t, const std::string &label) override |
| Calculate the delayed weighting potential at a given point and time and for a given electrode. | |
| bool | GetVoltageRange (double &vmin, double &vmax) override |
| Calculate the voltage range [V]. | |
| bool | HasVelocityMap () const override |
| Does the component have velocity maps? | |
| bool | ElectronVelocity (const double x, const double y, const double z, double &vx, double &vy, double &vz) override |
| Get the electron drift velocity. | |
| bool | HoleVelocity (const double x, const double y, const double z, double &vx, double &vy, double &vz) override |
| Get the hole drift velocity. | |
| bool | HasTownsendMap () const override |
| Does the component have maps of the Townsend coefficient? | |
| bool | HasAttachmentMap () const override |
| Does the component have maps of the attachment coefficient? | |
| bool | HasMobilityMap () const override |
| Does the component have maps of the low-field mobility? | |
| bool | ElectronAttachment (const double x, const double y, const double z, double &eta) override |
| Get the electron attachment coefficient. | |
| bool | HoleAttachment (const double x, const double y, const double z, double &eta) override |
| Get the hole attachment coefficient. | |
| bool | ElectronMobility (const double x, const double y, const double z, double &mu) override |
| bool | HoleMobility (const double x, const double y, const double z, double &mu) override |
| Get the hole Mobility coefficient. | |
| bool | ElectronTownsend (const double x, const double y, const double z, double &alpha) override |
| Get the electron Townsend coefficient. | |
| bool | HoleTownsend (const double x, const double y, const double z, double &alpha) override |
| Get the hole Townsend coefficient. | |
| Public Member Functions inherited from Garfield::Component | |
| Component ()=delete | |
| Default constructor. | |
| Component (const std::string &name) | |
| Constructor. | |
| virtual | ~Component ()=default |
| Destructor. | |
| virtual void | SetGeometry (Geometry *geo) |
| Define the geometry. | |
| virtual void | Clear () |
| Reset. | |
| virtual Medium * | GetMedium (const double x, const double y, const double z) |
| Get the medium at a given location (x, y, z). | |
| virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)=0 |
| Calculate the drift field at given point. | |
| virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, double &v, Medium *&m, int &status)=0 |
| Calculate the drift field [V/cm] and potential [V] at (x, y, z). | |
| std::array< double, 3 > | ElectricField (const double x, const double y, const double z) |
| Calculate the drift field [V/cm] at (x, y, z). | |
| virtual double | ElectricPotential (const double x, const double y, const double z) |
| Calculate the (drift) electrostatic potential [V] at (x, y, z). | |
| virtual void | DelayedWeightingPotentials (const double x, const double y, const double z, const std::string &label, std::vector< double > &dwp) |
| Calculate the delayed weighting potentials at a given point and for a given electrode, for a set of pre-defined times. | |
| virtual void | MagneticField (const double x, const double y, const double z, double &bx, double &by, double &bz, int &status) |
| Calculate the magnetic field at a given point. | |
| void | SetMagneticField (const double bx, const double by, const double bz) |
| Set a constant magnetic field. | |
| virtual bool | IsReady () |
| Ready for use? | |
| virtual bool | Is3d () |
| Does the component have a 3D field (map)? | |
| virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
| Get the bounding box coordinates. | |
| virtual bool | GetElementaryCell (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
| Get the coordinates of the elementary cell. | |
| double | CellSizeX () |
| double | CellSizeY () |
| double | CellSizeZ () |
| virtual bool | GetNode (const size_t i, double &x, double &y, double &z) const |
| Get the coordinates of a mesh node. | |
| double | IntegrateFluxCircle (const double xc, const double yc, const double r, const unsigned int nI=50) |
| Integrate the normal component of the electric field over a circle. | |
| double | IntegrateFluxSphere (const double xc, const double yc, const double zc, const double r, const unsigned int nI=20) |
| Integrate the normal component of the electric field over a sphere. | |
| double | IntegrateFluxParallelogram (const double x0, const double y0, const double z0, const double dx1, const double dy1, const double dz1, const double dx2, const double dy2, const double dz2, const unsigned int nU=20, const unsigned int nV=20) |
| Integrate the normal component of the electric field over a parallelogram. | |
| double | IntegrateWeightingFluxParallelogram (const std::string &label, const double x0, const double y0, const double z0, const double dx1, const double dy1, const double dz1, const double dx2, const double dy2, const double dz2, const unsigned int nU=20, const unsigned int nV=20) |
| Integrate the normal component of the weighting field over a parallelogram. | |
| double | IntegrateFluxLine (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, const double xp, const double yp, const double zp, const unsigned int nI, const int isign=0) |
| Integrate the electric field flux through a line from (x0,y0,z0) to (x1,y1,z1) along a direction (xp,yp,zp). | |
| virtual bool | CrossedWire (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, double &xc, double &yc, double &zc, const bool centre, double &rc) |
| Determine whether the line between two points crosses a wire. | |
| virtual bool | InTrapRadius (const double q0, const double x0, const double y0, const double z0, double &xw, double &yw, double &rw) |
| Determine whether a particle is inside the trap radius of a wire. | |
| virtual bool | CrossedPlane (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, double &xc, double &yc, double &zc) |
| Determine whether the line between two points crosses a plane. | |
| void | EnablePeriodicityX (const bool on=true) |
| Enable simple periodicity in the | |
| void | EnablePeriodicityY (const bool on=true) |
| Enable simple periodicity in the | |
| void | EnablePeriodicityZ (const bool on=true) |
| Enable simple periodicity in the | |
| void | IsPeriodic (bool &perx, bool &pery, bool &perz) |
| Return periodicity flags. | |
| void | EnableMirrorPeriodicityX (const bool on=true) |
| Enable mirror periodicity in the | |
| void | EnableMirrorPeriodicityY (const bool on=true) |
| Enable mirror periodicity in the | |
| void | EnableMirrorPeriodicityZ (const bool on=true) |
| Enable mirror periodicity in the | |
| void | IsMirrorPeriodic (bool &perx, bool &pery, bool &perz) |
| Return mirror periodicity flags. | |
| void | EnableAxialPeriodicityX (const bool on=true) |
| Enable axial periodicity in the | |
| void | EnableAxialPeriodicityY (const bool on=true) |
| Enable axial periodicity in the | |
| void | EnableAxialPeriodicityZ (const bool on=true) |
| Enable axial periodicity in the | |
| void | IsAxiallyPeriodic (bool &perx, bool &pery, bool &perz) |
| Return axial periodicity flags. | |
| void | EnableRotationSymmetryX (const bool on=true) |
| Enable rotation symmetry around the | |
| void | EnableRotationSymmetryY (const bool on=true) |
| Enable rotation symmetry around the | |
| void | EnableRotationSymmetryZ (const bool on=true) |
| Enable rotation symmetry around the | |
| void | IsRotationSymmetric (bool &rotx, bool &roty, bool &rotz) |
| Return rotation symmetry flags. | |
| void | EnableTriangleSymmetricXY (const bool on=true, const bool oct=2) |
| Enable triangular periodicity in the | |
| void | EnableTriangleSymmetricXZ (const bool on=true, const bool oct=2) |
| Enable triangular periodicity in the | |
| void | EnableTriangleSymmetricYZ (const bool on=true, const bool oct=2) |
| Enable triangular periodicity in the | |
| void | EnableDebugging (const bool on=true) |
| Switch on debugging messages. | |
| void | DisableDebugging () |
| Switch off debugging messages. | |
| virtual bool | HasMagneticField () const |
| Does the component have a non-zero magnetic field? | |
| virtual double | StepSizeHint () |
| virtual double | CreateGPUTransferObject (ComponentGPU *&comp_gpu) |
| Create and initialise GPU Transfer class. | |
Protected Member Functions | |
| void | UpdatePeriodicity () override |
| Verify periodicities. | |
| void | Cleanup () |
| virtual bool | Interpolate (const double x, const double y, const double z, const std::vector< double > &field, double &f)=0 |
| virtual bool | Interpolate (const double x, const double y, const double z, const std::vector< std::array< double, N > > &field, double &fx, double &fy, double &fz)=0 |
| virtual void | FillTree ()=0 |
| size_t | FindRegion (const std::string &name) const |
| void | MapCoordinates (std::array< double, N > &x, std::array< bool, N > &mirr) const |
| bool | InBoundingBox (const std::array< double, N > &x) const |
| void | UpdateAttachment () |
| void | ComputeEtaFromLifetime () |
| void | ComputeEtaFromTraps () |
| bool | GetOffset (const std::string &label, double &dx, double &dy, double &dz) const |
| bool | LoadGrid (const std::string &gridfilename) |
| bool | LoadData (const std::string &datafilename) |
| bool | ReadDataset (std::ifstream &datafile, const std::string &dataset) |
| bool | LoadWeightingField (const std::string &datafilename, std::vector< std::array< double, N > > &wf, std::vector< double > &wp) |
| Protected Member Functions inherited from Garfield::Component | |
| virtual void | Reset ()=0 |
| Reset the component. | |
Static Protected Member Functions | |
| static unsigned int | ElementVertices (const Element &element) |
Protected Attributes | |
| std::vector< Region > | m_regions |
| std::vector< std::array< double, N > > | m_vertices |
| std::vector< Element > | m_elements |
| std::vector< double > | m_epot |
| std::vector< std::array< double, N > > | m_efield |
| std::map< std::string, std::vector< std::array< double, N > > > | m_wfield |
| std::map< std::string, std::vector< double > > | m_wpot |
| std::map< std::string, std::vector< double > > | m_wshift |
| std::map< std::string, std::vector< std::vector< std::array< double, N > > > > | m_dwf |
| std::map< std::string, std::vector< std::vector< double > > > | m_dwp |
| std::map< std::string, std::vector< double > > | m_dwtf |
| std::map< std::string, std::vector< double > > | m_dwtp |
| std::vector< std::array< double, N > > | m_eVelocity |
| std::vector< std::array< double, N > > | m_hVelocity |
| std::vector< double > | m_eMobility |
| std::vector< double > | m_hMobility |
| std::vector< double > | m_eAlpha |
| std::vector< double > | m_hAlpha |
| std::vector< double > | m_eLifetime |
| std::vector< double > | m_hLifetime |
| std::vector< std::vector< float > > | m_donorOcc |
| std::vector< std::vector< float > > | m_acceptorOcc |
| std::vector< double > | m_eEta |
| std::vector< double > | m_hEta |
| std::vector< Defect > | m_donors |
| std::vector< Defect > | m_acceptors |
| bool | m_useVelocityMap = false |
| bool | m_useTrapOccMap = false |
| bool | m_useLifetimeMap = false |
| bool | m_useAlphaMap = false |
| std::array< double, 3 > | m_bbMin = {{0., 0., 0.}} |
| std::array< double, 3 > | m_bbMax = {{0., 0., 0.}} |
| double | m_pMin = 0. |
| double | m_pMax = 0. |
| Protected Attributes inherited from Garfield::Component | |
| std::string | m_className {"Component"} |
| Class name. | |
| Geometry * | m_geometry {nullptr} |
| Pointer to the geometry. | |
| std::array< double, 3 > | m_b0 = {{0., 0., 0.}} |
| Constant magnetic field. | |
| bool | m_ready {false} |
| Ready for use? | |
| bool | m_debug {false} |
| Switch on/off debugging messages. | |
| std::array< bool, 3 > | m_periodic = {{false, false, false}} |
| Simple periodicity in x, y, z. | |
| std::array< bool, 3 > | m_mirrorPeriodic = {{false, false, false}} |
| Mirror periodicity in x, y, z. | |
| std::array< bool, 3 > | m_axiallyPeriodic = {{false, false, false}} |
| Axial periodicity in x, y, z. | |
| std::array< bool, 3 > | m_rotationSymmetric = {{false, false, false}} |
| Rotation symmetry around x-axis, y-axis, z-axis. | |
| std::array< bool, 3 > | m_triangleSymmetric = {{false, false, false}} |
| Triangle symmetric in the xy, xz, and yz plane. | |
| int | m_triangleSymmetricOct = 0 |
| Triangle symmetric octant of imported map (0 < phi < Pi/4 --> octant 1). | |
| const std::array< int, 4 > | m_triangleOctRules = {1, 4, 5, 8} |
| Octants where |x| >= |y|. | |
| bool | m_outsideCone = false |
| std::vector< double > | m_wdtimes |
| Time steps at which the delayed weighting potentials/fields are stored. | |
Static Protected Attributes | |
| static constexpr size_t | nMaxVertices = 4 |
Interpolation in a field map created by Sentaurus Device.
Definition at line 15 of file ComponentTcadBase.hh.
|
delete |
Default constructor.
|
inline |
Constructor.
Definition at line 20 of file ComponentTcadBase.hh.
|
inlinevirtual |
|
protected |
|
protected |
|
protected |
|
inlineoverridevirtual |
Return the time steps at which the delayed weighting potential/field are stored/evaluated.
Reimplemented from Garfield::Component.
Definition at line 135 of file ComponentTcadBase.hh.
|
overridevirtual |
Calculate the delayed weighting field at a given point and time and for a given electrode.
| x,y,z | coordinates [cm]. |
| t | time [ns]. |
| wx,wy,wz | components of the weighting field [1/cm]. |
| label | name of the electrode |
Reimplemented from Garfield::Component.
|
overridevirtual |
Calculate the delayed weighting potential at a given point and time and for a given electrode.
| x,y,z | coordinates [cm]. |
| t | time [ns]. |
| label | name of the electrode |
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the electron attachment coefficient.
Reimplemented from Garfield::Component.
| double Garfield::ComponentTcadBase< N >::ElectronLifetime | ( | const double | x, |
| const double | y, | ||
| const double | z ) |
|
overridevirtual |
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the electron Townsend coefficient.
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the electron drift velocity.
Reimplemented from Garfield::Component.
|
inlinestaticprotected |
Definition at line 299 of file ComponentTcadBase.hh.
|
inline |
| void Garfield::ComponentTcadBase< N >::EnableLifetimeMap | ( | const bool | on = true | ) |
Use the imported lifetime map or not.
| void Garfield::ComponentTcadBase< N >::EnableTrapOccupationMap | ( | const bool | on = true | ) |
Use the imported trapping map or not.
| void Garfield::ComponentTcadBase< N >::EnableVelocityMap | ( | const bool | on | ) |
Switch use of the imported velocity map on/off.
|
protectedpure virtual |
Implemented in Garfield::ComponentTcad2d, and Garfield::ComponentTcad3d.
|
protected |
| bool Garfield::ComponentTcadBase< N >::GetElectronMobility | ( | const double | x, |
| const double | y, | ||
| const double | z, | ||
| double & | mob ) |
Get the electron mobility at a given point in the mesh.
|
overridevirtual |
Get the indices of the nodes constituting a given element.
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the region/material of a mesh element and a flag whether it is associated to an active medium.
Reimplemented from Garfield::Component.
| bool Garfield::ComponentTcadBase< N >::GetHoleMobility | ( | const double | x, |
| const double | y, | ||
| const double | z, | ||
| double & | mob ) |
Get the hole mobility at a given point in the mesh.
|
inline |
Get the number of acceptor states found in the map.
Definition at line 98 of file ComponentTcadBase.hh.
|
inline |
Get the number of donor states found in the map.
Definition at line 96 of file ComponentTcadBase.hh.
|
inlineoverridevirtual |
Return the number of mesh elements.
Reimplemented from Garfield::Component.
Definition at line 85 of file ComponentTcadBase.hh.
|
inlineoverridevirtual |
Return the number of mesh nodes.
Reimplemented from Garfield::Component.
Definition at line 90 of file ComponentTcadBase.hh.
|
inline |
|
protected |
| void Garfield::ComponentTcadBase< N >::GetRegion | ( | const size_t | ireg, |
| std::string & | name, | ||
| bool & | active ) const |
Get the name and "active volume" flag of a region.
|
overridevirtual |
Calculate the voltage range [V].
Implements Garfield::Component.
|
inlineoverridevirtual |
Does the component have maps of the attachment coefficient?
Reimplemented from Garfield::Component.
Definition at line 161 of file ComponentTcadBase.hh.
|
inlineoverridevirtual |
Does the component have maps of the low-field mobility?
Reimplemented from Garfield::Component.
Definition at line 165 of file ComponentTcadBase.hh.
|
inlineoverridevirtual |
Does the component have maps of the Townsend coefficient?
Reimplemented from Garfield::Component.
Definition at line 158 of file ComponentTcadBase.hh.
|
inlineoverridevirtual |
Does the component have velocity maps?
Reimplemented from Garfield::Component.
Definition at line 150 of file ComponentTcadBase.hh.
|
overridevirtual |
Get the hole attachment coefficient.
Reimplemented from Garfield::Component.
| double Garfield::ComponentTcadBase< N >::HoleLifetime | ( | const double | x, |
| const double | y, | ||
| const double | z ) |
|
overridevirtual |
Get the hole Mobility coefficient.
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the hole Townsend coefficient.
Reimplemented from Garfield::Component.
|
overridevirtual |
Get the hole drift velocity.
Reimplemented from Garfield::Component.
|
inlineprotected |
Definition at line 312 of file ComponentTcadBase.hh.
| bool Garfield::ComponentTcadBase< N >::Initialise | ( | const std::string & | gridfilename, |
| const std::string & | datafilename ) |
Import mesh and field map from files.
| gridfilename | name of the .grd file containing the mesh |
| datafilename | name of the .dat file containing the nodal solution |
|
protectedpure virtual |
Implemented in Garfield::ComponentTcad2d, and Garfield::ComponentTcad3d.
|
protectedpure virtual |
|
protected |
|
protected |
|
protected |
|
protected |
| void Garfield::ComponentTcadBase< N >::PrintRegions | ( | ) | const |
List all currently defined regions.
|
protected |
| bool Garfield::ComponentTcadBase< N >::SetAcceptor | ( | const size_t | acceptorNumber, |
| const double | exsec, | ||
| const double | hxsec, | ||
| const double | concentration ) |
Set the properties of an acceptor-type defect state.
| bool Garfield::ComponentTcadBase< N >::SetDonor | ( | const size_t | donorNumber, |
| const double | exsec, | ||
| const double | hxsec, | ||
| const double | concentration ) |
Set the properties of a donor-type defect state.
| donorNumber | index of the donor |
| exsec | cross-section [cm2] for electrons |
| hxsec | cross-section [cm2] for holes |
| concentration | defect density [cm-3] |
| void Garfield::ComponentTcadBase< N >::SetDriftRegion | ( | const size_t | ireg | ) |
Make a region active ("driftable").
| bool Garfield::ComponentTcadBase< N >::SetDynamicWeightingField | ( | const std::string & | datfile1, |
| const std::string & | datfile2, | ||
| const double | dv, | ||
| const double | t, | ||
| const std::string & | label ) |
Import time-dependent weighting fields at t >= 0.
| bool Garfield::ComponentTcadBase< N >::SetDynamicWeightingPotential | ( | const std::string & | datfile1, |
| const std::string & | datfile2, | ||
| const double | dv, | ||
| const double | t, | ||
| const std::string & | label ) |
Import time-dependent weighting potentials at t >= 0.
| void Garfield::ComponentTcadBase< N >::SetMedium | ( | const size_t | ireg, |
| Medium * | m ) |
Set the medium to be associated to a given region.
| void Garfield::ComponentTcadBase< N >::SetMedium | ( | const std::string & | material, |
| Medium * | m ) |
Set the medium to be associated to all regions with a given material.
| bool Garfield::ComponentTcadBase< N >::SetWeightingField | ( | const std::string & | datfile1, |
| const std::string & | datfile2, | ||
| const double | dv, | ||
| const std::string & | label ) |
Import field maps defining the prompt weighting field and potential.
| datfile1 | .dat file containing the field map at nominal bias. |
| datfile2 | .dat file containing the field map for a configuration with the potential at the electrode to be read out increased by a small voltage dv. |
| dv | increase in electrode potential between the two field maps. |
| label | name of the electrode |
The field maps must use the same mesh as the drift field.
| bool Garfield::ComponentTcadBase< N >::SetWeightingFieldShift | ( | const std::string & | label, |
| const double | x, | ||
| const double | y, | ||
| const double | z ) |
Shift the maps of weighting field/potential for a given electrode with respect to the original mesh.
If the electrode does not exist yet, a new one will be added to the list.
|
inline |
Import field maps defining the prompt weighting field and potential.
Definition at line 50 of file ComponentTcadBase.hh.
| void Garfield::ComponentTcadBase< N >::UnsetDriftRegion | ( | const size_t | ireg | ) |
Make a region inactive.
|
protected |
|
overrideprotectedvirtual |
Verify periodicities.
Implements Garfield::Component.
|
overridevirtual |
Calculate the weighting field at a given point and for a given electrode.
| x,y,z | coordinates [cm]. |
| wx,wy,wz | components of the weighting field [1/cm]. |
| label | name of the electrode |
Reimplemented from Garfield::Component.
|
overridevirtual |
Calculate the weighting potential at a given point.
| x,y,z | coordinates [cm]. |
| label | name of the electrode. |
Reimplemented from Garfield::Component.
|
protected |
Definition at line 262 of file ComponentTcadBase.hh.
|
protected |
Definition at line 276 of file ComponentTcadBase.hh.
|
protected |
Definition at line 289 of file ComponentTcadBase.hh.
|
protected |
Definition at line 288 of file ComponentTcadBase.hh.
|
protected |
Definition at line 261 of file ComponentTcadBase.hh.
|
protected |
Definition at line 275 of file ComponentTcadBase.hh.
|
protected |
Definition at line 242 of file ComponentTcadBase.hh.
|
protected |
Definition at line 243 of file ComponentTcadBase.hh.
|
protected |
Definition at line 245 of file ComponentTcadBase.hh.
|
protected |
Definition at line 246 of file ComponentTcadBase.hh.
|
protected |
Definition at line 255 of file ComponentTcadBase.hh.
|
protected |
Definition at line 264 of file ComponentTcadBase.hh.
|
protected |
Definition at line 232 of file ComponentTcadBase.hh.
|
protected |
Definition at line 227 of file ComponentTcadBase.hh.
|
protected |
Definition at line 258 of file ComponentTcadBase.hh.
|
protected |
Definition at line 252 of file ComponentTcadBase.hh.
|
protected |
Definition at line 230 of file ComponentTcadBase.hh.
|
protected |
Definition at line 249 of file ComponentTcadBase.hh.
|
protected |
Definition at line 256 of file ComponentTcadBase.hh.
|
protected |
Definition at line 265 of file ComponentTcadBase.hh.
|
protected |
Definition at line 259 of file ComponentTcadBase.hh.
|
protected |
Definition at line 253 of file ComponentTcadBase.hh.
|
protected |
Definition at line 250 of file ComponentTcadBase.hh.
|
protected |
Definition at line 293 of file ComponentTcadBase.hh.
|
protected |
Definition at line 292 of file ComponentTcadBase.hh.
|
protected |
Definition at line 197 of file ComponentTcadBase.hh.
|
protected |
Definition at line 285 of file ComponentTcadBase.hh.
|
protected |
Definition at line 283 of file ComponentTcadBase.hh.
|
protected |
Definition at line 281 of file ComponentTcadBase.hh.
|
protected |
Definition at line 279 of file ComponentTcadBase.hh.
|
protected |
Definition at line 200 of file ComponentTcadBase.hh.
|
protected |
Definition at line 235 of file ComponentTcadBase.hh.
|
protected |
Definition at line 236 of file ComponentTcadBase.hh.
|
protected |
Definition at line 238 of file ComponentTcadBase.hh.
|
staticconstexprprotected |
Definition at line 184 of file ComponentTcadBase.hh.