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