BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
ExtBesEmcGeometry Class Reference

#include <ExtBesEmcGeometry.h>

Public Member Functions

 ExtBesEmcGeometry ()
 
 ~ExtBesEmcGeometry ()
 
void ReadEMCParameters ()
 
void ComputeEMCParameters ()
 
void ModifyForCasing ()
 
void PrintEMCParameters ()
 
void SetVerboseLevel (G4int val)
 
void SetBSCRmin (G4double val)
 
void SetBSCDz (G4double val)
 
void SetBSCNbPhi (G4int val)
 
void SetBSCNbTheta (G4int val)
 
void SetBSCCrystalLength (G4double val)
 
void SetBSCYFront0 (G4double val)
 
void SetBSCYFront (G4double val)
 
void SetBSCPosition0 (G4double val)
 
void SetBSCPosition1 (G4double val)
 
void SetBSCAngleRotat (G4double val)
 
void SetCasingThickness (G4ThreeVector)
 
G4int GetVerboseLevel ()
 
G4double GetBSCRmin ()
 
G4double GetBSCDz ()
 
G4int GetBSCNbPhi ()
 
G4int GetBSCNbTheta ()
 
G4double GetBSCCryLength ()
 
G4double GetBSCYFront ()
 
G4double GetBSCYFront0 ()
 
G4double GetBSCPositon0 ()
 
G4double GetBSCPositon1 ()
 
G4double GetBSCAngleRotat ()
 
G4ThreeVector GetCasingThickness ()
 
G4double GetXPosition (G4int NbCrystal)
 
G4double GetYPosition (G4int NbCrystal)
 
G4double GetZPosition (G4int NbCrystal)
 
G4double GetThetaPosition (G4int NbCrystal)
 
G4double GetZHalfLength (G4int NbCrystal)
 
G4double GetThetaAxis (G4int NbCrystal)
 
G4double GetPhiAxis (G4int NbCrystal)
 
G4double GetYHalfLength1 (G4int NbCrystal)
 
G4double GetXHalfLength1 (G4int NbCrystal)
 
G4double GetXHalfLength2 (G4int NbCrystal)
 
G4double GetTanAlpha1 (G4int NbCrystal)
 
G4double GetYHalfLength2 (G4int NbCrystal)
 
G4double GetXHalfLength3 (G4int NbCrystal)
 
G4double GetXHalfLength4 (G4int NbCrystal)
 
G4double GetTanAlpha2 (G4int NbCrystal)
 
G4VPhysicalVolume * GetPhysiBSCCrystal (G4int NbCrystal)
 
G4double GetRearBoxLength (G4int NbCrystal)
 
G4double GetRearBoxDz (G4int NbCrystal)
 
G4double GetRearBoxPosX (G4int NbCrystal)
 
G4double GetRearBoxPosY (G4int NbCrystal)
 
G4double GetRearBoxPosZ (G4int NbCrystal)
 
G4double GetRearBoxPosTheta (G4int NbCrystal)
 

Friends

class ExtBesEmcConstruction
 

Detailed Description

Definition at line 19 of file ExtBesEmcGeometry.h.

Constructor & Destructor Documentation

◆ ExtBesEmcGeometry()

ExtBesEmcGeometry::ExtBesEmcGeometry ( )

Definition at line 17 of file ExtBesEmcGeometry.cxx.

18{
19 verboseLevel = 0;
20}

◆ ~ExtBesEmcGeometry()

ExtBesEmcGeometry::~ExtBesEmcGeometry ( )

Definition at line 22 of file ExtBesEmcGeometry.cxx.

23{;}

Member Function Documentation

◆ ComputeEMCParameters()

void ExtBesEmcGeometry::ComputeEMCParameters ( )

Definition at line 122 of file ExtBesEmcGeometry.cxx.

