GeFiCa
Germanium detector Field Calculator
|
3D Cartesian coordinates. More...
#include <XYZ.h>
Public Member Functions | |
XYZ (size_t n1=50, size_t n2=50, size_t n3=50) | |
void | SetupWith (Detector &detector) |
Fix potentials on boundaries based on. More... | |
double | GetC () |
Public Member Functions inherited from GeFiCa::Grid | |
Grid (size_t n1=0, size_t n2=0, size_t n3=0) | |
Default constructor. More... | |
virtual | ~Grid () |
void | SuccessiveOverRelax () |
Successively over-relax potentials on grid points. More... | |
void | SolveAnalytically () |
Solve Poisson's Equation analytically. More... | |
double | GetV (double c1, double c2=0, double c3=0) const |
Get potential at (c1,c2,c3) by interpolation. More... | |
double | GetE (double c1, double c2=0, double c3=0) const |
double | GetE1 (double c1, double c2=0, double c3=0) const |
double | GetE2 (double c1, double c2=0, double c3=0) const |
double | GetE3 (double c1, double c2=0, double c3=0) const |
double | GetC () |
Get detector capacitance. More... | |
TTree * | GetTree (bool createNew=false) |
Create &/or return a TTree with field data. More... | |
bool | IsDepleted () |
Check if every grid point is depleted. More... | |
Grid & | operator*= (double scale) |
Potentials at all points are multiplied by. More... | |
Grid & | operator+= (Grid &other) |
Potentials of this grid are summed with those of. More... | |
virtual FieldLine * | GetFieldLineFrom (double c1, double c2, bool positive=true) |
Propogate a field line from (c1,c2,c3). More... | |
virtual FieldLine * | GetFieldLineFrom (double c1, double c2, double c3, bool positive=true) |
Public Member Functions inherited from GeFiCa::Points | |
size_t | GetN () |
total number of points More... | |
Protected Member Functions | |
void | OverRelaxAt (size_t idx) |
Over relax potential Vp[. More... | |
void | GetInfoFrom (SquarePointContact &detector) |
void | CalculateE () |
Calculate Et, E1, E2, E3 from Vp. More... | |
ClassDef (XYZ, 1) | |
Protected Member Functions inherited from GeFiCa::Grid | |
size_t | GetIdxOfPointToTheRightOf (double c1, size_t begin, size_t end) const |
Get index of point near. More... | |
size_t | GetIdxOfPointToTheRightOf (double c1, double c2, size_t begin, size_t end) const |
size_t | GetIdxOfPointToTheRightOf (double c1, double c2, double c3, size_t begin, size_t end) const |
virtual double | GetData (const std::vector< double > &data, double c1, double c2, double c3) const |
Interpolate grid data at (c1,c2,c3). More... | |
size_t | GetIdxOfMaxV () |
Get index of the grid point with max potential. More... | |
size_t | GetIdxOfMinV () |
Get index of the grid point with min potential. More... | |
double | twopoint (double dataset[2], double tarlocationset, double pointxset[2]) const |
Calculate interpolation value between two point. More... | |
double | threepoint (double dataset[3], double tarlocationset[2], double pointxset[3], double pointyset[3]) const |
Calculate interpolation value between three point (triangle) More... | |
double | fourpoint (double dataset[4], double tarlocationset[2], double pointxset[4], double pointyset[4]) const |
Calculate interpolation value between four point (rectangle) More... | |
ClassDef (Grid, 1) | |
Additional Inherited Members | |
Public Attributes inherited from GeFiCa::Grid | |
size_t | N1 |
number of points along the 1st coordinate More... | |
size_t | N2 |
number of points along the 2nd coordinate More... | |
size_t | N3 |
number of points along the 3rd coordinate More... | |
std::vector< double > | Src |
-(net impurity concentration)x|Qe|/epsilon More... | |
size_t | MaxIterations |
maximal iterations of SOR to be performed More... | |
double | RelaxationFactor |
within (0,2), used to speed up convergence More... | |
double | Tolerance |
SOR stops when error<Tolerance. More... | |
size_t | Iterations |
number of iterations of SOR performed More... | |
Public Attributes inherited from GeFiCa::Points | |
std::vector< double > | C1 |
the 1st coordinates of the points More... | |
std::vector< double > | C2 |
the 2nd coordinates of the points More... | |
std::vector< double > | C3 |
the 3rd coordinates of the points More... | |
std::vector< double > | Vp |
potential at each point More... | |
std::vector< double > | Et |
total electric field strength More... | |
std::vector< double > | E1 |
projection of Et on C1 More... | |
std::vector< double > | E2 |
projection of Et on C2 More... | |
std::vector< double > | E3 |
projection of Et on C3 More... | |
std::vector< double > | dC1p |
step length to next point alone C1 More... | |
std::vector< double > | dC1m |
step length to previous point alone C1 More... | |
std::vector< double > | dC2p |
step length to next point along C2 More... | |
std::vector< double > | dC2m |
step length to previous point along C2 More... | |
std::vector< double > | dC3p |
step length to next point alone C3 More... | |
std::vector< double > | dC3m |
step length to previous point alone C3 More... | |
Protected Attributes inherited from GeFiCa::Grid | |
std::vector< bool > | fIsFixed |
true if field values are fixed More... | |
std::vector< bool > | fIsDepleted |
true if a grid point is depleted More... | |
TTree * | fTree |
! ROOT tree to visualize fields More... | |
Detector * | fDetector |
! Pointer to associated detector object More... | |
|
inline |
Definition at line 13 of file XYZ.h.
|
protectedvirtual |
Calculate Et, E1, E2, E3 from Vp.
Reimplemented from GeFiCa::Grid.
Definition at line 173 of file XYZ.cc.
|
protected |
double XYZ::GetC | ( | ) |
Definition at line 83 of file XYZ.cc.
|
protected |
Definition at line 107 of file XYZ.cc.
|
protectedvirtual |
Over relax potential Vp[.
idx]. |
Reimplemented from GeFiCa::Grid.
Definition at line 25 of file XYZ.cc.
|
virtual |
Fix potentials on boundaries based on.
detector | geometry. It fills Points data based on |
detector | geometry and N1, N2 and/or N3, and raises the flag fIsFixed for points on/outside electrodes. It has to be called before SuccessiveOverRelax(). |
Reimplemented from GeFiCa::Grid.
Definition at line 6 of file XYZ.cc.