Obsolete ITS setup
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 19 Nov 2003 16:45:32 +0000 (16:45 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 19 Nov 2003 16:45:32 +0000 (16:45 +0000)
14 files changed:
ITS/AliITSv1.cxx [deleted file]
ITS/AliITSv1.h [deleted file]
ITS/AliITSv5.cxx [deleted file]
ITS/AliITSv5.h [deleted file]
ITS/AliITSv5asymm.cxx [deleted file]
ITS/AliITSv5asymm.h [deleted file]
ITS/AliITSv5symm.cxx [deleted file]
ITS/AliITSv5symm.h [deleted file]
ITS/AliITSvPPRasymm.cxx [deleted file]
ITS/AliITSvPPRasymm.h [deleted file]
ITS/AliITSvPPRcoarsesymm.cxx [deleted file]
ITS/AliITSvPPRcoarsesymm.h [deleted file]
ITS/AliITSvPPRsymm.cxx [deleted file]
ITS/AliITSvPPRsymm.h [deleted file]

diff --git a/ITS/AliITSv1.cxx b/ITS/AliITSv1.cxx
deleted file mode 100644 (file)
index f4037f3..0000000
+++ /dev/null
@@ -1,865 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//                                                                           //
-//  Inner Traking System version 1                                           //
-//  This class contains the base procedures for the Inner Tracking System    //
-//                                                                           //
-// Authors: R. Barbera, A. Morsch.
-// version 1.
-// Created  1998.
-//
-//  NOTE: THIS IS THE COARSE pre.TDR geometry of the ITS. THIS WILL NOT WORK
-// with the geometry or module classes or any analysis classes. You are 
-// strongly encouraged to uses AliITSv5.
-//                                                                           //
-///////////////////////////////////////////////////////////////////////////////
-#include <TCanvas.h>
-#include <TClonesArray.h>
-#include <TFile.h>    // only required for Tracking function?
-#include <TGeometry.h>
-#include <TMath.h>
-#include <TNode.h>
-#include <TObjArray.h>
-#include <TObjString.h>
-#include <TRandom.h>
-#include <TTUBE.h>
-#include <TVector.h>
-#include <TVirtualMC.h>
-
-#include "AliConst.h"
-#include "AliITShit.h"
-#include "AliITSv1.h"
-#include "AliMagF.h"
-#include "AliRun.h"
-
-ClassImp(AliITSv1)
-//_____________________________________________________________________________
-AliITSv1::AliITSv1() {
-////////////////////////////////////////////////////////////////////////
-//    Standard default constructor for the ITS version 1.
-////////////////////////////////////////////////////////////////////////
-
-  fIdN    = 0;
-  fIdName = 0;
-  fIdSens = 0;
-  fMajorVersion = 1;
-  fMinorVersion = -1;
-}
-//_____________________________________________________________________________
-AliITSv1::AliITSv1(const char *name, const char *title) : AliITS(name, title){
-////////////////////////////////////////////////////////////////////////
-//    Standard constructor for the ITS version 1.
-////////////////////////////////////////////////////////////////////////
-
-    fIdN    = 6;
-/*
-//  TObjArray of TObjStrings
-    fIdName = new TObjArray(fIdN);
-    fIdName->AddAt(new TObjString("ITS1"),0);
-    fIdName->AddAt(new TObjString("ITS2"),1);
-    fIdName->AddAt(new TObjString("ITS3"),2);
-    fIdName->AddAt(new TObjString("ITS4"),3);
-    fIdName->AddAt(new TObjString("ITS5"),4);
-    fIdName->AddAt(new TObjString("ITS6"),5);
-*/
-//  Array of TStrings.
-    fIdName    = new TString[fIdN];
-    fIdName[0] = "ITS1";
-    fIdName[1] = "ITS2";
-    fIdName[2] = "ITS3";
-    fIdName[3] = "ITS4";
-    fIdName[4] = "ITS5";
-    fIdName[5] = "ITS6";
-    fIdSens    = new Int_t[fIdN];
-    for (Int_t i=0;i<fIdN;i++) fIdSens[i] = 0;
-    fMajorVersion = 1;
-    fMinorVersion = 1;
-
-}
-//____________________________________________________________________________
-AliITSv1::AliITSv1(const AliITSv1 &source) : AliITS(source){
-////////////////////////////////////////////////////////////////////////
-//     Copy Constructor for ITS version 1.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
-    printf("Not allowed to copy AliITSv1\n");
-    return;
-}
-//_____________________________________________________________________________
-AliITSv1& AliITSv1::operator=(const AliITSv1 &source){
-////////////////////////////////////////////////////////////////////////
-//    Assignment operator for the ITS version 1.
-////////////////////////////////////////////////////////////////////////
-  if(&source == this) return *this;
-    printf("Not allowed to copy AliITSv1\n");
-  return *this;
-}
-//_____________________________________________________________________________
-AliITSv1::~AliITSv1() {
-////////////////////////////////////////////////////////////////////////
-//    Standard destructor for the ITS version 1.
-////////////////////////////////////////////////////////////////////////
-}
-
-//__________________________________________________________________________
-void AliITSv1::BuildGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    Geometry builder for the ITS version 1.
-////////////////////////////////////////////////////////////////////////
-    TNode *node, *top;
-    const int kColorITS=kYellow;
-    //
-    top = gAlice->GetGeometry()->GetNode("alice");
-
-    new TTUBE("S_layer1","Layer1 of ITS","void",3.9,3.9+0.05475,12.25);
-    top->cd();
-    node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer2","Layer2 of ITS","void",7.6,7.6+0.05475,16.3);
-    top->cd();
-    node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer3","Layer3 of ITS","void",14,14+0.05288,21.1);
-    top->cd();
-    node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
-    top->cd();
-    node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
-    top->cd();
-    node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
-    top->cd();
-    node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-}
-//_____________________________________________________________________________
-void AliITSv1::CreateGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    This routine defines and Creates the geometry for version 1 of the ITS.
-////////////////////////////////////////////////////////////////////////
-  
-  Float_t drcer[6] = { 0.,0.,.08,.08,0.,0. };           //CERAMICS THICKNESS
-  Float_t drepx[6] = { 0.,0.,0.,0.,.5357,.5357 };       //EPOXY THICKNESS
-  Float_t drpla[6] = { 0.,0.,0.,0.,.1786,.1786 };       //PLASTIC THICKNESS
-  Float_t dzb[6]   = { 0.,0.,15.,15.,4.,4. };           //LENGTH OF BOXES
-  Float_t dphi[6]  = { 72.,72.,72.,72.,50.6,45. };      //COVERED PHI-RANGE FOR LAYERS 1-6
-  Float_t rl[6]    = { 3.9,7.6,14.,24.,40.,45. };       //SILICON LAYERS INNER RADIUS
-  Float_t drl[6]   = { .755,.755,.809,.809,.7,.7 };     //THICKNESS OF LAYERS (in % radiation length)
-  Float_t dzl[6]   = { 12.67,16.91,20.85,29.15,45.11,50.975 };//HALF LENGTH OF LAYERS
-  Float_t drpcb[6] = { 0.,0.,.06,.06,0.,0. };           //PCB THICKNESS
-  Float_t drcu[6]  = { 0.,0.,.0504,.0504,.0357,.0357 }; //COPPER THICKNESS
-  Float_t drsi[6]  = { 0.,0.,.006,.006,.3571,.3571 };   //SILICON THICKNESS
-
-  Float_t drca, dzfc;
-  Int_t i, nsec;
-  Float_t rend, drcatpc, dzco, zend, dits[3], rlim, drsu, zmax;
-  Float_t zpos, dzco1, dzco2;
-  Float_t drcac[6], acone, dphii;
-  Float_t pcits[15], xltpc;
-  Float_t rzcone, rstep, r0, z0, acable, fp, dz, zi, ri;
-  Int_t idrotm[399];
-  Float_t dgh[15];
-  
-  Int_t *idtmed = fIdtmed->GetArray()-199;
-  
-  //     CONVERT INTO CM (RL(SI)=9.36 CM) 
-  for (i = 0; i < 6; ++i) {
-    drl[i] = drl[i] / 100. * 9.36;
-  }
-  
-  //     SUPPORT ENDPLANE THICKNESS 
-  drsu = 2.*0.06+1./20;  // 1./20. is 1 cm of honeycomb (1/20 carbon density);
-  
-  //     CONE BELOW TPC 
-  
-  drcatpc = 1.2/4.;
-  
-  //     CABLE THICKNESS (CONICAL CABLES CONNECTING THE LAYERS) 
-
-  drca = 0.2;
-  
-  //     ITS CONE ANGLE 
-  
-  acone  = 45.;
-  acone *= kDegrad;
-  
-  //     CONE RADIUS AT 1ST LAYER 
-  
-  rzcone = 30.;
-  
-  //     FIELD CAGE HALF LENGTH 
-  
-  dzfc  = 64.5;
-  rlim  = 48.;
-  zmax  = 80.;
-  xltpc = 275.;
-  
-  
-  //     PARAMETERS FOR SMALL (1/2) ITS 
-/*
-  for (i = 0; i < 6; ++i) {
-    dzl[i] /= 2.;
-    dzb[i] /= 2.;
-  }
-  drca     /= 2.;
-  acone    /= 2.;
-  drcatpc /= 2.;
-  rzcone   /= 2.;
-  dzfc     /= 2.;
-  zmax     /= 2.;
-  xltpc    /= 2.;
-*/
-  acable    = 15.;  
-  
-  
-  //     EQUAL DISTRIBUTION INTO THE 6 LAYERS 
-  rstep = drcatpc / 6.;
-  for (i = 0; i < 6; ++i) {
-    drcac[i] = (i+1) * rstep;
-  }
-
-  //     NUMBER OF PHI SECTORS 
-  
-  nsec = 5;
-  
-  //     PACK IN PHI AS MUCH AS POSSIBLE 
-  //     NOW PACK USING THICKNESS 
-  
-  for (i = 0; i < 6; ++i) {
-    
-//     PACKING FACTOR 
-    fp = rl[5] / rl[i];
-    
-    //      PHI-PACKING NOT SUFFICIENT ? 
-    
-    if (dphi[i]/45 < fp) {
-      drcac[i] = drcac[i] * fp * 45/dphi[i];
-    }
-  }
-  
-  
-  // --- Define ghost volume containing the six layers and fill it with air 
-  
-  dgh[0] = 3.5;
-  dgh[1] = 50.;
-  dgh[2] = zmax;
-  gMC->Gsvolu("ITSV", "TUBE", idtmed[275], dgh, 3);
-  
-  // --- Place the ghost volume in its mother volume (ALIC) and make it 
-  //     invisible 
-  
-  gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
-  gMC->Gsatt("ITSV", "SEEN", 0);
-  
-  //     ITS LAYERS (SILICON) 
-  
-  dits[0] = rl[0];
-  dits[1] = rl[0] + drl[0];
-  dits[2] = dzl[0];
-  gMC->Gsvolu("ITS1", "TUBE", idtmed[199], dits, 3);
-  gMC->Gspos("ITS1", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  dits[0] = rl[1];
-  dits[1] = rl[1] + drl[1];
-  dits[2] = dzl[1];
-  gMC->Gsvolu("ITS2", "TUBE", idtmed[199], dits, 3);
-  gMC->Gspos("ITS2", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  dits[0] = rl[2];
-  dits[1] = rl[2] + drl[2];
-  dits[2] = dzl[2];
-  gMC->Gsvolu("ITS3", "TUBE", idtmed[224], dits, 3);
-  gMC->Gspos("ITS3", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  dits[0] = rl[3];
-  dits[1] = rl[3] + drl[3];
-  dits[2] = dzl[3];
-  gMC->Gsvolu("ITS4", "TUBE", idtmed[224], dits, 3);
-  gMC->Gspos("ITS4", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  dits[0] = rl[4];
-  dits[1] = rl[4] + drl[4];
-  dits[2] = dzl[4];
-  gMC->Gsvolu("ITS5", "TUBE", idtmed[249], dits, 3);
-  gMC->Gspos("ITS5", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  dits[0] = rl[5];
-  dits[1] = rl[5] + drl[5];
-  dits[2] = dzl[5];
-  gMC->Gsvolu("ITS6", "TUBE", idtmed[249], dits, 3);
-  gMC->Gspos("ITS6", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  
-  //    ELECTRONICS BOXES 
-  
-  //     PCB (layer #3 and #4) 
-  
-  gMC->Gsvolu("IPCB", "TUBE", idtmed[233], dits, 0);
-  for (i = 2; i < 4; ++i) {
-    dits[0] = rl[i];
-    dits[1] = dits[0] + drpcb[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("IPCB", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("IPCB", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     COPPER (layer #3 and #4) 
-  
-  gMC->Gsvolu("ICO2", "TUBE", idtmed[234], dits, 0);
-  for (i = 2; i < 4; ++i) {
-    dits[0] = rl[i] + drpcb[i];
-    dits[1] = dits[0] + drcu[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("ICO2", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ICO2", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     CERAMICS (layer #3 and #4) 
-  
-  gMC->Gsvolu("ICER", "TUBE", idtmed[235], dits, 0);
-  for (i = 2; i < 4; ++i) {
-    dits[0] = rl[i] + drpcb[i] + drcu[i];
-    dits[1] = dits[0] + drcer[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("ICER", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ICER", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     SILICON (layer #3 and #4) 
-  
-  gMC->Gsvolu("ISI2", "TUBE", idtmed[226], dits, 0);
-  for (i = 2; i < 4; ++i) {
-    dits[0] = rl[i] + drpcb[i] + drcu[i] + drcer[i];
-    dits[1] = dits[0] + drsi[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("ISI2", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ISI2", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     PLASTIC (G10FR4) (layer #5 and #6) 
-  
-  gMC->Gsvolu("IPLA", "TUBE", idtmed[262], dits, 0);
-  for (i = 4; i < 6; ++i) {
-    dits[0] = rl[i];
-    dits[1] = dits[0] + drpla[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("IPLA", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("IPLA", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     COPPER (layer #5 and #6) 
-  
-  gMC->Gsvolu("ICO3", "TUBE", idtmed[259], dits, 0);
-  for (i = 4; i < 6; ++i) {
-    dits[0] = rl[i] + drpla[i];
-    dits[1] = dits[0] + drcu[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("ICO3", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ICO3", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     EPOXY (layer #5 and #6) 
-  
-  gMC->Gsvolu("IEPX", "TUBE", idtmed[262], dits, 0);
-  for (i = 4; i < 6; ++i) {
-    dits[0] = rl[i] + drpla[i] + drcu[i];
-    dits[1] = dits[0] + drepx[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("IEPX", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("IEPX", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //     SILICON (layer #5 and #6) 
-  
-  gMC->Gsvolu("ISI3", "TUBE", idtmed[251], dits, 0);
-  for (i = 4; i < 6; ++i) {
-    dits[0] = rl[i] + drpla[i] + drcu[i] + drepx[i];
-    dits[1] = dits[0] + drsi[i];
-    dits[2] = dzb[i] / 2.;
-    zpos = dzl[i] + dits[2];
-    gMC->Gsposp("ISI3", i-1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ISI3", i+1, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  //    SUPPORT 
-  
-  gMC->Gsvolu("ISUP", "TUBE", idtmed[274], dits, 0);
-  for (i = 0; i < 6; ++i) {
-    dits[0] = rl[i];
-    if (i < 5) dits[1] = rl[i+1];
-    else       dits[1] = rlim;
-    dits[2] = drsu / 2.;
-    zpos = dzl[i] + dzb[i] + dits[2];
-    gMC->Gsposp("ISUP", i+1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ISUP", i+7, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  
-  // CABLES (HORIZONTAL) 
-  
-  gMC->Gsvolu("ICHO", "TUBE", idtmed[278], dits, 0);
-  for (i = 0; i < 6; ++i) {
-    dits[0] = rl[i];
-    dits[1] = dits[0] + drca;
-    dits[2] = (rzcone + TMath::Tan(acone) * (rl[i] - rl[0]) - (dzl[i]+ dzb[i] + drsu)) / 2.;
-    zpos = dzl[i - 1] + dzb[i] + drsu + dits[2];
-    gMC->Gsposp("ICHO", i+1, "ITSV", 0., 0., zpos, 0, "ONLY", dits, 3);
-    gMC->Gsposp("ICHO", i+7, "ITSV", 0., 0.,-zpos, 0, "ONLY", dits, 3);
-  }
-  //    DEFINE A CONICAL GHOST VOLUME FOR THE PHI SEGMENTATION 
-  pcits[0] = 0.;
-  pcits[1] = 360.;
-  pcits[2] = 2.;
-  pcits[3] = rzcone;
-  pcits[4] = 3.5;
-  pcits[5] = rl[0];
-  pcits[6] = pcits[3] + TMath::Tan(acone) * (rlim - rl[0]);
-  pcits[7] = rlim - rl[0] + 3.5;
-  pcits[8] = rlim;
-  gMC->Gsvolu("ICMO", "PCON", idtmed[275], pcits, 9);
-  AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
-  gMC->Gspos("ICMO", 1, "ITSV", 0., 0., 0., 0, "ONLY");
-  gMC->Gspos("ICMO", 2, "ITSV", 0., 0., 0., idrotm[200], "ONLY");
-  
-  //     DIVIDE INTO NSEC PHI-SECTIONS 
-  
-  gMC->Gsdvn("ICMD", "ICMO", nsec, 2);
-  gMC->Gsatt("ICMO", "SEEN", 0);
-  gMC->Gsatt("ICMD", "SEEN", 0);
-  
-  //     CONICAL CABLES 
-  
-  pcits[2] = 2.;
-  gMC->Gsvolu("ICCO", "PCON", idtmed[278], pcits, 0);
-  for (i = 1; i < 6; ++i) {
-    pcits[0] = -dphi[i] / 2.;
-    pcits[1] = dphi[i];
-    if (i < 5) {
-      dzco = TMath::Tan(acone) * (rl[i+1] - rl[i]);
-    } else {
-      dzco1 = zmax - (rzcone + TMath::Tan(acone) * (rl[5] - rl[0])) -2.;
-      dzco2 = (rlim - rl[5]) * TMath::Tan(acone);
-      if (rl[5] + dzco1 / TMath::Tan(acone) < rlim) {
-       dzco = dzco1;
-      } else {
-       dzco = dzco2;
-      }
-    }
-    pcits[3] = rzcone + TMath::Tan(acone) * (rl[i] - rl[0]);
-    pcits[4] = rl[i] - drcac[i] / TMath::Sin(acone);
-    pcits[5] = rl[i];
-    pcits[6] = pcits[3] + dzco;
-    pcits[7] = rl[i] + dzco / TMath::Tan(acone) - drcac[i] / TMath::Sin(acone);
-    pcits[8] = rl[i] + dzco / TMath::Tan(acone);
-    
-    gMC->Gsposp("ICCO", i, "ICMD", 0., 0., 0., 0, "ONLY", pcits, 9);
-    
-  }
-  zend = pcits[6];
-  rend = pcits[8];
-  
-  //  CONICAL CABLES BELOW TPC 
-  
-  //    DEFINE A CONICAL GHOST VOLUME FOR THE PHI SEGMENTATION 
-  pcits[0] = 0.;
-  pcits[1] = 360.;
-  pcits[2] = 2.;
-  pcits[3] = zend;
-  pcits[5] = rend;
-  pcits[4] = pcits[5] - drcatpc;
-  pcits[6] = xltpc;
-  pcits[8] = pcits[4] + (pcits[6] - pcits[3]) * TMath::Tan(acable * kDegrad);
-  pcits[7] = pcits[8] - drcatpc;
-  AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
-  gMC->Gsvolu("ICCM", "PCON", idtmed[275], pcits, 9);
-  gMC->Gspos("ICCM", 1, "ALIC", 0., 0., 0., 0, "ONLY");
-  gMC->Gspos("ICCM", 2, "ALIC", 0., 0., 0., idrotm[200], "ONLY");
-  gMC->Gsdvn("ITMD", "ICCM", nsec, 2);
-  gMC->Gsatt("ITMD", "SEEN", 0);
-  gMC->Gsatt("ICCM", "SEEN", 0);
-  
-  //     NOW PLACE SEGMENTS WITH DECREASING PHI SEGMENTS INTO THE 
-  //     GHOST-VOLUME 
-  
-  pcits[2] = 2.;
-  gMC->Gsvolu("ITTT", "PCON", idtmed[278], pcits, 0);
-  r0 = rend;
-  z0 = zend;
-  dz = (xltpc - zend) / 9.;
-  for (i = 0; i < 9; ++i) {
-    zi = z0 + i*dz + dz / 2.;
-    ri = r0 + (zi - z0) * TMath::Tan(acable * kDegrad);
-    dphii = dphi[5] * r0 / ri;
-    pcits[0] = -dphii / 2.;
-    pcits[1] = dphii;
-    pcits[3] = zi - dz / 2.;
-    pcits[5] = r0 + (pcits[3] - z0) * TMath::Tan(acable * kDegrad);
-    pcits[4] = pcits[5] - drcatpc;
-    pcits[6] = zi + dz / 2.;
-    pcits[8] = r0 + (pcits[6] - z0) * TMath::Tan(acable * kDegrad);
-    pcits[7] = pcits[8] - drcatpc;
-    
-    gMC->Gsposp("ITTT", i+1, "ITMD", 0., 0., 0., 0, "ONLY", pcits, 9);
-  }
-  
-  // --- Outputs the geometry tree in the EUCLID/CAD format 
-  
-  if (fEuclidOut) {
-    gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
-  }
-}
-//_____________________________________________________________________________
-void AliITSv1::CreateMaterials(){
-////////////////////////////////////////////////////////////////////////
-  //
-  // Create ITS materials
-  //     This function defines the default materials used in the Geant
-  // Monte Carlo simulations for the geometries AliITSv1 and AliITSv3.
-  // In general it is automatically replaced by
-  // the CreatMaterials routine defined in AliITSv?. Should the function
-  // CreateMaterials not exist for the geometry version you are using this
-  // one is used. See the definition found in AliITSv5 or the other routine
-  // for a complete definition.
-  //
-  // Water H2O
-  Float_t awat[2]  = { 1.00794,15.9994 };
-  Float_t zwat[2]  = { 1.,8. };
-  Float_t wwat[2]  = { 2.,1. };
-  Float_t denswat  = 1.;
-  // Freon
-  Float_t afre[2]  = { 12.011,18.9984032 };
-  Float_t zfre[2]  = { 6.,9. };
-  Float_t wfre[2]  = { 5.,12. };
-  Float_t densfre  = 1.5;
-  // Ceramics
-  //     94.4% Al2O3 , 2.8% SiO2 , 2.3% MnO , 0.5% Cr2O3 
-  Float_t acer[5]  = { 26.981539,15.9994,28.0855,54.93805,51.9961 };
-  Float_t zcer[5]  = { 13.,8.,14.,25.,     24. };
-  Float_t wcer[5]  = { .49976,1.01233,.01307,      .01782,.00342 };
-  Float_t denscer  = 3.6;
-  //
-  //     60% SiO2 , 40% G10FR4 
-  // PC board
-  Float_t apcb[3]  = { 28.0855,15.9994,17.749 };
-  Float_t zpcb[3]  = { 14.,8.,8.875 };
-  Float_t wpcb[3]  = { .28,.32,.4 };
-  Float_t denspcb  = 1.8;
-  // POLYETHYL
-  Float_t apoly[2] = { 12.01,1. };
-  Float_t zpoly[2] = { 6.,1. };
-  Float_t wpoly[2] = { .33,.67 };
-  // SERVICES
-  Float_t zserv[4] = { 1.,6.,26.,29. };
-  Float_t aserv[4] = { 1.,12.,55.8,63.5 };
-  Float_t wserv[4] = { .014,.086,.42,.48 };
-  
-  Int_t  isxfld  = gAlice->Field()->Integ();
-  Float_t sxmgmx = gAlice->Field()->Max();
-  
-  
-  // --- Define the various materials for GEANT --- 
-  
-  //  200-224 --> Silicon Pixel Detectors (detectors, chips, buses, cooling,..)
-  
-  AliMaterial(0, "SPD Si$",      28.0855, 14., 2.33, 9.36, 999);
-  AliMaterial(1, "SPD Si chip$", 28.0855, 14., 2.33, 9.36, 999);
-  AliMaterial(2, "SPD Si bus$",  28.0855, 14., 2.33, 9.36, 999);
-  AliMaterial(3, "SPD C$",       12.011,   6., 2.265,18.8, 999);
-  // v. dens 
-  AliMaterial(4, "SPD Air$",    14.61, 7.3, .001205, 30423., 999);
-  AliMaterial(5, "SPD Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
-  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);
-  // ** 
-  AliMedium(0, "SPD Si$",      0, 1,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(1, "SPD Si chip$", 1, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(2, "SPD Si bus$",  2, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(3, "SPD C$",       3, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(4, "SPD Air$",     4, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(5, "SPD Vacuum$",  5, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
-  AliMedium(6, "SPD Al$",      6, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(7, "SPD Water $",  7, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(8, "SPD Freon$",   8, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  
-  //  225-249 --> Silicon Drift Detectors (detectors, chips, buses, cooling,..)
-  
-  AliMaterial(25, "SDD Si$",      28.0855, 14., 2.33,  9.36, 999);
-  AliMaterial(26, "SDD Si chip$", 28.0855, 14., 2.33,  9.36, 999);
-  AliMaterial(27, "SDD Si bus$",  28.0855, 14., 2.33,  9.36, 999);
-  AliMaterial(28, "SDD C$",       12.011,   6., 2.265,18.8,  999);
-  // v. dens 
-  AliMaterial(29, "SDD Air$",     14.61, 7.3, .001205, 30423., 999);
-  AliMaterial(30, "SDD Vacuum$",  1e-16, 1e-16, 1e-16, 1e16,  1e16);
-  AliMaterial(31, "SDD Al$",      26.981539, 13., 2.6989, 8.9, 999);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture(32, "SDD Water $", awat, zwat, denswat, 2, wwat);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture( 33, "SDD Freon$", afre, zfre, densfre, 2, wfre);
-  AliMixture( 34, "SDD PCB$",   apcb, zpcb, denspcb, 3, wpcb);
-  AliMaterial(35, "SDD Copper$", 63.546, 29., 8.96, 1.43, 999);
-  AliMixture( 36, "SDD Ceramics$", acer, zcer, denscer, -5, wcer);
-  AliMaterial(37, "SDD Kapton$", 12.011, 6., 1.3, 31.27, 999);
-  // ** 
-  // check A and Z 
-  AliMedium(25, "SDD Si$",      25, 1,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(26, "SDD Si chip$", 26, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(27, "SDD Si bus$",  27, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(28, "SDD C$",       28, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(29, "SDD Air$",     29, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(30, "SDD Vacuum$",  30, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
-  AliMedium(31, "SDD Al$",      31, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(32, "SDD Water $",  32, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(33, "SDD Freon$",   33, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(34, "SDD PCB$",     34, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(35, "SDD Copper$",  35, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(36, "SDD Ceramics$",36, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(37, "SDD Kapton$",  37, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  
-  //  250-274 --> Silicon Strip Detectors (detectors, chips, buses, cooling,..)
-  
-  AliMaterial(50, "SSD Si$",      28.0855, 14., 2.33, 9.36, 999.);
-  AliMaterial(51, "SSD Si chip$", 28.0855, 14., 2.33, 9.36, 999.);
-  AliMaterial(52, "SSD Si bus$",  28.0855, 14., 2.33, 9.36, 999.);
-  AliMaterial(53, "SSD C$",       12.011,   6., 2.265,18.8, 999.);
-  // v. dens 
-  AliMaterial(54, "SSD Air$",     14.61, 7.3, .001205, 30423., 999);
-  AliMaterial(55, "SSD Vacuum$",  1e-16, 1e-16, 1e-16, 1e16, 1e16);
-  AliMaterial(56, "SSD Al$",      26.981539, 13., 2.6989, 8.9, 999);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture(57, "SSD Water $", awat, zwat, denswat, 2, wwat);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture(58, "SSD Freon$", afre, zfre, densfre, 2, wfre);
-  AliMixture(59, "SSD PCB$",   apcb, zpcb, denspcb, 3, wpcb);
-  AliMaterial(60, "SSD Copper$", 63.546, 29., 8.96, 1.43, 999.);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture( 61, "SSD Ceramics$", acer, zcer, denscer, 5, wcer);
-  AliMaterial(62, "SSD Kapton$", 12.011, 6., 1.3, 31.27, 999.);
-  // check A and Z 
-  AliMaterial(63, "SDD G10FR4$", 17.749, 8.875, 1.8, 21.822, 999.);
-  // ** 
-  AliMedium(50, "SSD Si$",      50, 1,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(51, "SSD Si chip$", 51, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(52, "SSD Si bus$",  52, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(53, "SSD C$",       53, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(54, "SSD Air$",     54, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(55, "SSD Vacuum$",  55, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
-  AliMedium(56, "SSD Al$",      56, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(57, "SSD Water $",  57, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(58, "SSD Freon$",   58, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(59, "SSD PCB$",     59, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(60, "SSD Copper$",  60, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(61, "SSD Ceramics$",61, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(62, "SSD Kapton$",  62, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(63, "SSD G10FR4$",  63, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  
-  //     275-299 --> General (end-caps, frames, cooling, cables, etc.) 
-  
-  AliMaterial(75, "GEN C$", 12.011, 6., 2.265, 18.8, 999.);
-  // verify density 
-  AliMaterial(76, "GEN Air$", 14.61, 7.3, .001205, 30423., 999);
-  AliMaterial(77, "GEN Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
-  AliMixture( 78, "GEN POLYETHYL$", apoly, zpoly, .95, -2, wpoly);
-  AliMixture( 79, "GEN SERVICES$",  aserv, zserv, 4.68, 4, wserv);
-  AliMaterial(80, "GEN Copper$", 63.546, 29., 8.96, 1.43, 999.);
-  // After a call with ratios by number (negative number of elements), 
-  // the ratio array is changed to the ratio by weight, so all successive 
-  // calls with the same array must specify the number of elements as 
-  // positive 
-  AliMixture(81, "GEN Water $", awat, zwat, denswat, 2, wwat);
-  // ** 
-  AliMedium(75,"GEN C$",        75, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(76,"GEN Air$",      76, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(77,"GEN Vacuum$",   77, 0,isxfld,sxmgmx, 10., .10, .1, .100,10.00);
-  AliMedium(78,"GEN POLYETHYL$",78, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(79,"GEN SERVICES$", 79, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(80,"GEN Copper$",   80, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-  AliMedium(81,"GEN Water $",   81, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
-}
-//_____________________________________________________________________________
-void AliITSv1::Init(){
-////////////////////////////////////////////////////////////////////////
-//     Initialise the ITS after it has been created.
-////////////////////////////////////////////////////////////////////////
-
-    //
-    AliITS::Init();
-    fMajorVersion = 1;
-    fMinorVersion = 0;
-}  
-//_____________________________________________________________________________
-void AliITSv1::DrawModule(){
-////////////////////////////////////////////////////////////////////////
-//     Draw a shaded view of the FMD version 1.
-////////////////////////////////////////////////////////////////////////
-  
-  // Set everything unseen
-  gMC->Gsatt("*", "seen", -1);
-  // 
-  // Set ALIC mother visible
-  gMC->Gsatt("ALIC","SEEN",0);
-  //
-  // Set the volumes visible
-  gMC->Gsatt("ITSV","SEEN",0);
-  gMC->Gsatt("ITS1","SEEN",1);
-  gMC->Gsatt("ITS2","SEEN",1);
-  gMC->Gsatt("ITS3","SEEN",1);
-  gMC->Gsatt("ITS4","SEEN",1);
-  gMC->Gsatt("ITS5","SEEN",1);
-  gMC->Gsatt("ITS6","SEEN",1);
-
-  gMC->Gsatt("IPCB","SEEN",1);
-  gMC->Gsatt("ICO2","SEEN",1);
-  gMC->Gsatt("ICER","SEEN",0);
-  gMC->Gsatt("ISI2","SEEN",0);
-  gMC->Gsatt("IPLA","SEEN",0);
-  gMC->Gsatt("ICO3","SEEN",0);
-  gMC->Gsatt("IEPX","SEEN",0);
-  gMC->Gsatt("ISI3","SEEN",1);
-  gMC->Gsatt("ISUP","SEEN",0);
-  gMC->Gsatt("ICHO","SEEN",0);
-  gMC->Gsatt("ICMO","SEEN",0);
-  gMC->Gsatt("ICMD","SEEN",0);
-  gMC->Gsatt("ICCO","SEEN",1);
-  gMC->Gsatt("ICCM","SEEN",0);
-  gMC->Gsatt("ITMD","SEEN",0);
-  gMC->Gsatt("ITTT","SEEN",1);
-
-  //
-  gMC->Gdopt("hide", "on");
-  gMC->Gdopt("shad", "on");
-  gMC->Gsatt("*", "fill", 7);
-  gMC->SetClipBox(".");
-  gMC->SetClipBox("*", 0, 300, -300, 300, -300, 300);
-  gMC->DefaultRange();
-  gMC->Gdraw("alic", 40, 30, 0, 11, 10, .07, .07);
-  gMC->Gdhead(1111, "Inner Tracking System Version 1");
-  gMC->Gdman(17, 6, "MAN");
-}
-//_____________________________________________________________________________
-void AliITSv1::StepManager(){
-////////////////////////////////////////////////////////////////////////
-//    Called for every step in the ITS, then calles the AliITShit class
-// creator with the information to be recoreded about that hit.
-////////////////////////////////////////////////////////////////////////
-/*
-  Int_t         copy, id;
-  Float_t       hits[8];
-  Int_t         vol[4];
-  TLorentzVector position, momentum;
-  TClonesArray &lhits = *fHits;
-  //
-  // Track status
-  vol[3] = 0;
-  if(gMC->IsTrackInside())      vol[3] +=  1;
-  if(gMC->IsTrackEntering())    vol[3] +=  2;
-  if(gMC->IsTrackExiting())     vol[3] +=  4;
-  if(gMC->IsTrackOut())         vol[3] +=  8;
-  if(gMC->IsTrackDisappeared()) vol[3] += 16;
-  if(gMC->IsTrackStop())        vol[3] += 32;
-  if(gMC->IsTrackAlive())       vol[3] += 64;
-  //
-  // Fill hit structure.
-  if( !(gMC->TrackCharge()) ) return;
-    //
-    // Only entering charged tracks
-    if((id=gMC->CurrentVolID(copy))==fIdSens[0]) {  
-      vol[0]=1;
-      id=gMC->CurrentVolOffID(1,copy);      
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(2,copy);
-      vol[2]=copy;                       
-    } else if(id==fIdSens[1]) {
-      vol[0]=2;
-      id=gMC->CurrentVolOffID(1,copy);       
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(2,copy);
-      vol[2]=copy;                    
-    } else if(id==fIdSens[2]) {
-      vol[0]=3;
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(1,copy);
-      vol[2]=copy;             
-    } else if(id==fIdSens[3]) {
-      vol[0]=4;
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(1,copy);
-      vol[2]=copy;                  
-    } else if(id==fIdSens[4]) {
-      vol[0]=5;
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(1,copy);
-      vol[2]=copy;               
-    } else if(id==fIdSens[5]) {
-      vol[0]=6;
-      vol[1]=copy;
-      id=gMC->CurrentVolOffID(1,copy);
-      vol[2]=copy;                      
-    } else return;
-    gMC->TrackPosition(position);
-    gMC->TrackMomentum(momentum);
-    hits[0]=position[0];
-    hits[1]=position[1];
-    hits[2]=position[2];          
-    hits[3]=momentum[0];
-    hits[4]=momentum[1];
-    hits[5]=momentum[2];
-    hits[6]=gMC->Edep();
-    hits[7]=gMC->TrackTime();
-    new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
-*/
-}
diff --git a/ITS/AliITSv1.h b/ITS/AliITSv1.h
deleted file mode 100644 (file)
index 4f6a357..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef ALIITSV1_H
-#define ALIITSV1_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-/////////////////////////////////////////////////////////
-//  Manager and hits classes for set: ITS version 1    //
-/////////////////////////////////////////////////////////
-#include "AliITS.h"
-class AliITSv1 : public AliITS {
-
- public:
-    AliITSv1();
-    AliITSv1(const char *name, const char *title);
-    AliITSv1(const AliITSv1 &source); // copy constructor
-    AliITSv1& operator=(const AliITSv1 &source); // assignment operator
-    virtual       ~AliITSv1() ;
-    virtual void   BuildGeometry();
-    virtual void   CreateGeometry();
-    virtual void   CreateMaterials();
-    virtual void   Init(); 
-    virtual Int_t  IsVersion() const {// returns the ITS version number 
-       return 1;}
-    virtual void   DrawModule();
-    virtual void   StepManager();
-    virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
-                                                fGeomDetOut = det;}
-    virtual void   SetWriteDet(const char *f){ // set write file
-                                    strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
-    virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomDetIn = det;}
-    virtual void   SetReadDet(const char *f){ // set read file
-                                      strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
-    virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
-                                                 fEuclidOut = euclid;}
-    virtual void   SetEUCLIDFileName(const char *f){ // set write file
-                            fEuclidGeometry=f;fEuclidOut = kTRUE;}
-    virtual void   SetMinorVersion(Int_t v){ // Choose between existing minor versions
-       fMinorVersion = 1;
-       if(v==1) fMinorVersion = 1;
-       else if(v==2) fMinorVersion = 2;
-       else Warning("SetMinorVersion","Undefined Minor Version setting =1");}
-    virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag.
-    virtual const char  *GetEULIIDFileName() const{ // return .euc file name
-                                      return fEuclidGeometry.Data();}
-    virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag.
-                                 return fGeomDetOut;}
-    virtual Bool_t GetReadDet() { // returns value GeomDetIn flag.
-                                return fGeomDetIn;}
-    virtual char  *GetReadDetFileName(){ // return .det read file name
-                 if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
-    virtual char  *GetWriteDetFileName(){ // return .det write file name
-               if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
-    virtual Int_t GetMajorVersion(){// return Major Version Number
-       return fMajorVersion;}
-    virtual Int_t GetMinorVersion(){// return Major Version Number
-       return fMinorVersion;}
-
- private:
-    void InitAliITSgeom();
-
-    // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
-    Bool_t fEuclidOut;        // Flag to write geometry in euclid format
-    Bool_t fGeomDetOut;       // Flag to write .det file out
-    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
-
-    ClassDef(AliITSv1,1)  //Hits manager for set:ITS version 1 cource Geometry
-};
-#endif
diff --git a/ITS/AliITSv5.cxx b/ITS/AliITSv5.cxx
deleted file mode 100644 (file)
index d84c967..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Inner Traking System version 5
-//  This class contains the base procedures for the Inner Tracking System
-//
-// Authors: R. Barbera, B. S. Nilsen.
-// version 5.
-// Created September 17 1999.
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <Riostream.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <TBRIK.h>
-#include <TCanvas.h>
-#include <TClonesArray.h>
-#include <TFile.h>    // only required for Tracking function?
-#include <TGeometry.h>
-#include <TLorentzVector.h>
-#include <TMath.h>
-#include <TNode.h>
-#include <TObjArray.h>
-#include <TObjString.h>
-#include <TSystem.h>
-#include <TTUBE.h>
-#include <TVirtualMC.h>
-
-#include "AliRun.h"
-#include "AliITShit.h"
-#include "AliITSGeant3Geometry.h"
-#include "AliITSgeom.h"
-#include "AliITSgeomSDD.h"
-#include "AliITSgeomSPD.h"
-#include "AliITSgeomSSD.h"
-#include "AliITShit.h"
-#include "AliITSv5.h"
-#include "AliRun.h"
-#include "AliMC.h"
-
-ClassImp(AliITSv5)
-//_____________________________________________________________________________
-AliITSv5::AliITSv5() {
-////////////////////////////////////////////////////////////////////////
-//    Standard default constructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 0;
-    fIdName = 0;
-    fIdSens = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 1;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-    for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
-}
-//_____________________________________________________________________________
-AliITSv5::AliITSv5(const char *name, const char *title) : AliITS(name, title){
-////////////////////////////////////////////////////////////////////////
-//    Standard constructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 6;
-    fIdName    = new TString[fIdN];
-    fIdName[0] = "ITS1";
-    fIdName[1] = "ITS2";
-    fIdName[2] = "ITS3";
-    fIdName[3] = "ITS4";
-    fIdName[4] = "ITS5";
-    fIdName[5] = "ITS6";
-    fIdSens    = new Int_t[fIdN];
-    for (i=0;i<fIdN;i++) fIdSens[i] = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 1;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-
-    fEuclidMaterial = "$ALICE_ROOT/Euclid/ITSgeometry_5.tme";
-    fEuclidGeometry = "$ALICE_ROOT/Euclid/ITSgeometry_5.euc";
-    strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_v5.det",60);
-    strncpy(fRead,fEuclidGeomDet,60);
-    strncpy(fWrite,fEuclidGeomDet,60);
-}
-//____________________________________________________________________________
-AliITSv5::AliITSv5(const AliITSv5 &source) : AliITS(source){
-////////////////////////////////////////////////////////////////////////
-//     Copy Constructor for ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
-    Warning("Copy Constructor","Not allowed to copy AliITSv5");
-    return;
-}
-//_____________________________________________________________________________
-AliITSv5& AliITSv5::operator=(const AliITSv5 &source){
-////////////////////////////////////////////////////////////////////////
-//    Assignment operator for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-
-    if(&source == this) return *this;
-    Warning("= operator","Not allowed to copy AliITSv5");
-    return *this;
-
-}
-//_____________________________________________________________________________
-AliITSv5::~AliITSv5() {
-////////////////////////////////////////////////////////////////////////
-//    Standard destructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-}
-//______________________________________________________________________
-void AliITSv5::BuildGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    Geometry builder for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-  //
-  // Build ITS TNODE geometry for event display using detailed geometry.
-  // This function builds a simple ITS geometry used by the ROOT macro
-  // ITSdisplay.C.
-
-  TNode *top;
-  TNode *nd;
-  //const int kColorITSSPD=kRed;
-  //const int kColorITSSDD=kGreen;
-  const int kColorITSSSD=kBlue;
-  //
-  AliITSgeom  *gm = this->GetITSgeom();
-  if(gm==0) return;
-  top=gAlice->GetGeometry()->GetNode("alice");
-
-  Int_t       lay,lad,det,i;
-  Text_t      name[10];
-  Float_t     xg[3];
-  Float_t     rt[9];
-  Double_t    rtd[9];
-  TBRIK       *box;
-  TRotMatrix  *rm;
-  //TCanvas     *c1 = new TCanvas("c1","ITS");
-
-  for(lay=1;lay<=2;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSPD","Active volume of SPD","SPD SI DET",
-                                   0.64,0.0075,4.19); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SPD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=3;lay<=3;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=4;lay<=4;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
- for(lay=5;lay<=5;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
- for(lay=6;lay<=6;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]); 
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-          //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-
-} 
-//_____________________________________________________________________________
-void AliITSv5::CreateMaterials(){
-////////////////////////////////////////////////////////////////////////
-//     Read a file containing the materials for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidMaterial.Data());
-
-  FILE *file = fopen(filtmp,"r");
-  if(file) {
-    fclose(file);
-    ReadEuclidMedia(filtmp);
-  } else {
-    Error("CreateMaterials"," THE MEDIA FILE %s DOES NOT EXIST !",filtmp);
-    exit(1);
-  } // end if(file)
-}
-//_____________________________________________________________________________
-void AliITSv5::CreateGeometry(){
-//////////////////////////////////////////////////////////////////////
-//    This is the geometry used for the ITS Pre-TDR and comes from an 
-// Euclid to Geant conversion. The only difference
-// is in the details of the ITS supports. The detectors elements, 
-// detector numbering, and local and global reference frames are shown in
-//  the following figures.
-//Begin_Html
-/*
-<img src="picts/ITS/its1+2_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SPDs.
-</font>
-<pre>
-<img src="picts/ITS/its1+2_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SPDs.
-</font>
-<img src="picts/ITS/its1+2_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SPDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its3+4_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SDDs.
-</font>
-<pre>
-<img src="picts/ITS/its3+4_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SDDs.
-</font>
-<img src="picts/ITS/its3+4_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SDDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its5+6_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SSDs.
-</font>
-<pre>
-
-
-<img src="picts/ITS/its_layer1-6_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its_layer1-6_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its1-6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the whole ITS.
-</font>
-<pre>
-*/
-//End_Html
-//
-//
-//      Here are shown the details of the ITS support cones and services.
-// First is a GEANT tree showing the organization of all of the volumes
-// that make up the ITS supports and services.
-//Begin_Html
-/*
-<img src="picts/ITS/supports_tree.gif">
- */
-//End_Html
-//     What follows are a number of figures showing what these support
-// structures look like.
-//Begin_Html
-/*
-
-<img src="picts/ITS/supports_3.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers only.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in front cut out.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in a back cut out..
-</font>
-<pre>
-
-<img src="picts/ITS/suppssd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Strip layers supports.
-</font>
-<pre>
-
-<img src="picts/ITS/suppsdd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Drift layers supports.
-</font>
-<pre>
- */
-//End_Html
-//
-//    Read a file containing the geometry for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-
-
-    char topvol[5];
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidGeometry.Data());
-  FILE *file = fopen(filtmp,"r");
-  delete [] filtmp;
-  if(file) {
-    fclose(file);
-    cout << "Ready to read Euclid geometry file" << endl;
-    ReadEuclid(fEuclidGeometry.Data(),topvol);
-    printf("Read in euclid geometries\n");
-  } else {
-    Error("CreateGeometry"," THE GEOM FILE %s DOES NOT EXIST !",
-         fEuclidGeometry.Data());
-    exit(1);
-  } // end if(file)
-  //
-  // Place the ITS ghost volume ITSV in its mother volume (ALIC) and make it
-  // invisible
-  //
-  gMC->Gspos("ITSV",1,"ALIC",0,0,0,0,"ONLY");
-  //
-  // Outputs the geometry tree in the EUCLID/CAD format if requested to do so
-  
-    if (fEuclidOut) {
-      gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
-    } // end if (fEuclidOut)
-
-    cout << "finished with euclid geometrys" << endl;
-}
-//______________________________________________________________________
-void AliITSv5::ReadOldGeometry(const char *filename){
-    // read in the file containing the transformations for the active
-    // volumes for the ITS version 5. This is expected to be in a file
-    // ending in .det. This geometry is kept in the AliITSgeom class.
-    Int_t size;
-    char *filtmp;
-    FILE *file;
-
-    if(fITSgeom!=0) delete fITSgeom;
-    filtmp = gSystem->ExpandPathName(filename);
-    size = strlen(filtmp);
-    if(size>4 && fGeomDetIn){
-        filtmp[size-3] = 'd'; // change from .euc to .det
-        filtmp[size-2] = 'e';
-        filtmp[size-1] = 't';
-        file = fopen(filtmp,"r");
-        if(file){ // if file exists use it to fill AliITSgeom structure.
-            fclose(file);
-            fITSgeom = new AliITSgeom(filtmp);
-            fITSgeom->DefineShapes(3); // if fShape isn't defined define it.
-            // Now define the detector types/shapes.
-            fITSgeom->ReSetShape(kSPD,new AliITSgeomSPD300());
-            fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD300());
-            fITSgeom->ReSetShape(kSSD,new AliITSgeomSSD175());
-        }else{
-            fITSgeom = 0;
-            // fill AliITSgeom structure from geant structure just filled above
-        }// end if(file)
-        delete [] filtmp;
-    }// end if(size>4)
-}
-//______________________________________________________________________
-void AliITSv5::InitAliITSgeom(){
-//     Based on the geometry tree defined in Geant 3.21, this
-// routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
-// sturture.
-//    if(gMC->IsA()!=TGeant3::Class()) {
-    if(strcmp(gMC->GetName(),"TGeant3")) {
-       Error("InitAliITSgeom",
-               "Wrong Monte Carlo. InitAliITSgeom uses TGeant3 calls");
-       return;
-    } // end if
-    cout << "Reading Geometry transformation directly from Geant 3." << endl;
-    const Int_t nlayers = 6;
-    const Int_t ndeep = 7;
-    Int_t itsGeomTreeNames[nlayers][ndeep],lnam[20],lnum[20];
-    Int_t nlad[nlayers],ndet[nlayers];
-    Double_t t[3],r[10];
-    Float_t  par[20],att[20];
-    Int_t    npar,natt,idshape,imat,imed;
-    AliITSGeant3Geometry *ig = new AliITSGeant3Geometry();
-    Int_t mod,lay,lad,det,i,j,k;
-    char *names[nlayers][ndeep] = {
-        {"ALIC","ITSV","ITSD","IT12","I132","I186","ITS1"}, // lay=1
-        {"ALIC","ITSV","ITSD","IT12","I132","I131","ITS2"}, // lay=2
-        {"ALIC","ITSV","ITSD","IT34","I004","I302","ITS3"}, // lay=3
-        {"ALIC","ITSV","ITSD","IT34","I005","I402","ITS4"}, // lay=4
-        {"ALIC","ITSV","ITSD","IT56","I565","I562","ITS5"}, // lay=5
-        {"ALIC","ITSV","ITSD","IT56","I569","I566","ITS6"}};// lay=6
-    Int_t itsGeomTreeCopys[nlayers][ndeep] = {{1,1,1,1,10, 2,4}, // lay=1
-                                              {1,1,1,1,10, 4,4}, // lay=2
-                                              {1,1,1,1,14, 6,1}, // lay=3
-                                              {1,1,1,1,22, 8,1}, // lay=4
-                                              {1,1,1,1,34,23,1}, // lay=5
-                                              {1,1,1,1,38,26,1}};// lay=6
-
-    // Sorry, but this is not very pritty code. It should be replaced
-    // at some point with a version that can search through the geometry
-    // tree its self.
-    for(i=0;i<20;i++) lnam[i] = lnum[i] = 0;
-    for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++)
-        strncpy((char*) &itsGeomTreeNames[i][j],names[i][j],4); 
-    // itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
-    mod = 0;
-    for(i=0;i<nlayers;i++){
-       k = 1;
-       for(j=0;j<ndeep;j++) if(itsGeomTreeCopys[i][j]!=0)
-           k *= TMath::Abs(itsGeomTreeCopys[i][j]);
-       mod += k;
-    } // end for i
-
-    if(fITSgeom!=0) delete fITSgeom;
-    nlad[0]=20;nlad[1]=40;nlad[2]=14;nlad[3]=22;nlad[4]=34;nlad[5]=38;
-    ndet[0]=4;ndet[1]=4;ndet[2]=6;ndet[3]=8;ndet[4]=22;ndet[5]=25;
-    fITSgeom = new AliITSgeom(0,6,nlad,ndet,mod);
-    mod = -1;
-    for(lay=1;lay<=nlayers;lay++){
-       for(j=0;j<ndeep;j++) lnam[j] = itsGeomTreeNames[lay-1][j];
-       for(j=0;j<ndeep;j++) lnum[j] = itsGeomTreeCopys[lay-1][j];
-       switch (lay){
-       case 1: case 2: // layers 1 and 2 are a bit special
-           lad = 0;
-           for(j=1;j<=itsGeomTreeCopys[lay-1][4];j++){
-               lnum[4] = j;
-               for(k=1;k<=itsGeomTreeCopys[lay-1][5];k++){
-                   lad++;
-                   lnum[5] = k;
-                   for(det=1;det<=itsGeomTreeCopys[lay-1][6];det++){
-                       lnum[6] = det;
-                       mod++;
-                       ig->GetGeometry(ndeep,lnam,lnum,t,r,idshape,npar,natt,
-                                       par,att,imat,imed);
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
-                       if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                   } // end for det
-               } // end for k
-            } // end for j
-           break;
-       case 3: case 4: case 5: case 6: // layers 3-6
-           lnum[6] = 1;
-           for(lad=1;lad<=itsGeomTreeCopys[lay-1][4];lad++){
-               lnum[4] = lad;
-               for(det=1;det<=itsGeomTreeCopys[lay-1][5];det++){
-                   lnum[5] = det;
-                   mod++;
-                   ig->GetGeometry(7,lnam,lnum,t,r,idshape,npar,natt,
-                                   par,att,imat,imed);
-                   switch (lay){
-                   case 3: case 4:
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
-                       if(!(fITSgeom->IsShapeDefined(kSDD))) 
-                           fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD300());
-                       break;
-                   case 5: case 6:
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
-                       if(!(fITSgeom->IsShapeDefined(kSSD))) 
-                           fITSgeom->ReSetShape(kSSD,new AliITSgeomSSD175());
-                       break;
-                       } // end switch
-               } // end for det
-           } // end for lad
-           break;
-       } // end switch
-    } // end for lay
-    return;
-}
-//_____________________________________________________________________________
-void AliITSv5::Init(){
-////////////////////////////////////////////////////////////////////////
-//     Initialise the ITS after it has been created.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    cout << endl;
-    for(i=0;i<30;i++) cout << "*";cout << " ITSv5_Init ";
-    for(i=0;i<30;i++) cout << "*";cout << endl;
-//
-    if(fRead[0]=='\0') strncpy(fRead,fEuclidGeomDet,60);
-    if(fWrite[0]=='\0') strncpy(fWrite,fEuclidGeomDet,60);
-    if(fGeomDetIn && !fGeomOldDetIn){
-       if(fITSgeom!=0) delete fITSgeom;
-       fITSgeom = new AliITSgeom();
-       fITSgeom->ReadNewFile(fRead);
-    } // end if
-    if(fGeomDetIn &&  fGeomOldDetIn) ReadOldGeometry(fEuclidGeometry.Data());
-
-    if(!fGeomDetIn) this->InitAliITSgeom();
-    if(fGeomDetOut) fITSgeom->WriteNewFile(fWrite);
-    AliITS::Init();
-//
-    for(i=0;i<72;i++) cout << "*";
-    cout << endl;
-}
-//_____________________________________________________________________________
-void AliITSv5::StepManager(){
-////////////////////////////////////////////////////////////////////////
-//    Called for every step in the ITS, then calles the AliITShit class
-// creator with the information to be recoreded about that hit.
-//     The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
-// printing of information to a file which can be used to create a .det
-// file read in by the routine CreateGeometry(). If set to 0 or any other
-// value except 1, the default behavior, then no such file is created nor
-// it the extra variables and the like used in the printing allocated.
-////////////////////////////////////////////////////////////////////////
-  Int_t          copy, id;
-  Int_t          copy1,copy2;
-  Float_t        hits[8];
-  Int_t          vol[4];
-  TLorentzVector position, momentum;
-  TClonesArray   &lhits = *fHits;
-  //
-  // Track status
-  vol[3] = 0;
-  if(gMC->IsTrackInside())      vol[3] +=  1;
-  if(gMC->IsTrackEntering())    vol[3] +=  2;
-  if(gMC->IsTrackExiting())     vol[3] +=  4;
-  if(gMC->IsTrackOut())         vol[3] +=  8;
-  if(gMC->IsTrackDisappeared()) vol[3] += 16;
-  if(gMC->IsTrackStop())        vol[3] += 32;
-  if(gMC->IsTrackAlive())       vol[3] += 64;
-  //
-  // Fill hit structure.
-  if(!(gMC->TrackCharge())) return;
-  //
-  // Only entering charged tracks
-  if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
-      vol[0] = 1;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS1)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->2  (I186)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
-  } else if(id == fIdSens[1]){
-      vol[0] = 2;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS2)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->4  (I131)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
-  } else if(id == fIdSens[2]){
-      vol[0] = 3;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->5  (ITS3 is inside I314)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->12 (I316)
-      vol[2] = copy;
-  } else if(id == fIdSens[3]){
-      vol[0] = 4;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->8  (ITS4 is inside I414)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->22 (I417)
-      vol[2] = copy;
-  }else if(id == fIdSens[4]){
-      vol[0] = 5;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->23  (ITS5 is inside I562)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-     //ladder copy in the layer    = 1<->34 (I565)
-      vol[2] = copy;
-  }else if(id == fIdSens[5]){
-      vol[0] = 6;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->26  (ITS6 is inside I566)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer = 1<->38 (I569)
-      vol[2] = copy;
-  } else {
-      return; // not an ITS volume?
-  } // end if/else if (gMC->CurentVolID(copy) == fIdSens[i])
-//
-  gMC->TrackPosition(position);
-  gMC->TrackMomentum(momentum);
-  hits[0]=position[0];
-  hits[1]=position[1];
-  hits[2]=position[2];
-  hits[3]=momentum[0];
-  hits[4]=momentum[1];
-  hits[5]=momentum[2];
-  hits[6]=gMC->Edep();
-  hits[7]=gMC->TrackTime();
-  // Fill hit structure with this new hit.
-  new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
-  return;
-}
diff --git a/ITS/AliITSv5.h b/ITS/AliITSv5.h
deleted file mode 100644 (file)
index 4ef99d1..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef ALIITSV5_H
-#define ALIITSV5_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-////////////////////////////////////////////////////////////////////////
-//     Manager and hits classes for  ITS version 5
-////////////////////////////////////////////////////////////////////////
-
-
-#include "AliITS.h"
-
-class TBRIK;
-class AliITSv5 : public AliITS {
-
- public:
-    AliITSv5();
-    AliITSv5(const char *name, const char *title);
-    AliITSv5(const AliITSv5 &source); // copy constructor
-    AliITSv5& operator=(const AliITSv5 &source); // assignment operator         
-    virtual       ~AliITSv5() ;
-    virtual void   BuildGeometry();
-    virtual void  CreateGeometry();
-    virtual void  CreateMaterials();
-    virtual void  Init();
-    virtual Int_t IsVersion() const { // returns the ITS version number
-       return 5;}
-    virtual void  StepManager();
-    void ReadOldGeometry(const char *filename);
-    virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
-                                                fGeomDetOut = det;}
-    virtual void   SetWriteDet(const char *f){ // set write file
-                                    strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
-    virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomDetIn = det;}
-    virtual void   SetReadOldDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomOldDetIn = det;}
-    virtual void   SetReadDet(const char *f){ // set read file
-                                      strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
-    virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
-                                                 fEuclidOut = euclid;}
-    virtual void   SetEUCLIDFileName(const char *f){ // set write file
-                            fEuclidGeometry=f;fEuclidOut = kTRUE;}
-    virtual void   SetMinorVersion(Int_t v){ // Choose between existing minor versions
-       fMinorVersion = 1;
-       if(v==1) fMinorVersion = 1;
-       else if(v==2) fMinorVersion = 2;
-       else Warning("SetMinorVersion","Undefined Minor Version setting =1");}
-    virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag.
-    virtual const char  *GetEULIIDFileName() const{ // return .euc file name
-                                      return fEuclidGeometry.Data();}
-    virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag.
-                                 return fGeomDetOut;}
-    virtual Bool_t GetReadDet() { // returns value GeomDetIn flag.
-                                return fGeomDetIn;}
-    virtual Bool_t GetReadDetOld() { // returns value GeomDetIn flag.
-                                return fGeomOldDetIn;}
-    virtual char  *GetReadDetFileName(){ // return .det read file name
-                 if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
-    virtual char  *GetWriteDetFileName(){ // return .det write file name
-               if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
-    virtual Int_t GetMajorVersion(){// return Major Version Number
-       return fMajorVersion;}
-    virtual Int_t GetMinorVersion(){// return Major Version Number
-       return fMinorVersion;}
-
- private:
-    void InitAliITSgeom();
-
-    // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
-    Bool_t fEuclidOut;        // Flag to write geometry in euclid format
-    Bool_t fGeomDetOut;       // Flag to write .det file out
-    Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
-    Bool_t fGeomOldDetIn;     // Flag to read old .det file.
-    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
-
-
-    ClassDef(AliITSv5,1)//Hits manager for ITS version 5 Official detailed geometry
-};
-#endif
diff --git a/ITS/AliITSv5asymm.cxx b/ITS/AliITSv5asymm.cxx
deleted file mode 100644 (file)
index fc0510f..0000000
+++ /dev/null
@@ -1,821 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Inner Traking System version 5 with asymmetric services
-//  This class contains the base procedures for the Inner Tracking System
-//
-// Authors: R. Barbera, B. S. Nilsen.
-// version 5.
-// Created October 7 2000.
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <Riostream.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <TBRIK.h>
-#include <TCanvas.h>
-#include <TClonesArray.h>
-#include <TFile.h>    // only required for Tracking function?
-#include <TGeometry.h>
-#include <TLorentzVector.h>
-#include <TMath.h>
-#include <TNode.h>
-#include <TObjArray.h>
-#include <TObjString.h>
-#include <TSystem.h>
-#include <TTUBE.h>
-#include <TVirtualMC.h>
-
-#include "AliRun.h"
-#include "AliITShit.h"
-#include "AliITSGeant3Geometry.h"
-#include "AliITSgeom.h"
-#include "AliITSgeomSDD.h"
-#include "AliITSgeomSPD.h"
-#include "AliITSgeomSSD.h"
-#include "AliITShit.h"
-#include "AliITSv5asymm.h"
-#include "AliRun.h"
-#include "AliMC.h"
-
-ClassImp(AliITSv5asymm)
-//_____________________________________________________________________________
-AliITSv5asymm::AliITSv5asymm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard default constructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 0;
-    fIdName = 0;
-    fIdSens = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 3;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-    for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
-}
-//_____________________________________________________________________________
-AliITSv5asymm::AliITSv5asymm(const char *name, const char *title) : AliITS(name, title){
-/////////////////////////////////////////////////////////////////////////////
-//    Standard constructor for the ITS version 5 with symmetrical services.
-/////////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 6;
-    fIdName    = new TString[fIdN];
-    fIdName[0] = "ITS1";
-    fIdName[1] = "ITS2";
-    fIdName[2] = "ITS3";
-    fIdName[3] = "ITS4";
-    fIdName[4] = "ITS5";
-    fIdName[5] = "ITS6";
-    fIdSens    = new Int_t[fIdN];
-    for (i=0;i<fIdN;i++) fIdSens[i] = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 3;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-
-    fEuclidMaterial = "$ALICE_ROOT/Euclid/ITSgeometry_5asymm.tme";
-    fEuclidGeometry = "$ALICE_ROOT/Euclid/ITSgeometry_5asymm.euc";
-    strncpy(fEuclidGeomDet,"$ALICE_ROOT/Euclid/ITSgeometry_5.det",60);
-    strncpy(fRead,fEuclidGeomDet,60);
-    strncpy(fWrite,fEuclidGeomDet,60);
-}
-//____________________________________________________________________________
-AliITSv5asymm::AliITSv5asymm(const AliITSv5asymm &source):AliITS(source){
-////////////////////////////////////////////////////////////////////////
-//     Copy Constructor for ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
-    Warning("Copy Constructor","Not allowed to copy AliITSv5asymm");
-    return;
-}
-//_____________________________________________________________________________
-AliITSv5asymm& AliITSv5asymm::operator=(const AliITSv5asymm &source){
-////////////////////////////////////////////////////////////////////////
-//    Assignment operator for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-
-    if(&source == this) return *this;
-    Warning("= operator","Not allowed to copy AliITSv5asymm");
-    return *this;
-
-}
-//_____________________________________________________________________________
-AliITSv5asymm::~AliITSv5asymm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard destructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-}
-//_____________________________________________________________________________
-void AliITSv5asymm::BuildGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    Geometry builder for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-  //
-  // Build ITS TNODE geometry for event display using detailed geometry.
-  // This function builds a simple ITS geometry used by the ROOT macro
-  // ITSdisplay.C.
-
-  TNode *top;
-  TNode *nd;
-  //const int kColorITSSPD=kRed;
-  //const int kColorITSSDD=kGreen;
-  const int kColorITSSSD=kBlue;
-  //
-  AliITSgeom  *gm = this->GetITSgeom();
-  if(gm==0) return;
-  top=gAlice->GetGeometry()->GetNode("alice");
-
-  Int_t       lay,lad,det,i;
-  Text_t      name[10];
-  Float_t     xg[3];
-  Float_t     rt[9];
-  Double_t    rtd[9];
-  TBRIK       *box;
-  TRotMatrix  *rm;
-  //TCanvas     *c1 = new TCanvas("c1","ITS");
-
-  for(lay=1;lay<=2;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK("ActiveSPD","Active volume of SPD","SPD SI DET",
-                                   0.64,0.0075,4.19); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SPD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=3;lay<=3;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=4;lay<=4;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
- for(lay=5;lay<=5;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
- for(lay=6;lay<=6;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]); 
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-          //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-
-} 
-//_____________________________________________________________________________
-void AliITSv5asymm::CreateMaterials(){
-////////////////////////////////////////////////////////////////////////
-//     Read a file containing the materials for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidMaterial.Data());
-
-  FILE *file = fopen(filtmp,"r");
-  if(file) {
-    fclose(file);
-    ReadEuclidMedia(filtmp);
-  } else {
-    Error("CreateMaterials"," THE MEDIA FILE %s DOES NOT EXIST !",filtmp);
-    exit(1);
-  } // end if(file)
-}
-//_____________________________________________________________________________
-void AliITSv5asymm::CreateGeometry(){
-//////////////////////////////////////////////////////////////////////
-//    This is the geometry used for the ITS Pre-TDR and comes from an 
-// Euclid to Geant conversion. The only difference
-// is in the details of the ITS supports. The detectors elements, 
-// detector numbering, and local and global reference frames are shown in
-//  the following figures.
-//Begin_Html
-/*
-<img src="picts/ITS/its1+2_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SPDs.
-</font>
-<pre>
-<img src="picts/ITS/its1+2_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SPDs.
-</font>
-<img src="picts/ITS/its1+2_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SPDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its3+4_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SDDs.
-</font>
-<pre>
-<img src="picts/ITS/its3+4_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SDDs.
-</font>
-<img src="picts/ITS/its3+4_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SDDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its5+6_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SSDs.
-</font>
-<pre>
-
-
-<img src="picts/ITS/its_layer1-6_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its_layer1-6_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its1-6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the whole ITS.
-</font>
-<pre>
-*/
-//End_Html
-//
-//
-//      Here are shown the details of the ITS support cones and services.
-// First is a GEANT tree showing the organization of all of the volumes
-// that make up the ITS supports and services.
-//Begin_Html
-/*
-<img src="picts/ITS/supports_tree.gif">
- */
-//End_Html
-//     What follows are a number of figures showing what these support
-// structures look like.
-//Begin_Html
-/*
-
-<img src="picts/ITS/supports_3.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers only.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in front cut out.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in a back cut out..
-</font>
-<pre>
-
-<img src="picts/ITS/suppssd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Strip layers supports.
-</font>
-<pre>
-
-<img src="picts/ITS/suppsdd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Drift layers supports.
-</font>
-<pre>
- */
-//End_Html
-//
-//    Read a file containing the geometry for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    char topvol[5];
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidGeometry.Data());
-  FILE *file = fopen(filtmp,"r");
-  delete [] filtmp;
-  if(file) {
-    fclose(file);
-    if(fDebug) cout << ClassName() << ": Ready to read Euclid geometry file" << endl;
-    ReadEuclid(fEuclidGeometry.Data(),topvol);
-    if(fDebug) cout << ClassName() << ": Read in euclid geometries" << endl;
-  } else 
-    Fatal("CreateGeometry"," THE GEOM FILE %s DOES NOT EXIST !",
-         fEuclidGeometry.Data());
-  // end if(file)
-  //
-  // Place the ITS ghost volume ITSV in its mother volume (ALIC) and make it
-  // invisible
-  //
-  gMC->Gspos("ITSV",1,"ALIC",0,0,0,0,"ONLY");
-  //
-  // Outputs the geometry tree in the EUCLID/CAD format if requested to do so
-  
-    if (fEuclidOut) {
-      gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
-    } // end if (fEuclidOut)
-
-    if(fDebug) cout << ClassName() << ": finished with euclid geometrys" << endl;
-}
-
-//______________________________________________________________________
-void AliITSv5asymm::ReadOldGeometry(const char *filename){
-    // read in the file containing the transformations for the active
-    // volumes for the ITS version 5. This is expected to be in a file
-    // ending in .det. This geometry is kept in the AliITSgeom class.
-    Int_t size;
-    char *filtmp;
-    FILE *file;
-
-    filtmp = gSystem->ExpandPathName(filename);
-    size = strlen(filtmp);
-    if(size>4 && fGeomDetIn){
-        filtmp[size-3] = 'd'; // change from .euc to .det
-        filtmp[size-2] = 'e';
-        filtmp[size-1] = 't';
-        file = fopen(filtmp,"r");
-        if(file){ // if file exists use it to fill AliITSgeom structure.
-            fclose(file);
-            fITSgeom = new AliITSgeom(filtmp);
-            fITSgeom->DefineShapes(3); // if fShape isn't defined define it.
-            // Now define the detector types/shapes.
-            fITSgeom->ReSetShape(kSPD,(TObject *) new AliITSgeomSPD300());
-            fITSgeom->ReSetShape(kSDD,(TObject *) new AliITSgeomSDD300());
-            fITSgeom->ReSetShape(kSSD,(TObject *) new AliITSgeomSSD());
-        }else{
-            fITSgeom = 0;
-            // fill AliITSgeom structure from geant structure just filled above
-        }// end if(file)
-        delete [] filtmp;
-    }// end if(size>4)
-}
-//______________________________________________________________________
-void AliITSv5asymm::InitAliITSgeom(){
-//     Based on the geometry tree defined in Geant 3.21, this
-// routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
-// sturture.
-//    if(gMC->IsA()!=TGeant3::Class()) {
-    if(strcmp(gMC->GetName(),"TGeant3")) {
-       Error("InitAliITSgeom",
-               "Wrong Monte Carlo. InitAliITSgeom uses TGeant3 calls");
-       return;
-    } // end if
-    if(fDebug) cout << ClassName() 
-                   << ": Reading Geometry transformation directly from Geant 3." << endl;
-    const Int_t nlayers = 6;
-    const Int_t ndeep = 7;
-    Int_t itsGeomTreeNames[nlayers][ndeep],lnam[20],lnum[20];
-    Int_t nlad[nlayers],ndet[nlayers];
-    Double_t t[3],r[10];
-    Float_t  par[20],att[20];
-    Int_t    npar,natt,idshape,imat,imed;
-    AliITSGeant3Geometry *ig = new AliITSGeant3Geometry();
-    Int_t mod,lay,lad,det,i,j,k;
-    char *names[nlayers][ndeep] = {
-        {"ALIC","ITSV","ITSD","IT12","I132","I186","ITS1"}, // lay=1
-        {"ALIC","ITSV","ITSD","IT12","I132","I131","ITS2"}, // lay=2
-        {"ALIC","ITSV","ITSD","IT34","I004","I302","ITS3"}, // lay=3
-        {"ALIC","ITSV","ITSD","IT34","I005","I402","ITS4"}, // lay=4
-        {"ALIC","ITSV","ITSD","IT56","I565","I562","ITS5"}, // lay=5
-        {"ALIC","ITSV","ITSD","IT56","I569","I566","ITS6"}};// lay=6
-    Int_t itsGeomTreeCopys[nlayers][ndeep] = {{1,1,1,1,10, 2,4}, // lay=1
-                                              {1,1,1,1,10, 4,4}, // lay=2
-                                              {1,1,1,1,14, 6,1}, // lay=3
-                                              {1,1,1,1,22, 8,1}, // lay=4
-                                              {1,1,1,1,34,23,1}, // lay=5
-                                              {1,1,1,1,38,26,1}};// lay=6
-
-    // Sorry, but this is not very pritty code. It should be replaced
-    // at some point with a version that can search through the geometry
-    // tree its self.
-    if(fDebug) cout << ClassName() 
-                   << ": Reading Geometry informaton from Geant3 common blocks" << endl;
-    for(i=0;i<20;i++) lnam[i] = lnum[i] = 0;
-    for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++)
-        strncpy((char*) &itsGeomTreeNames[i][j],names[i][j],4); 
-    // itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
-    mod = 0;
-    for(i=0;i<nlayers;i++){
-       k = 1;
-       for(j=0;j<ndeep;j++) if(itsGeomTreeCopys[i][j]!=0)
-           k *= TMath::Abs(itsGeomTreeCopys[i][j]);
-       mod += k;
-    } // end for i
-
-    if(fITSgeom!=0) delete fITSgeom;
-    nlad[0]=20;nlad[1]=40;nlad[2]=14;nlad[3]=22;nlad[4]=34;nlad[5]=38;
-    ndet[0]=4;ndet[1]=4;ndet[2]=6;ndet[3]=8;ndet[4]=23;ndet[5]=26;
-    fITSgeom = new AliITSgeom(0,6,nlad,ndet,mod);
-    mod = -1;
-    for(lay=1;lay<=nlayers;lay++){
-       for(j=0;j<ndeep;j++) lnam[j] = itsGeomTreeNames[lay-1][j];
-       for(j=0;j<ndeep;j++) lnum[j] = itsGeomTreeCopys[lay-1][j];
-       switch (lay){
-       case 1: case 2: // layers 1 and 2 are a bit special
-           lad = 0;
-           for(j=1;j<=itsGeomTreeCopys[lay-1][4];j++){
-               lnum[4] = j;
-               for(k=1;k<=itsGeomTreeCopys[lay-1][5];k++){
-                   lad++;
-                   lnum[5] = k;
-                   for(det=1;det<=itsGeomTreeCopys[lay-1][6];det++){
-                       lnum[6] = det;
-                       mod++;
-                       ig->GetGeometry(ndeep,lnam,lnum,t,r,idshape,npar,natt,
-                                       par,att,imat,imed);
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
-                       if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
-                           if(fMinorVersion==1){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           } else if(fMinorVersion==2){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           }else if(fMinorVersion==3){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD425Long());
-                           }else{
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           } // end if
-                   } // end for det
-               } // end for k
-            } // end for j
-           break;
-       case 3: case 4: case 5: case 6: // layers 3-6
-           lnum[6] = 1;
-           for(lad=1;lad<=itsGeomTreeCopys[lay-1][4];lad++){
-               lnum[4] = lad;
-               for(det=1;det<=itsGeomTreeCopys[lay-1][5];det++){
-                   lnum[5] = det;
-                   mod++;
-                   ig->GetGeometry(7,lnam,lnum,t,r,idshape,npar,natt,
-                                   par,att,imat,imed);
-                   switch (lay){
-                   case 3: case 4:
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
-                       if(!(fITSgeom->IsShapeDefined(kSDD))) 
-                           fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD300());
-                           break;
-                   case 5: case 6:
-                           fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
-                           if(!(fITSgeom->IsShapeDefined(kSSD))) 
-                               fITSgeom->ReSetShape(kSSD,new AliITSgeomSSD175());
-                           break;
-                       } // end switch
-               } // end for det
-           } // end for lad
-           break;
-       } // end switch
-    } // end for lay
-    return;
-}
-//_____________________________________________________________________________
-void AliITSv5asymm::Init(){
-////////////////////////////////////////////////////////////////////////
-//     Initialise the ITS after it has been created.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    if(fDebug) {
-      cout << endl << ClassName() << ": ";
-      for(i=0;i<28;i++) cout << "*";cout << " ITSv5_Init ";
-      for(i=0;i<27;i++) cout << "*";cout << endl;
-    }
-//
-    if(fRead[0]=='\0') strncpy(fRead,fEuclidGeomDet,60);
-    if(fWrite[0]=='\0') strncpy(fWrite,fEuclidGeomDet,60);
-    if(fITSgeom!=0) delete fITSgeom;
-    fITSgeom = new AliITSgeom();
-    if(fGeomDetIn && !fGeomOldDetIn) fITSgeom->ReadNewFile(fRead);
-    if(fGeomDetIn &&  fGeomOldDetIn) this->ReadOldGeometry(fRead);
-
-    if(!fGeomDetIn) this->InitAliITSgeom();
-    if(fGeomDetOut) fITSgeom->WriteNewFile(fWrite);
-    AliITS::Init();
-//
-    if(fDebug) {
-      cout << ClassName() << ": ";
-      for(i=0;i<72;i++) cout << "*";
-      cout << endl;
-    }
-} 
-//_____________________________________________________________________________
-void AliITSv5asymm::StepManager(){
-////////////////////////////////////////////////////////////////////////
-//    Called for every step in the ITS, then calles the AliITShit class
-// creator with the information to be recoreded about that hit.
-//     The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
-// printing of information to a file which can be used to create a .det
-// file read in by the routine CreateGeometry(). If set to 0 or any other
-// value except 1, the default behavior, then no such file is created nor
-// it the extra variables and the like used in the printing allocated.
-////////////////////////////////////////////////////////////////////////
-  Int_t          copy, id;
-  Int_t          copy1,copy2;
-  Float_t        hits[8];
-  Int_t          vol[4];
-  TLorentzVector position, momentum;
-  TClonesArray   &lhits = *fHits;
-  //
-  // Track status
-  vol[3] = 0;
-  if(gMC->IsTrackInside())      vol[3] +=  1;
-  if(gMC->IsTrackEntering())    vol[3] +=  2;
-  if(gMC->IsTrackExiting())     vol[3] +=  4;
-  if(gMC->IsTrackOut())         vol[3] +=  8;
-  if(gMC->IsTrackDisappeared()) vol[3] += 16;
-  if(gMC->IsTrackStop())        vol[3] += 32;
-  if(gMC->IsTrackAlive())       vol[3] += 64;
-  //
-  // Fill hit structure.
-  if(!(gMC->TrackCharge())) return;
-  //
-  // Only entering charged tracks
-  if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
-      vol[0] = 1;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS1)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->2  (I186)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
-  } else if(id == fIdSens[1]){
-      vol[0] = 2;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS2)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->4  (I131)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
-  } else if(id == fIdSens[2]){
-      vol[0] = 3;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->5  (ITS3 is inside I314)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->12 (I316)
-      vol[2] = copy;
-  } else if(id == fIdSens[3]){
-      vol[0] = 4;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->8  (ITS4 is inside I414)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->22 (I417)
-      vol[2] = copy;
-  }else if(id == fIdSens[4]){
-      vol[0] = 5;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->23  (ITS5 is inside I562)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-     //ladder copy in the layer    = 1<->34 (I565)
-      vol[2] = copy;
-  }else if(id == fIdSens[5]){
-      vol[0] = 6;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->26  (ITS6 is inside I566)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer = 1<->38 (I569)
-      vol[2] = copy;
-  } else {
-      return; // not an ITS volume?
-  } // end if/else if (gMC->CurentVolID(copy) == fIdSens[i])
-//
-  gMC->TrackPosition(position);
-  gMC->TrackMomentum(momentum);
-  hits[0]=position[0];
-  hits[1]=position[1];
-  hits[2]=position[2];
-  hits[3]=momentum[0];
-  hits[4]=momentum[1];
-  hits[5]=momentum[2];
-  hits[6]=gMC->Edep();
-  hits[7]=gMC->TrackTime();
-  // Fill hit structure with this new hit.
-  new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
-  return;
-}
diff --git a/ITS/AliITSv5asymm.h b/ITS/AliITSv5asymm.h
deleted file mode 100644 (file)
index 8a18c67..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef ALIITSV5ASYMM_H
-#define ALIITSV5ASYMM_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-////////////////////////////////////////////////////////////////////////
-//     Manager and hits classes for  ITS version 5 with symm services
-////////////////////////////////////////////////////////////////////////
-
-
-#include "AliITS.h"
-
-class TBRIK;
-class AliITSv5asymm : public AliITS {
-
- public:
-    AliITSv5asymm();
-    AliITSv5asymm(const char *name, const char *title);
-    AliITSv5asymm(const AliITSv5asymm &source); // copy constructor
-    AliITSv5asymm& operator=(const AliITSv5asymm &source); // assignment operator       
-    virtual       ~AliITSv5asymm() ;
-    virtual void   BuildGeometry();
-    virtual void  CreateGeometry();
-    virtual void  CreateMaterials();
-    virtual void  Init();   
-    virtual Int_t IsVersion() const { // returns the ITS version number
-       return 5;}
-    virtual void  StepManager();
-    void ReadOldGeometry(const char *filename);
-    virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
-                                                fGeomDetOut = det;}
-    virtual void   SetWriteDet(const char *f){ // set write file
-                                    strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
-    virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomDetIn = det;}
-    virtual void   SetReadOldDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomOldDetIn = det;}
-    virtual void   SetReadDet(const char *f){ // set read file
-                                      strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
-    virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
-                                                 fEuclidOut = euclid;}
-    virtual void   SetEUCLIDFileName(const char *f){ // set write file
-                            fEuclidGeometry=f;fEuclidOut = kTRUE;}
-    virtual void   SetMinorVersion(Int_t v){ // Choose between existing minor versions
-       fMinorVersion = 3;
-       if(v==1) fMinorVersion = 1;
-       else if(v==2) fMinorVersion = 2;
-       else if(v==3) fMinorVersion = 3;
-       else Warning("SetMinorVersion","Undefined Minor Version setting =3");}
-    virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag.
-    virtual const char  *GetEULIIDFileName() const{ // return .euc file name
-                                      return fEuclidGeometry.Data();}
-    virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag.
-                                 return fGeomDetOut;}
-    virtual Bool_t GetReadDet() { // returns value GeomDetIn flag.
-                                return fGeomDetIn;}
-    virtual Bool_t GetReadDetOld() { // returns value GeomDetIn flag.
-                                return fGeomOldDetIn;}
-    virtual char  *GetReadDetFileName(){ // return .det read file name
-                 if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
-    virtual char  *GetWriteDetFileName(){ // return .det write file name
-               if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
-    virtual Int_t GetMajorVersion(){// return Major Version Number
-       return fMajorVersion;}
-    virtual Int_t GetMinorVersion(){// return Major Version Number
-       return fMinorVersion;}
-
- private:
-    void InitAliITSgeom();
-
-    // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
-    Bool_t fEuclidOut;        // Flag to write geometry in euclid format
-    Bool_t fGeomDetOut;       // Flag to write .det file out
-    Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
-    Bool_t fGeomOldDetIn;     // Flag to read old .det file.
-    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
-
-
-    ClassDef(AliITSv5asymm,1)//Hits manager for ITS version 5 Official detailed 
-                                //geometry with asymmetric services
-};
-#endif
diff --git a/ITS/AliITSv5symm.cxx b/ITS/AliITSv5symm.cxx
deleted file mode 100644 (file)
index cc2c039..0000000
+++ /dev/null
@@ -1,813 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Inner Traking System version 5 with symmetric services
-//  This class contains the base procedures for the Inner Tracking System
-//
-// Authors: R. Barbera, B. S. Nilsen.
-// version 5.
-// Created October 7 2000.
-//
-///////////////////////////////////////////////////////////////////////////////
-#include <Riostream.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <TBRIK.h>
-#include <TCanvas.h>
-#include <TClonesArray.h>
-#include <TFile.h>    // only required for Tracking function?
-#include <TGeometry.h>
-#include <TLorentzVector.h>
-#include <TMath.h>
-#include <TNode.h>
-#include <TObjArray.h>
-#include <TObjString.h>
-#include <TSystem.h>
-#include <TTUBE.h>
-#include <TVirtualMC.h>
-
-#include "AliRun.h"
-#include "AliITShit.h"
-#include "AliITSGeant3Geometry.h"
-#include "AliITSgeom.h"
-#include "AliITSgeomSDD.h"
-#include "AliITSgeomSPD.h"
-#include "AliITSgeomSSD.h"
-#include "AliITShit.h"
-#include "AliITSv5symm.h"
-#include "AliRun.h"
-#include "AliMC.h"
-
-ClassImp(AliITSv5symm)
-//_____________________________________________________________________________
-AliITSv5symm::AliITSv5symm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard default constructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 0;
-    fIdName = 0;
-    fIdSens = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 2;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-    for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
-}
-//_____________________________________________________________________________
-AliITSv5symm::AliITSv5symm(const char *name, const char *title) : AliITS(name, title){
-/////////////////////////////////////////////////////////////////////////////
-//    Standard constructor for the ITS version 5 with symmetrical services.
-/////////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN    = 6;
-    fIdName    = new TString[fIdN];
-    fIdName[0] = "ITS1";
-    fIdName[1] = "ITS2";
-    fIdName[2] = "ITS3";
-    fIdName[3] = "ITS4";
-    fIdName[4] = "ITS5";
-    fIdName[5] = "ITS6";
-    fIdSens    = new Int_t[fIdN];
-    for (i=0;i<fIdN;i++) fIdSens[i] = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fGeomOldDetIn = kFALSE; // Don't Read old formatted .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = 2;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-
-    fEuclidMaterial = "$ALICE_ROOT/Euclid/ITSgeometry_5symm.tme";
-    fEuclidGeometry = "$ALICE_ROOT/Euclid/ITSgeometry_5symm.euc";
-    strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_v5symm.det",60);
-    strncpy(fRead,fEuclidGeomDet,60);
-    strncpy(fWrite,fEuclidGeomDet,60);
-}
-//____________________________________________________________________________
-AliITSv5symm::AliITSv5symm(const AliITSv5symm &source) : AliITS(source){
-////////////////////////////////////////////////////////////////////////
-//     Copy Constructor for ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
-    Warning("Copy Constructor","Not allowed to copy AliITSv5symm");
-    return;
-}
-//_____________________________________________________________________________
-AliITSv5symm& AliITSv5symm::operator=(const AliITSv5symm &source){
-////////////////////////////////////////////////////////////////////////
-//    Assignment operator for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-
-    if(&source == this) return *this;
-    Warning("= operator","Not allowed to copy AliITSv5symm");
-    return *this;
-
-}
-//_____________________________________________________________________________
-AliITSv5symm::~AliITSv5symm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard destructor for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-}
-//_____________________________________________________________________________
-void AliITSv5symm::BuildGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    Geometry builder for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-  //
-  // Build ITS TNODE geometry for event display using detailed geometry.
-  // This function builds a simple ITS geometry used by the ROOT macro
-  // ITSdisplay.C.
-
-  TNode *top;
-  TNode *nd;
-  //const int kColorITSSPD=kRed;
-  //const int kColorITSSDD=kGreen;
-  const int kColorITSSSD=kBlue;
-  //
-  AliITSgeom  *gm = this->GetITSgeom();
-  if(gm==0) return;
-  top=gAlice->GetGeometry()->GetNode("alice");
-
-  Int_t       lay,lad,det,i;
-  Text_t      name[10];
-  Float_t     xg[3];
-  Float_t     rt[9];
-  Double_t    rtd[9];
-  TBRIK       *box;
-  TRotMatrix  *rm;
-  //TCanvas     *c1 = new TCanvas("c1","ITS");
-
-  for(lay=1;lay<=2;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSPD","Active volume of SPD","SPD SI DET",
-                                   0.64,0.0075,4.19); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SPD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=3;lay<=3;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-  for(lay=4;lay<=4;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSDD","Active volume of SDD","SDD SI DET",
-                                   3.5,0.014,3.763); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SDD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
- for(lay=5;lay<=5;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]);
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-         //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
- for(lay=6;lay<=6;lay++)
-   for(lad=1;lad<=gm->GetNladders(lay);lad++)
-    for(det=1;det<=gm->GetNdetectors(lay);det++){
-          try {
-              box  = new TBRIK ("ActiveSSD","Active volume of SSD","SSD SI DET",
-                                   3.65,0.015,2.0); 
-          } catch (...) {
-             cout << "EXCEPTION in box = new TBRIK" << endl;
-             return;
-         }
-
-          gm->GetTrans(lay,lad,det,xg[0],xg[1],xg[2]); 
-          gm->GetRotMatrix(lay,lad,det,rt);
-          //sprintf(name,"ROT%1.1d2.2d2.2d",lay,lad,det);
-          for(i=0;i<9;i++) rtd[i] = rt[i];
-          try {
-               rm  = new TRotMatrix(name,name,rtd);
-          } catch (...) {
-               cout << "EXCEPTION in   new TRotMatrix" << endl;
-                return;
-          }
-         top->cd();
-          //sprintf(name,"ND%1.1d2.2d2.2d",lay,lad,det); 
-         try {
-              nd  = new TNode("SSD"," ",box,xg[0],xg[1],xg[2],rm);
-         } catch (...) {
-              cout << "EXCEPTION in new TNode" << endl;
-              return;
-         }
-         nd->SetLineColor(kColorITSSSD);
-         fNodes->Add(nd);
-    }
-
-
-} 
-//_____________________________________________________________________________
-void AliITSv5symm::CreateMaterials(){
-////////////////////////////////////////////////////////////////////////
-//     Read a file containing the materials for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidMaterial.Data());
-
-  FILE *file = fopen(filtmp,"r");
-  if(file) {
-    fclose(file);
-    ReadEuclidMedia(filtmp);
-  } else {
-    Error("CreateMaterials"," THE MEDIA FILE %s DOES NOT EXIST !",filtmp);
-    exit(1);
-  } // end if(file)
-}
-//_____________________________________________________________________________
-void AliITSv5symm::CreateGeometry(){
-//////////////////////////////////////////////////////////////////////
-//    This is the geometry used for the ITS Pre-TDR and comes from an 
-// Euclid to Geant conversion. The only difference
-// is in the details of the ITS supports. The detectors elements, 
-// detector numbering, and local and global reference frames are shown in
-//  the following figures.
-//Begin_Html
-/*
-<img src="picts/ITS/its1+2_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SPDs.
-</font>
-<pre>
-<img src="picts/ITS/its1+2_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SPDs.
-</font>
-<img src="picts/ITS/its1+2_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SPDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its3+4_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SDDs.
-</font>
-<pre>
-<img src="picts/ITS/its3+4_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SDDs.
-</font>
-<img src="picts/ITS/its3+4_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SDDs.
-</font>
-<pre>
-
-<pre>
-<img src="picts/ITS/its5+6_convention_front_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_convention_side_5.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the SSDs.
-</font>
-<pre>
-<img src="picts/ITS/its5+6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the SSDs.
-</font>
-<pre>
-
-
-<img src="picts/ITS/its_layer1-6_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the front view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its_layer1-6_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the perspective view of the whole ITS..
-</font>
-<pre>
-
-<img src="picts/ITS/its1-6_tree.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry Tree for the whole ITS.
-</font>
-<pre>
-*/
-//End_Html
-//
-//
-//      Here are shown the details of the ITS support cones and services.
-// First is a GEANT tree showing the organization of all of the volumes
-// that make up the ITS supports and services.
-//Begin_Html
-/*
-<img src="picts/ITS/supports_tree.gif">
- */
-//End_Html
-//     What follows are a number of figures showing what these support
-// structures look like.
-//Begin_Html
-/*
-
-<img src="picts/ITS/supports_3.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers only.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_2.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in front cut out.
-</font>
-<pre>
-
-<img src="picts/ITS/supports_1.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry of the supports for the Drift and Strip layers in a back cut out..
-</font>
-<pre>
-
-<img src="picts/ITS/suppssd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Strip layers supports.
-</font>
-<pre>
-
-<img src="picts/ITS/suppsdd.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>This shows the geometry for the Drift layers supports.
-</font>
-<pre>
- */
-//End_Html
-//
-//    Read a file containing the geometry for the ITS version 5.
-////////////////////////////////////////////////////////////////////////
-    char topvol[5];
-    char *filtmp;
-
-  filtmp = gSystem->ExpandPathName(fEuclidGeometry.Data());
-  FILE *file = fopen(filtmp,"r");
-  delete [] filtmp;
-  if(file) {
-    fclose(file);
-    printf("Ready to read Euclid geometry file\n");
-    ReadEuclid(fEuclidGeometry.Data(),topvol);
-    printf("Read in euclid geometries\n");
-  } else {
-    Error("CreateGeometry"," THE GEOM FILE %s DOES NOT EXIST !",
-         fEuclidGeometry.Data());
-    exit(1);
-  } // end if(file)
-  //
-  // Place the ITS ghost volume ITSV in its mother volume (ALIC) and make it
-  // invisible
-  //
-  gMC->Gspos("ITSV",1,"ALIC",0,0,0,0,"ONLY");
-  //
-  // Outputs the geometry tree in the EUCLID/CAD format if requested to do so
-  
-    if (fEuclidOut) {
-      gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
-    } // end if (fEuclidOut)
-    cout << "finished with euclid geometrys" << endl;
-}
-//______________________________________________________________________
-void AliITSv5symm::ReadOldGeometry(const char *filename){
-    // read in the file containing the transformations for the active
-    // volumes for the ITS version 5. This is expected to be in a file
-    // ending in .det. This geometry is kept in the AliITSgeom class.
-    Int_t size;
-    char *filtmp;
-    FILE *file;
-
-    filtmp = gSystem->ExpandPathName(filename);
-    size = strlen(filtmp);
-    if(size>4 && fGeomDetIn){
-        filtmp[size-3] = 'd'; // change from .euc to .det
-        filtmp[size-2] = 'e';
-        filtmp[size-1] = 't';
-        file = fopen(filtmp,"r");
-        if(file){ // if file exists use it to fill AliITSgeom structure.
-            fclose(file);
-            fITSgeom = new AliITSgeom(filtmp);
-            fITSgeom->DefineShapes(3); // if fShape isn't defined define it.
-            // Now define the detector types/shapes.
-            fITSgeom->ReSetShape(kSPD,(TObject *) new AliITSgeomSPD300());
-            fITSgeom->ReSetShape(kSDD,(TObject *) new AliITSgeomSDD300());
-            fITSgeom->ReSetShape(kSSD,(TObject *) new AliITSgeomSSD());
-        }else{
-            fITSgeom = 0;
-            // fill AliITSgeom structure from geant structure just filled above
-        }// end if(file)
-        delete [] filtmp;
-    }// end if(size>4)
-}
-//______________________________________________________________________
-void AliITSv5symm::InitAliITSgeom(){
-//     Based on the geometry tree defined in Geant 3.21, this
-// routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
-// sturture.
-//    if(gMC->IsA()!=TGeant3::Class()) {
-    if(strcmp(gMC->GetName(),"TGeant3")) {
-       Error("InitAliITSgeom",
-               "Wrong Monte Carlo. InitAliITSgeom uses TGeant3 calls");
-       return;
-    } // end if
-    cout << "Reading Geometry transformation directly from Geant 3." << endl;
-    const Int_t nlayers = 6;
-    const Int_t ndeep = 7;
-    Int_t itsGeomTreeNames[nlayers][ndeep],lnam[20],lnum[20];
-    Int_t nlad[nlayers],ndet[nlayers];
-    Double_t t[3],r[10];
-    Float_t  par[20],att[20];
-    Int_t    npar,natt,idshape,imat,imed;
-    AliITSGeant3Geometry *ig = new AliITSGeant3Geometry();
-    Int_t mod,lay,lad,det,i,j,k;
-    char *names[nlayers][ndeep] = {
-        {"ALIC","ITSV","ITSD","IT12","I132","I186","ITS1"}, // lay=1
-        {"ALIC","ITSV","ITSD","IT12","I132","I131","ITS2"}, // lay=2
-        {"ALIC","ITSV","ITSD","IT34","I004","I302","ITS3"}, // lay=3
-        {"ALIC","ITSV","ITSD","IT34","I005","I402","ITS4"}, // lay=4
-        {"ALIC","ITSV","ITSD","IT56","I565","I562","ITS5"}, // lay=5
-        {"ALIC","ITSV","ITSD","IT56","I569","I566","ITS6"}};// lay=6
-    Int_t itsGeomTreeCopys[nlayers][ndeep] = {{1,1,1,1,10, 2,4}, // lay=1
-                                              {1,1,1,1,10, 4,4}, // lay=2
-                                              {1,1,1,1,14, 6,1}, // lay=3
-                                              {1,1,1,1,22, 8,1}, // lay=4
-                                              {1,1,1,1,34,23,1}, // lay=5
-                                              {1,1,1,1,38,26,1}};// lay=6
-
-    // Sorry, but this is not very pritty code. It should be replaced
-    // at some point with a version that can search through the geometry
-    // tree its self.
-    cout << "Reading Geometry informaton from Geant3 common blocks" << endl;
-    for(i=0;i<20;i++) lnam[i] = lnum[i] = 0;
-    for(i=0;i<nlayers;i++)for(j=0;j<ndeep;j++)
-        strncpy((char*) &itsGeomTreeNames[i][j],names[i][j],4); 
-    // itsGeomTreeNames[i][j] = ig->StringToInt(names[i][j]);
-    mod = 0;
-    for(i=0;i<nlayers;i++){
-       k = 1;
-       for(j=0;j<ndeep;j++) if(itsGeomTreeCopys[i][j]!=0)
-           k *= TMath::Abs(itsGeomTreeCopys[i][j]);
-       mod += k;
-    } // end for i
-
-    if(fITSgeom!=0) delete fITSgeom;
-    nlad[0]=20;nlad[1]=40;nlad[2]=14;nlad[3]=22;nlad[4]=34;nlad[5]=38;
-    ndet[0]=4;ndet[1]=4;ndet[2]=6;ndet[3]=8;ndet[4]=23;ndet[5]=26;
-    fITSgeom = new AliITSgeom(0,6,nlad,ndet,mod);
-    mod = -1;
-    for(lay=1;lay<=nlayers;lay++){
-       for(j=0;j<ndeep;j++) lnam[j] = itsGeomTreeNames[lay-1][j];
-       for(j=0;j<ndeep;j++) lnum[j] = itsGeomTreeCopys[lay-1][j];
-       switch (lay){
-       case 1: case 2: // layers 1 and 2 are a bit special
-           lad = 0;
-           for(j=1;j<=itsGeomTreeCopys[lay-1][4];j++){
-               lnum[4] = j;
-               for(k=1;k<=itsGeomTreeCopys[lay-1][5];k++){
-                   lad++;
-                   lnum[5] = k;
-                   for(det=1;det<=itsGeomTreeCopys[lay-1][6];det++){
-                       lnum[6] = det;
-                       mod++;
-                       ig->GetGeometry(ndeep,lnam,lnum,t,r,idshape,npar,natt,
-                                       par,att,imat,imed);
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSPD,t,r);
-                       if(!(fITSgeom->IsShapeDefined((Int_t)kSPD)))
-                           if(fMinorVersion==1){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           } else if(fMinorVersion==2){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           }else if(fMinorVersion==3){
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD425Long());
-                           }else{
-                             fITSgeom->ReSetShape(kSPD,
-                                                 new AliITSgeomSPD300());
-                           } // end if
-                   } // end for det
-               } // end for k
-            } // end for j
-           break;
-       case 3: case 4: case 5: case 6: // layers 3-6
-           lnum[6] = 1;
-           for(lad=1;lad<=itsGeomTreeCopys[lay-1][4];lad++){
-               lnum[4] = lad;
-               for(det=1;det<=itsGeomTreeCopys[lay-1][5];det++){
-                   lnum[5] = det;
-                   mod++;
-                   ig->GetGeometry(7,lnam,lnum,t,r,idshape,npar,natt,
-                                   par,att,imat,imed);
-                   switch (lay){
-                   case 3: case 4:
-                       fITSgeom->CreatMatrix(mod,lay,lad,det,kSDD,t,r);
-                       if(!(fITSgeom->IsShapeDefined(kSDD))) 
-                           fITSgeom->ReSetShape(kSDD,new AliITSgeomSDD300());
-                           break;
-                   case 5: case 6:
-                           fITSgeom->CreatMatrix(mod,lay,lad,det,kSSD,t,r);
-                           if(!(fITSgeom->IsShapeDefined(kSSD))) 
-                               fITSgeom->ReSetShape(kSSD,new AliITSgeomSSD175());
-                           break;
-                       } // end switch
-               } // end for det
-           } // end for lad
-           break;
-       } // end switch
-    } // end for lay
-    return;
-}
-//_____________________________________________________________________________
-void AliITSv5symm::Init(){
-////////////////////////////////////////////////////////////////////////
-//     Initialise the ITS after it has been created.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    cout << endl;
-    for(i=0;i<28;i++) cout << "*";cout << " ITSv5symm_Init ";
-    for(i=0;i<28;i++) cout << "*";cout << endl;
-//
-    if(fRead[0]=='\0') strncpy(fRead,fEuclidGeomDet,60);
-    if(fWrite[0]=='\0') strncpy(fWrite,fEuclidGeomDet,60);
-    if(fITSgeom!=0) delete fITSgeom;
-    fITSgeom = new AliITSgeom();
-    if(fGeomDetIn && !fGeomOldDetIn) fITSgeom->ReadNewFile(fRead);
-    if(fGeomDetIn &&  fGeomOldDetIn) this->ReadOldGeometry(fRead);
-
-    if(!fGeomDetIn) this->InitAliITSgeom();
-    if(fGeomDetOut) fITSgeom->WriteNewFile(fWrite);
-    AliITS::Init();
-//
-    for(i=0;i<72;i++) cout << "*";
-    cout << endl;
-} 
-//_____________________________________________________________________________
-void AliITSv5symm::StepManager(){
-////////////////////////////////////////////////////////////////////////
-//    Called for every step in the ITS, then calles the AliITShit class
-// creator with the information to be recoreded about that hit.
-//     The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
-// printing of information to a file which can be used to create a .det
-// file read in by the routine CreateGeometry(). If set to 0 or any other
-// value except 1, the default behavior, then no such file is created nor
-// it the extra variables and the like used in the printing allocated.
-////////////////////////////////////////////////////////////////////////
-  Int_t          copy, id;
-  Int_t          copy1,copy2;
-  Float_t        hits[8];
-  Int_t          vol[4];
-  TLorentzVector position, momentum;
-  TClonesArray   &lhits = *fHits;
-  //
-  // Track status
-  vol[3] = 0;
-  if(gMC->IsTrackInside())      vol[3] +=  1;
-  if(gMC->IsTrackEntering())    vol[3] +=  2;
-  if(gMC->IsTrackExiting())     vol[3] +=  4;
-  if(gMC->IsTrackOut())         vol[3] +=  8;
-  if(gMC->IsTrackDisappeared()) vol[3] += 16;
-  if(gMC->IsTrackStop())        vol[3] += 32;
-  if(gMC->IsTrackAlive())       vol[3] += 64;
-  //
-  // Fill hit structure.
-  if(!(gMC->TrackCharge())) return;
-  //
-  // Only entering charged tracks
-  if((id = gMC->CurrentVolID(copy)) == fIdSens[0]) {
-      vol[0] = 1;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS1)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->2  (I186)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*2;//# of ladders in one module  = 2
-  } else if(id == fIdSens[1]){
-      vol[0] = 2;
-      id = gMC->CurrentVolOffID(0,copy);
-      //detector copy in the ladder = 1<->4  (ITS2)
-      vol[1] = copy;
-      gMC->CurrentVolOffID(1,copy1);
-      //ladder copy in the module   = 1<->4  (I131)
-      gMC->CurrentVolOffID(2,copy2);
-      //module copy in the layer    = 1<->10 (I132)
-      vol[2] = copy1+(copy2-1)*4;//# of ladders in one module  = 4
-  } else if(id == fIdSens[2]){
-      vol[0] = 3;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->5  (ITS3 is inside I314)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->12 (I316)
-      vol[2] = copy;
-  } else if(id == fIdSens[3]){
-      vol[0] = 4;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->8  (ITS4 is inside I414)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer    = 1<->22 (I417)
-      vol[2] = copy;
-  }else if(id == fIdSens[4]){
-      vol[0] = 5;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->23  (ITS5 is inside I562)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-     //ladder copy in the layer    = 1<->34 (I565)
-      vol[2] = copy;
-  }else if(id == fIdSens[5]){
-      vol[0] = 6;
-      id = gMC->CurrentVolOffID(1,copy);
-      //detector copy in the ladder = 1<->26  (ITS6 is inside I566)
-      vol[1] = copy;
-      id = gMC->CurrentVolOffID(2,copy);
-      //ladder copy in the layer = 1<->38 (I569)
-      vol[2] = copy;
-  } else {
-      return; // not an ITS volume?
-  } // end if/else if (gMC->CurentVolID(copy) == fIdSens[i])
-//
-  gMC->TrackPosition(position);
-  gMC->TrackMomentum(momentum);
-  hits[0]=position[0];
-  hits[1]=position[1];
-  hits[2]=position[2];
-  hits[3]=momentum[0];
-  hits[4]=momentum[1];
-  hits[5]=momentum[2];
-  hits[6]=gMC->Edep();
-  hits[7]=gMC->TrackTime();
-  // Fill hit structure with this new hit.
-  new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
-  return;
-}
diff --git a/ITS/AliITSv5symm.h b/ITS/AliITSv5symm.h
deleted file mode 100644 (file)
index 4b13f98..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef ALIITSV5SYMM_H
-#define ALIITSV5SYMM_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-////////////////////////////////////////////////////////////////////////
-//     Manager and hits classes for  ITS version 5 with symm services
-////////////////////////////////////////////////////////////////////////
-
-
-#include "AliITS.h"
-
-class TBRIK;
-class AliITSv5symm : public AliITS {
-
- public:
-    AliITSv5symm();
-    AliITSv5symm(const char *name, const char *title);
-    AliITSv5symm(const AliITSv5symm &source); // copy constructor
-    AliITSv5symm& operator=(const AliITSv5symm &source); // assignment operator         
-    virtual       ~AliITSv5symm() ;
-    virtual void   BuildGeometry();
-    virtual void  CreateGeometry();
-    virtual void  CreateMaterials();
-    virtual void  Init();   
-    virtual Int_t IsVersion() const {// returns the ITS version number
-       return 5;}
-    virtual void  StepManager();
-    void ReadOldGeometry(const char *filename);
-    virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
-                                                fGeomDetOut = det;}
-    virtual void   SetWriteDet(const char *f){ // set write file
-                                    strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
-    virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomDetIn = det;}
-    virtual void   SetReadOldDet(Bool_t det=kTRUE){ //set .det read
-                                               fGeomOldDetIn = det;}
-    virtual void   SetReadDet(const char *f){ // set read file
-                                      strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
-    virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
-                                                 fEuclidOut = euclid;}
-    virtual void   SetEUCLIDFileName(const char *f){ // set write file
-                            fEuclidGeometry=f;fEuclidOut = kTRUE;}
-    virtual void   SetMinorVersion(Int_t v){ // Choose between existing minor versions
-       fMinorVersion = 2;
-       if(v==1) fMinorVersion = 1;
-       else if(v==2) fMinorVersion = 2;
-       else if(v==3) fMinorVersion = 3;
-       else Warning("SetMinorVersion","Undefined Minor Version setting =2");}
-    virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag.
-    virtual const char  *GetEULIIDFileName() const{ // return .euc file name
-                                      return fEuclidGeometry.Data();}
-    virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag.
-                                 return fGeomDetOut;}
-    virtual Bool_t GetReadDet() { // returns value GeomDetIn flag.
-                                return fGeomDetIn;}
-    virtual Bool_t GetReadDetOld() { // returns value GeomDetIn flag.
-                                return fGeomOldDetIn;}
-    virtual char  *GetReadDetFileName(){ // return .det read file name
-                 if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
-    virtual char  *GetWriteDetFileName(){ // return .det write file name
-               if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
-    virtual Int_t GetMajorVersion(){// return Major Version Number
-       return fMajorVersion;}
-    virtual Int_t GetMinorVersion(){// return Major Version Number
-       return fMinorVersion;}
-
- private:
-    void InitAliITSgeom();
-
-    // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
-    Bool_t fEuclidOut;        // Flag to write geometry in euclid format
-    Bool_t fGeomDetOut;       // Flag to write .det file out
-    Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
-    Bool_t fGeomOldDetIn;     // Flag to read old .det file.
-    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
-
-
-    ClassDef(AliITSv5symm,1)//Hits manager for ITS version 5 Official detailed 
-                                //geometry with symmetric services
-};
-#endif
diff --git a/ITS/AliITSvPPRasymm.cxx b/ITS/AliITSvPPRasymm.cxx
deleted file mode 100644 (file)
index efaec5d..0000000
+++ /dev/null
@@ -1,29298 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//                                                                           //
-//  Inner Traking System version PPR  asymmetric                             //
-//  This class contains the base procedures for the Inner Tracking System    //
-//                                                                           //
-// Authors: R. Barbera                                                       //
-// version 8.                                                                //
-// Created  January 15 2001.                                                 //
-//                                                                           //
-//  NOTE: THIS IS THE  ASYMMETRIC PPR geometry of the ITS.                   //
-//                                                                           //
-///////////////////////////////////////////////////////////////////////////////
-
-// See AliITSvPPRasymm::StepManager().
-#include <Riostream.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <TBRIK.h>
-//#include <TCanvas.h>
-#include <TClonesArray.h>
-//#include <TFile.h>    // only required for Tracking function?
-#include <TGeometry.h>
-#include <TLorentzVector.h>
-#include <TMath.h>
-#include <TNode.h>
-//#include <TObjArray.h>
-//#include <TObjString.h>
-#include <TPCON.h>
-//#include <TSystem.h>
-#include <TTUBE.h>
-#include <TTUBS.h>
-#include <TVirtualMC.h>
-
-#include "AliRun.h"
-#include "AliMagF.h"
-#include "AliConst.h"
-#include "AliITSGeant3Geometry.h"
-#include "AliTrackReference.h"
-#include "AliITShit.h"
-#include "AliITS.h"
-#include "AliITSvPPRasymm.h"
-#include "AliITSgeom.h"
-#include "AliITSgeomSDD.h"
-#include "AliITSgeomSPD.h"
-#include "AliITSgeomSSD.h"
-#include "AliITShit.h"
-#include "AliITSresponseSDD.h"
-#include "AliITSresponseSPD.h"
-#include "AliITSresponseSSD.h"
-#include "AliITSsegmentationSDD.h"
-#include "AliITSsegmentationSPD.h"
-#include "AliITSsegmentationSSD.h"
-#include "AliITSsimulationSDD.h"
-#include "AliITSsimulationSPD.h"
-#include "AliITSsimulationSSD.h"
-#include "AliITSvPPRasymm.h"
-#include "AliMC.h"
-
-
-ClassImp(AliITSvPPRasymm)
-//_____________________________________________________________________________
-AliITSvPPRasymm::AliITSvPPRasymm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard default constructor for the ITS version 8.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN          = 0;
-    fIdName       = 0;
-    fIdSens       = 0;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    fMajorVersion = IsVersion();
-    fMinorVersion = -1;
-    for(i=0;i<60;i++) fRead[i] = '\0';
-    for(i=0;i<60;i++) fWrite[i] = '\0';
-    for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
-}
-//_____________________________________________________________________________
-AliITSvPPRasymm::AliITSvPPRasymm(const char *name, const char *title) : AliITS(name, title){
-////////////////////////////////////////////////////////////////////////
-//    Standard constructor for the ITS version 8.
-////////////////////////////////////////////////////////////////////////
-    Int_t i;
-
-    fIdN = 6;
-    fIdName = new TString[fIdN];
-    fIdName[0] = "ITS1";
-    fIdName[1] = "ITS2";
-    fIdName[2] = "ITS3";
-    fIdName[3] = "ITS4";
-    fIdName[4] = "ITS5";
-    fIdName[5] = "ITS6";
-    fIdSens    = new Int_t[fIdN];
-    for(i=0;i<fIdN;i++) fIdSens[i] = 0;
-    fMajorVersion = IsVersion();
-    fMinorVersion = 2;
-    fEuclidOut    = kFALSE; // Don't write Euclide file
-    fGeomDetOut   = kFALSE; // Don't write .det file
-    fGeomDetIn    = kFALSE; // Don't Read .det file
-    SetThicknessDet1();
-    SetThicknessDet2();
-    SetThicknessChip1();
-    SetThicknessChip2();                        
-
-    fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
-    strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
-    strncpy(fRead,fEuclidGeomDet,60);
-    strncpy(fWrite,fEuclidGeomDet,60);
-}
-//____________________________________________________________________________
-AliITSvPPRasymm::AliITSvPPRasymm(const AliITSvPPRasymm &source):AliITS(source){
-////////////////////////////////////////////////////////////////////////
-//     Copy Constructor for ITS version 8.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
-    Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymm");
-    return;
-}
-//_____________________________________________________________________________
-AliITSvPPRasymm& AliITSvPPRasymm::operator=(const AliITSvPPRasymm &source){
-////////////////////////////////////////////////////////////////////////
-//    Assignment operator for the ITS version 8.
-////////////////////////////////////////////////////////////////////////
-    if(&source == this) return *this;
-    Warning("= operator","Not allowed to copy AliITSvPPRasymm");
-    return *this;
-}
-//_____________________________________________________________________________
-AliITSvPPRasymm::~AliITSvPPRasymm() {
-////////////////////////////////////////////////////////////////////////
-//    Standard destructor for the ITS version 8.
-////////////////////////////////////////////////////////////////////////
-}
-//__________________________________________________________________________
-void AliITSvPPRasymm::BuildGeometry(){
-////////////////////////////////////////////////////////////////////////
-//    Geometry builder for the ITS version 8.
-////////////////////////////////////////////////////////////////////////
-    TNode *node, *top;
-    
-    const Int_t kColorITS=kYellow;
-    //
-    top = gAlice->GetGeometry()->GetNode("alice");
-
-
-    new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
-    top->cd();
-    node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
-    top->cd();
-    node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
-    top->cd();
-    node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
-    top->cd();
-    node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
-    top->cd();
-    node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-    new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
-    top->cd();
-    node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
-    node->SetLineColor(kColorITS);
-    fNodes->Add(node);
-
-
-/*
-  // DETAILED GEOMETRY
-
-  TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
-
-  // Define some variables for SPD
-
-  Float_t dits[100];
-  Float_t dits1[3], di101[3], di107[3], di10b[3];  // for layer 1 
-  Float_t di103[3], di10a[3];                      // for layer 1
-  Float_t dits2[3], di1d1[3], di1d7[3], di20b[3];  // for layer 2
-  Float_t di1d3[3], di20a[3];                      // for layer 2  
-
-  Float_t ddet1=200.;     // total detector thickness on layer 1 (micron)
-  Float_t dchip1=200.;    // total chip thickness on layer 1 (micron)
-  
-  Float_t ddet2=200.;     // total detector thickness on layer 2 (micron)                         
-  Float_t dchip2=200.;    // total chip thickness on layer 2 (micron)
-  
-  Float_t dbus=300.;      // total bus thickness on both layers (micron)
-
-  ddet1 = GetThicknessDet1();
-  ddet2 = GetThicknessDet2();
-  dchip1 = GetThicknessChip1();
-  dchip2 = GetThicknessChip2();    
-
-  cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl; 
-
-  if(ddet1 < 100. || ddet1 > 300.) {
-     cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
-         " The default value of 200 microns will be used." << endl;
-         ddet1=200.;
-  }
-  
-  if(ddet2 < 100. || ddet2 > 300.) {
-     cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
-         " The default value of 200 microns will be used." << endl;
-         ddet2=200.;
-  }
-  
-  if(dchip1 < 100. || dchip1 > 300.) {
-     cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
-         " The default value of 200 microns will be used." << endl;
-         dchip1=200.;
-  }
-  
-  if(dchip2 < 100. || dchip2 > 300.) {
-     cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
-         " The default value of 200 microns will be used." << endl;
-         dchip2=200.;
-  }      
-   
-  cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
-  cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
-  cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
-  cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
-
-  ddet1  = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
-  ddet2  = ddet2*0.0001/2.; // conversion from tot length in um to half in cm  
-  dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm  
-  dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm  
-  dbus   = dbus*0.0001/2.;  // conversion from tot length in um to half in cm       
-               
-  Float_t deltax, deltay; 
-
-  Int_t thickness = fMinorVersion/10;
-  Int_t option    = fMinorVersion - 10*thickness;
-
-
-  // Define some variables for SDD
-  // SDD detector ladder
-
-  Float_t ySDD;
-  Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
-  Float_t Y_SDD_sep = 0.20;
-  Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
-  Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
-
-  // Rotation matrices
-    
-  // SPD - option 'a' 
-  
-  if (option == 1) {  
-  
-     new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
-     new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
-     new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);     
-     new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );     
-     new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
-     new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);          
-     new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0); 
-     new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);     
-     new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);  
-     new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
-     new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
-     new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
-     new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
-     new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
-     new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);     
-                 
-  }   
-
-  // SPD - option 'b' (this is the default)  
-
-  if (option == 2) {  
-  
-     new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
-     new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
-     new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);  
-     new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);     
-     new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);  
-     new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);    
-     new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
-     new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);     
-     new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);       
-     new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
-     new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);     
-     new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
-     new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
-     new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
-     new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
-
-  }   
-     
-  // SDD
-  
-  new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);       
-  new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
-  new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);      
-  new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);    
-  new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);   
-  new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
-  new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);  
-  new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);    
-  new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);  
-  new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);  
-  new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);   
-  new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);  
-  new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0); 
-  new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);              
-  new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0); 
-  new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);  
-  new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);       
-  new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);      
-  new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);         
-  new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);    
-  new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);  
-  new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);  
-  new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);  
-  new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0); 
-  new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);  
-  new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);   
-  new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);   
-  new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);  
-  new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);  
-  new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);  
-  new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);  
-  new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);  
-  new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);      
-  new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);      
-  new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0); 
-  new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);       
-      
-  //SSD 
-  
-  new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);  
-  new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);  
-  new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);  
-  new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);  
-  new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
-  new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
-  new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);  
-  new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
-  new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
-  new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0); 
-  new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0); 
-  new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);  
-  new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);  
-  new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);  
-  new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);  
-  new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
-  new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
-  new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);  
-  new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
-  new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
-  new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0); 
-  new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);  
-  new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);  
-  new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);  
-  new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);  
-  new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
-  new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0); 
-  new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0); 
-  new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);   
-  new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);  
-  new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);  
-  new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
-  new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);         
-  new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
-  new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);  
-  new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
-  new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
-  new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0); 
-  new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);  
-  new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);  
-  new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);  
-  new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);  
-  new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
-  new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
-  new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0); 
-  new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);  
-  new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);  
-  new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);  
-  new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);  
-  new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
-  new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
-  new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);  
-  new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
-  new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
-  new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0); 
-  new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);  
-  new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);  
-  new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);  
-  new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);  
-  new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
-  new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
-  new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);  
-  new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
-  new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
-  new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
-  new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);  
-  new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);  
-  new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);  
-  new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);  
-  new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
-  new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);       
-  
-  
-  // --- Define SPD (option 'a') volumes ----------------------------
-  
-  // SPD - option 'a' 
-  // (this is NOT the default)
-  
-  if (option == 1) { 
-    
-    dits1[0] = 0.64;
-    dits1[1] = ddet1;
-    dits1[2] = 3.48;
-    new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
-    
-    dits2[0] = 0.64;
-    dits2[1] = ddet2;
-    dits2[2] = 3.48;
-    new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);    
-    
-    di101[0] = 0.705;
-    di101[1] = ddet1;
-    di101[2] = 3.536;
-    new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
-    
-    di1d1[0] = 0.705;
-    di1d1[1] = ddet2;
-    di1d1[2] = 3.536;
-    new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);    
-    
-    di103[0] = 0.793;
-    di103[1] = ddet1+dchip1;
-    di103[2] = 3.536;
-    new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);    
-    
-    di1d3[0] = 0.793;
-    di1d3[1] = ddet2+dchip2;
-    di1d3[2] = 3.536;
-    new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);        
-        
-    di10a[0] = 0.843;
-    di10a[1] = ddet1+dchip1+dbus+0.0025;  
-    di10a[2] = 19.344;
-    new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]); 
-    
-    di20a[0] = 0.843;
-    di20a[1] = ddet2+dchip2+dbus+0.0025;  
-    di20a[2] = 19.344;
-    new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);     
-
-    dits[0] = 3.7;
-    dits[1] = 7.7;
-    dits[2] = 24;
-    dits[3] = 57;
-    dits[4] = 100;
-    new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
-     
-    dits[0] = 3.7;
-    dits[1] = 7.75;
-    dits[2] = 26.1;
-    new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);  
-    
-  }
-  
-  // --- Define SPD (option 'b') volumes ----------------------------
-  
-  // SPD - option 'b' 
-  // (this is the default)
-
-  if (option == 2) {
-    
-    dits1[0] = 0.64;
-    dits1[1] = ddet1;
-    dits1[2] = 3.48;
-    new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
-    
-    dits2[0] = 0.64;
-    dits2[1] = ddet2;
-    dits2[2] = 3.48;
-    new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);    
-    
-    di101[0] = 0.705;
-    di101[1] = ddet1;
-    di101[2] = 3.536;
-    new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
-    
-    di1d1[0] = 0.705;
-    di1d1[1] = ddet2;
-    di1d1[2] = 3.536;
-    new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);    
-    
-    di107[0] = 0.793;
-    di107[1] = ddet1+dchip1;
-    di107[2] = 3.536;
-    new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);    
-    
-    di1d7[0] = 0.7975;
-    di1d7[1] = ddet2+dchip2;
-    di1d7[2] = 3.536;
-    new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);        
-        
-    di10b[0] = 0.843;
-    di10b[1] = ddet1+dchip1+dbus+0.0025;  
-    di10b[2] = 19.344;
-    new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]); 
-    
-    di20b[0] = 0.843;
-    di20b[1] = ddet2+dchip2+dbus+0.0025;  
-    di20b[2] = 19.344;
-    new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);     
-
-    dits[0] = 3.7;
-    dits[1] = 7.7;
-    dits[2] = 24;
-    dits[3] = 57;
-    dits[4] = 100;
-    new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
-     
-    dits[0] = 3.7;
-    dits[1] = 7.75;
-    dits[2] = 26.1;
-    new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);  
-         
-
-  }
-
-  // --- Define SDD volumes ------------------------------------------
-  
-  TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6); 
-  it34->DefineSection(0,-34.6,23.49,28.); 
-  it34->DefineSection(1,-23.65,23.49,28.); 
-  it34->DefineSection(2,-23.65,14.59,28.); 
-  it34->DefineSection(3,23.65,14.59,28.); 
-  it34->DefineSection(4,23.65,23.49,28.); 
-  it34->DefineSection(5,34.6,23.49,28.);   
-  
-  I302dits[0] = 3.6250;
-  I302dits[1] = 0.0150;
-  I302dits[2] = 4.3794; 
-  new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
-
-  I004dits[0] = I302dits[0]+0.005;
-  I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
-  I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
-  if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
-    I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
-  }
-  I004dits[2] = I004dits[2] + I302dits[2];  
-  new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]); 
-  
-  dits[0] = 3.50850;
-  dits[1] = 0.01499; 
-  dits[2] = 3.76320;  
-  new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);    
-  I402dits[0] = 3.6250;
-  I402dits[1] = 0.0150;
-  I402dits[2] = 4.3794; 
-  new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
-
-  I005dits[0] = I402dits[0]+0.005;
-  I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
-  I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
-  if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
-    I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
-  }
-  I005dits[2] = I005dits[2] + I402dits[2];  
-  new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);   
-
-  dits[0] = 3.50850;
-  dits[1] = 0.01499; 
-  dits[2] = 3.76320;
-  new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
-
-  
-  // --- Define SSD volumes ------------------------------------------
-  
-
-  TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6); 
-  it56->DefineSection(0,-57.45,43.6,48.); 
-  it56->DefineSection(1,-49.15,43.6,48.); 
-  it56->DefineSection(2,-49.15,36.9,48.); 
-  it56->DefineSection(3,50.55,36.9,48.); 
-  it56->DefineSection(4,50.55,43.6,48.); 
-  it56->DefineSection(5,57.45,43.6,48.);    
-
-  dits[0] = 3.75;
-  dits[1] = 0.045;
-  dits[2] = 43.3;
-  new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);  
-
-  dits[0] = 3.75;
-  dits[1] = 0.045;
-  dits[2] = 50.975;
-  new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);  
-  
-  dits[0] = 3.75;
-  dits[1] = 0.015;
-  dits[2] = 2.1;
-  new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);     
-  
-  dits[0] = 3.75;
-  dits[1] = 0.015;
-  dits[2] = 2.1;
-  new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);       
-
-  dits[0] = 3.65;
-  dits[1] = 0.015;
-  dits[2] = 2;
-  new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]); 
-
-  dits[0] = 3.65;
-  dits[1] = 0.015;
-  dits[2] = 2;
-  new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);  
-
-  //
-  
-  top->cd();
-
-  // --- Place SPD (option 'a') volumes into their mother volume 
-  
-  // SPD - option 'a' 
-  // (this is NOT the default)
-
-  if (option == 1) {
-
-
-  }
-  
-  
-  // --- Place SPD (option 'b') volumes into their mother volume 
-  
-  // SPD - option 'b' 
-  // (this is the default)
-
-  if (option == 2) { 
-  
-    // Place IT12 in Alice
-    //
-    node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
-    node->SetLineColor(kColorITS);
-    node->SetVisibility(0);
-    node->cd();    
-       //
-       // Place copy #1 of I12B in IT12
-       //
-       sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
-       sub1node->SetLineColor(kColorITS);
-       sub1node->SetVisibility(0);
-       sub1node->cd();    
-          //
-         // Place copy #1 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #1 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #3 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #4 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-       fNodes->Add(sub1node);
-       node->cd(); 
-       //
-       // Place copy #2 of I12B in IT12
-       //
-       sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
-       sub1node->SetLineColor(kColorITS);
-       sub1node->SetVisibility(0);
-       sub1node->cd();    
-          //
-         // Place copy #1 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #1 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #3 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #4 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-       fNodes->Add(sub1node);
-       node->cd(); 
-       //
-       // Place copy #3 of I12B in IT12
-       //
-       sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
-       sub1node->SetLineColor(kColorITS);
-       sub1node->SetVisibility(0);
-       sub1node->cd();    
-          //
-         // Place copy #1 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #1 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #3 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #4 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-       fNodes->Add(sub1node);
-       node->cd(); 
-       //
-       // Place copy #4 of I12B in IT12
-       //
-       sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
-       sub1node->SetLineColor(kColorITS);
-       sub1node->SetVisibility(0);
-       sub1node->cd();    
-          //
-         // Place copy #1 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #1 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #3 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #4 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-       fNodes->Add(sub1node);
-       node->cd(); 
-       //
-       // Place copy #5 of I12B in IT12
-       //
-       sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot247");
-       sub1node->SetLineColor(kColorITS);
-       sub1node->SetVisibility(0);
-       sub1node->cd();    
-          //
-         // Place copy #1 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I10B in I12B
-         //
-         deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
-          deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
-          sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I107 in I10B
-             //
-            sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I101 in I107
-                //
-               sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS1 in I101
-                  //
-                  sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #1 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #2 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #3 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();
-                  //               
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-            sub2node->cd(); 
-            //
-            // Place copy #2 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #3 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-            //
-            // Place copy #4 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-                //
-               sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
-                sub4node->SetLineColor(kColorITS);
-                sub4node->SetVisibility(0);
-               sub4node->cd();             
-                  //
-                  // Place copy #1 of ITS2 in I1D1
-                  //
-                  sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
-                   sub5node->SetLineColor(kColorITS);                   
-                   fNodes->Add(sub5node);
-                  sub4node->cd();   
-               fNodes->Add(sub4node);  
-            sub3node->cd(); 
-            fNodes->Add(sub3node);
-             sub2node->cd(); 
-         fNodes->Add(sub2node);        
-          sub1node->cd(); 
-          //
-         // Place copy #4 of I20B in I12B
-         //
-         deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
-          deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
-          sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
-          sub2node->SetLineColor(kColorITS);
-          sub2node->SetVisibility(0);
-         sub2node->cd();
-             //
-            // Place copy #1 of I1D7 in I20B
-             //
-            sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
-             sub3node->SetLineColor(kColorITS);
-             sub3node->SetVisibility(0);
-            sub3node->cd();
-               //
-               // Place copy #1 of I1D1 in I1D7
-