Garfield++ 3.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Triangular prism (Toblerone bar). More...
#include <SolidRidge.hh>
Public Member Functions | |
SolidRidge (const double cx, const double cy, const double cz, const double lx, const double ly, const double hz, const double offsetx) | |
Constructor from centre, half-lengths, height and x-offset. | |
SolidRidge (const double cx, const double cy, const double cz, const double lx, const double ly, const double hz, const double offsetx, const double dx, const double dy, const double dz) | |
Constructor from centre, half-lengths, height, x-offset and orientation. | |
~SolidRidge () | |
Destructor. | |
bool | IsInside (const double x, const double y, const double z) const override |
Check whether a given point is inside the solid. | |
bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const override |
Return the bounding box of the solid. | |
bool | IsRidge () const override |
Return true if the solid is a ridge. | |
void | SetHalfLengthX (const double lx) |
Set the half-length along x. | |
void | SetHalfLengthY (const double ly) |
Set the half-length along y. | |
void | SetRidgeHeight (const double hz) |
Set the height of the ridge. | |
void | SetRidgeOffset (const double dx) |
Set the x-offset of the ridge. | |
double | GetHalfLengthX () const override |
Return the half-length along x. | |
double | GetHalfLengthY () const override |
Return the half-length along y. | |
double | GetRidgeHeight () const override |
Return the height of a ridge. | |
double | GetRidgeOffset () const override |
Return the x-offset of a ridge. | |
bool | SolidPanels (std::vector< Panel > &panels) override |
Retrieve the surface panels of the solid. | |
double | GetDiscretisationLevel (const Panel &panel) override |
Retrieve the discretization level of a panel. | |
Public Member Functions inherited from Garfield::Solid | |
Solid ()=delete | |
Default constructor. | |
Solid (const double cx, const double cy, const double cz, const std::string &name) | |
Constructor. | |
virtual | ~Solid () |
Destructor. | |
virtual bool | IsInside (const double x, const double y, const double z) const =0 |
Check whether a given point is inside the solid. | |
virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const =0 |
Return the bounding box of the solid. | |
virtual bool | IsBox () const |
Return true if the solid is a box. | |
virtual bool | IsTube () const |
Return true if the solid is a tube. | |
virtual bool | IsSphere () const |
Return true if the solid is a sphere. | |
virtual bool | IsHole () const |
Return true if the solid is a hole. | |
virtual bool | IsRidge () const |
Return true if the solid is a ridge. | |
bool | GetCentre (double &x, double &y, double &z) const |
Retrieve the centre point of the solid. | |
bool | GetOrientation (double &ctheta, double &stheta, double &cphi, double &sphi) const |
Retrieve the orientation (azimuthal and polar angles) of the solid. | |
virtual double | GetHalfLengthX () const |
Return the half-length along x. | |
virtual double | GetHalfLengthY () const |
Return the half-length along y. | |
virtual double | GetHalfLengthZ () const |
Return the half-length along z. | |
virtual double | GetInnerRadius () const |
Return the inner radius. | |
virtual double | GetOuterRadius () const |
Return the outer radius. | |
virtual double | GetRadius () const |
Return the radius. | |
virtual double | GetLowerRadius () const |
Return the lower radius (of a hole). | |
virtual double | GetUpperRadius () const |
Return the upper radius (of a hole). | |
virtual double | GetRidgeOffset () const |
Return the x-offset of a ridge. | |
virtual double | GetRidgeHeight () const |
Return the height of a ridge. | |
unsigned int | GetId () const |
Get the ID of the solid. | |
virtual bool | SolidPanels (std::vector< Panel > &panels)=0 |
Retrieve the surface panels of the solid. | |
virtual double | GetDiscretisationLevel (const Panel &panel)=0 |
Retrieve the discretization level of a panel. | |
void | SetBoundaryPotential (const double v) |
Apply Dirichlet boundary conditions (fixed voltage). | |
void | SetBoundaryChargeDensity (const double q) |
Apply fixed-charge boundary conditions. | |
void | SetBoundaryFloat () |
Make the potential at the surface of the solid floating. | |
void | SetBoundaryDielectric () |
Make the surfaces of the solid dielectric-dielectric interfaces. | |
void | SetBoundaryParallelField () |
void | SetBoundaryPerpendicularField () |
BoundaryCondition | GetBoundaryConditionType () const |
Retrieve the type of boundary condition. | |
double | GetBoundaryPotential () const |
Retrieve the potential. | |
double | GetBoundaryChargeDensity () const |
Retrieve the surface charge density. | |
void | EnableDebugging (const bool on=true) |
Switch debugging messages on/off. | |
Additional Inherited Members | |
Public Types inherited from Garfield::Solid | |
enum | BoundaryCondition { Voltage = 1 , Charge , Float , Dielectric , DielectricCharge , ParallelField , PerpendicularField } |
Protected Member Functions inherited from Garfield::Solid | |
void | ToLocal (const double x, const double y, const double z, double &u, double &v, double &w) const |
void | ToGlobal (const double u, const double v, const double w, double &x, double &y, double &z) const |
void | VectorToLocal (const double x, const double y, const double z, double &u, double &v, double &w) |
Transform a vector from global to local coordinates. | |
void | SetDirection (const double dx, const double dy, const double dz) |
Protected Attributes inherited from Garfield::Solid | |
double | m_cX = 0. |
Centre of the solid. | |
double | m_cY = 0. |
double | m_cZ = 0. |
double | m_dX = 0. |
Direction vector. | |
double | m_dY = 0. |
double | m_dZ = 1. |
double | m_cPhi = 1. |
Azimuthal angle. | |
double | m_sPhi = 0. |
double | m_cTheta = 1. |
Polar angle. | |
double | m_sTheta = 0. |
std::string | m_className = "Solid" |
Class name. | |
bool | m_debug = false |
Debug flag. | |
BoundaryCondition | m_bctype = Voltage |
Type of boundary condition. | |
double | m_volt = 0. |
Potential at the surface. | |
double | m_charge = 0. |
Surface charge density. | |
double | m_eps = 0. |
Dielectric constant. | |
Triangular prism (Toblerone bar).
Definition at line 10 of file SolidRidge.hh.
Garfield::SolidRidge::SolidRidge | ( | const double | cx, |
const double | cy, | ||
const double | cz, | ||
const double | lx, | ||
const double | ly, | ||
const double | hz, | ||
const double | offsetx | ||
) |
Constructor from centre, half-lengths, height and x-offset.
Definition at line 9 of file SolidRidge.cc.
Garfield::SolidRidge::SolidRidge | ( | const double | cx, |
const double | cy, | ||
const double | cz, | ||
const double | lx, | ||
const double | ly, | ||
const double | hz, | ||
const double | offsetx, | ||
const double | dx, | ||
const double | dy, | ||
const double | dz | ||
) |
Constructor from centre, half-lengths, height, x-offset and orientation.
Definition at line 18 of file SolidRidge.cc.
|
inline |
|
overridevirtual |
Return the bounding box of the solid.
Implements Garfield::Solid.
Definition at line 50 of file SolidRidge.cc.
|
overridevirtual |
Retrieve the discretization level of a panel.
Implements Garfield::Solid.
Definition at line 177 of file SolidRidge.cc.
|
inlineoverridevirtual |
Return the half-length along x.
Reimplemented from Garfield::Solid.
Definition at line 38 of file SolidRidge.hh.
|
inlineoverridevirtual |
Return the half-length along y.
Reimplemented from Garfield::Solid.
Definition at line 39 of file SolidRidge.hh.
|
inlineoverridevirtual |
Return the height of a ridge.
Reimplemented from Garfield::Solid.
Definition at line 40 of file SolidRidge.hh.
|
inlineoverridevirtual |
Return the x-offset of a ridge.
Reimplemented from Garfield::Solid.
Definition at line 41 of file SolidRidge.hh.
|
overridevirtual |
Check whether a given point is inside the solid.
Implements Garfield::Solid.
Definition at line 26 of file SolidRidge.cc.
|
inlineoverridevirtual |
Return true if the solid is a ridge.
Reimplemented from Garfield::Solid.
Definition at line 27 of file SolidRidge.hh.
void Garfield::SolidRidge::SetHalfLengthX | ( | const double | lx | ) |
Set the half-length along x.
Definition at line 72 of file SolidRidge.cc.
void Garfield::SolidRidge::SetHalfLengthY | ( | const double | ly | ) |
Set the half-length along y.
Definition at line 80 of file SolidRidge.cc.
void Garfield::SolidRidge::SetRidgeHeight | ( | const double | hz | ) |
Set the height of the ridge.
Definition at line 88 of file SolidRidge.cc.
|
inline |
|
overridevirtual |
Retrieve the surface panels of the solid.
Implements Garfield::Solid.
Definition at line 96 of file SolidRidge.cc.