7 : m_className(
"ComponentBase"),
14 m_xMirrorPeriodic(false),
15 m_yMirrorPeriodic(false),
16 m_zMirrorPeriodic(false),
17 m_xAxiallyPeriodic(false),
18 m_yAxiallyPeriodic(false),
19 m_zAxiallyPeriodic(false),
20 m_xRotationSymmetry(false),
21 m_yRotationSymmetry(false),
22 m_zRotationSymmetry(false),
32 std::cerr <<
"ComponentBase::SetGeometry:\n";
33 std::cerr <<
" Geometry pointer is null.\n";
54 const double z,
double& wx,
double& wy,
55 double& wz,
const std::string& label) {
58 std::cerr <<
" This function is not implemented.\n";
59 std::cerr <<
" Weighting field at (" << x <<
", " << y <<
", " << z
60 <<
") for electrode " << label <<
" cannot be calculated.\n";
67 const std::string& label) {
70 std::cerr <<
m_className <<
"::WeightingPotential:\n";
71 std::cerr <<
" This function is not implemented.\n";
72 std::cerr <<
" Weighting potential at (" << x <<
", " << y <<
", " << z
73 <<
") for electrode " << label <<
" cannot be calculated.\n";
79 const double z,
double& bx,
double& by,
80 double& bz,
int& status) {
86 std::cout <<
" Magnetic field at (" << x <<
", " << y <<
", " << z
87 <<
") is (" << bx <<
", " << by <<
", " << bz <<
")\n";
101 double& xmax,
double& ymax,
double& zmax) {
109 const double ,
const double ,
110 const double ,
double& xc,
111 double& yc,
double& zc) {
121 const double y0,
const double ,
122 double& xw,
double& yw,
double& rw) {
ComponentBase()
Constructor.
virtual double WeightingPotential(const double x, const double y, const double z, const std::string &label)
virtual void Clear()
Reset.
GeometryBase * m_geometry
Pointer to the geometry.
void SetMagneticField(const double bx, const double by, const double bz)
Set a constant magnetic field.
virtual void Reset()=0
Geometry checks.
virtual void MagneticField(const double x, const double y, const double z, double &bx, double &by, double &bz, int &status)
virtual bool IsWireCrossed(const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, double &xc, double &yc, double &zc)
virtual bool GetBoundingBox(double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax)
Get the bounding box coordinates.
virtual void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string &label)
std::string m_className
Class name.
virtual void SetGeometry(GeometryBase *geo)
Define the geometry.
virtual bool IsInTrapRadius(const double q0, const double x0, const double y0, const double z0, double &xw, double &yw, double &rw)
bool m_debug
Switch on/off debugging messages.
virtual Medium * GetMedium(const double x, const double y, const double z)
Get the medium at a given location (x, y, z).
Abstract base class for geometry classes.
virtual Medium * GetMedium(const double x, const double y, const double z) const =0
virtual bool GetBoundingBox(double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax)=0
Abstract base class for media.