Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
ComponentConstant.hh
Go to the documentation of this file.
1#ifndef G_COMPONENT_CONSTANT_H
2#define G_COMPONENT_CONSTANT_H
3
4#include "ComponentBase.hh"
5
6namespace Garfield {
7
8/// Component with constant electric field.
9
11
12 public:
13 // Constructor
15 // Destructor
17
18 void ElectricField(const double x, const double y, const double z, double& ex,
19 double& ey, double& ez, Medium*& m, int& status);
20 void ElectricField(const double x, const double y, const double z, double& ex,
21 double& ey, double& ez, double& v, Medium*& m,
22 int& status);
23 bool GetVoltageRange(double& vmin, double& vmax);
24 void WeightingField(const double x, const double y, const double z,
25 double& wx, double& wy, double& wz,
26 const std::string& label);
27 double WeightingPotential(const double x, const double y, const double z,
28 const std::string& label);
29
30 void SetElectricField(const double ex, const double ey, const double ez);
31 void SetPotential(const double x, const double y, const double z,
32 const double v = 0.);
33
34 void SetWeightingField(const double wx, const double wy, const double wz,
35 const std::string label);
36 void SetWeightingPotential(const double x, const double y, const double z,
37 const double v = 0.);
38
39 private:
40 // Electric field
41 double m_fx, m_fy, m_fz;
42
43 // Potential
44 bool m_hasPotential;
45 // Point where potential was specified
46 double m_x0, m_y0, m_z0;
47 // Potential at this point
48 double m_v0;
49
50 // Weighting field
51 bool m_hasWeightingField;
52 std::string m_wfield;
53 double m_fwx, m_fwy, m_fwz;
54 bool m_hasWeightingPotential;
55 // Point where the weighting potential was specified
56 double m_wx0, m_wy0, m_wz0;
57 // Weighting potential at this point
58 double m_w0;
59
60 // Reset the component
61 void Reset();
62 // Verify periodicities
63 void UpdatePeriodicity();
64};
65}
66#endif
Abstract base class for components.
Component with constant electric field.
void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)
void SetElectricField(const double ex, const double ey, const double ez)
double WeightingPotential(const double x, const double y, const double z, const std::string &label)
bool GetVoltageRange(double &vmin, double &vmax)
Calculate the voltage range [V].
void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string &label)
void SetPotential(const double x, const double y, const double z, const double v=0.)
void SetWeightingPotential(const double x, const double y, const double z, const double v=0.)
void SetWeightingField(const double wx, const double wy, const double wz, const std::string label)
Abstract base class for media.
Definition: Medium.hh:11