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