123{
125
126 // Compute derived parameters of the calorimeter
127 G4double theta0;
128 G4int i;
129 //for debug
130 //G4Exception("ExtBesEmcGeometry::ComputeEMCParameters() starting.......");
131 //
132 //support frame
133 //
134 const G4double delta=1.*mm; //for opening-cut girder
135 TaperRingRmin1 = BSCRmax1-TaperRingThickness1;
136 TaperRingRmin2 = TaperRingRmin1+TaperRingDz*tan(TaperRingTheta);
137 TaperRingDr = TaperRingThickness2/cos(TaperRingTheta);
138 TaperRingOuterLength1 = TaperRingOuterLength+TaperRingThickness3*tan(TaperRingTheta);
139
140 BSCRmax2 = TaperRingRmin2+TaperRingDr-TaperRingThickness3*tan(TaperRingTheta);
141 BSCRmax = BSCRmin+33.8*cm;
142 BSCPhiDphi= 360.*deg/BSCNbPhi;
143 BSCPhiSphi= -BSCPhiDphi/2.;
144 BSCPhiDz = BSCDz;
145 BSCPhiRmax= BSCRmax-0.5*cm;
146 BSCPhiRmin= BSCRmin/sin(90.*deg+BSCPhiDphi/2.)
147 *sin(90.*deg+BSCPhiDphi/2.-BSCAngleRotat); //Rmin after rotate
148 SPBarDphi=2*atan(SPBarwidth/(2*BSCRmax));
149
150 //crystal No.1(from z=0 to big)
151 zHalfLength[0] = BSCCryLength/2.;
152 yHalfLength1[0]= BSCYFront0/2.;
153 xHalfLength1[0]= BSCPhiRmin*tan(BSCPhiDphi)/2.;
154 xHalfLength2[0]= xHalfLength1[0];
155 G4double rminprojected=BSCRmin*cos(BSCAngleRotat);
156 // rminprojected=BSCRmin;//according to hardware design
157 yHalfLength2[0]= yHalfLength1[0]
158 +(BSCYFront0-BSCPosition0)/rminprojected*BSCCryLength/2.;
159 xHalfLength3[0]= xHalfLength1[0]*(BSCPhiRmin+BSCCryLength)/BSCPhiRmin;
160 xHalfLength4[0]= xHalfLength2[0]*(BSCPhiRmin+BSCCryLength)/BSCPhiRmin;
161
162 thetaPosition[0]= 90.*deg;
163 xPosition[0] = BSCPhiRmin+BSCCryLength/2.;
164 yPosition[0] =
165 -(xHalfLength1[0]+xHalfLength3[0]+xHalfLength2[0]+xHalfLength4[0])/4.;
166 zPosition[0] = (yHalfLength1[0]+yHalfLength2[0])/2.;
167
168 theta0= 90.*deg-atan((BSCYFront0-BSCPosition0)/rminprojected);
169 if(verboseLevel>1)
170 {
171 G4cout << "------------------------------------>1"<< G4endl
172 << "The direction of crystal is:"
173 << theta0/deg <<"(deg)."<< G4endl;
174 }
175
176 rearBoxPosX[0] = xPosition[0]+BSCCryLength/2.+rearBoxDz/2.;
177 rearBoxPosY[0] = -(xHalfLength3[0]+xHalfLength4[0])/2.;
178 rearBoxPosZ[0] = yHalfLength2[0];
179
180 OCGirderRmin1[0] = rearBoxPosX[0]+rearBoxDz/2.+delta;
181 OCGirderRmin2[0] = rearBoxPosX[0]+rearBoxDz/2.+delta;
182 OCGirderDz[0] = rearBoxLength;
183 OCGirderPosZ[0] = rearBoxLength/2;
184
185 cableLength[0] = BSCDz-rearBoxPosZ[0];
186 cablePosX[0] = BSCPhiRmax-cableDr-2.*mm;
187 cablePosY[0] = rearBoxPosY[0]-3*cableDr;
188 cablePosZ[0] = BSCDz-cableLength[0]/2;
189
190 //crystal No.2
191 zHalfLength[1]= BSCCryLength/2.;
192 yHalfLength1[1]= BSCYFront0/2.;
193 G4double deltaR= BSCYFront0*cos(theta0);
194 xHalfLength1[1]= xHalfLength1[0];
195 xHalfLength2[1]= xHalfLength1[1]*(BSCPhiRmin+deltaR)/BSCPhiRmin;
196 yHalfLength2[1]= yHalfLength1[1]
197 +tan(theta0-atan(rminprojected/(BSCYFront0*(1.+1./sin(theta0))-
198 BSCPosition1)))*BSCCryLength/2.;
199 deltaR=deltaR+BSCCryLength*sin(theta0);
200 xHalfLength4[1]= xHalfLength1[1]*(BSCPhiRmin+deltaR)/BSCPhiRmin;
201 deltaR=deltaR-yHalfLength2[1]*2.*cos(theta0);
202 xHalfLength3[1]= xHalfLength1[1]*(BSCPhiRmin+deltaR)/BSCPhiRmin;
203
204 thetaPosition[1]= theta0;
205 xPosition[1] = BSCPhiRmin+BSCCryLength/2.*sin(theta0)
206 + (3.*yHalfLength1[1]-yHalfLength2[1])/2.*cos(theta0);
207 yPosition[1] =
208 -(xHalfLength1[1]+xHalfLength3[1]+xHalfLength2[1]+xHalfLength4[1])/4.;
209 zPosition[1] = yHalfLength1[0]*2.
210 + (yHalfLength1[1]*2./tan(theta0)+BSCCryLength/2.)*cos(theta0)
211 + (yHalfLength1[1]+yHalfLength2[1])/2.*sin(theta0);
212
213 rearBoxPosX[1] = xPosition[1]+(BSCCryLength/2.+rearBoxDz/2.)*sin(theta0);
214 rearBoxPosY[1] = -(xHalfLength3[1]+xHalfLength4[1])/2.;
215 rearBoxPosZ[1] = zPosition[1]+(BSCCryLength/2.+rearBoxDz/2.)*cos(theta0);
216
217 OCGirderRmin1[1] = rearBoxPosX[1]+rearBoxDz*sin(theta0)/2.+rearBoxLength*cos(theta0)/2+delta;
218 OCGirderRmin2[1] = rearBoxPosX[1]+rearBoxDz*sin(theta0)/2.-rearBoxLength*cos(theta0)/2+delta;
219 OCGirderDz[1] = rearBoxLength*sin(theta0);
220 OCGirderPosZ[1] = rearBoxPosZ[1]+rearBoxDz*cos(theta0)/2.;
221
222 cableLength[1] = BSCDz-rearBoxPosZ[1];
223 cablePosX[1] = cablePosX[0];
224 cablePosY[1] = cablePosY[0]+2*cableDr;
225 cablePosZ[1] = BSCDz-cableLength[1]/2;
226
227 theta0= theta0-atan((yHalfLength2[1]-yHalfLength1[1])*2./BSCCryLength);
228
229 for(i=2;i<BSCNbTheta;i++)
230 {
231 if(verboseLevel>1)
232 {
233 G4cout << "------------------------------------>"<<i<< G4endl
234 << "The direction of crystal is:"
235 << theta0/deg <<"(deg)." << G4endl;
236 }
237 //crystal No.i+1
238 zHalfLength[i]=zHalfLength[0];
239 yHalfLength1[i]=BSCYFront/2.;
240 if(i==BSCNbTheta-1)
241 {yHalfLength1[i]=BSCYFront1/2.;} //the rightest crystal
242 deltaR=yHalfLength1[i]*2.*cos(theta0);
243 xHalfLength1[i]=xHalfLength1[0];
244 xHalfLength2[i]=xHalfLength1[i]/BSCPhiRmin*(BSCPhiRmin+deltaR);
245 yHalfLength2[i]=yHalfLength1[i]
246 *(1.+BSCCryLength/(rminprojected/sin(theta0)
247 +yHalfLength1[i]*2./tan(theta0)));
248 deltaR=deltaR+BSCCryLength*sin(theta0);
249 xHalfLength4[i]=xHalfLength1[i]/BSCPhiRmin*(BSCPhiRmin+deltaR);
250 deltaR=deltaR-yHalfLength2[i]*2.*cos(theta0);
251 xHalfLength3[i]=xHalfLength1[i]/BSCPhiRmin*(BSCPhiRmin+deltaR);
252
253 thetaPosition[i]=theta0;
254 xPosition[i]=BSCPhiRmin+zHalfLength[i]*sin(theta0)
255 + (3.*yHalfLength1[i]-yHalfLength2[i])/2.*cos(theta0);
256 yPosition[i]=
257 -(xHalfLength1[i]+xHalfLength3[i]+xHalfLength2[i]+xHalfLength4[i])/4.;
258 zPosition[i]=BSCPosition1+rminprojected/tan(theta0)
259 +(2.*yHalfLength1[i]/tan(theta0)+zHalfLength[i])*cos(theta0)
260 +(yHalfLength1[i]+yHalfLength2[i])/2.*sin(theta0);
261
262 rearBoxPosX[i] = xPosition[i]+(BSCCryLength/2.+rearBoxDz/2.)*sin(theta0);
263 rearBoxPosY[i] = -(xHalfLength3[i]+xHalfLength4[i])/2.;
264 rearBoxPosZ[i] = zPosition[i]+(BSCCryLength/2.+rearBoxDz/2.)*cos(theta0);
265
266 OCGirderRmin1[i] = rearBoxPosX[i]+rearBoxDz*sin(theta0)/2.+rearBoxLength*cos(theta0)/2+delta;
267 OCGirderRmin2[i] = rearBoxPosX[i]+rearBoxDz*sin(theta0)/2.-rearBoxLength*cos(theta0)/2+delta;
268 OCGirderDz[i] = rearBoxLength*sin(theta0);
269 OCGirderPosZ[i] = rearBoxPosZ[i]+rearBoxDz*cos(theta0)/2.;
270
271 G4int xCable,yCable;
272 xCable = i/4;
273 yCable = i-4*(G4int)(i/4);
274 cableLength[i] = BSCDz-(rearBoxPosZ[i]+rearBoxDz/2.*cos(theta0));
275 cablePosX[i] = cablePosX[0]-xCable*2*cableDr;
276 cablePosY[i] = cablePosY[0]+yCable*2*cableDr;
277 cablePosZ[i] = BSCDz-cableLength[i]/2;
278
279 theta0=theta0-atan(2.*yHalfLength1[i]/(rminprojected/sin(theta0)
280 +2.*yHalfLength1[i]/tan(theta0)));
281
282 }
283 thetaPosition[BSCNbTheta]=theta0;
284 if(verboseLevel>1)
285 {
286 G4cout << "------------------------------------>"<<i<< G4endl
287 << "The direction of crystal is:"
288 << theta0/deg <<"(deg)." << G4endl;
289 }
290
291 G4double oop;
292 for(i=0;i<BSCNbTheta;i++)
293 {
294 oop=sqrt((yHalfLength2[i]-yHalfLength1[i])*(yHalfLength2[i]
295 -yHalfLength1[i])
296 +(xHalfLength3[i]+xHalfLength4[i]-xHalfLength1[i]
297 -xHalfLength2[i])*(xHalfLength3[i]+xHalfLength4[i]
298 -xHalfLength1[i]-xHalfLength2[i])/4);
299 thetaAxis[i]=atan(oop/BSCCryLength);
300 phiAxis[i] =180.*deg+atan((yHalfLength2[i]-yHalfLength1[i])
301 /(xHalfLength3[i]+xHalfLength4[i]
302 -xHalfLength1[i]-xHalfLength2[i])*2.);
303 tanAlpha2[i]=-(xHalfLength4[i]-xHalfLength3[i])/yHalfLength2[i]/2.;
304 tanAlpha1[i]=-(xHalfLength2[i]-xHalfLength1[i])/yHalfLength1[i]/2.;
305 //G4cout <<thetaAxis[i]<<", "
306 // <<phiAxis[i]<<", "
307 // <<tanAlpha1[i]<<", "
308 // <<tanAlpha2[i]<<G4endl;
309 }
310
311}
double tan(const BesAngle a)
Definition BesAngle.h:216
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213
const double delta

