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