|
Finally, Ring 3 is done. The maximum descripancy is less than 1mm. However, it's hard to know where they from. There are too many approximation in structure design. It's already less than the tolerance of production. Then, omit them!
Get into Ring2
Ring2 is done. It seems a little easier.
************* Ring1 *************
Check it out!
Last ring! Ring0
Sector1 is finished. !!! 00076 {
00077 int i,j;
00078 EmcRecGeoPlane pl1,pl2,pl3;
00079 HepPoint3D po0,po1,po2,po3,po4,po5,po6,po7,po8,po9;
00080
00081 double tantheta1,costheta1,sintheta1;
00082
00083 HepPoint3D O,n1;
00084 O.setX(0); O.setY(0); O.setZ(0);
00085 n1.setX(0); n1.setY(0); n1.setZ(fzshift);
00086
00087
00088 HepPoint3D t,n2,n;
00089 HepPoint3D w,m;
00090 double dphi1=fphi5[1]-fphi5[0];
00091 double dphi2=fphi5[2]-fphi5[1];
00092 double dphi;
00093 double l,ll,lp;
00094
00095 t.setX(fr[0]);
00096 t.setY(0);
00097 t.setZ(fzshift+fz);
00098
00099 tantheta1=fr[0]/fz;
00100 costheta1=1/sqrt(1+tantheta1*tantheta1);
00101 sintheta1=costheta1*tantheta1;
00102
00103 for(i=0;i<6;++i){
00104 fRing5[i].Type(EmcRecCrystal::SixPlane());
00105 }
00106
00107
00108 for(i=0;i<2;++i) {
00109 if(i==0) {
00110 dphi=dphi1;
00111 } else {
00112 dphi=dphi2;
00113 }
00114
00115 po3=t;
00116 fRing5[i].Set(3,po3);
00117
00118 po0=t;
00119 fRing5[i].Set(0,po0.rotateZ(dphi));
00120
00121 l=fRing5[i].Get(3).distance(fRing5[i].Get(0))/2;
00122 ll=sqrt(fz*fz+fr[0]*fr[0]);
00123 lp=ll*flength/sqrt(ll*ll-l*l);
00124 po7=t;
00125 po7.setX(po7.x()+lp*sintheta1);
00126 po7.setZ(po7.z()+lp*costheta1);
00127 fRing5[i].Set(7,po7);
00128 po4=po7;
00129 fRing5[i].Set(4,po4.rotateZ(dphi));
00130
00131 pl1.Build(0,1,0,0);
00132 n2=(fRing5[i].Get(0)+fRing5[i].Get(3))/2;
00133 n=n2-n1;
00134 pl2.Build(n,fRing5[i].Get(3));
00135 m.setX(fr[1]);
00136 m.setY(0);
00137 m.setZ(fzshift+fz);
00138 w=m;
00139 w.rotateZ(dphi);
00140 pl3.Build(n1,m,w);
00141 FindInt(pl1,pl2,pl3,po2);
00142
00143 fRing5[i].Set(2,po2);
00144 po1=po2;
00145 fRing5[i].Set(1,po1.rotateZ(dphi));
00146
00147 pl2.Build(n,fRing5[i].Get(7));
00148 FindInt(pl1,pl2,pl3,po6);
00149 fRing5[i].Set(6,po6);
00150 po5=po6;
00151 fRing5[i].Set(5,po5.rotateZ(dphi));
00152 }
00153
00154
00155 for(i=0;i<8;++i) {
00156 fRing5[1].Set(i,fRing5[1].Get(i).rotateZ(dphi1));
00157 }
00158
00159
00160 for(i=2;i<6;++i) {
00161 for(j=0;j<8;++j) {
00162 fRing5[i].Set(j,fRing5[1].Get(j).rotateZ(fphi5[i]-fphi5[1]));
00163 }
00164 }
00165
00166
00167
00168
00169
00170
00171
00172
00173 EmcRecGeoPlane pl4,pl5,pl6;
00174 double dphip;
00175 HepPoint3D ttt;
00176
00177 t.setX(fr[1]);
00178 t.setY(0);
00179 t.setZ(fzshift+fz);
00180
00181 dphi1=fphi5[1]-fphi5[0];
00182 dphi2=fphi5[2]-fphi5[1];
00183
00184 tantheta1=fr[1]/fz;
00185 costheta1=1/sqrt(1+tantheta1*tantheta1);
00186 sintheta1=costheta1*tantheta1;
00187
00188 for(i=0;i<6;++i){
00189 fRing4[i].Type(EmcRecCrystal::SixPlane());
00190 }
00191
00192
00193
00194 EmcRecCrystal up[2],down[2];
00195 for(i=0;i<2;++i) {
00196 if(i==0) {
00197 dphi=dphi1;
00198 } else {
00199 dphi=dphi2;
00200 }
00201
00202 po3=t;
00203 down[i].Set(3,po3);
00204 po0=t;
00205 down[i].Set(0,po0.rotateZ(dphi));
00206
00207 po3=t;
00208 up[i].Set(3,po3);
00209 po0=t;
00210 up[i].Set(0,po0.rotateZ(dphi2));
00211
00212 l=down[i].Get(3).distance(down[i].Get(0))/2;
00213 ll=sqrt(fz*fz+fr[1]*fr[1]);
00214 lp=ll*flength/sqrt(ll*ll-l*l);
00215 po7=t;
00216 po7.setX(po7.x()+lp*sintheta1);
00217 po7.setZ(po7.z()+lp*costheta1);
00218 down[i].Set(7,po7);
00219 po4=po7;
00220 down[i].Set(4,po4.rotateZ(dphi));
00221
00222 l=up[i].Get(3).distance(up[i].Get(0))/2;
00223 ll=sqrt(fz*fz+fr[1]*fr[1]);
00224 lp=ll*flength/sqrt(ll*ll-l*l);
00225 po7=t;
00226 po7.setX(po7.x()+lp*sintheta1);
00227 po7.setZ(po7.z()+lp*costheta1);
00228 up[i].Set(7,po7);
00229 po4=po7;
00230 up[i].Set(4,po4.rotateZ(dphi2));
00231
00232 up[i].Set(0,up[i].Get(0).rotateZ(dphi));
00233 up[i].Set(3,up[i].Get(3).rotateZ(dphi));
00234 up[i].Set(4,up[i].Get(4).rotateZ(dphi));
00235 up[i].Set(7,up[i].Get(7).rotateZ(dphi));
00236
00237
00238
00239 pl1.Build(0,1,0,0);
00240 n2=(down[i].Get(0)+down[i].Get(3))/2;
00241 n=n2-n1;
00242 pl2.Build(n,down[i].Get(3));
00243 m.setX(fr[2]);
00244 m.setY(0);
00245 m.setZ(fzshift+fz);
00246 w=m;
00247 if(i==0) {
00248 dphip=fphi5[2]-fphi5[0];
00249 } else {
00250 dphip=fphi5[6]-fphi5[4];
00251 }
00252 w.rotateZ(dphip);
00253 pl3.Build(n1,m,w);
00254 FindInt(pl1,pl2,pl3,po2);
00255 down[i].Set(2,po2);
00256
00257 pl4.Build(O,n1,down[i].Get(0));
00258 FindInt(pl4,pl2,pl3,po1);
00259 down[i].Set(1,po1);
00260
00261
00262 pl2.Build(n,down[i].Get(7));
00263 FindInt(pl1,pl2,pl3,po6);
00264 down[i].Set(6,po6);
00265
00266 FindInt(pl4,pl2,pl3,po5);
00267 down[i].Set(5,po5);
00268
00269
00270 n2=(up[i].Get(0)+up[i].Get(3))/2;
00271 n=n2-n1;
00272 pl1.Build(O,n1,up[i].Get(3));
00273 pl2.Build(n,up[i].Get(3));
00274 FindInt(pl1,pl2,pl3,po2);
00275 up[i].Set(2,po2);
00276
00277 pl4.Build(O,n1,up[i].Get(0));
00278 FindInt(pl4,pl2,pl3,po1);
00279 up[i].Set(1,po1);
00280
00281 pl2.Build(n,up[i].Get(7));
00282 FindInt(pl1,pl2,pl3,po6);
00283 up[i].Set(6,po6);
00284
00285 FindInt(pl4,pl2,pl3,po5);
00286 up[i].Set(5,po5);
00287
00288 }
00289
00290 for(i=0;i<8;++i) {
00291 fRing4[0].Set(i,down[0].Get(i));
00292 fRing4[1].Set(i,up[0].Get(i));
00293 fRing4[4].Set(i,down[1].Get(i).rotateZ(fphi5[4]));
00294 fRing4[5].Set(i,up[1].Get(i).rotateZ(fphi5[4]));
00295 }
00296
00297
00298 dphi=fphi5[3]-fphi5[2];
00299
00300 po3=t;
00301 fRing4[2].Set(3,po3);
00302
00303 po0=t;
00304 fRing4[2].Set(0,po0.rotateZ(dphi));
00305
00306 l=fRing4[2].Get(3).distance(fRing4[2].Get(0))/2;
00307 ll=sqrt(fz*fz+fr[1]*fr[1]);
00308 lp=ll*flength/sqrt(ll*ll-l*l);
00309 po7=t;
00310 po7.setX(po7.x()+lp*sintheta1);
00311 po7.setZ(po7.z()+lp*costheta1);
00312 fRing4[2].Set(7,po7);
00313 po4=po7;
00314 fRing4[2].Set(4,po4.rotateZ(dphi));
00315
00316 pl1.Build(0,1,0,0);
00317 n2=(fRing4[2].Get(0)+fRing4[2].Get(3))/2;
00318 n=n2-n1;
00319 pl2.Build(n,fRing4[2].Get(3));
00320 m.setX(fr[2]);
00321 m.setY(0);
00322 m.setZ(fzshift+fz);
00323 w=m;
00324 w.rotateZ(dphi);
00325 pl3.Build(n1,m,w);
00326 FindInt(pl1,pl2,pl3,po2);
00327 fRing4[2].Set(2,po2);
00328 po1=po2;
00329 fRing4[2].Set(1,po1.rotateZ(dphi));
00330
00331 pl2.Build(n,fRing4[2].Get(7));
00332 FindInt(pl1,pl2,pl3,po6);
00333 fRing4[2].Set(6,po6);
00334 po5=po6;
00335 fRing4[2].Set(5,po5.rotateZ(dphi));
00336
00337
00338 for(i=0;i<8;++i) {
00339 fRing4[2].Set(i,fRing4[2].Get(i).rotateZ(fphi5[2]));
00340 }
00341 for(i=0;i<8;++i) {
00342 fRing4[3].Set(i,fRing4[2].Get(i).rotateZ(fphi5[3]-fphi5[2]));
00343 }
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355 HepPoint3D base3[5];
00356 base3[0].setX(fr[2]); base3[0].setY(0); base3[0].setZ(fz+fzshift);
00357 for(i=1;i<5;++i) {
00358 base3[i]=base3[0];
00359 }
00360 base3[1].rotateZ(fphi5[2]);
00361 base3[2].rotateZ(fphi5[3]);
00362 base3[3].rotateZ(fphi5[4]);
00363 base3[4].rotateZ(fphi5[6]);
00364
00365
00366
00367
00368 HepPoint3D base2[6];
00369 base2[0].setX(fr[3]); base2[0].setY(0); base2[0].setZ(fz+fzshift);
00370 for(i=1;i<6;++i) {
00371 base2[i]=base2[0];
00372 base2[i].rotateZ(fphi3[i]);
00373 }
00374
00375
00376
00377
00378
00379 EmcRecGeoPlane pphi[6];
00380 for(i=0;i<6;++i) {
00381 pphi[i].Build(O,n1,base2[i]);
00382 }
00383 EmcRecGeoPlane ptheta[4];
00384 for(i=0;i<4;++i) {
00385 ptheta[i].Build(n1,base3[i],base3[i+1]);
00386 }
00387 EmcRecGeoPlane pthetap[5];
00388 for(i=0;i<5;++i) {
00389 pthetap[i].Build(n1,base2[i],base2[i+1]);
00390 }
00391
00392
00393
00394
00395 HepPoint3D nn[5];
00396 nn[0]=(base3[0]+base3[1])/2-n1;
00397 nn[1]=base3[1]-n1;
00398 nn[2]=base3[2]-n1;
00399 nn[3]=base3[3]-n1;
00400 nn[4]=(base3[3]+base3[4])/2-n1;
00401
00402 EmcRecGeoPlane psection[5];
00403 for(i=0;i<5;++i) {
00404 psection[i].Build(nn[i],base3[i]);
00405 }
00406
00407 EmcRecGeoPlane psection2[5];
00408 HepPoint3D bp[5];
00409 for(i=0;i<5;++i) {
00410 bp[i]=base3[i];
00411 bp[i].setX(bp[i].x()+flength*nn[i].x()/nn[i].mag());
00412 bp[i].setY(bp[i].y()+flength*nn[i].y()/nn[i].mag());
00413 bp[i].setZ(bp[i].z()+flength*nn[i].z()/nn[i].mag());
00414 psection2[i].Build(nn[i],bp[i]);
00415 }
00416
00417 EmcRecGeoPlane pthetatmp;
00418 for(i=0;i<5;++i) {
00419 if(i==0||i==4) {
00420 fRing3[i].Type(EmcRecCrystal::SixPlane());
00421 if(i==0) {
00422 pthetatmp=ptheta[0];
00423 }
00424 if(i==4) {
00425 pthetatmp=ptheta[3];
00426 }
00427 FindInt(pphi[i],pthetatmp,psection[i],po3);
00428 FindInt(pphi[i],pthetap[i],psection[i],po2);
00429 FindInt(pphi[i+1],pthetatmp,psection[i],po0);
00430 FindInt(pphi[i+1],pthetap[i],psection[i],po1);
00431 fRing3[i].Set(0,po0);
00432 fRing3[i].Set(1,po1);
00433 fRing3[i].Set(2,po2);
00434 fRing3[i].Set(3,po3);
00435 FindInt(pphi[i],pthetatmp,psection2[i],po7);
00436 FindInt(pphi[i],pthetap[i],psection2[i],po6);
00437 FindInt(pphi[i+1],pthetatmp,psection2[i],po4);
00438 FindInt(pphi[i+1],pthetap[i],psection2[i],po5);
00439 fRing3[i].Set(4,po4);
00440 fRing3[i].Set(5,po5);
00441 fRing3[i].Set(6,po6);
00442 fRing3[i].Set(7,po7);
00443 } else {
00444 fRing3[i].Type(EmcRecCrystal::SevenPlane());
00445 po0=base3[i];
00446 FindInt(pphi[i],ptheta[i-1],psection[i],po4);
00447 FindInt(pphi[i],pthetap[i],psection[i],po3);
00448 FindInt(pphi[i+1],ptheta[i],psection[i],po1);
00449 FindInt(pphi[i+1],pthetap[i],psection[i],po2);
00450 fRing3[i].Set(0,po0);
00451 fRing3[i].Set(1,po1);
00452 fRing3[i].Set(2,po2);
00453 fRing3[i].Set(3,po3);
00454 fRing3[i].Set(4,po4);
00455 po5=bp[i];
00456 FindInt(pphi[i],ptheta[i-1],psection2[i],po9);
00457 FindInt(pphi[i],pthetap[i],psection2[i],po8);
00458 FindInt(pphi[i+1],ptheta[i],psection2[i],po6);
00459 FindInt(pphi[i+1],pthetap[i],psection2[i],po7);
00460 fRing3[i].Set(5,po5);
00461 fRing3[i].Set(6,po6);
00462 fRing3[i].Set(7,po7);
00463 fRing3[i].Set(8,po8);
00464 fRing3[i].Set(9,po9);
00465 }
00466 }
00473
00474
00475
00476
00477
00479 HepPoint3D base1[4];
00480 base1[0].setX(fr[4]); base1[0].setY(0); base1[0].setZ(fz+fzshift);
00481 for(i=1;i<4;++i) {
00482 base1[i]=base1[0];
00483 }
00484 base1[1].rotateZ(fphi3[2]);
00485 base1[2].rotateZ(fphi3[3]);
00486 base1[3].rotateZ(fphi3[5]);
00487 EmcRecGeoPlane ptheta1[3];
00488 for(i=0;i<3;++i) {
00489 ptheta1[i].Build(n1,base1[i],base1[i+1]);
00490 }
00491
00492 HepPoint3D nn2[5];
00493 for(i=0;i<5;++i) {
00494 nn2[i]=(base2[i]+base2[i+1])/2-n1;
00495 }
00496 EmcRecGeoPlane psec2[5];
00497 for(i=0;i<5;++i) {
00498 psec2[i].Build(nn2[i],base2[i]);
00499 }
00500
00501 EmcRecGeoPlane psec2p[5];
00502 HepPoint3D bpp[5];
00503 for(i=0;i<5;++i) {
00504 bpp[i]=base2[i];
00505 bpp[i].setX(bpp[i].x()+flength*nn2[i].x()/nn2[i].mag());
00506 bpp[i].setY(bpp[i].y()+flength*nn2[i].y()/nn2[i].mag());
00507 bpp[i].setZ(bpp[i].z()+flength*nn2[i].z()/nn2[i].mag());
00508 psec2p[i].Build(nn2[i],bpp[i]);
00509 }
00510
00511 EmcRecGeoPlane ptheta1tmp;
00512 for(i=0;i<5;++i) {
00513 fRing2[i].Type(EmcRecCrystal::SixPlane());
00514 if(i<2) {
00515 ptheta1tmp=ptheta1[0];
00516 }
00517 if(i==2) {
00518 ptheta1tmp=ptheta1[1];
00519 }
00520 if(i>2) {
00521 ptheta1tmp=ptheta1[2];
00522 }
00523 po3=base2[i];
00524 FindInt(pphi[i],ptheta1tmp,psec2[i],po2);
00525 po0=base2[i+1];
00526 FindInt(pphi[i+1],ptheta1tmp,psec2[i],po1);
00527 FindInt(pphi[i],pthetap[i],psec2p[i],po7);
00528 FindInt(pphi[i],ptheta1tmp,psec2p[i],po6);
00529 FindInt(pphi[i+1],pthetap[i],psec2p[i],po4);
00530 FindInt(pphi[i+1],ptheta1tmp,psec2p[i],po5);
00531 fRing2[i].Set(0,po0);
00532 fRing2[i].Set(1,po1);
00533 fRing2[i].Set(2,po2);
00534 fRing2[i].Set(3,po3);
00535 fRing2[i].Set(4,po4);
00536 fRing2[i].Set(5,po5);
00537 fRing2[i].Set(6,po6);
00538 fRing2[i].Set(7,po7);
00539 }
00540
00542
00543
00544
00545
00546
00548 HepPoint3D base0[5];
00549 base0[0].setX(fr[5]); base0[0].setY(0); base0[0].setZ(fz+fzshift);
00550 for(i=1;i<5;++i) {
00551 base0[i]=base0[0];
00552 base0[i].rotateZ(fphi1[i]);
00553 }
00554
00555 EmcRecGeoPlane pphi1[5];
00556 for(i=0;i<5;++i) {
00557 pphi1[i].Build(O,n1,base0[i]);
00558 }
00559
00560 EmcRecGeoPlane ptheta0[4];
00561 for(i=0;i<4;++i) {
00562 ptheta0[i].Build(n1,base0[i],base0[i+1]);
00563 }
00564
00565 HepPoint3D nn1[4];
00566 nn1[0]=(base1[0]+base1[1])/2-n1;
00567 nn1[1]=base1[1]-n1;
00568 nn1[2]=base1[2]-n1;
00569 nn1[3]=(base1[2]+base1[3])/2-n1;
00570
00571 EmcRecGeoPlane psec1[4];
00572 for(i=0;i<4;++i) {
00573 psec1[i].Build(nn1[i],base1[i]);
00574 }
00575
00576 EmcRecGeoPlane psec1p[4];
00577 HepPoint3D qq[4];
00578 for(i=0;i<4;++i) {
00579 qq[i]=base1[i];
00580 qq[i].setX(qq[i].x()+flength*nn1[i].x()/nn1[i].mag());
00581 qq[i].setY(qq[i].y()+flength*nn1[i].y()/nn1[i].mag());
00582 qq[i].setZ(qq[i].z()+flength*nn1[i].z()/nn1[i].mag());
00583 psec1p[i].Build(nn1[i],qq[i]);
00584 }
00585
00586 EmcRecGeoPlane pt1tmp;
00587 for(i=0;i<4;++i) {
00588 if(i==0||i==3) {
00589 fRing1[i].Type(EmcRecCrystal::SixPlane());
00590 if(i==0) {
00591 pt1tmp=ptheta1[0];
00592 } else {
00593 pt1tmp=ptheta1[2];
00594 }
00595 FindInt(pphi1[i],pt1tmp,psec1[i],po3);
00596 FindInt(pphi1[i],ptheta0[i],psec1[i],po2);
00597 FindInt(pphi1[i+1],pt1tmp,psec1[i],po0);
00598 FindInt(pphi1[i+1],ptheta0[i],psec1[i],po1);
00599 FindInt(pphi1[i],pt1tmp,psec1p[i],po7);
00600 FindInt(pphi1[i],ptheta0[i],psec1p[i],po6);
00601 FindInt(pphi1[i+1],pt1tmp,psec1p[i],po4);
00602 FindInt(pphi1[i+1],ptheta0[i],psec1p[i],po5);
00603 fRing1[i].Set(0,po0);
00604 fRing1[i].Set(1,po1);
00605 fRing1[i].Set(2,po2);
00606 fRing1[i].Set(3,po3);
00607 fRing1[i].Set(4,po4);
00608 fRing1[i].Set(5,po5);
00609 fRing1[i].Set(6,po6);
00610 fRing1[i].Set(7,po7);
00611 } else {
00612 fRing1[i].Type(EmcRecCrystal::SevenPlane());
00613 po0=base1[i];
00614 FindInt(pphi1[i],ptheta1[i-1],psec1[i],po4);
00615 FindInt(pphi1[i],ptheta0[i],psec1[i],po3);
00616 FindInt(pphi1[i+1],ptheta1[i],psec1[i],po1);
00617 FindInt(pphi1[i+1],ptheta0[i],psec1[i],po2);
00618 fRing1[i].Set(0,po0);
00619 fRing1[i].Set(1,po1);
00620 fRing1[i].Set(2,po2);
00621 fRing1[i].Set(3,po3);
00622 fRing1[i].Set(4,po4);
00623 po5=qq[i];
00624 FindInt(pphi1[i],ptheta1[i-1],psec1p[i],po9);
00625 FindInt(pphi1[i],ptheta0[i],psec1p[i],po8);
00626 FindInt(pphi1[i+1],ptheta1[i],psec1p[i],po6);
00627 FindInt(pphi1[i+1],ptheta0[i],psec1p[i],po7);
00628 fRing1[i].Set(5,po5);
00629 fRing1[i].Set(6,po6);
00630 fRing1[i].Set(7,po7);
00631 fRing1[i].Set(8,po8);
00632 fRing1[i].Set(9,po9);
00633 }
00634 }
00635
00637
00638
00639
00640
00642 HepPoint3D basem1[5];
00643 basem1[0].setX(fr[6]); basem1[0].setY(0); basem1[0].setZ(fz+fzshift);
00644 for(i=1;i<5;++i) {
00645 basem1[i]=basem1[0];
00646 basem1[i].rotateZ(fphi1[i]);
00647 }
00648
00649 EmcRecGeoPlane pthetam1[4];
00650 for(i=0;i<4;++i) {
00651 pthetam1[i].Build(n1,basem1[i],basem1[i+1]);
00652 }
00653
00654 HepPoint3D nn0[4];
00655 for(i=0;i<4;++i) {
00656 nn0[i]=(base0[i]+base0[i+1])/2-n1;
00657 }
00658
00659 EmcRecGeoPlane psec0[4];
00660 for(i=0;i<4;++i) {
00661 psec0[i].Build(nn0[i],base0[i]);
00662 }
00663
00664 EmcRecGeoPlane psec0p[4];
00665 HepPoint3D qq0[4];
00666 for(i=0;i<4;++i) {
00667 qq0[i]=base0[i];
00668 qq0[i].setX(qq0[i].x()+flength*nn0[i].x()/nn0[i].mag());
00669 qq0[i].setY(qq0[i].y()+flength*nn0[i].y()/nn0[i].mag());
00670 qq0[i].setZ(qq0[i].z()+flength*nn0[i].z()/nn0[i].mag());
00671 psec0p[i].Build(nn0[i],qq0[i]);
00672 }
00673
00674 for(i=0;i<4;++i) {
00675 fRing0[i].Type(EmcRecCrystal::SixPlane());
00676 po3=base0[i];
00677 FindInt(pphi1[i],pthetam1[i],psec0[i],po2);
00678 po0=base0[i+1];
00679 FindInt(pphi1[i+1],pthetam1[i],psec0[i],po1);
00680 FindInt(pphi1[i],ptheta0[i],psec0p[i],po7);
00681 FindInt(pphi1[i],pthetam1[i],psec0p[i],po6);
00682 FindInt(pphi1[i+1],ptheta0[i],psec0p[i],po4);
00683 FindInt(pphi1[i+1],pthetam1[i],psec0p[i],po5);
00684 fRing0[i].Set(0,po0);
00685 fRing0[i].Set(1,po1);
00686 fRing0[i].Set(2,po2);
00687 fRing0[i].Set(3,po3);
00688 fRing0[i].Set(4,po4);
00689 fRing0[i].Set(5,po5);
00690 fRing0[i].Set(6,po6);
00691 fRing0[i].Set(7,po7);
00692 }
00693
00695
00696
00697
00698
00699 for(i=0;i<6;++i) {
00700 if(i<4) {
00701 fCrystal[0][0][i]=fRing0[i];
00702 fCrystal[0][1][i]=fRing1[i];
00703 }
00704 if(i<5) {
00705 fCrystal[0][2][i]=fRing2[i];
00706 fCrystal[0][3][i]=fRing3[i];
00707 }
00708 fCrystal[0][4][i]=fRing4[i];
00709 fCrystal[0][5][i]=fRing5[i];
00710 }
00711 }
|