◆ GetBSCAngleRotat()

G4double ExtBesEmcGeometry::GetBSCAngleRotat ( )
inline

Definition at line 60 of file ExtBesEmcGeometry.h.

60{return BSCAngleRotat;};

◆ GetBSCCryLength()

G4double ExtBesEmcGeometry::GetBSCCryLength ( )
inline

Definition at line 55 of file ExtBesEmcGeometry.h.

55{return BSCCryLength;};

◆ GetBSCDz()

G4double ExtBesEmcGeometry::GetBSCDz ( )
inline

Definition at line 52 of file ExtBesEmcGeometry.h.

52{return BSCDz;};

◆ GetBSCNbPhi()

G4int ExtBesEmcGeometry::GetBSCNbPhi ( )
inline

Definition at line 53 of file ExtBesEmcGeometry.h.

53{return BSCNbPhi;};

◆ GetBSCNbTheta()

G4int ExtBesEmcGeometry::GetBSCNbTheta ( )
inline

Definition at line 54 of file ExtBesEmcGeometry.h.

54{return BSCNbTheta;};

Referenced by ExtBesCrystalParameterisation::ComputeMaterial().

◆ GetBSCPositon0()

G4double ExtBesEmcGeometry::GetBSCPositon0 ( )
inline

Definition at line 58 of file ExtBesEmcGeometry.h.

58{return BSCPosition0;};

◆ GetBSCPositon1()

G4double ExtBesEmcGeometry::GetBSCPositon1 ( )
inline

Definition at line 59 of file ExtBesEmcGeometry.h.

59{return BSCPosition1;};

◆ GetBSCRmin()

G4double ExtBesEmcGeometry::GetBSCRmin ( )
inline

Definition at line 51 of file ExtBesEmcGeometry.h.

51{return BSCRmin;};

◆ GetBSCYFront()

G4double ExtBesEmcGeometry::GetBSCYFront ( )
inline

Definition at line 56 of file ExtBesEmcGeometry.h.

56{return BSCYFront;};

◆ GetBSCYFront0()

G4double ExtBesEmcGeometry::GetBSCYFront0 ( )
inline

Definition at line 57 of file ExtBesEmcGeometry.h.

57{return BSCYFront0;};

◆ GetCasingThickness()

G4ThreeVector ExtBesEmcGeometry::GetCasingThickness ( )
inline

Definition at line 62 of file ExtBesEmcGeometry.h.

62{return G4ThreeVector(fTyvekThickness,fAlThickness,fMylarThickness);};

◆ GetPhiAxis()

G4double ExtBesEmcGeometry::GetPhiAxis ( G4int NbCrystal)

Definition at line 643 of file ExtBesEmcGeometry.cxx.

644{
645 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
646 {
647 return phiAxis[NbCrystal];
648 }
649 else
650 {
651 return 0.;
652 }
653}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetPhysiBSCCrystal()

G4VPhysicalVolume * ExtBesEmcGeometry::GetPhysiBSCCrystal ( G4int NbCrystal)

Definition at line 751 of file ExtBesEmcGeometry.cxx.

752{
753 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
754 {
755 return physiBSCCrystal[NbCrystal];
756 }
757 else
758 {
759 return NULL;
760 }
761}
#define NULL

Referenced by ExtBesCrystalParameterisation::ComputeIDAndSide().

◆ GetRearBoxDz()

