Bug fixes in ITS geometry version 11, and update of display macro.
authornilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 15 Apr 2004 21:09:44 +0000 (21:09 +0000)
committernilsen <nilsen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 15 Apr 2004 21:09:44 +0000 (21:09 +0000)
ITS/AliITSv11.cxx
ITS/AliITSv11.h
ITS/AliITSv11GeometrySupport.cxx
ITS/Displayv11.C

index de07f8e..bae1034 100644 (file)
@@ -92,7 +92,18 @@ ClassImp(AliITSv11)
 */
 
 //______________________________________________________________________
-AliITSv11::AliITSv11() : AliITS() {
+AliITSv11::AliITSv11() : AliITS(),
+fEuclidOut(kFALSE),
+fGeomDetOut(kFALSE),
+fGeomDetIn(kFALSE),
+fMajorVersion(11),
+fMinorVersion(0),
+fDet1(0.0),
+fDet2(0.0),
+fChip1(0.0),
+fChip2(0.0),
+fRails(0),
+fFluid(1){
     // Standard default constructor for the ITS version 11.
     // Inputs:
     //   none.
@@ -106,7 +117,18 @@ AliITSv11::AliITSv11() : AliITS() {
 //   fcD = 0;
 }
 //______________________________________________________________________
-AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title){
+AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title),
+fEuclidOut(kFALSE),
+fGeomDetOut(kFALSE),
+fGeomDetIn(kFALSE),
+fMajorVersion(11),
+fMinorVersion(0),
+fDet1(0.0),
+fDet2(0.0),
+fChip1(0.0),
+fChip2(0.0),
+fRails(0),
+fFluid(1){
     // Standard constructor for the ITS version 11.
     // Inputs:
     //   const char *title  The title of for this geometry.
@@ -114,10 +136,6 @@ AliITSv11::AliITSv11(const char *title) : AliITS("ITS", title){
     //   none.
     // Return
     //   A Standard constructed AliITSv11 class.
-
-    //fITSV = 0;
-    //fcS = 0;
-//    fcD = 0;
 }
 //______________________________________________________________________
 AliITSv11::~AliITSv11() {
@@ -172,7 +190,7 @@ void AliITSv11::BuildGeometry(){
     //   none.
     // Return
     //   none.
-    TVector3 t(0.0,0.0,0.0);
+    //TVector3 t(0.0,0.0,0.0);
 
     //if(fITSV==0) fITSV = new AliITSGeometryITSV(this,"ALIC");
     //if(fcS==0) fcS = new AliITSGeometrySSDCone(this,t,"TSV",1);
@@ -194,23 +212,24 @@ void AliITSv11::CreateGeometry(){
     const Double_t kcm = 1.0;
 
     TGeoManager *mgr = gGeoManager;
-    TGeoVolume *ALIC = mgr->GetTopVolume();
+    TGeoVolume *vALIC = mgr->GetTopVolume();
 
-    TGeoPcon *itsv = new TGeoPcon("ITS Top Volume, Daughter of ALIC",
+    TGeoPcon *sITS = new TGeoPcon("ITS Top Volume, Daughter of ALIC",
                                   0.0,360.0,2);
     // DefineSection(section number, Z, Rmin, Rmax).
-    itsv->DefineSection(0,-300.0*kcm,0.01*kcm,50.0*kcm);
-    itsv->DefineSection(1,+300.0*kcm,0.01*kcm,50.0*kcm);
-    TGeoVolume *ITSV = new TGeoVolume("ITSV",itsv,0);
-    //mgr->AddVolume(ITSV);
-    ITSV->SetVisibility(kFALSE);
-    ALIC->AddNode(ITSV,1,0);
+    sITS->DefineSection(0,-300.0*kcm,0.01*kcm,50.0*kcm);
+    sITS->DefineSection(1,+300.0*kcm,0.01*kcm,50.0*kcm);
+    TGeoVolume *vITS = new TGeoVolume("ITSV",sITS,0);
+    mgr->AddVolume(vITS);
+    vITS->SetVisibility(kFALSE);
+    vALIC->AddNode(vITS,1,0);
     //
     AliITSv11GeometrySupport *sup = new AliITSv11GeometrySupport(GetDebug());
-    //sup->SPDCone(ITSV);
-    //sup->SDDCone(ITSV);
-    sup->SSDCone(ITSV);
-    //sup->ServicesCableSupport(ITSV);
+    sup->SPDCone(vITS);
+    sup->SPDThermalSheald(vITS);
+    sup->SDDCone(vITS);
+    sup->SSDCone(vITS);
+    sup->ServicesCableSupport(vITS);
 }
 //______________________________________________________________________
 void AliITSv11::CreateMaterials(){
@@ -226,56 +245,56 @@ void AliITSv11::CreateMaterials(){
     //   none.
 
     //TGeoMaterial *C  = new TGeoMaterial("ITSCarbon",12.0,6.0,2.265);
-    TGeoMaterial *Al = new TGeoMaterial("ITSAluminum",26.981539,13.0,2.07);
-    TGeoMixture *Cfiber = new TGeoMixture("ITSCarbonFiber",6,1.930);
-    TGeoMixture *Rohacell = new TGeoMixture("ITSRohacell",6,1.930);
-    TGeoMixture *Staselite = new TGeoMixture("ITSStaselite4411w",6,1.930);
-    TGeoMixture *Air = new TGeoMixture("ITSAir",6,1.205*1.E-3);
-    TGeoMixture *Stainless = new TGeoMixture("ITSStainless",6,1.930);
+    TGeoMaterial *matAl = new TGeoMaterial("ITSAluminum",26.981539,13.0,2.07);
+    TGeoMixture *matCfiber = new TGeoMixture("ITSCarbonFiber",6,1.930);
+    TGeoMixture *matRohacell = new TGeoMixture("ITSRohacell",6,1.930);
+    TGeoMixture *matStaselite = new TGeoMixture("ITSStaselite4411w",6,1.930);
+    TGeoMixture *matAir = new TGeoMixture("ITSAir",6,1.205*1.E-3);
+    TGeoMixture *matStainless = new TGeoMixture("ITSStainless",6,1.930);
     //
-    Double_t SPDcone[20];
-    SPDcone[0] = 1.0; // imat
-    SPDcone[1] = 0.0; // isvol
-    SPDcone[2] = gAlice->Field()->Integ(); // ifield
-    SPDcone[3] = gAlice->Field()->Max(); // fieldm
-    SPDcone[4] = 1.0; // tmaxfd [degrees]
-    SPDcone[5] = 1.0; // stemax [cm]
-    SPDcone[6] = 0.5; // deemax [fraction]
-    SPDcone[7] = 1.0E-3; // epsil [cm]
-    SPDcone[8] = 0.0; // stmin [cm]
-    new TGeoMedium("ITSspdCarbonFiber",1,Cfiber,SPDcone);
-    SPDcone[0] += 1.0;
-    new TGeoMedium("ITSspdStaselite4411w",2,Staselite,SPDcone);
-    SPDcone[0] += 1.0;
-    new TGeoMedium("ITSspdRohacell50A",3,Rohacell,SPDcone);
-    SPDcone[0] += 1.0;
-    new TGeoMedium("ITSspdStainlesSteal",4,Stainless,SPDcone);
-    SPDcone[0] += 1.0;
-    new TGeoMedium("ITSspdAir",5,Air,SPDcone);
-    SPDcone[0] += 1.0;
-    new TGeoMedium("ITSspdAl",6,Al,SPDcone);
+    Double_t medSPDcone[20];
+    medSPDcone[0] = 1.0; // imat
+    medSPDcone[1] = 0.0; // isvol
+    medSPDcone[2] = gAlice->Field()->Integ(); // ifield
+    medSPDcone[3] = gAlice->Field()->Max(); // fieldm
+    medSPDcone[4] = 1.0; // tmaxfd [degrees]
+    medSPDcone[5] = 1.0; // stemax [cm]
+    medSPDcone[6] = 0.5; // deemax [fraction]
+    medSPDcone[7] = 1.0E-3; // epsil [cm]
+    medSPDcone[8] = 0.0; // stmin [cm]
+    new TGeoMedium("ITSspdCarbonFiber",1,matCfiber,medSPDcone);
+    medSPDcone[0] += 1.0;
+    new TGeoMedium("ITSspdStaselite4411w",2,matStaselite,medSPDcone);
+    medSPDcone[0] += 1.0;
+    new TGeoMedium("ITSspdRohacell50A",3,matRohacell,medSPDcone);
+    medSPDcone[0] += 1.0;
+    new TGeoMedium("ITSspdStainlesSteal",4,matStainless,medSPDcone);
+    medSPDcone[0] += 1.0;
+    new TGeoMedium("ITSspdAir",5,matAir,medSPDcone);
+    medSPDcone[0] += 1.0;
+    new TGeoMedium("ITSspdAl",6,matAl,medSPDcone);
     //
-    Double_t SSDcone[20];
-    SSDcone[0] = 1.0; // imat
-    SSDcone[1] = 0.0; // isvol
-    SSDcone[2] = gAlice->Field()->Integ(); // ifield
-    SSDcone[3] = gAlice->Field()->Max(); // fieldm
-    SSDcone[4] = 1.0; // tmaxfd [degrees]
-    SSDcone[5] = 1.0; // stemax [cm]
-    SSDcone[6] = 0.5; // deemax [fraction]
-    SSDcone[7] = 1.0E-3; // epsil [cm]
-    SSDcone[8] = 0.0; // stmin [cm]
-    new TGeoMedium("ITSssdCarbonFiber",1,Cfiber,SSDcone);
-    SSDcone[0] += 1.0;
-    new TGeoMedium("ITSssdStaselite4411w",2,Staselite,SSDcone);
-    SSDcone[0] += 1.0;
-    new TGeoMedium("ITSssdRohacell50A",3,Rohacell,SSDcone);
-    SSDcone[0] += 1.0;
-    new TGeoMedium("ITSssdStainlesSteal",4,Stainless,SSDcone);
-    SSDcone[0] += 1.0;
-    new TGeoMedium("ITSssdAir",5,Air,SSDcone);
-    SSDcone[0] += 1.0;
-    new TGeoMedium("ITSssdAl",6,Al,SSDcone);
+    Double_t medSSDcone[20];
+    medSSDcone[0] = 1.0; // imat
+    medSSDcone[1] = 0.0; // isvol
+    medSSDcone[2] = gAlice->Field()->Integ(); // ifield
+    medSSDcone[3] = gAlice->Field()->Max(); // fieldm
+    medSSDcone[4] = 1.0; // tmaxfd [degrees]
+    medSSDcone[5] = 1.0; // stemax [cm]
+    medSSDcone[6] = 0.5; // deemax [fraction]
+    medSSDcone[7] = 1.0E-3; // epsil [cm]
+    medSSDcone[8] = 0.0; // stmin [cm]
+    new TGeoMedium("ITSssdCarbonFiber",1,matCfiber,medSSDcone);
+    medSSDcone[0] += 1.0;
+    new TGeoMedium("ITSssdStaselite4411w",2,matStaselite,medSSDcone);
+    medSSDcone[0] += 1.0;
+    new TGeoMedium("ITSssdRohacell50A",3,matRohacell,medSSDcone);
+    medSSDcone[0] += 1.0;
+    new TGeoMedium("ITSssdStainlesSteal",4,matStainless,medSSDcone);
+    medSSDcone[0] += 1.0;
+    new TGeoMedium("ITSssdAir",5,matAir,medSSDcone);
+    medSSDcone[0] += 1.0;
+    new TGeoMedium("ITSssdAl",6,matAl,medSSDcone);
 }
 //______________________________________________________________________
 void AliITSv11::InitAliITSgeom(){
index 675ca17..0470cba 100644 (file)
@@ -40,9 +40,6 @@ class AliITSv11 : public AliITS {
     Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
     Int_t  fMajorVersion;     // Major version number == IsVersion
     Int_t  fMinorVersion;     // Minor version number
-    char   fEuclidGeomDet[60];// file where detector transormation are define.
-    char   fRead[60];         //! file name to read .det file
-    char   fWrite[60];        //! file name to write .det file
     Float_t  fDet1;          // thickness of detector in SPD layer 1
     Float_t  fDet2;          // thickness of detector in SPD layer 2
     Float_t  fChip1;         // thickness of chip in SPD layer 1   
index d474880..5ef3c16 100644 (file)
@@ -144,8 +144,6 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     sDs = new TGeoTube("ITS SPD Therm Screen Flange fill Ds",
                       ktscRinD+ktscarbonFiberThA,ktscRoutD-ktscarbonFiberThA,
                       0.5*ktscLengthD);
-    PrintTube(sD);
-    PrintTube(sDs);
     sDw = new TGeoTubeSeg("ITS SPD Therm Screen Flange Wing Dw",
                          ktscRoutD,ktscRwingD ,0.5*ktscLengthD,
                          ktscAngleD0-0.5*ktscAngleDD,
@@ -154,8 +152,6 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
                           ktscRoutD,ktscRwingD-ktscarbonFiberThA,
                           0.5*ktscLengthD,ktscAngleD0-0.5*ktscAngleDDs,
                           ktscAngleD0+0.5*ktscAngleDDs);
-    PrintTubeSeg(sDw);
-    PrintTubeSeg(sDws);
     k = 0;
     for(i=-1;i<2;i++){
         th = ((Double_t)(i+1))*ktscAngle*fgkDegree;
@@ -457,24 +453,6 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     sCh1->SetVertex(7,x7[0],y7[0]); // 7th point most be done last ???
     sCh2->SetVertex(7,x7[1],y7[1]); // 7th point most be done last ???
     sCh3->SetVertex(7,x7[2],y7[2]); // 7th point most be done last ???
-    PrintArb8(sA1);
-    PrintArb8(sAh1);
-    PrintArb8(sA2);
-    PrintArb8(sAh2);
-    PrintArb8(sA3);
-    PrintArb8(sAh3);
-    PrintArb8(sB1);
-    PrintArb8(sBh1);
-    PrintArb8(sB2);
-    PrintArb8(sBh2);
-    PrintArb8(sB3);
-    PrintArb8(sBh3);
-    PrintArb8(sC1);
-    PrintArb8(sCh1);
-    PrintArb8(sC2);
-    PrintArb8(sCh2);
-    PrintArb8(sC3);
-    PrintArb8(sCh3);
     //
     // Define Minimal volume to inclose this SPD Thermal Sheald.
     sM1 = new TGeoPcon("ITSspdShealdVV",0.0,360.0,9);
@@ -514,7 +492,6 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     sM2 = new TGeoTubeSeg("ITSspdShealdWingVV",
                           sM1->GetRmax(8),sDw->GetRmax(),sDw->GetDz(),
                           sDw->GetPhi1(),sDw->GetPhi2());
-    PrintTubeSeg(sM2);
     //
     x = 0.5*(sM1->GetZ(8) + sM1->GetZ(7));
     tranITSspdShealdVVt0 = new TGeoTranslation("ITSspdShealdVVt0",0.0,0.0,x);
@@ -538,6 +515,38 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
                                 "ITSspdShealdWingVV:ITSspdShealdVVt2)+"
                                 "ITSspdShealdWingVV:ITSspdShealdVVt3");
     //
+    if(GetDebug()){
+        tranITSspdShealdVVt0->Print();
+        rotITSspdShealdVVt1->Print();
+        rotITSspdShealdVVt2->Print();
+        rotITSspdShealdVVt3->Print();
+        sD->InspectShape();
+        sDs->InspectShape();
+        sDw->InspectShape();
+        sDws->InspectShape();
+        sA1->InspectShape();
+        sAh1->InspectShape();
+        sA2->InspectShape();
+        sAh2->InspectShape();
+        sA3->InspectShape();
+        sAh3->InspectShape();
+        sB1->InspectShape();
+        sBh1->InspectShape();
+        sB2->InspectShape();
+        sBh2->InspectShape();
+        sB3->InspectShape();
+        sBh3->InspectShape();
+        sC1->InspectShape();
+        sCh1->InspectShape();
+        sC2->InspectShape();
+        sCh2->InspectShape();
+        sC3->InspectShape();
+        sCh3->InspectShape();
+        sM1->InspectShape();
+        sM2->InspectShape();
+        sM->InspectShape();
+    } // end if GetDebug
+    //
     TGeoManager *mgr = gGeoManager;
     medSPDcf = mgr->GetMedium("ITSspdCarbonFiber");
     medSPDfs = mgr->GetMedium("ITSspdStaselite4411w");
@@ -743,7 +752,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
         vDs->PrintNodes();
         vDw->PrintNodes();
         vDws->PrintNodes();
-        //vM->PrintNodes();
+        vM->PrintNodes();
     } // end if
 }
 //______________________________________________________________________
@@ -785,10 +794,12 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
                     ktsOuterR-ktscarbonFiberth,0.5*ktsLength);
     sD = new TGeoTube("ITS SDD CC M6 bolt end",0.0,0.5*ktsBoltDiameter,
                     0.5*ktsBoltDepth);
-    PrintTube(sA);
-    PrintTube(sB);
-    PrintTube(sC);
-    PrintTube(sD);
+    if(GetDebug()){
+        sA->InspectShape();
+        sB->InspectShape();
+        sC->InspectShape();
+        sD->InspectShape();
+    } // end if GetDebug
     //
     TGeoManager *mgr = gGeoManager;
     medSDDcf = mgr->GetMedium("ITSssdCarbonFiber");
@@ -801,25 +812,25 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     vA->SetLineColor(4);
     vA->SetLineWidth(1);
     vA->SetFillColor(vA->GetLineColor());
-    vA->SetFillStyle(4000); // 0% transparent
+    vA->SetFillStyle(4030); // 30% transparent
     vB = new TGeoVolume("ITSsddCentCylF",sB,medSDDfo);
     vB->SetVisibility(kTRUE);
     vB->SetLineColor(3);
     vB->SetLineWidth(1);
     vB->SetFillColor(vB->GetLineColor());
-    vB->SetFillStyle(4000); // 0% transparent
+    vB->SetFillStyle(4050); // 50% transparent
     vC = new TGeoVolume("ITSsddCentCylSt",sC,medSDDfs);
     vC->SetVisibility(kTRUE);
     vC->SetLineColor(2);
     vC->SetLineWidth(1);
     vC->SetFillColor(vC->GetLineColor());
-    vC->SetFillStyle(4000); // 0% transparent
+    vC->SetFillStyle(4050); // 50% transparent
     vD = new TGeoVolume("ITSsddCentCylSS",sD,medSDDss);
     vD->SetVisibility(kTRUE);
     vD->SetLineColor(1);
     vD->SetLineWidth(1);
     vD->SetFillColor(vD->GetLineColor());
-    vD->SetFillStyle(4000); // 0% transparent
+    vD->SetFillStyle(4050); // 50% transparent
     //
     moth->AddNode(vA,1,0);
     vA->AddNode(vC,1,0);
@@ -941,7 +952,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sE->Rmax(5) = RmaxFromZpCone(sE,4,kconTc,z);
     RadiusOfCurvature(kconRcurv,90.-kconTc,0.0,sE->Rmin(5),90.0,z,rmin);
     sE->Rmin(6) = rmin;
-    PrintPcon(sE);
     // Inner Core, Inserto material
     sF = new TGeoPcon("ITSsddSuportConeInsertoStesaliteF",0.,360.0,9);
     sF->Z(0)    = sE->GetZ(0);
@@ -978,7 +988,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sF->Rmax(6) = RmaxFromZpCone(sF,4,kconTc,sF->GetZ(6));
     sF->Rmax(7) = sF->GetRmax(6);
     sF->Z(8)    = ZFromRmaxpCone(sF,4,kconTc,sF->GetRmax(8),-kconCthick);
-    PrintPcon(sF);
     // Inner Core, Inserto material
     sG = new TGeoPcon("ITSsddSuportConeFoamCoreG",0.0,360.0,4);
     RadiusOfCurvature(kconRcurv+kconCthick,0.0,sF->GetZ(1),sF->GetRmin(1),
@@ -995,7 +1004,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sG->Z(3)    = sF->GetZ(5)+(kconThickness-2.0*kconCthick)*kCoskconTc;
     sG->Rmax(3) = RmaxFromZpCone(sF,4,kconTc,sG->GetZ(3));
     sG->Rmin(3) = sG->GetRmax(3);
-    PrintPcon(sG);
     //
     sH = new TGeoPcon("ITSsddSuportConeHoleH",kconPhiHole1,kcondPhiHole1,4);
     sH->Rmin(0) = kconRholeMax1;
@@ -1010,7 +1018,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sH->Rmin(3) = sH->GetRmin(2);
     sH->Rmax(3) = sH->GetRmin(3);
     sH->Z(3)    = ZFromRminpCone(sE,3,kconTc,sH->GetRmin(3));
-    PrintPcon(sH);
     //
     x = kconCthick/(0.5*(kconRholeMax1+kconRholeMin1));
     t0 = kconPhiHole1 - x*fgkRadian;
@@ -1028,7 +1035,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sI->Rmin(3) = sI->GetRmin(2);
     sI->Rmax(3) = sI->GetRmin(3);
     sI->Z(3)    = ZFromRmaxpCone(sF,4,kconTc,sI->GetRmax(3));
-    PrintPcon(sI);
     //
     sJ = new TGeoPcon("ITSsddSuportConeHoleJ",kconPhiHole2,
                                 kcondPhiHole2,4);
@@ -1044,7 +1050,6 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sJ->Rmin(3) = sJ->GetRmin(2);
     sJ->Rmax(3) = sJ->GetRmin(3);
     sJ->Z(3)    = ZFromRmaxpCone(sE,4,kconTc,sJ->GetRmax(3));
-    PrintPcon(sJ);
     //
     x = kconCthick/(0.5*(kconRholeMax2+kconRholeMin2));
     t0 = kconPhiHole2 - x*fgkRadian;
@@ -1062,30 +1067,40 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     sK->Rmin(3) = sK->GetRmin(2);
     sK->Rmax(3) = sK->GetRmin(3);
     sK->Z(3)    = ZFromRmaxpCone(sF,4,kconTc,sK->GetRmax(3));
-    PrintPcon(sK);
     //
     rot = new TGeoRotation("ITSsddRotZ30",0.0,0.0,30.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ60",0.0,0.0,60.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ90",0.0,0.0,90.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ120",0.0,0.0,120.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ150",0.0,0.0,150.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ180",0.0,0.0,180.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ210",0.0,0.0,210.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ240",0.0,0.0,240.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ270",0.0,0.0,270.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ300",0.0,0.0,300.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ330",0.0,0.0,330.0);
     rot->RegisterYourself();
+    if(GetDebug()) rot->Print();
     sL = new TGeoCompositeShape("ITS SDD Suport Cone","((((((((((((((((("
                                 "ITSsddSuportConeCarbonFiberSurfaceE -"
                                 "ITSsddSuportConeHoleH)  -"
@@ -1149,6 +1164,19 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
                                 "ITSsddSuportConeHoleK:ITSsddRotZ240) -"
                                 "ITSsddSuportConeHoleK:ITSsddRotZ300");
     //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+    if(GetDebug()){
+        sE->InspectShape();
+        sF->InspectShape();
+        sG->InspectShape();
+        sH->InspectShape();
+        sI->InspectShape();
+        sJ->InspectShape();
+        sK->InspectShape();
+        sL->InspectShape();
+        sM->InspectShape();
+        sN->InspectShape();
+    } // end if GetDebug()
+    //
     TGeoVolume *vL,*vM,*vN;
     vL = new TGeoVolume("ITSsddConeL",sL,medSDDcf);
     vL->SetVisibility(kTRUE);
@@ -1175,13 +1203,16 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
     moth->AddNode(vL,1,tran);
     rot = new TGeoRotation("",0.0,180.0*fgkDegree,0.0);
     rotran = new TGeoCombiTrans("",0.0,0.0,kconZ0,rot);
-    delete rot;// rot not explicity used in AddNode functions.
     moth->AddNode(vL,2,rotran);
     if(GetDebug()){
+        tran->Print();
+        rot->Print();
+        rotran->Print();
         vL->PrintNodes();
         vM->PrintNodes();
         vN->PrintNodes();
     } // end if
+    delete rot;// rot not explicity used in AddNode functions.
 }
 //______________________________________________________________________
 void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
@@ -1227,7 +1258,7 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     const Int_t    kcylNPin        = 2;
     //
     TGeoPcon *sCA,*sCB;
-    TGeoTube *sCC,*cD,*cE;
+    TGeoTube *sCC,*sCD,*sCE;
     //
     //Begin_Html
     /*
@@ -1239,13 +1270,14 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
       </P>
      */
     //End_Html
+    //
+    sCC = new TGeoTube("ITS SSD Thermal Centeral Rohacell CylinderCC",
+                       kcylROuter-kcylCthick-kcylFoamThick,
+                       kcylROuter-kcylCthick,0.5*kcylZFoamlength);
     sCA = new TGeoPcon("ITS SSD Thermal Centeral Carbon Fiber CylinderCA",
                        0.0,360.0,6);
     sCB = new TGeoPcon("ITS SSD Thermal Centeral Stesalite CylinderCB",
                        0.0,360.0,6);
-    sCC = new TGeoTube("ITS SSD Thermal Centeral Rohacell CylinderCC",
-                       kcylROuter-kcylCthick-kcylFoamThick,
-                       kcylROuter-kcylCthick,0.5*kcylZFoamlength);
     sCA->Z(0)    = -0.5*kcylZlength;
     sCA->Rmin(0) = kcylRInner;
     sCA->Rmax(0) = kcylROuter;
@@ -1284,15 +1316,18 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sCB->Rmin(5) = sCA->GetRmin(5) + kcylCthick;
     sCB->Rmax(5) = sCA->GetRmax(5) - kcylCthick;
     //
-    PrintPcon(sCA);
-    PrintPcon(sCB);
-    PrintTube(sCC);
-    //
-    cD = new TGeoTube("ITS SSD Thermal Centeral Cylinder M6 screwCD",
+    sCD = new TGeoTube("ITS SSD Thermal Centeral Cylinder M6 screwCD",
                       0.0,kcylRM6,0.5*kcylZM6);
-    cE = new TGeoTube("ITS SSD Thermal Centeral Cylinder PinCE",
+    sCE = new TGeoTube("ITS SSD Thermal Centeral Cylinder PinCE",
                       0.0,kcylRPin,0.5*kcylZPin);
     //
+    if(GetDebug()){
+        sCA->InspectShape();
+        sCB->InspectShape();
+        sCC->InspectShape();
+        sCD->InspectShape();
+        sCE->InspectShape();
+    } // end if GetDegut()
     TGeoVolume *vCA,*vCB,*vCC,*vCD,*vCE;
     vCA = new TGeoVolume("ITSssdCentCylCA",sCA,medSSDcf);
     vCA->SetVisibility(kTRUE);
@@ -1312,13 +1347,13 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     vCC->SetLineWidth(1);
     vCC->SetFillColor(vCC->GetLineColor());
     vCC->SetFillStyle(4050); // 50% transparent
-    vCD = new TGeoVolume("ITSssdCentCylCD",cD,medSSDss);
+    vCD = new TGeoVolume("ITSssdCentCylCD",sCD,medSSDss);
     vCD->SetVisibility(kTRUE);
     vCD->SetLineColor(1); // black
     vCD->SetLineWidth(1);
     vCD->SetFillColor(vCD->GetLineColor());
     vCD->SetFillStyle(4000); // 0% transparent
-    vCE = new TGeoVolume("ITSssdCentCylCE",cE,medSSDss);
+    vCE = new TGeoVolume("ITSssdCentCylCE",sCE,medSSDss);
     vCE->SetVisibility(kTRUE);
     vCE->SetLineColor(1); // black
     vCE->SetLineWidth(1);
@@ -1332,6 +1367,8 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
         vCA->PrintNodes();
         vCB->PrintNodes();
         vCC->PrintNodes();
+        vCD->PrintNodes();
+        vCE->PrintNodes();
     } // end if
     //
     // SSD Cone
@@ -1499,7 +1536,6 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     t = TanD(270.+kconT);
     sA0->Rmax(12)= RmaxFrom2Points(sA0,11,14,sA0->GetZ(12));
     sA0->Rmax(13)= sA0->GetRmax(12);
-    PrintPcon(sA0);
     //
     // Poly-cone Volume B. Stesalite inside volume sA0.
     // Now lets define the Inserto Stesalite 4411w material volume.
@@ -1550,7 +1586,6 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sB0->Rmax(10)= sB0->GetRmax(9);
     sB0->Rmax(12)= RmaxFrom2Points(sB0,11,14,sB0->GetZ(12));
     sB0->Rmax(13)= RmaxFrom2Points(sB0,11,14,sB0->GetZ(13));
-    PrintPcon(sB0);
     //
     // Poly-cone Volume sC0. Foam inside volume sA0.
     // Now lets define the Rohacell foam material volume.
@@ -1569,9 +1604,8 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sC0->Rmin(2) = sC0->GetRmin(3);
     sC0->Z(2)    = ZFromRminpCone(sB0,3,90.-kconT,sC0->GetRmin(2),0.0);
     sC0->Rmax(2) = RmaxFromZpCone(sB0,11,90.0-kconT,sC0->GetZ(2),0.0);
-    PrintPcon(sC0);
     //
-    // Poly-cone Volume sF.  Second Foam inside volume sA0.
+    // Poly-cone Volume sF0.  Second Foam inside volume sA0.
     // Now lets define the Rohacell foam material volume.
     sF0 = new TGeoPcon("ITSssdSuportConeRohacellCF0",0.0,360.0,4);
     sF0->Z(2)    = sB0->GetZ(8);
@@ -1586,7 +1620,6 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sF0->Rmax(3) = sF0->GetRmin(2)+(kconThick-2.0*kconCthick)*kCoskconTc;
     sF0->Rmin(3) = sF0->GetRmax(3);
     sF0->Z(3)    = ZFromRmaxpCone(sB0,11,90.-kconT,sF0->GetRmax(3),0.0);
-    PrintPcon(sF0);
     // Holes for Cables to pass Through is created by the intersection
     // between a cone segment and an Arb8, One for the volume sA0 and a
     // larger one for the volumes sB0 and sC0, so that the surface is covered
@@ -1650,23 +1683,17 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
                            (sBh2->GetVertices())[1+2*i]);
     } // end for i
     sAh3 = new TGeoBBox("ITSssdCoolingHoleAh3",0.5*kconCoolHoleWidth,
-                        0.5*kconCoolHoleHight,0.5*kconZLength);
+                        0.5*kconCoolHoleHight,kconZLength);
     sBh3 = new TGeoBBox("ITSssdCoolingHoleBh3",
                         0.5*kconCoolHoleWidth+kconCthick,
-                        0.5*kconCoolHoleHight+kconCthick,0.5*kconZLength);
+                        0.5*kconCoolHoleHight+kconCthick,kconZLength);
     sAh4 = new TGeoBBox("ITSssdMountingPostHoleAh4",0.5*kconMountHoleWidth,
                         0.5*kconMountHoleHight,0.5*kconZLength);
+    z = sF0->GetZ(0)-sF0->GetZ(sF0->GetNz()-1);
+    if(z<0.0) z = -z;
     sBh4 = new TGeoBBox("ITSssdMountingPostHoleBh4",
                         0.5*kconMountHoleWidth+kconCthick,
-                        0.5*kconMountHoleHight+kconCthick,0.5*kconZLength);
-    PrintConeSeg(sAh1);
-    PrintConeSeg(sBh1);
-    PrintArb8(sAh2);
-    PrintArb8(sBh2);
-    PrintBBox(sAh3);
-    PrintBBox(sBh3);
-    PrintBBox(sAh4);
-    PrintBBox(sBh4);
+                        0.5*kconMountHoleHight+kconCthick,0.5*z);
     // SSD Cone Wings
     sG = new TGeoConeSeg("ITSssdWingCarbonFiberSurfaceG",
                          0.5*kconWingThick,kconROuterMax-kconCthick,
@@ -1682,13 +1709,10 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
                                        (kconWingRmax-kconCthick))*fgkRadian,
                          kconWingPhi0+((0.5*kconWingWidth-kconCthick)/
                                        (kconWingRmax-kconCthick))*fgkRadian);
