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

Configuration of segmented true coaxial detectors. More...

#include <Segmented.h>

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

Public Member Functions

 Segmented (const char *name="sip", const char *title="segmented detector")
 
void CheckConfigurations ()
 
void Draw (Option_t *option="")
 
 ClassDef (Segmented, 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 the crystal More...
 
double BoreR
 radius of the bore hole More...
 
size_t Nphi
 total number of segments in phi More...
 
size_t Nz
 total number of segments in z More...
 
size_t SegmentId
 segment Id in [0, Nphi*Nz] 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 segmented true coaxial detectors.

Examples:
segmented/drawSliceInPhi.cc.

Definition at line 11 of file Segmented.h.

Constructor & Destructor Documentation

◆ Segmented()

Segmented::Segmented ( const char *  name = "sip",
const char *  title = "segmented detector" 
)

Definition at line 5 of file Segmented.cc.

5  :
6  Detector(name, title), Radius(3.5*cm), BoreR(0.5*cm),
7  Nphi(6), Nz(3), SegmentId(1)
8 { Height=5*cm; Bias.push_back(2*kV); }
std::vector< double > Bias
bias on electrodes
Definition: Detector.h:35
size_t Nphi
total number of segments in phi
Definition: Segmented.h:16
double Radius
radius of the crystal
Definition: Segmented.h:14
static const double cm
centimeter
Definition: Units.h:12
static const double kV
kilo volt
Definition: Units.h:21
Detector(const char *name="detector", const char *title="detector")
Definition: Detector.cc:9
size_t SegmentId
segment Id in [0, Nphi*Nz]
Definition: Segmented.h:18
double Height
height of crystal
Definition: Detector.h:13
double BoreR
radius of the bore hole
Definition: Segmented.h:15
size_t Nz
total number of segments in z
Definition: Segmented.h:17

Member Function Documentation

◆ CheckConfigurations()

void Segmented::CheckConfigurations ( )

Definition at line 11 of file Segmented.cc.

12 {
13  if (Radius<=0) {
14  Error("CheckConfigurations", "Radius==%.1f!", Radius);
15  abort();
16  }
17  if (BoreR<=0) {
18  Error("CheckConfigurations", "BoreR==%.1f!", BoreR);
19  abort();
20  }
21  if (BoreR>=Radius) {
22  Error("CheckConfigurations",
23  "BoreR (%.1f) >= Radius (%.1f)!", BoreR, Radius);
24  abort();
25  }
26  if (Nphi==0) {
27  Error("CheckConfigurations",
28  "Total number of segments in phi cannot be zero!");
29  abort();
30  }
31  if (Nz==0) {
32  Error("CheckConfigurations",
33  "Total number of segments in z cannot be zero!");
34  abort();
35  }
36  if (SegmentId>Nphi*Nz) {
37  Error("CheckConfigurations",
38  "SegmentId(%zu)>Nphi(%zu)*Nz(%zu)!",SegmentId, Nphi, Nz);
39  abort();
40  }
41  if (SegmentId==0) {
42  Info("CheckConfigurations", "SegmentId==0, "
43  "please use TrueCoaxial for the core electrode.");
44  abort();
45  }
46 }
size_t Nphi
total number of segments in phi
Definition: Segmented.h:16
double Radius
radius of the crystal
Definition: Segmented.h:14
size_t SegmentId
segment Id in [0, Nphi*Nz]
Definition: Segmented.h:18
double BoreR
radius of the bore hole
Definition: Segmented.h:15
size_t Nz
total number of segments in z
Definition: Segmented.h:17

◆ ClassDef()

GeFiCa::Segmented::ClassDef ( Segmented  ,
 
)

◆ Draw()

void Segmented::Draw ( Option_t *  option = "")
Examples:
segmented/drawSliceInPhi.cc.

Definition at line 51 of file Segmented.cc.

52 {
53  TString pointOfView(option); pointOfView.ToLower();
54  if (pointOfView.Contains("top")) {
55  double x=Radius*cos(2*Pi/Nphi), y=Radius*sin(2*Pi/Nphi);
56 
57  TLine *l1 = new TLine(-Radius,0,Radius,0);
58  l1->SetLineColor(kBlack); l1->SetLineStyle(kDashed); l1->Draw();
59  TLine *l2 = new TLine(-x,-y,x,y);
60  l2->SetLineColor(kBlack); l2->SetLineStyle(kDashed); l2->Draw();
61  TLine *l3 = new TLine(-x,y,x,-y);
62  l3->SetLineColor(kBlack); l3->SetLineStyle(kDashed); l3->Draw();
63 
64  TEllipse *e1 = new TEllipse(0,0,BoreR,BoreR); e1->Draw();
65  TEllipse *e2 = new TEllipse(0,0,Radius,Radius); e2->SetFillStyle(0);
66  e2->Draw();
67  }
68 }
size_t Nphi
total number of segments in phi
Definition: Segmented.h:16
static const double Pi
Definition: Units.h:29
double Radius
radius of the crystal
Definition: Segmented.h:14
double BoreR
radius of the bore hole
Definition: Segmented.h:15

Member Data Documentation

◆ BoreR

double GeFiCa::Segmented::BoreR

radius of the bore hole

Definition at line 15 of file Segmented.h.

◆ Nphi

size_t GeFiCa::Segmented::Nphi

total number of segments in phi

Examples:
segmented/drawSliceInPhi.cc.

Definition at line 16 of file Segmented.h.

◆ Nz

size_t GeFiCa::Segmented::Nz

total number of segments in z

Definition at line 17 of file Segmented.h.

◆ Radius

double GeFiCa::Segmented::Radius

radius of the crystal

Definition at line 14 of file Segmented.h.

◆ SegmentId

size_t GeFiCa::Segmented::SegmentId

segment Id in [0, Nphi*Nz]

Examples:
segmented/drawSliceInPhi.cc.

Definition at line 18 of file Segmented.h.


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