ExtBesEmcEndGeometry Class Reference

#include <ExtBesEmcEndGeometry.h>

List of all members.

Public Member Functions

 ExtBesEmcEndGeometry ()
 ~ExtBesEmcEndGeometry ()
void ReadParameters ()
void ComputeParameters ()
void Exchange (G4int cry1, G4int cry2)
void ReflectX ()
void ModifyForCasing (G4ThreeVector pos[8], G4int CryNb)
G4ThreeVector ComputeDimAndPos (const G4int, const G4int, const G4int)
G4int GetCryNumInOneLayer (G4int num)

Private Attributes

G4double WorldRmin1
G4double WorldRmax1
G4double WorldRmin2
G4double WorldRmax2
G4double WorldDz
G4double WorldZPosition
G4double fTyvekThickness
G4double fAlThickness
G4double fMylarThickness
G4double totalThickness
G4double CrystalLength
G4double param [35][24]
G4double penta [5][6]
G4int cryNumInOneLayer [6]
G4int pentaInOneSector [5]
G4ThreeVector fPnt [35][8]
G4ThreeVector fPnt1 [35][8]
G4ThreeVector cryPoint [8]

Friends

class ExtBesEmcConstruction


Detailed Description

Definition at line 8 of file ExtBesEmcEndGeometry.h.


Constructor & Destructor Documentation

ExtBesEmcEndGeometry::ExtBesEmcEndGeometry (  ) 

Definition at line 16 of file ExtBesEmcEndGeometry.cxx.

00017 {;}

ExtBesEmcEndGeometry::~ExtBesEmcEndGeometry (  ) 

Definition at line 19 of file ExtBesEmcEndGeometry.cxx.

00020 {;}


Member Function Documentation

G4ThreeVector ExtBesEmcEndGeometry::ComputeDimAndPos ( const   G4int,
const   G4int,
const   G4int 
)

Definition at line 309 of file ExtBesEmcEndGeometry.cxx.

References EvtCyclic3::A, EvtCyclic3::B, EvtCyclic3::C, genRecEmupikp::i, ganga-rec::j, boss::pos, and subSeperate::temp.