-    PrintConeSeg(sG);
-    PrintConeSeg(sH);
     // SDD support plate, SSD side.
     //Poly-cone Volume sT.
     sT = new TGeoTubeSeg("ITSssdsddMountingBracketT",ksupPRmin,ksupPRmax,
                          ksupPZ,ksupPPhi1,ksupPPhi2);
-    PrintTubeSeg(sT);
     //
     TGeoRotation *rotZ225 =new TGeoRotation("ITSssdConeZ225", 0.0,0.0, 22.5);
     rotZ225->RegisterYourself();
@@ -1755,9 +1779,11 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     TGeoRotation *rotZ300 = new TGeoRotation("ITSssdConeZ300",0.0,0.0,300.0);
     TGeoRotation *rotZ330 = new TGeoRotation("ITSssdConeZ330",0.0,0.0,330.0);
     vl[0] = kconMountHoleRmin+0.5*kconMountHoleHight; vl[1] = 0.0; vl[2] = 0.0;
+    for(i=0;i<sF0->GetNz();i++) vl[2] += sF0->GetZ(i);
+    vl[2] /= (Double_t)(sF0->GetNz());
     rotZ30->LocalToMaster(vl,vg);
-    TGeoCombiTrans *rotranA30 = new TGeoCombiTrans("ITSssdConeTZ30",vl[0],
-                                                      vl[1],vl[2],rotZ30);
+    TGeoCombiTrans *rotranA30 = new TGeoCombiTrans("ITSssdConeTZ30",vg[0],
+                                                      vg[1],vg[2],rotZ30);
     rotranA30->RegisterYourself();
     rotZ90->LocalToMaster(vl,vg);
     TGeoCombiTrans *rotranA90  = new TGeoCombiTrans("ITSssdConeTZ90", vg[0],
@@ -1790,6 +1816,38 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     TGeoCombiTrans *rotranBrTZ300 = new TGeoCombiTrans("ITSssdConeBrTZ300",
                                                   vg[0],vg[1],vg[2],rotZ300);
     rotranBrTZ300->RegisterYourself();
+    if(GetDebug()){
+        rotZ225->Print();
+        rotZ675->Print();
+        rotZ90->Print();
+        rotZ1125->Print();
+        rotZ1575->Print();
+        rotZ180->Print();
+        rotZ2025->Print();
+        rotZ2475->Print();
+        rotZ270->Print();
+        rotZ2925->Print();
+        rotZ3375->Print();
+        rotranA225->Print();
+        rotranA675->Print();
+        rotranA1125->Print();
+        rotranA1575->Print();
+        rotranA2025->Print();
+        rotranA2475->Print();
+        rotranA2925->Print();
+        rotranA3375->Print();
+        rotZ60->Print();
+        rotZ300->Print();
+        rotranA30->Print();
+        rotranA90->Print();
+        rotranA150->Print();
+        rotranA210->Print();
+        rotranA270->Print();
+        rotranA330->Print();
+        rotranBrTZ60->Print();
+        rotranBrTZ180->Print();
+        rotranBrTZ300->Print();
+    } // end if GetDebug()
     sA = new TGeoCompositeShape("ITSssdSuportConeCarbonFiberSurfaceA",
         "(((((((((((((((((((((((((((("
         "ITSssdSuportConeCarbonFiberSurfaceA0 +"
@@ -1797,14 +1855,14 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
         "ITSssdWingCarbonFiberSurfaceG:ITSssdConeZ90) +"
         "ITSssdWingCarbonFiberSurfaceG:ITSssdConeZ180) +"
         "ITSssdWingCarbonFiberSurfaceG:ITSssdConeZ270) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ225) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ675) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ1125) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ1575) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ2025) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ2475) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ2925) -"
-        "(ITSssdCableHoleAh1*ITSssdCableHoleAh2):ITSssdConeZ3375) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ225*ITSssdCableHoleAh2:ITSssdConeZ225)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ675*ITSssdCableHoleAh2:ITSssdConeZ675)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ1125*ITSssdCableHoleAh2:ITSssdConeZ1125)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ1575*ITSssdCableHoleAh2:ITSssdConeZ1575)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ2025*ITSssdCableHoleAh2:ITSssdConeZ2025)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ2475*ITSssdCableHoleAh2:ITSssdConeZ2475)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ2925*ITSssdCableHoleAh2:ITSssdConeZ2925)) -"
+        "(ITSssdCableHoleAh1:ITSssdConeZ3375*ITSssdCableHoleAh2:ITSssdConeZ3375)) -"
         "ITSssdCoolingHoleAh3:ITSssdConeTZ225) -"
         "ITSssdCoolingHoleAh3:ITSssdConeTZ675) -"
         "ITSssdCoolingHoleAh3:ITSssdConeTZ1125) -"
@@ -1830,14 +1888,14 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
         "ITSssdWingStaseliteH:ITSssdConeZ90) +"
         "ITSssdWingStaseliteH:ITSssdConeZ180) +"
         "ITSssdWingStaseliteH:ITSssdConeZ270) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ225) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ675) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ1125) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ1575) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ2025) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ2475) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ2925) -"
-        "(ITSssdCableHoleBh1*ITSssdCableHoleBh2):ITSssdConeZ3375) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ225*ITSssdCableHoleBh2:ITSssdConeZ225)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ675*ITSssdCableHoleBh2:ITSssdConeZ675)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ1125*ITSssdCableHoleBh2:ITSssdConeZ1125)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ1575*ITSssdCableHoleBh2:ITSssdConeZ1575)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ2025*ITSssdCableHoleBh2:ITSssdConeZ2025)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ2475*ITSssdCableHoleBh2:ITSssdConeZ2475)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ2925*ITSssdCableHoleBh2:ITSssdConeZ2925)) -"
+        "(ITSssdCableHoleBh1:ITSssdConeZ3375*ITSssdCableHoleBh2:ITSssdConeZ3375)) -"
         "ITSssdCoolingHoleBh3:ITSssdConeTZ225) -"
         "ITSssdCoolingHoleBh3:ITSssdConeTZ675) -"
         "ITSssdCoolingHoleBh3:ITSssdConeTZ1125) -"
@@ -1857,25 +1915,26 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
         "ITSssdsddMountingBracketT:ITSssdConeBrTZ300"
         );
     sC = new TGeoCompositeShape("ITSssdSuportConeRohacellC",
-      "("
-      "ITSssdSuportConeRohacellC0 -((((((("
-      "ITSssdCableHoleBh1:ITSssdConeZ225*ITSssdCableHoleBh2:ITSssdConeZ225)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ675*ITSssdCableHoleBh2:ITSssdConeZ675)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ1125*ITSssdCableHoleBh2:ITSssdConeZ1125)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ1575*ITSssdCableHoleBh2:ITSssdConeZ1575)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ2025*ITSssdCableHoleBh2:ITSssdConeZ2025)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ2475*ITSssdCableHoleBh2:ITSssdConeZ2475)-"
-      "ITSssdCableHoleBh1:ITSssdConeZ2925*ITSssdCableHoleBh2:ITSssdConeZ2925))"
+      "((((((("
+      "ITSssdSuportConeRohacellC0 -"
+      "ITSssdCableHoleBh1:ITSssdConeZ225*ITSssdCableHoleBh2:ITSssdConeZ225) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ675*ITSssdCableHoleBh2:ITSssdConeZ675) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ1125*ITSssdCableHoleBh2:ITSssdConeZ1125) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ1575*ITSssdCableHoleBh2:ITSssdConeZ1575) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ2025*ITSssdCableHoleBh2:ITSssdConeZ2025) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ2475*ITSssdCableHoleBh2:ITSssdConeZ2475) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ2925*ITSssdCableHoleBh2:ITSssdConeZ2925) -"
+      "ITSssdCableHoleBh1:ITSssdConeZ3375*ITSssdCableHoleBh2:ITSssdConeZ3375 "
         );
     sF = new TGeoCompositeShape("ITSssdSuportConeRohacellCF",
         "((((("
-        "ITSssdSuportConeRohacellCF0 -("
+        "ITSssdSuportConeRohacellCF0 -"
         "ITSssdMountingPostHoleBh4:ITSssdConeTZ30) -"
         "ITSssdMountingPostHoleBh4:ITSssdConeTZ90) -"
         "ITSssdMountingPostHoleBh4:ITSssdConeTZ150) -"
         "ITSssdMountingPostHoleBh4:ITSssdConeTZ210) -"
         "ITSssdMountingPostHoleBh4:ITSssdConeTZ270) -"
-        "ITSssdMountingPostHoleBh4:ITSssdConeTZ330)"
+        "ITSssdMountingPostHoleBh4:ITSssdConeTZ330"
         );
     //
     // In volume SCB, th Inserto Stesalite 4411w material volume, there
@@ -1884,10 +1943,8 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sD = new TGeoTube("ITS Screw+stud used to mount things to the SSD "
                       "support cone",
                       0.0,kconRScrewM5by12,kconLScrewM5by12);
-    PrintTube(sD);
     sE = new TGeoTube("ITS pin used to mount things to the "
                       "SSD support cone",0.0,kconRPinO6,kconLPinO6);
-    PrintTube(sE);
     // Bolt heads holding the SSD-SDD tube to the SSD cone.
     // Bolt -- PolyCone
     //Poly-cone Volume sQ.
@@ -1895,7 +1952,7 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sQ->Z(0)    = sA0->GetZ(12);
     sQ->Rmin(0) = 0.0;
     sQ->Rmax(0) = kcylRM6;
-    sQ->Z(1)    = sQ->GetZ(0) + kconZM6Head;
+    sQ->Z(1)    = sQ->GetZ(0) - kconZM6Head;
     sQ->Rmin(1) = 0.0;
     sQ->Rmax(1) = kcylRM6;
     sQ->Z(2)    = sQ->GetZ(1);
@@ -1904,15 +1961,39 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     sQ->Z(3)    = sQ->GetZ(0)-ksupPZ;
     sQ->Rmin(3) = 0.0;
     sQ->Rmax(3) = 0.5*kconRM6Head;
-    PrintPcon(sQ);
     // air infront of bolt (stasolit Volume K) -- Tube
     sR = new TGeoTube("ITS Air in front of bolt (in stasolit)R",
                       sQ->GetRmin(3),sQ->GetRmax(3),0.5*(ksupPZ-kconCthick));
     // air infront of bolt (carbon fiber volume I) -- Tube
     sS = new TGeoTube("ITS Air in front of Stainless Steal Screw end, M6S",
                       sQ->GetRmin(3),sQ->GetRmax(3),0.5*kconCthick);
-    PrintTube(sS);
     //
+    if(GetDebug()){
+        sA0->InspectShape();
+        sB0->InspectShape();
+        sC0->InspectShape();
+        sF0->InspectShape();
+        sQ->InspectShape();
+        sAh1->InspectShape();
+        sBh1->InspectShape();
+        sAh2->InspectShape();
+        sBh2->InspectShape();
+        sAh3->InspectShape();
+        sBh3->InspectShape();
+        sAh4->InspectShape();
+        sBh4->InspectShape();
+        sG->InspectShape();
+        sH->InspectShape();
+        sT->InspectShape();
+        sD->InspectShape();
+        sE->InspectShape();
+        sR->InspectShape();
+        sS->InspectShape();
+        sA->InspectShape();
+        sB->InspectShape();
+        sC->InspectShape();
+        sF->InspectShape();
+    } // end if GetDebug()
     TGeoVolume *vA,*vB,*vC,*vD,*vE,*vF,*vQ,*vR,*vS,*vT;
     //
     vA = new TGeoVolume("ITSssdConeA",sA,medSSDcf); // Carbon Fiber
@@ -1920,13 +2001,13 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     vA->SetLineColor(4); // blue
     vA->SetLineWidth(1);
     vA->SetFillColor(vA->GetLineColor());
-    vA->SetFillStyle(4000); // 0% transparent
+    vA->SetFillStyle(4050); // 50% transparent
     vB = new TGeoVolume("ITSssdConeB",sB,medSSDfs); // Staselite
     vB->SetVisibility(kTRUE);
     vB->SetLineColor(2); // red
     vB->SetLineWidth(1);
     vB->SetFillColor(vB->GetLineColor());
-    vB->SetFillStyle(4010); // 10% transparent
+    vB->SetFillStyle(4050); // 50% transparent
     vC = new TGeoVolume("ITSssdConeC",sC,medSSDfo); // Rohacell
     vC->SetVisibility(kTRUE);
     vC->SetLineColor(3); // green
@@ -1956,7 +2037,7 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     vQ->SetLineColor(1); // black
     vQ->SetLineWidth(1);
     vQ->SetFillColor(vQ->GetLineColor());
-    vQ->SetFillStyle(4000); // 00% transparent
+    vQ->SetFillStyle(4000); // 0% transparent
     vR = new TGeoVolume("ITSssdConeR",sR,medSSDair);
     vR->SetVisibility(kTRUE);
     vR->SetLineColor(5); // yellow
@@ -2170,9 +2251,11 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
                            0.5*kfrm24Width,kfrm24Phi0,kfrm24Phi1);
     sB24 = new TGeoBBox("ITS sup Cable tray support frame Z section B24",
                         0.5*kfrm24Thss,0.5*kfrm24Hight,0.5*kfrm24ZssSection);
