#include <ExtBesEmcEndGeometry.h>
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 |
Definition at line 8 of file ExtBesEmcEndGeometry.h.
ExtBesEmcEndGeometry::ExtBesEmcEndGeometry | ( | ) |
ExtBesEmcEndGeometry::~ExtBesEmcEndGeometry | ( | ) |
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&§or<=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 }
friend class ExtBesEmcConstruction [friend] |
Definition at line 13 of file ExtBesEmcEndGeometry.h.
G4int ExtBesEmcEndGeometry::cryNumInOneLayer[6] [private] |
Definition at line 43 of file ExtBesEmcEndGeometry.h.
Referenced by GetCryNumInOneLayer(), and ReadParameters().
G4ThreeVector ExtBesEmcEndGeometry::cryPoint[8] [private] |
G4double ExtBesEmcEndGeometry::CrystalLength [private] |
Definition at line 38 of file ExtBesEmcEndGeometry.h.
Referenced by ModifyForCasing(), and ReadParameters().
G4double ExtBesEmcEndGeometry::fAlThickness [private] |
G4double ExtBesEmcEndGeometry::fMylarThickness [private] |
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] |
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] |
G4double ExtBesEmcEndGeometry::totalThickness [private] |
Definition at line 37 of file ExtBesEmcEndGeometry.h.
Referenced by ModifyForCasing(), and ReadParameters().
G4double ExtBesEmcEndGeometry::WorldDz [private] |
G4double ExtBesEmcEndGeometry::WorldRmax1 [private] |
G4double ExtBesEmcEndGeometry::WorldRmax2 [private] |
G4double ExtBesEmcEndGeometry::WorldRmin1 [private] |
G4double ExtBesEmcEndGeometry::WorldRmin2 [private] |
G4double ExtBesEmcEndGeometry::WorldZPosition [private] |
Definition at line 32 of file ExtBesEmcEndGeometry.h.
Referenced by ComputeParameters(), and ReadParameters().