]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11GeometrySupport.cxx
Using AliLog instead of Root error messages
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySupport.cxx
index d474880bedd850d21644a315a2cf2ad0d598fe02..b289ae0025502fc4aa7d8888a730d5e8b5a372a9 100644 (file)
@@ -31,6 +31,7 @@
 #include <TGeoCone.h>
 #include <TGeoTube.h> // contaings TGeoTubeSeg
 #include <TGeoArb8.h>
+#include <TGeoXtru.h>
 #include <TGeoCompositeShape.h>
 #include <TGeoMatrix.h>
 #include "AliITSv11GeometrySupport.h"
@@ -144,8 +145,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 +153,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;
@@ -198,7 +195,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     yco[6] = 0.0;
     xci[6] = xci[5];
     yci[6] = 0.0;
-    if(GetDebug()){
+    if(AliDebugLevel()){
         Info("SPDThermalSheald","i     \t  xo  yo    \t  xi yi     \t  xbo "
              "ybo   \t   xbi ybi  \t   xco yco   \t   xci yxi");
         for(i=0;i<7;i++){
@@ -208,7 +205,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
                  xbo[i],ybo[i],xbi[i],ybi[i],
                  xco[i],yco[i],xci[i],yci[i]);
         } // end for i
-    } // end if GetDebug()
+    } // end if AliDebugLevel()
     //+++++++++++++++++++++++++
     sA1->SetVertex(0,xo[0],yo[0]);
     sA1->SetVertex(1,xo[1],yo[1]);
@@ -457,24 +454,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 +493,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 +516,38 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
                                 "ITSspdShealdWingVV:ITSspdShealdVVt2)+"
                                 "ITSspdShealdWingVV:ITSspdShealdVVt3");
     //
+    if(AliDebugLevel()){
+        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 AliDebugLevel
+    //
     TGeoManager *mgr = gGeoManager;
     medSPDcf = mgr->GetMedium("ITSspdCarbonFiber");
     medSPDfs = mgr->GetMedium("ITSspdStaselite4411w");
@@ -548,7 +558,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     TGeoVolume *vB1,*vB2,*vB3,*vBh1,*vBh2,*vBh3;
     TGeoVolume *vC1,*vC2,*vC3,*vCh1,*vCh2,*vCh3;
     TGeoVolume *vD,*vDs,*vDw,*vDws,*vM;
-    vM = new TGeoVolume("ITSspdThermalSheald",sM,medSPDair);
+    vM = new TGeoVolume("ITSspdThermalShealdMother",sM,medSPDair);
     vM->SetVisibility(kTRUE);
     vM->SetLineColor(7); // light Blue
     vM->SetLineWidth(1);
@@ -720,7 +730,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
     vM->AddNode(vB3,7,new TGeoCombiTrans(*tranb,*rot));
     vM->AddNode(vB3,8,new TGeoCombiTrans(*tranbm,*rot));
     vM->AddNode(vC3,4,new TGeoCombiTrans(*tranc,*rot));
-    if(GetDebug()){
+    if(AliDebugLevel()){
         vA1->PrintNodes();
         vAh1->PrintNodes();
         vA2->PrintNodes();
@@ -743,7 +753,7 @@ void AliITSv11GeometrySupport::SPDThermalSheald(TGeoVolume *moth){
         vDs->PrintNodes();
         vDw->PrintNodes();
         vDws->PrintNodes();
-        //vM->PrintNodes();
+        vM->PrintNodes();
     } // end if
 }
 //______________________________________________________________________
@@ -785,10 +795,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(AliDebugLevel()){
+        sA->InspectShape();
+        sB->InspectShape();
+        sC->InspectShape();
+        sD->InspectShape();
+    } // end if AliDebugLevel
     //
     TGeoManager *mgr = gGeoManager;
     medSDDcf = mgr->GetMedium("ITSssdCarbonFiber");
@@ -801,25 +813,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);
@@ -835,7 +847,7 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
         tran = new TGeoTranslation("",x,y,-z);
         vC->AddNode(vD,i+n+1,tran);
     } // end for i