G4double ExtBesEmcGeometry::GetRearBoxDz ( G4int NbCrystal)

◆ GetRearBoxLength()

G4double ExtBesEmcGeometry::GetRearBoxLength ( G4int NbCrystal)

◆ GetRearBoxPosTheta()

G4double ExtBesEmcGeometry::GetRearBoxPosTheta ( G4int NbCrystal)

◆ GetRearBoxPosX()

G4double ExtBesEmcGeometry::GetRearBoxPosX ( G4int NbCrystal)

◆ GetRearBoxPosY()

G4double ExtBesEmcGeometry::GetRearBoxPosY ( G4int NbCrystal)

◆ GetRearBoxPosZ()

G4double ExtBesEmcGeometry::GetRearBoxPosZ ( G4int NbCrystal)

◆ GetTanAlpha1()

G4double ExtBesEmcGeometry::GetTanAlpha1 ( G4int NbCrystal)

Definition at line 691 of file ExtBesEmcGeometry.cxx.

692{
693 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
694 {
695 return tanAlpha1[NbCrystal];
696 }
697 else
698 {
699 return 0.;
700 }
701}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetTanAlpha2()

G4double ExtBesEmcGeometry::GetTanAlpha2 ( G4int NbCrystal)

Definition at line 739 of file ExtBesEmcGeometry.cxx.

740{
741 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
742 {
743 return tanAlpha2[NbCrystal];
744 }
745 else
746 {
747 return 0.;
748 }
749}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetThetaAxis()

G4double ExtBesEmcGeometry::GetThetaAxis ( G4int NbCrystal)

Definition at line 631 of file ExtBesEmcGeometry.cxx.

632{
633 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
634 {
635 return thetaAxis[NbCrystal];
636 }
637 else
638 {
639 return 0.;
640 }
641}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetThetaPosition()

G4double ExtBesEmcGeometry::GetThetaPosition ( G4int NbCrystal)

Definition at line 607 of file ExtBesEmcGeometry.cxx.

608{
609 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
610 {
611 return thetaPosition[NbCrystal];
612 }
613 else
614 {
615 return 0.;
616 }
617}

◆ GetVerboseLevel()

G4int ExtBesEmcGeometry::GetVerboseLevel ( )
inline

Definition at line 49 of file ExtBesEmcGeometry.h.

49{return verboseLevel;};

◆ GetXHalfLength1()

G4double ExtBesEmcGeometry::GetXHalfLength1 ( G4int NbCrystal)

Definition at line 667 of file ExtBesEmcGeometry.cxx.

668{
669 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
670 {
671 return xHalfLength1[NbCrystal];
672 }
673 else
674 {
675 return 0.;
676 }
677}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetXHalfLength2()

G4double ExtBesEmcGeometry::GetXHalfLength2 ( G4int NbCrystal)

Definition at line 679 of file ExtBesEmcGeometry.cxx.

680{
681 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
682 {
683 return xHalfLength2[NbCrystal];
684 }
685 else
686 {
687 return 0.;
688 }
689}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetXHalfLength3()

G4double ExtBesEmcGeometry::GetXHalfLength3 ( G4int NbCrystal)

Definition at line 715 of file ExtBesEmcGeometry.cxx.

716{
717 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
718 {
719 return xHalfLength3[NbCrystal];
720 }
721 else
722 {
723 return 0.;
724 }
725}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetXHalfLength4()

G4double ExtBesEmcGeometry::GetXHalfLength4 ( G4int NbCrystal)

Definition at line 727 of file ExtBesEmcGeometry.cxx.

728{
729 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
730 {
731 return xHalfLength4[NbCrystal];
732 }
733 else
734 {
735 return 0.;
736 }
737}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetXPosition()

G4double ExtBesEmcGeometry::GetXPosition ( G4int NbCrystal)

Definition at line 571 of file ExtBesEmcGeometry.cxx.

572{
573 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
574 {
575 return xPosition[NbCrystal];
576 }
577 else
578 {
579 return 0.;
580 }
581}

Referenced by ExtBesCrystalParameterisation::ComputeTransformation().

◆ GetYHalfLength1()

G4double ExtBesEmcGeometry::GetYHalfLength1 ( G4int NbCrystal)

Definition at line 655 of file ExtBesEmcGeometry.cxx.

656{
657 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
658 {
659 return yHalfLength1[NbCrystal];
660 }
661 else
662 {
663 return 0.;
664 }
665}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetYHalfLength2()

G4double ExtBesEmcGeometry::GetYHalfLength2 ( G4int NbCrystal)

Definition at line 703 of file ExtBesEmcGeometry.cxx.

704{
705 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
706 {
707 return yHalfLength2[NbCrystal];
708 }
709 else
710 {
711 return 0.;
712 }
713}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetYPosition()

G4double ExtBesEmcGeometry::GetYPosition ( G4int NbCrystal)

Definition at line 583 of file ExtBesEmcGeometry.cxx.

584{
585 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
586 {
587 return yPosition[NbCrystal];
588 }
589 else
590 {
591 return 0.;
592 }
593}

Referenced by ExtBesCrystalParameterisation::ComputeTransformation().

◆ GetZHalfLength()

G4double ExtBesEmcGeometry::GetZHalfLength ( G4int NbCrystal)

Definition at line 619 of file ExtBesEmcGeometry.cxx.

620{
621 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
622 {
623 return zHalfLength[NbCrystal];
624 }
625 else
626 {
627 return 0.;
628 }
629}

Referenced by ExtBesCrystalParameterisation::ComputeDimensions().

◆ GetZPosition()

G4double ExtBesEmcGeometry::GetZPosition ( G4int NbCrystal)

Definition at line 595 of file ExtBesEmcGeometry.cxx.

596{
597 if(NbCrystal>=0&&NbCrystal<BSCNbTheta*6)
598 {
599 return zPosition[NbCrystal];
600 }
601 else
602 {
603 return 0.;
604 }
605}

Referenced by ExtBesCrystalParameterisation::ComputeTransformation().

◆ ModifyForCasing()

void ExtBesEmcGeometry::ModifyForCasing ( )

Definition at line 313 of file ExtBesEmcGeometry.cxx.

