Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
Loading...
Searching...
No Matches
SolidWire.hh
Go to the documentation of this file.
1#ifndef G_SOLID_WIRE_H
2#define G_SOLID_WIRE_H
3
4#include "Garfield/Solid.hh"
5
6namespace Garfield {
7
9
10class SolidWire : public Solid {
11 public:
13 SolidWire(const double cx, const double cy, const double cz, const double r,
14 const double lz);
16 SolidWire(const double cx, const double cy, const double cz, const double r,
17 const double lz, const double dx, const double dy, const double dz);
20
21 bool IsInside(const double x, const double y, const double z,
22 const bool tesselated) const override;
23 bool GetBoundingBox(double& xmin, double& ymin, double& zmin, double& xmax,
24 double& ymax, double& zmax) const override;
25 bool IsWire() const override { return true; }
26
27 void SetHalfLength(const double lz);
28 void SetRadius(const double r);
29
30 double GetHalfLengthZ() const override { return m_lZ; }
31 double GetRadius() const override { return m_r; }
32
33 bool SolidPanels(std::vector<Panel>& panels) override;
34 void SetDiscretisationLevel(const double dis) override { m_dis = dis; }
35 double GetDiscretisationLevel(const Panel& panel) override;
36
37 void Cut(const double x0, const double y0, const double z0, const double xn,
38 const double yn, const double zn,
39 std::vector<Panel>& panels) override;
40
41 private:
43 double m_r;
45 double m_lZ;
46
48 double m_dis = -1.;
49};
50} // namespace Garfield
51
52#endif
~SolidWire()
Destructor.
Definition SolidWire.hh:19
double GetHalfLengthZ() const override
Return the half-length along z.
Definition SolidWire.hh:30
bool GetBoundingBox(double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) const override
Return the bounding box of the solid.
double GetRadius() const override
Return the radius.
Definition SolidWire.hh:31
bool SolidPanels(std::vector< Panel > &panels) override
Retrieve the surface panels of the solid.
double m_r
Radius.
Definition SolidWire.hh:43
bool IsInside(const double x, const double y, const double z, const bool tesselated) const override
Check whether a given point is inside the solid.
SolidWire(const double cx, const double cy, const double cz, const double r, const double lz, const double dx, const double dy, const double dz)
Constructor from centre, radius, half-length and orientation.
void SetHalfLength(const double lz)
SolidWire(const double cx, const double cy, const double cz, const double r, const double lz)
Constructor from centre, radius, and half-length.
void SetRadius(const double r)
void Cut(const double x0, const double y0, const double z0, const double xn, const double yn, const double zn, std::vector< Panel > &panels) override
double m_dis
Discretisation level.
Definition SolidWire.hh:48
bool IsWire() const override
Return true if the solid is a wire.
Definition SolidWire.hh:25
double m_lZ
Half-length.
Definition SolidWire.hh:45
double GetDiscretisationLevel(const Panel &panel) override
Retrieve the discretisation level of a panel.
void SetDiscretisationLevel(const double dis) override
Set the discretisation level (for all panels).
Definition SolidWire.hh:34
Solid()=delete
Default constructor.
Surface panel.
Definition Solid.hh:11