00310 {
00311   //ComputeParameters();
00312   G4int sector=-1, cryNb=-1;
00313   G4int leftFlag=0;
00314   G4int downFlag=0;
00315   G4int pentaFlag=0;
00316   G4int flag=0;
00317   G4double A1=0,a1=0,B1=0,b1=0,C1=0,c1=0,D1=0,d1=0,E1=0,e1=0; //dimension of pentagonal crystal
00318   G4int m_numPhi=0;
00319   G4ThreeVector position=0;
00320   G4int cryInOneSector = cryNumInOneLayer[numTheta]/16; //number of crystal in one layer in one sector
00321   G4ThreeVector pos[8];
00322 
00323   if(partId==2) //west end
00324   {
00325     if(numPhi>=0&&numPhi<8*cryInOneSector)
00326       m_numPhi=8*cryInOneSector-1-numPhi;
00327     else if(numPhi>=8*cryInOneSector&&numPhi<16*cryInOneSector)
00328       m_numPhi=16*cryInOneSector-1-numPhi;
00329   }
00330   else          //east end
00331     m_numPhi=numPhi;
00332 
00333   if(numPhi>=4*cryInOneSector&&numPhi<5*cryInOneSector) //crystal in 4th sector
00334   {
00335     leftFlag = 1;
00336     m_numPhi=8*cryInOneSector-1-numPhi;
00337   }
00338   else if(numPhi>=11*cryInOneSector&&numPhi<12*cryInOneSector) //crystal in 11th sector
00339   {
00340     leftFlag = 1;
00341     downFlag = 1;
00342     m_numPhi=numPhi-8*cryInOneSector;
00343   }
00344   if(numPhi>=12*cryInOneSector&&numPhi<13*cryInOneSector) //crystal in 12th sector
00345   {
00346     downFlag = 1;
00347     m_numPhi=16*cryInOneSector-1-numPhi;
00348   }
00349   
00350   //translate numTheta and numPhi to sector and cryNb
00351   G4int cryNbOffset = 0;
00352   for(G4int i=0;i<numTheta;i++)
00353     cryNbOffset += cryNumInOneLayer[i]/16;
00354   if(cryInOneSector)
00355     sector = m_numPhi/cryInOneSector;
00356   cryNb = m_numPhi-cryInOneSector*sector+cryNbOffset;
00357   sector += 3;
00358   if(sector>15&&sector<=18)
00359     sector -= 16;
00360     
00361   //sector beside the gap
00362   if(sector==6)
00363     for(G4int i=0;i<8;i++)
00364       pos[i]=fPnt1[cryNb][i];
00365   else
00366     for(G4int i=0;i<8;i++)
00367     {
00368       pos[i]=fPnt[cryNb][i];
00369       pos[i].rotateZ(-67.5*deg+sector*22.5*deg);
00370     }
00371 
00372   //crystal dimension
00373   ModifyForCasing(pos,cryNb);
00374   G4double A = (cryPoint[0]-cryPoint[3]).r();
00375   G4double a = (cryPoint[4]-cryPoint[7]).r();
00376   G4double B = (cryPoint[1]-cryPoint[2]).r();
00377   G4double b = (cryPoint[5]-cryPoint[6]).r();
00378   G4double C = (cryPoint[0]-cryPoint[1]).r();
00379   G4double c = (cryPoint[4]-cryPoint[5]).r();
00380   G4double D = (cryPoint[2]-cryPoint[3]).r();
00381   G4double d = (cryPoint[6]-cryPoint[7]).r();
00382 
00383   //reflect the axis according to the flag
00384   for(G4int i=0;i<8;i++)
00385   {
00386     pos[i].setZ(pos[i].getZ()+WorldZPosition);  //give the absolute z coordinate
00387     if(leftFlag==1)
00388        pos[i].setX(-pos[i].getX());
00389     if(downFlag==1)
00390       pos[i].setY(-pos[i].getY());
00391     if(partId==2)
00392     {
00393       pos[i].setX(-pos[i].getX());
00394       pos[i].setZ(-pos[i].getZ());
00395     }
00396   }
00397   
00398   //compute the position
00399   for(G4int j=4;j<8;j++)
00400     position += pos[j];
00401   position /= 4;
00402 
00403   //compute pentagonal crystal
00404   for(G4int i=0;i<5;i++)
00405   {
00406     if(cryNb==pentaInOneSector[i])
00407     {
00408       pentaFlag = 1;
00409       G4ThreeVector penta[8];
00410       
00411       //sector beside the gap
00412       if(sector==6)
00413         for(G4int j=0;j<8;j++)
00414           penta[j]=fPnt1[30+i][j];
00415       else
00416         for(G4int j=0;j<8;j++)
00417         {
00418           penta[j]=fPnt[30+i][j];
00419           penta[j].rotateZ(-67.5*deg+sector*22.5*deg);
00420         }
00421       
00422       //crystal dimension
00423       ModifyForCasing(penta,30+i);
00424       A1 = (cryPoint[1]-cryPoint[2]).r();
00425       a1 = (cryPoint[5]-cryPoint[6]).r();
00426       B1 = (cryPoint[1]-cryPoint[0]).r();
00427       b1 = (cryPoint[5]-cryPoint[4]).r();
00428       C1 = (cryPoint[0]-cryPoint[3]).r()+A;
00429       c1 = (cryPoint[4]-cryPoint[7]).r()+a;
00430       D1 = D;
00431       d1 = d;
00432       E1 = B;
00433       e1 = b;
00434 
00435       //reflect the axis according to the flag
00436       for(G4int j=0;j<8;j++)
00437       {
00438         penta[j].setZ(penta[j].getZ()+WorldZPosition);  //give the absolute z coordinate
00439         if(leftFlag==1)
00440           penta[j].setX(-penta[j].getX());
00441         if(downFlag==1)
00442           penta[j].setY(-penta[j].getY());
00443         if(partId==2)
00444         {
00445           penta[j].setX(-penta[j].getX());
00446           penta[j].setZ(-penta[j].getZ());
00447         }
00448       }
00449       
00450       //compute the position
00451       for(G4int j=4;j<8;j++)
00452       {
00453         if(j!=0&&j!=4)
00454           position += pos[j];
00455         if(j==0||j==1||j==4||j==5)
00456           position += penta[j];
00457       }
00458       position /= 10;
00459       
00460       flag = leftFlag+downFlag;
00461       if(flag==1)
00462       {
00463         G4double temp1 = B1; B1 = D1; D1 = temp1;
00464         temp1 = A1; A1 = E1; E1 = temp1;
00465         temp1 = b1; b1 = d1; d1 = temp1;
00466         temp1 = a1; a1 = e1; e1 = temp1;
00467       }
00468 
00469       break;
00470     }
00471   }
00472               
00473   flag = leftFlag+downFlag+partId/2;
00474   if(flag==1||flag==3)
00475   {
00476     G4double temp = C;    C = D;    D = temp;
00477     temp = c;    c = d;    d = temp;
00478   }
00479 
00480   /*G4cout<<"##########################################################################"<<G4endl;
00481   G4cout<<"###sector="<<sector<<",cryNb="<<cryNb<<",left flag="<<leftFlag<<",down flag="<<downFlag<<G4endl;
00482   G4cout<<"partId="<<partId<<"\t"<<"theta number="<<numTheta<<"\t"<<"phi number="<<numPhi<<G4endl;
00483   G4cout<<"crystal point:"<<G4endl;
00484   for(G4int i=0;i<8;i++)
00485     G4cout<<pos[i]<<G4endl;
00486   G4cout<<"crystal position:"<<"\t"<<position<<"\t"<<"phi="<<position.phi()/deg<<G4endl;
00487   G4cout<<"crystal dimension:"<<G4endl;
00488   if(pentaFlag==1)
00489     G4cout<<"A="<<A1<<",a="<<a1<<",B="<<B1<<",b="<<b1<<",C="<<C1<<",c="<<c1<<",D="<<D1<<",d="<<d1<<",E="<<E1<<",e="<<e1<<G4endl;
00490   else
00491     G4cout<<"A="<<A<<",a="<<a<<",B="<<B<<",b="<<b<<",C="<<C<<",c="<<c<<",D="<<D<<",d="<<d<<G4endl;
00492   G4cout<<"##########################################################################"<<G4endl;
00493 */
00494   return position;
00495 }