-    if(GetDebug()){
+    if(AliDebugLevel()){
         vA->PrintNodes();
         vB->PrintNodes();
         vC->PrintNodes();
@@ -941,7 +953,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 +989,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 +1005,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 +1019,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 +1036,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 +1051,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 +1068,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(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ60",0.0,0.0,60.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ90",0.0,0.0,90.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ120",0.0,0.0,120.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ150",0.0,0.0,150.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ180",0.0,0.0,180.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ210",0.0,0.0,210.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ240",0.0,0.0,240.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ270",0.0,0.0,270.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ300",0.0,0.0,300.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     rot = new TGeoRotation("ITSsddRotZ330",0.0,0.0,330.0);
     rot->RegisterYourself();
+    if(AliDebugLevel()) rot->Print();
     sL = new TGeoCompositeShape("ITS SDD Suport Cone","((((((((((((((((("
                                 "ITSsddSuportConeCarbonFiberSurfaceE -"
                                 "ITSsddSuportConeHoleH)  -"
@@ -1149,6 +1165,19 @@ void AliITSv11GeometrySupport::SDDCone(TGeoVolume *moth){
                                 "ITSsddSuportConeHoleK:ITSsddRotZ240) -"
                                 "ITSsddSuportConeHoleK:ITSsddRotZ300");
     //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+    if(AliDebugLevel()){
+        sE->InspectShape();
+        sF->InspectShape();
+        sG->InspectShape();
+        sH->InspectShape();
+        sI->InspectShape();
+        sJ->InspectShape();
+        sK->InspectShape();
+        sL->InspectShape();
+        sM->InspectShape();
+        sN->InspectShape();
+    } // end if AliDebugLevel()
+    //
     TGeoVolume *vL,*vM,*vN;
     vL = new TGeoVolume("ITSsddConeL",sL,medSDDcf);
     vL->SetVisibility(kTRUE);
@@ -1175,13 +1204,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()){
+    if(AliDebugLevel()){
+        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 +1259,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 +1271,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 +1317,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(AliDebugLevel()){
+        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 +1348,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);
@@ -1328,10 +1364,12 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     vCB->AddNode(vCC,1,0);
     vCA->AddNode(vCB,1,0);
     moth->AddNode(vCA,1,0);
-    if(GetDebug()){
+    if(AliDebugLevel()){
         vCA->PrintNodes();
         vCB->PrintNodes();
         vCC->PrintNodes();
+        vCD->PrintNodes();
+        vCE->PrintNodes();
     } // end if
     //
     // SSD Cone
@@ -1499,7 +1537,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 +1587,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 +1605,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 +1621,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 +1684,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 +1710,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 +1780,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 +1817,38 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
     TGeoCombiTrans *rotranBrTZ300 = new TGeoCombiTrans("ITSssdConeBrTZ300",
                                                   vg[0],vg[1],vg[2],rotZ300);
     rotranBrTZ300->RegisterYourself();
+    if(AliDebugLevel()){
+        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 AliDebugLevel()
     sA = new TGeoCompositeShape("ITSssdSuportConeCarbonFiberSurfaceA",
         "(((((((((((((((((((((((((((("
         "ITSssdSuportConeCarbonFiberSurfaceA0 +"
@@ -1797,14 +1856,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 +1889,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 +1916,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 +1944,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 +1953,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 +1962,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(AliDebugLevel()){
+        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 AliDebugLevel()
     TGeoVolume *vA,*vB,*vC,*vD,*vE,*vF,*vQ,*vR,*vS,*vT;
     //
     vA = new TGeoVolume("ITSssdConeA",sA,medSSDcf); // Carbon Fiber
@@ -1920,13 +2002,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 +2038,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
@@ -2102,7 +2184,7 @@ void AliITSv11GeometrySupport::SSDCone(TGeoVolume *moth){
             vB->AddNode(vE,++nCopyvE,tran);
         } // end for j
     } // end for i
-    if(GetDebug()){
+    if(AliDebugLevel()){
         vA->PrintNodes();
         vB->PrintNodes();
         vC->PrintNodes();
@@ -2145,8 +2227,10 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     medSUPwater = mgr->GetMedium("ITSssdWater");
     //
     Int_t i,j;
-    Double_t x,y,z,t,t0,dt,di,r;
-    // RB 24 side
+    Double_t x,y,z,t,t0,dt,di,r,l,local[3],master[3];
+    Char_t name[100];
+    Double_t r1,r2,m;
+    // RB 24, Open Side.
     const Double_t kfrm24Z0           = 900*fgkmm;//SSup_203A.jpg
     const Double_t kfrm24Thss         = 5.0*fgkmm;
     const Double_t kfrm24Rss          = 444.5*fgkmm-kfrm24Thss; //SSup_204A.jpg
@@ -2158,38 +2242,83 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     const Int_t    kfrm24NZsections   = 4;
     const Int_t    kfrm24NPhiSections = 4;
     const Int_t    kfrm24NPhi         = 4;
-    //
-    TGeoTubeSeg *sM24,*sA24;
-    TGeoBBox *sB24;
-    sM24 = new TGeoTubeSeg("ITS sup Cable tray support frame mother volume "
-                           "M24",kfrm24Rss,kfrm24Rss+kfrm24Thss,
-                           0.5*(4.*kfrm24ZssSection+5*kfrm24Width),
-                           kfrm24Phi0,kfrm24Phi1);
-    sA24 = new TGeoTubeSeg("ITS sup Cable tray support frame radial section "
-                           "A24",kfrm24Rss,kfrm24Rss+kfrm24Thss,
-                           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);
-    TGeoVolume *vA24,*vB24,*vM24;
+    // These numbers are guessed at.
+    const Double_t kfrm24ZfracAngle   =  0.55; // frational z length to brack
+    const Double_t kfrm24Angle        =  10.0*fgkDegree; // Guessed at
+    //
+    TGeoTubeSeg *sA24[kfrm24NZsections+1];
+    TGeoArb8    *sB24[kfrm24NZsections+1];
+    TGeoPcon    *sM24;
+    Double_t zA24[kfrm24NZsections+1];
+    l = 4.*kfrm24ZssSection+5*kfrm24Width;
+    j = 0;
+    for(i=0;i<kfrm24NZsections+1;i++){
+        sprintf(name,"ITS sup Cable tray support frame radial section A24[%d]",
+                i);
+        r1 = kfrm24Rss;
+        if(i==0) zA24[i] = kfrm24Width;
+        else zA24[i] = zA24[i-1] + kfrm24ZssSection + kfrm24Width;
+        if(zA24[i]>l*kfrm24ZfracAngle){ // break, radii get larger
+            r1 = kfrm24Rss + (zA24[i]-kfrm24ZfracAngle*l)*SinD(kfrm24Angle);
+        } // end if
+        r2 = r1+kfrm24Thss;
+        sA24[i] = new TGeoTubeSeg(name,r1,r2,0.5*kfrm24Width,kfrm24Phi0,
+                                  kfrm24Phi1);
+        if(i>0)if(sA24[i-1]->GetRmin()==sA24[i]->GetRmin()) j = i;
+    } // end for i
+    for(i=0;i<kfrm24NZsections;i++){
+        sprintf(name,"ITS sup Cable tray support frame Z section B24[%d]",i);
+        sB24[i] = new TGeoArb8(name,0.5*kfrm24ZssSection);
+        sB24[i]->SetVertex(0,sA24[i]->GetRmin(),0.5*kfrm24Hight);
+        sB24[i]->SetVertex(1,sA24[i]->GetRmax(),0.5*kfrm24Hight);
+        sB24[i]->SetVertex(2,sA24[i]->GetRmin(),-0.5*kfrm24Hight);
+        sB24[i]->SetVertex(3,sA24[i]->GetRmax(),-0.5*kfrm24Hight);
+        sB24[i]->SetVertex(4,sA24[i+1]->GetRmin(),0.5*kfrm24Hight);
+        sB24[i]->SetVertex(5,sA24[i+1]->GetRmax(),0.5*kfrm24Hight);
+        sB24[i]->SetVertex(6,sA24[i+1]->GetRmin(),-0.5*kfrm24Hight);
+        sB24[i]->SetVertex(7,sA24[i+1]->GetRmax(),-0.5*kfrm24Hight);
+    } // end for i
+    sM24 = new TGeoPcon("ITS sup Cable tray support frame mother volume M24",
+                        kfrm24Phi0,kfrm24Phi1,3);
+    sM24->Z(0)    = zA24[0] -kfrm24Width;
+    sM24->Rmin(0) = sA24[0]->GetRmin();
+    sM24->Rmax(0) = sA24[0]->GetRmax();
+    sM24->Z(1)    = zA24[j];
+    sM24->Rmin(1) = sA24[j]->GetRmin();
+    sM24->Rmax(1) = sA24[j]->GetRmax();
+    sM24->Z(2)    = zA24[kfrm24NZsections] + kfrm24Width;
+    sM24->Rmin(2) = sA24[kfrm24NZsections]->GetRmin();
+    sM24->Rmax(2) = sA24[kfrm24NZsections]->GetRmax();
+    if(AliDebugLevel()){
+        sM24->InspectShape();
+        for(i=0;i<kfrm24NZsections+1;i++) sA24[i]->InspectShape();
+        for(i=0;i<kfrm24NZsections;i++)   sB24[i]->InspectShape();
+    } // end if AliDebugLevel()
+    TGeoVolume *vA24[kfrm24NZsections+1],*vB24[kfrm24NZsections],*vM24;
     TGeoTranslation *tran;
-    TGeoRotation    *rot;
+    TGeoRotation    *rot,*rot1;
     TGeoCombiTrans  *tranrot;
     //
-    vA24 = new TGeoVolume("ITSsupFrameA24",sA24,medSUPss);
-    vA24->SetVisibility(kTRUE);
-    vA24->SetLineColor(1); // black
-    vA24->SetLineWidth(1);
-    vA24->SetFillColor(vA24->GetLineColor());
-    vA24->SetFillStyle(4000); // 0% transparent
-    vB24 = new TGeoVolume("ITSsupFrameB24",sB24,medSUPss);
-    vB24->SetVisibility(kTRUE);
-    vB24->SetLineColor(1); // black
-    vB24->SetLineWidth(1);
-    vB24->SetFillColor(vB24->GetLineColor());
-    vB24->SetFillStyle(4000); // 0% transparent
+    for(i=0;i<kfrm24NZsections+1;i++){
+        vA24[i] = 0;
+        sprintf(name,"ITSsupFrameA24[%d]",i);
+        vA24[i] = new TGeoVolume(name,sA24[i],medSUPss);
+        vA24[i]->SetVisibility(kTRUE);
+        vA24[i]->SetLineColor(1); // black
+        vA24[i]->SetLineWidth(1);
+        vA24[i]->SetFillColor(vA24[i]->GetLineColor());
+        vA24[i]->SetFillStyle(4000); // 0% transparent
+    } // end for i
+    for(i=0;i<kfrm24NZsections;i++){
+        vB24[i] = 0;
+        sprintf(name,"ITSsupFrameB24[%d]",i);
+        vB24[i] = new TGeoVolume(name,sB24[i],medSUPss);
+        vB24[i]->SetVisibility(kTRUE);
+        vB24[i]->SetLineColor(1); // black
+        vB24[i]->SetLineWidth(1);
+        vB24[i]->SetFillColor(vB24[i]->GetLineColor());
+        vB24[i]->SetFillStyle(4000); // 0% transparent
+    } // end for i
     vM24 = new TGeoVolume("ITSsupFrameM24",sM24,medSUPair);
     vM24->SetVisibility(kTRUE);
     vM24->SetLineColor(7); // light blue
@@ -2197,181 +2326,572 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     vM24->SetFillColor(vM24->GetLineColor());
     vM24->SetFillStyle(4090); // 90% transparent
     //
-    Int_t ncopyA24=1,ncopyB24=1;
+    Int_t ncopyB24[kfrm24NPhiSections];
     t0 = kfrm24Phi0;
     dt = (kfrm24Phi1-kfrm24Phi0)/((Double_t)kfrm24NPhiSections);
     for(i=0;i<=kfrm24NZsections;i++){
-        di = (Double_t) i;
-        z = -sM24->GetDz()+sA24->GetDz() + di*(kfrm24ZssSection+kfrm24Width);
+        z = zA24[i];
         tran = new TGeoTranslation("",0.0,0.0,z);
-        vM24->AddNode(vA24,ncopyA24++,tran);
-        r = kfrm24Rss+sB24->GetDX();
-        z = z + sA24->GetDz()+sB24->GetDZ();
-       if(i<kfrm24NZsections) for(j=0;j<=kfrm24NPhiSections;j++){
-            t = t0 + ((Double_t)j)*dt;
-            rot = new TGeoRotation("",0.0,0.0,t);
-            y = r*SinD(t);
-            x = r*CosD(t);
-            tranrot = new TGeoCombiTrans("",x,y,z,rot);
-            delete rot;// rot not explicity used in AddNode functions.
-            vM24->AddNode(vB24,ncopyB24++,tranrot);
-        } // end for j
+        vM24->AddNode(vA24[i],1,tran);
+       if(i<kfrm24NZsections){
+           ncopyB24[i] = 1;
+           for(j=0;j<=kfrm24NPhiSections;j++){
+               t = t0 + ((Double_t)j)*dt;
+               rot = new TGeoRotation("",0.0,0.0,t);
+               tranrot = new TGeoCombiTrans("",0.0,0.0,z+sB24[i]->GetDz(),rot);
+               delete rot;// rot not explicity used in AddNode functions.
+               vM24->AddNode(vB24[i],ncopyB24[i]++,tranrot);
+           } // end for j
+       } // end if
     } // end for i
-    tran = new TGeoTranslation("",0.0,0.0,kfrm24Z0+sM24->GetDz());
+    tran = new TGeoTranslation("",0.0,0.0,kfrm24Z0);
     moth->AddNode(vM24,1,tran);
     for(i=1;i<kfrm24NPhi;i++){
         di = (Double_t) i;
         rot = new TGeoRotation("",0.0,0.0,90.0*di);
-        tranrot = new TGeoCombiTrans("",0.0,0.0,kfrm24Z0+sM24->GetDz(),rot);
+        tranrot = new TGeoCombiTrans("",0.0,0.0,kfrm24Z0,rot);
         delete rot;// rot not explicity used in AddNode functions.
         moth->AddNode(vM24,i+1,tranrot);
     } // end for i
-    if(GetDebug()){
-        vA24->PrintNodes();
-        vB24->PrintNodes();
+    if(AliDebugLevel()){
+        for(i=0;i<kfrm24NZsections+1;i++) vA24[i]->PrintNodes();
+        for(i=0;i<kfrm24NZsections;i++) vB24[i]->PrintNodes();
         vM24->PrintNodes();
     } // end if
-    // Cable support tray 
-    // Material is Aluminum
-    //const Double_t kcsb24RSin       = TMath::Max(kfrm24Rss,444.5*fgkmm);
-                                           // SSup_204A & SSup_206A
-    //const Double_t kcb24RSAirout   = 459.5*fgkmm; // SSup_204A & SSup_206A
-    //const Double_t kcb24RSout      = 494.5*fgkmm; // SSup_206A & SSup_204A
-    //const Double_t kcb24RSPPout    = 550.0*fgkmm; // SSup_206A
-    const Double_t kcb24LSPP       = 350.0*fgkmm; // SSup_202A
-    const Double_t kcb24LS         = (2693.0-900.0)*fgkmm;//SSup_205A&SSup_207A
-    const Double_t kcb24ThSwall    = 1.0*fgkmm; // SSup_209A & SSup_210A
-    const Double_t kcb24WbS        = 42.0*fgkmm; // SSup_209A & SSup_210A
-    //const Double_t kcb24WtS        = 46.9*fgkmm; // SSup_209A & SSup_210A
-    const Double_t kcb24WcapS      = 50.0*fgkmm; // SSup_209A & SSup_210A
-    //const Double_t kcb24WdS   = 41.0*fgkmm; //SSup_209A ? should be 41.469387
-    const Double_t kcb24HS         = 50.0*fgkmm; // SSup_209A & SSup_210A
-    const Double_t kcb24OutDcoolTub= 12.0*fgkmm; // SSup_209A
-    const Double_t kcb24InDcoolTub = 10.0*fgkmm; // SSup_209A
-    const Double_t kcbBlkNozInDS   = 6.0*fgkmm; // SSup_209A
-    // The following are deduced or guessed at
-    //const Double_t kcb24LtopLipS   = 6.0*fgkmm; // Guessed at.
-    //const Double_t kcb24LdLipS     = 6.0*fgkmm; // Guessed at.
-    //const Double_t kcb24HdS        = kcb24OutDcoolTub; //
-    const Double_t kcb24BlkNozZS   = 6.0*fgkmm; // Guessed at.
-    // Simplifided exterior shape. The side wall size is 2.5*thicker than
-    // it should be (due to simplification).
-    TGeoArb8 *sC24,*sD24,*sF24,*sH24;
-    TGeoTube *sE24,*sG24;
-    //
-    sC24 = new TGeoArb8("ITS Sup Cable Tray Element C24",0.5*kcb24LS);
-    sC24->SetVertex(0,-0.5*kcb24WcapS,kcb24HS+kcb24ThSwall);
-    sC24->SetVertex(1,+0.5*kcb24WcapS,kcb24HS+kcb24ThSwall);
-    sC24->SetVertex(2,+0.5*kcb24WbS,0.0);
-    sC24->SetVertex(3,-0.5*kcb24WbS,0.0);
-    sC24->SetVertex(4,-0.5*kcb24WcapS,kcb24HS+kcb24ThSwall);
-    sC24->SetVertex(5,+0.5*kcb24WcapS,kcb24HS+kcb24ThSwall);
-    sC24->SetVertex(6,+0.5*kcb24WbS,0.0);
-    sC24->SetVertex(7,-0.5*kcb24WbS,0.0);
-    sD24 = new TGeoArb8("ITS Sup Cable Tray lower Element D24",0.5*kcb24LS);
-    // Because of question about the value of WdS24, compute what it
-    // should be assuming cooling tube fixes hight of volume.
-    x = kcb24OutDcoolTub*(0.5*kcb24WcapS-0.5*kcb24WbS-kcb24ThSwall)/
-                                              (kcb24HS-kcb24ThSwall);
-    sD24->SetVertex(0,-x,kcb24OutDcoolTub+kcb24ThSwall);
-    sD24->SetVertex(1,+x,kcb24OutDcoolTub+kcb24ThSwall);
-    sD24->SetVertex(2,+0.5*kcb24WbS-kcb24ThSwall,kcb24ThSwall);
-    sD24->SetVertex(3,-0.5*kcb24WbS+kcb24ThSwall,kcb24ThSwall);
-    sD24->SetVertex(4,-x,kcb24OutDcoolTub+kcb24ThSwall);
-    sD24->SetVertex(5,+x,kcb24OutDcoolTub+kcb24ThSwall);
-    sD24->SetVertex(6,+0.5*kcb24WbS-kcb24ThSwall,kcb24ThSwall);
-    sD24->SetVertex(7,-0.5*kcb24WbS+kcb24ThSwall,kcb24ThSwall);
-    sE24 = new TGeoTube("ITS Sup Cooling Tube E24",0.5*kcb24InDcoolTub,
-                        0.5*kcb24OutDcoolTub,0.5*kcb24LS-kcb24BlkNozZS);
-    sF24 = new TGeoArb8("ITS Sup Cable Tray lower Element block F24",
-                        0.5*kcb24BlkNozZS);
-    for(i=0;i<8;i++) sF24->SetVertex(i,sD24->GetVertices()[i*2+0],
-                                      sD24->GetVertices()[i*2+1]); //
-    sG24 = new TGeoTube("ITS Sup Cooling Tube hole in block G24",
-                        0.0,0.5*kcbBlkNozInDS,0.5*kcb24BlkNozZS);
-    sH24 = new TGeoArb8("ITS Sup Cable Tray upper Element H24",
-                        0.5*(kcb24LS- kcb24LSPP));
-    sH24->SetVertex(0,sC24->GetVertices()[0*2+0]+2.*kcb24ThSwall,
-                     sC24->GetVertices()[0*2+1]-kcb24ThSwall);
-    sH24->SetVertex(1,sC24->GetVertices()[1*2+0]-2.*kcb24ThSwall,
-                     sC24->GetVertices()[1*2+1]-kcb24ThSwall);
-    sH24->SetVertex(2,sD24->GetVertices()[1*2+0]-kcb24ThSwall,
-                     sD24->GetVertices()[1*2+1]+kcb24ThSwall);
-    sH24->SetVertex(3,sD24->GetVertices()[0*2+0]+kcb24ThSwall,
-                     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);
-    TGeoVolume *vC24,*vD24,*vE24,*vF24,*vGa24,*vGw24,*vH24;
-    //
-    vC24 = new TGeoVolume("ITSsupCableTrayC24",sC24,medSUPal);
-    vC24->SetVisibility(kTRUE);
-    vC24->SetLineColor(6); //
-    vC24->SetLineWidth(1);
-    vC24->SetFillColor(vC24->GetLineColor());
-    vC24->SetFillStyle(4000); // 0% transparent
-    vD24 = new TGeoVolume("ITSsupCableTrayLowerD24",sD24,medSUPair);
-    vD24->SetVisibility(kTRUE);
-    vD24->SetLineColor(6); //
-    vD24->SetLineWidth(1);
-    vD24->SetFillColor(vD24->GetLineColor());
-    vD24->SetFillStyle(4000); // 0% transparent
-    vE24 = new TGeoVolume("ITSsupCableTrayCoolTubeE24",sE24,medSUPss);
-    vE24->SetVisibility(kTRUE);
-    vE24->SetLineColor(6); //
-    vE24->SetLineWidth(1);
-    vE24->SetFillColor(vE24->GetLineColor());
-    vE24->SetFillStyle(4000); // 0% transparent
-    vF24 = new TGeoVolume("ITSsupCableTrayBlockF24",sF24,medSUPal);
-    vF24->SetVisibility(kTRUE);
-    vF24->SetLineColor(6); //
-    vF24->SetLineWidth(1);
-    vF24->SetFillColor(vF24->GetLineColor());
-    vF24->SetFillStyle(4000); // 0% transparent
-    vGw24 = new TGeoVolume("ITSsupCableTrayCoolantWaterG24",sG24,medSUPwater);
-    vGw24->SetVisibility(kTRUE);
-    vGw24->SetLineColor(6); //
-    vGw24->SetLineWidth(1);
-    vGw24->SetFillColor(vGw24->GetLineColor());
-    vGw24->SetFillStyle(4000); // 0% transparent
-    vGa24 = new TGeoVolume("ITSsupCableTrayCoolantAirG24",sG24,medSUPair);
-    vGa24->SetVisibility(kTRUE);
-    vGa24->SetLineColor(6); //
-    vGa24->SetLineWidth(1);
-    vGa24->SetFillColor(vGa24->GetLineColor());
-    vGa24->SetFillStyle(4000); // 0% transparent
-    vH24 = new TGeoVolume("ITSsupCableTrayUpperC24",sH24,medSUPair);
-    vH24->SetVisibility(kTRUE);
-    vH24->SetLineColor(6); //
-    vH24->SetLineWidth(1);
-    vH24->SetFillColor(vH24->GetLineColor());
-    vH24->SetFillStyle(4000); // 0% transparent
-    //
-    tran = new TGeoTranslation("",-kcb24OutDcoolTub,
-                               kcb24OutDcoolTub+kcb24ThSwall,0.0);
-    vF24->AddNode(vGw24,1,tran);
-    vD24->AddNode(vE24,1,tran);
-    tran = new TGeoTranslation("",0.0,kcb24OutDcoolTub+kcb24ThSwall,0.0);
-    vF24->AddNode(vGw24,2,tran);
-    vD24->AddNode(vE24,2,tran);
-    tran = new TGeoTranslation("",+kcb24OutDcoolTub,
-                               kcb24OutDcoolTub+kcb24ThSwall,0.0);
-    vF24->AddNode(vGw24,3,tran);
-    vD24->AddNode(vE24,3,tran);
-    tran = new TGeoTranslation("",0.0,0.0,0.5*kcb24LS-0.5*kcb24BlkNozZS);
-    vD24->AddNode(vF24,1,tran);
-    tran = new TGeoTranslation("",0.0,0.0,-(0.5*kcb24LS-0.5*kcb24BlkNozZS));
-    vD24->AddNode(vF24,2,tran);
-    vC24->AddNode(vD24,1,0);
-    vC24->AddNode(vH24,1,0);
+    //==================================================================
+    // RB24 Cable Tray
+    const Double_t kct24WidthBottom   = 44.0*fgkmm; // Serv-C_208.jpg
+    const Double_t kct24WidthTop      = 46.0*fgkmm; // Serv-C_208.jpg
+    const Double_t kct24Hight         = 51.0*fgkmm; // Serv-C_208.jpg
+    const Double_t kct24AlThick       = 1.0*fgkmm; // Serv-C_208.jpg
+    const Double_t kct24CapWidth      = 46.0*fgkmm; // Serv-C_208.jpg
+    const Double_t kct24CapEar        = 5.0*fgkmm; // Guess
+    const Double_t kct24Rmin          = 455.0*fgkmm; // Serv-C_203.jpg
+    const Double_t kct24CoolSectionH  = 470.0*fgkmm-kct24Rmin;// Serv-C_203.jpg
+    const Double_t kct24CoolCableDivEar = 2.0*fgkmm; // Guess
+    const Int_t kct24Ntrays           = 48; // Serv-C_205.jpg
+    //const Int_t kct24Ntubes           = 3; // Serv-C_208.jpg
+    // Patch Pannels for RB 24 side
+    const Double_t kft24PPHightSPDFMD = 72.0*fgkmm; // Serv-C_SPD/FMD.jpg
+    const Double_t kft24PPHightSDDSSD = 104.0*fgkmm; // Serv-C_SDD/SSD.jpg
+    const Double_t kft24PPlength      = 350.0*fgkmm;//Serv-C_SPD/SDD/SSD/FMD_1.jpg
+    const Double_t kft24Theta         = 2.0*TMath::ATan2(kct24WidthBottom,
+                                                 2.0*kct24Rmin)*fgkRadian; //
+    const Int_t    kft24NPatchPannels = 20; //
+    //
+    Double_t xp[12],yp[12];
+    TGeoPcon *sMT24;
+    TGeoXtru *sT24,*sTs24,*sTl24,*sTt24,*sU24,*sVl24,*sVs24,*sW24;
+    TGeoXtru *s3PP24,*s2PP24,*sV3PP24,*sV2PP24;
+    // Outer Tray Full
+    sT24 = new TGeoXtru(3);
+    sT24->SetName("ITS sup Full Cable Tray for RB24 Side T24");
+    xp[0]  = -0.5*kct24WidthBottom;
+    yp[0]  = sM24->GetRmax(0);
+    yp[1]  = yp[0] + kct24Hight-kct24CapEar;
+    xp[1]  = Xfrom2Points(xp[0],yp[0],-0.5*kct24WidthTop+kct24AlThick,
+                          yp[0]+kct24Hight,yp[1]);
+    yp[2]  = yp[1];
+    xp[2]  = xp[1]-kct24AlThick;
+    xp[3]  = -0.5*kct24CapWidth;
+    yp[3]  = yp[0] + kct24Hight;
+    xp[4]  = -xp[3];
+    yp[4]  =  yp[3];
+    xp[5]  = -xp[2];
+    yp[5]  =  yp[2];
+    xp[6]  = -xp[1];
+    yp[6]  =  yp[1];
+    xp[7]  = -xp[0];
+    yp[7]  =  yp[0];
+    sT24->DefinePolygon(8,xp,yp);
+    sT24->DefineSection(0,sM24->GetZ(0));
+    sT24->DefineSection(1,sM24->GetZ(1));
+    sT24->DefineSection(2,zA24[kfrm24NZsections],0.0,
+                      sA24[kfrm24NZsections]->GetRmin()-sA24[0]->GetRmin());
+    // RB 24 full tray no divider (for ALG and T0-V0 cables?)
+    sW24 = new TGeoXtru(3);
+    sW24->SetName("ITS sup Cable Tray No Divider for RB24 Side W24");
+    xp[0] = sT24->GetX(0) + kct24AlThick;
+    yp[0] = sT24->GetY(0) - kct24AlThick;
+    yp[1] = sT24->GetY(3) - kct24AlThick;
+    xp[1] = Xfrom2Points(sT24->GetX(0),sT24->GetY(0),sT24->GetX(1),
+                         sT24->GetY(1),yp[1]) + kct24AlThick;
+    xp[2] = -xp[1];
+    yp[2] =  yp[1];
+    xp[3] = -xp[0];
+    yp[3] =  yp[0];
+    sW24->DefinePolygon(4,xp,yp);
+    for(i=0;i<sT24->GetNz();i++){
+        sW24->DefineSection(i,sT24->GetZ(i),sT24->GetXOffset(i),
+                            sT24->GetYOffset(i),sT24->GetScale(i));
+    } // end for i
+    // Outer Tray Short
+    sTs24 = new TGeoXtru(3);
+    sTs24->SetName("ITS sup Short Cable Tray for RB24 Side Ts24");
+    yp[0]  = sT24->GetY(0) + kct24CoolSectionH;
+    xp[0]  = Xfrom2Points(sT24->GetX(0),sT24->GetY(0),sT24->GetX(1),
+                         sT24->GetY(1),yp[0]);
+    for(i=1;i<7;i++){
+        xp[i]  = sT24->GetX(i);
+        yp[i]  = sT24->GetY(i);
+    } // end for i
+    xp[7]  = -xp[0];
+    yp[7]  =  yp[0];
+    sTs24->DefinePolygon(8,xp,yp);
+    sTs24->DefineSection(0,sM24->GetZ(0)+kft24PPlength);
+    sTs24->DefineSection(1,sM24->GetZ(1));
+    sTs24->DefineSection(2,zA24[kfrm24NZsections],sT24->GetXOffset(2),
+                         sT24->GetYOffset(2),sT24->GetScale(2));
+    // Outer Tray Long
+    sTl24 = new TGeoXtru(3);
+    sTl24->SetName("ITS sup Long Cable Tray for RB24 Side Tl24");
+    for(i=0;i<8;i++){
+    xp[i]  = sTs24->GetX(i);
+    yp[i]  = sTs24->GetY(i);
+    } // End for i
+    sTl24->DefinePolygon(8,xp,yp);
+    sTl24->DefineSection(0,sM24->GetZ(0));
+    sTl24->DefineSection(1,sM24->GetZ(1));
+    sTl24->DefineSection(2,zA24[kfrm24NZsections],0.0,
+                         sA24[kfrm24NZsections]->GetRmin()-sA24[0]->GetRmin());
+    // Outer Tray for air Tubes
+    sTt24 = new TGeoXtru(3);
+    sTt24->SetName("ITS sup Long Air Tube Tray for RB24 Side Tt24");
+    xp[0]  = sT24->GetX(0);
+    yp[0]  = sT24->GetY(0);
+    xp[1]  = sTl24->GetX(0);
+    yp[1]  = sTl24->GetY(0);
+    xp[2]  = -xp[1];
+    yp[2]  =  yp[1];
+    xp[3]  = -xp[0];
+    yp[3]  =  yp[1];
+    sTt24->DefinePolygon(4,xp,yp);
+    sTt24->DefineSection(0,sM24->GetZ(0));
+    sTt24->DefineSection(1,sM24->GetZ(1));
+    sTt24->DefineSection(2,zA24[kfrm24NZsections],0.0,
+                         sA24[kfrm24NZsections]->GetRmin()-sA24[0]->GetRmin());
+    // Inner opening for cooling (lower) {inside sTt24}
+    sU24 = new TGeoXtru(3);
+    sU24->SetName("ITS sup Cable Tray Cooling tube space RB24 Side U24");
+    xp[0] = sTt24->GetX(0) + kct24AlThick;
+    yp[0] = sTt24->GetY(0) + kct24AlThick;
+    xp[1] = sTt24->GetX(1) + kct24AlThick;
+    yp[1] = sTt24->GetY(1) - kct24AlThick;
+    xp[2] = -xp[1];
+    yp[2] =  yp[1];
+    xp[3] = -xp[0];
+    yp[3] =  yp[0];
+    sU24->DefinePolygon(4,xp,yp);
+    for(i=0;i<sTt24->GetNz();i++){
+        sU24->DefineSection(i,sTt24->GetZ(i),sTt24->GetXOffset(i),
+                            sTt24->GetYOffset(i),sTt24->GetScale(i));
+    } // end for i
+    // Inner opening for cables (upper) {inside sTl24}
+    sVl24 = new TGeoXtru(3);
+    sVl24->SetName("ITS sup Cable Tray Cable space RB24 Side Vl24");
+    xp[0] = sTl24->GetX(0)+2.0*kct24AlThick;
+    yp[0] = sTl24->GetY(0);
+    yp[1] = yp[0] + kct24CoolCableDivEar;
+    xp[1] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),
+                         sTl24->GetX(1),sTl24->GetY(1),yp[1])+2.0*kct24AlThick;
+    yp[2] = yp[1];
+    xp[2] = xp[1] - kct24AlThick;
+    yp[3] = sTl24->GetY(3) - kct24AlThick;
+    xp[3] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),sTl24->GetX(1),
+                         sTl24->GetY(1),yp[3]) + kct24AlThick;
+    xp[4] = -xp[3];
+    yp[4] =  yp[3];
+    xp[5] = -xp[2];
+    yp[5] =  yp[2];
+    xp[6] = -xp[1];
+    yp[6] =  yp[1];
+    xp[7] = -xp[0];
+    yp[7] =  yp[0];
+    sVl24->DefinePolygon(8,xp,yp);
+    for(i=0;i<sTl24->GetNz();i++){
+        sVl24->DefineSection(i,sTl24->GetZ(i),sTl24->GetXOffset(i),
+                            sTl24->GetYOffset(i),sTl24->GetScale(i));
+    } // end for i
+    // Inner opening for cables (upper) {inside sTs24}
+    sVs24 = new TGeoXtru(3);
+    sVs24->SetName("ITS sup Cable Tray Cable space RB24 Side Vs24");
+    sVs24->DefinePolygon(8,xp,yp);
+    for(i=0;i<8;i++){
+    xp[i]  = sVl24->GetX(i);
+    yp[i]  = sVl24->GetY(i);
+    } // end for i
+    for(i=0;i<sTl24->GetNz();i++){
+        sVs24->DefineSection(i,sTs24->GetZ(i),sTs24->GetXOffset(i),
+                            sTs24->GetYOffset(i),sTs24->GetScale(i));
+    } // end for i
+    //------------------------------------------------------------------
+    // Patch Pannels on RB 24 Side
+    rot  = new TGeoRotation("",0.0,0.0,-kft24Theta); // Gets Used later as well
+    rot1 = new TGeoRotation("",0.0,0.0,kft24Theta);  // Gets Used later as well
+    s3PP24 = new TGeoXtru(2);
+    s3PP24->SetName("ITS sup 3 bay pach pannel RB24 side 3PP24");
+    yp[5]  = sT24->GetY(7) + kct24CoolSectionH;
+    xp[5]  = Xfrom2Points(sT24->GetX(7),sT24->GetY(7),sT24->GetX(6),
+                          sT24->GetY(6),yp[6]);
+    yp[6]  = sT24->GetY(0) + kct24CoolSectionH;
+    xp[6]  =  Xfrom2Points(sT24->GetX(0),sT24->GetY(0),sT24->GetX(1),
+                          sT24->GetY(1),yp[9]);
+    local[0] = xp[6]; local[1] = yp[6]; local[2] = 0.0;
+    rot1->LocalToMaster(local,master);
+    xp[0]  = master[0];
+    yp[0]  = master[1];
+    local[0] = xp[6]; local[1] = yp[6] + kft24PPHightSDDSSD; local[2] = 0.0;
+    rot1->LocalToMaster(local,master);
+    xp[1]  = master[0];
+    yp[1]  = master[1];
+    xp[2]  = -xp[1];
+    yp[2]  =  yp[1];
+    xp[3]  = -xp[0];
+    yp[3]  =  yp[0];
+    local[0] = xp[6]; local[1] = yp[6]; local[2] = 0.0;
+    rot1->MasterToLocal(local,master);
+    xp[4]  = master[0];
+    yp[4]  = master[1];
+    local[0] = xp[5]; local[1] = yp[5]; local[2] = 0.0;
+    rot1->LocalToMaster(local,master);
+    xp[7]  = master[0];
+    yp[7]  = master[1];
+    s3PP24->DefinePolygon(8,xp,yp);
+    s3PP24->DefineSection(0,0.0);
+    s3PP24->DefineSection(1,kft24PPlength);
+    //
+    s2PP24 = new TGeoXtru(2);
+    s2PP24->SetName("ITS sup 2 bay pach pannel RB24 side 2PP24");
+    local[1] = sTl24->GetY(3); local[2] = 0.0;
+    local[0] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),
+                            sTl24->GetX(1),sTl24->GetY(1),local[1]);
+    rot1->LocalToMaster(local,master);
+    xp[0]  = master[0];
+    yp[0]  = master[1];
+    local[1] = sTl24->GetY(3) + kft24PPHightSPDFMD; local[2] = 0.0;
+    local[0] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),
+                            sTl24->GetX(1),sTl24->GetY(1),local[1]);
+    rot1->LocalToMaster(local,master);
+    xp[1]  = master[0];
+    yp[1]  = master[1];
+    yp[2]  = sTl24->GetY(4) + kft24PPHightSPDFMD;
+    xp[2]  = Xfrom2Points(sTl24->GetX(6),sTl24->GetY(6),
+                          sTl24->GetX(7),sTl24->GetY(7),yp[2]);
+    yp[3]  = sTl24->GetY(7);
+    xp[3]  = Xfrom2Points(sTl24->GetX(6),sTl24->GetY(6),
+                          sTl24->GetX(7),sTl24->GetY(7),yp[3]);
+    xp[4]  = sTl24->GetX(3);
+    yp[4]  = sTl24->GetY(3);
+    local[0] = sTl24->GetX(4);local[1] = sTl24->GetY(4); local[2] = 0.0;
+    rot1->LocalToMaster(local,master);
+    xp[5]  = master[0];
+    yp[5]  = master[1];
+    s2PP24->DefinePolygon(6,xp,yp);
+    s2PP24->DefineSection(0,0.0);
+    s2PP24->DefineSection(1,kft24PPlength);
+    //
+    sV3PP24 = new TGeoXtru(2);
+    sV3PP24->SetName("ITS sup Patch Pannel 3 Bay inside Rb24 side V3PP24");
+    xp[0] = s3PP24->GetX(0) + kct24AlThick;
+    yp[0] = s3PP24->GetY(0);
+    local[1] = s3PP24->GetY(6) + kft24PPHightSDDSSD - kct24AlThick;local[2]=0.;
+    local[0] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),
+                           sTl24->GetX(1),sTl24->GetY(1),local[1]);
+    rot1->LocalToMaster(local,master);
+    xp[1] = master[0];
+    yp[1] = master[1];
+    xp[2] = -xp[1];
+    yp[2] =  yp[1];
+    xp[3] = -xp[0];
+    yp[3] =  yp[0];
+    xp[4] = s3PP24->GetX(4);
+    yp[4] = s3PP24->GetY(4);
+    xp[5] = s3PP24->GetX(5);
+    yp[5] = s3PP24->GetY(5);
+    xp[6] = s3PP24->GetX(6);
+    yp[6] = s3PP24->GetY(6);
+    xp[7] = s3PP24->GetX(7);
+    yp[7] = s3PP24->GetY(7);
+    sV3PP24->DefinePolygon(8,xp,yp);
+    sV3PP24->DefineSection(0,s3PP24->GetZ(0),s3PP24->GetXOffset(0),
+                           s3PP24->GetYOffset(0),s3PP24->GetScale(0));
+    sV3PP24->DefineSection(1,s3PP24->GetZ(1),s3PP24->GetXOffset(1),
+                           s3PP24->GetYOffset(1),s3PP24->GetScale(1));
+    //
+    sV2PP24 = new TGeoXtru(2);
+    sV2PP24->SetName("ITS sup Patch Pannel 2 Bay inside Rb24 side V2PP24");
+    xp[0] = s2PP24->GetX(0) + kct24AlThick;
+    yp[0] = s2PP24->GetY(0);
+    local[1] = sTl24->GetY(3) + kft24PPHightSPDFMD - kct24AlThick;local[2]=0.;
+    local[0] = Xfrom2Points(sTl24->GetX(0),sTl24->GetY(0),
+                           sTl24->GetX(1),sTl24->GetY(1),local[1]);
+    rot1->LocalToMaster(local,master);
+    xp[1] = master[0];
+    yp[1] = master[1];
+    yp[2] = sTl24->GetY(4) + kft24PPHightSPDFMD - kct24AlThick;
+    xp[2] = Xfrom2Points(sTl24->GetX(6),sTl24->GetY(6),
+                           sTl24->GetX(7),sTl24->GetY(7),yp[2]);
+    yp[3] = sTl24->GetY(4);
+    xp[3] = Xfrom2Points(sTl24->GetX(6),sTl24->GetY(6),
+                           sTl24->GetX(7),sTl24->GetY(7),yp[3]);;
+    xp[4] = s2PP24->GetX(4);
+    yp[4] = s2PP24->GetY(4);
+    xp[5] = s2PP24->GetX(5);
+    yp[5] = s2PP24->GetY(5);
+    sV2PP24->DefinePolygon(6,xp,yp);
+    sV2PP24->DefineSection(0,s2PP24->GetZ(0),s2PP24->GetXOffset(0),
+                           s2PP24->GetYOffset(0),s2PP24->GetScale(0));
+    sV2PP24->DefineSection(1,s2PP24->GetZ(1),s2PP24->GetXOffset(1),
+                           s2PP24->GetYOffset(1),s2PP24->GetScale(1));
+    // RB 24 Tray Mother Volume
+    sMT24 = new TGeoPcon("ITS sup Cable Tray Mother Volume RB24 MT24",
+                         0.0,360.0,5);
+    sMT24->Z(0)    = 0.0;
+    sMT24->Rmin(0) = sM24->GetRmax(0);
+    sMT24->Rmax(0) = TMath::Max(TMath::Hypot(s3PP24->GetX(1),s3PP24->GetY(1)),
+                                TMath::Hypot(s2PP24->GetX(1),s2PP24->GetY(1)));
+
+    sMT24->Z(1)    = sMT24->GetZ(0) + kft24PPlength;
+    sMT24->Rmin(1) = sMT24->GetRmin(0);
+    sMT24->Rmax(1) = sMT24->GetRmax(0);
+    sMT24->Z(2)    = sMT24->GetZ(1);
+    sMT24->Rmin(2) = sMT24->GetRmin(0);
+    sMT24->Rmax(2) = sMT24->GetRmax(0) - kft24PPHightSPDFMD;
+
+    sMT24->Z(3)    = sMT24->GetZ(0) + sM24->GetZ(1) - sM24->GetZ(0);
+    sMT24->Rmin(3) = sM24->GetRmax(1);
+    sMT24->Rmax(3) = TMath::Hypot(sT24->GetX(3),sT24->GetY(3));
+    sMT24->Z(4)    = sMT24->GetZ(0) + sM24->GetZ(2)  - sM24->GetZ(0);
+    sMT24->Rmin(4) = sM24->GetRmax(2);
+    sMT24->Rmax(4) = TMath::Hypot(sT24->GetX(3)+sT24->GetXOffset(2),
+                                  sT24->GetY(3)+sT24->GetYOffset(2));
+    //
+    if(AliDebugLevel()){
+        sT24->InspectShape();
+        sW24->InspectShape();
+        sTl24->InspectShape();
+        sTs24->InspectShape();
+        sTt24->InspectShape();
+        sU24->InspectShape();
+        sVl24->InspectShape();
+        sVs24->InspectShape();
+        s3PP24->InspectShape();
+        s2PP24->InspectShape();
+        sV3PP24->InspectShape();
+        sV2PP24->InspectShape();
+        sMT24->InspectShape();
+    } // end if AliDebugLevel()
+    //
+    TGeoVolume *vC24[kct24Ntrays],*vT24[kct24Ntrays],*vPP24[kft24NPatchPannels];
+    TGeoVolume *vWTV024,*vW24,*vU24,*vUFMD24,*vVl24,*vVlFMD24,*vVs24,*vMT24;
+    TGeoVolume *vV3PP24,*vV2PP24,*vV2PPFMD24;
+    vMT24 = new TGeoVolume("ITSsupCableTrayMotherMT24",sMT24,medSUPair);
+    vMT24->SetVisibility(kTRUE);
+    vMT24->SetLineColor(8); // white
+    vMT24->SetLineWidth(1);
+    vMT24->SetFillColor(vMT24->GetLineColor());
+    vMT24->SetFillStyle(4100); // 100% transparent
+    //
+    vU24 = new TGeoVolume("ITSsupCableTrayLowerU24",sU24,medSUPair);
+    vU24->SetVisibility(kTRUE);
+    vU24->SetLineColor(7); // light blue
+    vU24->SetLineWidth(1);
+    vU24->SetFillColor(vU24->GetLineColor());
+    vU24->SetFillStyle(4090); // 90% transparent
+    vUFMD24 = new TGeoVolume("FMDsupCableTrayLowerU24",sU24,medSUPair);
+    vUFMD24->SetVisibility(kTRUE);
+    vUFMD24->SetLineColor(7); // light blue
+    vUFMD24->SetLineWidth(1);
+    vUFMD24->SetFillColor(vUFMD24->GetLineColor());
+    vUFMD24->SetFillStyle(4090); // 90% transparent
+    vVl24 = new TGeoVolume("ITSsupCableTrayUpperV24",sVl24,medSUPair);
+    vVl24->SetVisibility(kTRUE);
+    vVl24->SetLineColor(7); // light blue
+    vVl24->SetLineWidth(1);
+    vVl24->SetFillColor(vVl24->GetLineColor());
+    vVl24->SetFillStyle(4090); // 90% transparent
+    vVlFMD24 = new TGeoVolume("FMDsupCableTrayUpperVl24",sVl24,medSUPair);
+    vVlFMD24->SetVisibility(kTRUE);
+    vVlFMD24->SetLineColor(7); // light blue
+    vVlFMD24->SetLineWidth(1);
+    vVlFMD24->SetFillColor(vVlFMD24->GetLineColor());
+    vVlFMD24->SetFillStyle(4090); // 90% transparent
+    vVs24 = new TGeoVolume("ITSsupCableTrayUpperVs24",sVs24,medSUPair);
+    vVs24->SetVisibility(kTRUE);
+    vVs24->SetLineColor(7); // light blue
+    vVs24->SetLineWidth(1);
+    vVs24->SetFillColor(vVs24->GetLineColor());
+    vVs24->SetFillStyle(4090); // 90% transparent
+    vW24 = new TGeoVolume("ITSsupCableTrayUpperW24",sW24,medSUPair);
+    vW24->SetVisibility(kTRUE);
+    vW24->SetLineColor(7); // light blue
+    vW24->SetLineWidth(1);
+    vW24->SetFillColor(vW24->GetLineColor());
+    vW24->SetFillStyle(4090); // 90% transparent
+    //
+    vWTV024 = new TGeoVolume("V0supCableTrayUpperWTV024",sW24,medSUPair);
+    vWTV024->SetVisibility(kTRUE);
+    vWTV024->SetLineColor(7); // light blue
+    vWTV024->SetLineWidth(1);
+    vWTV024->SetFillColor(vWTV024->GetLineColor());
+    vWTV024->SetFillStyle(4090); // 90% transparent
+    //
+    vV3PP24 = new TGeoVolume("ITSsup3BayPachPannelInsideV3PP24",sV3PP24,medSUPair);
+    vV3PP24->SetVisibility(kTRUE);
+    vV3PP24->SetLineColor(8); // white
+    vV3PP24->SetLineWidth(1);
+    vV3PP24->SetFillColor(vV3PP24->GetLineColor());
+    vV3PP24->SetFillStyle(4100); // 100% transparent
+    vV2PP24 = new TGeoVolume("ITSsup2BayPachPannelInsideV2PP24",sV2PP24,medSUPair);
+    vV2PP24->SetVisibility(kTRUE);
+    vV2PP24->SetLineColor(8); // white
+    vV2PP24->SetLineWidth(1);
+    vV2PP24->SetFillColor(vV2PP24->GetLineColor());
+    vV2PP24->SetFillStyle(4100); // 100% transparent
+    vV2PPFMD24 = new TGeoVolume("FMDsup2BayPachPannelInsideV2PP24",sV2PP24,medSUPair);
+    vV2PPFMD24->SetVisibility(kTRUE);
+    vV2PPFMD24->SetLineColor(8); // white
+    vV2PPFMD24->SetLineWidth(1);
+    vV2PPFMD24->SetFillColor(vV2PPFMD24->GetLineColor());
+    vV2PPFMD24->SetFillStyle(4100); // 100% transparent
+    //
+    delete rot;
+    delete rot1;
+    //
+    Double_t tha[kct24Ntrays],thb[kft24NPatchPannels];
+    for(i=0;i<kct24Ntrays/4;i++) {
+        if(i==0) tha[0] = 17.0+0.5*kft24Theta;
+        else tha[i] = tha[i-1] + kft24Theta;
+        tha[i+  kct24Ntrays/4] =  90.0 + tha[i];
+        tha[i+  kct24Ntrays/2] = 180.0 + tha[i];
+        tha[i+3*kct24Ntrays/4] = 270.0 + tha[i];
+    } // end for i
+    if(AliDebugLevel()) for(i=0;i<kct24Ntrays;i++) Info("ServicesCableSupport",
+                                                  "tha[%d]=%f",i,tha[i]);
+    Char_t *airName[kct24Ntrays]={"FMD0","SDD0","SSD0","SSD1","SPD0","SPD1",
+                                  "TV00","SDD1","SDD2","SPD2","SPD3","ALG0",
+                                  "SPD4","SPD5","SSD2","SSD3","SPD6","SPD7",
+                                  "TV01","SDD3","SDD4","SPD8","SPD9","ALG1",
+                                  "FMD1","SDD5","SSD4","SSD5","SPDA","SPDB",
+                                  "TV02","SDD6","SDD7","SPDC","SPDD","ALG2",
+                                  "SPDE","SPDF","SSD6","SSD7","SPDG","SPDH",
+                                  "TV03","SDD8","SDD9","SPDI","SPDJ","ALG3"};
+    Char_t *trayName[kct24Ntrays]={"FMD0","SSD0","SSD1","SSD2","SSD3","SPD0",
+                                   "TV00","SDD0","SDD1","SDD2","SPD1","ALG0",
+                                   "SPD2","SSD4","SSD5","SSD6","SSD7","SPD3",
+                                   "TV01","SDD3","SDD4","SDD5","SPD4","ALG1",
+                                   "FMD1","SSD8","SSD9","SSDA","SSDB","SPD5",
+                                   "TV02","SDD6","SDD7","SDD8","SPD6","ALG2",
+                                   "SPD7","SSDC","SSDD","SSDE","SSDF","SPD8",
+                                   "TV03","SDD9","SDDA","SDDB","SPD9","ALG3"};
+    //
+    //Int_t ncopyW24=1,ncopyU24=1,ncopyV24=1;
+    j = 0;
+    for(i=0;i<kct24Ntrays;i++){
+        if(strncmp(trayName[i],"FMD",3)==0){
+            sprintf(name,"FMDsupCableTrayT24[%s]",trayName[i]);
+            vT24[i] = new TGeoVolume(name,sTl24,medSUPal);
+            vT24[i]->AddNode(vVlFMD24,1,0);
+        }else if(strncmp(trayName[i],"TV0",3)==0){
+            sprintf(name,"V0supCableTrayT24[%s]",trayName[i]);
+            vT24[i] = new TGeoVolume(name,sT24,medSUPal);
+            vT24[i]->AddNode(vWTV024,1,0);
+        }else if(strncmp(trayName[i],"ALG",3)==0){ // ITS Alignment Channel
+            sprintf(name,"ITSsupCableTrayT24[%s]",trayName[i]);
+            vT24[i] = new TGeoVolume(name,sT24,medSUPal);
+            vT24[i]->AddNode(vW24,1,0);
+        }else  if(strncmp(trayName[i],"SPD",3)==0){ /*ITS SPD*/
+            sprintf(name,"ITSsupCableTrayT24[%s]",trayName[i]);
+            vT24[i] = new TGeoVolume(name,sTl24,medSUPal);
+            vT24[i]->AddNode(vVl24,1,0);
+        }else { /*ITS*/
+            sprintf(name,"ITSsupCableTrayT24[%s]",trayName[i]);
+            vT24[i] = new TGeoVolume(name,sTs24,medSUPal); /// replace solid
+            vT24[i]->AddNode(vVs24,1,0);
+        } // end if
+        vT24[i]->SetVisibility(kTRUE);
+        vT24[i]->SetLineColor(6); // purple
+        vT24[i]->SetLineWidth(1);
+        vT24[i]->SetFillColor(vT24[i]->GetLineColor());
+        vT24[i]->SetFillStyle(4000); // 0% transparent
+        rot = new TGeoRotation("",0.0,0.0,tha[i]-90.0);
+        if(AliDebugLevel()) rot->Print();
+        vMT24->AddNode(vT24[i],1,rot);
+        //
+        if(strncmp(trayName[i],"FMD",3)==0){
+            sprintf(name,"FMDsupAirTubeTrayT24[%s]",airName[i]);
+            vC24[j] = new TGeoVolume(name,sTt24,medSUPair);
+            vC24[j]->AddNode(vUFMD24,1,0);
+        }else if(strncmp(trayName[i],"TV0",3)==0){
+            continue;
+        }else if(strncmp(trayName[i],"ALG",3)==0){
+            continue;
+        }else{ /*ITS*/
+            sprintf(name,"ITSsupAirTubTrayT24[%s]",airName[i]);
+            vC24[j] = new TGeoVolume(name,sTt24,medSUPair);
+            vC24[j]->AddNode(vU24,1,0);
+        } // end if
+        vC24[j]->SetVisibility(kTRUE);
+        vC24[j]->SetLineColor(6); // purple
+        vC24[j]->SetLineWidth(1);
+        vC24[j]->SetFillColor(vC24[j]->GetLineColor());
+        vC24[j]->SetFillStyle(4000); // 0% transparent
+        vMT24->AddNode(vC24[j++],1,rot);
+    } // end for i
+    for(i=0;i<kft24NPatchPannels/4;i++) {
+        if(i==0) thb[0] = 17.0+0.5*kft24Theta;
+        else{
+            if(i%2) thb[i] = thb[i-1] + 3.0*kft24Theta;
+            else thb[i] = thb[i-1] + 2.0*kft24Theta;
+        } // end if-else
+        thb[i+  kft24NPatchPannels/4] =  90.0 + thb[i];
+        thb[i+  kft24NPatchPannels/2] = 180.0 + thb[i];
+        thb[i+3*kft24NPatchPannels/4] = 270.0 + thb[i];
+    } // end for i
+    Char_t *pachName[kft24NPatchPannels]={"FMD0","SSD0","SPD0","SDD0","SPD1",
+                                          "SPD2","SSD1","SPD3","SDD1","SPD4",
+                                          "FMD1","SSD2","SPD5","SDD2","SPD6",
+                                          "SPD7","SSD3","SPD8","SDD3","SPD9"};
+    for(i=0;i<kft24NPatchPannels;i++){
+        if(strncmp(pachName[i],"FMD",3)==0){
+            sprintf(name,"FMDsupPatchPannelPP24[%s]",pachName[i]);
+            vPP24[i] = new TGeoVolume(name,s2PP24,medSUPal);
+            vPP24[i]->AddNode(vV2PPFMD24,1,0);
+        }else if(strncmp(pachName[i],"SPD",3)==0){ /*ITS SPD*/
+            sprintf(name,"ITSsupPathcPannelPP24[%s]",pachName[i]);
+            vPP24[i] = new TGeoVolume(name,s2PP24,medSUPal);
+            vPP24[i]->AddNode(vV2PP24,1,0);
+        }else { /*ITS*/
+            sprintf(name,"ITSsupPathcPannelPP24[%s]",pachName[i]);
+            vPP24[i] = new TGeoVolume(name,s3PP24,medSUPal); /// replace solid
+            vPP24[i]->AddNode(vV3PP24,1,0);
+        } // end if
+        vPP24[i]->SetVisibility(kTRUE);
+        vPP24[i]->SetLineColor(6); // purple
+        vPP24[i]->SetLineWidth(1);
+        vPP24[i]->SetFillColor(vPP24[i]->GetLineColor());
+        vPP24[i]->SetFillStyle(4000); // 0% transparent
+        rot = new TGeoRotation("",0.0,0.0,thb[i]-90.0);
+        if(AliDebugLevel()) rot->Print();
+        vMT24->AddNode(vPP24[i],1,rot);
+    } // end for i
+    tran = new TGeoTranslation("",0.0,0.0,kfrm24Z0);
+    moth->AddNode(vMT24,1,tran);
+    if(AliDebugLevel()){
+        for(i=0;i<kct24Ntrays;i++) vT24[i]->PrintNodes();
+        for(i=0;i<kct24Ntrays-8;i++) vC24[i]->PrintNodes();
+        vU24->PrintNodes();
+        vUFMD24->PrintNodes();
+        vVl24->PrintNodes();
+        vVlFMD24->PrintNodes();
+        vVs24->PrintNodes();
+        vW24->PrintNodes();
+        vWTV024->PrintNodes();
+        vMT24->PrintNodes();
+    } // end if
     //==================================================================
     //
