GeFiCa
Germanium detector Field Calculator
Public Member Functions | Public Attributes | List of all members
GeFiCa::PointContact Class Reference

Configuration of point contact detectors. More...

#include <PointContact.h>

Inheritance diagram for GeFiCa::PointContact:
Inheritance graph
[legend]
Collaboration diagram for GeFiCa::PointContact:
Collaboration graph
[legend]

Public Member Functions

 PointContact (const char *name="pc", const char *title="point-contact detector")
 
void CheckConfigurations ()
 
void Draw (Option_t *option="side")
 
 ClassDef (PointContact, 1)
 
- Public Member Functions inherited from GeFiCa::Detector
 Detector (const char *name="detector", const char *title="detector")
 
void CheckConfigurations ()
 Check if detector configurations make sense. More...
 
void Draw (Option_t *option="")
 
 ClassDef (Detector, 1)
 
- Public Member Functions inherited from GeFiCa::Crystal
 Crystal ()
 Default constructor. More...
 
double GetImpurity (double height)
 Return net impurity concentration at. More...
 
void SetAverageImpurity (double impurity)
 

Public Attributes

double Radius
 Radius of crystal. More...
 
double PointContactR
 Radius of point contact. More...
 
double PointContactH
 Height of point contact. More...
 
double BoreH
 Depth of bore hole. More...
 
double BoreR
 radius of bore hole More...
 
double BoreTaperW
 width of bore hole taper More...
 
double BoreTaperH
 height of bore hole taper More...
 
double TaperW
 Width of taper (point contact side) More...
 
double TaperH
 Height of taper (point contact side) More...
 
double CornerW
 Width of taper (bore side) More...
 
double CornerH
 Height of taper (bore side) More...
 
double WrapAroundR
 Inner radius of outer contact. More...
 
double GrooveW
 Width of Groove. More...
 
double GrooveH
 Height of Groove. More...
 
- Public Attributes inherited from GeFiCa::Detector
std::vector< double > Bias
 bias on electrodes More...
 
- Public Attributes inherited from GeFiCa::Crystal
double Height
 height of crystal More...
 
double TopImpurity
 net impurity concentration at top of crystal More...
 
double BottomImpurity
 net impurity concentration at bottom of crystal More...
 

Detailed Description

Configuration of point contact detectors.

Examples:
pointContact/calculateFields.cc, pointContact/checkInitialization.cc, pointContact/drawFields.cc, and pointContact/optimizeRelaxationFactor.cc.

Definition at line 9 of file PointContact.h.

Constructor & Destructor Documentation

◆ PointContact()

PointContact::PointContact ( const char *  name = "pc",
const char *  title = "point-contact detector" 
)

Definition at line 5 of file PointContact.cc.

5  :
6  Detector(name, title), Radius(3*cm),
8  BoreH(0), BoreR(0), BoreTaperW(0), BoreTaperH(0),
9  TaperW(1*mm), TaperH(1*mm), CornerW(1*mm), CornerH(1*mm),
10  WrapAroundR(-1), GrooveW(0), GrooveH(0)
11 { Height=5*cm; Bias.push_back(1*kV); }
std::vector< double > Bias
bias on electrodes
Definition: Detector.h:35
double GrooveH
Height of Groove.
Definition: PointContact.h:30
double BoreH
Depth of bore hole.
Definition: PointContact.h:17
static const double cm
centimeter
Definition: Units.h:12
double Radius
Radius of crystal.
Definition: PointContact.h:12
double CornerH
Height of taper (bore side)
Definition: PointContact.h:26
static const double kV
kilo volt
Definition: Units.h:21
double CornerW
Width of taper (bore side)
Definition: PointContact.h:25
Detector(const char *name="detector", const char *title="detector")
Definition: Detector.cc:9
double BoreTaperW
width of bore hole taper
Definition: PointContact.h:19
double WrapAroundR
Inner radius of outer contact.
Definition: PointContact.h:28
double PointContactH
Height of point contact.
Definition: PointContact.h:15
double Height
height of crystal
Definition: Detector.h:13
double GrooveW
Width of Groove.
Definition: PointContact.h:29
static const double mm
minimeter
Definition: Units.h:15
double BoreTaperH
height of bore hole taper
Definition: PointContact.h:20
double BoreR
radius of bore hole
Definition: PointContact.h:18
double PointContactR
Radius of point contact.
Definition: PointContact.h:14
double TaperH
Height of taper (point contact side)
Definition: PointContact.h:23
double TaperW
Width of taper (point contact side)
Definition: PointContact.h:22
static const double nm
nanometer
Definition: Units.h:18

Member Function Documentation

◆ CheckConfigurations()

void PointContact::CheckConfigurations ( )

Definition at line 14 of file PointContact.cc.

