10 TString type(detector.ClassName());
11 if (type.Contains(
"Segmented")==
false) {
12 Error(
"SetupWith",
"%s is not expected. " 13 "Please pass in a Segmented detector.", type.Data());
21 for (
size_t i=0; i<
N1*
N2; i++) {
25 E1.push_back(0);
E2.push_back(0);
Et.push_back(0);
Vp.push_back(0);
31 }
else if ((i+1)%
N1==0) {
47 double vphip=
Vp[idx+
N1],vphim=
Vp[idx-
N1];
48 double vrhop=
Vp[idx+1],vrhom=
Vp[idx-1];
62 if (vmin>vrhop) vmin=vrhop;
63 if (vmin>vphip) vmin=vphip;
64 if (vmin>vphim) vmin=vphim;
67 if (vmax<vrhop) vmax=vrhop;
68 if (vmax<vphip) vmax=vphip;
69 if (vmax<vphim) vmax=vphim;
73 }
else if (vnew>vmax) {
86 for (
size_t i=0; i<
GetN(); i++) {
std::vector< double > dC1m
step length to previous point alone C1
std::vector< double > Bias
bias on electrodes
size_t Nphi
total number of segments in phi
void SetupWith(Detector &detector)
Fix potentials on boundaries based on.
double Radius
radius of the crystal
std::vector< bool > fIsFixed
true if field values are fixed
std::vector< double > E1
projection of Et on C1
size_t N2
number of points along the 2nd coordinate
size_t SegmentId
segment Id in [0, Nphi*Nz]
std::vector< double > Src
-(net impurity concentration)x|Qe|/epsilon
size_t N1
number of points along the 1st coordinate
std::vector< double > C2
the 2nd coordinates of the points
virtual void SetupWith(Detector &detector)
Fix potentials on boundaries based on.
Configuration of segmented true coaxial detectors.
Detector & crystal properties.
std::vector< double > dC1p
step length to next point alone C1
size_t GetN()
total number of points
std::vector< double > dC2m
step length to previous point along C2
static const double epsilon
permittivity of Ge [C/volt/cm]
void CalculateE()
Calculate Et, E1, E2, E3 from Vp.
std::vector< bool > fIsDepleted
true if a grid point is depleted
Detector * fDetector
! Pointer to associated detector object
double BoreR
radius of the bore hole
std::vector< double > dC2p
step length to next point along C2
A file defining commonly used units & constants.
void OverRelaxAt(size_t idx)
Over relax potential Vp[.
virtual void CalculateE()
Calculate Et, E1, E2, E3 from Vp.
void CheckConfigurations()
std::vector< double > Vp
potential at each point
double TopImpurity
net impurity concentration at top of crystal
static const double Qe
electron charge in Coulomb [C]
The only namespace in GeFiCa.
std::vector< double > Et
total electric field strength
std::vector< double > E2
projection of Et on C2
std::vector< double > C1
the 1st coordinates of the points
double RelaxationFactor
within (0,2), used to speed up convergence