Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRasymmFMD.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 Revision 1.3.2.1  2002/10/14 13:14:11  hristov
19 Updating VirtualMC to v3-09-02
20
21 Revision 1.3  2002/10/05 00:12:39  nilsen
22 Added material to simulate services in front of the SPD, SDD, and SSD support
23 structures. Modified folumes I212, I200, and I099 so that they do not go
24 beyond the volume they are creating holes for. This was nessesary so that
25 the material added to these volumes would be correct.
26
27 Revision 1.2  2002/10/02 17:56:37  barbera
28 Bug in copy 37 of volume I570 corrected (thanks to J. Belikov)
29
30 Revision 1.1  2002/09/16 14:45:31  barbera
31 Updated detailed geometry needed by FMD people for some studies
32
33
34 */
35
36 ///////////////////////////////////////////////////////////////////////////////
37 //                                                                           //
38 //  Inner Traking System version PPR  asymmetric for the FMD                 //
39 //  This class contains the base procedures for the Inner Tracking System    //
40 //                                                                           //
41 // Authors: R. Barbera                                                       //
42 // version 10.                                                                //
43 // Created  January 15 2001.                                                 //
44 //                                                                           //
45 //  NOTE: THIS IS THE  ASYMMETRIC PPR geometry of the ITS for the PMD.     //
46 //                                                                           //
47 ///////////////////////////////////////////////////////////////////////////////
48
49 // See AliITSvPPRasymmFMD::StepManager().
50 #include <iostream.h>
51 #include <iomanip.h>
52 #include <stdio.h>
53 #include <stdlib.h>
54 #include <TMath.h>
55 #include <TGeometry.h>
56 #include <TNode.h>
57 #include <TTUBE.h>
58 #include <TTUBS.h>
59 #include <TPCON.h>
60 #include <TFile.h>    // only required for Tracking function?
61 #include <TCanvas.h>
62 #include <TObjArray.h>
63 #include <TLorentzVector.h>
64 #include <TObjString.h>
65 #include <TClonesArray.h>
66 #include <TBRIK.h>
67 #include <TSystem.h>
68
69 #include "AliMC.h"
70 #include "AliRun.h"
71 #include "AliMagF.h"
72 #include "AliConst.h"
73 #include "AliITSGeant3Geometry.h"
74 #include "AliTrackReference.h"
75 #include "AliITShit.h"
76 #include "AliITS.h"
77 #include "AliITSvPPRasymmFMD.h"
78 #include "AliITSgeom.h"
79 #include "AliITSgeomSPD.h"
80 #include "AliITSgeomSDD.h"
81 #include "AliITSgeomSSD.h"
82 #include "AliITSDetType.h"
83 #include "AliITSresponseSPD.h"
84 #include "AliITSresponseSDD.h"
85 #include "AliITSresponseSSD.h"
86 #include "AliITSsegmentationSPD.h"
87 #include "AliITSsegmentationSDD.h"
88 #include "AliITSsegmentationSSD.h"
89 #include "AliITSsimulationSPD.h"
90 #include "AliITSsimulationSDD.h"
91 #include "AliITSsimulationSSD.h"
92 #include "AliITSClusterFinderSPD.h"
93 #include "AliITSClusterFinderSDD.h"
94 #include "AliITSClusterFinderSSD.h"
95
96
97 ClassImp(AliITSvPPRasymmFMD)
98  
99 //_____________________________________________________________________________
100 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD() {
101 ////////////////////////////////////////////////////////////////////////
102 //    Standard default constructor for the ITS version 8.
103 ////////////////////////////////////////////////////////////////////////
104     Int_t i;
105
106     fIdN          = 0;
107     fIdName       = 0;
108     fIdSens       = 0;
109     fEuclidOut    = kFALSE; // Don't write Euclide file
110     fGeomDetOut   = kFALSE; // Don't write .det file
111     fGeomDetIn    = kFALSE; // Don't Read .det file
112     fMajorVersion = IsVersion();
113     fMinorVersion = -1;
114     for(i=0;i<60;i++) fRead[i] = '\0';
115     for(i=0;i<60;i++) fWrite[i] = '\0';
116     for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
117 }
118 //_____________________________________________________________________________
119 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const char *name, const char *title) : AliITS(name, title){
120 ////////////////////////////////////////////////////////////////////////
121 //    Standard constructor for the ITS version 10.
122 ////////////////////////////////////////////////////////////////////////
123     Int_t i;
124
125     fIdN = 6;
126     fIdName = new TString[fIdN];
127     fIdName[0] = "ITS1";
128     fIdName[1] = "ITS2";
129     fIdName[2] = "ITS3";
130     fIdName[3] = "ITS4";
131     fIdName[4] = "ITS5";
132     fIdName[5] = "ITS6";
133     fIdSens    = new Int_t[fIdN];
134     for(i=0;i<fIdN;i++) fIdSens[i] = 0;
135     fMajorVersion = IsVersion();
136     fMinorVersion = 2;
137     fEuclidOut    = kFALSE; // Don't write Euclide file
138     fGeomDetOut   = kFALSE; // Don't write .det file
139     fGeomDetIn    = kFALSE; // Don't Read .det file
140     SetThicknessDet1();
141     SetThicknessDet2();
142     SetThicknessChip1();
143     SetThicknessChip2();                         
144
145     fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
146     strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
147     strncpy(fRead,fEuclidGeomDet,60);
148     strncpy(fWrite,fEuclidGeomDet,60);
149 }
150 //____________________________________________________________________________
151 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const AliITSvPPRasymmFMD &source){
152 ////////////////////////////////////////////////////////////////////////
153 //     Copy Constructor for ITS version 8.
154 ////////////////////////////////////////////////////////////////////////
155     if(&source == this) return;
156     Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymmFMD");
157     return;
158 }
159 //_____________________________________________________________________________
160 AliITSvPPRasymmFMD& AliITSvPPRasymmFMD::operator=(const AliITSvPPRasymmFMD &source){
161 ////////////////////////////////////////////////////////////////////////
162 //    Assignment operator for the ITS version 8.
163 ////////////////////////////////////////////////////////////////////////
164     if(&source == this) return *this;
165     Warning("= operator","Not allowed to copy AliITSvPPRasymmFMD");
166     return *this;
167 }
168 //_____________________________________________________________________________
169 AliITSvPPRasymmFMD::~AliITSvPPRasymmFMD() {
170 ////////////////////////////////////////////////////////////////////////
171 //    Standard destructor for the ITS version 8.
172 ////////////////////////////////////////////////////////////////////////
173 }
174 //__________________________________________________________________________
175 void AliITSvPPRasymmFMD::BuildGeometry(){
176 ////////////////////////////////////////////////////////////////////////
177 //    Geometry builder for the ITS version 8.
178 ////////////////////////////////////////////////////////////////////////
179     TNode *node, *top;
180     
181     const Int_t kColorITS=kYellow;
182     //
183     top = gAlice->GetGeometry()->GetNode("alice");
184
185
186     new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
187     top->cd();
188     node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
189     node->SetLineColor(kColorITS);
190     fNodes->Add(node);
191
192     new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
193     top->cd();
194     node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
195     node->SetLineColor(kColorITS);
196     fNodes->Add(node);
197
198     new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
199     top->cd();
200     node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
201     node->SetLineColor(kColorITS);
202     fNodes->Add(node);
203
204     new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
205     top->cd();
206     node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
207     node->SetLineColor(kColorITS);
208     fNodes->Add(node);
209
210     new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
211     top->cd();
212     node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
213     node->SetLineColor(kColorITS);
214     fNodes->Add(node);
215
216     new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
217     top->cd();
218     node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
219     node->SetLineColor(kColorITS);
220     fNodes->Add(node);
221
222
223 /*
224   // DETAILED GEOMETRY
225
226   TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
227
228   // Define some variables for SPD
229
230   Float_t dits[100];
231   Float_t dits1[3], di101[3], di107[3], di10b[3];  // for layer 1 
232   Float_t di103[3], di10a[3];                      // for layer 1
233   Float_t dits2[3], di1d1[3], di1d7[3], di20b[3];  // for layer 2
234   Float_t di1d3[3], di20a[3];                      // for layer 2  
235
236   Float_t ddet1=200.;     // total detector thickness on layer 1 (micron)
237   Float_t dchip1=200.;    // total chip thickness on layer 1 (micron)
238   
239   Float_t ddet2=200.;     // total detector thickness on layer 2 (micron)                         
240   Float_t dchip2=200.;    // total chip thickness on layer 2 (micron)
241   
242   Float_t dbus=300.;      // total bus thickness on both layers (micron)
243
244   ddet1 = GetThicknessDet1();
245   ddet2 = GetThicknessDet2();
246   dchip1 = GetThicknessChip1();
247   dchip2 = GetThicknessChip2();    
248
249   cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl; 
250
251   if(ddet1 < 100. || ddet1 > 300.) {
252      cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
253           " The default value of 200 microns will be used." << endl;
254           ddet1=200.;
255   }
256   
257   if(ddet2 < 100. || ddet2 > 300.) {
258      cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
259           " The default value of 200 microns will be used." << endl;
260           ddet2=200.;
261   }
262   
263   if(dchip1 < 100. || dchip1 > 300.) {
264      cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
265           " The default value of 200 microns will be used." << endl;
266           dchip1=200.;
267   }
268   
269   if(dchip2 < 100. || dchip2 > 300.) {
270      cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
271           " The default value of 200 microns will be used." << endl;
272           dchip2=200.;
273   }      
274    
275   cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
276   cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
277   cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
278   cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
279
280   ddet1  = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
281   ddet2  = ddet2*0.0001/2.; // conversion from tot length in um to half in cm   
282   dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm   
283   dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm   
284   dbus   = dbus*0.0001/2.;  // conversion from tot length in um to half in cm       
285                 
286   Float_t deltax, deltay; 
287
288   Int_t thickness = fMinorVersion/10;
289   Int_t option    = fMinorVersion - 10*thickness;
290
291
292   // Define some variables for SDD
293   // SDD detector ladder
294
295   Float_t ySDD;
296   Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
297   Float_t Y_SDD_sep = 0.20;
298   Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
299   Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
300
301   // Rotation matrices
302     
303   // SPD - option 'a' 
304   
305   if (option == 1) {  
306   
307      new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
308      new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
309      new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);     
310      new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );     
311      new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
312      new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);          
313      new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0); 
314      new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);     
315      new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);  
316      new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
317      new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
318      new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
319      new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
320      new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
321      new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);     
322                  
323   }   
324
325   // SPD - option 'b' (this is the default)  
326
327   if (option == 2) {  
328   
329      new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
330      new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
331      new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);  
332      new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);     
333      new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);  
334      new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);    
335      new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
336      new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);     
337      new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);       
338      new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
339      new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);     
340      new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
341      new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
342      new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
343      new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
344
345   }   
346      
347   // SDD
348   
349   new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);        
350   new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
351   new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);       
352   new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);    
353   new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);   
354   new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
355   new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);  
356   new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);    
357   new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);  
358   new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);  
359   new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);   
360   new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);  
361   new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0); 
362   new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);               
363   new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0); 
364   new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);  
365   new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);        
366   new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);       
367   new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);          
368   new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);    
369   new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);  
370   new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);  
371   new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);  
372   new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0); 
373   new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);  
374   new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);   
375   new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);   
376   new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);  
377   new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);  
378   new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);  
379   new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);  
380   new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);  
381   new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);       
382   new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);       
383   new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0); 
384   new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);        
385       
386   //SSD 
387   
388   new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);  
389   new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);  
390   new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);  
391   new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);  
392   new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
393   new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
394   new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);  
395   new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
396   new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
397   new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0); 
398   new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0); 
399   new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);  
400   new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);  
401   new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);  
402   new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);  
403   new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
404   new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
405   new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);  
406   new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
407   new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
408   new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0); 
409   new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);  
410   new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);  
411   new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);  
412   new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);  
413   new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
414   new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0); 
415   new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0); 
416   new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);   
417   new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);  
418   new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);  
419   new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
420   new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);         
421   new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
422   new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);  
423   new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
424   new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
425   new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0); 
426   new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);  
427   new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);  
428   new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);  
429   new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);  
430   new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
431   new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
432   new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0); 
433   new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);  
434   new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);  
435   new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);  
436   new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);  
437   new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
438   new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
439   new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);  
440   new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
441   new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
442   new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0); 
443   new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);  
444   new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);  
445   new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);  
446   new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);  
447   new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
448   new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
449   new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);  
450   new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
451   new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
452   new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
453   new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);  
454   new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);  
455   new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);  
456   new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);  
457   new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
458   new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);       
459   
460   
461   // --- Define SPD (option 'a') volumes ----------------------------
462   
463   // SPD - option 'a' 
464   // (this is NOT the default)
465   
466   if (option == 1) { 
467     
468     dits1[0] = 0.64;
469     dits1[1] = ddet1;
470     dits1[2] = 3.48;
471     new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
472     
473     dits2[0] = 0.64;
474     dits2[1] = ddet2;
475     dits2[2] = 3.48;
476     new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);    
477     
478     di101[0] = 0.705;
479     di101[1] = ddet1;
480     di101[2] = 3.536;
481     new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
482     
483     di1d1[0] = 0.705;
484     di1d1[1] = ddet2;
485     di1d1[2] = 3.536;
486     new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);    
487     
488     di103[0] = 0.793;
489     di103[1] = ddet1+dchip1;
490     di103[2] = 3.536;
491     new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);    
492     
493     di1d3[0] = 0.793;
494     di1d3[1] = ddet2+dchip2;
495     di1d3[2] = 3.536;
496     new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);        
497         
498     di10a[0] = 0.843;
499     di10a[1] = ddet1+dchip1+dbus+0.0025;  
500     di10a[2] = 19.344;
501     new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]); 
502     
503     di20a[0] = 0.843;
504     di20a[1] = ddet2+dchip2+dbus+0.0025;  
505     di20a[2] = 19.344;
506     new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);     
507
508     dits[0] = 3.7;
509     dits[1] = 7.7;
510     dits[2] = 24;
511     dits[3] = 57;
512     dits[4] = 100;
513     new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
514      
515     dits[0] = 3.7;
516     dits[1] = 7.75;
517     dits[2] = 26.1;
518     new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);  
519     
520   }
521   
522   // --- Define SPD (option 'b') volumes ----------------------------
523   
524   // SPD - option 'b' 
525   // (this is the default)
526
527   if (option == 2) {
528     
529     dits1[0] = 0.64;
530     dits1[1] = ddet1;
531     dits1[2] = 3.48;
532     new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
533     
534     dits2[0] = 0.64;
535     dits2[1] = ddet2;
536     dits2[2] = 3.48;
537     new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);    
538     
539     di101[0] = 0.705;
540     di101[1] = ddet1;
541     di101[2] = 3.536;
542     new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
543     
544     di1d1[0] = 0.705;
545     di1d1[1] = ddet2;
546     di1d1[2] = 3.536;
547     new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);    
548     
549     di107[0] = 0.793;
550     di107[1] = ddet1+dchip1;
551     di107[2] = 3.536;
552     new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);    
553     
554     di1d7[0] = 0.7975;
555     di1d7[1] = ddet2+dchip2;
556     di1d7[2] = 3.536;
557     new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);        
558         
559     di10b[0] = 0.843;
560     di10b[1] = ddet1+dchip1+dbus+0.0025;  
561     di10b[2] = 19.344;
562     new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]); 
563     
564     di20b[0] = 0.843;
565     di20b[1] = ddet2+dchip2+dbus+0.0025;  
566     di20b[2] = 19.344;
567     new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);     
568
569     dits[0] = 3.7;
570     dits[1] = 7.7;
571     dits[2] = 24;
572     dits[3] = 57;
573     dits[4] = 100;
574     new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
575      
576     dits[0] = 3.7;
577     dits[1] = 7.75;
578     dits[2] = 26.1;
579     new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);  
580          
581
582   }
583
584   // --- Define SDD volumes ------------------------------------------
585   
586   TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6); 
587   it34->DefineSection(0,-34.6,23.49,28.); 
588   it34->DefineSection(1,-23.65,23.49,28.); 
589   it34->DefineSection(2,-23.65,14.59,28.); 
590   it34->DefineSection(3,23.65,14.59,28.); 
591   it34->DefineSection(4,23.65,23.49,28.); 
592   it34->DefineSection(5,34.6,23.49,28.);   
593   
594   I302dits[0] = 3.6250;
595   I302dits[1] = 0.0150;
596   I302dits[2] = 4.3794; 
597   new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
598
599   I004dits[0] = I302dits[0]+0.005;
600   I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
601   I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
602   if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
603     I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
604   }
605   I004dits[2] = I004dits[2] + I302dits[2];  
606   new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]); 
607   
608   dits[0] = 3.50850;
609   dits[1] = 0.01499; 
610   dits[2] = 3.76320;  
611   new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);    
612  
613   I402dits[0] = 3.6250;
614   I402dits[1] = 0.0150;
615   I402dits[2] = 4.3794; 
616   new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
617
618   I005dits[0] = I402dits[0]+0.005;
619   I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
620   I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
621   if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
622     I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
623   }
624   I005dits[2] = I005dits[2] + I402dits[2];  
625   new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);   
626
627   dits[0] = 3.50850;
628   dits[1] = 0.01499; 
629   dits[2] = 3.76320;
630   new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
631
632   
633   // --- Define SSD volumes ------------------------------------------
634   
635
636   TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6); 
637   it56->DefineSection(0,-57.45,43.6,48.); 
638   it56->DefineSection(1,-49.15,43.6,48.); 
639   it56->DefineSection(2,-49.15,36.9,48.); 
640   it56->DefineSection(3,50.55,36.9,48.); 
641   it56->DefineSection(4,50.55,43.6,48.); 
642   it56->DefineSection(5,57.45,43.6,48.);    
643
644   dits[0] = 3.75;
645   dits[1] = 0.045;
646   dits[2] = 43.3;
647   new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);  
648
649   dits[0] = 3.75;
650   dits[1] = 0.045;
651   dits[2] = 50.975;
652   new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);  
653   
654   dits[0] = 3.75;
655   dits[1] = 0.015;
656   dits[2] = 2.1;
657   new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);      
658   
659   dits[0] = 3.75;
660   dits[1] = 0.015;
661   dits[2] = 2.1;
662   new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);        
663
664   dits[0] = 3.65;
665   dits[1] = 0.015;
666   dits[2] = 2;
667   new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]); 
668
669   dits[0] = 3.65;
670   dits[1] = 0.015;
671   dits[2] = 2;
672   new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);  
673
674   //
675   
676   top->cd();
677
678   // --- Place SPD (option 'a') volumes into their mother volume 
679   
680   // SPD - option 'a' 
681   // (this is NOT the default)
682
683   if (option == 1) {
684
685
686   }
687   
688   
689   // --- Place SPD (option 'b') volumes into their mother volume 
690   
691   // SPD - option 'b' 
692   // (this is the default)
693
694   if (option == 2) { 
695   
696     // Place IT12 in Alice
697     //
698     node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
699     node->SetLineColor(kColorITS);
700     node->SetVisibility(0);
701     node->cd();    
702        //
703        // Place copy #1 of I12B in IT12
704        //
705        sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
706        sub1node->SetLineColor(kColorITS);
707        sub1node->SetVisibility(0);
708        sub1node->cd();    
709           //
710           // Place copy #1 of I10B in I12B
711           //
712           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
713           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
714           sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
715           sub2node->SetLineColor(kColorITS);
716           sub2node->SetVisibility(0);
717           sub2node->cd();
718              //
719              // Place copy #1 of I107 in I10B
720              //
721              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
722              sub3node->SetLineColor(kColorITS);
723              sub3node->SetVisibility(0);
724              sub3node->cd();
725                 //
726                 // Place copy #1 of I101 in I107
727                 //
728                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
729                 sub4node->SetLineColor(kColorITS);
730                 sub4node->SetVisibility(0);
731                 sub4node->cd();
732                    //               
733                    // Place copy #1 of ITS1 in I101
734                    //
735                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
736                    sub5node->SetLineColor(kColorITS);                   
737                    fNodes->Add(sub5node);
738                    sub4node->cd();   
739                 fNodes->Add(sub4node);  
740              sub3node->cd(); 
741              fNodes->Add(sub3node);
742              sub2node->cd(); 
743              //
744              // Place copy #2 of I107 in I10B
745              //
746              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
747              sub3node->SetLineColor(kColorITS);
748              sub3node->SetVisibility(0);
749              sub3node->cd();
750                 //
751                 // Place copy #1 of I101 in I107
752                 //
753                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
754                 sub4node->SetLineColor(kColorITS);
755                 sub4node->SetVisibility(0);
756                 sub4node->cd();             
757                    //
758                    // Place copy #1 of ITS1 in I101
759                    //
760                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
761                    sub5node->SetLineColor(kColorITS);                   
762                    fNodes->Add(sub5node);
763                    sub4node->cd();   
764                 fNodes->Add(sub4node);  
765              sub3node->cd(); 
766              fNodes->Add(sub3node);
767              sub2node->cd(); 
768              //
769              // Place copy #3 of I107 in I10B
770              //
771              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
772              sub3node->SetLineColor(kColorITS);
773              sub3node->SetVisibility(0);
774              sub3node->cd();
775                 //
776                 // Place copy #1 of I101 in I107
777                 //
778                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
779                 sub4node->SetLineColor(kColorITS);
780                 sub4node->SetVisibility(0);
781                 sub4node->cd();             
782                    //
783                    // Place copy #1 of ITS1 in I101
784                    //
785                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
786                    sub5node->SetLineColor(kColorITS);                   
787                    fNodes->Add(sub5node);
788                    sub4node->cd();   
789                 fNodes->Add(sub4node);  
790              sub3node->cd(); 
791              fNodes->Add(sub3node);
792              sub2node->cd(); 
793              //
794              // Place copy #4 of I107 in I10B
795              //
796              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
797              sub3node->SetLineColor(kColorITS);
798              sub3node->SetVisibility(0);
799              sub3node->cd();
800                 //
801                 // Place copy #1 of I101 in I107
802                 //
803                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
804                 sub4node->SetLineColor(kColorITS);
805                 sub4node->SetVisibility(0);
806                 sub4node->cd();             
807                    //
808                    // Place copy #1 of ITS1 in I101
809                    //
810                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
811                    sub5node->SetLineColor(kColorITS);                   
812                    fNodes->Add(sub5node);
813                    sub4node->cd();   
814                 fNodes->Add(sub4node);  
815              sub3node->cd(); 
816              fNodes->Add(sub3node);
817              sub2node->cd(); 
818           fNodes->Add(sub2node);        
819           sub1node->cd(); 
820           //
821           // Place copy #2 of I10B in I12B
822           //
823           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
824           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
825           sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
826           sub2node->SetLineColor(kColorITS);
827           sub2node->SetVisibility(0);
828           sub2node->cd();
829              //
830              // Place copy #1 of I107 in I10B
831              //
832              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
833              sub3node->SetLineColor(kColorITS);
834              sub3node->SetVisibility(0);
835              sub3node->cd();
836                 //
837                 // Place copy #1 of I101 in I107
838                 //
839                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
840                 sub4node->SetLineColor(kColorITS);
841                 sub4node->SetVisibility(0);
842                 sub4node->cd();
843                    //               
844                    // Place copy #1 of ITS1 in I101
845                    //
846                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
847                    sub5node->SetLineColor(kColorITS);                   
848                    fNodes->Add(sub5node);
849                    sub4node->cd();   
850                 fNodes->Add(sub4node);  
851              sub3node->cd(); 
852              fNodes->Add(sub3node);
853              sub2node->cd(); 
854              //
855              // Place copy #2 of I107 in I10B
856              //
857              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
858              sub3node->SetLineColor(kColorITS);
859              sub3node->SetVisibility(0);
860              sub3node->cd();
861                 //
862                 // Place copy #1 of I101 in I107
863                 //
864                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
865                 sub4node->SetLineColor(kColorITS);
866                 sub4node->SetVisibility(0);
867                 sub4node->cd();             
868                    //
869                    // Place copy #1 of ITS1 in I101
870                    //
871                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
872                    sub5node->SetLineColor(kColorITS);                   
873                    fNodes->Add(sub5node);
874                    sub4node->cd();   
875                 fNodes->Add(sub4node);  
876              sub3node->cd(); 
877              fNodes->Add(sub3node);
878              sub2node->cd(); 
879              //
880              // Place copy #3 of I107 in I10B
881              //
882              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
883              sub3node->SetLineColor(kColorITS);
884              sub3node->SetVisibility(0);
885              sub3node->cd();
886                 //
887                 // Place copy #1 of I101 in I107
888                 //
889                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
890                 sub4node->SetLineColor(kColorITS);
891                 sub4node->SetVisibility(0);
892                 sub4node->cd();             
893                    //
894                    // Place copy #1 of ITS1 in I101
895                    //
896                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
897                    sub5node->SetLineColor(kColorITS);                   
898                    fNodes->Add(sub5node);
899                    sub4node->cd();   
900                 fNodes->Add(sub4node);  
901              sub3node->cd(); 
902              fNodes->Add(sub3node);
903              sub2node->cd(); 
904              //
905              // Place copy #4 of I107 in I10B
906              //
907              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
908              sub3node->SetLineColor(kColorITS);
909              sub3node->SetVisibility(0);
910              sub3node->cd();
911                 //
912                 // Place copy #1 of I101 in I107
913                 //
914                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
915                 sub4node->SetLineColor(kColorITS);
916                 sub4node->SetVisibility(0);
917                 sub4node->cd();             
918                    //
919                    // Place copy #1 of ITS1 in I101
920                    //
921                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
922                    sub5node->SetLineColor(kColorITS);                   
923                    fNodes->Add(sub5node);
924                    sub4node->cd();   
925                 fNodes->Add(sub4node);  
926              sub3node->cd(); 
927              fNodes->Add(sub3node);
928              sub2node->cd(); 
929           fNodes->Add(sub2node);        
930           sub1node->cd(); 
931           //
932           // Place copy #1 of I20B in I12B
933           //
934           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
935           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
936           sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
937           sub2node->SetLineColor(kColorITS);
938           sub2node->SetVisibility(0);
939           sub2node->cd();
940              //
941              // Place copy #1 of I1D7 in I20B
942              //
943              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
944              sub3node->SetLineColor(kColorITS);
945              sub3node->SetVisibility(0);
946              sub3node->cd();
947                 //
948                 // Place copy #1 of I1D1 in I1D7
949                 //
950                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
951                 sub4node->SetLineColor(kColorITS);
952                 sub4node->SetVisibility(0);
953                 sub4node->cd();
954                    //               
955                    // Place copy #1 of ITS2 in I1D1
956                    //
957                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
958                    sub5node->SetLineColor(kColorITS);                   
959                    fNodes->Add(sub5node);
960                    sub4node->cd();   
961                 fNodes->Add(sub4node);  
962              sub3node->cd(); 
963              fNodes->Add(sub3node);
964              sub2node->cd(); 
965              //
966              // Place copy #2 of I1D7 in I20B
967              //
968              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
969              sub3node->SetLineColor(kColorITS);
970              sub3node->SetVisibility(0);
971              sub3node->cd();
972                 //
973                 // Place copy #1 of I1D1 in I1D7
974                 //
975                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
976                 sub4node->SetLineColor(kColorITS);
977                 sub4node->SetVisibility(0);
978                 sub4node->cd();             
979                    //
980                    // Place copy #1 of ITS2 in I1D1
981                    //
982                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
983                    sub5node->SetLineColor(kColorITS);                   
984                    fNodes->Add(sub5node);
985                    sub4node->cd();   
986                 fNodes->Add(sub4node);  
987              sub3node->cd(); 
988              fNodes->Add(sub3node);
989              sub2node->cd(); 
990              //
991              // Place copy #3 of I1D7 in I20B
992              //
993              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
994              sub3node->SetLineColor(kColorITS);
995              sub3node->SetVisibility(0);
996              sub3node->cd();
997                 //
998                 // Place copy #1 of I1D1 in I1D7
999                 //
1000                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1001                 sub4node->SetLineColor(kColorITS);
1002                 sub4node->SetVisibility(0);
1003                 sub4node->cd();             
1004                    //
1005                    // Place copy #1 of ITS2 in I1D1
1006                    //
1007                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1008                    sub5node->SetLineColor(kColorITS);                   
1009                    fNodes->Add(sub5node);
1010                    sub4node->cd();   
1011                 fNodes->Add(sub4node);  
1012              sub3node->cd(); 
1013              fNodes->Add(sub3node);
1014              sub2node->cd(); 
1015              //
1016              // Place copy #4 of I1D7 in I20B
1017              //
1018              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1019              sub3node->SetLineColor(kColorITS);
1020              sub3node->SetVisibility(0);
1021              sub3node->cd();
1022                 //
1023                 // Place copy #1 of I1D1 in I1D7
1024                 //
1025                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1026                 sub4node->SetLineColor(kColorITS);
1027                 sub4node->SetVisibility(0);
1028                 sub4node->cd();             
1029                    //
1030                    // Place copy #1 of ITS2 in I1D1
1031                    //
1032                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1033                    sub5node->SetLineColor(kColorITS);                   
1034                    fNodes->Add(sub5node);
1035                    sub4node->cd();   
1036                 fNodes->Add(sub4node);  
1037              sub3node->cd(); 
1038              fNodes->Add(sub3node);
1039              sub2node->cd(); 
1040           fNodes->Add(sub2node);        
1041           sub1node->cd(); 
1042           //
1043           // Place copy #2 of I20B in I12B
1044           //
1045           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
1046           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1047           sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1048           sub2node->SetLineColor(kColorITS);
1049           sub2node->SetVisibility(0);
1050           sub2node->cd();
1051              //
1052              // Place copy #1 of I1D7 in I20B
1053              //
1054              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1055              sub3node->SetLineColor(kColorITS);
1056              sub3node->SetVisibility(0);
1057              sub3node->cd();
1058                 //
1059                 // Place copy #1 of I1D1 in I1D7
1060                 //
1061                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1062                 sub4node->SetLineColor(kColorITS);
1063                 sub4node->SetVisibility(0);
1064                 sub4node->cd();
1065                    //               
1066                    // Place copy #1 of ITS2 in I1D1
1067                    //
1068                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1069                    sub5node->SetLineColor(kColorITS);                   
1070                    fNodes->Add(sub5node);
1071                    sub4node->cd();   
1072                 fNodes->Add(sub4node);  
1073              sub3node->cd(); 
1074              fNodes->Add(sub3node);
1075              sub2node->cd(); 
1076              //
1077              // Place copy #2 of I1D7 in I20B
1078              //
1079              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1080              sub3node->SetLineColor(kColorITS);
1081              sub3node->SetVisibility(0);
1082              sub3node->cd();
1083                 //
1084                 // Place copy #1 of I1D1 in I1D7
1085                 //
1086                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1087                 sub4node->SetLineColor(kColorITS);
1088                 sub4node->SetVisibility(0);
1089                 sub4node->cd();             
1090                    //
1091                    // Place copy #1 of ITS2 in I1D1
1092                    //
1093                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1094                    sub5node->SetLineColor(kColorITS);                   
1095                    fNodes->Add(sub5node);
1096                    sub4node->cd();   
1097                 fNodes->Add(sub4node);  
1098              sub3node->cd(); 
1099              fNodes->Add(sub3node);
1100              sub2node->cd(); 
1101              //
1102              // Place copy #3 of I1D7 in I20B
1103              //
1104              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1105              sub3node->SetLineColor(kColorITS);
1106              sub3node->SetVisibility(0);
1107              sub3node->cd();
1108                 //
1109                 // Place copy #1 of I1D1 in I1D7
1110                 //
1111                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1112                 sub4node->SetLineColor(kColorITS);
1113                 sub4node->SetVisibility(0);
1114                 sub4node->cd();             
1115                    //
1116                    // Place copy #1 of ITS2 in I1D1
1117                    //
1118                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1119                    sub5node->SetLineColor(kColorITS);                   
1120                    fNodes->Add(sub5node);
1121                    sub4node->cd();   
1122                 fNodes->Add(sub4node);  
1123              sub3node->cd(); 
1124              fNodes->Add(sub3node);
1125              sub2node->cd(); 
1126              //
1127              // Place copy #4 of I1D7 in I20B
1128              //
1129              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1130              sub3node->SetLineColor(kColorITS);
1131              sub3node->SetVisibility(0);
1132              sub3node->cd();
1133                 //
1134                 // Place copy #1 of I1D1 in I1D7
1135                 //
1136                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1137                 sub4node->SetLineColor(kColorITS);
1138                 sub4node->SetVisibility(0);
1139                 sub4node->cd();             
1140                    //
1141                    // Place copy #1 of ITS2 in I1D1
1142                    //
1143                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1144                    sub5node->SetLineColor(kColorITS);                   
1145                    fNodes->Add(sub5node);
1146                    sub4node->cd();   
1147                 fNodes->Add(sub4node);  
1148              sub3node->cd(); 
1149              fNodes->Add(sub3node);
1150              sub2node->cd(); 
1151           fNodes->Add(sub2node);        
1152           sub1node->cd(); 
1153           //
1154           // Place copy #3 of I20B in I12B
1155           //
1156           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
1157           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1158           sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1159           sub2node->SetLineColor(kColorITS);
1160           sub2node->SetVisibility(0);
1161           sub2node->cd();
1162              //
1163              // Place copy #1 of I1D7 in I20B
1164              //
1165              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1166              sub3node->SetLineColor(kColorITS);
1167              sub3node->SetVisibility(0);
1168              sub3node->cd();
1169                 //
1170                 // Place copy #1 of I1D1 in I1D7
1171                 //
1172                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1173                 sub4node->SetLineColor(kColorITS);
1174                 sub4node->SetVisibility(0);
1175                 sub4node->cd();
1176                    //               
1177                    // Place copy #1 of ITS2 in I1D1
1178                    //
1179                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1180                    sub5node->SetLineColor(kColorITS);                   
1181                    fNodes->Add(sub5node);
1182                    sub4node->cd();   
1183                 fNodes->Add(sub4node);  
1184              sub3node->cd(); 
1185              fNodes->Add(sub3node);
1186              sub2node->cd(); 
1187              //
1188              // Place copy #2 of I1D7 in I20B
1189              //
1190              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1191              sub3node->SetLineColor(kColorITS);
1192              sub3node->SetVisibility(0);
1193              sub3node->cd();
1194                 //
1195                 // Place copy #1 of I1D1 in I1D7
1196                 //
1197                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1198                 sub4node->SetLineColor(kColorITS);
1199                 sub4node->SetVisibility(0);
1200                 sub4node->cd();             
1201                    //
1202                    // Place copy #1 of ITS2 in I1D1
1203                    //
1204                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1205                    sub5node->SetLineColor(kColorITS);                   
1206                    fNodes->Add(sub5node);
1207                    sub4node->cd();   
1208                 fNodes->Add(sub4node);  
1209              sub3node->cd(); 
1210              fNodes->Add(sub3node);
1211              sub2node->cd(); 
1212              //
1213              // Place copy #3 of I1D7 in I20B
1214              //
1215              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1216              sub3node->SetLineColor(kColorITS);
1217              sub3node->SetVisibility(0);
1218              sub3node->cd();
1219                 //
1220                 // Place copy #1 of I1D1 in I1D7
1221                 //
1222                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1223                 sub4node->SetLineColor(kColorITS);
1224                 sub4node->SetVisibility(0);
1225                 sub4node->cd();             
1226                    //
1227                    // Place copy #1 of ITS2 in I1D1
1228                    //
1229                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1230                    sub5node->SetLineColor(kColorITS);                   
1231                    fNodes->Add(sub5node);
1232                    sub4node->cd();   
1233                 fNodes->Add(sub4node);  
1234              sub3node->cd(); 
1235              fNodes->Add(sub3node);
1236              sub2node->cd(); 
1237              //
1238              // Place copy #4 of I1D7 in I20B
1239              //
1240              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1241              sub3node->SetLineColor(kColorITS);
1242              sub3node->SetVisibility(0);
1243              sub3node->cd();
1244                 //
1245                 // Place copy #1 of I1D1 in I1D7
1246                 //
1247                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1248                 sub4node->SetLineColor(kColorITS);
1249                 sub4node->SetVisibility(0);
1250                 sub4node->cd();             
1251                    //
1252                    // Place copy #1 of ITS2 in I1D1
1253                    //
1254                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1255                    sub5node->SetLineColor(kColorITS);                   
1256                    fNodes->Add(sub5node);
1257                    sub4node->cd();   
1258                 fNodes->Add(sub4node);  
1259              sub3node->cd(); 
1260              fNodes->Add(sub3node);
1261              sub2node->cd(); 
1262           fNodes->Add(sub2node);        
1263           sub1node->cd(); 
1264           //
1265           // Place copy #4 of I20B in I12B
1266           //
1267           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
1268           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1269           sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1270           sub2node->SetLineColor(kColorITS);
1271           sub2node->SetVisibility(0);
1272           sub2node->cd();
1273              //
1274              // Place copy #1 of I1D7 in I20B
1275              //
1276              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1277              sub3node->SetLineColor(kColorITS);
1278              sub3node->SetVisibility(0);
1279              sub3node->cd();
1280                 //
1281                 // Place copy #1 of I1D1 in I1D7
1282                 //
1283                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1284                 sub4node->SetLineColor(kColorITS);
1285                 sub4node->SetVisibility(0);
1286                 sub4node->cd();
1287                    //               
1288                    // Place copy #1 of ITS2 in I1D1
1289                    //
1290                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1291                    sub5node->SetLineColor(kColorITS);                   
1292                    fNodes->Add(sub5node);
1293                    sub4node->cd();   
1294                 fNodes->Add(sub4node);  
1295              sub3node->cd(); 
1296              fNodes->Add(sub3node);
1297              sub2node->cd(); 
1298              //
1299              // Place copy #2 of I1D7 in I20B
1300              //
1301              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1302              sub3node->SetLineColor(kColorITS);
1303              sub3node->SetVisibility(0);
1304              sub3node->cd();
1305                 //
1306                 // Place copy #1 of I1D1 in I1D7
1307                 //
1308                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1309                 sub4node->SetLineColor(kColorITS);
1310                 sub4node->SetVisibility(0);
1311                 sub4node->cd();             
1312                    //
1313                    // Place copy #1 of ITS2 in I1D1
1314                    //
1315                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1316                    sub5node->SetLineColor(kColorITS);                   
1317                    fNodes->Add(sub5node);
1318                    sub4node->cd();   
1319                 fNodes->Add(sub4node);  
1320              sub3node->cd(); 
1321              fNodes->Add(sub3node);
1322              sub2node->cd(); 
1323              //
1324              // Place copy #3 of I1D7 in I20B
1325              //
1326              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1327              sub3node->SetLineColor(kColorITS);
1328              sub3node->SetVisibility(0);
1329              sub3node->cd();
1330                 //
1331                 // Place copy #1 of I1D1 in I1D7
1332                 //
1333                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1334                 sub4node->SetLineColor(kColorITS);
1335                 sub4node->SetVisibility(0);
1336                 sub4node->cd();             
1337                    //
1338                    // Place copy #1 of ITS2 in I1D1
1339                    //
1340                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1341                    sub5node->SetLineColor(kColorITS);                   
1342                    fNodes->Add(sub5node);
1343                    sub4node->cd();   
1344                 fNodes->Add(sub4node);  
1345              sub3node->cd(); 
1346              fNodes->Add(sub3node);
1347              sub2node->cd(); 
1348              //
1349              // Place copy #4 of I1D7 in I20B
1350              //
1351              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1352              sub3node->SetLineColor(kColorITS);
1353              sub3node->SetVisibility(0);
1354              sub3node->cd();
1355                 //
1356                 // Place copy #1 of I1D1 in I1D7
1357                 //
1358                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1359                 sub4node->SetLineColor(kColorITS);
1360                 sub4node->SetVisibility(0);
1361                 sub4node->cd();             
1362                    //
1363                    // Place copy #1 of ITS2 in I1D1
1364                    //
1365                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1366                    sub5node->SetLineColor(kColorITS);                   
1367                    fNodes->Add(sub5node);
1368                    sub4node->cd();   
1369                 fNodes->Add(sub4node);  
1370              sub3node->cd(); 
1371              fNodes->Add(sub3node);
1372              sub2node->cd(); 
1373           fNodes->Add(sub2node);        
1374           sub1node->cd(); 
1375        fNodes->Add(sub1node);
1376        node->cd(); 
1377        //
1378        // Place copy #2 of I12B in IT12
1379        //
1380        sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
1381        sub1node->SetLineColor(kColorITS);
1382        sub1node->SetVisibility(0);
1383        sub1node->cd();    
1384           //
1385           // Place copy #1 of I10B in I12B
1386           //
1387           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
1388           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
1389           sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
1390           sub2node->SetLineColor(kColorITS);
1391           sub2node->SetVisibility(0);
1392           sub2node->cd();
1393              //
1394              // Place copy #1 of I107 in I10B
1395              //
1396              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1397              sub3node->SetLineColor(kColorITS);
1398              sub3node->SetVisibility(0);
1399              sub3node->cd();
1400                 //
1401                 // Place copy #1 of I101 in I107
1402                 //
1403                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1404                 sub4node->SetLineColor(kColorITS);
1405                 sub4node->SetVisibility(0);
1406                 sub4node->cd();
1407                    //               
1408                    // Place copy #1 of ITS1 in I101
1409                    //
1410                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1411                    sub5node->SetLineColor(kColorITS);                   
1412                    fNodes->Add(sub5node);
1413                    sub4node->cd();   
1414                 fNodes->Add(sub4node);  
1415              sub3node->cd(); 
1416              fNodes->Add(sub3node);
1417              sub2node->cd(); 
1418              //
1419              // Place copy #2 of I107 in I10B
1420              //
1421              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1422              sub3node->SetLineColor(kColorITS);
1423              sub3node->SetVisibility(0);
1424              sub3node->cd();
1425                 //
1426                 // Place copy #1 of I101 in I107
1427                 //
1428                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1429                 sub4node->SetLineColor(kColorITS);
1430                 sub4node->SetVisibility(0);
1431                 sub4node->cd();             
1432                    //
1433                    // Place copy #1 of ITS1 in I101
1434                    //
1435                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1436                    sub5node->SetLineColor(kColorITS);                   
1437                    fNodes->Add(sub5node);
1438                    sub4node->cd();   
1439                 fNodes->Add(sub4node);  
1440              sub3node->cd(); 
1441              fNodes->Add(sub3node);
1442              sub2node->cd(); 
1443              //
1444              // Place copy #3 of I107 in I10B
1445              //
1446              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1447              sub3node->SetLineColor(kColorITS);
1448              sub3node->SetVisibility(0);
1449              sub3node->cd();
1450                 //
1451                 // Place copy #1 of I101 in I107
1452                 //
1453                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1454                 sub4node->SetLineColor(kColorITS);
1455                 sub4node->SetVisibility(0);
1456                 sub4node->cd();             
1457                    //
1458                    // Place copy #1 of ITS1 in I101
1459                    //
1460                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1461                    sub5node->SetLineColor(kColorITS);                   
1462                    fNodes->Add(sub5node);
1463                    sub4node->cd();   
1464                 fNodes->Add(sub4node);  
1465              sub3node->cd(); 
1466              fNodes->Add(sub3node);
1467              sub2node->cd(); 
1468              //
1469              // Place copy #4 of I107 in I10B
1470              //
1471              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1472              sub3node->SetLineColor(kColorITS);
1473              sub3node->SetVisibility(0);
1474              sub3node->cd();
1475                 //
1476                 // Place copy #1 of I101 in I107
1477                 //
1478                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1479                 sub4node->SetLineColor(kColorITS);
1480                 sub4node->SetVisibility(0);
1481                 sub4node->cd();             
1482                    //
1483                    // Place copy #1 of ITS1 in I101
1484                    //
1485                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1486                    sub5node->SetLineColor(kColorITS);                   
1487                    fNodes->Add(sub5node);
1488                    sub4node->cd();   
1489                 fNodes->Add(sub4node);  
1490              sub3node->cd(); 
1491              fNodes->Add(sub3node);
1492              sub2node->cd(); 
1493           fNodes->Add(sub2node);        
1494           sub1node->cd(); 
1495           //
1496           // Place copy #2 of I10B in I12B
1497           //
1498           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
1499           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
1500           sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
1501           sub2node->SetLineColor(kColorITS);
1502           sub2node->SetVisibility(0);
1503           sub2node->cd();
1504              //
1505              // Place copy #1 of I107 in I10B
1506              //
1507              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1508              sub3node->SetLineColor(kColorITS);
1509              sub3node->SetVisibility(0);
1510              sub3node->cd();
1511                 //
1512                 // Place copy #1 of I101 in I107
1513                 //
1514                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1515                 sub4node->SetLineColor(kColorITS);
1516                 sub4node->SetVisibility(0);
1517                 sub4node->cd();
1518                    //               
1519                    // Place copy #1 of ITS1 in I101
1520                    //
1521                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1522                    sub5node->SetLineColor(kColorITS);                   
1523                    fNodes->Add(sub5node);
1524                    sub4node->cd();   
1525                 fNodes->Add(sub4node);  
1526              sub3node->cd(); 
1527              fNodes->Add(sub3node);
1528              sub2node->cd(); 
1529              //
1530              // Place copy #2 of I107 in I10B
1531              //
1532              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1533              sub3node->SetLineColor(kColorITS);
1534              sub3node->SetVisibility(0);
1535              sub3node->cd();
1536                 //
1537                 // Place copy #1 of I101 in I107
1538                 //
1539                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1540                 sub4node->SetLineColor(kColorITS);
1541                 sub4node->SetVisibility(0);
1542                 sub4node->cd();             
1543                    //
1544                    // Place copy #1 of ITS1 in I101
1545                    //
1546                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1547                    sub5node->SetLineColor(kColorITS);                   
1548                    fNodes->Add(sub5node);
1549                    sub4node->cd();   
1550                 fNodes->Add(sub4node);  
1551              sub3node->cd(); 
1552              fNodes->Add(sub3node);
1553              sub2node->cd(); 
1554              //
1555              // Place copy #3 of I107 in I10B
1556              //
1557              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1558              sub3node->SetLineColor(kColorITS);
1559              sub3node->SetVisibility(0);
1560              sub3node->cd();
1561                 //
1562                 // Place copy #1 of I101 in I107
1563                 //
1564                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1565                 sub4node->SetLineColor(kColorITS);
1566                 sub4node->SetVisibility(0);
1567                 sub4node->cd();             
1568                    //
1569                    // Place copy #1 of ITS1 in I101
1570                    //
1571                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1572                    sub5node->SetLineColor(kColorITS);                   
1573                    fNodes->Add(sub5node);
1574                    sub4node->cd();   
1575                 fNodes->Add(sub4node);  
1576              sub3node->cd(); 
1577              fNodes->Add(sub3node);
1578              sub2node->cd(); 
1579              //
1580              // Place copy #4 of I107 in I10B
1581              //
1582              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1583              sub3node->SetLineColor(kColorITS);
1584              sub3node->SetVisibility(0);
1585              sub3node->cd();
1586                 //
1587                 // Place copy #1 of I101 in I107
1588                 //
1589                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1590                 sub4node->SetLineColor(kColorITS);
1591                 sub4node->SetVisibility(0);
1592                 sub4node->cd();             
1593                    //
1594                    // Place copy #1 of ITS1 in I101
1595                    //
1596                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1597                    sub5node->SetLineColor(kColorITS);                   
1598                    fNodes->Add(sub5node);
1599                    sub4node->cd();   
1600                 fNodes->Add(sub4node);  
1601              sub3node->cd(); 
1602              fNodes->Add(sub3node);
1603              sub2node->cd(); 
1604           fNodes->Add(sub2node);        
1605           sub1node->cd(); 
1606           //
1607           // Place copy #1 of I20B in I12B
1608           //
1609           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
1610           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1611           sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1612           sub2node->SetLineColor(kColorITS);
1613           sub2node->SetVisibility(0);
1614           sub2node->cd();
1615              //
1616              // Place copy #1 of I1D7 in I20B
1617              //
1618              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1619              sub3node->SetLineColor(kColorITS);
1620              sub3node->SetVisibility(0);
1621              sub3node->cd();
1622                 //
1623                 // Place copy #1 of I1D1 in I1D7
1624                 //
1625                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1626                 sub4node->SetLineColor(kColorITS);
1627                 sub4node->SetVisibility(0);
1628                 sub4node->cd();
1629                    //               
1630                    // Place copy #1 of ITS2 in I1D1
1631                    //
1632                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1633                    sub5node->SetLineColor(kColorITS);                   
1634                    fNodes->Add(sub5node);
1635                    sub4node->cd();   
1636                 fNodes->Add(sub4node);  
1637              sub3node->cd(); 
1638              fNodes->Add(sub3node);
1639              sub2node->cd(); 
1640              //
1641              // Place copy #2 of I1D7 in I20B
1642              //
1643              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1644              sub3node->SetLineColor(kColorITS);
1645              sub3node->SetVisibility(0);
1646              sub3node->cd();
1647                 //
1648                 // Place copy #1 of I1D1 in I1D7
1649                 //
1650                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1651                 sub4node->SetLineColor(kColorITS);
1652                 sub4node->SetVisibility(0);
1653                 sub4node->cd();             
1654                    //
1655                    // Place copy #1 of ITS2 in I1D1
1656                    //
1657                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1658                    sub5node->SetLineColor(kColorITS);                   
1659                    fNodes->Add(sub5node);
1660                    sub4node->cd();   
1661                 fNodes->Add(sub4node);  
1662              sub3node->cd(); 
1663              fNodes->Add(sub3node);
1664              sub2node->cd(); 
1665              //
1666              // Place copy #3 of I1D7 in I20B
1667              //
1668              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1669              sub3node->SetLineColor(kColorITS);
1670              sub3node->SetVisibility(0);
1671              sub3node->cd();
1672                 //
1673                 // Place copy #1 of I1D1 in I1D7
1674                 //
1675                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1676                 sub4node->SetLineColor(kColorITS);
1677                 sub4node->SetVisibility(0);
1678                 sub4node->cd();             
1679                    //
1680                    // Place copy #1 of ITS2 in I1D1
1681                    //
1682                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1683                    sub5node->SetLineColor(kColorITS);                   
1684                    fNodes->Add(sub5node);
1685                    sub4node->cd();   
1686                 fNodes->Add(sub4node);  
1687              sub3node->cd(); 
1688              fNodes->Add(sub3node);
1689              sub2node->cd(); 
1690              //
1691              // Place copy #4 of I1D7 in I20B
1692              //
1693              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1694              sub3node->SetLineColor(kColorITS);
1695              sub3node->SetVisibility(0);
1696              sub3node->cd();
1697                 //
1698                 // Place copy #1 of I1D1 in I1D7
1699                 //
1700                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1701                 sub4node->SetLineColor(kColorITS);
1702                 sub4node->SetVisibility(0);
1703                 sub4node->cd();             
1704                    //
1705                    // Place copy #1 of ITS2 in I1D1
1706                    //
1707                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1708                    sub5node->SetLineColor(kColorITS);                   
1709                    fNodes->Add(sub5node);
1710                    sub4node->cd();   
1711                 fNodes->Add(sub4node);  
1712              sub3node->cd(); 
1713              fNodes->Add(sub3node);
1714              sub2node->cd(); 
1715           fNodes->Add(sub2node);        
1716           sub1node->cd(); 
1717           //
1718           // Place copy #2 of I20B in I12B
1719           //
1720           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
1721           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1722           sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1723           sub2node->SetLineColor(kColorITS);
1724           sub2node->SetVisibility(0);
1725           sub2node->cd();
1726              //
1727              // Place copy #1 of I1D7 in I20B
1728              //
1729              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1730              sub3node->SetLineColor(kColorITS);
1731              sub3node->SetVisibility(0);
1732              sub3node->cd();
1733                 //
1734                 // Place copy #1 of I1D1 in I1D7
1735                 //
1736                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1737                 sub4node->SetLineColor(kColorITS);
1738                 sub4node->SetVisibility(0);
1739                 sub4node->cd();
1740                    //               
1741                    // Place copy #1 of ITS2 in I1D1
1742                    //
1743                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1744                    sub5node->SetLineColor(kColorITS);                   
1745                    fNodes->Add(sub5node);
1746                    sub4node->cd();   
1747                 fNodes->Add(sub4node);  
1748              sub3node->cd(); 
1749              fNodes->Add(sub3node);
1750              sub2node->cd(); 
1751              //
1752              // Place copy #2 of I1D7 in I20B
1753              //
1754              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1755              sub3node->SetLineColor(kColorITS);
1756              sub3node->SetVisibility(0);
1757              sub3node->cd();
1758                 //
1759                 // Place copy #1 of I1D1 in I1D7
1760                 //
1761                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1762                 sub4node->SetLineColor(kColorITS);
1763                 sub4node->SetVisibility(0);
1764                 sub4node->cd();             
1765                    //
1766                    // Place copy #1 of ITS2 in I1D1
1767                    //
1768                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1769                    sub5node->SetLineColor(kColorITS);                   
1770                    fNodes->Add(sub5node);
1771                    sub4node->cd();   
1772                 fNodes->Add(sub4node);  
1773              sub3node->cd(); 
1774              fNodes->Add(sub3node);
1775              sub2node->cd(); 
1776              //
1777              // Place copy #3 of I1D7 in I20B
1778              //
1779              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1780              sub3node->SetLineColor(kColorITS);
1781              sub3node->SetVisibility(0);
1782              sub3node->cd();
1783                 //
1784                 // Place copy #1 of I1D1 in I1D7
1785                 //
1786                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1787                 sub4node->SetLineColor(kColorITS);
1788                 sub4node->SetVisibility(0);
1789                 sub4node->cd();             
1790                    //
1791                    // Place copy #1 of ITS2 in I1D1
1792                    //
1793                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1794                    sub5node->SetLineColor(kColorITS);                   
1795                    fNodes->Add(sub5node);
1796                    sub4node->cd();   
1797                 fNodes->Add(sub4node);  
1798              sub3node->cd(); 
1799              fNodes->Add(sub3node);
1800              sub2node->cd(); 
1801              //
1802              // Place copy #4 of I1D7 in I20B
1803              //
1804              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1805              sub3node->SetLineColor(kColorITS);
1806              sub3node->SetVisibility(0);
1807              sub3node->cd();
1808                 //
1809                 // Place copy #1 of I1D1 in I1D7
1810                 //
1811                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1812                 sub4node->SetLineColor(kColorITS);
1813                 sub4node->SetVisibility(0);
1814                 sub4node->cd();             
1815                    //
1816                    // Place copy #1 of ITS2 in I1D1
1817                    //
1818                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1819                    sub5node->SetLineColor(kColorITS);                   
1820                    fNodes->Add(sub5node);
1821                    sub4node->cd();   
1822                 fNodes->Add(sub4node);  
1823              sub3node->cd(); 
1824              fNodes->Add(sub3node);
1825              sub2node->cd(); 
1826           fNodes->Add(sub2node);        
1827           sub1node->cd(); 
1828           //
1829           // Place copy #3 of I20B in I12B
1830           //
1831           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
1832           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1833           sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1834           sub2node->SetLineColor(kColorITS);
1835           sub2node->SetVisibility(0);
1836           sub2node->cd();
1837              //
1838              // Place copy #1 of I1D7 in I20B
1839              //
1840              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1841              sub3node->SetLineColor(kColorITS);
1842              sub3node->SetVisibility(0);
1843              sub3node->cd();
1844                 //
1845                 // Place copy #1 of I1D1 in I1D7
1846                 //
1847                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1848                 sub4node->SetLineColor(kColorITS);
1849                 sub4node->SetVisibility(0);
1850                 sub4node->cd();
1851                    //               
1852                    // Place copy #1 of ITS2 in I1D1
1853                    //
1854                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1855                    sub5node->SetLineColor(kColorITS);                   
1856                    fNodes->Add(sub5node);
1857                    sub4node->cd();   
1858                 fNodes->Add(sub4node);  
1859              sub3node->cd(); 
1860              fNodes->Add(sub3node);
1861              sub2node->cd(); 
1862              //
1863              // Place copy #2 of I1D7 in I20B
1864              //
1865              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1866              sub3node->SetLineColor(kColorITS);
1867              sub3node->SetVisibility(0);
1868              sub3node->cd();
1869                 //
1870                 // Place copy #1 of I1D1 in I1D7
1871                 //
1872                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1873                 sub4node->SetLineColor(kColorITS);
1874                 sub4node->SetVisibility(0);
1875                 sub4node->cd();             
1876                    //
1877                    // Place copy #1 of ITS2 in I1D1
1878                    //
1879                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1880                    sub5node->SetLineColor(kColorITS);                   
1881                    fNodes->Add(sub5node);
1882                    sub4node->cd();   
1883                 fNodes->Add(sub4node);  
1884              sub3node->cd(); 
1885              fNodes->Add(sub3node);
1886              sub2node->cd(); 
1887              //
1888              // Place copy #3 of I1D7 in I20B
1889              //
1890              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1891              sub3node->SetLineColor(kColorITS);
1892              sub3node->SetVisibility(0);
1893              sub3node->cd();
1894                 //
1895                 // Place copy #1 of I1D1 in I1D7
1896                 //
1897                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1898                 sub4node->SetLineColor(kColorITS);
1899                 sub4node->SetVisibility(0);
1900                 sub4node->cd();             
1901                    //
1902                    // Place copy #1 of ITS2 in I1D1
1903                    //
1904                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1905                    sub5node->SetLineColor(kColorITS);                   
1906                    fNodes->Add(sub5node);
1907                    sub4node->cd();   
1908                 fNodes->Add(sub4node);  
1909              sub3node->cd(); 
1910              fNodes->Add(sub3node);
1911              sub2node->cd(); 
1912              //
1913              // Place copy #4 of I1D7 in I20B
1914              //
1915              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1916              sub3node->SetLineColor(kColorITS);
1917              sub3node->SetVisibility(0);
1918              sub3node->cd();
1919                 //
1920                 // Place copy #1 of I1D1 in I1D7
1921                 //
1922                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1923                 sub4node->SetLineColor(kColorITS);
1924                 sub4node->SetVisibility(0);
1925                 sub4node->cd();             
1926                    //
1927                    // Place copy #1 of ITS2 in I1D1
1928                    //
1929                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1930                    sub5node->SetLineColor(kColorITS);                   
1931                    fNodes->Add(sub5node);
1932                    sub4node->cd();   
1933                 fNodes->Add(sub4node);  
1934              sub3node->cd(); 
1935              fNodes->Add(sub3node);
1936              sub2node->cd(); 
1937           fNodes->Add(sub2node);        
1938           sub1node->cd(); 
1939           //
1940           // Place copy #4 of I20B in I12B
1941           //
1942           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
1943           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1944           sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1945           sub2node->SetLineColor(kColorITS);
1946           sub2node->SetVisibility(0);
1947           sub2node->cd();
1948              //
1949              // Place copy #1 of I1D7 in I20B
1950              //
1951              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1952              sub3node->SetLineColor(kColorITS);
1953              sub3node->SetVisibility(0);
1954              sub3node->cd();
1955                 //
1956                 // Place copy #1 of I1D1 in I1D7
1957                 //
1958                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1959                 sub4node->SetLineColor(kColorITS);
1960                 sub4node->SetVisibility(0);
1961                 sub4node->cd();
1962                    //               
1963                    // Place copy #1 of ITS2 in I1D1
1964                    //
1965                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1966                    sub5node->SetLineColor(kColorITS);                   
1967                    fNodes->Add(sub5node);
1968                    sub4node->cd();   
1969                 fNodes->Add(sub4node);  
1970              sub3node->cd(); 
1971              fNodes->Add(sub3node);
1972              sub2node->cd(); 
1973              //
1974              // Place copy #2 of I1D7 in I20B
1975              //
1976              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1977              sub3node->SetLineColor(kColorITS);
1978              sub3node->SetVisibility(0);
1979              sub3node->cd();
1980                 //
1981                 // Place copy #1 of I1D1 in I1D7
1982                 //
1983                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1984                 sub4node->SetLineColor(kColorITS);
1985                 sub4node->SetVisibility(0);
1986                 sub4node->cd();             
1987                    //
1988                    // Place copy #1 of ITS2 in I1D1
1989                    //
1990                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1991                    sub5node->SetLineColor(kColorITS);                   
1992                    fNodes->Add(sub5node);
1993                    sub4node->cd();   
1994                 fNodes->Add(sub4node);  
1995              sub3node->cd(); 
1996              fNodes->Add(sub3node);
1997              sub2node->cd(); 
1998              //
1999              // Place copy #3 of I1D7 in I20B
2000              //
2001              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2002              sub3node->SetLineColor(kColorITS);
2003              sub3node->SetVisibility(0);
2004              sub3node->cd();
2005                 //
2006                 // Place copy #1 of I1D1 in I1D7
2007                 //
2008                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2009                 sub4node->SetLineColor(kColorITS);
2010                 sub4node->SetVisibility(0);
2011                 sub4node->cd();             
2012                    //
2013                    // Place copy #1 of ITS2 in I1D1
2014                    //
2015                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2016                    sub5node->SetLineColor(kColorITS);                   
2017                    fNodes->Add(sub5node);
2018                    sub4node->cd();   
2019                 fNodes->Add(sub4node);  
2020              sub3node->cd(); 
2021              fNodes->Add(sub3node);
2022              sub2node->cd(); 
2023              //
2024              // Place copy #4 of I1D7 in I20B
2025              //
2026              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2027              sub3node->SetLineColor(kColorITS);
2028              sub3node->SetVisibility(0);
2029              sub3node->cd();
2030                 //
2031                 // Place copy #1 of I1D1 in I1D7
2032                 //
2033                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2034                 sub4node->SetLineColor(kColorITS);
2035                 sub4node->SetVisibility(0);
2036                 sub4node->cd();             
2037                    //
2038                    // Place copy #1 of ITS2 in I1D1
2039                    //
2040                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2041                    sub5node->SetLineColor(kColorITS);                   
2042                    fNodes->Add(sub5node);
2043                    sub4node->cd();   
2044                 fNodes->Add(sub4node);  
2045              sub3node->cd(); 
2046              fNodes->Add(sub3node);
2047              sub2node->cd(); 
2048           fNodes->Add(sub2node);        
2049           sub1node->cd(); 
2050        fNodes->Add(sub1node);
2051        node->cd(); 
2052        //
2053        // Place copy #3 of I12B in IT12
2054        //
2055        sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
2056        sub1node->SetLineColor(kColorITS);
2057        sub1node->SetVisibility(0);
2058        sub1node->cd();    
2059           //
2060           // Place copy #1 of I10B in I12B
2061           //
2062           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
2063           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2064           sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2065           sub2node->SetLineColor(kColorITS);
2066           sub2node->SetVisibility(0);
2067           sub2node->cd();
2068              //
2069              // Place copy #1 of I107 in I10B
2070              //
2071              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2072              sub3node->SetLineColor(kColorITS);
2073              sub3node->SetVisibility(0);
2074              sub3node->cd();
2075                 //
2076                 // Place copy #1 of I101 in I107
2077                 //
2078                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2079                 sub4node->SetLineColor(kColorITS);
2080                 sub4node->SetVisibility(0);
2081                 sub4node->cd();
2082                    //               
2083                    // Place copy #1 of ITS1 in I101
2084                    //
2085                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2086                    sub5node->SetLineColor(kColorITS);                   
2087                    fNodes->Add(sub5node);
2088                    sub4node->cd();   
2089                 fNodes->Add(sub4node);  
2090              sub3node->cd(); 
2091              fNodes->Add(sub3node);
2092              sub2node->cd(); 
2093              //
2094              // Place copy #2 of I107 in I10B
2095              //
2096              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2097              sub3node->SetLineColor(kColorITS);
2098              sub3node->SetVisibility(0);
2099              sub3node->cd();
2100                 //
2101                 // Place copy #1 of I101 in I107
2102                 //
2103                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2104                 sub4node->SetLineColor(kColorITS);
2105                 sub4node->SetVisibility(0);
2106                 sub4node->cd();             
2107                    //
2108                    // Place copy #1 of ITS1 in I101
2109                    //
2110                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2111                    sub5node->SetLineColor(kColorITS);                   
2112                    fNodes->Add(sub5node);
2113                    sub4node->cd();   
2114                 fNodes->Add(sub4node);  
2115              sub3node->cd(); 
2116              fNodes->Add(sub3node);
2117              sub2node->cd(); 
2118              //
2119              // Place copy #3 of I107 in I10B
2120              //
2121              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2122              sub3node->SetLineColor(kColorITS);
2123              sub3node->SetVisibility(0);
2124              sub3node->cd();
2125                 //
2126                 // Place copy #1 of I101 in I107
2127                 //
2128                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2129                 sub4node->SetLineColor(kColorITS);
2130                 sub4node->SetVisibility(0);
2131                 sub4node->cd();             
2132                    //
2133                    // Place copy #1 of ITS1 in I101
2134                    //
2135                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2136                    sub5node->SetLineColor(kColorITS);                   
2137                    fNodes->Add(sub5node);
2138                    sub4node->cd();   
2139                 fNodes->Add(sub4node);  
2140              sub3node->cd(); 
2141              fNodes->Add(sub3node);
2142              sub2node->cd(); 
2143              //
2144              // Place copy #4 of I107 in I10B
2145              //
2146              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2147              sub3node->SetLineColor(kColorITS);
2148              sub3node->SetVisibility(0);
2149              sub3node->cd();
2150                 //
2151                 // Place copy #1 of I101 in I107
2152                 //
2153                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2154                 sub4node->SetLineColor(kColorITS);
2155                 sub4node->SetVisibility(0);
2156                 sub4node->cd();             
2157                    //
2158                    // Place copy #1 of ITS1 in I101
2159                    //
2160                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2161                    sub5node->SetLineColor(kColorITS);                   
2162                    fNodes->Add(sub5node);
2163                    sub4node->cd();   
2164                 fNodes->Add(sub4node);  
2165              sub3node->cd(); 
2166              fNodes->Add(sub3node);
2167              sub2node->cd(); 
2168           fNodes->Add(sub2node);        
2169           sub1node->cd(); 
2170           //
2171           // Place copy #2 of I10B in I12B
2172           //
2173           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
2174           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2175           sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2176           sub2node->SetLineColor(kColorITS);
2177           sub2node->SetVisibility(0);
2178           sub2node->cd();
2179              //
2180              // Place copy #1 of I107 in I10B
2181              //
2182              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2183              sub3node->SetLineColor(kColorITS);
2184              sub3node->SetVisibility(0);
2185              sub3node->cd();
2186                 //
2187                 // Place copy #1 of I101 in I107
2188                 //
2189                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2190                 sub4node->SetLineColor(kColorITS);
2191                 sub4node->SetVisibility(0);
2192                 sub4node->cd();
2193                    //               
2194                    // Place copy #1 of ITS1 in I101
2195                    //
2196                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2197                    sub5node->SetLineColor(kColorITS);                   
2198                    fNodes->Add(sub5node);
2199                    sub4node->cd();   
2200                 fNodes->Add(sub4node);  
2201              sub3node->cd(); 
2202              fNodes->Add(sub3node);
2203              sub2node->cd(); 
2204              //
2205              // Place copy #2 of I107 in I10B
2206              //
2207              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2208              sub3node->SetLineColor(kColorITS);
2209              sub3node->SetVisibility(0);
2210              sub3node->cd();
2211                 //
2212                 // Place copy #1 of I101 in I107
2213                 //
2214                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2215                 sub4node->SetLineColor(kColorITS);
2216                 sub4node->SetVisibility(0);
2217                 sub4node->cd();             
2218                    //
2219                    // Place copy #1 of ITS1 in I101
2220                    //
2221                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2222                    sub5node->SetLineColor(kColorITS);                   
2223                    fNodes->Add(sub5node);
2224                    sub4node->cd();   
2225                 fNodes->Add(sub4node);  
2226              sub3node->cd(); 
2227              fNodes->Add(sub3node);
2228              sub2node->cd(); 
2229              //
2230              // Place copy #3 of I107 in I10B
2231              //
2232              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2233              sub3node->SetLineColor(kColorITS);
2234              sub3node->SetVisibility(0);
2235              sub3node->cd();
2236                 //
2237                 // Place copy #1 of I101 in I107
2238                 //
2239                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2240                 sub4node->SetLineColor(kColorITS);
2241                 sub4node->SetVisibility(0);
2242                 sub4node->cd();             
2243                    //
2244                    // Place copy #1 of ITS1 in I101
2245                    //
2246                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2247                    sub5node->SetLineColor(kColorITS);                   
2248                    fNodes->Add(sub5node);
2249                    sub4node->cd();   
2250                 fNodes->Add(sub4node);  
2251              sub3node->cd(); 
2252              fNodes->Add(sub3node);
2253              sub2node->cd(); 
2254              //
2255              // Place copy #4 of I107 in I10B
2256              //
2257              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2258              sub3node->SetLineColor(kColorITS);
2259              sub3node->SetVisibility(0);
2260              sub3node->cd();
2261                 //
2262                 // Place copy #1 of I101 in I107
2263                 //
2264                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2265                 sub4node->SetLineColor(kColorITS);
2266                 sub4node->SetVisibility(0);
2267                 sub4node->cd();             
2268                    //
2269                    // Place copy #1 of ITS1 in I101
2270                    //
2271                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2272                    sub5node->SetLineColor(kColorITS);                   
2273                    fNodes->Add(sub5node);
2274                    sub4node->cd();   
2275                 fNodes->Add(sub4node);  
2276              sub3node->cd(); 
2277              fNodes->Add(sub3node);
2278              sub2node->cd(); 
2279           fNodes->Add(sub2node);        
2280           sub1node->cd(); 
2281           //
2282           // Place copy #1 of I20B in I12B
2283           //
2284           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
2285           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2286           sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2287           sub2node->SetLineColor(kColorITS);
2288           sub2node->SetVisibility(0);
2289           sub2node->cd();
2290              //
2291              // Place copy #1 of I1D7 in I20B
2292              //
2293              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2294              sub3node->SetLineColor(kColorITS);
2295              sub3node->SetVisibility(0);
2296              sub3node->cd();
2297                 //
2298                 // Place copy #1 of I1D1 in I1D7
2299                 //
2300                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2301                 sub4node->SetLineColor(kColorITS);
2302                 sub4node->SetVisibility(0);
2303                 sub4node->cd();
2304                    //               
2305                    // Place copy #1 of ITS2 in I1D1
2306                    //
2307                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2308                    sub5node->SetLineColor(kColorITS);                   
2309                    fNodes->Add(sub5node);
2310                    sub4node->cd();   
2311                 fNodes->Add(sub4node);  
2312              sub3node->cd(); 
2313              fNodes->Add(sub3node);
2314              sub2node->cd(); 
2315              //
2316              // Place copy #2 of I1D7 in I20B
2317              //
2318              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2319              sub3node->SetLineColor(kColorITS);
2320              sub3node->SetVisibility(0);
2321              sub3node->cd();
2322                 //
2323                 // Place copy #1 of I1D1 in I1D7
2324                 //
2325                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2326                 sub4node->SetLineColor(kColorITS);
2327                 sub4node->SetVisibility(0);
2328                 sub4node->cd();             
2329                    //
2330                    // Place copy #1 of ITS2 in I1D1
2331                    //
2332                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2333                    sub5node->SetLineColor(kColorITS);                   
2334                    fNodes->Add(sub5node);
2335                    sub4node->cd();   
2336                 fNodes->Add(sub4node);  
2337              sub3node->cd(); 
2338              fNodes->Add(sub3node);
2339              sub2node->cd(); 
2340              //
2341              // Place copy #3 of I1D7 in I20B
2342              //
2343              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2344              sub3node->SetLineColor(kColorITS);
2345              sub3node->SetVisibility(0);
2346              sub3node->cd();
2347                 //
2348                 // Place copy #1 of I1D1 in I1D7
2349                 //
2350                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2351                 sub4node->SetLineColor(kColorITS);
2352                 sub4node->SetVisibility(0);
2353                 sub4node->cd();             
2354                    //
2355                    // Place copy #1 of ITS2 in I1D1
2356                    //
2357                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2358                    sub5node->SetLineColor(kColorITS);                   
2359                    fNodes->Add(sub5node);
2360                    sub4node->cd();   
2361                 fNodes->Add(sub4node);  
2362              sub3node->cd(); 
2363              fNodes->Add(sub3node);
2364              sub2node->cd(); 
2365              //
2366              // Place copy #4 of I1D7 in I20B
2367              //
2368              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2369              sub3node->SetLineColor(kColorITS);
2370              sub3node->SetVisibility(0);
2371              sub3node->cd();
2372                 //
2373                 // Place copy #1 of I1D1 in I1D7
2374                 //
2375                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2376                 sub4node->SetLineColor(kColorITS);
2377                 sub4node->SetVisibility(0);
2378                 sub4node->cd();             
2379                    //
2380                    // Place copy #1 of ITS2 in I1D1
2381                    //
2382                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2383                    sub5node->SetLineColor(kColorITS);                   
2384                    fNodes->Add(sub5node);
2385                    sub4node->cd();   
2386                 fNodes->Add(sub4node);  
2387              sub3node->cd(); 
2388              fNodes->Add(sub3node);
2389              sub2node->cd(); 
2390           fNodes->Add(sub2node);        
2391           sub1node->cd(); 
2392           //
2393           // Place copy #2 of I20B in I12B
2394           //
2395           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
2396           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
2397           sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
2398           sub2node->SetLineColor(kColorITS);
2399           sub2node->SetVisibility(0);
2400           sub2node->cd();
2401              //
2402              // Place copy #1 of I1D7 in I20B
2403              //
2404              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2405              sub3node->SetLineColor(kColorITS);
2406              sub3node->SetVisibility(0);
2407              sub3node->cd();
2408                 //
2409                 // Place copy #1 of I1D1 in I1D7
2410                 //
2411                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2412                 sub4node->SetLineColor(kColorITS);
2413                 sub4node->SetVisibility(0);
2414                 sub4node->cd();
2415                    //               
2416                    // Place copy #1 of ITS2 in I1D1
2417                    //
2418                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2419                    sub5node->SetLineColor(kColorITS);                   
2420                    fNodes->Add(sub5node);
2421                    sub4node->cd();   
2422                 fNodes->Add(sub4node);  
2423              sub3node->cd(); 
2424              fNodes->Add(sub3node);
2425              sub2node->cd(); 
2426              //
2427              // Place copy #2 of I1D7 in I20B
2428              //
2429              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2430              sub3node->SetLineColor(kColorITS);
2431              sub3node->SetVisibility(0);
2432              sub3node->cd();
2433                 //
2434                 // Place copy #1 of I1D1 in I1D7
2435                 //
2436                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2437                 sub4node->SetLineColor(kColorITS);
2438                 sub4node->SetVisibility(0);
2439                 sub4node->cd();             
2440                    //
2441                    // Place copy #1 of ITS2 in I1D1
2442                    //
2443                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2444                    sub5node->SetLineColor(kColorITS);                   
2445                    fNodes->Add(sub5node);
2446                    sub4node->cd();   
2447                 fNodes->Add(sub4node);  
2448              sub3node->cd(); 
2449              fNodes->Add(sub3node);
2450              sub2node->cd(); 
2451              //
2452              // Place copy #3 of I1D7 in I20B
2453              //
2454              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2455              sub3node->SetLineColor(kColorITS);
2456              sub3node->SetVisibility(0);
2457              sub3node->cd();
2458                 //
2459                 // Place copy #1 of I1D1 in I1D7
2460                 //
2461                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2462                 sub4node->SetLineColor(kColorITS);
2463                 sub4node->SetVisibility(0);
2464                 sub4node->cd();             
2465                    //
2466                    // Place copy #1 of ITS2 in I1D1
2467                    //
2468                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2469                    sub5node->SetLineColor(kColorITS);                   
2470                    fNodes->Add(sub5node);
2471                    sub4node->cd();   
2472                 fNodes->Add(sub4node);  
2473              sub3node->cd(); 
2474              fNodes->Add(sub3node);
2475              sub2node->cd(); 
2476              //
2477              // Place copy #4 of I1D7 in I20B
2478              //
2479              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2480              sub3node->SetLineColor(kColorITS);
2481              sub3node->SetVisibility(0);
2482              sub3node->cd();
2483                 //
2484                 // Place copy #1 of I1D1 in I1D7
2485                 //
2486                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2487                 sub4node->SetLineColor(kColorITS);
2488                 sub4node->SetVisibility(0);
2489                 sub4node->cd();             
2490                    //
2491                    // Place copy #1 of ITS2 in I1D1
2492                    //
2493                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2494                    sub5node->SetLineColor(kColorITS);                   
2495                    fNodes->Add(sub5node);
2496                    sub4node->cd();   
2497                 fNodes->Add(sub4node);  
2498              sub3node->cd(); 
2499              fNodes->Add(sub3node);
2500              sub2node->cd(); 
2501           fNodes->Add(sub2node);        
2502           sub1node->cd(); 
2503           //
2504           // Place copy #3 of I20B in I12B
2505           //
2506           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
2507           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
2508           sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
2509           sub2node->SetLineColor(kColorITS);
2510           sub2node->SetVisibility(0);
2511           sub2node->cd();
2512              //
2513              // Place copy #1 of I1D7 in I20B
2514              //
2515              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2516              sub3node->SetLineColor(kColorITS);
2517              sub3node->SetVisibility(0);
2518              sub3node->cd();
2519                 //
2520                 // Place copy #1 of I1D1 in I1D7
2521                 //
2522                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2523                 sub4node->SetLineColor(kColorITS);
2524                 sub4node->SetVisibility(0);
2525                 sub4node->cd();
2526                    //               
2527                    // Place copy #1 of ITS2 in I1D1
2528                    //
2529                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2530                    sub5node->SetLineColor(kColorITS);                   
2531                    fNodes->Add(sub5node);
2532                    sub4node->cd();   
2533                 fNodes->Add(sub4node);  
2534              sub3node->cd(); 
2535              fNodes->Add(sub3node);
2536              sub2node->cd(); 
2537              //
2538              // Place copy #2 of I1D7 in I20B
2539              //
2540              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2541              sub3node->SetLineColor(kColorITS);
2542              sub3node->SetVisibility(0);
2543              sub3node->cd();
2544                 //
2545                 // Place copy #1 of I1D1 in I1D7
2546                 //
2547                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2548                 sub4node->SetLineColor(kColorITS);
2549                 sub4node->SetVisibility(0);
2550                 sub4node->cd();             
2551                    //
2552                    // Place copy #1 of ITS2 in I1D1
2553                    //
2554                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2555                    sub5node->SetLineColor(kColorITS);                   
2556                    fNodes->Add(sub5node);
2557                    sub4node->cd();   
2558                 fNodes->Add(sub4node);  
2559              sub3node->cd(); 
2560              fNodes->Add(sub3node);
2561              sub2node->cd(); 
2562              //
2563              // Place copy #3 of I1D7 in I20B
2564              //
2565              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2566              sub3node->SetLineColor(kColorITS);
2567              sub3node->SetVisibility(0);
2568              sub3node->cd();
2569                 //
2570                 // Place copy #1 of I1D1 in I1D7
2571                 //
2572                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2573                 sub4node->SetLineColor(kColorITS);
2574                 sub4node->SetVisibility(0);
2575                 sub4node->cd();             
2576                    //
2577                    // Place copy #1 of ITS2 in I1D1
2578                    //
2579                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2580                    sub5node->SetLineColor(kColorITS);                   
2581                    fNodes->Add(sub5node);
2582                    sub4node->cd();   
2583                 fNodes->Add(sub4node);  
2584              sub3node->cd(); 
2585              fNodes->Add(sub3node);
2586              sub2node->cd(); 
2587              //
2588              // Place copy #4 of I1D7 in I20B
2589              //
2590              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2591              sub3node->SetLineColor(kColorITS);
2592              sub3node->SetVisibility(0);
2593              sub3node->cd();
2594                 //
2595                 // Place copy #1 of I1D1 in I1D7
2596                 //
2597                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2598                 sub4node->SetLineColor(kColorITS);
2599                 sub4node->SetVisibility(0);
2600                 sub4node->cd();             
2601                    //
2602                    // Place copy #1 of ITS2 in I1D1
2603                    //
2604                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2605                    sub5node->SetLineColor(kColorITS);                   
2606                    fNodes->Add(sub5node);
2607                    sub4node->cd();   
2608                 fNodes->Add(sub4node);  
2609              sub3node->cd(); 
2610              fNodes->Add(sub3node);
2611              sub2node->cd(); 
2612           fNodes->Add(sub2node);        
2613           sub1node->cd(); 
2614           //
2615           // Place copy #4 of I20B in I12B
2616           //
2617           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
2618           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2619           sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2620           sub2node->SetLineColor(kColorITS);
2621           sub2node->SetVisibility(0);
2622           sub2node->cd();
2623              //
2624              // Place copy #1 of I1D7 in I20B
2625              //
2626              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2627              sub3node->SetLineColor(kColorITS);
2628              sub3node->SetVisibility(0);
2629              sub3node->cd();
2630                 //
2631                 // Place copy #1 of I1D1 in I1D7
2632                 //
2633                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2634                 sub4node->SetLineColor(kColorITS);
2635                 sub4node->SetVisibility(0);
2636                 sub4node->cd();
2637                    //               
2638                    // Place copy #1 of ITS2 in I1D1
2639                    //
2640                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2641                    sub5node->SetLineColor(kColorITS);                   
2642                    fNodes->Add(sub5node);
2643                    sub4node->cd();   
2644                 fNodes->Add(sub4node);  
2645              sub3node->cd(); 
2646              fNodes->Add(sub3node);
2647              sub2node->cd(); 
2648              //
2649              // Place copy #2 of I1D7 in I20B
2650              //
2651              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2652              sub3node->SetLineColor(kColorITS);
2653              sub3node->SetVisibility(0);
2654              sub3node->cd();
2655                 //
2656                 // Place copy #1 of I1D1 in I1D7
2657                 //
2658                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2659                 sub4node->SetLineColor(kColorITS);
2660                 sub4node->SetVisibility(0);
2661                 sub4node->cd();             
2662                    //
2663                    // Place copy #1 of ITS2 in I1D1
2664                    //
2665                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2666                    sub5node->SetLineColor(kColorITS);                   
2667                    fNodes->Add(sub5node);
2668                    sub4node->cd();   
2669                 fNodes->Add(sub4node);  
2670              sub3node->cd(); 
2671              fNodes->Add(sub3node);
2672              sub2node->cd(); 
2673              //
2674              // Place copy #3 of I1D7 in I20B
2675              //
2676              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2677              sub3node->SetLineColor(kColorITS);
2678              sub3node->SetVisibility(0);
2679              sub3node->cd();
2680                 //
2681                 // Place copy #1 of I1D1 in I1D7
2682                 //
2683                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2684                 sub4node->SetLineColor(kColorITS);
2685                 sub4node->SetVisibility(0);
2686                 sub4node->cd();             
2687                    //
2688                    // Place copy #1 of ITS2 in I1D1
2689                    //
2690                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2691                    sub5node->SetLineColor(kColorITS);                   
2692                    fNodes->Add(sub5node);
2693                    sub4node->cd();   
2694                 fNodes->Add(sub4node);  
2695              sub3node->cd(); 
2696              fNodes->Add(sub3node);
2697              sub2node->cd(); 
2698              //
2699              // Place copy #4 of I1D7 in I20B
2700              //
2701              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2702              sub3node->SetLineColor(kColorITS);
2703              sub3node->SetVisibility(0);
2704              sub3node->cd();
2705                 //
2706                 // Place copy #1 of I1D1 in I1D7
2707                 //
2708                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2709                 sub4node->SetLineColor(kColorITS);
2710                 sub4node->SetVisibility(0);
2711                 sub4node->cd();             
2712                    //
2713                    // Place copy #1 of ITS2 in I1D1
2714                    //
2715                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2716                    sub5node->SetLineColor(kColorITS);                   
2717                    fNodes->Add(sub5node);
2718                    sub4node->cd();   
2719                 fNodes->Add(sub4node);  
2720              sub3node->cd(); 
2721              fNodes->Add(sub3node);
2722              sub2node->cd(); 
2723           fNodes->Add(sub2node);        
2724           sub1node->cd(); 
2725        fNodes->Add(sub1node);
2726        node->cd(); 
2727        //
2728        // Place copy #4 of I12B in IT12
2729        //
2730        sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
2731        sub1node->SetLineColor(kColorITS);
2732        sub1node->SetVisibility(0);
2733        sub1node->cd();    
2734           //
2735           // Place copy #1 of I10B in I12B
2736           //
2737           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);  
2738           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2739           sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2740           sub2node->SetLineColor(kColorITS);
2741           sub2node->SetVisibility(0);
2742           sub2node->cd();
2743              //
2744              // Place copy #1 of I107 in I10B
2745              //
2746              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2747              sub3node->SetLineColor(kColorITS);
2748              sub3node->SetVisibility(0);
2749              sub3node->cd();
2750                 //
2751                 // Place copy #1 of I101 in I107
2752                 //
2753                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2754                 sub4node->SetLineColor(kColorITS);
2755                 sub4node->SetVisibility(0);
2756                 sub4node->cd();
2757                    //               
2758                    // Place copy #1 of ITS1 in I101
2759                    //
2760                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2761                    sub5node->SetLineColor(kColorITS);                   
2762                    fNodes->Add(sub5node);
2763                    sub4node->cd();   
2764                 fNodes->Add(sub4node);  
2765              sub3node->cd(); 
2766              fNodes->Add(sub3node);
2767              sub2node->cd(); 
2768              //
2769              // Place copy #2 of I107 in I10B
2770              //
2771              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2772              sub3node->SetLineColor(kColorITS);
2773              sub3node->SetVisibility(0);
2774              sub3node->cd();
2775                 //
2776                 // Place copy #1 of I101 in I107
2777                 //
2778                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2779                 sub4node->SetLineColor(kColorITS);
2780                 sub4node->SetVisibility(0);
2781                 sub4node->cd();             
2782                    //
2783                    // Place copy #1 of ITS1 in I101
2784                    //
2785                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2786                    sub5node->SetLineColor(kColorITS);                   
2787                    fNodes->Add(sub5node);
2788                    sub4node->cd();   
2789                 fNodes->Add(sub4node);  
2790              sub3node->cd(); 
2791              fNodes->Add(sub3node);
2792              sub2node->cd(); 
2793              //
2794              // Place copy #3 of I107 in I10B
2795              //
2796              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2797              sub3node->SetLineColor(kColorITS);
2798              sub3node->SetVisibility(0);
2799              sub3node->cd();
2800                 //
2801                 // Place copy #1 of I101 in I107
2802                 //
2803                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2804                 sub4node->SetLineColor(kColorITS);
2805                 sub4node->SetVisibility(0);
2806                 sub4node->cd();             
2807                    //
2808                    // Place copy #1 of ITS1 in I101
2809                    //
2810                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2811                    sub5node->SetLineColor(kColorITS);                   
2812                    fNodes->Add(sub5node);
2813                    sub4node->cd();   
2814                 fNodes->Add(sub4node);  
2815              sub3node->cd(); 
2816              fNodes->Add(sub3node);
2817              sub2node->cd(); 
2818              //
2819              // Place copy #4 of I107 in I10B
2820              //
2821              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2822              sub3node->SetLineColor(kColorITS);
2823              sub3node->SetVisibility(0);
2824              sub3node->cd();
2825                 //
2826                 // Place copy #1 of I101 in I107
2827                 //
2828                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2829                 sub4node->SetLineColor(kColorITS);
2830                 sub4node->SetVisibility(0);
2831                 sub4node->cd();             
2832                    //
2833                    // Place copy #1 of ITS1 in I101
2834                    //
2835                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2836                    sub5node->SetLineColor(kColorITS);                   
2837                    fNodes->Add(sub5node);
2838                    sub4node->cd();   
2839                 fNodes->Add(sub4node);  
2840              sub3node->cd(); 
2841              fNodes->Add(sub3node);
2842              sub2node->cd(); 
2843           fNodes->Add(sub2node);        
2844           sub1node->cd(); 
2845           //
2846           // Place copy #2 of I10B in I12B
2847           //
2848           deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);  
2849           deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2850           sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2851           sub2node->SetLineColor(kColorITS);
2852           sub2node->SetVisibility(0);
2853           sub2node->cd();
2854              //
2855              // Place copy #1 of I107 in I10B
2856              //
2857              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2858              sub3node->SetLineColor(kColorITS);
2859              sub3node->SetVisibility(0);
2860              sub3node->cd();
2861                 //
2862                 // Place copy #1 of I101 in I107
2863                 //
2864                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2865                 sub4node->SetLineColor(kColorITS);
2866                 sub4node->SetVisibility(0);
2867                 sub4node->cd();
2868                    //               
2869                    // Place copy #1 of ITS1 in I101
2870                    //
2871                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2872                    sub5node->SetLineColor(kColorITS);                   
2873                    fNodes->Add(sub5node);
2874                    sub4node->cd();   
2875                 fNodes->Add(sub4node);  
2876              sub3node->cd(); 
2877              fNodes->Add(sub3node);
2878              sub2node->cd(); 
2879              //
2880              // Place copy #2 of I107 in I10B
2881              //
2882              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2883              sub3node->SetLineColor(kColorITS);
2884              sub3node->SetVisibility(0);
2885              sub3node->cd();
2886                 //
2887                 // Place copy #1 of I101 in I107
2888                 //
2889                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2890                 sub4node->SetLineColor(kColorITS);
2891                 sub4node->SetVisibility(0);
2892                 sub4node->cd();             
2893                    //
2894                    // Place copy #1 of ITS1 in I101
2895                    //
2896                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2897                    sub5node->SetLineColor(kColorITS);                   
2898                    fNodes->Add(sub5node);
2899                    sub4node->cd();   
2900                 fNodes->Add(sub4node);  
2901              sub3node->cd(); 
2902              fNodes->Add(sub3node);
2903              sub2node->cd(); 
2904              //
2905              // Place copy #3 of I107 in I10B
2906              //
2907              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2908              sub3node->SetLineColor(kColorITS);
2909              sub3node->SetVisibility(0);
2910              sub3node->cd();
2911                 //
2912                 // Place copy #1 of I101 in I107
2913                 //
2914                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2915                 sub4node->SetLineColor(kColorITS);
2916                 sub4node->SetVisibility(0);
2917                 sub4node->cd();             
2918                    //
2919                    // Place copy #1 of ITS1 in I101
2920                    //
2921                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2922                    sub5node->SetLineColor(kColorITS);                   
2923                    fNodes->Add(sub5node);
2924                    sub4node->cd();   
2925                 fNodes->Add(sub4node);  
2926              sub3node->cd(); 
2927              fNodes->Add(sub3node);
2928              sub2node->cd(); 
2929              //
2930              // Place copy #4 of I107 in I10B
2931              //
2932              sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2933              sub3node->SetLineColor(kColorITS);
2934              sub3node->SetVisibility(0);
2935              sub3node->cd();
2936                 //
2937                 // Place copy #1 of I101 in I107
2938                 //
2939                 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2940                 sub4node->SetLineColor(kColorITS);
2941                 sub4node->SetVisibility(0);
2942                 sub4node->cd();             
2943                    //
2944                    // Place copy #1 of ITS1 in I101
2945                    //
2946                    sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2947                    sub5node->SetLineColor(kColorITS);                   
2948                    fNodes->Add(sub5node);
2949                    sub4node->cd();   
2950                 fNodes->Add(sub4node);  
2951              sub3node->cd(); 
2952              fNodes->Add(sub3node);
2953              sub2node->cd(); 
2954           fNodes->Add(sub2node);        
2955           sub1node->cd(); 
2956           //
2957           // Place copy #1 of I20B in I12B
2958           //
2959           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);  
2960           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2961           sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2962           sub2node->SetLineColor(kColorITS);
2963           sub2node->SetVisibility(0);
2964           sub2node->cd();
2965              //
2966              // Place copy #1 of I1D7 in I20B
2967              //
2968              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2969              sub3node->SetLineColor(kColorITS);
2970              sub3node->SetVisibility(0);
2971              sub3node->cd();
2972                 //
2973                 // Place copy #1 of I1D1 in I1D7
2974                 //
2975                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2976                 sub4node->SetLineColor(kColorITS);
2977                 sub4node->SetVisibility(0);
2978                 sub4node->cd();
2979                    //               
2980                    // Place copy #1 of ITS2 in I1D1
2981                    //
2982                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2983                    sub5node->SetLineColor(kColorITS);                   
2984                    fNodes->Add(sub5node);
2985                    sub4node->cd();   
2986                 fNodes->Add(sub4node);  
2987              sub3node->cd(); 
2988              fNodes->Add(sub3node);
2989              sub2node->cd(); 
2990              //
2991              // Place copy #2 of I1D7 in I20B
2992              //
2993              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2994              sub3node->SetLineColor(kColorITS);
2995              sub3node->SetVisibility(0);
2996              sub3node->cd();
2997                 //
2998                 // Place copy #1 of I1D1 in I1D7
2999                 //
3000                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3001                 sub4node->SetLineColor(kColorITS);
3002                 sub4node->SetVisibility(0);
3003                 sub4node->cd();             
3004                    //
3005                    // Place copy #1 of ITS2 in I1D1
3006                    //
3007                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3008                    sub5node->SetLineColor(kColorITS);                   
3009                    fNodes->Add(sub5node);
3010                    sub4node->cd();   
3011                 fNodes->Add(sub4node);  
3012              sub3node->cd(); 
3013              fNodes->Add(sub3node);
3014              sub2node->cd(); 
3015              //
3016              // Place copy #3 of I1D7 in I20B
3017              //
3018              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3019              sub3node->SetLineColor(kColorITS);
3020              sub3node->SetVisibility(0);
3021              sub3node->cd();
3022                 //
3023                 // Place copy #1 of I1D1 in I1D7
3024                 //
3025                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3026                 sub4node->SetLineColor(kColorITS);
3027                 sub4node->SetVisibility(0);
3028                 sub4node->cd();             
3029                    //
3030                    // Place copy #1 of ITS2 in I1D1
3031                    //
3032                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3033                    sub5node->SetLineColor(kColorITS);                   
3034                    fNodes->Add(sub5node);
3035                    sub4node->cd();   
3036                 fNodes->Add(sub4node);  
3037              sub3node->cd(); 
3038              fNodes->Add(sub3node);
3039              sub2node->cd(); 
3040              //
3041              // Place copy #4 of I1D7 in I20B
3042              //
3043              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3044              sub3node->SetLineColor(kColorITS);
3045              sub3node->SetVisibility(0);
3046              sub3node->cd();
3047                 //
3048                 // Place copy #1 of I1D1 in I1D7
3049                 //
3050                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3051                 sub4node->SetLineColor(kColorITS);
3052                 sub4node->SetVisibility(0);
3053                 sub4node->cd();             
3054                    //
3055                    // Place copy #1 of ITS2 in I1D1
3056                    //
3057                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3058                    sub5node->SetLineColor(kColorITS);                   
3059                    fNodes->Add(sub5node);
3060                    sub4node->cd();   
3061                 fNodes->Add(sub4node);  
3062              sub3node->cd(); 
3063              fNodes->Add(sub3node);
3064              sub2node->cd(); 
3065           fNodes->Add(sub2node);        
3066           sub1node->cd(); 
3067           //
3068           // Place copy #2 of I20B in I12B
3069           //
3070           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);  
3071           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
3072           sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
3073           sub2node->SetLineColor(kColorITS);
3074           sub2node->SetVisibility(0);
3075           sub2node->cd();
3076              //
3077              // Place copy #1 of I1D7 in I20B
3078              //
3079              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3080              sub3node->SetLineColor(kColorITS);
3081              sub3node->SetVisibility(0);
3082              sub3node->cd();
3083                 //
3084                 // Place copy #1 of I1D1 in I1D7
3085                 //
3086                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3087                 sub4node->SetLineColor(kColorITS);
3088                 sub4node->SetVisibility(0);
3089                 sub4node->cd();
3090                    //               
3091                    // Place copy #1 of ITS2 in I1D1
3092                    //
3093                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3094                    sub5node->SetLineColor(kColorITS);                   
3095                    fNodes->Add(sub5node);
3096                    sub4node->cd();   
3097                 fNodes->Add(sub4node);  
3098              sub3node->cd(); 
3099              fNodes->Add(sub3node);
3100              sub2node->cd(); 
3101              //
3102              // Place copy #2 of I1D7 in I20B
3103              //
3104              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3105              sub3node->SetLineColor(kColorITS);
3106              sub3node->SetVisibility(0);
3107              sub3node->cd();
3108                 //
3109                 // Place copy #1 of I1D1 in I1D7
3110                 //
3111                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3112                 sub4node->SetLineColor(kColorITS);
3113                 sub4node->SetVisibility(0);
3114                 sub4node->cd();             
3115                    //
3116                    // Place copy #1 of ITS2 in I1D1
3117                    //
3118                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3119                    sub5node->SetLineColor(kColorITS);                   
3120                    fNodes->Add(sub5node);
3121                    sub4node->cd();   
3122                 fNodes->Add(sub4node);  
3123              sub3node->cd(); 
3124              fNodes->Add(sub3node);
3125              sub2node->cd(); 
3126              //
3127              // Place copy #3 of I1D7 in I20B
3128              //
3129              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3130              sub3node->SetLineColor(kColorITS);
3131              sub3node->SetVisibility(0);
3132              sub3node->cd();
3133                 //
3134                 // Place copy #1 of I1D1 in I1D7
3135                 //
3136                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3137                 sub4node->SetLineColor(kColorITS);
3138                 sub4node->SetVisibility(0);
3139                 sub4node->cd();             
3140                    //
3141                    // Place copy #1 of ITS2 in I1D1
3142                    //
3143                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3144                    sub5node->SetLineColor(kColorITS);                   
3145                    fNodes->Add(sub5node);
3146                    sub4node->cd();   
3147                 fNodes->Add(sub4node);  
3148              sub3node->cd(); 
3149              fNodes->Add(sub3node);
3150              sub2node->cd(); 
3151              //
3152              // Place copy #4 of I1D7 in I20B
3153              //
3154              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3155              sub3node->SetLineColor(kColorITS);
3156              sub3node->SetVisibility(0);
3157              sub3node->cd();
3158                 //
3159                 // Place copy #1 of I1D1 in I1D7
3160                 //
3161                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3162                 sub4node->SetLineColor(kColorITS);
3163                 sub4node->SetVisibility(0);
3164                 sub4node->cd();             
3165                    //
3166                    // Place copy #1 of ITS2 in I1D1
3167                    //
3168                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3169                    sub5node->SetLineColor(kColorITS);                   
3170                    fNodes->Add(sub5node);
3171                    sub4node->cd();   
3172                 fNodes->Add(sub4node);  
3173              sub3node->cd(); 
3174              fNodes->Add(sub3node);
3175              sub2node->cd(); 
3176           fNodes->Add(sub2node);        
3177           sub1node->cd(); 
3178           //
3179           // Place copy #3 of I20B in I12B
3180           //
3181           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);  
3182           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
3183           sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
3184           sub2node->SetLineColor(kColorITS);
3185           sub2node->SetVisibility(0);
3186           sub2node->cd();
3187              //
3188              // Place copy #1 of I1D7 in I20B
3189              //
3190              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3191              sub3node->SetLineColor(kColorITS);
3192              sub3node->SetVisibility(0);
3193              sub3node->cd();
3194                 //
3195                 // Place copy #1 of I1D1 in I1D7
3196                 //
3197                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3198                 sub4node->SetLineColor(kColorITS);
3199                 sub4node->SetVisibility(0);
3200                 sub4node->cd();
3201                    //               
3202                    // Place copy #1 of ITS2 in I1D1
3203                    //
3204                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3205                    sub5node->SetLineColor(kColorITS);                   
3206                    fNodes->Add(sub5node);
3207                    sub4node->cd();   
3208                 fNodes->Add(sub4node);  
3209              sub3node->cd(); 
3210              fNodes->Add(sub3node);
3211              sub2node->cd(); 
3212              //
3213              // Place copy #2 of I1D7 in I20B
3214              //
3215              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3216              sub3node->SetLineColor(kColorITS);
3217              sub3node->SetVisibility(0);
3218              sub3node->cd();
3219                 //
3220                 // Place copy #1 of I1D1 in I1D7
3221                 //
3222                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3223                 sub4node->SetLineColor(kColorITS);
3224                 sub4node->SetVisibility(0);
3225                 sub4node->cd();             
3226                    //
3227                    // Place copy #1 of ITS2 in I1D1
3228                    //
3229                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3230                    sub5node->SetLineColor(kColorITS);                   
3231                    fNodes->Add(sub5node);
3232                    sub4node->cd();   
3233                 fNodes->Add(sub4node);  
3234              sub3node->cd(); 
3235              fNodes->Add(sub3node);
3236              sub2node->cd(); 
3237              //
3238              // Place copy #3 of I1D7 in I20B
3239              //
3240              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3241              sub3node->SetLineColor(kColorITS);
3242              sub3node->SetVisibility(0);
3243              sub3node->cd();
3244                 //
3245                 // Place copy #1 of I1D1 in I1D7
3246                 //
3247                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3248                 sub4node->SetLineColor(kColorITS);
3249                 sub4node->SetVisibility(0);
3250                 sub4node->cd();             
3251                    //
3252                    // Place copy #1 of ITS2 in I1D1
3253                    //
3254                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3255                    sub5node->SetLineColor(kColorITS);                   
3256                    fNodes->Add(sub5node);
3257                    sub4node->cd();   
3258                 fNodes->Add(sub4node);  
3259              sub3node->cd(); 
3260              fNodes->Add(sub3node);
3261              sub2node->cd(); 
3262              //
3263              // Place copy #4 of I1D7 in I20B
3264              //
3265              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3266              sub3node->SetLineColor(kColorITS);
3267              sub3node->SetVisibility(0);
3268              sub3node->cd();
3269                 //
3270                 // Place copy #1 of I1D1 in I1D7
3271                 //
3272                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3273                 sub4node->SetLineColor(kColorITS);
3274                 sub4node->SetVisibility(0);
3275                 sub4node->cd();             
3276                    //
3277                    // Place copy #1 of ITS2 in I1D1
3278                    //
3279                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3280                    sub5node->SetLineColor(kColorITS);                   
3281                    fNodes->Add(sub5node);
3282                    sub4node->cd();   
3283                 fNodes->Add(sub4node);  
3284              sub3node->cd(); 
3285              fNodes->Add(sub3node);
3286              sub2node->cd(); 
3287           fNodes->Add(sub2node);        
3288           sub1node->cd(); 
3289           //
3290           // Place copy #4 of I20B in I12B
3291           //
3292           deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);  
3293           deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
3294           sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
3295           sub2node->SetLineColor(kColorITS);
3296           sub2node->SetVisibility(0);
3297           sub2node->cd();
3298              //
3299              // Place copy #1 of I1D7 in I20B
3300              //
3301              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3302              sub3node->SetLineColor(kColorITS);
3303              sub3node->SetVisibility(0);
3304              sub3node->cd();
3305                 //
3306                 // Place copy #1 of I1D1 in I1D7
3307                 //
3308                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3309                 sub4node->SetLineColor(kColorITS);
3310                 sub4node->SetVisibility(0);
3311                 sub4node->cd();
3312                    //               
3313                    // Place copy #1 of ITS2 in I1D1
3314                    //
3315                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3316                    sub5node->SetLineColor(kColorITS);                   
3317                    fNodes->Add(sub5node);
3318                    sub4node->cd();   
3319                 fNodes->Add(sub4node);  
3320              sub3node->cd(); 
3321              fNodes->Add(sub3node);
3322              sub2node->cd(); 
3323              //
3324              // Place copy #2 of I1D7 in I20B
3325              //
3326              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3327              sub3node->SetLineColor(kColorITS);
3328              sub3node->SetVisibility(0);
3329              sub3node->cd();
3330                 //
3331                 // Place copy #1 of I1D1 in I1D7
3332                 //
3333                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3334                 sub4node->SetLineColor(kColorITS);
3335                 sub4node->SetVisibility(0);
3336                 sub4node->cd();             
3337                    //
3338                    // Place copy #1 of ITS2 in I1D1
3339                    //
3340                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3341                    sub5node->SetLineColor(kColorITS);                   
3342                    fNodes->Add(sub5node);
3343                    sub4node->cd();   
3344                 fNodes->Add(sub4node);  
3345              sub3node->cd(); 
3346              fNodes->Add(sub3node);
3347              sub2node->cd(); 
3348              //
3349              // Place copy #3 of I1D7 in I20B
3350              //
3351              sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3352              sub3node->SetLineColor(kColorITS);
3353              sub3node->SetVisibility(0);
3354              sub3node->cd();
3355                 //
3356                 // Place copy #1 of I1D1 in I1D7
3357                 //
3358                 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3359                 sub4node->SetLineColor(kColorITS);
3360                 sub4node->SetVisibility(0);
3361                 sub4node->cd();             
3362                    //
3363                    // Place copy #1 of ITS2 in I1D1
3364                    //
3365                    sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3366                    sub5node->SetLineColor(kColorITS);                   
3367                    fNodes->Add(sub5node);
3368                    sub4node->cd();