314{
315 // Compute the sizes of the naked crystals and the casing
316 // Casing size
317 // BSCNbTheta---->2*BSCNbTheta-1 : before crystal
318 // 2*BSCNbTheta-->3*BSCNbTheta-1 : a side of crystal
319 // 3*BSCNbTheta-->4*BSCNbTheta-1 : b side of crystal
320 // 4*BSCNbTheta-->5*BSCNbTheta-1 : c side of crystal
321 // 5*BSCNbTheta-->6*BSCNbTheta-1 : d side of crystal
322 // d
323 // ----------
324 // | |
325 // | |
326 // c | | a
327 // | |
328 // | |
329 // | /
330 // | /
331 // | /
332 // b
333 G4double totalThickness=fTyvekThickness+fAlThickness+fMylarThickness;//
334 G4double delta=0.,angle1=0.*deg,angle2=0.*deg;
335 G4double oop; //the distance of the centers of the two parallel plane
336
337 G4double rminprojected=BSCRmin*cos(BSCAngleRotat);
338 rminprojected=BSCRmin;//accord with hardware design
339
340 G4int i;
341 for(i=0;i<BSCNbTheta;i++)
342 {
343 zHalfLength[BSCNbTheta+i]=totalThickness/2.;
344 yHalfLength1[BSCNbTheta+i]=yHalfLength1[i];
345 yHalfLength2[BSCNbTheta+i]=yHalfLength1[i]
346 +(yHalfLength2[i]-yHalfLength1[i])*totalThickness/BSCCryLength;
347 xHalfLength1[BSCNbTheta+i]=xHalfLength1[i];
348 xHalfLength2[BSCNbTheta+i]=xHalfLength2[i];
349 xHalfLength1[BSCNbTheta*2+i]=xHalfLength3[BSCNbTheta+i]=
350 xHalfLength1[i]*(BSCCryLength-totalThickness)/BSCCryLength
351 +xHalfLength3[i]*totalThickness/BSCCryLength;
352 xHalfLength2[BSCNbTheta*4+i]=xHalfLength4[BSCNbTheta+i]=
353 xHalfLength2[i]*(BSCCryLength-totalThickness)/BSCCryLength
354 +xHalfLength4[i]*totalThickness/BSCCryLength;
355
356 zHalfLength[BSCNbTheta*5+i]=zHalfLength[BSCNbTheta*4+i]=
357 zHalfLength[BSCNbTheta*3+i]=zHalfLength[BSCNbTheta*2+i]=
358 zHalfLength[i]-totalThickness/2.;
359
360 yHalfLength2[BSCNbTheta*2+i]=yHalfLength1[BSCNbTheta*2+i]=
361 totalThickness/cos(thetaPosition[i+1]-thetaPosition[i])/2.;
362 xHalfLength3[BSCNbTheta*2+i]=xHalfLength3[i];
363 xHalfLength4[BSCNbTheta*2+i]=xHalfLength3[i]
364 +(xHalfLength4[i]-xHalfLength3[i])*yHalfLength2[BSCNbTheta*2+i]
365 /yHalfLength2[i];
366 xHalfLength2[BSCNbTheta*2+i]=xHalfLength3[BSCNbTheta+i]
367 +(xHalfLength4[BSCNbTheta+i]-xHalfLength3[BSCNbTheta+i])
368 *yHalfLength1[BSCNbTheta*2+i]/yHalfLength2[BSCNbTheta*1+i];
369
370 yHalfLength2[BSCNbTheta*4+i]=yHalfLength1[BSCNbTheta*4+i]=
371 totalThickness/2.;
372 xHalfLength4[BSCNbTheta*4+i]=xHalfLength4[i];
373 xHalfLength3[BSCNbTheta*4+i]=xHalfLength4[i]
374 -(xHalfLength4[i]-xHalfLength3[i])*yHalfLength2[BSCNbTheta*4+i]
375 /yHalfLength2[i];
376 xHalfLength1[BSCNbTheta*4+i]=xHalfLength4[BSCNbTheta+i]
377 -(xHalfLength4[BSCNbTheta+i]-xHalfLength3[BSCNbTheta+i])
378 *yHalfLength1[BSCNbTheta*4+i]/yHalfLength2[BSCNbTheta*1+i];
379
380 delta=totalThickness/2.+yHalfLength1[BSCNbTheta*2+i];
381 angle1=atan(yHalfLength2[i]/(xHalfLength4[i]-xHalfLength3[i]));
382 angle2=atan(2.*(xHalfLength4[i]-xHalfLength2[i])*sin(angle1)
383 /BSCCryLength);
384
385 yHalfLength1[BSCNbTheta*5+i]=yHalfLength1[BSCNbTheta*3+i]=
386 yHalfLength1[i]-delta;
387 yHalfLength2[BSCNbTheta*5+i]=yHalfLength2[BSCNbTheta*3+i]=
388 yHalfLength2[i]-delta;
389 xHalfLength4[BSCNbTheta*3+i]=xHalfLength3[BSCNbTheta*3+i]=
390 xHalfLength2[BSCNbTheta*3+i]=xHalfLength1[BSCNbTheta*3+i]=
391 totalThickness/cos(angle2)/sin(angle1)/2.;
392 xHalfLength4[BSCNbTheta*5+i]=xHalfLength3[BSCNbTheta*5+i]=
393 xHalfLength2[BSCNbTheta*5+i]=xHalfLength1[BSCNbTheta*5+i]=
394 totalThickness/2.;
395
396 zHalfLength[i]=zHalfLength[i]-totalThickness/2.;
397 yHalfLength1[i]=yHalfLength1[i]-delta;
398 yHalfLength2[i]=yHalfLength2[i]-delta;
399 delta=totalThickness*(1.+1./cos(angle2)/sin(angle1))/2.;
400 xHalfLength1[i]=xHalfLength1[i]-delta;
401 xHalfLength2[i]=xHalfLength2[i]-delta;
402 xHalfLength3[i]=xHalfLength3[i]-delta;
403 xHalfLength4[i]=xHalfLength4[i]-delta;
404
405 oop=sqrt((yHalfLength2[i]-yHalfLength1[i])*(yHalfLength2[i]
406 -yHalfLength1[i])
407 +(xHalfLength3[i]+xHalfLength4[i]-xHalfLength1[i]
408 -xHalfLength2[i])*(xHalfLength3[i]+xHalfLength4[i]
409 -xHalfLength1[i]-xHalfLength2[i])/4);
410 thetaAxis[i]=atan(oop/BSCCryLength);
411 // -phi --->180+phi
412 phiAxis[i] =180.*deg+atan((yHalfLength2[i]-yHalfLength1[i])
413 /(xHalfLength3[i]+xHalfLength4[i]
414 -xHalfLength1[i]-xHalfLength2[i])*2.);
415
416 oop=sqrt((yHalfLength2[BSCNbTheta+i]-yHalfLength1[BSCNbTheta+i])
417 *(yHalfLength2[BSCNbTheta+i]-yHalfLength1[BSCNbTheta+i])
418 +(xHalfLength3[BSCNbTheta+i]+xHalfLength4[BSCNbTheta+i]
419 -xHalfLength1[BSCNbTheta+i]-xHalfLength2[BSCNbTheta+i])
420 *(xHalfLength3[BSCNbTheta+i]+xHalfLength4[BSCNbTheta+i]
421 -xHalfLength1[BSCNbTheta+i]-xHalfLength2[BSCNbTheta+i])/4);
422 thetaAxis[BSCNbTheta+i]=atan(oop/totalThickness);
423 phiAxis [BSCNbTheta+i]=
424 -atan((yHalfLength2[BSCNbTheta+i]-yHalfLength1[BSCNbTheta+i])
425 /(xHalfLength3[BSCNbTheta+i]+xHalfLength4[BSCNbTheta+i]
426 -xHalfLength1[BSCNbTheta+i]-xHalfLength2[BSCNbTheta+i])*2.);
427
428 oop=sqrt((yHalfLength2[i]-yHalfLength1[i])*(yHalfLength2[i]
429 -yHalfLength1[i])*4
430 +(xHalfLength3[BSCNbTheta*2+i]+xHalfLength4[BSCNbTheta*2+i]
431 -xHalfLength1[BSCNbTheta*2+i]-xHalfLength2[BSCNbTheta*2+i])
432 *(xHalfLength3[BSCNbTheta*2+i]+xHalfLength4[BSCNbTheta*2+i]
433 -xHalfLength1[BSCNbTheta*2+i]-xHalfLength2[BSCNbTheta*2+i])
434 /4);
435 thetaAxis[BSCNbTheta*2+i]=atan(oop/(zHalfLength[BSCNbTheta*2+i]*2));
436 phiAxis [BSCNbTheta*2+i]=
437 -atan((yHalfLength2[i]-yHalfLength1[i])
438 /(xHalfLength3[BSCNbTheta*2+i]+xHalfLength4[BSCNbTheta*2+i]
439 -xHalfLength1[BSCNbTheta*2+i]-xHalfLength2[BSCNbTheta*2+i])*4);
440
441 oop=sqrt((yHalfLength2[i]-yHalfLength1[i])*(yHalfLength2[i]
442 -yHalfLength1[i])*4
443 +(xHalfLength4[i]-xHalfLength2[i])
444 *(xHalfLength4[i]-xHalfLength2[i])*4);
445 thetaAxis[BSCNbTheta*3+i]=atan(oop/(zHalfLength[BSCNbTheta*3+i]*2));
446 phiAxis [BSCNbTheta*3+i]=-atan((yHalfLength2[i]-yHalfLength1[i])
447 /(xHalfLength4[i]-xHalfLength2[i]));
448
449 thetaAxis[BSCNbTheta*4+i]=
450 atan((xHalfLength4[BSCNbTheta*4+i]+xHalfLength3[BSCNbTheta*4+i]
451 -xHalfLength2[BSCNbTheta*4+i]-xHalfLength1[BSCNbTheta*4+i])/2.
452 /(zHalfLength[BSCNbTheta*4+i]*2));
453 phiAxis [BSCNbTheta*4+i]=0;
454
455 thetaAxis[BSCNbTheta*5+i]=atan((xHalfLength3[BSCNbTheta*5+i]
456 -xHalfLength1[BSCNbTheta*5+i])
457 /(zHalfLength[BSCNbTheta*5+i]*2));
458 phiAxis [BSCNbTheta*5+i]=-90.*deg;
459
460 tanAlpha2[BSCNbTheta+i]=tanAlpha1[BSCNbTheta+i]=tanAlpha1[i]=
461 -(xHalfLength2[i]-xHalfLength1[i])/yHalfLength1[i]/2.;
462 tanAlpha1[BSCNbTheta*2+i]=(xHalfLength2[BSCNbTheta*2+i]
463 -xHalfLength1[BSCNbTheta*2+i])
464 /yHalfLength1[BSCNbTheta*2+i]/2.;
465 tanAlpha1[BSCNbTheta*3+i]=tanAlpha1[i]*2.;
466 tanAlpha1[BSCNbTheta*4+i]=(xHalfLength2[BSCNbTheta*4+i]
467 -xHalfLength1[BSCNbTheta*4+i])
468 /yHalfLength1[BSCNbTheta*4+i]/2.;
469 tanAlpha1[BSCNbTheta*5+i]=(xHalfLength2[BSCNbTheta*5+i]
470 -xHalfLength1[BSCNbTheta*5+i])
471 /yHalfLength1[BSCNbTheta*5+i]/2.;
472
473 tanAlpha2[i]=-(xHalfLength4[i]-xHalfLength3[i])/yHalfLength2[i]/2.;
474 //tanAlpha2[BSCNbTheta+i]=(xHalfLength4[BSCNbTheta+i]-xHalfLength3[BSCNbTheta+i])/yHalfLength2[BSCNbTheta+i]/2.;
475 tanAlpha2[BSCNbTheta*2+i]=(xHalfLength4[BSCNbTheta*2+i]
476 -xHalfLength3[BSCNbTheta*2+i])
477 /yHalfLength2[BSCNbTheta*2+i]/2.;
478 tanAlpha2[BSCNbTheta*3+i]=tanAlpha2[i]*2.;
479 tanAlpha2[BSCNbTheta*4+i]=(xHalfLength4[BSCNbTheta*4+i]
480 -xHalfLength3[BSCNbTheta*4+i])
481 /yHalfLength2[BSCNbTheta*4+i]/2.;
482 tanAlpha2[BSCNbTheta*5+i]=(xHalfLength4[BSCNbTheta*5+i]
483 -xHalfLength3[BSCNbTheta*5+i])
484 /yHalfLength2[BSCNbTheta*5+i]/2.;
485
486 zPosition[BSCNbTheta*5+i]=zPosition[BSCNbTheta*3+i]=zPosition[i]=
487 zPosition[i]+totalThickness/2.*cos(thetaPosition[i])
488 -yHalfLength1[BSCNbTheta*2+i]*sin(thetaPosition[i]);
489 zPosition[i]=totalThickness/2.;//for the newest method
490 xPosition[BSCNbTheta*5+i]=xPosition[BSCNbTheta*3+i]=xPosition[i]=
491 xPosition[i]+totalThickness/2.*sin(thetaPosition[i])
492 +totalThickness*(1./cos(thetaPosition[i+1]-thetaPosition[i])-1)/2.
493 *cos(thetaPosition[i]);
494 xPosition[i]=totalThickness*(1.-1./cos(angle2)/sin(angle1))/2.;
495 //for the newest method
496 yPosition[i]=yPosition[i]
497 +totalThickness*(1.-1./cos(angle2)/sin(angle1))/2.;
498 yPosition[i]=yHalfLength1[BSCNbTheta*2+i]-totalThickness/2.;//for the newest method
499 yPosition[BSCNbTheta*3+i]=yPosition[i]*2.+xHalfLength1[BSCNbTheta*3+i];
500 yPosition[BSCNbTheta*5+i]=xHalfLength1[BSCNbTheta*5+i];
501
502 xPosition[BSCNbTheta+i]=BSCPhiRmin
503 +zHalfLength[BSCNbTheta+i]*sin(thetaPosition[i])
504 +(3.*yHalfLength1[BSCNbTheta+i]-yHalfLength2[BSCNbTheta+i])/2.
505 *cos(thetaPosition[i]);
506 yPosition[BSCNbTheta+i]=(xHalfLength1[BSCNbTheta+i]
507 +xHalfLength3[BSCNbTheta+i]
508 +xHalfLength2[BSCNbTheta+i]
509 +xHalfLength4[BSCNbTheta+i])/4.;
510 zPosition[BSCNbTheta+i]=BSCPosition1+rminprojected/tan(thetaPosition[i])
511 +(2.*yHalfLength1[BSCNbTheta+i]/tan(thetaPosition[i])
512 +zHalfLength[BSCNbTheta+i])*cos(thetaPosition[i])
513 +(yHalfLength1[BSCNbTheta+i]+yHalfLength2[BSCNbTheta+i])/2.
514 *sin(thetaPosition[i]);
515
516 xPosition[BSCNbTheta*2+i]=xPosition[i]
517 +((yHalfLength1[i]+yHalfLength2[i])/2.+yHalfLength1[BSCNbTheta*2+i])
518 *cos(thetaPosition[i]);
519 zPosition[BSCNbTheta*2+i]=zPosition[i]
520 -((yHalfLength1[i]+yHalfLength2[i])/2.+yHalfLength1[BSCNbTheta*2+i])
521 *sin(thetaPosition[i]);
522 yPosition[BSCNbTheta*2+i]=(xHalfLength1[BSCNbTheta*2+i]
523 +xHalfLength3[BSCNbTheta*2+i]
524 +xHalfLength2[BSCNbTheta*2+i]
525 +xHalfLength4[BSCNbTheta*2+i])/4.;
526
527 xPosition[BSCNbTheta*4+i]=xPosition[i]
528 -((yHalfLength1[i]+yHalfLength2[i])/2.+yHalfLength1[BSCNbTheta*4+i])
529 *cos(thetaPosition[i]);
530 zPosition[BSCNbTheta*4+i]=zPosition[i]
531 -((yHalfLength1[i]+yHalfLength2[i])/2.+yHalfLength1[BSCNbTheta*4+i])
532 *sin(thetaPosition[i]);
533 yPosition[BSCNbTheta*4+i]=(xHalfLength1[BSCNbTheta*4+i]
534 +xHalfLength3[BSCNbTheta*4+i]
535 +xHalfLength2[BSCNbTheta*4+i]
536 +xHalfLength4[BSCNbTheta*4+i])/4.;
537
538 }
539
540 if(verboseLevel>1)
541 for(i=0;i<BSCNbTheta*6;i++)
542 {
543 G4cout << "The sizes of the " << i+1 << " crystal are:" << G4endl
544 << "zHalfLength =" << zHalfLength[i]/cm << "(cm)," << G4endl
545 << "thetaAxis =" << thetaAxis[i]/deg << "(deg),"<< G4endl
546 << "phiAxis =" << phiAxis[i]/deg << "(deg),"<< G4endl
547 << "yHalfLength1=" << yHalfLength1[i]/cm << "(cm)," << G4endl
548 << "xHalfLength1=" << xHalfLength1[i]/cm << "(cm)," << G4endl
549 << "xHalfLength2=" << xHalfLength2[i]/cm << "(cm)," << G4endl
550 << "tanAlpha1 =" << tanAlpha1[i] << G4endl
551 << "yHalfLength2=" << yHalfLength2[i]/cm << "(cm)," << G4endl
552 << "xHalfLength3=" << xHalfLength3[i]/cm << "(cm)," << G4endl
553 << "xHalfLength4=" << xHalfLength4[i]/cm << "(cm)," << G4endl
554 << "tanAlpha2 =" << tanAlpha2[i] << "." << G4endl
555 << "The position of the " << i+1 << " crystal is:" << G4endl
556 << "(" << xPosition[i]/cm << ","
557 << yPosition[i]/cm << ","
558 << zPosition[i]/cm << ")cm" << G4endl;
559 }
560
561}

◆ PrintEMCParameters()

void ExtBesEmcGeometry::PrintEMCParameters ( )

Definition at line 116 of file ExtBesEmcGeometry.cxx.

117{
118 // Print EMC parameters
119 ;
120}

◆ ReadEMCParameters()

void ExtBesEmcGeometry::ReadEMCParameters ( )

Definition at line 25 of file ExtBesEmcGeometry.cxx.

26{
27 // Read EMC parameters from database
29 //BesEmcParameter emcPara;
30 //emcPara.ReadData();
31
32 TaperRingDz = emcPara.GetTaperRingDz();
33 TaperRingThickness1 = emcPara.GetTaperRingThickness1();
34 TaperRingThickness2 = emcPara.GetTaperRingThickness2();
35 TaperRingThickness3 = emcPara.GetTaperRingThickness3();
36 TaperRingTheta = emcPara.GetTaperRingTheta()*deg;
37 TaperRingInnerLength = emcPara.GetTaperRingInnerLength();
38 TaperRingOuterLength = emcPara.GetTaperRingOuterLength();
39
40 BSCRmin = emcPara.GetBSCRmin();
41 BSCDz = emcPara.GetBSCDz()-TaperRingThickness3;
42
43 BSCRmin1 = emcPara.GetBSCRmin1();
44 BSCRmax1 = emcPara.GetBSCRmax1();
45 BSCRmin2 = emcPara.GetBSCRmin2();
46 //BSCRmax2 = emcPara.GetBSCRmax2();
47 BSCDz1 = emcPara.GetBSCDz1()-TaperRingThickness3;
48
49 BSCAngleRotat = emcPara.GetBSCAngleRotat()*deg;
50 BSCNbPhi = emcPara.GetBSCNbPhi();
51 BSCNbTheta = emcPara.GetBSCNbTheta();
52
53 BSCCryLength = emcPara.GetCrystalLength();
54 BSCYFront0 = emcPara.GetBSCYFront0();
55 BSCYFront = emcPara.GetBSCYFront();
56 BSCYFront1 = emcPara.GetBSCYFront1();
57 BSCPosition0 = emcPara.GetBSCPosition0();
58 BSCPosition1 = emcPara.GetBSCPosition1();
59
60 fTyvekThickness = emcPara.GetTyvekThickness();
61 fAlThickness = emcPara.GetAlThickness();
62 fMylarThickness = emcPara.GetMylarThickness();
63
64 rearBoxLength = emcPara.GetRearBoxLength();
65 rearBoxDz = emcPara.GetRearBoxDz();
66
67 HangingPlateDz = emcPara.GetHangingPlateDz();
68 OCGirderAngle = emcPara.GetOCGirderAngle()*deg;
69
70 rearCasingThickness = emcPara.GetRearCasingThickness();
71
72 orgGlassLengthX = emcPara.GetOrgGlassLengthX();
73 orgGlassLengthY = emcPara.GetOrgGlassLengthY();
74 orgGlassLengthZ = emcPara.GetOrgGlassLengthZ();
75
76 PDLengthX = emcPara.GetPDLengthX();
77 PDLengthY = emcPara.GetPDLengthY();
78 PDLengthZ = emcPara.GetPDLengthZ();
79
80 AlPlateDz = emcPara.GetAlPlateDz();
81 PABoxDz = emcPara.GetPABoxDz();
82 PABoxThickness = emcPara.GetPABoxThickness();
83
84 cableDr = emcPara.GetCableDr();
85 waterPipeDr = emcPara.GetWaterPipeDr();
86 waterPipeThickness= emcPara.GetWaterPipeThickness();
87
88 SPBarThickness = emcPara.GetSPBarThickness();
89 SPBarThickness1 = emcPara.GetSPBarThickness1();
90 SPBarwidth = emcPara.GetSPBarwidth();
91
92 EndRingDz = emcPara.GetEndRingDz();
93 EndRingDr = emcPara.GetEndRingDr();
94 EndRingRmin = emcPara.GetEndRingRmin();
95
96 for(G4int i=0;i<BSCNbTheta*6;i++)
97 {
98 zHalfLength[i] =0;
99 thetaAxis[i] =0;
100 phiAxis [i] =0;
101 yHalfLength1[i] =0;
102 xHalfLength1[i] =0;
103 xHalfLength2[i] =0;
104 tanAlpha1[i] =0;
105 yHalfLength2[i] =0;
106 xHalfLength3[i] =0;
107 xHalfLength4[i] =0;
108 tanAlpha2[i] =0;
109 thetaPosition[i]=0;
110 xPosition[i] =0;
111 yPosition[i] =0;
112 zPosition[i] =0;
113 }
114}
static ExtBesEmcParameter & GetInstance()
G4double GetTaperRingInnerLength()
G4double GetTaperRingThickness3()
G4double GetRearCasingThickness()
G4double GetTaperRingThickness2()
G4double GetTaperRingThickness1()
G4double GetTaperRingOuterLength()

