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