1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 Revision 1.1 2002/09/16 14:45:31 barbera
19 Updated detailed geometry needed by FMD people for some studies
24 ///////////////////////////////////////////////////////////////////////////////
26 // Inner Traking System version PPR asymmetric for the FMD //
27 // This class contains the base procedures for the Inner Tracking System //
29 // Authors: R. Barbera //
31 // Created January 15 2001. //
33 // NOTE: THIS IS THE ASYMMETRIC PPR geometry of the ITS for the PMD. //
35 ///////////////////////////////////////////////////////////////////////////////
37 // See AliITSvPPRasymmFMD::StepManager().
43 #include <TGeometry.h>
48 #include <TFile.h> // only required for Tracking function?
50 #include <TObjArray.h>
51 #include <TLorentzVector.h>
52 #include <TObjString.h>
53 #include <TClonesArray.h>
61 #include "AliGeant3.h"
62 #include "AliITSGeant3Geometry.h"
63 #include "AliTrackReference.h"
64 #include "AliITShit.h"
66 #include "AliITSvPPRasymmFMD.h"
67 #include "AliITSgeom.h"
68 #include "AliITSgeomSPD.h"
69 #include "AliITSgeomSDD.h"
70 #include "AliITSgeomSSD.h"
71 #include "AliITSDetType.h"
72 #include "AliITSresponseSPD.h"
73 #include "AliITSresponseSDD.h"
74 #include "AliITSresponseSSD.h"
75 #include "AliITSsegmentationSPD.h"
76 #include "AliITSsegmentationSDD.h"
77 #include "AliITSsegmentationSSD.h"
78 #include "AliITSsimulationSPD.h"
79 #include "AliITSsimulationSDD.h"
80 #include "AliITSsimulationSSD.h"
81 #include "AliITSClusterFinderSPD.h"
82 #include "AliITSClusterFinderSDD.h"
83 #include "AliITSClusterFinderSSD.h"
86 ClassImp(AliITSvPPRasymmFMD)
88 //_____________________________________________________________________________
89 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD() {
90 ////////////////////////////////////////////////////////////////////////
91 // Standard default constructor for the ITS version 8.
92 ////////////////////////////////////////////////////////////////////////
98 fEuclidOut = kFALSE; // Don't write Euclide file
99 fGeomDetOut = kFALSE; // Don't write .det file
100 fGeomDetIn = kFALSE; // Don't Read .det file
101 fMajorVersion = IsVersion();
103 for(i=0;i<60;i++) fRead[i] = '\0';
104 for(i=0;i<60;i++) fWrite[i] = '\0';
105 for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
107 //_____________________________________________________________________________
108 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const char *name, const char *title) : AliITS(name, title){
109 ////////////////////////////////////////////////////////////////////////
110 // Standard constructor for the ITS version 10.
111 ////////////////////////////////////////////////////////////////////////
115 fIdName = new TString[fIdN];
122 fIdSens = new Int_t[fIdN];
123 for(i=0;i<fIdN;i++) fIdSens[i] = 0;
124 fMajorVersion = IsVersion();
126 fEuclidOut = kFALSE; // Don't write Euclide file
127 fGeomDetOut = kFALSE; // Don't write .det file
128 fGeomDetIn = kFALSE; // Don't Read .det file
134 fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
135 strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
136 strncpy(fRead,fEuclidGeomDet,60);
137 strncpy(fWrite,fEuclidGeomDet,60);
139 //____________________________________________________________________________
140 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const AliITSvPPRasymmFMD &source){
141 ////////////////////////////////////////////////////////////////////////
142 // Copy Constructor for ITS version 8.
143 ////////////////////////////////////////////////////////////////////////
144 if(&source == this) return;
145 Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymmFMD");
148 //_____________________________________________________________________________
149 AliITSvPPRasymmFMD& AliITSvPPRasymmFMD::operator=(const AliITSvPPRasymmFMD &source){
150 ////////////////////////////////////////////////////////////////////////
151 // Assignment operator for the ITS version 8.
152 ////////////////////////////////////////////////////////////////////////
153 if(&source == this) return *this;
154 Warning("= operator","Not allowed to copy AliITSvPPRasymmFMD");
157 //_____________________________________________________________________________
158 AliITSvPPRasymmFMD::~AliITSvPPRasymmFMD() {
159 ////////////////////////////////////////////////////////////////////////
160 // Standard destructor for the ITS version 8.
161 ////////////////////////////////////////////////////////////////////////
163 //__________________________________________________________________________
164 void AliITSvPPRasymmFMD::BuildGeometry(){
165 ////////////////////////////////////////////////////////////////////////
166 // Geometry builder for the ITS version 8.
167 ////////////////////////////////////////////////////////////////////////
170 const Int_t kColorITS=kYellow;
172 top = gAlice->GetGeometry()->GetNode("alice");
175 new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
177 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
178 node->SetLineColor(kColorITS);
181 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
183 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
184 node->SetLineColor(kColorITS);
187 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
189 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
190 node->SetLineColor(kColorITS);
193 new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
195 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
196 node->SetLineColor(kColorITS);
199 new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
201 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
202 node->SetLineColor(kColorITS);
205 new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
207 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
208 node->SetLineColor(kColorITS);
215 TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
217 // Define some variables for SPD
220 Float_t dits1[3], di101[3], di107[3], di10b[3]; // for layer 1
221 Float_t di103[3], di10a[3]; // for layer 1
222 Float_t dits2[3], di1d1[3], di1d7[3], di20b[3]; // for layer 2
223 Float_t di1d3[3], di20a[3]; // for layer 2
225 Float_t ddet1=200.; // total detector thickness on layer 1 (micron)
226 Float_t dchip1=200.; // total chip thickness on layer 1 (micron)
228 Float_t ddet2=200.; // total detector thickness on layer 2 (micron)
229 Float_t dchip2=200.; // total chip thickness on layer 2 (micron)
231 Float_t dbus=300.; // total bus thickness on both layers (micron)
233 ddet1 = GetThicknessDet1();
234 ddet2 = GetThicknessDet2();
235 dchip1 = GetThicknessChip1();
236 dchip2 = GetThicknessChip2();
238 cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl;
240 if(ddet1 < 100. || ddet1 > 300.) {
241 cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
242 " The default value of 200 microns will be used." << endl;
246 if(ddet2 < 100. || ddet2 > 300.) {
247 cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
248 " The default value of 200 microns will be used." << endl;
252 if(dchip1 < 100. || dchip1 > 300.) {
253 cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
254 " The default value of 200 microns will be used." << endl;
258 if(dchip2 < 100. || dchip2 > 300.) {
259 cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
260 " The default value of 200 microns will be used." << endl;
264 cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
265 cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
266 cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
267 cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
269 ddet1 = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
270 ddet2 = ddet2*0.0001/2.; // conversion from tot length in um to half in cm
271 dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm
272 dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm
273 dbus = dbus*0.0001/2.; // conversion from tot length in um to half in cm
275 Float_t deltax, deltay;
277 Int_t thickness = fMinorVersion/10;
278 Int_t option = fMinorVersion - 10*thickness;
281 // Define some variables for SDD
282 // SDD detector ladder
285 Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
286 Float_t Y_SDD_sep = 0.20;
287 Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
288 Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
296 new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
297 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
298 new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);
299 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );
300 new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
301 new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);
302 new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0);
303 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
304 new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);
305 new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
306 new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
307 new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
308 new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
309 new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
310 new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);
314 // SPD - option 'b' (this is the default)
318 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
319 new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
320 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
321 new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);
322 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
323 new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);
324 new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
325 new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);
326 new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);
327 new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
328 new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);
329 new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
330 new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
331 new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
332 new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
338 new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);
339 new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
340 new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);
341 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
342 new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);
343 new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
344 new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);
345 new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);
346 new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);
347 new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);
348 new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);
349 new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);
350 new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0);
351 new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);
352 new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0);
353 new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);
354 new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);
355 new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);
356 new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);
357 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
358 new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);
359 new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);
360 new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);
361 new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0);
362 new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);
363 new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);
364 new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);
365 new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);
366 new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);
367 new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);
368 new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);
369 new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);
370 new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);
371 new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);
372 new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0);
373 new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);
377 new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);
378 new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);
379 new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);
380 new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);
381 new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
382 new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
383 new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);
384 new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
385 new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
386 new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0);
387 new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0);
388 new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);
389 new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);
390 new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);
391 new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);
392 new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
393 new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
394 new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);
395 new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
396 new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
397 new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0);
398 new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);
399 new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);
400 new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);
401 new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);
402 new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
403 new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0);
404 new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0);
405 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
406 new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);
407 new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);
408 new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
409 new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);
410 new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
411 new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);
412 new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
413 new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
414 new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0);
415 new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);
416 new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);
417 new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);
418 new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);
419 new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
420 new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
421 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
422 new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);
423 new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);
424 new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);
425 new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);
426 new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
427 new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
428 new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);
429 new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
430 new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
431 new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0);
432 new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);
433 new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);
434 new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);
435 new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);
436 new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
437 new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
438 new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);
439 new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
440 new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
441 new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
442 new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);
443 new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);
444 new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);
445 new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);
446 new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
447 new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);
450 // --- Define SPD (option 'a') volumes ----------------------------
453 // (this is NOT the default)
460 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
465 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
470 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
475 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
478 di103[1] = ddet1+dchip1;
480 new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);
483 di1d3[1] = ddet2+dchip2;
485 new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);
488 di10a[1] = ddet1+dchip1+dbus+0.0025;
490 new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]);
493 di20a[1] = ddet2+dchip2+dbus+0.0025;
495 new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);
502 new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
507 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
511 // --- Define SPD (option 'b') volumes ----------------------------
514 // (this is the default)
521 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
526 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
531 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
536 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
539 di107[1] = ddet1+dchip1;
541 new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);
544 di1d7[1] = ddet2+dchip2;
546 new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);
549 di10b[1] = ddet1+dchip1+dbus+0.0025;
551 new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]);
554 di20b[1] = ddet2+dchip2+dbus+0.0025;
556 new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);
563 new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
568 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
573 // --- Define SDD volumes ------------------------------------------
575 TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6);
576 it34->DefineSection(0,-34.6,23.49,28.);
577 it34->DefineSection(1,-23.65,23.49,28.);
578 it34->DefineSection(2,-23.65,14.59,28.);
579 it34->DefineSection(3,23.65,14.59,28.);
580 it34->DefineSection(4,23.65,23.49,28.);
581 it34->DefineSection(5,34.6,23.49,28.);
583 I302dits[0] = 3.6250;
584 I302dits[1] = 0.0150;
585 I302dits[2] = 4.3794;
586 new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
588 I004dits[0] = I302dits[0]+0.005;
589 I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
590 I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
591 if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
592 I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
594 I004dits[2] = I004dits[2] + I302dits[2];
595 new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]);
600 new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);
602 I402dits[0] = 3.6250;
603 I402dits[1] = 0.0150;
604 I402dits[2] = 4.3794;
605 new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
607 I005dits[0] = I402dits[0]+0.005;
608 I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
609 I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
610 if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
611 I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
613 I005dits[2] = I005dits[2] + I402dits[2];
614 new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);
619 new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
622 // --- Define SSD volumes ------------------------------------------
625 TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6);
626 it56->DefineSection(0,-57.45,43.6,48.);
627 it56->DefineSection(1,-49.15,43.6,48.);
628 it56->DefineSection(2,-49.15,36.9,48.);
629 it56->DefineSection(3,50.55,36.9,48.);
630 it56->DefineSection(4,50.55,43.6,48.);
631 it56->DefineSection(5,57.45,43.6,48.);
636 new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);
641 new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);
646 new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);
651 new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);
656 new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]);
661 new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);
667 // --- Place SPD (option 'a') volumes into their mother volume
670 // (this is NOT the default)
678 // --- Place SPD (option 'b') volumes into their mother volume
681 // (this is the default)
685 // Place IT12 in Alice
687 node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
688 node->SetLineColor(kColorITS);
689 node->SetVisibility(0);
692 // Place copy #1 of I12B in IT12
694 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
695 sub1node->SetLineColor(kColorITS);
696 sub1node->SetVisibility(0);
699 // Place copy #1 of I10B in I12B
701 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
702 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
703 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
704 sub2node->SetLineColor(kColorITS);
705 sub2node->SetVisibility(0);
708 // Place copy #1 of I107 in I10B
710 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
711 sub3node->SetLineColor(kColorITS);
712 sub3node->SetVisibility(0);
715 // Place copy #1 of I101 in I107
717 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
718 sub4node->SetLineColor(kColorITS);
719 sub4node->SetVisibility(0);
722 // Place copy #1 of ITS1 in I101
724 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
725 sub5node->SetLineColor(kColorITS);
726 fNodes->Add(sub5node);
728 fNodes->Add(sub4node);
730 fNodes->Add(sub3node);
733 // Place copy #2 of I107 in I10B
735 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
736 sub3node->SetLineColor(kColorITS);
737 sub3node->SetVisibility(0);
740 // Place copy #1 of I101 in I107
742 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
743 sub4node->SetLineColor(kColorITS);
744 sub4node->SetVisibility(0);
747 // Place copy #1 of ITS1 in I101
749 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
750 sub5node->SetLineColor(kColorITS);
751 fNodes->Add(sub5node);
753 fNodes->Add(sub4node);
755 fNodes->Add(sub3node);
758 // Place copy #3 of I107 in I10B
760 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
761 sub3node->SetLineColor(kColorITS);
762 sub3node->SetVisibility(0);
765 // Place copy #1 of I101 in I107
767 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
768 sub4node->SetLineColor(kColorITS);
769 sub4node->SetVisibility(0);
772 // Place copy #1 of ITS1 in I101
774 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
775 sub5node->SetLineColor(kColorITS);
776 fNodes->Add(sub5node);
778 fNodes->Add(sub4node);
780 fNodes->Add(sub3node);
783 // Place copy #4 of I107 in I10B
785 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
786 sub3node->SetLineColor(kColorITS);
787 sub3node->SetVisibility(0);
790 // Place copy #1 of I101 in I107
792 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
793 sub4node->SetLineColor(kColorITS);
794 sub4node->SetVisibility(0);
797 // Place copy #1 of ITS1 in I101
799 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
800 sub5node->SetLineColor(kColorITS);
801 fNodes->Add(sub5node);
803 fNodes->Add(sub4node);
805 fNodes->Add(sub3node);
807 fNodes->Add(sub2node);
810 // Place copy #2 of I10B in I12B
812 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
813 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
814 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
815 sub2node->SetLineColor(kColorITS);
816 sub2node->SetVisibility(0);
819 // Place copy #1 of I107 in I10B
821 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
822 sub3node->SetLineColor(kColorITS);
823 sub3node->SetVisibility(0);
826 // Place copy #1 of I101 in I107
828 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
829 sub4node->SetLineColor(kColorITS);
830 sub4node->SetVisibility(0);
833 // Place copy #1 of ITS1 in I101
835 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
836 sub5node->SetLineColor(kColorITS);
837 fNodes->Add(sub5node);
839 fNodes->Add(sub4node);
841 fNodes->Add(sub3node);
844 // Place copy #2 of I107 in I10B
846 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
847 sub3node->SetLineColor(kColorITS);
848 sub3node->SetVisibility(0);
851 // Place copy #1 of I101 in I107
853 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
854 sub4node->SetLineColor(kColorITS);
855 sub4node->SetVisibility(0);
858 // Place copy #1 of ITS1 in I101
860 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
861 sub5node->SetLineColor(kColorITS);
862 fNodes->Add(sub5node);
864 fNodes->Add(sub4node);
866 fNodes->Add(sub3node);
869 // Place copy #3 of I107 in I10B
871 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
872 sub3node->SetLineColor(kColorITS);
873 sub3node->SetVisibility(0);
876 // Place copy #1 of I101 in I107
878 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
879 sub4node->SetLineColor(kColorITS);
880 sub4node->SetVisibility(0);
883 // Place copy #1 of ITS1 in I101
885 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
886 sub5node->SetLineColor(kColorITS);
887 fNodes->Add(sub5node);
889 fNodes->Add(sub4node);
891 fNodes->Add(sub3node);
894 // Place copy #4 of I107 in I10B
896 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
897 sub3node->SetLineColor(kColorITS);
898 sub3node->SetVisibility(0);
901 // Place copy #1 of I101 in I107
903 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
904 sub4node->SetLineColor(kColorITS);
905 sub4node->SetVisibility(0);
908 // Place copy #1 of ITS1 in I101
910 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
911 sub5node->SetLineColor(kColorITS);
912 fNodes->Add(sub5node);
914 fNodes->Add(sub4node);
916 fNodes->Add(sub3node);
918 fNodes->Add(sub2node);
921 // Place copy #1 of I20B in I12B
923 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
924 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
925 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
926 sub2node->SetLineColor(kColorITS);
927 sub2node->SetVisibility(0);
930 // Place copy #1 of I1D7 in I20B
932 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
933 sub3node->SetLineColor(kColorITS);
934 sub3node->SetVisibility(0);
937 // Place copy #1 of I1D1 in I1D7
939 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
940 sub4node->SetLineColor(kColorITS);
941 sub4node->SetVisibility(0);
944 // Place copy #1 of ITS2 in I1D1
946 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
947 sub5node->SetLineColor(kColorITS);
948 fNodes->Add(sub5node);
950 fNodes->Add(sub4node);
952 fNodes->Add(sub3node);
955 // Place copy #2 of I1D7 in I20B
957 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
958 sub3node->SetLineColor(kColorITS);
959 sub3node->SetVisibility(0);
962 // Place copy #1 of I1D1 in I1D7
964 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
965 sub4node->SetLineColor(kColorITS);
966 sub4node->SetVisibility(0);
969 // Place copy #1 of ITS2 in I1D1
971 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
972 sub5node->SetLineColor(kColorITS);
973 fNodes->Add(sub5node);
975 fNodes->Add(sub4node);
977 fNodes->Add(sub3node);
980 // Place copy #3 of I1D7 in I20B
982 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
983 sub3node->SetLineColor(kColorITS);
984 sub3node->SetVisibility(0);
987 // Place copy #1 of I1D1 in I1D7
989 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
990 sub4node->SetLineColor(kColorITS);
991 sub4node->SetVisibility(0);
994 // Place copy #1 of ITS2 in I1D1
996 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
997 sub5node->SetLineColor(kColorITS);
998 fNodes->Add(sub5node);
1000 fNodes->Add(sub4node);
1002 fNodes->Add(sub3node);
1005 // Place copy #4 of I1D7 in I20B
1007 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1008 sub3node->SetLineColor(kColorITS);
1009 sub3node->SetVisibility(0);
1012 // Place copy #1 of I1D1 in I1D7
1014 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1015 sub4node->SetLineColor(kColorITS);
1016 sub4node->SetVisibility(0);
1019 // Place copy #1 of ITS2 in I1D1
1021 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1022 sub5node->SetLineColor(kColorITS);
1023 fNodes->Add(sub5node);
1025 fNodes->Add(sub4node);
1027 fNodes->Add(sub3node);
1029 fNodes->Add(sub2node);
1032 // Place copy #2 of I20B in I12B
1034 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1035 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1036 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1037 sub2node->SetLineColor(kColorITS);
1038 sub2node->SetVisibility(0);
1041 // Place copy #1 of I1D7 in I20B
1043 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1044 sub3node->SetLineColor(kColorITS);
1045 sub3node->SetVisibility(0);
1048 // Place copy #1 of I1D1 in I1D7
1050 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1051 sub4node->SetLineColor(kColorITS);
1052 sub4node->SetVisibility(0);
1055 // Place copy #1 of ITS2 in I1D1
1057 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1058 sub5node->SetLineColor(kColorITS);
1059 fNodes->Add(sub5node);
1061 fNodes->Add(sub4node);
1063 fNodes->Add(sub3node);
1066 // Place copy #2 of I1D7 in I20B
1068 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1069 sub3node->SetLineColor(kColorITS);
1070 sub3node->SetVisibility(0);
1073 // Place copy #1 of I1D1 in I1D7
1075 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1076 sub4node->SetLineColor(kColorITS);
1077 sub4node->SetVisibility(0);
1080 // Place copy #1 of ITS2 in I1D1
1082 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1083 sub5node->SetLineColor(kColorITS);
1084 fNodes->Add(sub5node);
1086 fNodes->Add(sub4node);
1088 fNodes->Add(sub3node);
1091 // Place copy #3 of I1D7 in I20B
1093 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1094 sub3node->SetLineColor(kColorITS);
1095 sub3node->SetVisibility(0);
1098 // Place copy #1 of I1D1 in I1D7
1100 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1101 sub4node->SetLineColor(kColorITS);
1102 sub4node->SetVisibility(0);
1105 // Place copy #1 of ITS2 in I1D1
1107 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1108 sub5node->SetLineColor(kColorITS);
1109 fNodes->Add(sub5node);
1111 fNodes->Add(sub4node);
1113 fNodes->Add(sub3node);
1116 // Place copy #4 of I1D7 in I20B
1118 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1119 sub3node->SetLineColor(kColorITS);
1120 sub3node->SetVisibility(0);
1123 // Place copy #1 of I1D1 in I1D7
1125 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1126 sub4node->SetLineColor(kColorITS);
1127 sub4node->SetVisibility(0);
1130 // Place copy #1 of ITS2 in I1D1
1132 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1133 sub5node->SetLineColor(kColorITS);
1134 fNodes->Add(sub5node);
1136 fNodes->Add(sub4node);
1138 fNodes->Add(sub3node);
1140 fNodes->Add(sub2node);
1143 // Place copy #3 of I20B in I12B
1145 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1146 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1147 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1148 sub2node->SetLineColor(kColorITS);
1149 sub2node->SetVisibility(0);
1152 // Place copy #1 of I1D7 in I20B
1154 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1155 sub3node->SetLineColor(kColorITS);
1156 sub3node->SetVisibility(0);
1159 // Place copy #1 of I1D1 in I1D7
1161 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1162 sub4node->SetLineColor(kColorITS);
1163 sub4node->SetVisibility(0);
1166 // Place copy #1 of ITS2 in I1D1
1168 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1169 sub5node->SetLineColor(kColorITS);
1170 fNodes->Add(sub5node);
1172 fNodes->Add(sub4node);
1174 fNodes->Add(sub3node);
1177 // Place copy #2 of I1D7 in I20B
1179 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1180 sub3node->SetLineColor(kColorITS);
1181 sub3node->SetVisibility(0);
1184 // Place copy #1 of I1D1 in I1D7
1186 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1187 sub4node->SetLineColor(kColorITS);
1188 sub4node->SetVisibility(0);
1191 // Place copy #1 of ITS2 in I1D1
1193 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1194 sub5node->SetLineColor(kColorITS);
1195 fNodes->Add(sub5node);
1197 fNodes->Add(sub4node);
1199 fNodes->Add(sub3node);
1202 // Place copy #3 of I1D7 in I20B
1204 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1205 sub3node->SetLineColor(kColorITS);
1206 sub3node->SetVisibility(0);
1209 // Place copy #1 of I1D1 in I1D7
1211 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1212 sub4node->SetLineColor(kColorITS);
1213 sub4node->SetVisibility(0);
1216 // Place copy #1 of ITS2 in I1D1
1218 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1219 sub5node->SetLineColor(kColorITS);
1220 fNodes->Add(sub5node);
1222 fNodes->Add(sub4node);
1224 fNodes->Add(sub3node);
1227 // Place copy #4 of I1D7 in I20B
1229 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1230 sub3node->SetLineColor(kColorITS);
1231 sub3node->SetVisibility(0);
1234 // Place copy #1 of I1D1 in I1D7
1236 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1237 sub4node->SetLineColor(kColorITS);
1238 sub4node->SetVisibility(0);
1241 // Place copy #1 of ITS2 in I1D1
1243 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1244 sub5node->SetLineColor(kColorITS);
1245 fNodes->Add(sub5node);
1247 fNodes->Add(sub4node);
1249 fNodes->Add(sub3node);
1251 fNodes->Add(sub2node);
1254 // Place copy #4 of I20B in I12B
1256 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1257 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1258 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1259 sub2node->SetLineColor(kColorITS);
1260 sub2node->SetVisibility(0);
1263 // Place copy #1 of I1D7 in I20B
1265 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1266 sub3node->SetLineColor(kColorITS);
1267 sub3node->SetVisibility(0);
1270 // Place copy #1 of I1D1 in I1D7
1272 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1273 sub4node->SetLineColor(kColorITS);
1274 sub4node->SetVisibility(0);
1277 // Place copy #1 of ITS2 in I1D1
1279 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1280 sub5node->SetLineColor(kColorITS);
1281 fNodes->Add(sub5node);
1283 fNodes->Add(sub4node);
1285 fNodes->Add(sub3node);
1288 // Place copy #2 of I1D7 in I20B
1290 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1291 sub3node->SetLineColor(kColorITS);
1292 sub3node->SetVisibility(0);
1295 // Place copy #1 of I1D1 in I1D7
1297 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1298 sub4node->SetLineColor(kColorITS);
1299 sub4node->SetVisibility(0);
1302 // Place copy #1 of ITS2 in I1D1
1304 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1305 sub5node->SetLineColor(kColorITS);
1306 fNodes->Add(sub5node);
1308 fNodes->Add(sub4node);
1310 fNodes->Add(sub3node);
1313 // Place copy #3 of I1D7 in I20B
1315 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1316 sub3node->SetLineColor(kColorITS);
1317 sub3node->SetVisibility(0);
1320 // Place copy #1 of I1D1 in I1D7
1322 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1323 sub4node->SetLineColor(kColorITS);
1324 sub4node->SetVisibility(0);
1327 // Place copy #1 of ITS2 in I1D1
1329 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1330 sub5node->SetLineColor(kColorITS);
1331 fNodes->Add(sub5node);
1333 fNodes->Add(sub4node);
1335 fNodes->Add(sub3node);
1338 // Place copy #4 of I1D7 in I20B
1340 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1341 sub3node->SetLineColor(kColorITS);
1342 sub3node->SetVisibility(0);
1345 // Place copy #1 of I1D1 in I1D7
1347 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1348 sub4node->SetLineColor(kColorITS);
1349 sub4node->SetVisibility(0);
1352 // Place copy #1 of ITS2 in I1D1
1354 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1355 sub5node->SetLineColor(kColorITS);
1356 fNodes->Add(sub5node);
1358 fNodes->Add(sub4node);
1360 fNodes->Add(sub3node);
1362 fNodes->Add(sub2node);
1364 fNodes->Add(sub1node);
1367 // Place copy #2 of I12B in IT12
1369 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
1370 sub1node->SetLineColor(kColorITS);
1371 sub1node->SetVisibility(0);
1374 // Place copy #1 of I10B in I12B
1376 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
1377 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
1378 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
1379 sub2node->SetLineColor(kColorITS);
1380 sub2node->SetVisibility(0);
1383 // Place copy #1 of I107 in I10B
1385 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1386 sub3node->SetLineColor(kColorITS);
1387 sub3node->SetVisibility(0);
1390 // Place copy #1 of I101 in I107
1392 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1393 sub4node->SetLineColor(kColorITS);
1394 sub4node->SetVisibility(0);
1397 // Place copy #1 of ITS1 in I101
1399 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1400 sub5node->SetLineColor(kColorITS);
1401 fNodes->Add(sub5node);
1403 fNodes->Add(sub4node);
1405 fNodes->Add(sub3node);
1408 // Place copy #2 of I107 in I10B
1410 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1411 sub3node->SetLineColor(kColorITS);
1412 sub3node->SetVisibility(0);
1415 // Place copy #1 of I101 in I107
1417 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1418 sub4node->SetLineColor(kColorITS);
1419 sub4node->SetVisibility(0);
1422 // Place copy #1 of ITS1 in I101
1424 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1425 sub5node->SetLineColor(kColorITS);
1426 fNodes->Add(sub5node);
1428 fNodes->Add(sub4node);
1430 fNodes->Add(sub3node);
1433 // Place copy #3 of I107 in I10B
1435 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1436 sub3node->SetLineColor(kColorITS);
1437 sub3node->SetVisibility(0);
1440 // Place copy #1 of I101 in I107
1442 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1443 sub4node->SetLineColor(kColorITS);
1444 sub4node->SetVisibility(0);
1447 // Place copy #1 of ITS1 in I101
1449 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1450 sub5node->SetLineColor(kColorITS);
1451 fNodes->Add(sub5node);
1453 fNodes->Add(sub4node);
1455 fNodes->Add(sub3node);
1458 // Place copy #4 of I107 in I10B
1460 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1461 sub3node->SetLineColor(kColorITS);
1462 sub3node->SetVisibility(0);
1465 // Place copy #1 of I101 in I107
1467 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1468 sub4node->SetLineColor(kColorITS);
1469 sub4node->SetVisibility(0);
1472 // Place copy #1 of ITS1 in I101
1474 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1475 sub5node->SetLineColor(kColorITS);
1476 fNodes->Add(sub5node);
1478 fNodes->Add(sub4node);
1480 fNodes->Add(sub3node);
1482 fNodes->Add(sub2node);
1485 // Place copy #2 of I10B in I12B
1487 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
1488 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
1489 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
1490 sub2node->SetLineColor(kColorITS);
1491 sub2node->SetVisibility(0);
1494 // Place copy #1 of I107 in I10B
1496 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1497 sub3node->SetLineColor(kColorITS);
1498 sub3node->SetVisibility(0);
1501 // Place copy #1 of I101 in I107
1503 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1504 sub4node->SetLineColor(kColorITS);
1505 sub4node->SetVisibility(0);
1508 // Place copy #1 of ITS1 in I101
1510 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1511 sub5node->SetLineColor(kColorITS);
1512 fNodes->Add(sub5node);
1514 fNodes->Add(sub4node);
1516 fNodes->Add(sub3node);
1519 // Place copy #2 of I107 in I10B
1521 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1522 sub3node->SetLineColor(kColorITS);
1523 sub3node->SetVisibility(0);
1526 // Place copy #1 of I101 in I107
1528 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1529 sub4node->SetLineColor(kColorITS);
1530 sub4node->SetVisibility(0);
1533 // Place copy #1 of ITS1 in I101
1535 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1536 sub5node->SetLineColor(kColorITS);
1537 fNodes->Add(sub5node);
1539 fNodes->Add(sub4node);
1541 fNodes->Add(sub3node);
1544 // Place copy #3 of I107 in I10B
1546 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1547 sub3node->SetLineColor(kColorITS);
1548 sub3node->SetVisibility(0);
1551 // Place copy #1 of I101 in I107
1553 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1554 sub4node->SetLineColor(kColorITS);
1555 sub4node->SetVisibility(0);
1558 // Place copy #1 of ITS1 in I101
1560 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1561 sub5node->SetLineColor(kColorITS);
1562 fNodes->Add(sub5node);
1564 fNodes->Add(sub4node);
1566 fNodes->Add(sub3node);
1569 // Place copy #4 of I107 in I10B
1571 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1572 sub3node->SetLineColor(kColorITS);
1573 sub3node->SetVisibility(0);
1576 // Place copy #1 of I101 in I107
1578 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1579 sub4node->SetLineColor(kColorITS);
1580 sub4node->SetVisibility(0);
1583 // Place copy #1 of ITS1 in I101
1585 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1586 sub5node->SetLineColor(kColorITS);
1587 fNodes->Add(sub5node);
1589 fNodes->Add(sub4node);
1591 fNodes->Add(sub3node);
1593 fNodes->Add(sub2node);
1596 // Place copy #1 of I20B in I12B
1598 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
1599 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1600 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1601 sub2node->SetLineColor(kColorITS);
1602 sub2node->SetVisibility(0);
1605 // Place copy #1 of I1D7 in I20B
1607 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1608 sub3node->SetLineColor(kColorITS);
1609 sub3node->SetVisibility(0);
1612 // Place copy #1 of I1D1 in I1D7
1614 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1615 sub4node->SetLineColor(kColorITS);
1616 sub4node->SetVisibility(0);
1619 // Place copy #1 of ITS2 in I1D1
1621 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1622 sub5node->SetLineColor(kColorITS);
1623 fNodes->Add(sub5node);
1625 fNodes->Add(sub4node);
1627 fNodes->Add(sub3node);
1630 // Place copy #2 of I1D7 in I20B
1632 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1633 sub3node->SetLineColor(kColorITS);
1634 sub3node->SetVisibility(0);
1637 // Place copy #1 of I1D1 in I1D7
1639 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1640 sub4node->SetLineColor(kColorITS);
1641 sub4node->SetVisibility(0);
1644 // Place copy #1 of ITS2 in I1D1
1646 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1647 sub5node->SetLineColor(kColorITS);
1648 fNodes->Add(sub5node);
1650 fNodes->Add(sub4node);
1652 fNodes->Add(sub3node);
1655 // Place copy #3 of I1D7 in I20B
1657 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1658 sub3node->SetLineColor(kColorITS);
1659 sub3node->SetVisibility(0);
1662 // Place copy #1 of I1D1 in I1D7
1664 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1665 sub4node->SetLineColor(kColorITS);
1666 sub4node->SetVisibility(0);
1669 // Place copy #1 of ITS2 in I1D1
1671 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1672 sub5node->SetLineColor(kColorITS);
1673 fNodes->Add(sub5node);
1675 fNodes->Add(sub4node);
1677 fNodes->Add(sub3node);
1680 // Place copy #4 of I1D7 in I20B
1682 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1683 sub3node->SetLineColor(kColorITS);
1684 sub3node->SetVisibility(0);
1687 // Place copy #1 of I1D1 in I1D7
1689 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1690 sub4node->SetLineColor(kColorITS);
1691 sub4node->SetVisibility(0);
1694 // Place copy #1 of ITS2 in I1D1
1696 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1697 sub5node->SetLineColor(kColorITS);
1698 fNodes->Add(sub5node);
1700 fNodes->Add(sub4node);
1702 fNodes->Add(sub3node);
1704 fNodes->Add(sub2node);
1707 // Place copy #2 of I20B in I12B
1709 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1710 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1711 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1712 sub2node->SetLineColor(kColorITS);
1713 sub2node->SetVisibility(0);
1716 // Place copy #1 of I1D7 in I20B
1718 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1719 sub3node->SetLineColor(kColorITS);
1720 sub3node->SetVisibility(0);
1723 // Place copy #1 of I1D1 in I1D7
1725 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1726 sub4node->SetLineColor(kColorITS);
1727 sub4node->SetVisibility(0);
1730 // Place copy #1 of ITS2 in I1D1
1732 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1733 sub5node->SetLineColor(kColorITS);
1734 fNodes->Add(sub5node);
1736 fNodes->Add(sub4node);
1738 fNodes->Add(sub3node);
1741 // Place copy #2 of I1D7 in I20B
1743 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1744 sub3node->SetLineColor(kColorITS);
1745 sub3node->SetVisibility(0);
1748 // Place copy #1 of I1D1 in I1D7
1750 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1751 sub4node->SetLineColor(kColorITS);
1752 sub4node->SetVisibility(0);
1755 // Place copy #1 of ITS2 in I1D1
1757 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1758 sub5node->SetLineColor(kColorITS);
1759 fNodes->Add(sub5node);
1761 fNodes->Add(sub4node);
1763 fNodes->Add(sub3node);
1766 // Place copy #3 of I1D7 in I20B
1768 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1769 sub3node->SetLineColor(kColorITS);
1770 sub3node->SetVisibility(0);
1773 // Place copy #1 of I1D1 in I1D7
1775 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1776 sub4node->SetLineColor(kColorITS);
1777 sub4node->SetVisibility(0);
1780 // Place copy #1 of ITS2 in I1D1
1782 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1783 sub5node->SetLineColor(kColorITS);
1784 fNodes->Add(sub5node);
1786 fNodes->Add(sub4node);
1788 fNodes->Add(sub3node);
1791 // Place copy #4 of I1D7 in I20B
1793 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1794 sub3node->SetLineColor(kColorITS);
1795 sub3node->SetVisibility(0);
1798 // Place copy #1 of I1D1 in I1D7
1800 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1801 sub4node->SetLineColor(kColorITS);
1802 sub4node->SetVisibility(0);
1805 // Place copy #1 of ITS2 in I1D1
1807 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1808 sub5node->SetLineColor(kColorITS);
1809 fNodes->Add(sub5node);
1811 fNodes->Add(sub4node);
1813 fNodes->Add(sub3node);
1815 fNodes->Add(sub2node);
1818 // Place copy #3 of I20B in I12B
1820 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1821 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1822 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1823 sub2node->SetLineColor(kColorITS);
1824 sub2node->SetVisibility(0);
1827 // Place copy #1 of I1D7 in I20B
1829 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1830 sub3node->SetLineColor(kColorITS);
1831 sub3node->SetVisibility(0);
1834 // Place copy #1 of I1D1 in I1D7
1836 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1837 sub4node->SetLineColor(kColorITS);
1838 sub4node->SetVisibility(0);
1841 // Place copy #1 of ITS2 in I1D1
1843 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1844 sub5node->SetLineColor(kColorITS);
1845 fNodes->Add(sub5node);
1847 fNodes->Add(sub4node);
1849 fNodes->Add(sub3node);
1852 // Place copy #2 of I1D7 in I20B
1854 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1855 sub3node->SetLineColor(kColorITS);
1856 sub3node->SetVisibility(0);
1859 // Place copy #1 of I1D1 in I1D7
1861 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1862 sub4node->SetLineColor(kColorITS);
1863 sub4node->SetVisibility(0);
1866 // Place copy #1 of ITS2 in I1D1
1868 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1869 sub5node->SetLineColor(kColorITS);
1870 fNodes->Add(sub5node);
1872 fNodes->Add(sub4node);
1874 fNodes->Add(sub3node);
1877 // Place copy #3 of I1D7 in I20B
1879 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1880 sub3node->SetLineColor(kColorITS);
1881 sub3node->SetVisibility(0);
1884 // Place copy #1 of I1D1 in I1D7
1886 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1887 sub4node->SetLineColor(kColorITS);
1888 sub4node->SetVisibility(0);
1891 // Place copy #1 of ITS2 in I1D1
1893 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1894 sub5node->SetLineColor(kColorITS);
1895 fNodes->Add(sub5node);
1897 fNodes->Add(sub4node);
1899 fNodes->Add(sub3node);
1902 // Place copy #4 of I1D7 in I20B
1904 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1905 sub3node->SetLineColor(kColorITS);
1906 sub3node->SetVisibility(0);
1909 // Place copy #1 of I1D1 in I1D7
1911 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1912 sub4node->SetLineColor(kColorITS);
1913 sub4node->SetVisibility(0);
1916 // Place copy #1 of ITS2 in I1D1
1918 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1919 sub5node->SetLineColor(kColorITS);
1920 fNodes->Add(sub5node);
1922 fNodes->Add(sub4node);
1924 fNodes->Add(sub3node);
1926 fNodes->Add(sub2node);
1929 // Place copy #4 of I20B in I12B
1931 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1932 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1933 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1934 sub2node->SetLineColor(kColorITS);
1935 sub2node->SetVisibility(0);
1938 // Place copy #1 of I1D7 in I20B
1940 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1941 sub3node->SetLineColor(kColorITS);
1942 sub3node->SetVisibility(0);
1945 // Place copy #1 of I1D1 in I1D7
1947 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1948 sub4node->SetLineColor(kColorITS);
1949 sub4node->SetVisibility(0);
1952 // Place copy #1 of ITS2 in I1D1
1954 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1955 sub5node->SetLineColor(kColorITS);
1956 fNodes->Add(sub5node);
1958 fNodes->Add(sub4node);
1960 fNodes->Add(sub3node);
1963 // Place copy #2 of I1D7 in I20B
1965 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1966 sub3node->SetLineColor(kColorITS);
1967 sub3node->SetVisibility(0);
1970 // Place copy #1 of I1D1 in I1D7
1972 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1973 sub4node->SetLineColor(kColorITS);
1974 sub4node->SetVisibility(0);
1977 // Place copy #1 of ITS2 in I1D1
1979 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1980 sub5node->SetLineColor(kColorITS);
1981 fNodes->Add(sub5node);
1983 fNodes->Add(sub4node);
1985 fNodes->Add(sub3node);
1988 // Place copy #3 of I1D7 in I20B
1990 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1991 sub3node->SetLineColor(kColorITS);
1992 sub3node->SetVisibility(0);
1995 // Place copy #1 of I1D1 in I1D7
1997 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1998 sub4node->SetLineColor(kColorITS);
1999 sub4node->SetVisibility(0);
2002 // Place copy #1 of ITS2 in I1D1
2004 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2005 sub5node->SetLineColor(kColorITS);
2006 fNodes->Add(sub5node);
2008 fNodes->Add(sub4node);
2010 fNodes->Add(sub3node);
2013 // Place copy #4 of I1D7 in I20B
2015 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2016 sub3node->SetLineColor(kColorITS);
2017 sub3node->SetVisibility(0);
2020 // Place copy #1 of I1D1 in I1D7
2022 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2023 sub4node->SetLineColor(kColorITS);
2024 sub4node->SetVisibility(0);
2027 // Place copy #1 of ITS2 in I1D1
2029 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2030 sub5node->SetLineColor(kColorITS);
2031 fNodes->Add(sub5node);
2033 fNodes->Add(sub4node);
2035 fNodes->Add(sub3node);
2037 fNodes->Add(sub2node);
2039 fNodes->Add(sub1node);
2042 // Place copy #3 of I12B in IT12
2044 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
2045 sub1node->SetLineColor(kColorITS);
2046 sub1node->SetVisibility(0);
2049 // Place copy #1 of I10B in I12B
2051 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2052 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2053 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2054 sub2node->SetLineColor(kColorITS);
2055 sub2node->SetVisibility(0);
2058 // Place copy #1 of I107 in I10B
2060 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2061 sub3node->SetLineColor(kColorITS);
2062 sub3node->SetVisibility(0);
2065 // Place copy #1 of I101 in I107
2067 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2068 sub4node->SetLineColor(kColorITS);
2069 sub4node->SetVisibility(0);
2072 // Place copy #1 of ITS1 in I101
2074 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2075 sub5node->SetLineColor(kColorITS);
2076 fNodes->Add(sub5node);
2078 fNodes->Add(sub4node);
2080 fNodes->Add(sub3node);
2083 // Place copy #2 of I107 in I10B
2085 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2086 sub3node->SetLineColor(kColorITS);
2087 sub3node->SetVisibility(0);
2090 // Place copy #1 of I101 in I107
2092 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2093 sub4node->SetLineColor(kColorITS);
2094 sub4node->SetVisibility(0);
2097 // Place copy #1 of ITS1 in I101
2099 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2100 sub5node->SetLineColor(kColorITS);
2101 fNodes->Add(sub5node);
2103 fNodes->Add(sub4node);
2105 fNodes->Add(sub3node);
2108 // Place copy #3 of I107 in I10B
2110 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2111 sub3node->SetLineColor(kColorITS);
2112 sub3node->SetVisibility(0);
2115 // Place copy #1 of I101 in I107
2117 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2118 sub4node->SetLineColor(kColorITS);
2119 sub4node->SetVisibility(0);
2122 // Place copy #1 of ITS1 in I101
2124 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2125 sub5node->SetLineColor(kColorITS);
2126 fNodes->Add(sub5node);
2128 fNodes->Add(sub4node);
2130 fNodes->Add(sub3node);
2133 // Place copy #4 of I107 in I10B
2135 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2136 sub3node->SetLineColor(kColorITS);
2137 sub3node->SetVisibility(0);
2140 // Place copy #1 of I101 in I107
2142 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2143 sub4node->SetLineColor(kColorITS);
2144 sub4node->SetVisibility(0);
2147 // Place copy #1 of ITS1 in I101
2149 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2150 sub5node->SetLineColor(kColorITS);
2151 fNodes->Add(sub5node);
2153 fNodes->Add(sub4node);
2155 fNodes->Add(sub3node);
2157 fNodes->Add(sub2node);
2160 // Place copy #2 of I10B in I12B
2162 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2163 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2164 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2165 sub2node->SetLineColor(kColorITS);
2166 sub2node->SetVisibility(0);
2169 // Place copy #1 of I107 in I10B
2171 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2172 sub3node->SetLineColor(kColorITS);
2173 sub3node->SetVisibility(0);
2176 // Place copy #1 of I101 in I107
2178 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2179 sub4node->SetLineColor(kColorITS);
2180 sub4node->SetVisibility(0);
2183 // Place copy #1 of ITS1 in I101
2185 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2186 sub5node->SetLineColor(kColorITS);
2187 fNodes->Add(sub5node);
2189 fNodes->Add(sub4node);
2191 fNodes->Add(sub3node);
2194 // Place copy #2 of I107 in I10B
2196 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2197 sub3node->SetLineColor(kColorITS);
2198 sub3node->SetVisibility(0);
2201 // Place copy #1 of I101 in I107
2203 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2204 sub4node->SetLineColor(kColorITS);
2205 sub4node->SetVisibility(0);
2208 // Place copy #1 of ITS1 in I101
2210 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2211 sub5node->SetLineColor(kColorITS);
2212 fNodes->Add(sub5node);
2214 fNodes->Add(sub4node);
2216 fNodes->Add(sub3node);
2219 // Place copy #3 of I107 in I10B
2221 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2222 sub3node->SetLineColor(kColorITS);
2223 sub3node->SetVisibility(0);
2226 // Place copy #1 of I101 in I107
2228 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2229 sub4node->SetLineColor(kColorITS);
2230 sub4node->SetVisibility(0);
2233 // Place copy #1 of ITS1 in I101
2235 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2236 sub5node->SetLineColor(kColorITS);
2237 fNodes->Add(sub5node);
2239 fNodes->Add(sub4node);
2241 fNodes->Add(sub3node);
2244 // Place copy #4 of I107 in I10B
2246 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2247 sub3node->SetLineColor(kColorITS);
2248 sub3node->SetVisibility(0);
2251 // Place copy #1 of I101 in I107
2253 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2254 sub4node->SetLineColor(kColorITS);
2255 sub4node->SetVisibility(0);
2258 // Place copy #1 of ITS1 in I101
2260 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2261 sub5node->SetLineColor(kColorITS);
2262 fNodes->Add(sub5node);
2264 fNodes->Add(sub4node);
2266 fNodes->Add(sub3node);
2268 fNodes->Add(sub2node);
2271 // Place copy #1 of I20B in I12B
2273 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2274 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2275 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2276 sub2node->SetLineColor(kColorITS);
2277 sub2node->SetVisibility(0);
2280 // Place copy #1 of I1D7 in I20B
2282 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2283 sub3node->SetLineColor(kColorITS);
2284 sub3node->SetVisibility(0);
2287 // Place copy #1 of I1D1 in I1D7
2289 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2290 sub4node->SetLineColor(kColorITS);
2291 sub4node->SetVisibility(0);
2294 // Place copy #1 of ITS2 in I1D1
2296 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2297 sub5node->SetLineColor(kColorITS);
2298 fNodes->Add(sub5node);
2300 fNodes->Add(sub4node);
2302 fNodes->Add(sub3node);
2305 // Place copy #2 of I1D7 in I20B
2307 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2308 sub3node->SetLineColor(kColorITS);
2309 sub3node->SetVisibility(0);
2312 // Place copy #1 of I1D1 in I1D7
2314 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2315 sub4node->SetLineColor(kColorITS);
2316 sub4node->SetVisibility(0);
2319 // Place copy #1 of ITS2 in I1D1
2321 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2322 sub5node->SetLineColor(kColorITS);
2323 fNodes->Add(sub5node);
2325 fNodes->Add(sub4node);
2327 fNodes->Add(sub3node);
2330 // Place copy #3 of I1D7 in I20B
2332 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2333 sub3node->SetLineColor(kColorITS);
2334 sub3node->SetVisibility(0);
2337 // Place copy #1 of I1D1 in I1D7
2339 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2340 sub4node->SetLineColor(kColorITS);
2341 sub4node->SetVisibility(0);
2344 // Place copy #1 of ITS2 in I1D1
2346 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2347 sub5node->SetLineColor(kColorITS);
2348 fNodes->Add(sub5node);
2350 fNodes->Add(sub4node);
2352 fNodes->Add(sub3node);
2355 // Place copy #4 of I1D7 in I20B
2357 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2358 sub3node->SetLineColor(kColorITS);
2359 sub3node->SetVisibility(0);
2362 // Place copy #1 of I1D1 in I1D7
2364 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2365 sub4node->SetLineColor(kColorITS);
2366 sub4node->SetVisibility(0);
2369 // Place copy #1 of ITS2 in I1D1
2371 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2372 sub5node->SetLineColor(kColorITS);
2373 fNodes->Add(sub5node);
2375 fNodes->Add(sub4node);
2377 fNodes->Add(sub3node);
2379 fNodes->Add(sub2node);
2382 // Place copy #2 of I20B in I12B
2384 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
2385 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
2386 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
2387 sub2node->SetLineColor(kColorITS);
2388 sub2node->SetVisibility(0);
2391 // Place copy #1 of I1D7 in I20B
2393 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2394 sub3node->SetLineColor(kColorITS);
2395 sub3node->SetVisibility(0);
2398 // Place copy #1 of I1D1 in I1D7
2400 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2401 sub4node->SetLineColor(kColorITS);
2402 sub4node->SetVisibility(0);
2405 // Place copy #1 of ITS2 in I1D1
2407 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2408 sub5node->SetLineColor(kColorITS);
2409 fNodes->Add(sub5node);
2411 fNodes->Add(sub4node);
2413 fNodes->Add(sub3node);
2416 // Place copy #2 of I1D7 in I20B
2418 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2419 sub3node->SetLineColor(kColorITS);
2420 sub3node->SetVisibility(0);
2423 // Place copy #1 of I1D1 in I1D7
2425 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2426 sub4node->SetLineColor(kColorITS);
2427 sub4node->SetVisibility(0);
2430 // Place copy #1 of ITS2 in I1D1
2432 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2433 sub5node->SetLineColor(kColorITS);
2434 fNodes->Add(sub5node);
2436 fNodes->Add(sub4node);
2438 fNodes->Add(sub3node);
2441 // Place copy #3 of I1D7 in I20B
2443 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2444 sub3node->SetLineColor(kColorITS);
2445 sub3node->SetVisibility(0);
2448 // Place copy #1 of I1D1 in I1D7
2450 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2451 sub4node->SetLineColor(kColorITS);
2452 sub4node->SetVisibility(0);
2455 // Place copy #1 of ITS2 in I1D1
2457 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2458 sub5node->SetLineColor(kColorITS);
2459 fNodes->Add(sub5node);
2461 fNodes->Add(sub4node);
2463 fNodes->Add(sub3node);
2466 // Place copy #4 of I1D7 in I20B
2468 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2469 sub3node->SetLineColor(kColorITS);
2470 sub3node->SetVisibility(0);
2473 // Place copy #1 of I1D1 in I1D7
2475 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2476 sub4node->SetLineColor(kColorITS);
2477 sub4node->SetVisibility(0);
2480 // Place copy #1 of ITS2 in I1D1
2482 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2483 sub5node->SetLineColor(kColorITS);
2484 fNodes->Add(sub5node);
2486 fNodes->Add(sub4node);
2488 fNodes->Add(sub3node);
2490 fNodes->Add(sub2node);
2493 // Place copy #3 of I20B in I12B
2495 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
2496 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
2497 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
2498 sub2node->SetLineColor(kColorITS);
2499 sub2node->SetVisibility(0);
2502 // Place copy #1 of I1D7 in I20B
2504 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2505 sub3node->SetLineColor(kColorITS);
2506 sub3node->SetVisibility(0);
2509 // Place copy #1 of I1D1 in I1D7
2511 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2512 sub4node->SetLineColor(kColorITS);
2513 sub4node->SetVisibility(0);
2516 // Place copy #1 of ITS2 in I1D1
2518 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2519 sub5node->SetLineColor(kColorITS);
2520 fNodes->Add(sub5node);
2522 fNodes->Add(sub4node);
2524 fNodes->Add(sub3node);
2527 // Place copy #2 of I1D7 in I20B
2529 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2530 sub3node->SetLineColor(kColorITS);
2531 sub3node->SetVisibility(0);
2534 // Place copy #1 of I1D1 in I1D7
2536 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2537 sub4node->SetLineColor(kColorITS);
2538 sub4node->SetVisibility(0);
2541 // Place copy #1 of ITS2 in I1D1
2543 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2544 sub5node->SetLineColor(kColorITS);
2545 fNodes->Add(sub5node);
2547 fNodes->Add(sub4node);
2549 fNodes->Add(sub3node);
2552 // Place copy #3 of I1D7 in I20B
2554 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2555 sub3node->SetLineColor(kColorITS);
2556 sub3node->SetVisibility(0);
2559 // Place copy #1 of I1D1 in I1D7
2561 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2562 sub4node->SetLineColor(kColorITS);
2563 sub4node->SetVisibility(0);
2566 // Place copy #1 of ITS2 in I1D1
2568 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2569 sub5node->SetLineColor(kColorITS);
2570 fNodes->Add(sub5node);
2572 fNodes->Add(sub4node);
2574 fNodes->Add(sub3node);
2577 // Place copy #4 of I1D7 in I20B
2579 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2580 sub3node->SetLineColor(kColorITS);
2581 sub3node->SetVisibility(0);
2584 // Place copy #1 of I1D1 in I1D7
2586 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2587 sub4node->SetLineColor(kColorITS);
2588 sub4node->SetVisibility(0);
2591 // Place copy #1 of ITS2 in I1D1
2593 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2594 sub5node->SetLineColor(kColorITS);
2595 fNodes->Add(sub5node);
2597 fNodes->Add(sub4node);
2599 fNodes->Add(sub3node);
2601 fNodes->Add(sub2node);
2604 // Place copy #4 of I20B in I12B
2606 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
2607 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2608 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2609 sub2node->SetLineColor(kColorITS);
2610 sub2node->SetVisibility(0);
2613 // Place copy #1 of I1D7 in I20B
2615 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2616 sub3node->SetLineColor(kColorITS);
2617 sub3node->SetVisibility(0);
2620 // Place copy #1 of I1D1 in I1D7
2622 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2623 sub4node->SetLineColor(kColorITS);
2624 sub4node->SetVisibility(0);
2627 // Place copy #1 of ITS2 in I1D1
2629 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2630 sub5node->SetLineColor(kColorITS);
2631 fNodes->Add(sub5node);
2633 fNodes->Add(sub4node);
2635 fNodes->Add(sub3node);
2638 // Place copy #2 of I1D7 in I20B
2640 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2641 sub3node->SetLineColor(kColorITS);
2642 sub3node->SetVisibility(0);
2645 // Place copy #1 of I1D1 in I1D7
2647 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2648 sub4node->SetLineColor(kColorITS);
2649 sub4node->SetVisibility(0);
2652 // Place copy #1 of ITS2 in I1D1
2654 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2655 sub5node->SetLineColor(kColorITS);
2656 fNodes->Add(sub5node);
2658 fNodes->Add(sub4node);
2660 fNodes->Add(sub3node);
2663 // Place copy #3 of I1D7 in I20B
2665 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2666 sub3node->SetLineColor(kColorITS);
2667 sub3node->SetVisibility(0);
2670 // Place copy #1 of I1D1 in I1D7
2672 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2673 sub4node->SetLineColor(kColorITS);
2674 sub4node->SetVisibility(0);
2677 // Place copy #1 of ITS2 in I1D1
2679 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2680 sub5node->SetLineColor(kColorITS);
2681 fNodes->Add(sub5node);
2683 fNodes->Add(sub4node);
2685 fNodes->Add(sub3node);
2688 // Place copy #4 of I1D7 in I20B
2690 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2691 sub3node->SetLineColor(kColorITS);
2692 sub3node->SetVisibility(0);
2695 // Place copy #1 of I1D1 in I1D7
2697 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2698 sub4node->SetLineColor(kColorITS);
2699 sub4node->SetVisibility(0);
2702 // Place copy #1 of ITS2 in I1D1
2704 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2705 sub5node->SetLineColor(kColorITS);
2706 fNodes->Add(sub5node);
2708 fNodes->Add(sub4node);
2710 fNodes->Add(sub3node);
2712 fNodes->Add(sub2node);
2714 fNodes->Add(sub1node);
2717 // Place copy #4 of I12B in IT12
2719 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
2720 sub1node->SetLineColor(kColorITS);
2721 sub1node->SetVisibility(0);
2724 // Place copy #1 of I10B in I12B
2726 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2727 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2728 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2729 sub2node->SetLineColor(kColorITS);
2730 sub2node->SetVisibility(0);
2733 // Place copy #1 of I107 in I10B
2735 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2736 sub3node->SetLineColor(kColorITS);
2737 sub3node->SetVisibility(0);
2740 // Place copy #1 of I101 in I107
2742 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2743 sub4node->SetLineColor(kColorITS);
2744 sub4node->SetVisibility(0);
2747 // Place copy #1 of ITS1 in I101
2749 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2750 sub5node->SetLineColor(kColorITS);
2751 fNodes->Add(sub5node);
2753 fNodes->Add(sub4node);
2755 fNodes->Add(sub3node);
2758 // Place copy #2 of I107 in I10B
2760 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2761 sub3node->SetLineColor(kColorITS);
2762 sub3node->SetVisibility(0);
2765 // Place copy #1 of I101 in I107
2767 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2768 sub4node->SetLineColor(kColorITS);
2769 sub4node->SetVisibility(0);
2772 // Place copy #1 of ITS1 in I101
2774 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2775 sub5node->SetLineColor(kColorITS);
2776 fNodes->Add(sub5node);
2778 fNodes->Add(sub4node);
2780 fNodes->Add(sub3node);
2783 // Place copy #3 of I107 in I10B
2785 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2786 sub3node->SetLineColor(kColorITS);
2787 sub3node->SetVisibility(0);
2790 // Place copy #1 of I101 in I107
2792 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2793 sub4node->SetLineColor(kColorITS);
2794 sub4node->SetVisibility(0);
2797 // Place copy #1 of ITS1 in I101
2799 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2800 sub5node->SetLineColor(kColorITS);
2801 fNodes->Add(sub5node);
2803 fNodes->Add(sub4node);
2805 fNodes->Add(sub3node);
2808 // Place copy #4 of I107 in I10B
2810 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2811 sub3node->SetLineColor(kColorITS);
2812 sub3node->SetVisibility(0);
2815 // Place copy #1 of I101 in I107
2817 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2818 sub4node->SetLineColor(kColorITS);
2819 sub4node->SetVisibility(0);
2822 // Place copy #1 of ITS1 in I101
2824 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2825 sub5node->SetLineColor(kColorITS);
2826 fNodes->Add(sub5node);
2828 fNodes->Add(sub4node);
2830 fNodes->Add(sub3node);
2832 fNodes->Add(sub2node);
2835 // Place copy #2 of I10B in I12B
2837 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2838 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2839 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2840 sub2node->SetLineColor(kColorITS);
2841 sub2node->SetVisibility(0);
2844 // Place copy #1 of I107 in I10B
2846 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2847 sub3node->SetLineColor(kColorITS);
2848 sub3node->SetVisibility(0);
2851 // Place copy #1 of I101 in I107
2853 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2854 sub4node->SetLineColor(kColorITS);
2855 sub4node->SetVisibility(0);
2858 // Place copy #1 of ITS1 in I101
2860 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2861 sub5node->SetLineColor(kColorITS);
2862 fNodes->Add(sub5node);
2864 fNodes->Add(sub4node);
2866 fNodes->Add(sub3node);
2869 // Place copy #2 of I107 in I10B
2871 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2872 sub3node->SetLineColor(kColorITS);
2873 sub3node->SetVisibility(0);
2876 // Place copy #1 of I101 in I107
2878 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2879 sub4node->SetLineColor(kColorITS);
2880 sub4node->SetVisibility(0);
2883 // Place copy #1 of ITS1 in I101
2885 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2886 sub5node->SetLineColor(kColorITS);
2887 fNodes->Add(sub5node);
2889 fNodes->Add(sub4node);
2891 fNodes->Add(sub3node);
2894 // Place copy #3 of I107 in I10B
2896 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2897 sub3node->SetLineColor(kColorITS);
2898 sub3node->SetVisibility(0);
2901 // Place copy #1 of I101 in I107
2903 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2904 sub4node->SetLineColor(kColorITS);
2905 sub4node->SetVisibility(0);
2908 // Place copy #1 of ITS1 in I101
2910 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2911 sub5node->SetLineColor(kColorITS);
2912 fNodes->Add(sub5node);
2914 fNodes->Add(sub4node);
2916 fNodes->Add(sub3node);
2919 // Place copy #4 of I107 in I10B
2921 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2922 sub3node->SetLineColor(kColorITS);
2923 sub3node->SetVisibility(0);
2926 // Place copy #1 of I101 in I107
2928 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2929 sub4node->SetLineColor(kColorITS);
2930 sub4node->SetVisibility(0);
2933 // Place copy #1 of ITS1 in I101
2935 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2936 sub5node->SetLineColor(kColorITS);
2937 fNodes->Add(sub5node);
2939 fNodes->Add(sub4node);
2941 fNodes->Add(sub3node);
2943 fNodes->Add(sub2node);
2946 // Place copy #1 of I20B in I12B
2948 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2949 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2950 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2951 sub2node->SetLineColor(kColorITS);
2952 sub2node->SetVisibility(0);
2955 // Place copy #1 of I1D7 in I20B
2957 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2958 sub3node->SetLineColor(kColorITS);
2959 sub3node->SetVisibility(0);
2962 // Place copy #1 of I1D1 in I1D7
2964 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2965 sub4node->SetLineColor(kColorITS);
2966 sub4node->SetVisibility(0);
2969 // Place copy #1 of ITS2 in I1D1
2971 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2972 sub5node->SetLineColor(kColorITS);
2973 fNodes->Add(sub5node);
2975 fNodes->Add(sub4node);
2977 fNodes->Add(sub3node);
2980 // Place copy #2 of I1D7 in I20B
2982 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2983 sub3node->SetLineColor(kColorITS);
2984 sub3node->SetVisibility(0);
2987 // Place copy #1 of I1D1 in I1D7
2989 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2990 sub4node->SetLineColor(kColorITS);
2991 sub4node->SetVisibility(0);
2994 // Place copy #1 of ITS2 in I1D1
2996 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2997 sub5node->SetLineColor(kColorITS);
2998 fNodes->Add(sub5node);
3000 fNodes->Add(sub4node);
3002 fNodes->Add(sub3node);
3005 // Place copy #3 of I1D7 in I20B
3007 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3008 sub3node->SetLineColor(kColorITS);
3009 sub3node->SetVisibility(0);
3012 // Place copy #1 of I1D1 in I1D7
3014 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3015 sub4node->SetLineColor(kColorITS);
3016 sub4node->SetVisibility(0);
3019 // Place copy #1 of ITS2 in I1D1
3021 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3022 sub5node->SetLineColor(kColorITS);
3023 fNodes->Add(sub5node);
3025 fNodes->Add(sub4node);
3027 fNodes->Add(sub3node);
3030 // Place copy #4 of I1D7 in I20B
3032 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3033 sub3node->SetLineColor(kColorITS);
3034 sub3node->SetVisibility(0);
3037 // Place copy #1 of I1D1 in I1D7
3039 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3040 sub4node->SetLineColor(kColorITS);
3041 sub4node->SetVisibility(0);
3044 // Place copy #1 of ITS2 in I1D1
3046 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3047 sub5node->SetLineColor(kColorITS);
3048 fNodes->Add(sub5node);
3050 fNodes->Add(sub4node);
3052 fNodes->Add(sub3node);
3054 fNodes->Add(sub2node);
3057 // Place copy #2 of I20B in I12B
3059 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
3060 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
3061 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
3062 sub2node->SetLineColor(kColorITS);
3063 sub2node->SetVisibility(0);
3066 // Place copy #1 of I1D7 in I20B
3068 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3069 sub3node->SetLineColor(kColorITS);
3070 sub3node->SetVisibility(0);
3073 // Place copy #1 of I1D1 in I1D7
3075 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3076 sub4node->SetLineColor(kColorITS);
3077 sub4node->SetVisibility(0);
3080 // Place copy #1 of ITS2 in I1D1
3082 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3083 sub5node->SetLineColor(kColorITS);
3084 fNodes->Add(sub5node);
3086 fNodes->Add(sub4node);
3088 fNodes->Add(sub3node);
3091 // Place copy #2 of I1D7 in I20B
3093 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3094 sub3node->SetLineColor(kColorITS);
3095 sub3node->SetVisibility(0);
3098 // Place copy #1 of I1D1 in I1D7
3100 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3101 sub4node->SetLineColor(kColorITS);
3102 sub4node->SetVisibility(0);
3105 // Place copy #1 of ITS2 in I1D1
3107 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3108 sub5node->SetLineColor(kColorITS);
3109 fNodes->Add(sub5node);
3111 fNodes->Add(sub4node);
3113 fNodes->Add(sub3node);
3116 // Place copy #3 of I1D7 in I20B
3118 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3119 sub3node->SetLineColor(kColorITS);
3120 sub3node->SetVisibility(0);
3123 // Place copy #1 of I1D1 in I1D7
3125 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3126 sub4node->SetLineColor(kColorITS);
3127 sub4node->SetVisibility(0);
3130 // Place copy #1 of ITS2 in I1D1
3132 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3133 sub5node->SetLineColor(kColorITS);
3134 fNodes->Add(sub5node);
3136 fNodes->Add(sub4node);
3138 fNodes->Add(sub3node);
3141 // Place copy #4 of I1D7 in I20B
3143 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3144 sub3node->SetLineColor(kColorITS);
3145 sub3node->SetVisibility(0);
3148 // Place copy #1 of I1D1 in I1D7
3150 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3151 sub4node->SetLineColor(kColorITS);
3152 sub4node->SetVisibility(0);
3155 // Place copy #1 of ITS2 in I1D1
3157 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3158 sub5node->SetLineColor(kColorITS);
3159 fNodes->Add(sub5node);
3161 fNodes->Add(sub4node);
3163 fNodes->Add(sub3node);
3165 fNodes->Add(sub2node);
3168 // Place copy #3 of I20B in I12B
3170 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
3171 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
3172 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
3173 sub2node->SetLineColor(kColorITS);
3174 sub2node->SetVisibility(0);
3177 // Place copy #1 of I1D7 in I20B
3179 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3180 sub3node->SetLineColor(kColorITS);
3181 sub3node->SetVisibility(0);
3184 // Place copy #1 of I1D1 in I1D7
3186 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3187 sub4node->SetLineColor(kColorITS);
3188 sub4node->SetVisibility(0);
3191 // Place copy #1 of ITS2 in I1D1
3193 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3194 sub5node->SetLineColor(kColorITS);
3195 fNodes->Add(sub5node);
3197 fNodes->Add(sub4node);
3199 fNodes->Add(sub3node);
3202 // Place copy #2 of I1D7 in I20B
3204 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3205 sub3node->SetLineColor(kColorITS);
3206 sub3node->SetVisibility(0);
3209 // Place copy #1 of I1D1 in I1D7
3211 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3212 sub4node->SetLineColor(kColorITS);
3213 sub4node->SetVisibility(0);
3216 // Place copy #1 of ITS2 in I1D1
3218 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3219 sub5node->SetLineColor(kColorITS);
3220 fNodes->Add(sub5node);
3222 fNodes->Add(sub4node);
3224 fNodes->Add(sub3node);
3227 // Place copy #3 of I1D7 in I20B
3229 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3230 sub3node->SetLineColor(kColorITS);
3231 sub3node->SetVisibility(0);
3234 // Place copy #1 of I1D1 in I1D7
3236 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3237 sub4node->SetLineColor(kColorITS);
3238 sub4node->SetVisibility(0);
3241 // Place copy #1 of ITS2 in I1D1
3243 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3244 sub5node->SetLineColor(kColorITS);
3245 fNodes->Add(sub5node);
3247 fNodes->Add(sub4node);
3249 fNodes->Add(sub3node);
3252 // Place copy #4 of I1D7 in I20B
3254 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3255 sub3node->SetLineColor(kColorITS);
3256 sub3node->SetVisibility(0);
3259 // Place copy #1 of I1D1 in I1D7
3261 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3262 sub4node->SetLineColor(kColorITS);
3263 sub4node->SetVisibility(0);
3266 // Place copy #1 of ITS2 in I1D1
3268 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3269 sub5node->SetLineColor(kColorITS);
3270 fNodes->Add(sub5node);
3272 fNodes->Add(sub4node);
3274 fNodes->Add(sub3node);
3276 fNodes->Add(sub2node);
3279 // Place copy #4 of I20B in I12B
3281 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
3282 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
3283 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
3284 sub2node->SetLineColor(kColorITS);
3285 sub2node->SetVisibility(0);
3288 // Place copy #1 of I1D7 in I20B
3290 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3291 sub3node->SetLineColor(kColorITS);
3292 sub3node->SetVisibility(0);
3295 // Place copy #1 of I1D1 in I1D7
3297 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3298 sub4node->SetLineColor(kColorITS);
3299 sub4node->SetVisibility(0);
3302 // Place copy #1 of ITS2 in I1D1
3304 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3305 sub5node->SetLineColor(kColorITS);
3306 fNodes->Add(sub5node);
3308 fNodes->Add(sub4node);
3310 fNodes->Add(sub3node);
3313 // Place copy #2 of I1D7 in I20B
3315 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3316 sub3node->SetLineColor(kColorITS);
3317 sub3node->SetVisibility(0);
3320 // Place copy #1 of I1D1 in I1D7
3322 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3323 sub4node->SetLineColor(kColorITS);
3324 sub4node->SetVisibility(0);
3327 // Place copy #1 of ITS2 in I1D1
3329 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3330 sub5node->SetLineColor(kColorITS);
3331 fNodes->Add(sub5node);
3333 fNodes->Add(sub4node);
3335 fNodes->Add(sub3node);
3338 // Place copy #3 of I1D7 in I20B
3340 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3341 sub3node->SetLineColor(kColorITS);
3342 sub3node->SetVisibility(0);
3345 // Place copy #1 of I1D1 in I1D7
3347 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3348 sub4node->SetLineColor(kColorITS);
3349 sub4node->SetVisibility(0);
3352 // Place copy #1 of ITS2 in I1D1
3354 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3355 sub5node->SetLineColor(kColorITS);
3356 fNodes->Add(sub5node);
3358 fNodes->Add(sub4node);
3360 fNodes->Add(sub3node);
3363 // Place copy #4 of I1D7 in I20B
3365 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3366 sub3node->SetLineColor(kColorITS);
3367 sub3node->SetVisibility(0);