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