435void veto::AddBlock(TGeoVolumeAssembly *tInnerWall,TGeoVolumeAssembly *tDecayVacuum,TGeoVolumeAssembly *tOuterWall,TGeoVolumeAssembly *tLongitRib,TGeoVolumeAssembly *tVerticalRib,TGeoVolumeAssembly *ttLiSc,
int& liScCounter,
436 int blockNr ,
int nx,
int ny,
437 double z1,
double z2 ,
double Zshift,
double dist,
double distC,
438 double wallThick,
double liscThick1,
double liscThick2,
double ribThick ){
440 TString blockName =
"block";
446 double slX=(
wx(z2)-
wx(z1))/2/wz;
447 double slY=(
wy(z2)-
wy(z1))/2/wz;
449 double dZ = (dist-ribThick)/2;
463 TString nameInnerWall = (TString)tInnerWall->GetName()+
"_"+blockName;
465 tInnerWall->AddNode(TIW,0,
new TGeoTranslation(0, 0,Zshift ));
468 TString nameDecayVacuum = (TString)tDecayVacuum->GetName()+
"_"+blockName;
470 TDV->SetVisibility(kFALSE);
471 tDecayVacuum->AddNode(TDV,0,
new TGeoTranslation(0, 0,Zshift ));
475 TString nameOuterWall = (TString)tOuterWall->GetName()+
"_"+blockName;
477 wx(z1)+2*(wallThick+liscThick1),
wx(z2)+2*(wallThick+liscThick2),
wy(z1)+2*(wallThick+liscThick1),
wy(z2)+2*(wallThick+liscThick2),ribColor,
supportMedIn);
478 tOuterWall->AddNode(TOW, 0 ,
new TGeoTranslation(0, 0,Zshift));
483 name=
"CornerRib_L_"+blockName+
"_id";
484 TGeoVolumeAssembly* CornerRib_L =
GeoCornerRib(name,ribThick, liscThick1,liscThick2,dZ, slX,slY, ribColor ,
supportMedIn);
485 name=
"CornerRib_R_"+blockName+
"_id";
486 TGeoVolumeAssembly* CornerRib_R =
GeoCornerRib(name,ribThick, liscThick1,liscThick2,dZ, slY,slX, ribColor ,
supportMedIn);
488 std::vector<TGeoVolume*> vLongitRibX(nx);
489 std::vector<TGeoVolume*> vLongitRibY(ny);
490 double xStep1=(
wx(z1+ribThick)+2*wallThick-2*distC)/(nx-1);
491 double xStep2=(
wx(z1+dist)+2*wallThick-2*distC)/(nx-1);
492 double yStep1=(
wy(z1+ribThick)+2*wallThick-2*distC)/(ny-1);
493 double yStep2=(
wy(z1+dist)+2*wallThick-2*distC)/(ny-1);
494 for(
int i=0;i<nx;i++){
495 double xpos1=
wx(z1+ribThick)/2+wallThick-distC-ribThick/2-i*xStep1;
496 double xpos2=
wx(z1+dist)/2+wallThick-distC-ribThick/2-i*xStep2;
497 double ypos1=
wy(z1+ribThick)/2+wallThick;
498 double ypos2=
wy(z1+dist)/2+wallThick;
499 name=
""; name.Form(
"vLongitRibX_%s_phi%d",blockName.Data(),
makeId(0,xpos1,ypos1));
500 vLongitRibX.at(i) =
GeoSideObj(name, dZ,ribThick, liscThick1,ribThick, liscThick2,xpos2-xpos1, ypos2-ypos1,ribColor,
supportMedIn);
502 for(
int i=0;i<ny;i++){
503 double xpos1=
wx(z1+ribThick)/2+wallThick;
504 double xpos2=
wx(z1+dist)/2+wallThick;
505 double ypos1=
wy(z1+ribThick)/2+wallThick-distC-ribThick/2-i*yStep1;
506 double ypos2=
wy(z1+dist)/2+wallThick-distC-ribThick/2-i*yStep2;
507 name=
""; name.Form(
"vLongitRibX_%s_phi%d",blockName.Data(),
makeId(0,xpos1,ypos1));
508 vLongitRibY.at(i) =
GeoSideObj(name, dZ, liscThick1,ribThick, liscThick2,ribThick, xpos2-xpos1, ypos2-ypos1,ribColor,
supportMedIn);
512 double xPos1=
wx(z1+ribThick)/2+wallThick-distC+ribThick/2;
513 double xPos2=
wx(z1+dist)/2+wallThick-distC+ribThick/2;
514 double yPos1=
wy(z1+ribThick)/2+wallThick;
515 double yPos2=
wy(z1+dist)/2+wallThick;
516 name=
""; name.Form(
"LiSc_L1_%d",
liscId(
"LiSc_L1",blockNr,0,0,0));
517 TGeoVolume* LiSc_L1 =
GeoCornerLiSc1(name,dZ,1,distC-ribThick/sqrt(2)-ribThick/2, liscThick1,liscThick2, xPos2-xPos1, yPos2-yPos1, kMagenta-10 ,
vetoMed,
true);
518 name=
""; name.Form(
"LiSc_R1_%d",
liscId(
"LiSc_R1",blockNr,0,0,0));
519 TGeoVolume* LiSc_R1 =
GeoCornerLiSc1(name,dZ,0,distC-ribThick/sqrt(2)-ribThick/2, liscThick1,liscThick2, xPos2-xPos1, yPos2-yPos1, kMagenta-10 ,
vetoMed,
true);
520 xPos1=
wx(z1+ribThick)/2+wallThick;
521 xPos2=
wx(z1+dist)/2+wallThick;
522 yPos1=
wy(z1+ribThick)/2+wallThick-distC+ribThick/2;
523 yPos2=
wy(z1+dist)/2+wallThick-distC+ribThick/2;
524 name=
""; name.Form(
"LiSc_L2_%d",
liscId(
"LiSc_L2",blockNr,0,0,0));
525 TGeoVolume* LiSc_L2 =
GeoCornerLiSc2(name,dZ,1,distC-ribThick/sqrt(2)-ribThick/2, liscThick1,liscThick2, xPos2-xPos1, yPos2-yPos1, kMagenta-10 ,
vetoMed,
true);
526 name=
""; name.Form(
"LiSc_R2_%d",
liscId(
"LiSc_R2",blockNr,0,0,0));
527 TGeoVolume* LiSc_R2 =
GeoCornerLiSc2(name,dZ,0,distC-ribThick/sqrt(2)-ribThick/2, liscThick1,liscThick2, xPos2-xPos1, yPos2-yPos1, kMagenta-10 ,
vetoMed,
true);
529 for(
double pos=z1;pos<z2;pos+=dist){
530 int Zlayer = (int)pos/dist+1;
533 TString nameVR(
""); nameVR.Form(
"VetoVerticalRib_z%d",(
int)pos);
535 ribThick,
wx(pos)+2*wallThick,
wx(pos+ribThick)+2*wallThick,
wy(pos)+2*wallThick,
wy(pos+ribThick)+2*wallThick,ribColor,
supportMedIn);
536 tZ=Zshift-wz/2+pos-z1+ribThick/2;
537 tVerticalRib->AddNode(TVR,0,
new TGeoTranslation(0, 0,tZ ));
538 if(z2-pos<dist)
continue;
541 tX=
wx(pos+ribThick)/2+wallThick;
542 tY=
wy(pos+ribThick)/2+wallThick ;
543 tZ=tZ+ribThick/2+(dist-ribThick)/2;
544 tLongitRib->AddNode(CornerRib_L,
makeId(pos,tX,tY) ,
new TGeoCombiTrans(tX,tY,tZ,
new TGeoRotation(
"r",0,0,0)));
545 tLongitRib->AddNode(CornerRib_L,
makeId(pos,-tX,-tY) ,
new TGeoCombiTrans(-tX,-tY,tZ,
new TGeoRotation(
"r",0,0,180)));
546 tLongitRib->AddNode(CornerRib_R,
makeId(pos,-tX,tY) ,
new TGeoCombiTrans(-tX,tY,tZ,
new TGeoRotation(
"r",0,0,90)));
547 tLongitRib->AddNode(CornerRib_R,
makeId(pos,tX,-tY) ,
new TGeoCombiTrans(tX,-tY,tZ,
new TGeoRotation(
"r",0,0,270)));
550 idZ = pos+ribThick/2+dist/2;
553 double xStepZ1=(
wx(pos+ribThick)+2*wallThick-2*distC)/(nx-1);
554 double xStepZ2=(
wx(pos+dist)+2*wallThick-2*distC)/(nx-1);
555 for(
int i=0;i<nx;i++){
557 double xpos1=
wx(pos+ribThick)/2+wallThick-distC-ribThick/2-i*xStepZ1;
558 double ypos1=
wy(pos+ribThick)/2+wallThick;
559 tLongitRib->AddNode(vLongitRibX.at(i),
makeId(pos,xpos1,ypos1) ,
new TGeoCombiTrans(xpos1,ypos1,tZ,
new TGeoRotation(
"r",0,0,0)));
560 tLongitRib->AddNode(vLongitRibX.at(i),
makeId(pos,-xpos1,-ypos1) ,
new TGeoCombiTrans(-xpos1,-ypos1,tZ,
new TGeoRotation(
"r",0,0,180)));
563 double xpos2=
wx(pos+dist)/2+wallThick-distC-ribThick/2-i*xStepZ2;
564 double ypos2=
wy(pos+dist)/2+wallThick;
565 name=
""; name.Form(
"LiScX_%d",
liscId(
"LiScX",blockNr,Zlayer,i,0));
566 TGeoVolume* LiScX =
GeoSideObj(name, dZ,xStepZ1-ribThick, liscThick1,xStepZ2-ribThick, liscThick2,
567 (xpos2-xStepZ2)-(xpos1-xStepZ1), ypos2-ypos1,kMagenta-10,
vetoMed,
true);
569 ttLiSc->AddNode(LiScX,
liscId(
"LiScX",blockNr,Zlayer,i,1) ,
new TGeoCombiTrans(xpos1-xStepZ1+ribThick,ypos1,tZ,
new TGeoRotation(
"r",0,0,0)));
570 ttLiSc->AddNode(LiScX,
liscId(
"LiScX",blockNr,Zlayer,i,2) ,
new TGeoCombiTrans(-(xpos1-xStepZ1+ribThick),-ypos1,tZ,
new TGeoRotation(
"r",0,0,180)));
576 double yStepZ1=(
wy(pos+ribThick)+2*wallThick-2*distC)/(ny-1);
577 double yStepZ2=(
wy(pos+dist)+2*wallThick-2*distC)/(ny-1);
578 for(
int i=0;i<ny;i++){
579 double xpos1=
wx(pos+ribThick)/2+wallThick;
580 double ypos1=
wy(pos+ribThick)/2+wallThick-distC-ribThick/2-i*yStepZ1;
581 tLongitRib->AddNode(vLongitRibY.at(i),
makeId(pos,xpos1,ypos1) ,
new TGeoCombiTrans(xpos1,ypos1,tZ,
new TGeoRotation(
"r",0,0,0)));
582 tLongitRib->AddNode(vLongitRibY.at(i),
makeId(pos,-xpos1,-ypos1) ,
new TGeoCombiTrans(-xpos1,-ypos1,tZ,
new TGeoRotation(
"r",0,0,180)));
585 double xpos2=
wx(pos+dist)/2+wallThick;
586 double ypos2=
wy(pos+dist)/2+wallThick-distC-ribThick/2-i*yStepZ2;
587 name=
""; name.Form(
"LiScY_%d",
liscId(
"LiScY",blockNr,Zlayer,i,0));
588 TGeoVolume* LiScY =
GeoSideObj(name, dZ,liscThick1, yStepZ1-ribThick, liscThick2, yStepZ2-ribThick,
589 xpos2-xpos1, (ypos2-yStepZ2)-(ypos1-yStepZ1), kMagenta-10,
vetoMed,
true);
592 ttLiSc->AddNode(LiScY,
liscId(
"LiScY",blockNr,Zlayer,i,1),
new TGeoCombiTrans( xpos1, ypos1-yStepZ1+ribThick,tZ,
new TGeoRotation(
"r",0,0,0)));
593 ttLiSc->AddNode(LiScY,
liscId(
"LiScY",blockNr,Zlayer,i,2),
new TGeoCombiTrans(-xpos1,-(ypos1-yStepZ1+ribThick),tZ,
new TGeoRotation(
"r",0,0,180)));
600 double xP1=
wx(pos+ribThick)/2+wallThick-distC+ribThick/2;
601 double yP1=
wy(pos+ribThick)/2+wallThick;
603 ttLiSc->AddNode(LiSc_L1,
liscId(
"LiSc_L1",blockNr,Zlayer,0,1) ,
new TGeoCombiTrans(xP1,yP1,tZ,
new TGeoRotation(
"r",0,0,0)));
604 ttLiSc->AddNode(LiSc_L1,
liscId(
"LiSc_L1",blockNr,Zlayer,0,2) ,
new TGeoCombiTrans(-xP1,-yP1,tZ,
new TGeoRotation(
"r",0,0,180)));
606 ttLiSc->AddNode(LiSc_R1,
liscId(
"LiSc_R1",blockNr,Zlayer,0,1) ,
new TGeoCombiTrans(-xP1,yP1,tZ,
new TGeoRotation(
"r",0,0,0)));
607 ttLiSc->AddNode(LiSc_R1,
liscId(
"LiSc_R1",blockNr,Zlayer,0,2) ,
new TGeoCombiTrans(xP1,-yP1,tZ,
new TGeoRotation(
"r",0,0,180)));
609 xP1=
wx(pos+ribThick)/2+wallThick;
610 yP1=
wy(pos+ribThick)/2+wallThick-distC+ribThick/2;
611 ttLiSc->AddNode(LiSc_L2,
liscId(
"LiSc_L2",blockNr,Zlayer,0,1) ,
new TGeoCombiTrans(xP1,yP1,tZ,
new TGeoRotation(
"r",0,0,0)));
612 ttLiSc->AddNode(LiSc_L2,
liscId(
"LiSc_L2",blockNr,Zlayer,0,2) ,
new TGeoCombiTrans(-xP1,-yP1,tZ,
new TGeoRotation(
"r",0,0,180)));
614 ttLiSc->AddNode(LiSc_R2,
liscId(
"LiSc_R2",blockNr,Zlayer,0,1) ,
new TGeoCombiTrans(xP1,-yP1,tZ,
new TGeoRotation(
"r",0,0,0)));
615 ttLiSc->AddNode(LiSc_R2,
liscId(
"LiSc_R2",blockNr,Zlayer,0,2) ,
new TGeoCombiTrans(-xP1,yP1,tZ,
new TGeoRotation(
"r",0,0,180)));
626 TGeoVolumeAssembly *tMagVol =
new TGeoVolumeAssembly(nm);
629 bool isLongOutCover = 1;
631 double dzMagnetPart = 238.1*
cm ;
632 double thiknes = 12*
mm;
640 double dz=dzMagnetPart;
641 TGeoVolume* InnerMagWall_Y = gGeoManager->MakeBox(
"InnerMagWall_Y",
supportMedIn, dx, dy, dz);
642 InnerMagWall_Y->SetLineColor(15);
643 tMagVol->AddNode(InnerMagWall_Y, 1 ,
new TGeoCombiTrans(255*
cm,0,0,
new TGeoRotation(
"r",0,0,0)));
644 tMagVol->AddNode(InnerMagWall_Y, 2 ,
new TGeoCombiTrans(-255*
cm,0,0,
new TGeoRotation(
"r",0,0,0)));
649 TGeoVolume* InnerMagWall_X = gGeoManager->MakeBox(
"InnerMagWall_X",
supportMedIn, dx, dy, dz);
650 InnerMagWall_X->SetLineColor(15);
651 tMagVol->AddNode(InnerMagWall_X, 1 ,
new TGeoCombiTrans(0,505*
cm,0,
new TGeoRotation(
"r",0,0,0)));
652 tMagVol->AddNode(InnerMagWall_X, 2 ,
new TGeoCombiTrans(0,-505*
cm,0,
new TGeoRotation(
"r",0,0,0)));
656 xPos=(-358.2*
cm-250.4*
cm)/2;
657 yPos=602.4*
cm-(602.4-500.4)*
cm/2;
658 zPos=dzMagnetPart+thiknes/2;
660 dx=(358.2-250.4)*
cm/2;
663 TGeoVolume* VertMagCover_Y = gGeoManager->MakeBox(
"VertMagCover_Y",
supportMedIn, dx, dy, dz);
665 dy=(602.4-500.4)*
cm/2;
666 TGeoVolume* VertMagCover_X = gGeoManager->MakeBox(
"VertMagCover_X",
supportMedIn, dx, dy, dz);
667 VertMagCover_Y->SetLineColor(15);
668 VertMagCover_X->SetLineColor(15);
670 if(isVert)tMagVol->AddNode(VertMagCover_Y, 1 ,
new TGeoCombiTrans(xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
671 if(isVert)tMagVol->AddNode(VertMagCover_Y, 2 ,
new TGeoCombiTrans(-xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
672 if(isVert)tMagVol->AddNode(VertMagCover_Y, 3 ,
new TGeoCombiTrans(xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
673 if(isVert)tMagVol->AddNode(VertMagCover_Y, 4 ,
new TGeoCombiTrans(-xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
675 if(isVert)tMagVol->AddNode(VertMagCover_X, 1 ,
new TGeoCombiTrans(0,yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
676 if(isVert)tMagVol->AddNode(VertMagCover_X, 2 ,
new TGeoCombiTrans(0,-yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
677 if(isVert)tMagVol->AddNode(VertMagCover_X, 3 ,
new TGeoCombiTrans(0,yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
678 if(isVert)tMagVol->AddNode(VertMagCover_X, 4 ,
new TGeoCombiTrans(0,-yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
681 double dxOoutCover=thiknes/2;
682 double dyOoutCover=604.4*
cm;
683 double dzOoutCover=56.0*
cm/2;
684 double xPosOutetCover = xPos-(358.2-250.4)*
cm/2;
685 double yPosOutetCover = 602.4*
cm;
686 double zPosOutetCover = zPos-dzOoutCover-thiknes/2;
688 TGeoVolume* LongOutCover_Y1 = gGeoManager->MakeBox(
"LongOutCover_Y1",
supportMedIn, dxOoutCover, dyOoutCover, dzOoutCover);
689 dxOoutCover=fabs(xPosOutetCover)-thiknes;
690 dyOoutCover=thiknes/2;
691 TGeoVolume* LongOutCover_X1 = gGeoManager->MakeBox(
"LongOutCover_X1",
supportMedIn, dxOoutCover, dyOoutCover, dzOoutCover);
693 LongOutCover_Y1->SetLineColor(15);
694 LongOutCover_X1->SetLineColor(15);
696 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y1, 1 ,
new TGeoCombiTrans(xPosOutetCover,0,zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
697 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y1, 2 ,
new TGeoCombiTrans(-xPosOutetCover,0,zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
698 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y1, 3 ,
new TGeoCombiTrans(xPosOutetCover,0,-zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
699 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y1, 4 ,
new TGeoCombiTrans(-xPosOutetCover,0,-zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
702 if(isLongOutCover)tMagVol->AddNode(LongOutCover_X1, 1 ,
new TGeoCombiTrans(0,yPosOutetCover,zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
703 if(isLongOutCover)tMagVol->AddNode(LongOutCover_X1, 2 ,
new TGeoCombiTrans(0,-yPosOutetCover,zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
704 if(isLongOutCover)tMagVol->AddNode(LongOutCover_X1, 3 ,
new TGeoCombiTrans(0,yPosOutetCover,-zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
705 if(isLongOutCover)tMagVol->AddNode(LongOutCover_X1, 4 ,
new TGeoCombiTrans(0,-yPosOutetCover,-zPosOutetCover,
new TGeoRotation(
"r",0,0,0)));
709 if(isVert)tMagVol->AddNode(VertMagCover_Y, 5 ,
new TGeoCombiTrans(xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
710 if(isVert)tMagVol->AddNode(VertMagCover_Y, 6 ,
new TGeoCombiTrans(-xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
711 if(isVert)tMagVol->AddNode(VertMagCover_Y, 7 ,
new TGeoCombiTrans(xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
712 if(isVert)tMagVol->AddNode(VertMagCover_Y, 8 ,
new TGeoCombiTrans(-xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
714 if(isVert)tMagVol->AddNode(VertMagCover_X, 5 ,
new TGeoCombiTrans(0,yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
715 if(isVert)tMagVol->AddNode(VertMagCover_X, 6 ,
new TGeoCombiTrans(0,-yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
716 if(isVert)tMagVol->AddNode(VertMagCover_X, 7 ,
new TGeoCombiTrans(0,yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
717 if(isVert)tMagVol->AddNode(VertMagCover_X, 8 ,
new TGeoCombiTrans(0,-yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
720 if(isVert)tMagVol->AddNode(VertMagCover_Y, 9 ,
new TGeoCombiTrans(xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
721 if(isVert)tMagVol->AddNode(VertMagCover_Y, 10 ,
new TGeoCombiTrans(-xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
722 if(isVert)tMagVol->AddNode(VertMagCover_Y, 11 ,
new TGeoCombiTrans(xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
723 if(isVert)tMagVol->AddNode(VertMagCover_Y, 12 ,
new TGeoCombiTrans(-xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
725 if(isVert)tMagVol->AddNode(VertMagCover_X, 9 ,
new TGeoCombiTrans(0,yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
726 if(isVert)tMagVol->AddNode(VertMagCover_X, 10 ,
new TGeoCombiTrans(0,-yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
727 if(isVert)tMagVol->AddNode(VertMagCover_X, 11 ,
new TGeoCombiTrans(0,yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
728 if(isVert)tMagVol->AddNode(VertMagCover_X, 12 ,
new TGeoCombiTrans(0,-yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
732 if(isVert)tMagVol->AddNode(VertMagCover_Y, 10 ,
new TGeoCombiTrans(xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
733 if(isVert)tMagVol->AddNode(VertMagCover_Y, 11 ,
new TGeoCombiTrans(-xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
734 if(isVert)tMagVol->AddNode(VertMagCover_Y, 12 ,
new TGeoCombiTrans(xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
735 if(isVert)tMagVol->AddNode(VertMagCover_Y, 13 ,
new TGeoCombiTrans(-xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
737 if(isVert)tMagVol->AddNode(VertMagCover_X, 10 ,
new TGeoCombiTrans(0,yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
738 if(isVert)tMagVol->AddNode(VertMagCover_X, 11 ,
new TGeoCombiTrans(0,-yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
739 if(isVert)tMagVol->AddNode(VertMagCover_X, 12 ,
new TGeoCombiTrans(0,yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
740 if(isVert)tMagVol->AddNode(VertMagCover_X, 13 ,
new TGeoCombiTrans(0,-yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
743 if(isVert)tMagVol->AddNode(VertMagCover_X, 14 ,
new TGeoCombiTrans(0,yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
744 if(isVert)tMagVol->AddNode(VertMagCover_X, 15 ,
new TGeoCombiTrans(0,-yPos,zPos,
new TGeoRotation(
"r",0,0,0)));
745 if(isVert)tMagVol->AddNode(VertMagCover_X, 16 ,
new TGeoCombiTrans(0,yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
746 if(isVert)tMagVol->AddNode(VertMagCover_X, 17 ,
new TGeoCombiTrans(0,-yPos,-zPos,
new TGeoRotation(
"r",0,0,0)));
748 dx=(358.2-250.4)*
cm/2-37.0*
cm/2;
752 TGeoVolume* VertMagCover_y = gGeoManager->MakeBox(
"VertMagCover_y",
supportMedIn, dx, dy, dz);
753 VertMagCover_y->SetLineColor(15);
754 if(isVert)tMagVol->AddNode(VertMagCover_y, 1 ,
new TGeoCombiTrans(xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
755 if(isVert)tMagVol->AddNode(VertMagCover_y, 2 ,
new TGeoCombiTrans(-xPos,0,zPos,
new TGeoRotation(
"r",0,0,0)));
756 if(isVert)tMagVol->AddNode(VertMagCover_y, 3 ,
new TGeoCombiTrans(xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
757 if(isVert)tMagVol->AddNode(VertMagCover_y, 4 ,
new TGeoCombiTrans(-xPos,0,-zPos,
new TGeoRotation(
"r",0,0,0)));
763 TGeoVolume* LongOutCover_Y2 = gGeoManager->MakeBox(
"LongOutCover_Y2",
supportMedIn, dx, dy, dz);
764 LongOutCover_Y2->SetLineColor(15);
766 xPos = xPosOutetCover;
770 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 1 ,
new TGeoTranslation(xPos,yPos,zPos));
771 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 2 ,
new TGeoTranslation(xPos,yPos,-zPos));
772 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 3 ,
new TGeoTranslation(-xPos,yPos,zPos));
773 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 4 ,
new TGeoTranslation(-xPos,yPos,-zPos));
776 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 5 ,
new TGeoTranslation(xPos,yPos,zPos));
777 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 6 ,
new TGeoTranslation(xPos,yPos,-zPos));
778 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 7 ,
new TGeoTranslation(-xPos,yPos,zPos));
779 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 8 ,
new TGeoTranslation(-xPos,yPos,-zPos));
781 xPos = xPosOutetCover;
783 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 9 ,
new TGeoTranslation(xPos,yPos,zPos));
784 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 10 ,
new TGeoTranslation(xPos,yPos,-zPos));
785 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 11 ,
new TGeoTranslation(-xPos,yPos,zPos));
786 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 12 ,
new TGeoTranslation(-xPos,yPos,-zPos));
789 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 13 ,
new TGeoTranslation(xPos,yPos,zPos));
790 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 14 ,
new TGeoTranslation(xPos,yPos,-zPos));
791 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 16 ,
new TGeoTranslation(-xPos,yPos,zPos));
792 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y2, 17 ,
new TGeoTranslation(-xPos,yPos,-zPos));
796 TGeoVolume* LongOutCover_Y3 = gGeoManager->MakeBox(
"LongOutCover_Y3",
supportMedIn, dx, dy, dz);
797 LongOutCover_Y3->SetLineColor(15);
798 xPos = xPosOutetCover;
801 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y3, 1 ,
new TGeoTranslation(xPos,yPos,zPos));
802 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y3, 2 ,
new TGeoTranslation(xPos,yPos,-zPos));
803 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y3, 3 ,
new TGeoTranslation(-xPos,yPos,zPos));
804 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y3, 4 ,
new TGeoTranslation(-xPos,yPos,-zPos));
807 dy-=(358.2-250.4)*
cm;
808 TGeoVolume* LongOutCover_Y4 = gGeoManager->MakeBox(
"LongOutCover_Y4",
supportMedIn, dx, dy, dz);
809 LongOutCover_Y4->SetLineColor(2);
812 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y4, 1 ,
new TGeoTranslation(xPos,yPos,zPos));
813 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y4, 2 ,
new TGeoTranslation(xPos,yPos,-zPos));
814 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y4, 3 ,
new TGeoTranslation(-xPos,yPos,zPos));
815 if(isLongOutCover)tMagVol->AddNode(LongOutCover_Y4, 4 ,
new TGeoTranslation(-xPos,yPos,-zPos));
833TGeoVolume*
veto::MakeSegments(Double_t dz,Double_t dx_start,Double_t dy_start,Double_t slopeX,Double_t slopeY,Double_t floorHeight)
835 TGeoVolumeAssembly *tTankVol =
new TGeoVolumeAssembly(
"T2");
836 Double_t dist = 0.8*
m;
848 TString nameInnerWall =
"VetoInnerWall";
849 TGeoVolumeAssembly *tInnerWall =
new TGeoVolumeAssembly(nameInnerWall);
851 TString nameDecayVacuum =
"DecayVacuum";
852 TGeoVolumeAssembly *tDecayVacuum =
new TGeoVolumeAssembly(nameDecayVacuum);
854 TString nameOuterWall =
"VetoOuterWall";
855 TGeoVolumeAssembly *tOuterWall =
new TGeoVolumeAssembly(nameOuterWall);
857 TString nameLongitRib =
"VetoLongitRib";
858 TGeoVolumeAssembly *tLongitRib =
new TGeoVolumeAssembly(nameLongitRib);
860 TString nameVerticalRib =
"VetoVerticalRib";
861 TGeoVolumeAssembly *tVerticalRib =
new TGeoVolumeAssembly(nameVerticalRib);
863 TString nameLiSc =
"VetoLiSc";
864 TGeoVolumeAssembly *ttLiSc =
new TGeoVolumeAssembly(nameLiSc);
871 double slX=(
wx(z2)-
wx(z1))/2/wz;
872 double slY=(
wy(z2)-
wy(z1))/2/wz;
874 double wallThick= 20*
mm;
875 double liscThick1= 300*
mm;
876 double liscThick2= 300*
mm;
877 double ribThick = 10*
mm;
879 double Zshift=-dz + wz/2;
885 double distC = 150*
mm;
889 AddBlock(tInnerWall,tDecayVacuum,tOuterWall,tLongitRib,tVerticalRib,ttLiSc, liScCounter,
890 1, nx, ny, z1,z2,Zshift,dist,distC,
891 wallThick,liscThick1,liscThick2,ribThick);
907 AddBlock(tInnerWall,tDecayVacuum,tOuterWall,tLongitRib,tVerticalRib,ttLiSc, liScCounter,
908 2, nx, ny, z1,z2,Zshift,dist,distC,
909 wallThick,liscThick1,liscThick2,ribThick);
921 AddBlock(tInnerWall,tDecayVacuum,tOuterWall,tLongitRib,tVerticalRib,ttLiSc, liScCounter,
922 3, nx, ny, z1,z2,Zshift,dist,distC,
923 wallThick,liscThick1,liscThick2,ribThick);
938 AddBlock(tInnerWall,tDecayVacuum,tOuterWall,tLongitRib,tVerticalRib,ttLiSc, liScCounter,
939 4, nx, ny, z1,z2,Zshift,dist,distC,
940 wallThick,liscThick1,liscThick2,ribThick);
956 AddBlock(tInnerWall,tDecayVacuum,tOuterWall,tLongitRib,tVerticalRib,ttLiSc, liScCounter,
957 5, nx, ny, z1,z2,Zshift,dist,distC,
958 wallThick,liscThick1,liscThick2,ribThick);
962 if(isInnerWall)tTankVol->AddNode(tInnerWall,0,
new TGeoTranslation(0, 0,0 ));
963 if(isDecayVacuum)tTankVol->AddNode(tDecayVacuum,0,
new TGeoTranslation(0, 0,0 ));
964 if(isOuterWall)tTankVol->AddNode(tOuterWall,0,
new TGeoTranslation(0, 0,0 ));
965 if(isVerticalRib)tTankVol->AddNode(tVerticalRib,0,
new TGeoTranslation(0, 0,0 ));
966 if(isLongitRib)tTankVol->AddNode(tLongitRib,0,
new TGeoTranslation(0, 0,0 ));
967 if(isLiSc)tTankVol->AddNode(ttLiSc,0,
new TGeoTranslation(0, 0,0 ));