void ExtBesEmcEndGeometry::ComputeParameters (  ) 

Definition at line 65 of file ExtBesEmcEndGeometry.cxx.

References Exchange(), fPnt, fPnt1, genRecEmupikp::i, ganga-rec::j, param, penta, ReadParameters(), subSeperate::temp, v, and WorldZPosition.

00066 {
00067 
00069   // emc endcap crystal                                                   //
00071   //                              1                                       //
00072   //                  0     __  --                                        //
00073   //                    --         \                                      //
00074   //                  | \           \                                     //  
00075   //                  |   \      __ - 2                                   //
00076   //                  |     \ --     |                                    //
00077   //                  |     | 3      |                                    //
00078   //                  |     |        |                                    //
00079   //                  |     |        |                                    //
00080   //                  |     |        |                                    //
00081   //                  |     |    5   |                                    //
00082   //                4  \    |        |                                    //
00083   //                     \  |    __ - 6                                   //
00084   //                       \| --                                          //
00085   //                         7                                            //
00087   
00088   ReadParameters();
00089 
00090   G4int pentaNb=0;
00091   for(G4int i=0;i<30;i++)
00092   {
00093     for (G4int j=0;j<8;j++)
00094     {
00095       //use 24 parameters to construct 8 point of one crystal 
00096       G4ThreeVector* pPnt = new G4ThreeVector(param[i][j],param[i][j+8],param[i][j+16]-WorldZPosition);
00097       fPnt[i][j] = *pPnt;
00098     }
00099 
00100     if(i==5||i==6||i==14||i==15||i==16)
00101     {
00102       for(G4int j=0;j<8;j++)
00103         fPnt[30+pentaNb][j] = fPnt[i][j];
00104       
00105       //compute the 5th point of the pentagonal crystal
00106       G4double y0,y1,y4,y5;
00107       G4ThreeVector v0,v1,v4,v5;
00108       y0 = penta[pentaNb][0];
00109       y1 = penta[pentaNb][1];
00110       y4 = penta[pentaNb][2];
00111       y5 = penta[pentaNb][3];
00112       v0 = (y0-fPnt[i][3].getY())*(fPnt[i][0]-fPnt[i][3])/(fPnt[i][0].getY()-fPnt[i][3].getY())
00113         +fPnt[i][3];
00114       v1 = (y1-fPnt[i][2].getY())*(fPnt[i][1]-fPnt[i][2])/(fPnt[i][1].getY()-fPnt[i][2].getY())
00115         +fPnt[i][2];
00116       v4 = (y4-fPnt[i][7].getY())*(fPnt[i][4]-fPnt[i][7])/(fPnt[i][4].getY()-fPnt[i][7].getY())
00117         +fPnt[i][7];
00118       v5 = (y5-fPnt[i][6].getY())*(fPnt[i][5]-fPnt[i][6])/(fPnt[i][5].getY()-fPnt[i][6].getY())
00119         +fPnt[i][6];
00120 
00121       G4double x1,x5;
00122       x1 = penta[pentaNb][4];
00123       x5 = penta[pentaNb][5];
00124       v1 = (x1-v0.getX())*(v1-v0)/(v1.getX()-v0.getX())+v0;   //v1', the fifth point
00125       v5 = (x5-v4.getX())*(v5-v4)/(v5.getX()-v4.getX())+v4;   //v5'
00126       
00127       fPnt[i][0] = v0;
00128       fPnt[i][1] = v1;
00129       fPnt[i][4] = v4;
00130       fPnt[i][5] = v5;
00131       
00132       fPnt[30+pentaNb][2] = v1;
00133       fPnt[30+pentaNb][3] = v0;
00134       fPnt[30+pentaNb][6] = v5;
00135       fPnt[30+pentaNb][7] = v4;
00136 
00137       pentaNb++;
00138     }
00139   }
00140 
00141   //reflect point in one sector according to new design
00142   G4ThreeVector temp[35][8];
00143   for(G4int i=0;i<35;i++)
00144   {
00145     for (G4int j=0;j<8;j++)
00146     {
00147       temp[i][j]=fPnt[i][j];
00148       fPnt[i][j].rotateZ(157.5*deg);
00149       fPnt[i][j].setX(-fPnt[i][j].getX());
00150     }
00151 
00152     // point 0<-->3, 1<-->2, 4<-->7, 5<-->6
00153     for (G4int j=0;j<8;j++)
00154     {
00155       if(j<2)
00156       {
00157         G4ThreeVector v=fPnt[i][j];
00158         fPnt[i][j]=fPnt[i][3-j];
00159         fPnt[i][3-j]=v;
00160       }
00161       else if(j>=4&&j<6)
00162       {
00163         G4ThreeVector v=fPnt[i][j];
00164         fPnt[i][j]=fPnt[i][11-j];
00165         fPnt[i][11-j]=v;
00166       }
00167     }
00168   }
00169 
00170   //exchange sequence in the same layer
00171   Exchange(0,3);  Exchange(1,2);  Exchange(4,7);  Exchange(5,31);  Exchange(6,30);  
00172   Exchange(8,12);  Exchange(9,11);  Exchange(13,17);  Exchange(14,34);  Exchange(15,33);  Exchange(16,32);  
00173   Exchange(18,23);  Exchange(19,22);  Exchange(20,21);  Exchange(24,29);  Exchange(25,28); Exchange(26,27);
00174   
00175   /*for(G4int i=0;i<35;i++)
00176   {
00177     G4cout<<"crystal number: "<<i<<G4endl;
00178     for(G4int j=0;j<8;j++)
00179       G4cout<<fPnt[i][j]<<G4endl;
00180   }*/
00181     
00182                 
00183   //compute the 6 crystal beside the 20mm gap
00184   for(G4int i=0;i<35;i++)
00185   {
00186     for (G4int j=0;j<8;j++)
00187     {
00188       G4ThreeVector pPnt1 = temp[i][j];
00189       fPnt1[i][j] = pPnt1.rotateZ(67.5*deg);
00190     }
00191     if((i==3)||(i==7)||(i==12)||(i==17)||(i==23)||(i==29))
00192     {
00193       fPnt1[i][0].setX(10);
00194       fPnt1[i][1].setX(10);
00195       fPnt1[i][4].setX(10);
00196       fPnt1[i][5].setX(10);
00197 
00198       G4double y0 = fPnt1[i][0].getY()+10*(fPnt1[i][3].getY()-fPnt1[i][0].getY())/fPnt1[i][3].getX();
00199       G4double y1 = fPnt1[i][1].getY()+10*(fPnt1[i][2].getY()-fPnt1[i][1].getY())/fPnt1[i][2].getX();
00200       G4double y4 = fPnt1[i][4].getY()+10*(fPnt1[i][7].getY()-fPnt1[i][4].getY())/fPnt1[i][7].getX();
00201       G4double y5 = fPnt1[i][5].getY()+10*(fPnt1[i][6].getY()-fPnt1[i][5].getY())/fPnt1[i][6].getX();
00202 
00203       G4double z0 = fPnt1[i][0].getZ()+10*(fPnt1[i][3].getZ()-fPnt1[i][0].getZ())/fPnt1[i][3].getX();
00204       G4double z1 = fPnt1[i][1].getZ()+10*(fPnt1[i][2].getZ()-fPnt1[i][1].getZ())/fPnt1[i][2].getX();
00205       G4double z4 = fPnt1[i][4].getZ()+10*(fPnt1[i][7].getZ()-fPnt1[i][4].getZ())/fPnt1[i][7].getX();
00206       G4double z5 = fPnt1[i][5].getZ()+10*(fPnt1[i][6].getZ()-fPnt1[i][5].getZ())/fPnt1[i][6].getX();
00207 
00208       fPnt1[i][0].setY(y0);
00209       fPnt1[i][1].setY(y1);
00210       fPnt1[i][4].setY(y4);
00211       fPnt1[i][5].setY(y5);
00212 
00213       fPnt1[i][0].setZ(z0);
00214       fPnt1[i][1].setZ(z1);
00215       fPnt1[i][4].setZ(z4);
00216       fPnt1[i][5].setZ(z5);
00217     }
00218   }
00219 }

void ExtBesEmcEndGeometry::Exchange ( G4int  cry1,
G4int  cry2 
)

Definition at line 221 of file ExtBesEmcEndGeometry.cxx.

References fPnt, genRecEmupikp::i, and v.

Referenced by ComputeParameters().

00222 {
00223   G4ThreeVector v;
00224   for(G4int i=0;i<8;i++)
00225   {
00226     v = fPnt[cry1][i];
00227     fPnt[cry1][i] = fPnt[cry2][i];
00228     fPnt[cry2][i] = v;
00229   }
00230 }

G4int ExtBesEmcEndGeometry::GetCryNumInOneLayer ( G4int  num  )  [inline]

Definition at line 24 of file ExtBesEmcEndGeometry.h.

References cryNumInOneLayer.

00024 { return cryNumInOneLayer[num]; }

void ExtBesEmcEndGeometry::ModifyForCasing ( G4ThreeVector  pos[8],
G4int  CryNb 
)

Definition at line 258 of file ExtBesEmcEndGeometry.cxx.

References cryPoint, CrystalLength, genRecEmupikp::i, sin(), subSeperate::temp, and totalThickness.

Referenced by ExtBesEmcConstruction::ConstructEndGeometry().

00259 {
00260   G4ThreeVector center1=0;        //the center of large surface
00261   G4ThreeVector center2=0;        //the center of small surface
00262   
00263   if(CryNb==5||CryNb==6||CryNb==14||CryNb==15||CryNb==16)
00264   {
00265     center1 = (pos[0]+pos[1])/2;
00266     center2 = (pos[4]+pos[5])/2;
00267   }
00268   else if(CryNb>=30&&CryNb<35)
00269   {
00270     center1 = (pos[2]+pos[3])/2;
00271     center2 = (pos[6]+pos[7])/2;
00272   }
00273   else
00274   {
00275     center1 = (pos[0]+pos[1]+pos[2]+pos[3])/4;
00276     center2 = (pos[4]+pos[5]+pos[6]+pos[7])/4;
00277   }
00278   
00279   G4double r1=(pos[1]-center1).r();
00280   G4double r2=(pos[2]-center1).r();
00281   G4double r12=(pos[1]-pos[2]).r();
00282   G4double theta=acos((r2*r2+r12*r12-r1*r1)/(2*r2*r12));
00283   G4double h=r2*sin(theta);       //distance from the center to the vertical side
00284   G4double t1=totalThickness/h;
00285 
00286   r1=(pos[5]-center2).r();
00287   r2=(pos[6]-center2).r();
00288   r12=(pos[5]-pos[6]).r();
00289   theta=acos((r2*r2+r12*r12-r1*r1)/(2*r2*r12));
00290   h=r2*sin(theta);
00291   G4double t2=totalThickness/h;
00292   
00293   for(G4int i=0;i<8;i++)
00294   {
00295     if(i<4)
00296     {
00297       cryPoint[i] = (1-t1)*pos[i]+t1*center1;
00298     }
00299     else
00300     {
00301       G4ThreeVector temp = (1-t2)*pos[i]+t2*center2;
00302       cryPoint[i] = (1-totalThickness/CrystalLength)*temp+(totalThickness/CrystalLength)*pos[i-4];
00303     }
00304   //G4cout<<"casing="<<pos[i]<<"\t"<<"crystal="<<cryPoint[i]<<G4endl;
00305   }
00306 }