15 {
17  if (Radius<=0) {
18  Error("CheckConfigurations", "Radius==%.1f!", Radius);
19  abort();
20  }
21  if (PointContactR<0) {
22  Error("CheckConfigurations", "PointContactR==%.1f!", PointContactR);
23  abort();
24  }
25  if (PointContactH<0) {
26  Error("CheckConfigurations", "PointContactH==%.1f!", PointContactH);
27  abort();
28  }
29  if (BoreH<0) {
30  Error("CheckConfigurations", "BoreH==%.1f!", BoreH);
31  abort();
32  }
33  if (BoreR<0) {
34  Error("CheckConfigurations", "BoreR==%.1f!", BoreR);
35  abort();
36  }
37  if (BoreTaperW<0) {
38  Error("CheckConfigurations", "BoreTaperW==%.1f!", BoreTaperW);
39  abort();
40  }
41  if (BoreTaperH<0) {
42  Error("CheckConfigurations", "BoreTaperH==%.1f!", BoreTaperH);
43  abort();
44  }
45  if (TaperW<0) {
46  Error("CheckConfigurations", "TaperW==%.1f!", TaperW);
47  abort();
48  }
49  if (TaperH<0) {
50  Error("CheckConfigurations", "TaperH==%.1f!", TaperH);
51  abort();
52  }
53  if (CornerW<0) {
54  Error("CheckConfigurations", "CornerW==%.1f!", CornerW);
55  abort();
56  }
57  if (CornerH<0) {
58  Error("CheckConfigurations", "CornerH==%.1f!", CornerH);
59  abort();
60  }
61  if (GrooveW<0) {
62  Error("CheckConfigurations", "GrooveW==%.1f!", GrooveW);
63  abort();
64  }
65  if (GrooveH<0) {
66  Error("CheckConfigurations", "GrooveH==%.1f!", GrooveH);
67  abort();
68  }
69  if (GrooveH>=Height) {
70  Error("CheckConfigurations", "GrooveH(%.1f)>=Height(%.1f)!",
71  GrooveH, Height);
72  abort();
73  }
76  Error("CheckConfigurations",
77  "PointContactR(%.1f)+GrooveW(%.1f)>WrapAroundR(%.1f)!",
79  abort();
80  }
81  if (PointContactH+BoreH>=Height) {
82  Error("CheckConfigurations",
83  "PointContactH(%.1f)+BoreH(%.1f)>=Height(%.1f)!",
85  abort();
86  }
88  Error("CheckConfigurations",
89  "BoreR(%.1f)+BoreTaperW(%.1f)+CornerW(%.1f)>=Radius(%.1f)!",
91  abort();
92  }
93  if (TaperH+CornerH>=Height) {
94  Error("CheckConfigurations", "TaperH(%.1f)+CornerH(%.1f)>=Height(%.1f)!",
96  abort();
97  }
98 }
double GrooveH
Height of Groove.
Definition: PointContact.h:30
double BoreH
Depth of bore hole.
Definition: PointContact.h:17
double Radius
Radius of crystal.
Definition: PointContact.h:12
double CornerH
Height of taper (bore side)
Definition: PointContact.h:26
double CornerW
Width of taper (bore side)
Definition: PointContact.h:25
double BoreTaperW
width of bore hole taper
Definition: PointContact.h:19
double WrapAroundR
Inner radius of outer contact.
Definition: PointContact.h:28
void CheckConfigurations()
Check if detector configurations make sense.
Definition: Detector.cc:13
double PointContactH
Height of point contact.
Definition: PointContact.h:15
double Height
height of crystal
Definition: Detector.h:13
double GrooveW
Width of Groove.
Definition: PointContact.h:29
double BoreTaperH
height of bore hole taper
Definition: PointContact.h:20
double BoreR
radius of bore hole
Definition: PointContact.h:18
double PointContactR
Radius of point contact.
Definition: PointContact.h:14
double TaperH
Height of taper (point contact side)
Definition: PointContact.h:23
double TaperW
Width of taper (point contact side)
Definition: PointContact.h:22

◆ ClassDef()

GeFiCa::PointContact::ClassDef ( PointContact  ,
 
)

◆ Draw()

void PointContact::Draw ( Option_t *  option = "side")
Examples:
pointContact/checkInitialization.cc, and pointContact/drawFields.cc.

Definition at line 103 of file PointContact.cc.

104 {
105  TString opt(option); opt.ToLower();
106  if (opt.Contains("half")) return; // not implemented yet
107  // crystal outline
108  TBox *out = new TBox(-Radius,0,Radius,Height); out->SetFillStyle(0);
109  out->SetLineColor(kBlack); out->SetLineStyle(kDashed); out->Draw();
110  // bore hole
111  TBox *bore = new TBox(-BoreR,Height-BoreH,BoreR,Height);
112  bore->SetLineColor(kBlack); bore->SetLineStyle(kDashed);
113  bore->SetFillStyle(0); bore->Draw();
114  // point contact
115  TBox *pc = new TBox(-PointContactR,0,PointContactR,PointContactH);
116  pc->SetLineColor(kBlack); pc->SetLineStyle(kDashed);
117  pc->SetFillStyle(0); pc->Draw();
118  // bottom tapers
119  TLine *blt = new TLine(-Radius,TaperH,-Radius+TaperW,0);
120  blt->SetLineColor(kBlack); blt->SetLineStyle(kDashed); blt->Draw();
121  TLine *brt = new TLine(Radius-TaperW,0,Radius,TaperH);
122  brt->SetLineColor(kBlack); brt->SetLineStyle(kDashed); brt->Draw();
123  // top tapers
124  TLine *tlt = new TLine(-Radius,Height-CornerH,-Radius+CornerW,Height);
125  tlt->SetLineColor(kBlack); tlt->SetLineStyle(kDashed); tlt->Draw();
126  TLine *trt = new TLine(Radius-CornerW,Height,Radius,Height-CornerH);
127  trt->SetLineColor(kBlack); trt->SetLineStyle(kDashed); trt->Draw();
128  // bore tapers
129  TLine *lb = new TLine(-BoreTaperW-BoreR,Height,-BoreR,Height-BoreTaperH);
130  lb->SetLineColor(kBlack); lb->SetLineStyle(kDashed); lb->Draw();
131  TLine *rb = new TLine(BoreR,Height-BoreTaperH,BoreR+BoreTaperW,Height);
132  rb->SetLineColor(kBlack); rb->SetLineStyle(kDashed); rb->Draw();
133  // grove
134  TBox *lg = new TBox(-WrapAroundR,0,-WrapAroundR+GrooveW,GrooveH);
135  lg->SetLineColor(kBlack); lg->SetLineStyle(kDashed);
136  lg->SetFillStyle(0); lg->Draw();
137  TBox *rg = new TBox(WrapAroundR-GrooveW,0,WrapAroundR,GrooveH);
138  rg->SetLineColor(kBlack); rg->SetLineStyle(kDashed);
139  rg->SetFillStyle(0); rg->Draw();
140 }
double GrooveH
Height of Groove.
Definition: PointContact.h:30
double BoreH
Depth of bore hole.
Definition: PointContact.h:17
double Radius
Radius of crystal.
Definition: PointContact.h:12
double CornerH
Height of taper (bore side)
Definition: PointContact.h:26
double CornerW
Width of taper (bore side)
Definition: PointContact.h:25
double BoreTaperW
width of bore hole taper
Definition: PointContact.h:19
double WrapAroundR
Inner radius of outer contact.
Definition: PointContact.h:28
double PointContactH
Height of point contact.
Definition: PointContact.h:15
double Height
height of crystal
Definition: Detector.h:13
double GrooveW
Width of Groove.
Definition: PointContact.h:29
double BoreTaperH
height of bore hole taper
Definition: PointContact.h:20
double BoreR
radius of bore hole
Definition: PointContact.h:18
double PointContactR
Radius of point contact.
Definition: PointContact.h:14
double TaperH
Height of taper (point contact side)
Definition: PointContact.h:23
double TaperW
Width of taper (point contact side)
Definition: PointContact.h:22

Member Data Documentation

◆ BoreH

double GeFiCa::PointContact::BoreH

Depth of bore hole.

Examples:
pointContact/calculateFields.cc, and pointContact/drawFields.cc.

Definition at line 17 of file PointContact.h.

◆ BoreR

double GeFiCa::PointContact::BoreR

radius of bore hole

Examples:
pointContact/calculateFields.cc.

Definition at line 18 of file PointContact.h.

◆ BoreTaperH

double GeFiCa::PointContact::BoreTaperH

height of bore hole taper

Examples:
pointContact/calculateFields.cc.

Definition at line 20 of file PointContact.h.

◆ BoreTaperW

double GeFiCa::PointContact::BoreTaperW

width of bore hole taper

Examples:
pointContact/calculateFields.cc.

Definition at line 19 of file PointContact.h.

◆ CornerH

double GeFiCa::PointContact::CornerH

Height of taper (bore side)

Examples:
pointContact/calculateFields.cc.

Definition at line 26 of file PointContact.h.

◆ CornerW

double GeFiCa::PointContact::CornerW

Width of taper (bore side)

Examples:
pointContact/calculateFields.cc.

Definition at line 25 of file PointContact.h.

◆ GrooveH

double GeFiCa::PointContact::GrooveH

Height of Groove.

Examples:
pointContact/calculateFields.cc.

Definition at line 30 of file PointContact.h.

◆ GrooveW

double GeFiCa::PointContact::GrooveW

Width of Groove.

Examples:
pointContact/calculateFields.cc.

Definition at line 29 of file PointContact.h.

◆ PointContactH

double GeFiCa::PointContact::PointContactH

◆ PointContactR

double GeFiCa::PointContact::PointContactR

◆ Radius

double GeFiCa::PointContact::Radius

◆ TaperH

double GeFiCa::PointContact::TaperH

Height of taper (point contact side)

Examples:
pointContact/calculateFields.cc.

Definition at line 23 of file PointContact.h.

◆ TaperW

double GeFiCa::PointContact::TaperW

Width of taper (point contact side)

Examples:
pointContact/calculateFields.cc.

Definition at line 22 of file PointContact.h.

◆ WrapAroundR

double GeFiCa::PointContact::WrapAroundR

Inner radius of outer contact.

Examples:
pointContact/calculateFields.cc.

Definition at line 28 of file PointContact.h.


The documentation for this class was generated from the following files: