10 TString type(detector.ClassName());
11 if (type.Contains(
"Hemispherical")==
false) {
12 Error(
"SetupWith",
"%s is not expected. " 13 "Please pass in a Hemispherical detector.", type.Data());
21 for (
size_t i=0; i<
N1; i++) {
22 dC1p.push_back(dR/(N1-1));
dC1m.push_back(dR/(N1-1));
24 E1.push_back(0);
Et.push_back(0);
32 double slope = (hemi.
Bias[1]-hemi.
Bias[0])/(N1-1);
33 for (
size_t i=0; i<
N1; i++)
Vp.push_back(hemi.
Bias[0]+slope*i);
48 for (
size_t i=0; i<
N1; i++)
Vp[i] = a*
C1[i]*
C1[i]/6 + c1/
C1[i] + c2;
59 for (
size_t i=0; i<
GetN(); i++) {
63 double c=integral*
epsilon/dV/dV;
64 Info(
"GetC",
"%.2f pF/cm2",c/
pF*
cm2);
78 double min=
Vp[idx-1], max=
Vp[idx-1];
79 if (min>
Vp[idx+1]) min=
Vp[idx+1];
80 if (max<
Vp[idx+1]) max=
Vp[idx+1];
83 }
else if (vnew>max) {
std::vector< double > dC1m
step length to previous point alone C1
std::vector< double > Bias
bias on electrodes
Configuration of hemispherical detectors.
std::vector< bool > fIsFixed
true if field values are fixed
std::vector< double > E1
projection of Et on C1
virtual void OverRelaxAt(size_t idx)
Over relax potential Vp[.
std::vector< double > Src
-(net impurity concentration)x|Qe|/epsilon
size_t N1
number of points along the 1st coordinate
void SolveAnalytically()
Solve Poisson's Equation analytically.
virtual void SetupWith(Detector &detector)
Fix potentials on boundaries based on.
void SetupWith(Detector &detector)
Fix potentials on boundaries based on.
Detector & crystal properties.
std::vector< double > dC1p
step length to next point alone C1
size_t GetN()
total number of points
double Height
height of crystal
double PointContactR
radius of point contact
static const double epsilon
permittivity of Ge [C/volt/cm]
std::vector< bool > fIsDepleted
true if a grid point is depleted
Detector * fDetector
! Pointer to associated detector object
A file defining commonly used units & constants.
static const double pF
pico farad
static const double cm2
centimeter squared
double GetImpurity(double height)
Return net impurity concentration at.
virtual void CalculateE()
Calculate Et, E1, E2, E3 from Vp.
double GetC()
Get detector capacitance.
std::vector< double > Vp
potential at each point
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 > C1
the 1st coordinates of the points
double RelaxationFactor
within (0,2), used to speed up convergence
void CheckConfigurations()