void ExtBesEmcEndGeometry::ReadParameters (  ) 

Definition at line 22 of file ExtBesEmcEndGeometry.cxx.

References cryNumInOneLayer, CrystalLength, fAlThickness, fMylarThickness, fTyvekThickness, ExtBesEmcParameter::GetAlThickness(), ExtBesEmcParameter::GetCryInOneLayer(), ExtBesEmcParameter::GetCrystalLength(), ExtBesEmcParameter::GetMylarThickness(), ExtBesEmcParameter::GetPentaInOneSector(), ExtBesEmcParameter::GetTyvekThickness(), ExtBesEmcParameter::GetWorldDz(), ExtBesEmcParameter::GetWorldRmax1(), ExtBesEmcParameter::GetWorldRmax2(), ExtBesEmcParameter::GetWorldRmin1(), ExtBesEmcParameter::GetWorldRmin2(), ExtBesEmcParameter::GetWorldZPosition(), genRecEmupikp::i, ganga-rec::j, param, penta, pentaInOneSector, ExtBesEmcParameter::ReadData(), totalThickness, WorldDz, WorldRmax1, WorldRmax2, WorldRmin1, WorldRmin2, and WorldZPosition.

Referenced by ComputeParameters().

00023 {
00024   ExtBesEmcParameter emcPara;
00025   emcPara.ReadData();
00026   
00027   WorldRmin1 = emcPara.GetWorldRmin1();
00028   WorldRmax1 = emcPara.GetWorldRmax1();
00029   WorldRmin2 = emcPara.GetWorldRmin2();
00030   WorldRmax2 = emcPara.GetWorldRmax2();
00031   WorldDz = emcPara.GetWorldDz();
00032   WorldZPosition = emcPara.GetWorldZPosition();
00033   CrystalLength = emcPara.GetCrystalLength();
00034 
00035   for(G4int i=0;i<6;i++)
00036     cryNumInOneLayer[i] = emcPara.GetCryInOneLayer(i);
00037   for(G4int i=0;i<5;i++)
00038     pentaInOneSector[i] = emcPara.GetPentaInOneSector(i);
00039 
00040   fTyvekThickness   = emcPara.GetTyvekThickness();
00041   fAlThickness      = emcPara.GetAlThickness();
00042   fMylarThickness   = emcPara.GetMylarThickness();
00043   totalThickness=fTyvekThickness+fAlThickness+fMylarThickness;
00044       
00045 //  G4String ParaPath = ReadBoostRoot::GetBoostRoot();
00046   G4String ParaPath = getenv("SIMUTILROOT");
00047   if(!ParaPath){
00048     G4Exception("BOOST environment not set!");
00049   }
00050   ParaPath += "/dat/EmcEndGeometry.dat";
00051 
00052   ifstream fin;
00053   fin.open(ParaPath);
00054   assert(fin);
00055   for(G4int i=0;i<30;i++)
00056     for (G4int j=0;j<24;j++)
00057       fin>>param[i][j];
00058   for(G4int i=0;i<5;i++)
00059     for (G4int j=0;j<6;j++)
00060       fin>>penta[i][j];
00061   fin.close();
00062 }

void ExtBesEmcEndGeometry::ReflectX (  ) 

Definition at line 234 of file ExtBesEmcEndGeometry.cxx.

References fPnt1, genRecEmupikp::i, and ganga-rec::j.

00235 {
00236   for(G4int i=0;i<35;i++)
00237   {
00238     for(G4int j=0;j<8;j++)
00239     {
00240       fPnt1[i][j].setX(-fPnt1[i][j].getX());
00241     }
00242 
00243     //change the sequence of eight points according to the requirment of IrregBox
00244     // point 0<-->1, 2<-->3, 4<-->5, 6<-->7
00245     for(G4int j=0;j<8;j++)
00246     {
00247       if((j%2)==0)
00248       {
00249         G4ThreeVector v2=fPnt1[i][j];
00250         fPnt1[i][j]=fPnt1[i][j+1];
00251         fPnt1[i][j+1]=v2;
00252       }
00253     }
00254   }
00255 }  


Friends And Related Function Documentation

friend class ExtBesEmcConstruction [friend]

Definition at line 13 of file ExtBesEmcEndGeometry.h.


Member Data Documentation

G4int ExtBesEmcEndGeometry::cryNumInOneLayer[6] [private]

Definition at line 43 of file ExtBesEmcEndGeometry.h.

Referenced by GetCryNumInOneLayer(), and ReadParameters().

