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