-    PrintTubeSeg(sA24);
-    PrintTubeSeg(sM24);
-    PrintBBox(sB24);
+    if(GetDebug()){
+        sM24->InspectShape();
+        sA24->InspectShape();
+        sB24->InspectShape();
+    } // end if GetDebug()
     TGeoVolume *vA24,*vB24,*vM24;
     TGeoTranslation *tran;
     TGeoRotation    *rot;
@@ -2301,12 +2384,14 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
                      sD24->GetVertices()[0*2+1]+kcb24ThSwall);
     for(i=4;i<8;i++) sH24->SetVertex(i,sH24->GetVertices()[(i-4)*2+0],
                                       sH24->GetVertices()[(i-4)*2+1]); //
-    PrintArb8(sC24);
-    PrintArb8(sD24);
-    PrintTube(sE24);
-    PrintArb8(sF24);
-    PrintTube(sG24);
-    PrintArb8(sH24);
+    if(GetDebug()){
+        sC24->InspectShape();
+        sD24->InspectShape();
+        sF24->InspectShape();
+        sH24->InspectShape();
+        sE24->InspectShape();
+        sG24->InspectShape();
+    } // end if GetDebug()
     TGeoVolume *vC24,*vD24,*vE24,*vF24,*vGa24,*vGw24,*vH24;
     //
     vC24 = new TGeoVolume("ITSsupCableTrayC24",sC24,medSUPal);
