]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSvPPRcoarseasymm.cxx
Source file of the ITS Kalman tracking
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRcoarseasymm.cxx
index ccbe1bd9b5ac296a8087df28f5c9d5aa18f63a74..fba51e9a07c7e044db1a0fa5c0c0c044412e441f 100644 (file)
 
 /*
 $Log$
+Revision 1.10  2000/10/27 17:19:50  barbera
+Position of rails w.r.t. the interaction point corrected.
+
+Revision 1.9  2000/10/27 13:31:29  barbera
+Rails between ITS and TPC added.
+
+Revision 1.8  2000/10/27 13:03:08  barbera
+Small changes in the SPD volumes and materials
+
+Revision 1.6  2000/10/16 14:45:37  barbera
+Mother volume ITSD modified to avoid some overlaps
+
+Revision 1.5  2000/10/16 13:49:15  barbera
+Services volumes slightly modified and material added following Pierluigi Barberis' information
+
 Revision 1.4  2000/10/07 15:33:07  barbera
 Small corrections to the ITSV mother volume
 
@@ -217,15 +232,15 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
 ////////////////////////////////////////////////////////////////////////
   
   //INNER RADII OF THE SILICON LAYERS 
-  Float_t rl[6]    = { 3.95,7.,15.,24.,38.1,43.5765 };   
+  Float_t rl[6]    = { 3.8095,7.,15.,24.,38.1,43.5765 };   
   //THICKNESSES OF LAYERS (in % radiation length)
-  Float_t drl[6]   = { 1.03,1.03+0.36,0.34+0.94,0.95,0.34+0.91,0.87 };   
+  Float_t drl[6]   = { 1.03,1.03,0.94,0.95,0.91,0.87 };   
   //HALF LENGTHS OF LAYERS  
-  Float_t dzl[6]   = { 14.344,14.344,25.1,32.1,49.405,55.27 };
+  Float_t dzl[6]   = { 14.35,14.35,25.1,32.1,49.405,55.27 };
   //LENGTHS OF END-LADDER BOXES (ALL INCLUDED)
-  Float_t dzb[6]   = { 17.,17.,15.,17.,12.,11. };   // check !!  
+  Float_t dzb[6]   = { 12.4,12.4,19.,19.,12.,11. };   
   //THICKNESSES OF END-LADDER BOXES (ALL INCLUDED)
-  Float_t drb[6]   = { 1.5,1.5,5.,5.,3.,3. };   // check spd and ssd !! !!      
+  Float_t drb[6]   = { rl[1]-rl[0],0.2,5.,5.,3.,3. };        
 
  
   Float_t dits[3], rlim, zmax;
@@ -268,11 +283,11 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   dgh[15] = -77.2;
   dgh[16] = 44.9;
   dgh[17] = 56.1;
-  dgh[18] = -36.;
-  dgh[19] = 3.29;
+  dgh[18] = -40.;
+  dgh[19] = 3.295;
   dgh[20] = 56.1; 
-  dgh[21] = 36.;
-  dgh[22] = 3.29;
+  dgh[21] = 40.;
+  dgh[22] = 3.295;
   dgh[23] = 56.1;
   dgh[24] = 77.2;
   dgh[25] = 44.9;
@@ -304,16 +319,16 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   dgh[0] = 0.;
   dgh[1] = 360.;
   dgh[2] = 4.;
-  dgh[3] = -76.708;
+  dgh[3] = -77.2;
   dgh[4] = 45.;
   dgh[5] = 56.;
-  dgh[6] = -36.;     
+  dgh[6] = -40.;     
   dgh[7] = 3.3;
   dgh[8] = 56.;
-  dgh[9] = 36.;
+  dgh[9] = 40.;
   dgh[10] = 3.3;
   dgh[11] = 56.;
-  dgh[12] = 76.708;
+  dgh[12] = 77.2;
   dgh[13] = 45.;
   dgh[14] = 56.;
   gMC->Gsvolu("ITSD", "PCON", idtmed[275], dgh, 15);
@@ -322,7 +337,7 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   //     invisible 
   
   gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  gMC->Gsatt("ITSD", "SEEN", 0);
+  //gMC->Gsatt("ITSD", "SEEN", 0);
   
   //     ITS LAYERS (SILICON) 
   
@@ -398,79 +413,68 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
     gMC->Gsposp("IEL3", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
   }    
     
-  //    DEFINE END CONES FOR SPD
-  
-  pcits[0] = 0.;
-  pcits[1] = 360.;
-  pcits[2] = 2.;
-  pcits[3] = 32.;
-  pcits[4] = (rl[0]+rl[1])/2.;
-  pcits[5] = (rl[0]+rl[1])/2.+2.;   // check thickness !!
-  pcits[6] = 39.4;
-  pcits[7] = 10.065;
-  pcits[8] = 10.065+2.;          // check thickness !!
-  gMC->Gsvolu("ICO1", "PCON", idtmed[209], pcits, 9);    
-  AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
-  gMC->Gspos("ICO1", 1, "ITSD", 0., 0., 0., 0, "ONLY");
-  gMC->Gspos("ICO1", 2, "ITSD", 0., 0., 0., idrotm[200], "ONLY");
 
+  //    DEFINE THERMAL SCREEN FOR SPD
+  
+  pcits[0] = 8.3;
+  pcits[1] = 8.5;
+  pcits[2] = 42.5;
+  gMC->Gsvolu("ICY1", "TUBE", idtmed[274], pcits, 3);   
+  gMC->Gspos("ICY1", 1, "ITSD", 0., 0., 0., 0, "ONLY");
 
   //    DEFINE END CONES FOR SDD
   
-  pcits[0] = 0.;
-  pcits[1] = 360.;
-  pcits[2] = 2.;
-  pcits[3] = 39.4;
-  pcits[4] = 10.065;
-  pcits[5] = 10.065+3.0;   // check thickness !!
-  pcits[6] = 57.4;
-  pcits[7] = 28.;
-  pcits[8] = 28.+3.0;    // check thickness !!
-  gMC->Gsvolu("ICO2", "PCON", idtmed[238], pcits, 9);    
-  gMC->Gspos("ICO2", 1, "ITSD", 0., 0., 0., 0, "ONLY");
-  gMC->Gspos("ICO2", 2, "ITSD", 0., 0., 0., idrotm[200], "ONLY");
+  pcits[0] = (59.-42.5)/2.;
+  pcits[1] = 8.5;
+  pcits[2] = 8.5+3.0;
+  pcits[3] = 28.;
+  pcits[4] = 28.+3.0;  
+  gMC->Gsvolu("ICO1", "CONE", idtmed[274], pcits, 5);    
+  AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
+  gMC->Gspos("ICO1", 1, "ITSD", 0., 0., 42.5+pcits[0], 0, "ONLY");
+  gMC->Gspos("ICO1", 2, "ITSD", 0., 0., -(42.5+pcits[0]), idrotm[200], "ONLY");
 
+  //    DEFINE CYLINDER BETWEEN SDD AND SSD
+  
+  pcits[0] = (59.5-0.13/2.)/2.;
+  pcits[1] = (59.5+0.13/2.)/2.;
+  pcits[2] = 57.;
+  gMC->Gsvolu("ICY2", "TUBE", idtmed[274], pcits, 3);   
+  gMC->Gspos("ICY2", 1, "ITSD", 0., 0., 0., 0, "ONLY"); 
 
   //    DEFINE END CONES FOR SSD
   
-  pcits[0] = 0.;
-  pcits[1] = 360.;
-  pcits[2] = 2.;
-  pcits[3] = 57.4;
-  pcits[4] = 28.0;
-  pcits[5] = 28.0+4.0;   // check thickness !!
-  pcits[6] = 74.0;
-  pcits[7] = 47.;
-  pcits[8] = 47.+4.0;    // check thickness !!
-  gMC->Gsvolu("ICO3", "PCON", idtmed[264], pcits, 9);    
-  gMC->Gspos("ICO3", 1, "ITSD", 0., 0., 0., 0, "ONLY");
-  gMC->Gspos("ICO3", 2, "ITSD", 0., 0., 0., idrotm[200], "ONLY");
-
+  pcits[0] = (74.-59.)/2.;
+  pcits[1] = 28.;
+  pcits[2] = 28.+4.;
+  pcits[3] = 47.;
+  pcits[4] = 47.+4.;
+  gMC->Gsvolu("ICO2", "CONE", idtmed[274], pcits, 5);    
+  gMC->Gspos("ICO2", 1, "ITSD", 0., 0., 59.+pcits[0], 0, "ONLY");
   
   // SERVICES
-  
-  
-  // --- Define cables at the end of the ITS cones - copper part
+    
+  // --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
   
   dgh[0] = 45.;
   dgh[1] = 45.+1.0;
-  dgh[2] = 9.75;
+  dgh[2] = 9.5;
   
   gMC->Gsvolu("ICCU", "TUBE", idtmed[279], dgh, 3);  
-  gMC->Gspos("ICCU", 1, "ITSV", 0., 0., 86.45, 0, "ONLY");
-  gMC->Gspos("ICCU", 2, "ITSV", 0., 0., -86.45, idrotm[200], "ONLY");
+  gMC->Gspos("ICCU", 1, "ITSV", 0., 0., 86.7, 0, "ONLY");
+  gMC->Gspos("ICCU", 2, "ITSV", 0., 0., -86.7, idrotm[200], "ONLY");
   
-  // --- Define cables at the end of the ITS cones - carbon part
+  // --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
   
   dgh[0] = 45.+1.0;
   dgh[1] = 45.+1.0+1.5;
-  dgh[2] = 9.75;
+  dgh[2] = 9.5;
   
   gMC->Gsvolu("ICCC", "TUBE", idtmed[274], dgh, 3);  
-  gMC->Gspos("ICCC", 1, "ITSV", 0., 0., 86.45, 0, "ONLY");
-  gMC->Gspos("ICCC", 2, "ITSV", 0., 0., -86.45, idrotm[200], "ONLY");  
+  gMC->Gspos("ICCC", 1, "ITSV", 0., 0., 86.7, 0, "ONLY");
+  gMC->Gspos("ICCC", 2, "ITSV", 0., 0., -86.7, idrotm[200], "ONLY");  
   
-  // --- Define patch panels at the end of the ITS cones
+  // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
   
   dgh[0] = 45.;
   dgh[1] = 56.;
@@ -480,120 +484,227 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   gMC->Gspos("IPAN", 1, "ITSV", 0., 0., 98.45, 0, "ONLY");  
   gMC->Gspos("IPAN", 2, "ITSV", 0., 0., -98.45, idrotm[200], "ONLY"); 
   
-  // --- Define cables/cooling below the TPC on the absorber side - copper part
-  
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = 100.7;
-  dgh[4] = 45.2;
-  dgh[5] = 45.2+1.0;    
-  dgh[6] = xltpc;
-  dgh[7] = 61.8;
-  dgh[8] = 61.8+1.0;    
-  gMC->Gsvolu("ICU1", "PCON", idtmed[279], dgh, 9);   
-  gMC->Gspos("ICU1", 1, "ITSV", 0., 0., 0., 0, "ONLY");  
-  
-  // --- Define cables/cooling below the TPC on the absorber side - carbon part
-  
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = 100.7;
-  dgh[4] = 45.2+1.0;
-  dgh[5] = 45.2+1.0+1.5;    
-  dgh[6] = xltpc;
-  dgh[7] = 61.8+1.0;
-  dgh[8] = 61.8+1.0+1.5;    
-  gMC->Gsvolu("ICC1", "PCON", idtmed[274], dgh, 9);   
-  gMC->Gspos("ICC1", 1, "ITSV", 0., 0., 0., 0, "ONLY");    
-  
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
+  //     UPPER PART
+  
+  dgh[0] = (xltpc-100.7)/2.;
+  dgh[1] = 45.2;
+  dgh[2] = 45.2+1.0;
+  dgh[3] = 61.8;
+  dgh[4] = 61.8+1.0;
+  dgh[5] = 12.;    
+  dgh[6] = 168.;
+  gMC->Gsvolu("ICU1", "CONS", idtmed[279], dgh, 7);    
+  gMC->Gspos("ICU1", 1, "ITSV", 0., 0., 100.7+dgh[0], 0, "ONLY");    
+  
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
+  //     LOWER PART
+  
+  dgh[0] = (xltpc-100.7)/2.;
+  dgh[1] = 45.2;
+  dgh[2] = 45.2+1.0;
+  dgh[3] = 61.8;
+  dgh[4] = 61.8+1.0;
+  dgh[5] = 192.;    
+  dgh[6] = 348.;
+  gMC->Gsvolu("ICU2", "CONS", idtmed[279], dgh, 7);    
+  gMC->Gspos("ICU2", 1, "ITSV", 0., 0., 100.7+dgh[0], 0, "ONLY");  
+
+   // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
+   //     UPPER PART
+  
+  dgh[0] = (xltpc-100.7)/2.;
+  dgh[1] = 45.2+1.0;
+  dgh[2] = 45.2+1.0+1.5;
+  dgh[3] = 61.8+1.0;
+  dgh[4] = 61.8+1.0+1.5;
+  dgh[5] = 12.;    
+  dgh[6] = 168.;  
+  gMC->Gsvolu("ICC1", "CONS", idtmed[274], dgh, 7);    
+  gMC->Gspos("ICC1", 1, "ITSV", 0., 0., 100.7+dgh[0], 0, "ONLY");   
+  
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
+  //     LOWER PART
+  
+  dgh[0] = (xltpc-100.7)/2.;
+  dgh[1] = 45.2+1.0;
+  dgh[2] = 45.2+1.0+1.5;
+  dgh[3] = 61.8+1.0;
+  dgh[4] = 61.8+1.0+1.5;
+  dgh[5] = 192.;    
+  dgh[6] = 348.;  
+  gMC->Gsvolu("ICC2", "CONS", idtmed[274], dgh, 7);    
+  gMC->Gspos("ICC2", 1, "ITSV", 0., 0., 100.7+dgh[0], 0, "ONLY");  
+   
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
+  //     UPPER PART
+    
+  dgh[0] = 62.5;
+  dgh[1] = 74.5;
+  dgh[2] = 0.5;
+  dgh[3] = 12.;
+  dgh[4] = 168.;
+  gMC->Gsvolu("ICU3", "TUBS", idtmed[279], dgh, 5);    
+  gMC->Gspos("ICU3", 1, "ITSV", 0., 0., xltpc+1.5+dgh[2], 0, "ONLY");  
+
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
+  //     LOWER PART
+  
+  dgh[0] = 62.5;
+  dgh[1] = 74.5;
+  dgh[2] = 0.5;
+  dgh[3] = 192.;
+  dgh[4] = 348.;
+  gMC->Gsvolu("ICU4", "TUBS", idtmed[279], dgh, 5);    
+  gMC->Gspos("ICU4", 1, "ITSV", 0., 0., xltpc+1.5+dgh[2], 0, "ONLY");      
+     
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
+  //     UPPER PART
+
+  dgh[0] = 62.5;
+  dgh[1] = 74.5;
+  dgh[2] = 0.75;
+  dgh[3] = 12.;
+  dgh[4] = 168.;
+  gMC->Gsvolu("ICC3", "TUBS", idtmed[274], dgh, 5);    
+  gMC->Gspos("ICC3", 1, "ITSV", 0., 0., xltpc+dgh[2], 0, "ONLY");   
+    
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
+  //     LOWER PART
+
+  dgh[0] = 62.5;
+  dgh[1] = 74.5;
+  dgh[2] = 0.75;
+  dgh[3] = 192.;
+  dgh[4] = 348.;
+  gMC->Gsvolu("ICC4", "TUBS", idtmed[274], dgh, 5);    
+  gMC->Gspos("ICC4", 1, "ITSV", 0., 0., xltpc+dgh[2], 0, "ONLY");  
   
-  // --- Define cables/cooling behind the TPC on the absorber side - copper part
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
+  //     THE ABSORBER - COPPER PART - UPPER PART
   
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = xltpc+1.5;
-  dgh[4] = 62.5;
-  dgh[5] = 74.5;
-  dgh[6] = xltpc+1.5+1.0;
-  dgh[7] = 62.5;
-  dgh[8] = 74.5;    
-  gMC->Gsvolu("ICU2", "PCON", idtmed[279], dgh, 9);   
-  gMC->Gspos("ICU2", 1, "ITSV", 0., 0., 0., 0, "ONLY");  
-  
-  // --- Define cables/cooling behind the TPC on the absorber side - carbon part
+  dgh[0] = 45.;
+  dgh[1] = 45.+1.0;
+  dgh[2] = (xltpc-100.7+1.5)/2.;
+  dgh[3] = 12.;
+  dgh[4] = 168.;
+  gMC->Gsvolu("ICU5", "TUBS", idtmed[279], dgh, 5);   
+  gMC->Gspos("ICU5", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");  
   
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = xltpc;
-  dgh[4] = 62.5;
-  dgh[5] = 74.5;
-  dgh[6] = xltpc+1.5;
-  dgh[7] = 62.5;
-  dgh[8] = 74.5;    
-  gMC->Gsvolu("ICC2", "PCON", idtmed[274], dgh, 9);   
-  gMC->Gspos("ICC2", 1, "ITSV", 0., 0., 0., 0, "ONLY");    
-  
-  // --- Define cables/cooling below the TPC on the other side w.r.t. 
-  //     the absorber - copper part
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
+  //     THE ABSORBER - COPPER PART - LOWER PART
   
   dgh[0] = 45.;
   dgh[1] = 45.+1.0;
   dgh[2] = (xltpc-100.7+1.5)/2.;
-  gMC->Gsvolu("ICU3", "TUBE", idtmed[279], dgh, 3);   
-  gMC->Gspos("ICU3", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");  
+  dgh[3] = 192.;
+  dgh[4] = 348.;  
+  gMC->Gsvolu("ICU6", "TUBS", idtmed[279], dgh, 5);   
+  gMC->Gspos("ICU6", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");    
   
-  // --- Define cables/cooling below the TPC on the other side w.r.t. 
-  //     the absorber - carbon part
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
+  //     THE ABSORBER - CARBON PART - UPPER PART
   
   dgh[0] = 45.+1.0;
   dgh[1] = 45.+1.0+1.5;
   dgh[2] = (xltpc-100.7)/2.;
-  gMC->Gsvolu("ICC3", "TUBE", idtmed[274], dgh, 3);   
-  gMC->Gspos("ICC3", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");    
-
+  dgh[3] = 12.;
+  dgh[4] = 168.;  
+  gMC->Gsvolu("ICC5", "TUBS", idtmed[274], dgh, 5);   
+  gMC->Gspos("ICC5", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");   
   
-  // --- Define cables/cooling behind the TPC on other side w.r.t. the absorber
-  // copper part
+  // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
+  //     THE ABSORBER - CARBON PART - LOWER PART
   
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = -xltpc-1.5-1.0;
-  dgh[4] = 45.;
-  dgh[5] = 74.5;
-  dgh[6] = -xltpc-1.5;
-  dgh[7] = 45.;
-  dgh[8] = 74.5;    
-  gMC->Gsvolu("ICU4", "PCON", idtmed[279], dgh, 9);   
-  gMC->Gspos("ICU4", 1, "ITSV", 0., 0., 0., 0, "ONLY");  
+  dgh[0] = 45.+1.0;
+  dgh[1] = 45.+1.0+1.5;
+  dgh[2] = (xltpc-100.7)/2.;
+  dgh[3] = 192.;
+  dgh[4] = 348.;  
+  gMC->Gsvolu("ICC6", "TUBS", idtmed[274], dgh, 5);   
+  gMC->Gspos("ICC6", 1, "ITSV", 0., 0., -100.7-dgh[2], 0, "ONLY");      
+
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
+  //     COPPER PART - UPPER PART
+    
+  dgh[0] = 45.;
+  dgh[1] = 74.5;
+  dgh[2] = 0.5;
+  dgh[3] = 12.;
+  dgh[4] = 168.;  
+  gMC->Gsvolu("ICU7", "TUBS", idtmed[279], dgh, 5);   
+  gMC->Gspos("ICU7", 1, "ITSV", 0., 0., -(xltpc+1.5+dgh[2]), 0, "ONLY");  
+  
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
+  //     COPPER PART - LOWER PART
+    
+  dgh[0] = 45.;
+  dgh[1] = 74.5;
+  dgh[2] = 0.5;
+  dgh[3] = 192.;
+  dgh[4] = 348.;   
+  gMC->Gsvolu("ICU8", "TUBS", idtmed[279], dgh, 5);   
+  gMC->Gspos("ICU8", 1, "ITSV", 0., 0., -(xltpc+1.5+dgh[2]), 0, "ONLY");      
+    
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
+  //     CARBON PART - UPPER PART
   
-  // --- Define cables/cooling behind the TPC on other side w.r.t. the absorber
-  // carbon part
+  dgh[0] = 45.+1.0;
+  dgh[1] = 74.5;
+  dgh[2] = 0.75;
+  dgh[3] = 12.;
+  dgh[4] = 168.;   
+  gMC->Gsvolu("ICC7", "TUBS", idtmed[274], dgh, 5);   
+  gMC->Gspos("ICC7", 1, "ITSV", 0., 0., -(xltpc+dgh[2]), 0, "ONLY"); 
   
-  dgh[0] = 0.;
-  dgh[1] = 360.;
-  dgh[2] = 2.;
-  dgh[3] = -xltpc-1.5;
-  dgh[4] = 45.+1.0;
-  dgh[5] = 74.5;
-  dgh[6] = -xltpc;
-  dgh[7] = 45.+1.0;
-  dgh[8] = 74.5;    
-  gMC->Gsvolu("ICC4", "PCON", idtmed[274], dgh, 9);   
-  gMC->Gspos("ICC4", 1, "ITSV", 0., 0., 0., 0, "ONLY");    
+  // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
+  //     CARBON PART - LOWER PART
+  
+  dgh[0] = 45.+1.0;
+  dgh[1] = 74.5;
+  dgh[2] = 0.75;
+  dgh[3] = 192.;
+  dgh[4] = 348.;     
+  gMC->Gsvolu("ICC8", "TUBS", idtmed[274], dgh, 5);   
+  gMC->Gspos("ICC8", 1, "ITSV", 0., 0., -(xltpc+dgh[2]), 0, "ONLY");        
     
-  // --- Define hook to the TPC on other side w.r.t. the absorber
+  // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - UPPER PART
   
   dgh[0] = 74.5;
   dgh[1] = 79.5;
   dgh[2] = 2.5;
-  gMC->Gsvolu("IHOK", "TUBE", idtmed[284], dgh, 3);  
-  gMC->Gspos("IHOK", 1, "ITSV", 0., 0., -xltpc-dgh[2], 0, "ONLY");    
+  dgh[3] = 12.;
+  dgh[4] = 168.;    
+  gMC->Gsvolu("IHK1", "TUBS", idtmed[284], dgh, 5);  
+  gMC->Gspos("IHK1", 1, "ITSV", 0., 0., -xltpc-dgh[2], 0, "ONLY");   
+  
+  // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - LOWER PART
+  
+  dgh[0] = 74.5;
+  dgh[1] = 79.5;
+  dgh[2] = 2.5;
+  dgh[3] = 192.;
+  dgh[4] = 348.;    
+  gMC->Gsvolu("IHK2", "TUBS", idtmed[284], dgh, 5);  
+  gMC->Gspos("IHK2", 1, "ITSV", 0., 0., -xltpc-dgh[2], 0, "ONLY");      
+  
+  // --- DEFINE RAILS BETWEEN THE ITS AND THE TPC
+  
+  dgh[0] = 0.85;
+  dgh[1] = 10.;
+  dgh[2] = 190.;  
+  gMC->Gsvolu("IRAI", "BOX ", idtmed[285], dgh, 3);   
+  gMC->Gspos("IRAI", 1, "ITSV", 53., 0., -69.5, 0, "ONLY");
+  gMC->Gspos("IRAI", 2, "ITSV", -53., 0., -69.5, 0, "ONLY");        
+
+  // --- DEFINE CYLINDERS HOLDING RAILS BETWEEN THE ITS AND THE TPC
   
+  dgh[0] = 58.;
+  dgh[1] = 59.;
+  dgh[2] = 0.2;  //check the thickness  
+  gMC->Gsvolu("ICYL", "TUBE", idtmed[285], dgh, 3);   
+  gMC->Gspos("ICYL", 1, "ITSV", 0., 0., 74., 0, "ONLY");
+  gMC->Gspos("ICYL", 2, "ITSV", 0., 0., -74., idrotm[200], "ONLY");     
   
   // --- Outputs the geometry tree in the EUCLID/CAD format 
   
@@ -670,7 +781,7 @@ void AliITSvPPRcoarseasymm::CreateMaterials(){
   AliMaterial(6, "SPD Al$",     26.981539, 13., 2.6989, 8.9, 999);
   AliMixture( 7, "SPD Water $", awat, zwat, denswat, -2, wwat);
   AliMixture( 8, "SPD Freon$",  afre, zfre, densfre, -2, wfre);
-  AliMaterial(9, "SPD End ladder$",28.0855, 14., 2.33, 9.36, 999); // check !!!!
+  AliMaterial(9, "SPD End ladder$", 55.845, 26., 7.87/10., 1.76*10., 999); 
   AliMaterial(10, "SPD cone$",28.0855, 14., 2.33, 9.36, 999);       // check !!!!
   // ** 
   AliMedium(0, "SPD Si$",       0, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);