-    // RB 26 side
+    // RB 26, Muon Absober side
     const Double_t kfrm26Z0           = -900*fgkmm;//SSup_203A.jpg
     const Double_t kfrm26Thss         = 5.0*fgkmm;
     const Double_t kfrm26R0ss         = 444.5*fgkmm-kfrm26Thss; //SSup_204A.jpg
@@ -2386,8 +2906,6 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
     const Int_t    kfrm26NPhi         = 4;
     TGeoConeSeg *sA26[kfrm26NZsections+1],*sM26;//Cylinderial support structure
     TGeoArb8     *sB26; // Cylinderial support structure
-    Char_t name[100];
-    Double_t r1,r2,m;
 
     sM26 = new TGeoConeSeg("ITS sup Cable tray support frame mother volume "
                           "M26",0.5*(4.*kfrm26ZssSection+5*kfrm26Width),
@@ -2417,9 +2935,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(AliDebugLevel()){
+        for(i=0;i<kfrm26NZsections+1;i++) sA26[i]->InspectShape();
+        sM26->InspectShape();
+        sB26->InspectShape();
+    } // end if AliDebugLevel()
+    //
     TGeoVolume *vA26[kfrm26NZsections+1],*vB26,*vM26;
     //
     for(i=0;i<kfrm26NZsections+1;i++){
@@ -2473,7 +2994,7 @@ void AliITSv11GeometrySupport::ServicesCableSupport(TGeoVolume *moth){
         delete rot; // rot not explicity used in AddNode functions.
         moth->AddNode(vM26,i+1,tranrot);
     } // end for i
-    if(GetDebug()){
+    if(AliDebugLevel()){
         for(i=0;i<kfrm26NZsections+1;i++) vA26[i]->PrintNodes();
         vB26->PrintNodes();
         vM26->PrintNodes();