@@ -2369,6 +2454,15 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     vD24->AddNode(vF24,2,tran);
     vC24->AddNode(vD24,1,0);
     vC24->AddNode(vH24,1,0);
+    if(GetDebug()){
+        vC24->PrintNodes();
+        vD24->PrintNodes();
+        vE24->PrintNodes();
+        vF24->PrintNodes();
+        vGa24->PrintNodes();
+        vGw24->PrintNodes();
+        vH24->PrintNodes();
+    } // end if GetDebug()
     //==================================================================
     //
     // RB 26 side
@@ -2417,9 +2511,12 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     sB26->SetVertex(5,sA26[1]->GetRmax1()-r,-0.5*kfrm26Width);
     sB26->SetVertex(6,sA26[1]->GetRmin1()-r,-0.5*kfrm26Width);
     sB26->SetVertex(7,sA26[1]->GetRmin1()-r,+0.5*kfrm26Width);
-    for(i=0;i<kfrm26NZsections+1;i++) PrintConeSeg(sA26[i]);
-    PrintConeSeg(sM26);
-    PrintArb8(sB26);
+    if(GetDebug()){
+        for(i=0;i<kfrm26NZsections+1;i++) sA26[i]->InspectShape();
+        sM26->InspectShape();
+        sB26->InspectShape();
+    } // end if GetDebug()
+    //
     TGeoVolume *vA26[kfrm26NZsections+1],*vB26,*vM26;
     //
     for(i=0;i<kfrm26NZsections+1;i++){
index 11b35d4..3f3a650 100644 (file)
@@ -29,12 +29,14 @@ void Displayv11(const char* filename=""){
     TControlBar *bar=new TControlBar("vertical","ITS Geometry Display",10,10);
     bar->AddButton("Set ITS Debug level 1","ISetits(0,1)","Debug on");
     bar->AddButton("Set ITS Debug level 0","ISetits(0,0)","Debug off");
-    bar->AddButton("Set ITS Theta,Phi cut on","ISetits(2,1)","Cut on");
-    bar->AddButton("Set ITS Theta,Phi cut off","ISetits(2,0)","Cut off");
+    bar->AddButton("Set Clipping on","ISetits(2,1)","Clipping on");
+    bar->AddButton("Set Cllipping off","ISetits(2,0)","Clipping off");
     bar->AddButton("Set axis on","ISetits(3,1)","Show Axis on");
     bar->AddButton("Set axis off","ISetits(3,0)","Show Axis off");
     bar->AddButton("Set perspective on","ISetits(4,1)","Perspective on");
     bar->AddButton("Set perspective off","ISetits(4,0)","Perspective off");
+    bar->AddButton("Set RayTrace on","ISetits(5,1)","Perspective on");
+    bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off");
     bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines");
     bar->AddButton("Display Geometry","Displayit()","Run Displayit");
     bar->AddButton("Display SPD Thermal Sheald","EngineeringSPDThS()",
@@ -43,6 +45,10 @@ void Displayv11(const char* filename=""){
                    "Run EngineeringSDDCone");
     bar->AddButton("Display SDD Centeral Cylinder","EngineeringSDDCylinder()",
                    "Run EngineeringSDDCylinder");
+    bar->AddButton("Display SSD Cone","EngineeringSSDCone()",
+                   "Run EngineeringSSDCone");
+    bar->AddButton("Display SSD Centeral Cylinder","EngineeringSSDCylinder()",
+                   "Run EngineeringSSDCylinder");
     bar->AddButton("Display SUP RB24 side","EngineeringSupRB24()",
                    "Run EngineeringSDDCylinder");
     bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()",
@@ -54,7 +60,7 @@ void Displayv11(const char* filename=""){
 }
 //----------------------------------------------------------------------
 Int_t ISetits(Int_t t,Int_t v){
-    static Int_t itsdebug=0,nsegments=80,cut=0,axis=1,perspective=0;
+    static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0;
 
     switch (t) {
     case 0:
@@ -77,6 +83,10 @@ Int_t ISetits(Int_t t,Int_t v){
         if(v<0) return perspective;
         perspective = v;
         break;
+    case 5:
+        if(v<0) return ray;
+        ray = v;
+        break;
     }// end switch
     return 0;
 }
@@ -133,6 +143,10 @@ void Displayit(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
     c1->cd(1);
@@ -147,6 +161,7 @@ void Displayit(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) ALIC->Raytrace();
     c1->cd(2);
     ALIC->Draw();
     TPad *p2 = c1->GetPad(2);
@@ -159,6 +174,7 @@ void Displayit(){
         view2->RotateView(60.,30.);
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view2
+    if(ISetits(5,-1)==1) ALIC->Raytrace();
     c1->cd(3);
     ALIC->Draw();
     c1->SetPhi(90.0); c1->SetTheta(90.0);
@@ -172,6 +188,7 @@ void Displayit(){
         view3->Top();
         if(ISetits(3,-1)!=0) view3->ShowAxis();
     } // end if view3
+    if(ISetits(5,-1)==1) ALIC->Raytrace();
     c1->cd(4);
     ALIC->Draw();
     TPad *p4 = c1->GetPad(4);
@@ -184,6 +201,7 @@ void Displayit(){
         view4->Side();
         if(ISetits(3,-1)!=0) view4->ShowAxis();
     } // end if view4
+    if(ISetits(5,-1)==1) ALIC->Raytrace();
     //
 }
 //----------------------------------------------------------------------
@@ -218,6 +236,10 @@ void EngineeringSPDThS(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
@@ -233,6 +255,7 @@ void EngineeringSPDThS(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) SPDThS->Raytrace();
     //
     c4->cd(2);
     SPDThS->Draw();
@@ -246,6 +269,7 @@ void EngineeringSPDThS(){
         view2->Top();
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view2
+    if(ISetits(5,-1)==1) SPDThS->Raytrace();
     //
 }
 //----------------------------------------------------------------------
@@ -279,6 +303,10 @@ void EngineeringSDDCone(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
@@ -294,6 +322,7 @@ void EngineeringSDDCone(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) SDD->Raytrace();
     //
     c2->cd(2);
     SDD->Draw();
@@ -307,6 +336,7 @@ void EngineeringSDDCone(){
         view2->Top();
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) SDD->Raytrace();
     //
 }
 //----------------------------------------------------------------------
@@ -344,6 +374,10 @@ void EngineeringSDDCylinder(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
@@ -359,7 +393,8 @@ void EngineeringSDDCylinder(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
-    arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
+    if(ISetits(5,-1)==1) SDD->Raytrace();
+    //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
     //
     c3->cd(2);
     SDD->Draw();
@@ -373,14 +408,157 @@ void EngineeringSDDCylinder(){
         view2->Top();
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view2
-    arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
-    Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
-    arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
+    if(ISetits(5,-1)==1) SDD->Raytrace();
+    //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
+    //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
+    //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
+    //
+}
+//----------------------------------------------------------------------
+void EngineeringSSDCone(){
+    // Display SSD Cone Geometry
+    // Inputs:
+    //    none.
+    // Outputs:
+    //    none.
+    // Retrurn:
+    //    none.
+    Int_t irr;
+    //
+    TGeoManager *mgr2 = gGeoManager;
+    TGeoVolume *ALIC = mgr2->GetTopVolume();
+    TCanvas *c2;
+    if(!(c2 = (TCanvas*)gROOT->FindObject("C2")))
+        c2 = new TCanvas("C2","ITS SSD Cone Geometry",900,450);
+    c2->Divide(2,1);
+    TGeoVolume *ITS,*SSD=0;
+    TGeoNode *node;
+    //
+    node = ALIC->FindNode("ITSV_1");
+    ITS = node->GetVolume();
+    node = ITS->FindNode("ITSssdConeA_1");
+    SSD = node->GetVolume();
+    //
+    mgr2->SetNsegments(ISetits(1,-1));
+    //
+    mgr2->SetVisLevel(6);
+    mgr2->SetVisOption(0);
+    //mgr2->CheckOverlaps(0.01);
+    //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
+    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+    //
+    c2->cd(1);
+    SSD->Draw();
+    TPad *p1 = c2->GetPad(1);
+    TView *view1 = p1->GetView();
+    if(view1){
+        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+        if(irr) cout <<"error="<<irr<<endl;
+        if(ISetits(4,-1)==0) view1->SetParralel();
+        else  view1->SetPerspective();
+        view1->Top();
+        if(ISetits(3,-1)!=0) view1->ShowAxis();
+    } // end if view1
+    if(ISetits(5,-1)==1) SSD->Raytrace();
+    //
+    c2->cd(2);
+    SSD->Draw();
+    TPad *p2 = c2->GetPad(2);
+    TView *view2 = p2->GetView();
+    if(view2){
+        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+        if(irr) cout <<"error="<<irr<<endl;
+        if(ISetits(4,-1)==0) view2->SetParralel();
+        else  view2->SetPerspective();
+        view2->Front();
+        if(ISetits(3,-1)!=0) view2->ShowAxis();
+    } // end if view1
+    if(ISetits(5,-1)==1) SSD->Raytrace();
+    //
+}
+//----------------------------------------------------------------------
+void EngineeringSSDCylinder(){
+    // Display SSD Cylinder Geometry
+    // Inputs:
+    //    none.
+    // Outputs:
+    //    none.
+    // Retrurn:
+    //    none.
+    Int_t irr;
+    //
+    TGeoManager *mgr2 = gGeoManager;
+    TGeoVolume *ALIC = mgr2->GetTopVolume();
+    TCanvas *c3;
+    if(!(c3 = (TCanvas*)gROOT->FindObject("C3")))
+        c3 = new TCanvas("C3","ITS SSD Cylinder Geometry",900,450);
+    c3->Divide(2,1);
+    TGeoVolume *ITS,*SSD=0;
+    TGeoNode *node;
+    TArrow *arrow=new TArrow();
+    //
+    node = ALIC->FindNode("ITSV_1");
+    ITS = node->GetVolume();
+    node = ITS->FindNode("ITSssdCentCylCA_1");
+    SSD = node->GetVolume();
+    Double_t Rmin = ((TGeoTube*)(SSD->GetShape()))->GetRmin();
+    Double_t Rmax = ((TGeoTube*)(SSD->GetShape()))->GetRmax();
+    Double_t Dz   = ((TGeoTube*)(SSD->GetShape()))->GetDz();
+    //
+    mgr2->SetNsegments(ISetits(1,-1));
+    //
+    mgr2->SetVisLevel(6);
+    mgr2->SetVisOption(0);
+    //mgr2->CheckOverlaps(0.01);
+    //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
+    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
+    //
+    c3->cd(1);
+    SSD->Draw();
+    TPad *p1 = c3->GetPad(1);
+    TView *view1 = p1->GetView();
+    if(view1){
+        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+        if(irr) cout <<"error="<<irr<<endl;
+        if(ISetits(4,-1)==0) view1->SetParralel();
+        else  view1->SetPerspective();
+        view1->Front();
+        if(ISetits(3,-1)!=0) view1->ShowAxis();
+    } // end if view1
+    if(ISetits(5,-1)==1) SSD->Raytrace();
+    //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
+    //
+    c3->cd(2);
+    SSD->Draw();
+    TPad *p2 = c3->GetPad(2);
+    TView *view2 = p2->GetView();
+    if(view2){
+        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
+        if(irr) cout <<"error="<<irr<<endl;
+        if(ISetits(4,-1)==0) view2->SetParralel();
+        else  view2->SetPerspective();
+        view2->Top();
+        if(ISetits(3,-1)!=0) view2->ShowAxis();
+    } // end if view2
+    if(ISetits(5,-1)==1) SSD->Raytrace();
+    //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
+    //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
+    //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
     //
 }
 //----------------------------------------------------------------------
 void EngineeringSupRB24(){
-    // Display SDD Cylinder Geometry
+    // Display  RB 24 side cable tray support structure Geometry
     // Inputs:
     //    none.
     // Outputs:
@@ -410,6 +588,10 @@ void EngineeringSupRB24(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
@@ -425,6 +607,7 @@ void EngineeringSupRB24(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
     //
     c4->cd(2);
     SUPRB24->Draw();
@@ -438,12 +621,13 @@ void EngineeringSupRB24(){
         view2->Top();
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view2
+    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
     //
 }
 
 //----------------------------------------------------------------------
 void EngineeringSupRB26(){
-    // Display SDD Cylinder Geometry
+    // Display RB 26 side cable tray support structure
     // Inputs:
     //    none.
     // Outputs:
@@ -473,6 +657,10 @@ void EngineeringSupRB26(){
     mgr2->SetVisOption(0);
     //mgr2->CheckOverlaps(0.01);
     //mgr2->PrintOverlaps();
+    if(ISetits(2,-1)==1){
+        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
+        mgr2->SetClippingShape(clip);
+    } // end if
     mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
     //
@@ -488,6 +676,7 @@ void EngineeringSupRB26(){
         view1->Front();
         if(ISetits(3,-1)!=0) view1->ShowAxis();
     } // end if view1
+    if(ISetits(5,-1)==1) SUPRB26->Raytrace();
     //
     c5->cd(2);
     SUPRB26->Draw();
@@ -501,5 +690,6 @@ void EngineeringSupRB26(){
         view2->Top();
         if(ISetits(3,-1)!=0) view2->ShowAxis();
     } // end if view2
+    if(ISetits(5,-1)==1) SUPRB26->Raytrace();
     //
 }