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