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