Referenced by ComputeEMCParameters().

◆ SetBSCAngleRotat()

void ExtBesEmcGeometry::SetBSCAngleRotat ( G4double val)
inline

Definition at line 44 of file ExtBesEmcGeometry.h.

44{BSCAngleRotat=val;};

◆ SetBSCCrystalLength()

void ExtBesEmcGeometry::SetBSCCrystalLength ( G4double val)
inline

Definition at line 39 of file ExtBesEmcGeometry.h.

39{BSCCryLength=val;};

◆ SetBSCDz()

void ExtBesEmcGeometry::SetBSCDz ( G4double val)
inline

Definition at line 36 of file ExtBesEmcGeometry.h.

36{ BSCDz=val;};

◆ SetBSCNbPhi()

void ExtBesEmcGeometry::SetBSCNbPhi ( G4int val)
inline

Definition at line 37 of file ExtBesEmcGeometry.h.

37{BSCNbPhi=val;};

◆ SetBSCNbTheta()

void ExtBesEmcGeometry::SetBSCNbTheta ( G4int val)
inline

Definition at line 38 of file ExtBesEmcGeometry.h.

38{BSCNbTheta=val;};

◆ SetBSCPosition0()

void ExtBesEmcGeometry::SetBSCPosition0 ( G4double val)
inline

