Garfield++ 4.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <box.h>
Public Member Functions | |
box () | |
Default constructor. | |
box (vfloat fdx, vfloat fdy, vfloat fdz, const std::string &fname) | |
box (vfloat fdx, vfloat fdy, vfloat fdz, vfloat fprec, const std::string &fname) | |
Constructor with user-provided precision. | |
box (box &fb) | |
box (const box &fb) | |
virtual | ~box () |
Destructor. | |
void | init_prec () |
void | init_planes () |
int | check_point_inside (const point &fpt, const vec &dir) const override |
int | range_ext (trajestep &fts, int s_ext) const override |
Range till exit from given volume or to entry only. | |
void | income (gparticle *gp) override |
void | chname (char *nm) const override |
void | print (std::ostream &file, int l) const override |
box * | copy () const override |
Public Member Functions inherited from Heed::absvol | |
virtual | ~absvol () |
Destructor. | |
virtual int | check_point_inside (const point &fpt, const vec &dir) const =0 |
virtual int | find_embed_vol (const point &fpt, const vec &dir, manip_absvol_treeid *atid) const |
virtual int | range (trajestep &fts, int s_ext, int &sb, manip_absvol *&faeid) const |
virtual int | range_ext (trajestep &fts, int s_ext) const =0 |
virtual void | income (gparticle *) |
virtual void | chname (char *nm) const |
virtual void | print (std::ostream &file, int l) const |
virtual absvol * | copy () const |
virtual std::vector< manip_absvol * > | Gamanip_embed () const |
Public Member Functions inherited from Heed::absref | |
virtual | ~absref () |
Destructor. | |
virtual void | down (const abssyscoor *fasc) |
Convert numbering representation of object to basical system of fasc. | |
virtual void | up (const abssyscoor *fasc) |
Convert numbering representation of objects to new system. | |
virtual void | turn (const vec &dir, vfloat angle) |
Turn around axis doing via center of coordinate system along dir. | |
virtual void | shift (const vec &dir) |
Public Attributes | |
vfloat | m_dx |
vfloat | m_dy |
vfloat | m_dz |
Lengths of sides. | |
vfloat | m_dxh |
vfloat | m_dyh |
vfloat | m_dzh |
Half-lengths of sides. | |
ulsvolume | m_ulsv |
std::string | m_name |
Public Attributes inherited from Heed::absvol | |
vfloat | prec |
bool | s_sensitive |
Protected Member Functions | |
absref_transmit | get_components () override |
Box (three-dimensional rectangle/rectangular parallelogram). The box is centred with respect to the centre of the coordinate system.
Heed::box::box | ( | ) |
Default constructor.
Definition at line 27 of file box.cpp.
Referenced by copy().
Constructor with user-provided precision.
Heed::box::box | ( | box & | fb | ) |
Heed::box::box | ( | const box & | fb | ) |
Check if a point is inside the volume. If two volumes are adjacent, it may happen that a point belongs to both. To avoid this confusion the parameter dir is used. If dir == (0, 0, 0), and the point is exactly on the border, the behaviour is in general not specified. If dir != (0, 0, 0), and the point is on the border with precision prec, the exiting volume is ignored.
Implements Heed::absvol.
Definition at line 110 of file box.cpp.
|
overridevirtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_box, and Heed::sh_manip_box.
Definition at line 221 of file box.cpp.
Referenced by print().
|
overridevirtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_box, and Heed::sh_manip_box.
Definition at line 218 of file box.cpp.
|
overrideprotectedvirtual |
Reimplemented from Heed::absref.
Reimplemented in Heed::sh_manip_box.
|
overridevirtual |
void Heed::box::init_planes | ( | ) |
Definition at line 92 of file box.cpp.
Referenced by box().
|
overridevirtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_box, and Heed::sh_manip_box.
Definition at line 183 of file box.cpp.
Referenced by check_point_inside(), Heed::manip_box::print(), and Heed::sh_manip_box::print().
|
overridevirtual |
Range till exit from given volume or to entry only.
Implements Heed::absvol.
Definition at line 202 of file box.cpp.
vfloat Heed::box::m_dxh |
Definition at line 28 of file box.h.
Referenced by box(), check_point_inside(), init_planes(), init_prec(), print(), and range_ext().
vfloat Heed::box::m_dyh |
Definition at line 28 of file box.h.
Referenced by box(), check_point_inside(), init_planes(), init_prec(), print(), and range_ext().
vfloat Heed::box::m_dz |
vfloat Heed::box::m_dzh |
Half-lengths of sides.
Definition at line 28 of file box.h.
Referenced by box(), check_point_inside(), init_planes(), init_prec(), print(), and range_ext().
std::string Heed::box::m_name |
Definition at line 30 of file box.h.
Referenced by box(), chname(), Heed::manip_box::chname(), and Heed::sh_manip_box::chname().
ulsvolume Heed::box::m_ulsv |
Definition at line 29 of file box.h.
Referenced by init_planes(), print(), and range_ext().