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