Definition at line 42 of file ExtBesEmcGeometry.h.

42{BSCPosition0=val;};

◆ SetBSCPosition1()

void ExtBesEmcGeometry::SetBSCPosition1 ( G4double val)
inline

Definition at line 43 of file ExtBesEmcGeometry.h.

43{BSCPosition1=val;};

◆ SetBSCRmin()

void ExtBesEmcGeometry::SetBSCRmin ( G4double val)
inline

Definition at line 35 of file ExtBesEmcGeometry.h.

35{ BSCRmin=val;};

◆ SetBSCYFront()

void ExtBesEmcGeometry::SetBSCYFront ( G4double val)
inline

Definition at line 41 of file ExtBesEmcGeometry.h.

41{BSCYFront=val;};

◆ SetBSCYFront0()

void ExtBesEmcGeometry::SetBSCYFront0 ( G4double val)
inline

Definition at line 40 of file ExtBesEmcGeometry.h.

40{BSCYFront0=val;};

◆ SetCasingThickness()

void ExtBesEmcGeometry::SetCasingThickness ( G4ThreeVector val)

Definition at line 563 of file ExtBesEmcGeometry.cxx.

564{
565 // change Gap thickness and recompute the calorimeter parameters
566 fTyvekThickness = val('X');
567 fAlThickness = val('Y');
568 fMylarThickness = val('Z');
569}

◆ SetVerboseLevel()

void ExtBesEmcGeometry::SetVerboseLevel ( G4int val)
inline

Definition at line 33 of file ExtBesEmcGeometry.h.

33{ verboseLevel=val;}

Friends And Related Symbol Documentation

◆ ExtBesEmcConstruction

friend class ExtBesEmcConstruction
friend

Definition at line 24 of file ExtBesEmcGeometry.h.


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