BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
ExtBesEmcGeometry.h
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BESIII Object_Oreiented Simulation and Reconstruction Tool //
3//---------------------------------------------------------------------------//
4//Descpirtion: Geometry of EMC detector
5//Author: Fu Chengdong
6//Created: Oct 23, 2003
7//Comment:
8//---------------------------------------------------------------------------//
9//
10#ifndef ExtBesEmcGeometry_h
11#define ExtBesEmcGeometry_h 1
12
13#include "globals.hh"
14#include "G4ThreeVector.hh"
15
17class G4VPhysicalVolume;
18
20{
21public:
25public:
26 void ReadEMCParameters();// Read EMC parameters from database
27 void ComputeEMCParameters();// Compute derived parameters of the calorimeter
28 void ModifyForCasing();// Compute the sizes of the naked crystals
29 // and the casing
30 void PrintEMCParameters();// Print EMC parameters
31public:
32
33 inline void SetVerboseLevel(G4int val){ verboseLevel=val;}
34
35 inline void SetBSCRmin(G4double val){ BSCRmin=val;};
36 inline void SetBSCDz(G4double val){ BSCDz=val;};
37 inline void SetBSCNbPhi(G4int val){BSCNbPhi=val;};
38 inline void SetBSCNbTheta(G4int val){BSCNbTheta=val;};
39 inline void SetBSCCrystalLength(G4double val){BSCCryLength=val;};
40 inline void SetBSCYFront0(G4double val){BSCYFront0=val;};
41 inline void SetBSCYFront(G4double val){BSCYFront=val;};
42 inline void SetBSCPosition0(G4double val){BSCPosition0=val;};
43 inline void SetBSCPosition1(G4double val){BSCPosition1=val;};
44 inline void SetBSCAngleRotat(G4double val){BSCAngleRotat=val;};
45
46 void SetCasingThickness(G4ThreeVector);
47
48public:
49 G4int GetVerboseLevel() {return verboseLevel;};
50
51 G4double GetBSCRmin() {return BSCRmin;};
52 G4double GetBSCDz() {return BSCDz;};
53 G4int GetBSCNbPhi() {return BSCNbPhi;};
54 G4int GetBSCNbTheta() {return BSCNbTheta;};
55 G4double GetBSCCryLength() {return BSCCryLength;};
56 G4double GetBSCYFront() {return BSCYFront;};
57 G4double GetBSCYFront0() {return BSCYFront0;};
58 G4double GetBSCPositon0() {return BSCPosition0;};
59 G4double GetBSCPositon1() {return BSCPosition1;};
60 G4double GetBSCAngleRotat() {return BSCAngleRotat;};
61
62 G4ThreeVector GetCasingThickness() {return G4ThreeVector(fTyvekThickness,fAlThickness,fMylarThickness);};
63
64 G4double GetXPosition(G4int NbCrystal);
65 G4double GetYPosition(G4int NbCrystal);
66 G4double GetZPosition(G4int NbCrystal);
67 G4double GetThetaPosition(G4int NbCrystal);
68 G4double GetZHalfLength(G4int NbCrystal);
69 G4double GetThetaAxis(G4int NbCrystal);
70 G4double GetPhiAxis(G4int NbCrystal);
71 G4double GetYHalfLength1(G4int NbCrystal);
72 G4double GetXHalfLength1(G4int NbCrystal);
73 G4double GetXHalfLength2(G4int NbCrystal);
74 G4double GetTanAlpha1(G4int NbCrystal);
75 G4double GetYHalfLength2(G4int NbCrystal);
76 G4double GetXHalfLength3(G4int NbCrystal);
77 G4double GetXHalfLength4(G4int NbCrystal);
78 G4double GetTanAlpha2(G4int NbCrystal);
79 G4VPhysicalVolume* GetPhysiBSCCrystal(G4int NbCrystal);
80
81 G4double GetRearBoxLength(G4int NbCrystal);
82 G4double GetRearBoxDz(G4int NbCrystal);
83 G4double GetRearBoxPosX(G4int NbCrystal);
84 G4double GetRearBoxPosY(G4int NbCrystal);
85 G4double GetRearBoxPosZ(G4int NbCrystal);
86 G4double GetRearBoxPosTheta(G4int NbCrystal);
87
88private:
89 G4int verboseLevel;
90
91 G4double BSCCryLength;
92 G4double BSCYFront0;
93 G4double BSCYFront;
94 G4double BSCYFront1;
95 G4double BSCPosition0;
96 G4double BSCPosition1;
97
98 G4int BSCNbPhi;
99 G4int BSCNbTheta;
100
101 G4double BSCPhiRmin;
102 G4double BSCPhiRmax;
103 G4double BSCPhiDz;
104 G4double BSCPhiSphi;
105 G4double BSCPhiDphi;
106 G4double BSCAngleRotat;
107 G4double BSCRmin;
108 G4double BSCRmax;
109 G4double BSCDz;
110
111 G4double BSCRmin1;
112 G4double BSCRmax1;
113 G4double BSCRmin2;
114 G4double BSCRmax2;
115 G4double BSCDz1;
116
117 G4double zHalfLength[150];
118 G4double thetaAxis[150];
119 G4double phiAxis[150];
120 G4double yHalfLength1[150];
121 G4double xHalfLength1[150];
122 G4double xHalfLength2[150];
123 G4double tanAlpha1[150];
124 G4double yHalfLength2[150];
125 G4double xHalfLength3[150];
126 G4double xHalfLength4[150];
127 G4double tanAlpha2[150];
128 G4double thetaPosition[150];
129 G4double xPosition[150];
130 G4double yPosition[150];
131 G4double zPosition[150];
132
133 G4VPhysicalVolume* physiBSCCrystal[50];
134
135 G4double fTyvekThickness;
136 G4double fAlThickness;
137 G4double fMylarThickness;
138
139 /////////////////////////////////////////////////////////////
140 //other substance on the rear face of crystal
141 G4double rearBoxLength;
142 G4double rearBoxDz;
143 G4double rearBoxPosX[150];
144 G4double rearBoxPosY[150];
145 G4double rearBoxPosZ[150];
146
147 //tyvek casing
148 G4double rearCasingThickness;
149
150 //organic glass
151 G4double orgGlassLengthX;
152 G4double orgGlassLengthY;
153 G4double orgGlassLengthZ;
154
155 //photodiode
156 G4double PDLengthX;
157 G4double PDLengthY;
158 G4double PDLengthZ;
159
160 //Al plate
161 G4double AlPlateDz;
162
163 //preamplifier box
164 G4double PABoxDz;
165 G4double PABoxThickness;
166
167 //stainless steel plate for hanging the crystal
168 G4double HangingPlateDz;
169
170 G4double OCGirderRmin1[22];
171 G4double OCGirderRmin2[22];
172 G4double OCGirderDz[22];
173 G4double OCGirderAngle;
174 G4double OCGirderPosZ[22];
175
176 //cable
177 G4double cableLength[22];
178 G4double cableDr;
179 G4double cablePosX[22];
180 G4double cablePosY[22];
181 G4double cablePosZ[22];
182
183 //water pipe
184 G4double waterPipeDr;
185 G4double waterPipeThickness;
186
187 /////////////////////////////////////////////////////////////
188 //barrel support frame
189 G4double SPBarThickness;
190 G4double SPBarThickness1;
191 G4double SPBarwidth;
192 G4double SPBarDphi;
193 G4double RFBarThickness;
194 G4int RFBarHoleNb;
195 G4double RFBarHoleDphi;
196 G4double RFBarHoleDz;
197
198 //end ring
199 G4double EndRingDz;
200 G4double EndRingDr;
201 G4double EndRingRmin;
202
203 //taper ring
204 G4double TaperRingThickness1;
205 G4double TaperRingThickness2;
206 G4double TaperRingThickness3;
207 G4double TaperRingTheta;
208 G4double TaperRingRmin1;
209 G4double TaperRingRmin2;
210 G4double TaperRingDr;
211 G4double TaperRingDz;
212 G4double TaperRingInnerLength;
213 G4double TaperRingOuterLength;
214 G4double TaperRingOuterLength1;
215
216};
217#endif
218
219
G4double GetBSCPositon0()
G4double GetBSCCryLength()
G4double GetXHalfLength1(G4int NbCrystal)
G4double GetBSCPositon1()
G4double GetThetaAxis(G4int NbCrystal)
G4double GetRearBoxPosX(G4int NbCrystal)
G4double GetTanAlpha2(G4int NbCrystal)
G4double GetRearBoxPosZ(G4int NbCrystal)
void SetBSCDz(G4double val)
G4double GetThetaPosition(G4int NbCrystal)
void SetBSCNbPhi(G4int val)
G4double GetPhiAxis(G4int NbCrystal)
void SetVerboseLevel(G4int val)
void SetBSCNbTheta(G4int val)
void SetBSCYFront(G4double val)
G4double GetTanAlpha1(G4int NbCrystal)
void SetBSCPosition1(G4double val)
void SetBSCPosition0(G4double val)
G4double GetRearBoxPosY(G4int NbCrystal)
G4double GetYHalfLength2(G4int NbCrystal)
G4double GetBSCAngleRotat()
G4double GetYPosition(G4int NbCrystal)
G4double GetBSCYFront0()
void SetBSCCrystalLength(G4double val)
G4double GetZPosition(G4int NbCrystal)
G4double GetXHalfLength3(G4int NbCrystal)
void SetCasingThickness(G4ThreeVector)
void SetBSCAngleRotat(G4double val)
G4VPhysicalVolume * GetPhysiBSCCrystal(G4int NbCrystal)
G4ThreeVector GetCasingThickness()
void SetBSCYFront0(G4double val)
void SetBSCRmin(G4double val)
G4double GetZHalfLength(G4int NbCrystal)
G4double GetXHalfLength2(G4int NbCrystal)
G4double GetRearBoxLength(G4int NbCrystal)
G4double GetXHalfLength4(G4int NbCrystal)
G4double GetXPosition(G4int NbCrystal)
G4double GetRearBoxPosTheta(G4int NbCrystal)
G4double GetYHalfLength1(G4int NbCrystal)
G4double GetRearBoxDz(G4int NbCrystal)