G4ThreeVector ExtBesEmcEndGeometry::cryPoint[8] [private]

Definition at line 47 of file ExtBesEmcEndGeometry.h.

Referenced by ModifyForCasing().

G4double ExtBesEmcEndGeometry::CrystalLength [private]

Definition at line 38 of file ExtBesEmcEndGeometry.h.

Referenced by ModifyForCasing(), and ReadParameters().

G4double ExtBesEmcEndGeometry::fAlThickness [private]

Definition at line 35 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::fMylarThickness [private]

Definition at line 36 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4ThreeVector ExtBesEmcEndGeometry::fPnt[35][8] [private]

Definition at line 45 of file ExtBesEmcEndGeometry.h.

Referenced by ComputeParameters(), and Exchange().

G4ThreeVector ExtBesEmcEndGeometry::fPnt1[35][8] [private]

Definition at line 46 of file ExtBesEmcEndGeometry.h.

Referenced by ComputeParameters(), and ReflectX().

G4double ExtBesEmcEndGeometry::fTyvekThickness [private]

Definition at line 34 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::param[35][24] [private]

Definition at line 41 of file ExtBesEmcEndGeometry.h.

Referenced by ComputeParameters(), and ReadParameters().

G4double ExtBesEmcEndGeometry::penta[5][6] [private]

Definition at line 42 of file ExtBesEmcEndGeometry.h.

Referenced by ComputeParameters(), and ReadParameters().

G4int ExtBesEmcEndGeometry::pentaInOneSector[5] [private]

Definition at line 44 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::totalThickness [private]

Definition at line 37 of file ExtBesEmcEndGeometry.h.

Referenced by ModifyForCasing(), and ReadParameters().

G4double ExtBesEmcEndGeometry::WorldDz [private]

Definition at line 31 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::WorldRmax1 [private]

Definition at line 28 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::WorldRmax2 [private]

Definition at line 30 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::WorldRmin1 [private]

Definition at line 27 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::WorldRmin2 [private]

Definition at line 29 of file ExtBesEmcEndGeometry.h.

Referenced by ReadParameters().

G4double ExtBesEmcEndGeometry::WorldZPosition [private]

Definition at line 32 of file ExtBesEmcEndGeometry.h.

Referenced by ComputeParameters(), and ReadParameters().


Generated on Tue Nov 29 23:19:33 2016 for BOSS_7.0.2 by  doxygen 1.4.7