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.62 2003/01/16 08:10:13 hristov
19 Correcting usage of string arrays (valgrind)
21 Revision 1.61 2002/11/21 23:05:27 alibrary
22 Removing AliMC and AliMCProcess
24 Revision 1.60 2002/10/22 14:45:47 alibrary
25 Introducing Riostream.h
27 Revision 1.59 2002/10/14 14:57:08 hristov
28 Merging the VirtualMC branch to the main development branch (HEAD)
30 Revision 1.53.6.4 2002/10/14 13:14:08 hristov
31 Updating VirtualMC to v3-09-02
33 Revision 1.58 2002/10/02 17:56:34 barbera
34 Bug in copy 37 of volume I570 corrected (thanks to J. Belikov)
36 Revision 1.57 2002/06/12 18:57:25 nilsen
37 Added TrackReference hits for ITS Mother volume at request of TRD and TOF.
39 Revision 1.56 2002/05/10 22:30:27 nilsen
40 fix to use default paramters for the SDD response.
42 Revision 1.55 2002/04/13 22:21:12 nilsen
43 New default value of noise for SDD simulations introduced.
45 Revision 1.54 2002/03/28 16:17:03 nilsen
46 Set new Geant Step size and related parameters for the ITS materials.
48 Revision 1.53 2001/11/28 01:35:45 nilsen
49 Using standard constructors instead of default constructors for Clusterfinder,
50 Response, and FastSimulator.
52 Revision 1.52 2001/10/22 11:00:54 hristov
53 New naming schema of the rotation matrices in BuildGeometry() to avoid redefinition in other detectors (R.Barbera)
55 Revision 1.51 2001/10/19 10:18:49 barbera
58 Revision 1.50 2001/10/18 12:25:07 barbera
59 Detailed geometry in BuildGeometry() commented out (450 MB needed to compile the file). Six cylinders put back but improved by comparison with the ITS coarse geometry
61 Revision 1.49 2001/10/18 03:09:21 barbera
62 The method BuildGeometry() has been completely rewritten. Now display.C can display the detailed ITS geometry instead of the old six dummy cylunders.
64 Revision 1.48 2001/10/17 04:35:32 barbera
65 Checks for the det and chip thickness modified in order to set the dafault values to 200 um if the user chosen values are outside the range 100-300 um
67 Revision 1.47 2001/10/04 22:33:39 nilsen
68 Fixed bugs in SetDefaults.
70 Revision 1.46 2001/10/01 19:34:08 nilsen
71 Fixed a bug in asigning detector types in SetDefaults under SSD layer 6.
73 Revision 1.45 2001/06/07 14:42:14 barbera
74 Both chip and det thicknesses set to [100,300]
76 Revision 1.44 2001/05/31 19:24:47 barbera
77 Default values of SPD detector and chip thickness set to 200 microns as defined by the Technical Board
79 Revision 1.43 2001/05/30 16:15:47 fca
80 Correct comparison wiht AliGeant3::Class() introduced. Thanks to I.Hrivnacova
82 Revision 1.42 2001/05/30 15:55:35 hristov
83 Strings compared instead of pointers
85 Revision 1.41 2001/05/30 14:04:31 hristov
86 Dynamic cast replaced (F.Carminati)
88 Revision 1.40 2001/05/25 15:59:59 morsch
89 Overlaps corrected. (R. Barbera)
91 Revision 1.38 2001/05/16 08:17:49 hristov
92 Bug fixed in the StepManager to account for the difference in the geometry tree for the ITS pixels. This fixes both the funny distribution of pixel coordinates and the missing hits/digits/points in many sectors of the ITS pixel barrel. Also included is a patch to properly get and use the detector dimensions through out the ITS code. (B.Nilsen)
94 Revision 1.37 2001/05/10 00:12:59 nilsen
95 Finished fixing up the default segmentation for the PPR geometry.
97 Revision 1.36 2001/05/09 01:02:21 nilsen
98 Finished fixing SetDefaults for the segmentation of SPD, SDD, and SSD.
100 Revision 1.35 2001/05/03 08:40:15 barbera
101 Volume ITSD slightly modified to be consistent with v5. Some improvement in the printouts. The last commit did not complete successfully.
103 Revision 1.33 2001/05/01 22:40:42 nilsen
104 Partical update of SetDefault.
106 Revision 1.32 2001/04/22 13:48:09 barbera
107 New values of media parameters and thickness of SPD end-ladder electronics as given by Fabio Formenti
109 Revision 1.31 2001/04/04 07:02:16 barbera
110 Position of the cylinders holding rails corrected
112 Revision 1.30 2001/03/29 22:02:30 barbera
113 Some changes to the services due to the new drawings from the engineers.
115 Revision 1.29 2001/03/29 05:28:56 barbera
116 Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
118 Revision 1.28 2001/03/28 06:40:20 barbera
119 Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
121 Revision 1.26 2001/03/23 00:12:23 nilsen
122 Set Reading of AliITSgeom data from Geant3 common blocks as the default and
123 not a .det file. Removed redundent calls to BuildGeometry.
125 Revision 1.25 2001/03/20 19:22:51 barbera
126 Flags for the rails and the cooling fluid added. Some changes in the volumes of the SSD cones after the meeting with the engineers in Torino.
128 Revision 1.23 2001/03/13 21:18:44 barbera
129 Some misleading comments removed
131 Revision 1.22 2001/03/13 18:13:30 barbera
132 Some mother volumes sligthly modified to eliminate an overlap with the absorber
134 Revision 1.21 2001/03/13 08:36:23 hristov
135 fabsf replaced by TMath::Abs
137 Revision 1.20 2001/03/13 00:17:41 barbera
138 New SDD geometry got grom F. Tosello and checked by the SDD engineers
140 Revision 1.19 2001/02/28 18:23:13 barbera
141 Setters and getters to set/get the detector and chip thickness on SPD layers added
143 Revision 1.18 2001/02/27 23:18:24 barbera
144 Full parameterization of detector and chip thicknesses for layer 1 and layer 2 of SPD as requested by the project leader
146 Revision 1.17 2001/02/19 22:14:55 nilsen
147 Fix for all 4 versions 11, 12, 21, and 22.
149 Revision 1.16 2001/02/19 20:10:34 barbera
150 Set option=2 and thickness=2 as default values --> SetMinorVersion=22
152 Revision 1.15 2001/02/19 19:44:00 barbera
153 Air density parameter corrected
155 Revision 1.14 2001/02/13 16:53:35 nilsen
156 Fixed a but when trying to use GEANT4. Needed to replace
157 if(!((TGeant3*)gMC)) with if(!(dynamic_casst<TGeant3*>(gMC)))
158 because just casting gMC to be TGeant3* even when it realy is a TGeant3 pointer
159 did not result in a zero value. For AliITSv5asymm and AliITSv5symm, needed
160 to fix a bug in the initilizers and a bug in BuildGeometry. This is now done
161 in the same way as in AliITSv5.cxx.
163 Revision 1.13 2001/02/09 20:06:26 nilsen
164 Fixed bug in distructor. Can't distroy fixxed length arrays. Thanks Peter.
166 Revision 1.12 2001/02/09 13:53:38 barbera
167 Int_t redefinition avoided
169 Revision 1.11 2001/02/09 06:55:38 barbera
170 SPD option re-set to B. It was A by mistake
172 Revision 1.10 2001/02/09 00:05:31 nilsen
173 Added fMajor/MinorVersion variables and made other changes to better make
174 use of the new code changes in AliITSgeom related classes.
177 Revision 1.9 2001/02/08 16:00:37 barbera
178 New thicknesses (300+300 um) added for SPD chips and detectors and set as default. Many other refinements.
180 Revision 1.8 2001/02/06 08:03:44 barbera
181 Material redefinition in SDD
183 Revision 1.7 2001/02/05 13:34:57 barbera
184 Updated version of the ITS detailed geometry
186 Revision 1.5 2001/01/30 09:23:13 hristov
187 Streamers removed (R.Brun)
189 Revision 1.4 2001/01/23 20:08:03 barbera
190 Option B for pixels implemented and set as default
192 Revision 1.3 2001/01/17 08:08:20 barbera
193 Some media parameters modified
195 Revision 1.1.2.1 2001/01/15 13:38:08 barbera
196 New ITS detailed geometry to be used for the PPR
200 ///////////////////////////////////////////////////////////////////////////////
202 // Inner Traking System version PPR asymmetric //
203 // This class contains the base procedures for the Inner Tracking System //
205 // Authors: R. Barbera //
207 // Created January 15 2001. //
209 // NOTE: THIS IS THE ASYMMETRIC PPR geometry of the ITS. //
211 ///////////////////////////////////////////////////////////////////////////////
213 // See AliITSvPPRasymm::StepManager().
214 #include <Riostream.h>
218 #include <TGeometry.h>
223 #include <TFile.h> // only required for Tracking function?
225 #include <TObjArray.h>
226 #include <TLorentzVector.h>
227 #include <TObjString.h>
228 #include <TClonesArray.h>
234 #include "AliConst.h"
235 #include "AliITSGeant3Geometry.h"
236 #include "AliTrackReference.h"
237 #include "AliITShit.h"
239 #include "AliITSvPPRasymm.h"
240 #include "AliITSgeom.h"
241 #include "AliITSgeomSPD.h"
242 #include "AliITSgeomSDD.h"
243 #include "AliITSgeomSSD.h"
244 #include "AliITSDetType.h"
245 #include "AliITSresponseSPD.h"
246 #include "AliITSresponseSDD.h"
247 #include "AliITSresponseSSD.h"
248 #include "AliITSsegmentationSPD.h"
249 #include "AliITSsegmentationSDD.h"
250 #include "AliITSsegmentationSSD.h"
251 #include "AliITSsimulationSPD.h"
252 #include "AliITSsimulationSDD.h"
253 #include "AliITSsimulationSSD.h"
254 #include "AliITSClusterFinderSPD.h"
255 #include "AliITSClusterFinderSDD.h"
256 #include "AliITSClusterFinderSSD.h"
259 ClassImp(AliITSvPPRasymm)
261 //_____________________________________________________________________________
262 AliITSvPPRasymm::AliITSvPPRasymm() {
263 ////////////////////////////////////////////////////////////////////////
264 // Standard default constructor for the ITS version 8.
265 ////////////////////////////////////////////////////////////////////////
271 fEuclidOut = kFALSE; // Don't write Euclide file
272 fGeomDetOut = kFALSE; // Don't write .det file
273 fGeomDetIn = kFALSE; // Don't Read .det file
274 fMajorVersion = IsVersion();
276 for(i=0;i<60;i++) fRead[i] = '\0';
277 for(i=0;i<60;i++) fWrite[i] = '\0';
278 for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
280 //_____________________________________________________________________________
281 AliITSvPPRasymm::AliITSvPPRasymm(const char *name, const char *title) : AliITS(name, title){
282 ////////////////////////////////////////////////////////////////////////
283 // Standard constructor for the ITS version 8.
284 ////////////////////////////////////////////////////////////////////////
288 fIdName = new TString[fIdN];
295 fIdSens = new Int_t[fIdN];
296 for(i=0;i<fIdN;i++) fIdSens[i] = 0;
297 fMajorVersion = IsVersion();
299 fEuclidOut = kFALSE; // Don't write Euclide file
300 fGeomDetOut = kFALSE; // Don't write .det file
301 fGeomDetIn = kFALSE; // Don't Read .det file
307 fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
308 strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
309 strncpy(fRead,fEuclidGeomDet,60);
310 strncpy(fWrite,fEuclidGeomDet,60);
312 //____________________________________________________________________________
313 AliITSvPPRasymm::AliITSvPPRasymm(const AliITSvPPRasymm &source){
314 ////////////////////////////////////////////////////////////////////////
315 // Copy Constructor for ITS version 8.
316 ////////////////////////////////////////////////////////////////////////
317 if(&source == this) return;
318 Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymm");
321 //_____________________________________________________________________________
322 AliITSvPPRasymm& AliITSvPPRasymm::operator=(const AliITSvPPRasymm &source){
323 ////////////////////////////////////////////////////////////////////////
324 // Assignment operator for the ITS version 8.
325 ////////////////////////////////////////////////////////////////////////
326 if(&source == this) return *this;
327 Warning("= operator","Not allowed to copy AliITSvPPRasymm");
330 //_____________________________________________________________________________
331 AliITSvPPRasymm::~AliITSvPPRasymm() {
332 ////////////////////////////////////////////////////////////////////////
333 // Standard destructor for the ITS version 8.
334 ////////////////////////////////////////////////////////////////////////
336 //__________________________________________________________________________
337 void AliITSvPPRasymm::BuildGeometry(){
338 ////////////////////////////////////////////////////////////////////////
339 // Geometry builder for the ITS version 8.
340 ////////////////////////////////////////////////////////////////////////
343 const Int_t kColorITS=kYellow;
345 top = gAlice->GetGeometry()->GetNode("alice");
348 new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
350 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
351 node->SetLineColor(kColorITS);
354 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
356 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
357 node->SetLineColor(kColorITS);
360 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
362 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
363 node->SetLineColor(kColorITS);
366 new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
368 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
369 node->SetLineColor(kColorITS);
372 new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
374 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
375 node->SetLineColor(kColorITS);
378 new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
380 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
381 node->SetLineColor(kColorITS);
388 TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
390 // Define some variables for SPD
393 Float_t dits1[3], di101[3], di107[3], di10b[3]; // for layer 1
394 Float_t di103[3], di10a[3]; // for layer 1
395 Float_t dits2[3], di1d1[3], di1d7[3], di20b[3]; // for layer 2
396 Float_t di1d3[3], di20a[3]; // for layer 2
398 Float_t ddet1=200.; // total detector thickness on layer 1 (micron)
399 Float_t dchip1=200.; // total chip thickness on layer 1 (micron)
401 Float_t ddet2=200.; // total detector thickness on layer 2 (micron)
402 Float_t dchip2=200.; // total chip thickness on layer 2 (micron)
404 Float_t dbus=300.; // total bus thickness on both layers (micron)
406 ddet1 = GetThicknessDet1();
407 ddet2 = GetThicknessDet2();
408 dchip1 = GetThicknessChip1();
409 dchip2 = GetThicknessChip2();
411 cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl;
413 if(ddet1 < 100. || ddet1 > 300.) {
414 cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
415 " The default value of 200 microns will be used." << endl;
419 if(ddet2 < 100. || ddet2 > 300.) {
420 cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
421 " The default value of 200 microns will be used." << endl;
425 if(dchip1 < 100. || dchip1 > 300.) {
426 cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
427 " The default value of 200 microns will be used." << endl;
431 if(dchip2 < 100. || dchip2 > 300.) {
432 cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
433 " The default value of 200 microns will be used." << endl;
437 cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
438 cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
439 cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
440 cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
442 ddet1 = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
443 ddet2 = ddet2*0.0001/2.; // conversion from tot length in um to half in cm
444 dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm
445 dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm
446 dbus = dbus*0.0001/2.; // conversion from tot length in um to half in cm
448 Float_t deltax, deltay;
450 Int_t thickness = fMinorVersion/10;
451 Int_t option = fMinorVersion - 10*thickness;
454 // Define some variables for SDD
455 // SDD detector ladder
458 Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
459 Float_t Y_SDD_sep = 0.20;
460 Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
461 Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
469 new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
470 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
471 new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);
472 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );
473 new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
474 new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);
475 new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0);
476 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
477 new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);
478 new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
479 new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
480 new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
481 new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
482 new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
483 new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);
487 // SPD - option 'b' (this is the default)
491 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
492 new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
493 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
494 new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);
495 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
496 new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);
497 new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
498 new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);
499 new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);
500 new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
501 new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);
502 new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
503 new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
504 new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
505 new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
511 new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);
512 new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
513 new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);
514 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
515 new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);
516 new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
517 new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);
518 new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);
519 new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);
520 new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);
521 new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);
522 new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);
523 new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0);
524 new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);
525 new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0);
526 new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);
527 new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);
528 new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);
529 new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);
530 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
531 new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);
532 new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);
533 new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);
534 new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0);
535 new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);
536 new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);
537 new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);
538 new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);
539 new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);
540 new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);
541 new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);
542 new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);
543 new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);
544 new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);
545 new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0);
546 new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);
550 new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);
551 new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);
552 new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);
553 new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);
554 new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
555 new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
556 new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);
557 new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
558 new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
559 new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0);
560 new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0);
561 new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);
562 new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);
563 new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);
564 new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);
565 new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
566 new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
567 new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);
568 new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
569 new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
570 new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0);
571 new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);
572 new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);
573 new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);
574 new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);
575 new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
576 new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0);
577 new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0);
578 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
579 new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);
580 new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);
581 new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
582 new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);
583 new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
584 new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);
585 new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
586 new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
587 new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0);
588 new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);
589 new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);
590 new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);
591 new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);
592 new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
593 new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
594 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
595 new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);
596 new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);
597 new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);
598 new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);
599 new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
600 new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
601 new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);
602 new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
603 new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
604 new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0);
605 new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);
606 new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);
607 new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);
608 new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);
609 new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
610 new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
611 new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);
612 new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
613 new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
614 new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
615 new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);
616 new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);
617 new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);
618 new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);
619 new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
620 new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);
623 // --- Define SPD (option 'a') volumes ----------------------------
626 // (this is NOT the default)
633 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
638 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
643 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
648 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
651 di103[1] = ddet1+dchip1;
653 new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);
656 di1d3[1] = ddet2+dchip2;
658 new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);
661 di10a[1] = ddet1+dchip1+dbus+0.0025;
663 new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]);
666 di20a[1] = ddet2+dchip2+dbus+0.0025;
668 new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);
675 new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
680 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
684 // --- Define SPD (option 'b') volumes ----------------------------
687 // (this is the default)
694 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
699 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
704 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
709 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
712 di107[1] = ddet1+dchip1;
714 new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);
717 di1d7[1] = ddet2+dchip2;
719 new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);
722 di10b[1] = ddet1+dchip1+dbus+0.0025;
724 new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]);
727 di20b[1] = ddet2+dchip2+dbus+0.0025;
729 new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);
736 new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
741 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
746 // --- Define SDD volumes ------------------------------------------
748 TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6);
749 it34->DefineSection(0,-34.6,23.49,28.);
750 it34->DefineSection(1,-23.65,23.49,28.);
751 it34->DefineSection(2,-23.65,14.59,28.);
752 it34->DefineSection(3,23.65,14.59,28.);
753 it34->DefineSection(4,23.65,23.49,28.);
754 it34->DefineSection(5,34.6,23.49,28.);
756 I302dits[0] = 3.6250;
757 I302dits[1] = 0.0150;
758 I302dits[2] = 4.3794;
759 new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
761 I004dits[0] = I302dits[0]+0.005;
762 I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
763 I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
764 if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
765 I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
767 I004dits[2] = I004dits[2] + I302dits[2];
768 new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]);
773 new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);
775 I402dits[0] = 3.6250;
776 I402dits[1] = 0.0150;
777 I402dits[2] = 4.3794;
778 new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
780 I005dits[0] = I402dits[0]+0.005;
781 I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
782 I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
783 if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
784 I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
786 I005dits[2] = I005dits[2] + I402dits[2];
787 new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);
792 new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
795 // --- Define SSD volumes ------------------------------------------
798 TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6);
799 it56->DefineSection(0,-57.45,43.6,48.);
800 it56->DefineSection(1,-49.15,43.6,48.);
801 it56->DefineSection(2,-49.15,36.9,48.);
802 it56->DefineSection(3,50.55,36.9,48.);
803 it56->DefineSection(4,50.55,43.6,48.);
804 it56->DefineSection(5,57.45,43.6,48.);
809 new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);
814 new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);
819 new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);
824 new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);
829 new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]);
834 new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);
840 // --- Place SPD (option 'a') volumes into their mother volume
843 // (this is NOT the default)
851 // --- Place SPD (option 'b') volumes into their mother volume
854 // (this is the default)
858 // Place IT12 in Alice
860 node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
861 node->SetLineColor(kColorITS);
862 node->SetVisibility(0);
865 // Place copy #1 of I12B in IT12
867 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
868 sub1node->SetLineColor(kColorITS);
869 sub1node->SetVisibility(0);
872 // Place copy #1 of I10B in I12B
874 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
875 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
876 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
877 sub2node->SetLineColor(kColorITS);
878 sub2node->SetVisibility(0);
881 // Place copy #1 of I107 in I10B
883 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
884 sub3node->SetLineColor(kColorITS);
885 sub3node->SetVisibility(0);
888 // Place copy #1 of I101 in I107
890 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
891 sub4node->SetLineColor(kColorITS);
892 sub4node->SetVisibility(0);
895 // Place copy #1 of ITS1 in I101
897 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
898 sub5node->SetLineColor(kColorITS);
899 fNodes->Add(sub5node);
901 fNodes->Add(sub4node);
903 fNodes->Add(sub3node);
906 // Place copy #2 of I107 in I10B
908 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
909 sub3node->SetLineColor(kColorITS);
910 sub3node->SetVisibility(0);
913 // Place copy #1 of I101 in I107
915 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
916 sub4node->SetLineColor(kColorITS);
917 sub4node->SetVisibility(0);
920 // Place copy #1 of ITS1 in I101
922 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
923 sub5node->SetLineColor(kColorITS);
924 fNodes->Add(sub5node);
926 fNodes->Add(sub4node);
928 fNodes->Add(sub3node);
931 // Place copy #3 of I107 in I10B
933 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
934 sub3node->SetLineColor(kColorITS);
935 sub3node->SetVisibility(0);
938 // Place copy #1 of I101 in I107
940 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
941 sub4node->SetLineColor(kColorITS);
942 sub4node->SetVisibility(0);
945 // Place copy #1 of ITS1 in I101
947 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
948 sub5node->SetLineColor(kColorITS);
949 fNodes->Add(sub5node);
951 fNodes->Add(sub4node);
953 fNodes->Add(sub3node);
956 // Place copy #4 of I107 in I10B
958 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
959 sub3node->SetLineColor(kColorITS);
960 sub3node->SetVisibility(0);
963 // Place copy #1 of I101 in I107
965 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
966 sub4node->SetLineColor(kColorITS);
967 sub4node->SetVisibility(0);
970 // Place copy #1 of ITS1 in I101
972 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
973 sub5node->SetLineColor(kColorITS);
974 fNodes->Add(sub5node);
976 fNodes->Add(sub4node);
978 fNodes->Add(sub3node);
980 fNodes->Add(sub2node);
983 // Place copy #2 of I10B in I12B
985 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
986 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
987 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
988 sub2node->SetLineColor(kColorITS);
989 sub2node->SetVisibility(0);
992 // Place copy #1 of I107 in I10B
994 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
995 sub3node->SetLineColor(kColorITS);
996 sub3node->SetVisibility(0);
999 // Place copy #1 of I101 in I107
1001 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1002 sub4node->SetLineColor(kColorITS);
1003 sub4node->SetVisibility(0);
1006 // Place copy #1 of ITS1 in I101
1008 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1009 sub5node->SetLineColor(kColorITS);
1010 fNodes->Add(sub5node);
1012 fNodes->Add(sub4node);
1014 fNodes->Add(sub3node);
1017 // Place copy #2 of I107 in I10B
1019 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1020 sub3node->SetLineColor(kColorITS);
1021 sub3node->SetVisibility(0);
1024 // Place copy #1 of I101 in I107
1026 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1027 sub4node->SetLineColor(kColorITS);
1028 sub4node->SetVisibility(0);
1031 // Place copy #1 of ITS1 in I101
1033 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1034 sub5node->SetLineColor(kColorITS);
1035 fNodes->Add(sub5node);
1037 fNodes->Add(sub4node);
1039 fNodes->Add(sub3node);
1042 // Place copy #3 of I107 in I10B
1044 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1045 sub3node->SetLineColor(kColorITS);
1046 sub3node->SetVisibility(0);
1049 // Place copy #1 of I101 in I107
1051 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1052 sub4node->SetLineColor(kColorITS);
1053 sub4node->SetVisibility(0);
1056 // Place copy #1 of ITS1 in I101
1058 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1059 sub5node->SetLineColor(kColorITS);
1060 fNodes->Add(sub5node);
1062 fNodes->Add(sub4node);
1064 fNodes->Add(sub3node);
1067 // Place copy #4 of I107 in I10B
1069 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1070 sub3node->SetLineColor(kColorITS);
1071 sub3node->SetVisibility(0);
1074 // Place copy #1 of I101 in I107
1076 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1077 sub4node->SetLineColor(kColorITS);
1078 sub4node->SetVisibility(0);
1081 // Place copy #1 of ITS1 in I101
1083 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1084 sub5node->SetLineColor(kColorITS);
1085 fNodes->Add(sub5node);
1087 fNodes->Add(sub4node);
1089 fNodes->Add(sub3node);
1091 fNodes->Add(sub2node);
1094 // Place copy #1 of I20B in I12B
1096 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
1097 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1098 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1099 sub2node->SetLineColor(kColorITS);
1100 sub2node->SetVisibility(0);
1103 // Place copy #1 of I1D7 in I20B
1105 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1106 sub3node->SetLineColor(kColorITS);
1107 sub3node->SetVisibility(0);
1110 // Place copy #1 of I1D1 in I1D7
1112 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1113 sub4node->SetLineColor(kColorITS);
1114 sub4node->SetVisibility(0);
1117 // Place copy #1 of ITS2 in I1D1
1119 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1120 sub5node->SetLineColor(kColorITS);
1121 fNodes->Add(sub5node);
1123 fNodes->Add(sub4node);
1125 fNodes->Add(sub3node);
1128 // Place copy #2 of I1D7 in I20B
1130 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1131 sub3node->SetLineColor(kColorITS);
1132 sub3node->SetVisibility(0);
1135 // Place copy #1 of I1D1 in I1D7
1137 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1138 sub4node->SetLineColor(kColorITS);
1139 sub4node->SetVisibility(0);
1142 // Place copy #1 of ITS2 in I1D1
1144 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1145 sub5node->SetLineColor(kColorITS);
1146 fNodes->Add(sub5node);
1148 fNodes->Add(sub4node);
1150 fNodes->Add(sub3node);
1153 // Place copy #3 of I1D7 in I20B
1155 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1156 sub3node->SetLineColor(kColorITS);
1157 sub3node->SetVisibility(0);
1160 // Place copy #1 of I1D1 in I1D7
1162 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1163 sub4node->SetLineColor(kColorITS);
1164 sub4node->SetVisibility(0);
1167 // Place copy #1 of ITS2 in I1D1
1169 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1170 sub5node->SetLineColor(kColorITS);
1171 fNodes->Add(sub5node);
1173 fNodes->Add(sub4node);
1175 fNodes->Add(sub3node);
1178 // Place copy #4 of I1D7 in I20B
1180 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1181 sub3node->SetLineColor(kColorITS);
1182 sub3node->SetVisibility(0);
1185 // Place copy #1 of I1D1 in I1D7
1187 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1188 sub4node->SetLineColor(kColorITS);
1189 sub4node->SetVisibility(0);
1192 // Place copy #1 of ITS2 in I1D1
1194 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1195 sub5node->SetLineColor(kColorITS);
1196 fNodes->Add(sub5node);
1198 fNodes->Add(sub4node);
1200 fNodes->Add(sub3node);
1202 fNodes->Add(sub2node);
1205 // Place copy #2 of I20B in I12B
1207 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1208 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1209 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1210 sub2node->SetLineColor(kColorITS);
1211 sub2node->SetVisibility(0);
1214 // Place copy #1 of I1D7 in I20B
1216 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1217 sub3node->SetLineColor(kColorITS);
1218 sub3node->SetVisibility(0);
1221 // Place copy #1 of I1D1 in I1D7
1223 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1224 sub4node->SetLineColor(kColorITS);
1225 sub4node->SetVisibility(0);
1228 // Place copy #1 of ITS2 in I1D1
1230 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1231 sub5node->SetLineColor(kColorITS);
1232 fNodes->Add(sub5node);
1234 fNodes->Add(sub4node);
1236 fNodes->Add(sub3node);
1239 // Place copy #2 of I1D7 in I20B
1241 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1242 sub3node->SetLineColor(kColorITS);
1243 sub3node->SetVisibility(0);
1246 // Place copy #1 of I1D1 in I1D7
1248 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1249 sub4node->SetLineColor(kColorITS);
1250 sub4node->SetVisibility(0);
1253 // Place copy #1 of ITS2 in I1D1
1255 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1256 sub5node->SetLineColor(kColorITS);
1257 fNodes->Add(sub5node);
1259 fNodes->Add(sub4node);
1261 fNodes->Add(sub3node);
1264 // Place copy #3 of I1D7 in I20B
1266 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1267 sub3node->SetLineColor(kColorITS);
1268 sub3node->SetVisibility(0);
1271 // Place copy #1 of I1D1 in I1D7
1273 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1274 sub4node->SetLineColor(kColorITS);
1275 sub4node->SetVisibility(0);
1278 // Place copy #1 of ITS2 in I1D1
1280 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1281 sub5node->SetLineColor(kColorITS);
1282 fNodes->Add(sub5node);
1284 fNodes->Add(sub4node);
1286 fNodes->Add(sub3node);
1289 // Place copy #4 of I1D7 in I20B
1291 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1292 sub3node->SetLineColor(kColorITS);
1293 sub3node->SetVisibility(0);
1296 // Place copy #1 of I1D1 in I1D7
1298 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1299 sub4node->SetLineColor(kColorITS);
1300 sub4node->SetVisibility(0);
1303 // Place copy #1 of ITS2 in I1D1
1305 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1306 sub5node->SetLineColor(kColorITS);
1307 fNodes->Add(sub5node);
1309 fNodes->Add(sub4node);
1311 fNodes->Add(sub3node);
1313 fNodes->Add(sub2node);
1316 // Place copy #3 of I20B in I12B
1318 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1319 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1320 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1321 sub2node->SetLineColor(kColorITS);
1322 sub2node->SetVisibility(0);
1325 // Place copy #1 of I1D7 in I20B
1327 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1328 sub3node->SetLineColor(kColorITS);
1329 sub3node->SetVisibility(0);
1332 // Place copy #1 of I1D1 in I1D7
1334 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1335 sub4node->SetLineColor(kColorITS);
1336 sub4node->SetVisibility(0);
1339 // Place copy #1 of ITS2 in I1D1
1341 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1342 sub5node->SetLineColor(kColorITS);
1343 fNodes->Add(sub5node);
1345 fNodes->Add(sub4node);
1347 fNodes->Add(sub3node);
1350 // Place copy #2 of I1D7 in I20B
1352 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1353 sub3node->SetLineColor(kColorITS);
1354 sub3node->SetVisibility(0);
1357 // Place copy #1 of I1D1 in I1D7
1359 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1360 sub4node->SetLineColor(kColorITS);
1361 sub4node->SetVisibility(0);
1364 // Place copy #1 of ITS2 in I1D1
1366 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1367 sub5node->SetLineColor(kColorITS);
1368 fNodes->Add(sub5node);
1370 fNodes->Add(sub4node);
1372 fNodes->Add(sub3node);
1375 // Place copy #3 of I1D7 in I20B
1377 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1378 sub3node->SetLineColor(kColorITS);
1379 sub3node->SetVisibility(0);
1382 // Place copy #1 of I1D1 in I1D7
1384 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1385 sub4node->SetLineColor(kColorITS);
1386 sub4node->SetVisibility(0);
1389 // Place copy #1 of ITS2 in I1D1
1391 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1392 sub5node->SetLineColor(kColorITS);
1393 fNodes->Add(sub5node);
1395 fNodes->Add(sub4node);
1397 fNodes->Add(sub3node);
1400 // Place copy #4 of I1D7 in I20B
1402 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1403 sub3node->SetLineColor(kColorITS);
1404 sub3node->SetVisibility(0);
1407 // Place copy #1 of I1D1 in I1D7
1409 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1410 sub4node->SetLineColor(kColorITS);
1411 sub4node->SetVisibility(0);
1414 // Place copy #1 of ITS2 in I1D1
1416 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1417 sub5node->SetLineColor(kColorITS);
1418 fNodes->Add(sub5node);
1420 fNodes->Add(sub4node);
1422 fNodes->Add(sub3node);
1424 fNodes->Add(sub2node);
1427 // Place copy #4 of I20B in I12B
1429 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1430 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1431 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1432 sub2node->SetLineColor(kColorITS);
1433 sub2node->SetVisibility(0);
1436 // Place copy #1 of I1D7 in I20B
1438 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1439 sub3node->SetLineColor(kColorITS);
1440 sub3node->SetVisibility(0);
1443 // Place copy #1 of I1D1 in I1D7
1445 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1446 sub4node->SetLineColor(kColorITS);
1447 sub4node->SetVisibility(0);
1450 // Place copy #1 of ITS2 in I1D1
1452 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1453 sub5node->SetLineColor(kColorITS);
1454 fNodes->Add(sub5node);
1456 fNodes->Add(sub4node);
1458 fNodes->Add(sub3node);
1461 // Place copy #2 of I1D7 in I20B
1463 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1464 sub3node->SetLineColor(kColorITS);
1465 sub3node->SetVisibility(0);
1468 // Place copy #1 of I1D1 in I1D7
1470 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1471 sub4node->SetLineColor(kColorITS);
1472 sub4node->SetVisibility(0);
1475 // Place copy #1 of ITS2 in I1D1
1477 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1478 sub5node->SetLineColor(kColorITS);
1479 fNodes->Add(sub5node);
1481 fNodes->Add(sub4node);
1483 fNodes->Add(sub3node);
1486 // Place copy #3 of I1D7 in I20B
1488 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1489 sub3node->SetLineColor(kColorITS);
1490 sub3node->SetVisibility(0);
1493 // Place copy #1 of I1D1 in I1D7
1495 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1496 sub4node->SetLineColor(kColorITS);
1497 sub4node->SetVisibility(0);
1500 // Place copy #1 of ITS2 in I1D1
1502 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1503 sub5node->SetLineColor(kColorITS);
1504 fNodes->Add(sub5node);
1506 fNodes->Add(sub4node);
1508 fNodes->Add(sub3node);
1511 // Place copy #4 of I1D7 in I20B
1513 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1514 sub3node->SetLineColor(kColorITS);
1515 sub3node->SetVisibility(0);
1518 // Place copy #1 of I1D1 in I1D7
1520 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1521 sub4node->SetLineColor(kColorITS);
1522 sub4node->SetVisibility(0);
1525 // Place copy #1 of ITS2 in I1D1
1527 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1528 sub5node->SetLineColor(kColorITS);
1529 fNodes->Add(sub5node);
1531 fNodes->Add(sub4node);
1533 fNodes->Add(sub3node);
1535 fNodes->Add(sub2node);
1537 fNodes->Add(sub1node);
1540 // Place copy #2 of I12B in IT12
1542 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
1543 sub1node->SetLineColor(kColorITS);
1544 sub1node->SetVisibility(0);
1547 // Place copy #1 of I10B in I12B
1549 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
1550 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
1551 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
1552 sub2node->SetLineColor(kColorITS);
1553 sub2node->SetVisibility(0);
1556 // Place copy #1 of I107 in I10B
1558 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1559 sub3node->SetLineColor(kColorITS);
1560 sub3node->SetVisibility(0);
1563 // Place copy #1 of I101 in I107
1565 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1566 sub4node->SetLineColor(kColorITS);
1567 sub4node->SetVisibility(0);
1570 // Place copy #1 of ITS1 in I101
1572 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1573 sub5node->SetLineColor(kColorITS);
1574 fNodes->Add(sub5node);
1576 fNodes->Add(sub4node);
1578 fNodes->Add(sub3node);
1581 // Place copy #2 of I107 in I10B
1583 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1584 sub3node->SetLineColor(kColorITS);
1585 sub3node->SetVisibility(0);
1588 // Place copy #1 of I101 in I107
1590 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1591 sub4node->SetLineColor(kColorITS);
1592 sub4node->SetVisibility(0);
1595 // Place copy #1 of ITS1 in I101
1597 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1598 sub5node->SetLineColor(kColorITS);
1599 fNodes->Add(sub5node);
1601 fNodes->Add(sub4node);
1603 fNodes->Add(sub3node);
1606 // Place copy #3 of I107 in I10B
1608 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1609 sub3node->SetLineColor(kColorITS);
1610 sub3node->SetVisibility(0);
1613 // Place copy #1 of I101 in I107
1615 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1616 sub4node->SetLineColor(kColorITS);
1617 sub4node->SetVisibility(0);
1620 // Place copy #1 of ITS1 in I101
1622 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1623 sub5node->SetLineColor(kColorITS);
1624 fNodes->Add(sub5node);
1626 fNodes->Add(sub4node);
1628 fNodes->Add(sub3node);
1631 // Place copy #4 of I107 in I10B
1633 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1634 sub3node->SetLineColor(kColorITS);
1635 sub3node->SetVisibility(0);
1638 // Place copy #1 of I101 in I107
1640 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1641 sub4node->SetLineColor(kColorITS);
1642 sub4node->SetVisibility(0);
1645 // Place copy #1 of ITS1 in I101
1647 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1648 sub5node->SetLineColor(kColorITS);
1649 fNodes->Add(sub5node);
1651 fNodes->Add(sub4node);
1653 fNodes->Add(sub3node);
1655 fNodes->Add(sub2node);
1658 // Place copy #2 of I10B in I12B
1660 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
1661 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
1662 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
1663 sub2node->SetLineColor(kColorITS);
1664 sub2node->SetVisibility(0);
1667 // Place copy #1 of I107 in I10B
1669 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1670 sub3node->SetLineColor(kColorITS);
1671 sub3node->SetVisibility(0);
1674 // Place copy #1 of I101 in I107
1676 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1677 sub4node->SetLineColor(kColorITS);
1678 sub4node->SetVisibility(0);
1681 // Place copy #1 of ITS1 in I101
1683 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1684 sub5node->SetLineColor(kColorITS);
1685 fNodes->Add(sub5node);
1687 fNodes->Add(sub4node);
1689 fNodes->Add(sub3node);
1692 // Place copy #2 of I107 in I10B
1694 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1695 sub3node->SetLineColor(kColorITS);
1696 sub3node->SetVisibility(0);
1699 // Place copy #1 of I101 in I107
1701 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1702 sub4node->SetLineColor(kColorITS);
1703 sub4node->SetVisibility(0);
1706 // Place copy #1 of ITS1 in I101
1708 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1709 sub5node->SetLineColor(kColorITS);
1710 fNodes->Add(sub5node);
1712 fNodes->Add(sub4node);
1714 fNodes->Add(sub3node);
1717 // Place copy #3 of I107 in I10B
1719 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1720 sub3node->SetLineColor(kColorITS);
1721 sub3node->SetVisibility(0);
1724 // Place copy #1 of I101 in I107
1726 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1727 sub4node->SetLineColor(kColorITS);
1728 sub4node->SetVisibility(0);
1731 // Place copy #1 of ITS1 in I101
1733 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1734 sub5node->SetLineColor(kColorITS);
1735 fNodes->Add(sub5node);
1737 fNodes->Add(sub4node);
1739 fNodes->Add(sub3node);
1742 // Place copy #4 of I107 in I10B
1744 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1745 sub3node->SetLineColor(kColorITS);
1746 sub3node->SetVisibility(0);
1749 // Place copy #1 of I101 in I107
1751 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1752 sub4node->SetLineColor(kColorITS);
1753 sub4node->SetVisibility(0);
1756 // Place copy #1 of ITS1 in I101
1758 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1759 sub5node->SetLineColor(kColorITS);
1760 fNodes->Add(sub5node);
1762 fNodes->Add(sub4node);
1764 fNodes->Add(sub3node);
1766 fNodes->Add(sub2node);
1769 // Place copy #1 of I20B in I12B
1771 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
1772 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1773 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1774 sub2node->SetLineColor(kColorITS);
1775 sub2node->SetVisibility(0);
1778 // Place copy #1 of I1D7 in I20B
1780 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1781 sub3node->SetLineColor(kColorITS);
1782 sub3node->SetVisibility(0);
1785 // Place copy #1 of I1D1 in I1D7
1787 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1788 sub4node->SetLineColor(kColorITS);
1789 sub4node->SetVisibility(0);
1792 // Place copy #1 of ITS2 in I1D1
1794 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1795 sub5node->SetLineColor(kColorITS);
1796 fNodes->Add(sub5node);
1798 fNodes->Add(sub4node);
1800 fNodes->Add(sub3node);
1803 // Place copy #2 of I1D7 in I20B
1805 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1806 sub3node->SetLineColor(kColorITS);
1807 sub3node->SetVisibility(0);
1810 // Place copy #1 of I1D1 in I1D7
1812 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1813 sub4node->SetLineColor(kColorITS);
1814 sub4node->SetVisibility(0);
1817 // Place copy #1 of ITS2 in I1D1
1819 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1820 sub5node->SetLineColor(kColorITS);
1821 fNodes->Add(sub5node);
1823 fNodes->Add(sub4node);
1825 fNodes->Add(sub3node);
1828 // Place copy #3 of I1D7 in I20B
1830 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1831 sub3node->SetLineColor(kColorITS);
1832 sub3node->SetVisibility(0);
1835 // Place copy #1 of I1D1 in I1D7
1837 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1838 sub4node->SetLineColor(kColorITS);
1839 sub4node->SetVisibility(0);
1842 // Place copy #1 of ITS2 in I1D1
1844 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1845 sub5node->SetLineColor(kColorITS);
1846 fNodes->Add(sub5node);
1848 fNodes->Add(sub4node);
1850 fNodes->Add(sub3node);
1853 // Place copy #4 of I1D7 in I20B
1855 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1856 sub3node->SetLineColor(kColorITS);
1857 sub3node->SetVisibility(0);
1860 // Place copy #1 of I1D1 in I1D7
1862 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1863 sub4node->SetLineColor(kColorITS);
1864 sub4node->SetVisibility(0);
1867 // Place copy #1 of ITS2 in I1D1
1869 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1870 sub5node->SetLineColor(kColorITS);
1871 fNodes->Add(sub5node);
1873 fNodes->Add(sub4node);
1875 fNodes->Add(sub3node);
1877 fNodes->Add(sub2node);
1880 // Place copy #2 of I20B in I12B
1882 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1883 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1884 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1885 sub2node->SetLineColor(kColorITS);
1886 sub2node->SetVisibility(0);
1889 // Place copy #1 of I1D7 in I20B
1891 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1892 sub3node->SetLineColor(kColorITS);
1893 sub3node->SetVisibility(0);
1896 // Place copy #1 of I1D1 in I1D7
1898 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1899 sub4node->SetLineColor(kColorITS);
1900 sub4node->SetVisibility(0);
1903 // Place copy #1 of ITS2 in I1D1
1905 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1906 sub5node->SetLineColor(kColorITS);
1907 fNodes->Add(sub5node);
1909 fNodes->Add(sub4node);
1911 fNodes->Add(sub3node);
1914 // Place copy #2 of I1D7 in I20B
1916 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1917 sub3node->SetLineColor(kColorITS);
1918 sub3node->SetVisibility(0);
1921 // Place copy #1 of I1D1 in I1D7
1923 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1924 sub4node->SetLineColor(kColorITS);
1925 sub4node->SetVisibility(0);
1928 // Place copy #1 of ITS2 in I1D1
1930 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1931 sub5node->SetLineColor(kColorITS);
1932 fNodes->Add(sub5node);
1934 fNodes->Add(sub4node);
1936 fNodes->Add(sub3node);
1939 // Place copy #3 of I1D7 in I20B
1941 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1942 sub3node->SetLineColor(kColorITS);
1943 sub3node->SetVisibility(0);
1946 // Place copy #1 of I1D1 in I1D7
1948 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1949 sub4node->SetLineColor(kColorITS);
1950 sub4node->SetVisibility(0);
1953 // Place copy #1 of ITS2 in I1D1
1955 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1956 sub5node->SetLineColor(kColorITS);
1957 fNodes->Add(sub5node);
1959 fNodes->Add(sub4node);
1961 fNodes->Add(sub3node);
1964 // Place copy #4 of I1D7 in I20B
1966 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1967 sub3node->SetLineColor(kColorITS);
1968 sub3node->SetVisibility(0);
1971 // Place copy #1 of I1D1 in I1D7
1973 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1974 sub4node->SetLineColor(kColorITS);
1975 sub4node->SetVisibility(0);
1978 // Place copy #1 of ITS2 in I1D1
1980 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1981 sub5node->SetLineColor(kColorITS);
1982 fNodes->Add(sub5node);
1984 fNodes->Add(sub4node);
1986 fNodes->Add(sub3node);
1988 fNodes->Add(sub2node);
1991 // Place copy #3 of I20B in I12B
1993 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1994 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1995 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1996 sub2node->SetLineColor(kColorITS);
1997 sub2node->SetVisibility(0);
2000 // Place copy #1 of I1D7 in I20B
2002 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2003 sub3node->SetLineColor(kColorITS);
2004 sub3node->SetVisibility(0);
2007 // Place copy #1 of I1D1 in I1D7
2009 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2010 sub4node->SetLineColor(kColorITS);
2011 sub4node->SetVisibility(0);
2014 // Place copy #1 of ITS2 in I1D1
2016 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2017 sub5node->SetLineColor(kColorITS);
2018 fNodes->Add(sub5node);
2020 fNodes->Add(sub4node);
2022 fNodes->Add(sub3node);
2025 // Place copy #2 of I1D7 in I20B
2027 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2028 sub3node->SetLineColor(kColorITS);
2029 sub3node->SetVisibility(0);
2032 // Place copy #1 of I1D1 in I1D7
2034 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2035 sub4node->SetLineColor(kColorITS);
2036 sub4node->SetVisibility(0);
2039 // Place copy #1 of ITS2 in I1D1
2041 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2042 sub5node->SetLineColor(kColorITS);
2043 fNodes->Add(sub5node);
2045 fNodes->Add(sub4node);
2047 fNodes->Add(sub3node);
2050 // Place copy #3 of I1D7 in I20B
2052 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2053 sub3node->SetLineColor(kColorITS);
2054 sub3node->SetVisibility(0);
2057 // Place copy #1 of I1D1 in I1D7
2059 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2060 sub4node->SetLineColor(kColorITS);
2061 sub4node->SetVisibility(0);
2064 // Place copy #1 of ITS2 in I1D1
2066 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2067 sub5node->SetLineColor(kColorITS);
2068 fNodes->Add(sub5node);
2070 fNodes->Add(sub4node);
2072 fNodes->Add(sub3node);
2075 // Place copy #4 of I1D7 in I20B
2077 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2078 sub3node->SetLineColor(kColorITS);
2079 sub3node->SetVisibility(0);
2082 // Place copy #1 of I1D1 in I1D7
2084 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2085 sub4node->SetLineColor(kColorITS);
2086 sub4node->SetVisibility(0);
2089 // Place copy #1 of ITS2 in I1D1
2091 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2092 sub5node->SetLineColor(kColorITS);
2093 fNodes->Add(sub5node);
2095 fNodes->Add(sub4node);
2097 fNodes->Add(sub3node);
2099 fNodes->Add(sub2node);
2102 // Place copy #4 of I20B in I12B
2104 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
2105 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2106 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2107 sub2node->SetLineColor(kColorITS);
2108 sub2node->SetVisibility(0);
2111 // Place copy #1 of I1D7 in I20B
2113 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2114 sub3node->SetLineColor(kColorITS);
2115 sub3node->SetVisibility(0);
2118 // Place copy #1 of I1D1 in I1D7
2120 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2121 sub4node->SetLineColor(kColorITS);
2122 sub4node->SetVisibility(0);
2125 // Place copy #1 of ITS2 in I1D1
2127 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2128 sub5node->SetLineColor(kColorITS);
2129 fNodes->Add(sub5node);
2131 fNodes->Add(sub4node);
2133 fNodes->Add(sub3node);
2136 // Place copy #2 of I1D7 in I20B
2138 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2139 sub3node->SetLineColor(kColorITS);
2140 sub3node->SetVisibility(0);
2143 // Place copy #1 of I1D1 in I1D7
2145 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2146 sub4node->SetLineColor(kColorITS);
2147 sub4node->SetVisibility(0);
2150 // Place copy #1 of ITS2 in I1D1
2152 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2153 sub5node->SetLineColor(kColorITS);
2154 fNodes->Add(sub5node);
2156 fNodes->Add(sub4node);
2158 fNodes->Add(sub3node);
2161 // Place copy #3 of I1D7 in I20B
2163 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2164 sub3node->SetLineColor(kColorITS);
2165 sub3node->SetVisibility(0);
2168 // Place copy #1 of I1D1 in I1D7
2170 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2171 sub4node->SetLineColor(kColorITS);
2172 sub4node->SetVisibility(0);
2175 // Place copy #1 of ITS2 in I1D1
2177 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2178 sub5node->SetLineColor(kColorITS);
2179 fNodes->Add(sub5node);
2181 fNodes->Add(sub4node);
2183 fNodes->Add(sub3node);
2186 // Place copy #4 of I1D7 in I20B
2188 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2189 sub3node->SetLineColor(kColorITS);
2190 sub3node->SetVisibility(0);
2193 // Place copy #1 of I1D1 in I1D7
2195 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2196 sub4node->SetLineColor(kColorITS);
2197 sub4node->SetVisibility(0);
2200 // Place copy #1 of ITS2 in I1D1
2202 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2203 sub5node->SetLineColor(kColorITS);
2204 fNodes->Add(sub5node);
2206 fNodes->Add(sub4node);
2208 fNodes->Add(sub3node);
2210 fNodes->Add(sub2node);
2212 fNodes->Add(sub1node);
2215 // Place copy #3 of I12B in IT12
2217 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
2218 sub1node->SetLineColor(kColorITS);
2219 sub1node->SetVisibility(0);
2222 // Place copy #1 of I10B in I12B
2224 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2225 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2226 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2227 sub2node->SetLineColor(kColorITS);
2228 sub2node->SetVisibility(0);
2231 // Place copy #1 of I107 in I10B
2233 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2234 sub3node->SetLineColor(kColorITS);
2235 sub3node->SetVisibility(0);
2238 // Place copy #1 of I101 in I107
2240 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2241 sub4node->SetLineColor(kColorITS);
2242 sub4node->SetVisibility(0);
2245 // Place copy #1 of ITS1 in I101
2247 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2248 sub5node->SetLineColor(kColorITS);
2249 fNodes->Add(sub5node);
2251 fNodes->Add(sub4node);
2253 fNodes->Add(sub3node);
2256 // Place copy #2 of I107 in I10B
2258 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2259 sub3node->SetLineColor(kColorITS);
2260 sub3node->SetVisibility(0);
2263 // Place copy #1 of I101 in I107
2265 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2266 sub4node->SetLineColor(kColorITS);
2267 sub4node->SetVisibility(0);
2270 // Place copy #1 of ITS1 in I101
2272 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2273 sub5node->SetLineColor(kColorITS);
2274 fNodes->Add(sub5node);
2276 fNodes->Add(sub4node);
2278 fNodes->Add(sub3node);
2281 // Place copy #3 of I107 in I10B
2283 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2284 sub3node->SetLineColor(kColorITS);
2285 sub3node->SetVisibility(0);
2288 // Place copy #1 of I101 in I107
2290 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2291 sub4node->SetLineColor(kColorITS);
2292 sub4node->SetVisibility(0);
2295 // Place copy #1 of ITS1 in I101
2297 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2298 sub5node->SetLineColor(kColorITS);
2299 fNodes->Add(sub5node);
2301 fNodes->Add(sub4node);
2303 fNodes->Add(sub3node);
2306 // Place copy #4 of I107 in I10B
2308 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2309 sub3node->SetLineColor(kColorITS);
2310 sub3node->SetVisibility(0);
2313 // Place copy #1 of I101 in I107
2315 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2316 sub4node->SetLineColor(kColorITS);
2317 sub4node->SetVisibility(0);
2320 // Place copy #1 of ITS1 in I101
2322 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2323 sub5node->SetLineColor(kColorITS);
2324 fNodes->Add(sub5node);
2326 fNodes->Add(sub4node);
2328 fNodes->Add(sub3node);
2330 fNodes->Add(sub2node);
2333 // Place copy #2 of I10B in I12B
2335 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2336 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2337 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2338 sub2node->SetLineColor(kColorITS);
2339 sub2node->SetVisibility(0);
2342 // Place copy #1 of I107 in I10B
2344 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2345 sub3node->SetLineColor(kColorITS);
2346 sub3node->SetVisibility(0);
2349 // Place copy #1 of I101 in I107
2351 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2352 sub4node->SetLineColor(kColorITS);
2353 sub4node->SetVisibility(0);
2356 // Place copy #1 of ITS1 in I101
2358 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2359 sub5node->SetLineColor(kColorITS);
2360 fNodes->Add(sub5node);
2362 fNodes->Add(sub4node);
2364 fNodes->Add(sub3node);
2367 // Place copy #2 of I107 in I10B
2369 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2370 sub3node->SetLineColor(kColorITS);
2371 sub3node->SetVisibility(0);
2374 // Place copy #1 of I101 in I107
2376 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2377 sub4node->SetLineColor(kColorITS);
2378 sub4node->SetVisibility(0);
2381 // Place copy #1 of ITS1 in I101
2383 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2384 sub5node->SetLineColor(kColorITS);
2385 fNodes->Add(sub5node);
2387 fNodes->Add(sub4node);
2389 fNodes->Add(sub3node);
2392 // Place copy #3 of I107 in I10B
2394 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2395 sub3node->SetLineColor(kColorITS);
2396 sub3node->SetVisibility(0);
2399 // Place copy #1 of I101 in I107
2401 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2402 sub4node->SetLineColor(kColorITS);
2403 sub4node->SetVisibility(0);
2406 // Place copy #1 of ITS1 in I101
2408 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2409 sub5node->SetLineColor(kColorITS);
2410 fNodes->Add(sub5node);
2412 fNodes->Add(sub4node);
2414 fNodes->Add(sub3node);
2417 // Place copy #4 of I107 in I10B
2419 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2420 sub3node->SetLineColor(kColorITS);
2421 sub3node->SetVisibility(0);
2424 // Place copy #1 of I101 in I107
2426 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2427 sub4node->SetLineColor(kColorITS);
2428 sub4node->SetVisibility(0);
2431 // Place copy #1 of ITS1 in I101
2433 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2434 sub5node->SetLineColor(kColorITS);
2435 fNodes->Add(sub5node);
2437 fNodes->Add(sub4node);
2439 fNodes->Add(sub3node);
2441 fNodes->Add(sub2node);
2444 // Place copy #1 of I20B in I12B
2446 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2447 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2448 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2449 sub2node->SetLineColor(kColorITS);
2450 sub2node->SetVisibility(0);
2453 // Place copy #1 of I1D7 in I20B
2455 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2456 sub3node->SetLineColor(kColorITS);
2457 sub3node->SetVisibility(0);
2460 // Place copy #1 of I1D1 in I1D7
2462 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2463 sub4node->SetLineColor(kColorITS);
2464 sub4node->SetVisibility(0);
2467 // Place copy #1 of ITS2 in I1D1
2469 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2470 sub5node->SetLineColor(kColorITS);
2471 fNodes->Add(sub5node);
2473 fNodes->Add(sub4node);
2475 fNodes->Add(sub3node);
2478 // Place copy #2 of I1D7 in I20B
2480 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2481 sub3node->SetLineColor(kColorITS);
2482 sub3node->SetVisibility(0);
2485 // Place copy #1 of I1D1 in I1D7
2487 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2488 sub4node->SetLineColor(kColorITS);
2489 sub4node->SetVisibility(0);
2492 // Place copy #1 of ITS2 in I1D1
2494 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2495 sub5node->SetLineColor(kColorITS);
2496 fNodes->Add(sub5node);
2498 fNodes->Add(sub4node);
2500 fNodes->Add(sub3node);
2503 // Place copy #3 of I1D7 in I20B
2505 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2506 sub3node->SetLineColor(kColorITS);
2507 sub3node->SetVisibility(0);
2510 // Place copy #1 of I1D1 in I1D7
2512 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2513 sub4node->SetLineColor(kColorITS);
2514 sub4node->SetVisibility(0);
2517 // Place copy #1 of ITS2 in I1D1
2519 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2520 sub5node->SetLineColor(kColorITS);
2521 fNodes->Add(sub5node);
2523 fNodes->Add(sub4node);
2525 fNodes->Add(sub3node);
2528 // Place copy #4 of I1D7 in I20B
2530 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2531 sub3node->SetLineColor(kColorITS);
2532 sub3node->SetVisibility(0);
2535 // Place copy #1 of I1D1 in I1D7
2537 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2538 sub4node->SetLineColor(kColorITS);
2539 sub4node->SetVisibility(0);
2542 // Place copy #1 of ITS2 in I1D1
2544 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2545 sub5node->SetLineColor(kColorITS);
2546 fNodes->Add(sub5node);
2548 fNodes->Add(sub4node);
2550 fNodes->Add(sub3node);
2552 fNodes->Add(sub2node);
2555 // Place copy #2 of I20B in I12B
2557 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
2558 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
2559 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
2560 sub2node->SetLineColor(kColorITS);
2561 sub2node->SetVisibility(0);
2564 // Place copy #1 of I1D7 in I20B
2566 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2567 sub3node->SetLineColor(kColorITS);
2568 sub3node->SetVisibility(0);
2571 // Place copy #1 of I1D1 in I1D7
2573 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2574 sub4node->SetLineColor(kColorITS);
2575 sub4node->SetVisibility(0);
2578 // Place copy #1 of ITS2 in I1D1
2580 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2581 sub5node->SetLineColor(kColorITS);
2582 fNodes->Add(sub5node);
2584 fNodes->Add(sub4node);
2586 fNodes->Add(sub3node);
2589 // Place copy #2 of I1D7 in I20B
2591 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2592 sub3node->SetLineColor(kColorITS);
2593 sub3node->SetVisibility(0);
2596 // Place copy #1 of I1D1 in I1D7
2598 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2599 sub4node->SetLineColor(kColorITS);
2600 sub4node->SetVisibility(0);
2603 // Place copy #1 of ITS2 in I1D1
2605 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2606 sub5node->SetLineColor(kColorITS);
2607 fNodes->Add(sub5node);
2609 fNodes->Add(sub4node);
2611 fNodes->Add(sub3node);
2614 // Place copy #3 of I1D7 in I20B
2616 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2617 sub3node->SetLineColor(kColorITS);
2618 sub3node->SetVisibility(0);
2621 // Place copy #1 of I1D1 in I1D7
2623 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2624 sub4node->SetLineColor(kColorITS);
2625 sub4node->SetVisibility(0);
2628 // Place copy #1 of ITS2 in I1D1
2630 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2631 sub5node->SetLineColor(kColorITS);
2632 fNodes->Add(sub5node);
2634 fNodes->Add(sub4node);
2636 fNodes->Add(sub3node);
2639 // Place copy #4 of I1D7 in I20B
2641 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2642 sub3node->SetLineColor(kColorITS);
2643 sub3node->SetVisibility(0);
2646 // Place copy #1 of I1D1 in I1D7
2648 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2649 sub4node->SetLineColor(kColorITS);
2650 sub4node->SetVisibility(0);
2653 // Place copy #1 of ITS2 in I1D1
2655 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2656 sub5node->SetLineColor(kColorITS);
2657 fNodes->Add(sub5node);
2659 fNodes->Add(sub4node);
2661 fNodes->Add(sub3node);
2663 fNodes->Add(sub2node);
2666 // Place copy #3 of I20B in I12B
2668 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
2669 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
2670 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
2671 sub2node->SetLineColor(kColorITS);
2672 sub2node->SetVisibility(0);
2675 // Place copy #1 of I1D7 in I20B
2677 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2678 sub3node->SetLineColor(kColorITS);
2679 sub3node->SetVisibility(0);
2682 // Place copy #1 of I1D1 in I1D7
2684 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2685 sub4node->SetLineColor(kColorITS);
2686 sub4node->SetVisibility(0);
2689 // Place copy #1 of ITS2 in I1D1
2691 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2692 sub5node->SetLineColor(kColorITS);
2693 fNodes->Add(sub5node);
2695 fNodes->Add(sub4node);
2697 fNodes->Add(sub3node);
2700 // Place copy #2 of I1D7 in I20B
2702 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2703 sub3node->SetLineColor(kColorITS);
2704 sub3node->SetVisibility(0);
2707 // Place copy #1 of I1D1 in I1D7
2709 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2710 sub4node->SetLineColor(kColorITS);
2711 sub4node->SetVisibility(0);
2714 // Place copy #1 of ITS2 in I1D1
2716 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2717 sub5node->SetLineColor(kColorITS);
2718 fNodes->Add(sub5node);
2720 fNodes->Add(sub4node);
2722 fNodes->Add(sub3node);
2725 // Place copy #3 of I1D7 in I20B
2727 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2728 sub3node->SetLineColor(kColorITS);
2729 sub3node->SetVisibility(0);
2732 // Place copy #1 of I1D1 in I1D7
2734 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2735 sub4node->SetLineColor(kColorITS);
2736 sub4node->SetVisibility(0);
2739 // Place copy #1 of ITS2 in I1D1
2741 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2742 sub5node->SetLineColor(kColorITS);
2743 fNodes->Add(sub5node);
2745 fNodes->Add(sub4node);
2747 fNodes->Add(sub3node);
2750 // Place copy #4 of I1D7 in I20B
2752 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2753 sub3node->SetLineColor(kColorITS);
2754 sub3node->SetVisibility(0);
2757 // Place copy #1 of I1D1 in I1D7
2759 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2760 sub4node->SetLineColor(kColorITS);
2761 sub4node->SetVisibility(0);
2764 // Place copy #1 of ITS2 in I1D1
2766 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2767 sub5node->SetLineColor(kColorITS);
2768 fNodes->Add(sub5node);
2770 fNodes->Add(sub4node);
2772 fNodes->Add(sub3node);
2774 fNodes->Add(sub2node);
2777 // Place copy #4 of I20B in I12B
2779 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
2780 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2781 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2782 sub2node->SetLineColor(kColorITS);
2783 sub2node->SetVisibility(0);
2786 // Place copy #1 of I1D7 in I20B
2788 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2789 sub3node->SetLineColor(kColorITS);
2790 sub3node->SetVisibility(0);
2793 // Place copy #1 of I1D1 in I1D7
2795 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2796 sub4node->SetLineColor(kColorITS);
2797 sub4node->SetVisibility(0);
2800 // Place copy #1 of ITS2 in I1D1
2802 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2803 sub5node->SetLineColor(kColorITS);
2804 fNodes->Add(sub5node);
2806 fNodes->Add(sub4node);
2808 fNodes->Add(sub3node);
2811 // Place copy #2 of I1D7 in I20B
2813 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2814 sub3node->SetLineColor(kColorITS);
2815 sub3node->SetVisibility(0);
2818 // Place copy #1 of I1D1 in I1D7
2820 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2821 sub4node->SetLineColor(kColorITS);
2822 sub4node->SetVisibility(0);
2825 // Place copy #1 of ITS2 in I1D1
2827 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2828 sub5node->SetLineColor(kColorITS);
2829 fNodes->Add(sub5node);
2831 fNodes->Add(sub4node);
2833 fNodes->Add(sub3node);
2836 // Place copy #3 of I1D7 in I20B
2838 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2839 sub3node->SetLineColor(kColorITS);
2840 sub3node->SetVisibility(0);
2843 // Place copy #1 of I1D1 in I1D7
2845 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2846 sub4node->SetLineColor(kColorITS);
2847 sub4node->SetVisibility(0);
2850 // Place copy #1 of ITS2 in I1D1
2852 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2853 sub5node->SetLineColor(kColorITS);
2854 fNodes->Add(sub5node);
2856 fNodes->Add(sub4node);
2858 fNodes->Add(sub3node);
2861 // Place copy #4 of I1D7 in I20B
2863 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2864 sub3node->SetLineColor(kColorITS);
2865 sub3node->SetVisibility(0);
2868 // Place copy #1 of I1D1 in I1D7
2870 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2871 sub4node->SetLineColor(kColorITS);
2872 sub4node->SetVisibility(0);
2875 // Place copy #1 of ITS2 in I1D1
2877 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2878 sub5node->SetLineColor(kColorITS);
2879 fNodes->Add(sub5node);
2881 fNodes->Add(sub4node);
2883 fNodes->Add(sub3node);
2885 fNodes->Add(sub2node);
2887 fNodes->Add(sub1node);
2890 // Place copy #4 of I12B in IT12
2892 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
2893 sub1node->SetLineColor(kColorITS);
2894 sub1node->SetVisibility(0);
2897 // Place copy #1 of I10B in I12B
2899 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2900 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2901 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2902 sub2node->SetLineColor(kColorITS);
2903 sub2node->SetVisibility(0);
2906 // Place copy #1 of I107 in I10B
2908 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2909 sub3node->SetLineColor(kColorITS);
2910 sub3node->SetVisibility(0);
2913 // Place copy #1 of I101 in I107
2915 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2916 sub4node->SetLineColor(kColorITS);
2917 sub4node->SetVisibility(0);
2920 // Place copy #1 of ITS1 in I101
2922 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2923 sub5node->SetLineColor(kColorITS);
2924 fNodes->Add(sub5node);
2926 fNodes->Add(sub4node);
2928 fNodes->Add(sub3node);
2931 // Place copy #2 of I107 in I10B
2933 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2934 sub3node->SetLineColor(kColorITS);
2935 sub3node->SetVisibility(0);
2938 // Place copy #1 of I101 in I107
2940 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2941 sub4node->SetLineColor(kColorITS);
2942 sub4node->SetVisibility(0);
2945 // Place copy #1 of ITS1 in I101
2947 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2948 sub5node->SetLineColor(kColorITS);
2949 fNodes->Add(sub5node);
2951 fNodes->Add(sub4node);
2953 fNodes->Add(sub3node);
2956 // Place copy #3 of I107 in I10B
2958 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2959 sub3node->SetLineColor(kColorITS);
2960 sub3node->SetVisibility(0);
2963 // Place copy #1 of I101 in I107
2965 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2966 sub4node->SetLineColor(kColorITS);
2967 sub4node->SetVisibility(0);
2970 // Place copy #1 of ITS1 in I101
2972 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2973 sub5node->SetLineColor(kColorITS);
2974 fNodes->Add(sub5node);
2976 fNodes->Add(sub4node);
2978 fNodes->Add(sub3node);
2981 // Place copy #4 of I107 in I10B
2983 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2984 sub3node->SetLineColor(kColorITS);
2985 sub3node->SetVisibility(0);
2988 // Place copy #1 of I101 in I107
2990 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2991 sub4node->SetLineColor(kColorITS);
2992 sub4node->SetVisibility(0);
2995 // Place copy #1 of ITS1 in I101
2997 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2998 sub5node->SetLineColor(kColorITS);
2999 fNodes->Add(sub5node);
3001 fNodes->Add(sub4node);
3003 fNodes->Add(sub3node);
3005 fNodes->Add(sub2node);
3008 // Place copy #2 of I10B in I12B
3010 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
3011 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
3012 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
3013 sub2node->SetLineColor(kColorITS);
3014 sub2node->SetVisibility(0);
3017 // Place copy #1 of I107 in I10B
3019 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
3020 sub3node->SetLineColor(kColorITS);
3021 sub3node->SetVisibility(0);
3024 // Place copy #1 of I101 in I107
3026 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
3027 sub4node->SetLineColor(kColorITS);
3028 sub4node->SetVisibility(0);
3031 // Place copy #1 of ITS1 in I101
3033 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
3034 sub5node->SetLineColor(kColorITS);
3035 fNodes->Add(sub5node);
3037 fNodes->Add(sub4node);
3039 fNodes->Add(sub3node);
3042 // Place copy #2 of I107 in I10B
3044 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
3045 sub3node->SetLineColor(kColorITS);
3046 sub3node->SetVisibility(0);
3049 // Place copy #1 of I101 in I107
3051 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
3052 sub4node->SetLineColor(kColorITS);
3053 sub4node->SetVisibility(0);
3056 // Place copy #1 of ITS1 in I101
3058 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
3059 sub5node->SetLineColor(kColorITS);
3060 fNodes->Add(sub5node);
3062 fNodes->Add(sub4node);
3064 fNodes->Add(sub3node);
3067 // Place copy #3 of I107 in I10B
3069 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
3070 sub3node->SetLineColor(kColorITS);
3071 sub3node->SetVisibility(0);
3074 // Place copy #1 of I101 in I107
3076 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
3077 sub4node->SetLineColor(kColorITS);
3078 sub4node->SetVisibility(0);
3081 // Place copy #1 of ITS1 in I101
3083 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
3084 sub5node->SetLineColor(kColorITS);
3085 fNodes->Add(sub5node);
3087 fNodes->Add(sub4node);
3089 fNodes->Add(sub3node);
3092 // Place copy #4 of I107 in I10B
3094 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
3095 sub3node->SetLineColor(kColorITS);
3096 sub3node->SetVisibility(0);
3099 // Place copy #1 of I101 in I107
3101 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
3102 sub4node->SetLineColor(kColorITS);
3103 sub4node->SetVisibility(0);
3106 // Place copy #1 of ITS1 in I101
3108 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
3109 sub5node->SetLineColor(kColorITS);
3110 fNodes->Add(sub5node);
3112 fNodes->Add(sub4node);
3114 fNodes->Add(sub3node);
3116 fNodes->Add(sub2node);
3119 // Place copy #1 of I20B in I12B
3121 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
3122 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
3123 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
3124 sub2node->SetLineColor(kColorITS);
3125 sub2node->SetVisibility(0);
3128 // Place copy #1 of I1D7 in I20B
3130 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3131 sub3node->SetLineColor(kColorITS);
3132 sub3node->SetVisibility(0);
3135 // Place copy #1 of I1D1 in I1D7
3137 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3138 sub4node->SetLineColor(kColorITS);
3139 sub4node->SetVisibility(0);
3142 // Place copy #1 of ITS2 in I1D1
3144 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3145 sub5node->SetLineColor(kColorITS);
3146 fNodes->Add(sub5node);
3148 fNodes->Add(sub4node);
3150 fNodes->Add(sub3node);
3153 // Place copy #2 of I1D7 in I20B
3155 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3156 sub3node->SetLineColor(kColorITS);
3157 sub3node->SetVisibility(0);
3160 // Place copy #1 of I1D1 in I1D7
3162 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3163 sub4node->SetLineColor(kColorITS);
3164 sub4node->SetVisibility(0);
3167 // Place copy #1 of ITS2 in I1D1
3169 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3170 sub5node->SetLineColor(kColorITS);
3171 fNodes->Add(sub5node);
3173 fNodes->Add(sub4node);
3175 fNodes->Add(sub3node);
3178 // Place copy #3 of I1D7 in I20B
3180 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3181 sub3node->SetLineColor(kColorITS);
3182 sub3node->SetVisibility(0);
3185 // Place copy #1 of I1D1 in I1D7
3187 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3188 sub4node->SetLineColor(kColorITS);
3189 sub4node->SetVisibility(0);
3192 // Place copy #1 of ITS2 in I1D1
3194 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3195 sub5node->SetLineColor(kColorITS);
3196 fNodes->Add(sub5node);
3198 fNodes->Add(sub4node);
3200 fNodes->Add(sub3node);
3203 // Place copy #4 of I1D7 in I20B
3205 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3206 sub3node->SetLineColor(kColorITS);
3207 sub3node->SetVisibility(0);
3210 // Place copy #1 of I1D1 in I1D7
3212 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3213 sub4node->SetLineColor(kColorITS);
3214 sub4node->SetVisibility(0);
3217 // Place copy #1 of ITS2 in I1D1
3219 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3220 sub5node->SetLineColor(kColorITS);
3221 fNodes->Add(sub5node);
3223 fNodes->Add(sub4node);
3225 fNodes->Add(sub3node);
3227 fNodes->Add(sub2node);
3230 // Place copy #2 of I20B in I12B
3232 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
3233 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
3234 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
3235 sub2node->SetLineColor(kColorITS);
3236 sub2node->SetVisibility(0);
3239 // Place copy #1 of I1D7 in I20B
3241 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3242 sub3node->SetLineColor(kColorITS);
3243 sub3node->SetVisibility(0);
3246 // Place copy #1 of I1D1 in I1D7
3248 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3249 sub4node->SetLineColor(kColorITS);
3250 sub4node->SetVisibility(0);
3253 // Place copy #1 of ITS2 in I1D1
3255 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3256 sub5node->SetLineColor(kColorITS);
3257 fNodes->Add(sub5node);
3259 fNodes->Add(sub4node);
3261 fNodes->Add(sub3node);
3264 // Place copy #2 of I1D7 in I20B
3266 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3267 sub3node->SetLineColor(kColorITS);
3268 sub3node->SetVisibility(0);
3271 // Place copy #1 of I1D1 in I1D7
3273 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3274 sub4node->SetLineColor(kColorITS);
3275 sub4node->SetVisibility(0);
3278 // Place copy #1 of ITS2 in I1D1
3280 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3281 sub5node->SetLineColor(kColorITS);
3282 fNodes->Add(sub5node);
3284 fNodes->Add(sub4node);
3286 fNodes->Add(sub3node);
3289 // Place copy #3 of I1D7 in I20B
3291 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3292 sub3node->SetLineColor(kColorITS);
3293 sub3node->SetVisibility(0);
3296 // Place copy #1 of I1D1 in I1D7
3298 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3299 sub4node->SetLineColor(kColorITS);
3300 sub4node->SetVisibility(0);
3303 // Place copy #1 of ITS2 in I1D1
3305 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3306 sub5node->SetLineColor(kColorITS);
3307 fNodes->Add(sub5node);
3309 fNodes->Add(sub4node);
3311 fNodes->Add(sub3node);
3314 // Place copy #4 of I1D7 in I20B
3316 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3317 sub3node->SetLineColor(kColorITS);
3318 sub3node->SetVisibility(0);
3321 // Place copy #1 of I1D1 in I1D7
3323 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3324 sub4node->SetLineColor(kColorITS);
3325 sub4node->SetVisibility(0);
3328 // Place copy #1 of ITS2 in I1D1
3330 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3331 sub5node->SetLineColor(kColorITS);
3332 fNodes->Add(sub5node);
3334 fNodes->Add(sub4node);
3336 fNodes->Add(sub3node);
3338 fNodes->Add(sub2node);
3341 // Place copy #3 of I20B in I12B
3343 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
3344 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
3345 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
3346 sub2node->SetLineColor(kColorITS);
3347 sub2node->SetVisibility(0);
3350 // Place copy #1 of I1D7 in I20B
3352 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
3353 sub3node->SetLineColor(kColorITS);
3354 sub3node->SetVisibility(0);
3357 // Place copy #1 of I1D1 in I1D7
3359 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3360 sub4node->SetLineColor(kColorITS);
3361 sub4node->SetVisibility(0);
3364 // Place copy #1 of ITS2 in I1D1
3366 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3367 sub5node->SetLineColor(kColorITS);
3368 fNodes->Add(sub5node);
3370 fNodes->Add(sub4node);
3372 fNodes->Add(sub3node);
3375 // Place copy #2 of I1D7 in I20B
3377 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
3378 sub3node->SetLineColor(kColorITS);
3379 sub3node->SetVisibility(0);
3382 // Place copy #1 of I1D1 in I1D7
3384 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3385 sub4node->SetLineColor(kColorITS);
3386 sub4node->SetVisibility(0);
3389 // Place copy #1 of ITS2 in I1D1
3391 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3392 sub5node->SetLineColor(kColorITS);
3393 fNodes->Add(sub5node);
3395 fNodes->Add(sub4node);
3397 fNodes->Add(sub3node);
3400 // Place copy #3 of I1D7 in I20B
3402 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
3403 sub3node->SetLineColor(kColorITS);
3404 sub3node->SetVisibility(0);
3407 // Place copy #1 of I1D1 in I1D7
3409 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3410 sub4node->SetLineColor(kColorITS);
3411 sub4node->SetVisibility(0);
3414 // Place copy #1 of ITS2 in I1D1
3416 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3417 sub5node->SetLineColor(kColorITS);
3418 fNodes->Add(sub5node);
3420 fNodes->Add(sub4node);
3422 fNodes->Add(sub3node);
3425 // Place copy #4 of I1D7 in I20B
3427 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
3428 sub3node->SetLineColor(kColorITS);
3429 sub3node->SetVisibility(0);
3432 // Place copy #1 of I1D1 in I1D7
3434 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
3435 sub4node->SetLineColor(kColorITS);
3436 sub4node->SetVisibility(0);
3439 // Place copy #1 of ITS2 in I1D1
3441 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
3442 sub5node->SetLineColor(kColorITS);
3443 fNodes->Add(sub5node);
3445 fNodes->Add(sub4node);
3447 fNodes->Add(sub3node);
3449 fNodes->Add(sub2node);