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.2 2002/10/02 17:56:37 barbera
19 Bug in copy 37 of volume I570 corrected (thanks to J. Belikov)
21 Revision 1.1 2002/09/16 14:45:31 barbera
22 Updated detailed geometry needed by FMD people for some studies
27 ///////////////////////////////////////////////////////////////////////////////
29 // Inner Traking System version PPR asymmetric for the FMD //
30 // This class contains the base procedures for the Inner Tracking System //
32 // Authors: R. Barbera //
34 // Created January 15 2001. //
36 // NOTE: THIS IS THE ASYMMETRIC PPR geometry of the ITS for the PMD. //
38 ///////////////////////////////////////////////////////////////////////////////
40 // See AliITSvPPRasymmFMD::StepManager().
46 #include <TGeometry.h>
51 #include <TFile.h> // only required for Tracking function?
53 #include <TObjArray.h>
54 #include <TLorentzVector.h>
55 #include <TObjString.h>
56 #include <TClonesArray.h>
64 #include "AliGeant3.h"
65 #include "AliITSGeant3Geometry.h"
66 #include "AliTrackReference.h"
67 #include "AliITShit.h"
69 #include "AliITSvPPRasymmFMD.h"
70 #include "AliITSgeom.h"
71 #include "AliITSgeomSPD.h"
72 #include "AliITSgeomSDD.h"
73 #include "AliITSgeomSSD.h"
74 #include "AliITSDetType.h"
75 #include "AliITSresponseSPD.h"
76 #include "AliITSresponseSDD.h"
77 #include "AliITSresponseSSD.h"
78 #include "AliITSsegmentationSPD.h"
79 #include "AliITSsegmentationSDD.h"
80 #include "AliITSsegmentationSSD.h"
81 #include "AliITSsimulationSPD.h"
82 #include "AliITSsimulationSDD.h"
83 #include "AliITSsimulationSSD.h"
84 #include "AliITSClusterFinderSPD.h"
85 #include "AliITSClusterFinderSDD.h"
86 #include "AliITSClusterFinderSSD.h"
89 ClassImp(AliITSvPPRasymmFMD)
91 //_____________________________________________________________________________
92 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD() {
93 ////////////////////////////////////////////////////////////////////////
94 // Standard default constructor for the ITS version 8.
95 ////////////////////////////////////////////////////////////////////////
101 fEuclidOut = kFALSE; // Don't write Euclide file
102 fGeomDetOut = kFALSE; // Don't write .det file
103 fGeomDetIn = kFALSE; // Don't Read .det file
104 fMajorVersion = IsVersion();
106 for(i=0;i<60;i++) fRead[i] = '\0';
107 for(i=0;i<60;i++) fWrite[i] = '\0';
108 for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
110 //_____________________________________________________________________________
111 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const char *name, const char *title) : AliITS(name, title){
112 ////////////////////////////////////////////////////////////////////////
113 // Standard constructor for the ITS version 10.
114 ////////////////////////////////////////////////////////////////////////
118 fIdName = new TString[fIdN];
125 fIdSens = new Int_t[fIdN];
126 for(i=0;i<fIdN;i++) fIdSens[i] = 0;
127 fMajorVersion = IsVersion();
129 fEuclidOut = kFALSE; // Don't write Euclide file
130 fGeomDetOut = kFALSE; // Don't write .det file
131 fGeomDetIn = kFALSE; // Don't Read .det file
137 fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
138 strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
139 strncpy(fRead,fEuclidGeomDet,60);
140 strncpy(fWrite,fEuclidGeomDet,60);
142 //____________________________________________________________________________
143 AliITSvPPRasymmFMD::AliITSvPPRasymmFMD(const AliITSvPPRasymmFMD &source){
144 ////////////////////////////////////////////////////////////////////////
145 // Copy Constructor for ITS version 8.
146 ////////////////////////////////////////////////////////////////////////
147 if(&source == this) return;
148 Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymmFMD");
151 //_____________________________________________________________________________
152 AliITSvPPRasymmFMD& AliITSvPPRasymmFMD::operator=(const AliITSvPPRasymmFMD &source){
153 ////////////////////////////////////////////////////////////////////////
154 // Assignment operator for the ITS version 8.
155 ////////////////////////////////////////////////////////////////////////
156 if(&source == this) return *this;
157 Warning("= operator","Not allowed to copy AliITSvPPRasymmFMD");
160 //_____________________________________________________________________________
161 AliITSvPPRasymmFMD::~AliITSvPPRasymmFMD() {
162 ////////////////////////////////////////////////////////////////////////
163 // Standard destructor for the ITS version 8.
164 ////////////////////////////////////////////////////////////////////////
166 //__________________________________________________________________________
167 void AliITSvPPRasymmFMD::BuildGeometry(){
168 ////////////////////////////////////////////////////////////////////////
169 // Geometry builder for the ITS version 8.
170 ////////////////////////////////////////////////////////////////////////
173 const Int_t kColorITS=kYellow;
175 top = gAlice->GetGeometry()->GetNode("alice");
178 new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
180 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
181 node->SetLineColor(kColorITS);
184 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
186 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
187 node->SetLineColor(kColorITS);
190 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
192 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
193 node->SetLineColor(kColorITS);
196 new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
198 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
199 node->SetLineColor(kColorITS);
202 new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
204 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
205 node->SetLineColor(kColorITS);
208 new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
210 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
211 node->SetLineColor(kColorITS);
218 TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
220 // Define some variables for SPD
223 Float_t dits1[3], di101[3], di107[3], di10b[3]; // for layer 1
224 Float_t di103[3], di10a[3]; // for layer 1
225 Float_t dits2[3], di1d1[3], di1d7[3], di20b[3]; // for layer 2
226 Float_t di1d3[3], di20a[3]; // for layer 2
228 Float_t ddet1=200.; // total detector thickness on layer 1 (micron)
229 Float_t dchip1=200.; // total chip thickness on layer 1 (micron)
231 Float_t ddet2=200.; // total detector thickness on layer 2 (micron)
232 Float_t dchip2=200.; // total chip thickness on layer 2 (micron)
234 Float_t dbus=300.; // total bus thickness on both layers (micron)
236 ddet1 = GetThicknessDet1();
237 ddet2 = GetThicknessDet2();
238 dchip1 = GetThicknessChip1();
239 dchip2 = GetThicknessChip2();
241 cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl;
243 if(ddet1 < 100. || ddet1 > 300.) {
244 cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
245 " The default value of 200 microns will be used." << endl;
249 if(ddet2 < 100. || ddet2 > 300.) {
250 cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
251 " The default value of 200 microns will be used." << endl;
255 if(dchip1 < 100. || dchip1 > 300.) {
256 cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
257 " The default value of 200 microns will be used." << endl;
261 if(dchip2 < 100. || dchip2 > 300.) {
262 cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
263 " The default value of 200 microns will be used." << endl;
267 cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
268 cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
269 cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
270 cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
272 ddet1 = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
273 ddet2 = ddet2*0.0001/2.; // conversion from tot length in um to half in cm
274 dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm
275 dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm
276 dbus = dbus*0.0001/2.; // conversion from tot length in um to half in cm
278 Float_t deltax, deltay;
280 Int_t thickness = fMinorVersion/10;
281 Int_t option = fMinorVersion - 10*thickness;
284 // Define some variables for SDD
285 // SDD detector ladder
288 Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
289 Float_t Y_SDD_sep = 0.20;
290 Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
291 Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
299 new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
300 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
301 new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);
302 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );
303 new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
304 new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);
305 new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0);
306 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
307 new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);
308 new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
309 new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
310 new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
311 new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
312 new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
313 new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);
317 // SPD - option 'b' (this is the default)
321 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
322 new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
323 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
324 new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);
325 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
326 new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);
327 new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
328 new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);
329 new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);
330 new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
331 new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);
332 new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
333 new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
334 new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
335 new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
341 new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);
342 new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
343 new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);
344 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
345 new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);
346 new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
347 new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);
348 new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);
349 new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);
350 new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);
351 new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);
352 new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);
353 new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0);
354 new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);
355 new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0);
356 new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);
357 new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);
358 new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);
359 new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);
360 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
361 new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);
362 new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);
363 new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);
364 new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0);
365 new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);
366 new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);
367 new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);
368 new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);
369 new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);
370 new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);
371 new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);
372 new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);
373 new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);
374 new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);
375 new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0);
376 new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);
380 new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);
381 new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);
382 new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);
383 new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);
384 new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
385 new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
386 new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);
387 new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
388 new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
389 new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0);
390 new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0);
391 new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);
392 new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);
393 new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);
394 new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);
395 new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
396 new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
397 new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);
398 new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
399 new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
400 new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0);
401 new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);
402 new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);
403 new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);
404 new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);
405 new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
406 new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0);
407 new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0);
408 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
409 new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);
410 new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);
411 new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
412 new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);
413 new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
414 new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);
415 new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
416 new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
417 new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0);
418 new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);
419 new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);
420 new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);
421 new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);
422 new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
423 new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
424 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
425 new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);
426 new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);
427 new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);
428 new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);
429 new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
430 new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
431 new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);
432 new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
433 new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
434 new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0);
435 new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);
436 new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);
437 new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);
438 new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);
439 new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
440 new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
441 new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);
442 new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
443 new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
444 new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
445 new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);
446 new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);
447 new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);
448 new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);
449 new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
450 new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);
453 // --- Define SPD (option 'a') volumes ----------------------------
456 // (this is NOT the default)
463 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
468 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
473 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
478 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
481 di103[1] = ddet1+dchip1;
483 new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);
486 di1d3[1] = ddet2+dchip2;
488 new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);
491 di10a[1] = ddet1+dchip1+dbus+0.0025;
493 new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]);
496 di20a[1] = ddet2+dchip2+dbus+0.0025;
498 new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);
505 new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
510 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
514 // --- Define SPD (option 'b') volumes ----------------------------
517 // (this is the default)
524 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
529 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
534 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
539 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
542 di107[1] = ddet1+dchip1;
544 new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);
547 di1d7[1] = ddet2+dchip2;
549 new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);
552 di10b[1] = ddet1+dchip1+dbus+0.0025;
554 new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]);
557 di20b[1] = ddet2+dchip2+dbus+0.0025;
559 new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);
566 new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
571 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
576 // --- Define SDD volumes ------------------------------------------
578 TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6);
579 it34->DefineSection(0,-34.6,23.49,28.);
580 it34->DefineSection(1,-23.65,23.49,28.);
581 it34->DefineSection(2,-23.65,14.59,28.);
582 it34->DefineSection(3,23.65,14.59,28.);
583 it34->DefineSection(4,23.65,23.49,28.);
584 it34->DefineSection(5,34.6,23.49,28.);
586 I302dits[0] = 3.6250;
587 I302dits[1] = 0.0150;
588 I302dits[2] = 4.3794;
589 new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
591 I004dits[0] = I302dits[0]+0.005;
592 I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
593 I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
594 if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
595 I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
597 I004dits[2] = I004dits[2] + I302dits[2];
598 new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]);
603 new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);
605 I402dits[0] = 3.6250;
606 I402dits[1] = 0.0150;
607 I402dits[2] = 4.3794;
608 new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
610 I005dits[0] = I402dits[0]+0.005;
611 I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
612 I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
613 if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
614 I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
616 I005dits[2] = I005dits[2] + I402dits[2];
617 new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);
622 new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
625 // --- Define SSD volumes ------------------------------------------
628 TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6);
629 it56->DefineSection(0,-57.45,43.6,48.);
630 it56->DefineSection(1,-49.15,43.6,48.);
631 it56->DefineSection(2,-49.15,36.9,48.);
632 it56->DefineSection(3,50.55,36.9,48.);
633 it56->DefineSection(4,50.55,43.6,48.);
634 it56->DefineSection(5,57.45,43.6,48.);
639 new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);
644 new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);
649 new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);
654 new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);
659 new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]);
664 new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);
670 // --- Place SPD (option 'a') volumes into their mother volume
673 // (this is NOT the default)
681 // --- Place SPD (option 'b') volumes into their mother volume
684 // (this is the default)
688 // Place IT12 in Alice
690 node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
691 node->SetLineColor(kColorITS);
692 node->SetVisibility(0);
695 // Place copy #1 of I12B in IT12
697 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
698 sub1node->SetLineColor(kColorITS);
699 sub1node->SetVisibility(0);
702 // Place copy #1 of I10B in I12B
704 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
705 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
706 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
707 sub2node->SetLineColor(kColorITS);
708 sub2node->SetVisibility(0);
711 // Place copy #1 of I107 in I10B
713 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
714 sub3node->SetLineColor(kColorITS);
715 sub3node->SetVisibility(0);
718 // Place copy #1 of I101 in I107
720 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
721 sub4node->SetLineColor(kColorITS);
722 sub4node->SetVisibility(0);
725 // Place copy #1 of ITS1 in I101
727 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
728 sub5node->SetLineColor(kColorITS);
729 fNodes->Add(sub5node);
731 fNodes->Add(sub4node);
733 fNodes->Add(sub3node);
736 // Place copy #2 of I107 in I10B
738 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
739 sub3node->SetLineColor(kColorITS);
740 sub3node->SetVisibility(0);
743 // Place copy #1 of I101 in I107
745 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
746 sub4node->SetLineColor(kColorITS);
747 sub4node->SetVisibility(0);
750 // Place copy #1 of ITS1 in I101
752 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
753 sub5node->SetLineColor(kColorITS);
754 fNodes->Add(sub5node);
756 fNodes->Add(sub4node);
758 fNodes->Add(sub3node);
761 // Place copy #3 of I107 in I10B
763 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
764 sub3node->SetLineColor(kColorITS);
765 sub3node->SetVisibility(0);
768 // Place copy #1 of I101 in I107
770 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
771 sub4node->SetLineColor(kColorITS);
772 sub4node->SetVisibility(0);
775 // Place copy #1 of ITS1 in I101
777 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
778 sub5node->SetLineColor(kColorITS);
779 fNodes->Add(sub5node);
781 fNodes->Add(sub4node);
783 fNodes->Add(sub3node);
786 // Place copy #4 of I107 in I10B
788 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
789 sub3node->SetLineColor(kColorITS);
790 sub3node->SetVisibility(0);
793 // Place copy #1 of I101 in I107
795 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
796 sub4node->SetLineColor(kColorITS);
797 sub4node->SetVisibility(0);
800 // Place copy #1 of ITS1 in I101
802 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
803 sub5node->SetLineColor(kColorITS);
804 fNodes->Add(sub5node);
806 fNodes->Add(sub4node);
808 fNodes->Add(sub3node);
810 fNodes->Add(sub2node);
813 // Place copy #2 of I10B in I12B
815 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
816 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
817 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
818 sub2node->SetLineColor(kColorITS);
819 sub2node->SetVisibility(0);
822 // Place copy #1 of I107 in I10B
824 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
825 sub3node->SetLineColor(kColorITS);
826 sub3node->SetVisibility(0);
829 // Place copy #1 of I101 in I107
831 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
832 sub4node->SetLineColor(kColorITS);
833 sub4node->SetVisibility(0);
836 // Place copy #1 of ITS1 in I101
838 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
839 sub5node->SetLineColor(kColorITS);
840 fNodes->Add(sub5node);
842 fNodes->Add(sub4node);
844 fNodes->Add(sub3node);
847 // Place copy #2 of I107 in I10B
849 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
850 sub3node->SetLineColor(kColorITS);
851 sub3node->SetVisibility(0);
854 // Place copy #1 of I101 in I107
856 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
857 sub4node->SetLineColor(kColorITS);
858 sub4node->SetVisibility(0);
861 // Place copy #1 of ITS1 in I101
863 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
864 sub5node->SetLineColor(kColorITS);
865 fNodes->Add(sub5node);
867 fNodes->Add(sub4node);
869 fNodes->Add(sub3node);
872 // Place copy #3 of I107 in I10B
874 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
875 sub3node->SetLineColor(kColorITS);
876 sub3node->SetVisibility(0);
879 // Place copy #1 of I101 in I107
881 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
882 sub4node->SetLineColor(kColorITS);
883 sub4node->SetVisibility(0);
886 // Place copy #1 of ITS1 in I101
888 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
889 sub5node->SetLineColor(kColorITS);
890 fNodes->Add(sub5node);
892 fNodes->Add(sub4node);
894 fNodes->Add(sub3node);
897 // Place copy #4 of I107 in I10B
899 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
900 sub3node->SetLineColor(kColorITS);
901 sub3node->SetVisibility(0);
904 // Place copy #1 of I101 in I107
906 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
907 sub4node->SetLineColor(kColorITS);
908 sub4node->SetVisibility(0);
911 // Place copy #1 of ITS1 in I101
913 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
914 sub5node->SetLineColor(kColorITS);
915 fNodes->Add(sub5node);
917 fNodes->Add(sub4node);
919 fNodes->Add(sub3node);
921 fNodes->Add(sub2node);
924 // Place copy #1 of I20B in I12B
926 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
927 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
928 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
929 sub2node->SetLineColor(kColorITS);
930 sub2node->SetVisibility(0);
933 // Place copy #1 of I1D7 in I20B
935 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
936 sub3node->SetLineColor(kColorITS);
937 sub3node->SetVisibility(0);
940 // Place copy #1 of I1D1 in I1D7
942 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
943 sub4node->SetLineColor(kColorITS);
944 sub4node->SetVisibility(0);
947 // Place copy #1 of ITS2 in I1D1
949 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
950 sub5node->SetLineColor(kColorITS);
951 fNodes->Add(sub5node);
953 fNodes->Add(sub4node);
955 fNodes->Add(sub3node);
958 // Place copy #2 of I1D7 in I20B
960 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
961 sub3node->SetLineColor(kColorITS);
962 sub3node->SetVisibility(0);
965 // Place copy #1 of I1D1 in I1D7
967 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
968 sub4node->SetLineColor(kColorITS);
969 sub4node->SetVisibility(0);
972 // Place copy #1 of ITS2 in I1D1
974 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
975 sub5node->SetLineColor(kColorITS);
976 fNodes->Add(sub5node);
978 fNodes->Add(sub4node);
980 fNodes->Add(sub3node);
983 // Place copy #3 of I1D7 in I20B
985 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
986 sub3node->SetLineColor(kColorITS);
987 sub3node->SetVisibility(0);
990 // Place copy #1 of I1D1 in I1D7
992 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
993 sub4node->SetLineColor(kColorITS);
994 sub4node->SetVisibility(0);
997 // Place copy #1 of ITS2 in I1D1
999 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1000 sub5node->SetLineColor(kColorITS);
1001 fNodes->Add(sub5node);
1003 fNodes->Add(sub4node);
1005 fNodes->Add(sub3node);
1008 // Place copy #4 of I1D7 in I20B
1010 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1011 sub3node->SetLineColor(kColorITS);
1012 sub3node->SetVisibility(0);
1015 // Place copy #1 of I1D1 in I1D7
1017 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1018 sub4node->SetLineColor(kColorITS);
1019 sub4node->SetVisibility(0);
1022 // Place copy #1 of ITS2 in I1D1
1024 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1025 sub5node->SetLineColor(kColorITS);
1026 fNodes->Add(sub5node);
1028 fNodes->Add(sub4node);
1030 fNodes->Add(sub3node);
1032 fNodes->Add(sub2node);
1035 // Place copy #2 of I20B in I12B
1037 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1038 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1039 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1040 sub2node->SetLineColor(kColorITS);
1041 sub2node->SetVisibility(0);
1044 // Place copy #1 of I1D7 in I20B
1046 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1047 sub3node->SetLineColor(kColorITS);
1048 sub3node->SetVisibility(0);
1051 // Place copy #1 of I1D1 in I1D7
1053 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1054 sub4node->SetLineColor(kColorITS);
1055 sub4node->SetVisibility(0);
1058 // Place copy #1 of ITS2 in I1D1
1060 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1061 sub5node->SetLineColor(kColorITS);
1062 fNodes->Add(sub5node);
1064 fNodes->Add(sub4node);
1066 fNodes->Add(sub3node);
1069 // Place copy #2 of I1D7 in I20B
1071 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1072 sub3node->SetLineColor(kColorITS);
1073 sub3node->SetVisibility(0);
1076 // Place copy #1 of I1D1 in I1D7
1078 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1079 sub4node->SetLineColor(kColorITS);
1080 sub4node->SetVisibility(0);
1083 // Place copy #1 of ITS2 in I1D1
1085 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1086 sub5node->SetLineColor(kColorITS);
1087 fNodes->Add(sub5node);
1089 fNodes->Add(sub4node);
1091 fNodes->Add(sub3node);
1094 // Place copy #3 of I1D7 in I20B
1096 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1097 sub3node->SetLineColor(kColorITS);
1098 sub3node->SetVisibility(0);
1101 // Place copy #1 of I1D1 in I1D7
1103 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1104 sub4node->SetLineColor(kColorITS);
1105 sub4node->SetVisibility(0);
1108 // Place copy #1 of ITS2 in I1D1
1110 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1111 sub5node->SetLineColor(kColorITS);
1112 fNodes->Add(sub5node);
1114 fNodes->Add(sub4node);
1116 fNodes->Add(sub3node);
1119 // Place copy #4 of I1D7 in I20B
1121 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1122 sub3node->SetLineColor(kColorITS);
1123 sub3node->SetVisibility(0);
1126 // Place copy #1 of I1D1 in I1D7
1128 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1129 sub4node->SetLineColor(kColorITS);
1130 sub4node->SetVisibility(0);
1133 // Place copy #1 of ITS2 in I1D1
1135 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1136 sub5node->SetLineColor(kColorITS);
1137 fNodes->Add(sub5node);
1139 fNodes->Add(sub4node);
1141 fNodes->Add(sub3node);
1143 fNodes->Add(sub2node);
1146 // Place copy #3 of I20B in I12B
1148 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1149 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1150 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1151 sub2node->SetLineColor(kColorITS);
1152 sub2node->SetVisibility(0);
1155 // Place copy #1 of I1D7 in I20B
1157 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1158 sub3node->SetLineColor(kColorITS);
1159 sub3node->SetVisibility(0);
1162 // Place copy #1 of I1D1 in I1D7
1164 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1165 sub4node->SetLineColor(kColorITS);
1166 sub4node->SetVisibility(0);
1169 // Place copy #1 of ITS2 in I1D1
1171 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1172 sub5node->SetLineColor(kColorITS);
1173 fNodes->Add(sub5node);
1175 fNodes->Add(sub4node);
1177 fNodes->Add(sub3node);
1180 // Place copy #2 of I1D7 in I20B
1182 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1183 sub3node->SetLineColor(kColorITS);
1184 sub3node->SetVisibility(0);
1187 // Place copy #1 of I1D1 in I1D7
1189 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1190 sub4node->SetLineColor(kColorITS);
1191 sub4node->SetVisibility(0);
1194 // Place copy #1 of ITS2 in I1D1
1196 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1197 sub5node->SetLineColor(kColorITS);
1198 fNodes->Add(sub5node);
1200 fNodes->Add(sub4node);
1202 fNodes->Add(sub3node);
1205 // Place copy #3 of I1D7 in I20B
1207 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1208 sub3node->SetLineColor(kColorITS);
1209 sub3node->SetVisibility(0);
1212 // Place copy #1 of I1D1 in I1D7
1214 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1215 sub4node->SetLineColor(kColorITS);
1216 sub4node->SetVisibility(0);
1219 // Place copy #1 of ITS2 in I1D1
1221 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1222 sub5node->SetLineColor(kColorITS);
1223 fNodes->Add(sub5node);
1225 fNodes->Add(sub4node);
1227 fNodes->Add(sub3node);
1230 // Place copy #4 of I1D7 in I20B
1232 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1233 sub3node->SetLineColor(kColorITS);
1234 sub3node->SetVisibility(0);
1237 // Place copy #1 of I1D1 in I1D7
1239 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1240 sub4node->SetLineColor(kColorITS);
1241 sub4node->SetVisibility(0);
1244 // Place copy #1 of ITS2 in I1D1
1246 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1247 sub5node->SetLineColor(kColorITS);
1248 fNodes->Add(sub5node);
1250 fNodes->Add(sub4node);
1252 fNodes->Add(sub3node);
1254 fNodes->Add(sub2node);
1257 // Place copy #4 of I20B in I12B
1259 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1260 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1261 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1262 sub2node->SetLineColor(kColorITS);
1263 sub2node->SetVisibility(0);
1266 // Place copy #1 of I1D7 in I20B
1268 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1269 sub3node->SetLineColor(kColorITS);
1270 sub3node->SetVisibility(0);
1273 // Place copy #1 of I1D1 in I1D7
1275 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1276 sub4node->SetLineColor(kColorITS);
1277 sub4node->SetVisibility(0);
1280 // Place copy #1 of ITS2 in I1D1
1282 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1283 sub5node->SetLineColor(kColorITS);
1284 fNodes->Add(sub5node);
1286 fNodes->Add(sub4node);
1288 fNodes->Add(sub3node);
1291 // Place copy #2 of I1D7 in I20B
1293 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1294 sub3node->SetLineColor(kColorITS);
1295 sub3node->SetVisibility(0);
1298 // Place copy #1 of I1D1 in I1D7
1300 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1301 sub4node->SetLineColor(kColorITS);
1302 sub4node->SetVisibility(0);
1305 // Place copy #1 of ITS2 in I1D1
1307 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1308 sub5node->SetLineColor(kColorITS);
1309 fNodes->Add(sub5node);
1311 fNodes->Add(sub4node);
1313 fNodes->Add(sub3node);
1316 // Place copy #3 of I1D7 in I20B
1318 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1319 sub3node->SetLineColor(kColorITS);
1320 sub3node->SetVisibility(0);
1323 // Place copy #1 of I1D1 in I1D7
1325 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1326 sub4node->SetLineColor(kColorITS);
1327 sub4node->SetVisibility(0);
1330 // Place copy #1 of ITS2 in I1D1
1332 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1333 sub5node->SetLineColor(kColorITS);
1334 fNodes->Add(sub5node);
1336 fNodes->Add(sub4node);
1338 fNodes->Add(sub3node);
1341 // Place copy #4 of I1D7 in I20B
1343 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1344 sub3node->SetLineColor(kColorITS);
1345 sub3node->SetVisibility(0);
1348 // Place copy #1 of I1D1 in I1D7
1350 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1351 sub4node->SetLineColor(kColorITS);
1352 sub4node->SetVisibility(0);
1355 // Place copy #1 of ITS2 in I1D1
1357 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1358 sub5node->SetLineColor(kColorITS);
1359 fNodes->Add(sub5node);
1361 fNodes->Add(sub4node);
1363 fNodes->Add(sub3node);
1365 fNodes->Add(sub2node);
1367 fNodes->Add(sub1node);
1370 // Place copy #2 of I12B in IT12
1372 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
1373 sub1node->SetLineColor(kColorITS);
1374 sub1node->SetVisibility(0);
1377 // Place copy #1 of I10B in I12B
1379 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
1380 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
1381 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
1382 sub2node->SetLineColor(kColorITS);
1383 sub2node->SetVisibility(0);
1386 // Place copy #1 of I107 in I10B
1388 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1389 sub3node->SetLineColor(kColorITS);
1390 sub3node->SetVisibility(0);
1393 // Place copy #1 of I101 in I107
1395 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1396 sub4node->SetLineColor(kColorITS);
1397 sub4node->SetVisibility(0);
1400 // Place copy #1 of ITS1 in I101
1402 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1403 sub5node->SetLineColor(kColorITS);
1404 fNodes->Add(sub5node);
1406 fNodes->Add(sub4node);
1408 fNodes->Add(sub3node);
1411 // Place copy #2 of I107 in I10B
1413 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1414 sub3node->SetLineColor(kColorITS);
1415 sub3node->SetVisibility(0);
1418 // Place copy #1 of I101 in I107
1420 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1421 sub4node->SetLineColor(kColorITS);
1422 sub4node->SetVisibility(0);
1425 // Place copy #1 of ITS1 in I101
1427 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1428 sub5node->SetLineColor(kColorITS);
1429 fNodes->Add(sub5node);
1431 fNodes->Add(sub4node);
1433 fNodes->Add(sub3node);
1436 // Place copy #3 of I107 in I10B
1438 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1439 sub3node->SetLineColor(kColorITS);
1440 sub3node->SetVisibility(0);
1443 // Place copy #1 of I101 in I107
1445 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1446 sub4node->SetLineColor(kColorITS);
1447 sub4node->SetVisibility(0);
1450 // Place copy #1 of ITS1 in I101
1452 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1453 sub5node->SetLineColor(kColorITS);
1454 fNodes->Add(sub5node);
1456 fNodes->Add(sub4node);
1458 fNodes->Add(sub3node);
1461 // Place copy #4 of I107 in I10B
1463 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1464 sub3node->SetLineColor(kColorITS);
1465 sub3node->SetVisibility(0);
1468 // Place copy #1 of I101 in I107
1470 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1471 sub4node->SetLineColor(kColorITS);
1472 sub4node->SetVisibility(0);
1475 // Place copy #1 of ITS1 in I101
1477 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1478 sub5node->SetLineColor(kColorITS);
1479 fNodes->Add(sub5node);
1481 fNodes->Add(sub4node);
1483 fNodes->Add(sub3node);
1485 fNodes->Add(sub2node);
1488 // Place copy #2 of I10B in I12B
1490 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
1491 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
1492 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
1493 sub2node->SetLineColor(kColorITS);
1494 sub2node->SetVisibility(0);
1497 // Place copy #1 of I107 in I10B
1499 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1500 sub3node->SetLineColor(kColorITS);
1501 sub3node->SetVisibility(0);
1504 // Place copy #1 of I101 in I107
1506 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1507 sub4node->SetLineColor(kColorITS);
1508 sub4node->SetVisibility(0);
1511 // Place copy #1 of ITS1 in I101
1513 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1514 sub5node->SetLineColor(kColorITS);
1515 fNodes->Add(sub5node);
1517 fNodes->Add(sub4node);
1519 fNodes->Add(sub3node);
1522 // Place copy #2 of I107 in I10B
1524 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1525 sub3node->SetLineColor(kColorITS);
1526 sub3node->SetVisibility(0);
1529 // Place copy #1 of I101 in I107
1531 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1532 sub4node->SetLineColor(kColorITS);
1533 sub4node->SetVisibility(0);
1536 // Place copy #1 of ITS1 in I101
1538 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1539 sub5node->SetLineColor(kColorITS);
1540 fNodes->Add(sub5node);
1542 fNodes->Add(sub4node);
1544 fNodes->Add(sub3node);
1547 // Place copy #3 of I107 in I10B
1549 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1550 sub3node->SetLineColor(kColorITS);
1551 sub3node->SetVisibility(0);
1554 // Place copy #1 of I101 in I107
1556 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1557 sub4node->SetLineColor(kColorITS);
1558 sub4node->SetVisibility(0);
1561 // Place copy #1 of ITS1 in I101
1563 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1564 sub5node->SetLineColor(kColorITS);
1565 fNodes->Add(sub5node);
1567 fNodes->Add(sub4node);
1569 fNodes->Add(sub3node);
1572 // Place copy #4 of I107 in I10B
1574 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1575 sub3node->SetLineColor(kColorITS);
1576 sub3node->SetVisibility(0);
1579 // Place copy #1 of I101 in I107
1581 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1582 sub4node->SetLineColor(kColorITS);
1583 sub4node->SetVisibility(0);
1586 // Place copy #1 of ITS1 in I101
1588 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1589 sub5node->SetLineColor(kColorITS);
1590 fNodes->Add(sub5node);
1592 fNodes->Add(sub4node);
1594 fNodes->Add(sub3node);
1596 fNodes->Add(sub2node);
1599 // Place copy #1 of I20B in I12B
1601 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
1602 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1603 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1604 sub2node->SetLineColor(kColorITS);
1605 sub2node->SetVisibility(0);
1608 // Place copy #1 of I1D7 in I20B
1610 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1611 sub3node->SetLineColor(kColorITS);
1612 sub3node->SetVisibility(0);
1615 // Place copy #1 of I1D1 in I1D7
1617 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1618 sub4node->SetLineColor(kColorITS);
1619 sub4node->SetVisibility(0);
1622 // Place copy #1 of ITS2 in I1D1
1624 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1625 sub5node->SetLineColor(kColorITS);
1626 fNodes->Add(sub5node);
1628 fNodes->Add(sub4node);
1630 fNodes->Add(sub3node);
1633 // Place copy #2 of I1D7 in I20B
1635 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1636 sub3node->SetLineColor(kColorITS);
1637 sub3node->SetVisibility(0);
1640 // Place copy #1 of I1D1 in I1D7
1642 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1643 sub4node->SetLineColor(kColorITS);
1644 sub4node->SetVisibility(0);
1647 // Place copy #1 of ITS2 in I1D1
1649 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1650 sub5node->SetLineColor(kColorITS);
1651 fNodes->Add(sub5node);
1653 fNodes->Add(sub4node);
1655 fNodes->Add(sub3node);
1658 // Place copy #3 of I1D7 in I20B
1660 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1661 sub3node->SetLineColor(kColorITS);
1662 sub3node->SetVisibility(0);
1665 // Place copy #1 of I1D1 in I1D7
1667 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1668 sub4node->SetLineColor(kColorITS);
1669 sub4node->SetVisibility(0);
1672 // Place copy #1 of ITS2 in I1D1
1674 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1675 sub5node->SetLineColor(kColorITS);
1676 fNodes->Add(sub5node);
1678 fNodes->Add(sub4node);
1680 fNodes->Add(sub3node);
1683 // Place copy #4 of I1D7 in I20B
1685 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1686 sub3node->SetLineColor(kColorITS);
1687 sub3node->SetVisibility(0);
1690 // Place copy #1 of I1D1 in I1D7
1692 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1693 sub4node->SetLineColor(kColorITS);
1694 sub4node->SetVisibility(0);
1697 // Place copy #1 of ITS2 in I1D1
1699 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1700 sub5node->SetLineColor(kColorITS);
1701 fNodes->Add(sub5node);
1703 fNodes->Add(sub4node);
1705 fNodes->Add(sub3node);
1707 fNodes->Add(sub2node);
1710 // Place copy #2 of I20B in I12B
1712 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1713 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1714 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1715 sub2node->SetLineColor(kColorITS);
1716 sub2node->SetVisibility(0);
1719 // Place copy #1 of I1D7 in I20B
1721 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1722 sub3node->SetLineColor(kColorITS);
1723 sub3node->SetVisibility(0);
1726 // Place copy #1 of I1D1 in I1D7
1728 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1729 sub4node->SetLineColor(kColorITS);
1730 sub4node->SetVisibility(0);
1733 // Place copy #1 of ITS2 in I1D1
1735 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1736 sub5node->SetLineColor(kColorITS);
1737 fNodes->Add(sub5node);
1739 fNodes->Add(sub4node);
1741 fNodes->Add(sub3node);
1744 // Place copy #2 of I1D7 in I20B
1746 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1747 sub3node->SetLineColor(kColorITS);
1748 sub3node->SetVisibility(0);
1751 // Place copy #1 of I1D1 in I1D7
1753 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1754 sub4node->SetLineColor(kColorITS);
1755 sub4node->SetVisibility(0);
1758 // Place copy #1 of ITS2 in I1D1
1760 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1761 sub5node->SetLineColor(kColorITS);
1762 fNodes->Add(sub5node);
1764 fNodes->Add(sub4node);
1766 fNodes->Add(sub3node);
1769 // Place copy #3 of I1D7 in I20B
1771 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1772 sub3node->SetLineColor(kColorITS);
1773 sub3node->SetVisibility(0);
1776 // Place copy #1 of I1D1 in I1D7
1778 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1779 sub4node->SetLineColor(kColorITS);
1780 sub4node->SetVisibility(0);
1783 // Place copy #1 of ITS2 in I1D1
1785 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1786 sub5node->SetLineColor(kColorITS);
1787 fNodes->Add(sub5node);
1789 fNodes->Add(sub4node);
1791 fNodes->Add(sub3node);
1794 // Place copy #4 of I1D7 in I20B
1796 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1797 sub3node->SetLineColor(kColorITS);
1798 sub3node->SetVisibility(0);
1801 // Place copy #1 of I1D1 in I1D7
1803 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1804 sub4node->SetLineColor(kColorITS);
1805 sub4node->SetVisibility(0);
1808 // Place copy #1 of ITS2 in I1D1
1810 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1811 sub5node->SetLineColor(kColorITS);
1812 fNodes->Add(sub5node);
1814 fNodes->Add(sub4node);
1816 fNodes->Add(sub3node);
1818 fNodes->Add(sub2node);
1821 // Place copy #3 of I20B in I12B
1823 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1824 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1825 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1826 sub2node->SetLineColor(kColorITS);
1827 sub2node->SetVisibility(0);
1830 // Place copy #1 of I1D7 in I20B
1832 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1833 sub3node->SetLineColor(kColorITS);
1834 sub3node->SetVisibility(0);
1837 // Place copy #1 of I1D1 in I1D7
1839 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1840 sub4node->SetLineColor(kColorITS);
1841 sub4node->SetVisibility(0);
1844 // Place copy #1 of ITS2 in I1D1
1846 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1847 sub5node->SetLineColor(kColorITS);
1848 fNodes->Add(sub5node);
1850 fNodes->Add(sub4node);
1852 fNodes->Add(sub3node);
1855 // Place copy #2 of I1D7 in I20B
1857 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1858 sub3node->SetLineColor(kColorITS);
1859 sub3node->SetVisibility(0);
1862 // Place copy #1 of I1D1 in I1D7
1864 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1865 sub4node->SetLineColor(kColorITS);
1866 sub4node->SetVisibility(0);
1869 // Place copy #1 of ITS2 in I1D1
1871 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1872 sub5node->SetLineColor(kColorITS);
1873 fNodes->Add(sub5node);
1875 fNodes->Add(sub4node);
1877 fNodes->Add(sub3node);
1880 // Place copy #3 of I1D7 in I20B
1882 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1883 sub3node->SetLineColor(kColorITS);
1884 sub3node->SetVisibility(0);
1887 // Place copy #1 of I1D1 in I1D7
1889 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1890 sub4node->SetLineColor(kColorITS);
1891 sub4node->SetVisibility(0);
1894 // Place copy #1 of ITS2 in I1D1
1896 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1897 sub5node->SetLineColor(kColorITS);
1898 fNodes->Add(sub5node);
1900 fNodes->Add(sub4node);
1902 fNodes->Add(sub3node);
1905 // Place copy #4 of I1D7 in I20B
1907 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1908 sub3node->SetLineColor(kColorITS);
1909 sub3node->SetVisibility(0);
1912 // Place copy #1 of I1D1 in I1D7
1914 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1915 sub4node->SetLineColor(kColorITS);
1916 sub4node->SetVisibility(0);
1919 // Place copy #1 of ITS2 in I1D1
1921 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1922 sub5node->SetLineColor(kColorITS);
1923 fNodes->Add(sub5node);
1925 fNodes->Add(sub4node);
1927 fNodes->Add(sub3node);
1929 fNodes->Add(sub2node);
1932 // Place copy #4 of I20B in I12B
1934 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1935 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1936 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1937 sub2node->SetLineColor(kColorITS);
1938 sub2node->SetVisibility(0);
1941 // Place copy #1 of I1D7 in I20B
1943 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1944 sub3node->SetLineColor(kColorITS);
1945 sub3node->SetVisibility(0);
1948 // Place copy #1 of I1D1 in I1D7
1950 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1951 sub4node->SetLineColor(kColorITS);
1952 sub4node->SetVisibility(0);
1955 // Place copy #1 of ITS2 in I1D1
1957 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1958 sub5node->SetLineColor(kColorITS);
1959 fNodes->Add(sub5node);
1961 fNodes->Add(sub4node);
1963 fNodes->Add(sub3node);
1966 // Place copy #2 of I1D7 in I20B
1968 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1969 sub3node->SetLineColor(kColorITS);
1970 sub3node->SetVisibility(0);
1973 // Place copy #1 of I1D1 in I1D7
1975 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1976 sub4node->SetLineColor(kColorITS);
1977 sub4node->SetVisibility(0);
1980 // Place copy #1 of ITS2 in I1D1
1982 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1983 sub5node->SetLineColor(kColorITS);
1984 fNodes->Add(sub5node);
1986 fNodes->Add(sub4node);
1988 fNodes->Add(sub3node);
1991 // Place copy #3 of I1D7 in I20B
1993 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1994 sub3node->SetLineColor(kColorITS);
1995 sub3node->SetVisibility(0);
1998 // Place copy #1 of I1D1 in I1D7
2000 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2001 sub4node->SetLineColor(kColorITS);
2002 sub4node->SetVisibility(0);
2005 // Place copy #1 of ITS2 in I1D1
2007 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2008 sub5node->SetLineColor(kColorITS);
2009 fNodes->Add(sub5node);
2011 fNodes->Add(sub4node);
2013 fNodes->Add(sub3node);
2016 // Place copy #4 of I1D7 in I20B
2018 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2019 sub3node->SetLineColor(kColorITS);
2020 sub3node->SetVisibility(0);
2023 // Place copy #1 of I1D1 in I1D7
2025 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2026 sub4node->SetLineColor(kColorITS);
2027 sub4node->SetVisibility(0);
2030 // Place copy #1 of ITS2 in I1D1
2032 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2033 sub5node->SetLineColor(kColorITS);
2034 fNodes->Add(sub5node);
2036 fNodes->Add(sub4node);
2038 fNodes->Add(sub3node);
2040 fNodes->Add(sub2node);
2042 fNodes->Add(sub1node);
2045 // Place copy #3 of I12B in IT12
2047 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
2048 sub1node->SetLineColor(kColorITS);
2049 sub1node->SetVisibility(0);
2052 // Place copy #1 of I10B in I12B
2054 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2055 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2056 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2057 sub2node->SetLineColor(kColorITS);
2058 sub2node->SetVisibility(0);
2061 // Place copy #1 of I107 in I10B
2063 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2064 sub3node->SetLineColor(kColorITS);
2065 sub3node->SetVisibility(0);
2068 // Place copy #1 of I101 in I107
2070 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2071 sub4node->SetLineColor(kColorITS);
2072 sub4node->SetVisibility(0);
2075 // Place copy #1 of ITS1 in I101
2077 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2078 sub5node->SetLineColor(kColorITS);
2079 fNodes->Add(sub5node);
2081 fNodes->Add(sub4node);
2083 fNodes->Add(sub3node);
2086 // Place copy #2 of I107 in I10B
2088 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2089 sub3node->SetLineColor(kColorITS);
2090 sub3node->SetVisibility(0);
2093 // Place copy #1 of I101 in I107
2095 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2096 sub4node->SetLineColor(kColorITS);
2097 sub4node->SetVisibility(0);
2100 // Place copy #1 of ITS1 in I101
2102 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2103 sub5node->SetLineColor(kColorITS);
2104 fNodes->Add(sub5node);
2106 fNodes->Add(sub4node);
2108 fNodes->Add(sub3node);
2111 // Place copy #3 of I107 in I10B
2113 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2114 sub3node->SetLineColor(kColorITS);
2115 sub3node->SetVisibility(0);
2118 // Place copy #1 of I101 in I107
2120 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2121 sub4node->SetLineColor(kColorITS);
2122 sub4node->SetVisibility(0);
2125 // Place copy #1 of ITS1 in I101
2127 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2128 sub5node->SetLineColor(kColorITS);
2129 fNodes->Add(sub5node);
2131 fNodes->Add(sub4node);
2133 fNodes->Add(sub3node);
2136 // Place copy #4 of I107 in I10B
2138 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2139 sub3node->SetLineColor(kColorITS);
2140 sub3node->SetVisibility(0);
2143 // Place copy #1 of I101 in I107
2145 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2146 sub4node->SetLineColor(kColorITS);
2147 sub4node->SetVisibility(0);
2150 // Place copy #1 of ITS1 in I101
2152 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2153 sub5node->SetLineColor(kColorITS);
2154 fNodes->Add(sub5node);
2156 fNodes->Add(sub4node);
2158 fNodes->Add(sub3node);
2160 fNodes->Add(sub2node);
2163 // Place copy #2 of I10B in I12B
2165 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2166 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2167 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2168 sub2node->SetLineColor(kColorITS);
2169 sub2node->SetVisibility(0);
2172 // Place copy #1 of I107 in I10B
2174 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2175 sub3node->SetLineColor(kColorITS);
2176 sub3node->SetVisibility(0);
2179 // Place copy #1 of I101 in I107
2181 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2182 sub4node->SetLineColor(kColorITS);
2183 sub4node->SetVisibility(0);
2186 // Place copy #1 of ITS1 in I101
2188 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2189 sub5node->SetLineColor(kColorITS);
2190 fNodes->Add(sub5node);
2192 fNodes->Add(sub4node);
2194 fNodes->Add(sub3node);
2197 // Place copy #2 of I107 in I10B
2199 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2200 sub3node->SetLineColor(kColorITS);
2201 sub3node->SetVisibility(0);
2204 // Place copy #1 of I101 in I107
2206 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2207 sub4node->SetLineColor(kColorITS);
2208 sub4node->SetVisibility(0);
2211 // Place copy #1 of ITS1 in I101
2213 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2214 sub5node->SetLineColor(kColorITS);
2215 fNodes->Add(sub5node);
2217 fNodes->Add(sub4node);
2219 fNodes->Add(sub3node);
2222 // Place copy #3 of I107 in I10B
2224 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2225 sub3node->SetLineColor(kColorITS);
2226 sub3node->SetVisibility(0);
2229 // Place copy #1 of I101 in I107
2231 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2232 sub4node->SetLineColor(kColorITS);
2233 sub4node->SetVisibility(0);
2236 // Place copy #1 of ITS1 in I101
2238 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2239 sub5node->SetLineColor(kColorITS);
2240 fNodes->Add(sub5node);
2242 fNodes->Add(sub4node);
2244 fNodes->Add(sub3node);
2247 // Place copy #4 of I107 in I10B
2249 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2250 sub3node->SetLineColor(kColorITS);
2251 sub3node->SetVisibility(0);
2254 // Place copy #1 of I101 in I107
2256 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2257 sub4node->SetLineColor(kColorITS);
2258 sub4node->SetVisibility(0);
2261 // Place copy #1 of ITS1 in I101
2263 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2264 sub5node->SetLineColor(kColorITS);
2265 fNodes->Add(sub5node);
2267 fNodes->Add(sub4node);
2269 fNodes->Add(sub3node);
2271 fNodes->Add(sub2node);
2274 // Place copy #1 of I20B in I12B
2276 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2277 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2278 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2279 sub2node->SetLineColor(kColorITS);
2280 sub2node->SetVisibility(0);
2283 // Place copy #1 of I1D7 in I20B
2285 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2286 sub3node->SetLineColor(kColorITS);
2287 sub3node->SetVisibility(0);
2290 // Place copy #1 of I1D1 in I1D7
2292 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2293 sub4node->SetLineColor(kColorITS);
2294 sub4node->SetVisibility(0);
2297 // Place copy #1 of ITS2 in I1D1
2299 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2300 sub5node->SetLineColor(kColorITS);
2301 fNodes->Add(sub5node);
2303 fNodes->Add(sub4node);
2305 fNodes->Add(sub3node);
2308 // Place copy #2 of I1D7 in I20B
2310 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2311 sub3node->SetLineColor(kColorITS);
2312 sub3node->SetVisibility(0);
2315 // Place copy #1 of I1D1 in I1D7
2317 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2318 sub4node->SetLineColor(kColorITS);
2319 sub4node->SetVisibility(0);
2322 // Place copy #1 of ITS2 in I1D1
2324 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2325 sub5node->SetLineColor(kColorITS);
2326 fNodes->Add(sub5node);
2328 fNodes->Add(sub4node);
2330 fNodes->Add(sub3node);
2333 // Place copy #3 of I1D7 in I20B
2335 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2336 sub3node->SetLineColor(kColorITS);
2337 sub3node->SetVisibility(0);
2340 // Place copy #1 of I1D1 in I1D7
2342 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2343 sub4node->SetLineColor(kColorITS);
2344 sub4node->SetVisibility(0);
2347 // Place copy #1 of ITS2 in I1D1
2349 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2350 sub5node->SetLineColor(kColorITS);
2351 fNodes->Add(sub5node);
2353 fNodes->Add(sub4node);
2355 fNodes->Add(sub3node);
2358 // Place copy #4 of I1D7 in I20B
2360 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2361 sub3node->SetLineColor(kColorITS);
2362 sub3node->SetVisibility(0);
2365 // Place copy #1 of I1D1 in I1D7
2367 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2368 sub4node->SetLineColor(kColorITS);
2369 sub4node->SetVisibility(0);
2372 // Place copy #1 of ITS2 in I1D1
2374 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2375 sub5node->SetLineColor(kColorITS);
2376 fNodes->Add(sub5node);
2378 fNodes->Add(sub4node);
2380 fNodes->Add(sub3node);
2382 fNodes->Add(sub2node);
2385 // Place copy #2 of I20B in I12B
2387 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
2388 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
2389 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
2390 sub2node->SetLineColor(kColorITS);
2391 sub2node->SetVisibility(0);
2394 // Place copy #1 of I1D7 in I20B
2396 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2397 sub3node->SetLineColor(kColorITS);
2398 sub3node->SetVisibility(0);
2401 // Place copy #1 of I1D1 in I1D7
2403 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2404 sub4node->SetLineColor(kColorITS);
2405 sub4node->SetVisibility(0);
2408 // Place copy #1 of ITS2 in I1D1
2410 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2411 sub5node->SetLineColor(kColorITS);
2412 fNodes->Add(sub5node);
2414 fNodes->Add(sub4node);
2416 fNodes->Add(sub3node);
2419 // Place copy #2 of I1D7 in I20B
2421 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2422 sub3node->SetLineColor(kColorITS);
2423 sub3node->SetVisibility(0);
2426 // Place copy #1 of I1D1 in I1D7
2428 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2429 sub4node->SetLineColor(kColorITS);
2430 sub4node->SetVisibility(0);
2433 // Place copy #1 of ITS2 in I1D1
2435 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2436 sub5node->SetLineColor(kColorITS);
2437 fNodes->Add(sub5node);
2439 fNodes->Add(sub4node);
2441 fNodes->Add(sub3node);
2444 // Place copy #3 of I1D7 in I20B
2446 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2447 sub3node->SetLineColor(kColorITS);
2448 sub3node->SetVisibility(0);
2451 // Place copy #1 of I1D1 in I1D7
2453 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2454 sub4node->SetLineColor(kColorITS);
2455 sub4node->SetVisibility(0);
2458 // Place copy #1 of ITS2 in I1D1
2460 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2461 sub5node->SetLineColor(kColorITS);
2462 fNodes->Add(sub5node);
2464 fNodes->Add(sub4node);
2466 fNodes->Add(sub3node);
2469 // Place copy #4 of I1D7 in I20B
2471 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2472 sub3node->SetLineColor(kColorITS);
2473 sub3node->SetVisibility(0);
2476 // Place copy #1 of I1D1 in I1D7
2478 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2479 sub4node->SetLineColor(kColorITS);
2480 sub4node->SetVisibility(0);
2483 // Place copy #1 of ITS2 in I1D1
2485 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2486 sub5node->SetLineColor(kColorITS);
2487 fNodes->Add(sub5node);
2489 fNodes->Add(sub4node);
2491 fNodes->Add(sub3node);
2493 fNodes->Add(sub2node);
2496 // Place copy #3 of I20B in I12B
2498 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
2499 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
2500 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
2501 sub2node->SetLineColor(kColorITS);
2502 sub2node->SetVisibility(0);
2505 // Place copy #1 of I1D7 in I20B
2507 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2508 sub3node->SetLineColor(kColorITS);
2509 sub3node->SetVisibility(0);
2512 // Place copy #1 of I1D1 in I1D7
2514 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2515 sub4node->SetLineColor(kColorITS);
2516 sub4node->SetVisibility(0);
2519 // Place copy #1 of ITS2 in I1D1
2521 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2522 sub5node->SetLineColor(kColorITS);
2523 fNodes->Add(sub5node);
2525 fNodes->Add(sub4node);
2527 fNodes->Add(sub3node);
2530 // Place copy #2 of I1D7 in I20B
2532 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2533 sub3node->SetLineColor(kColorITS);
2534 sub3node->SetVisibility(0);
2537 // Place copy #1 of I1D1 in I1D7
2539 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2540 sub4node->SetLineColor(kColorITS);
2541 sub4node->SetVisibility(0);
2544 // Place copy #1 of ITS2 in I1D1
2546 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2547 sub5node->SetLineColor(kColorITS);
2548 fNodes->Add(sub5node);
2550 fNodes->Add(sub4node);
2552 fNodes->Add(sub3node);
2555 // Place copy #3 of I1D7 in I20B
2557 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2558 sub3node->SetLineColor(kColorITS);
2559 sub3node->SetVisibility(0);
2562 // Place copy #1 of I1D1 in I1D7
2564 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2565 sub4node->SetLineColor(kColorITS);
2566 sub4node->SetVisibility(0);
2569 // Place copy #1 of ITS2 in I1D1
2571 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2572 sub5node->SetLineColor(kColorITS);
2573 fNodes->Add(sub5node);
2575 fNodes->Add(sub4node);
2577 fNodes->Add(sub3node);
2580 // Place copy #4 of I1D7 in I20B
2582 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2583 sub3node->SetLineColor(kColorITS);
2584 sub3node->SetVisibility(0);
2587 // Place copy #1 of I1D1 in I1D7
2589 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2590 sub4node->SetLineColor(kColorITS);
2591 sub4node->SetVisibility(0);
2594 // Place copy #1 of ITS2 in I1D1
2596 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2597 sub5node->SetLineColor(kColorITS);
2598 fNodes->Add(sub5node);
2600 fNodes->Add(sub4node);
2602 fNodes->Add(sub3node);
2604 fNodes->Add(sub2node);
2607 // Place copy #4 of I20B in I12B
2609 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
2610 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2611 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2612 sub2node->SetLineColor(kColorITS);
2613 sub2node->SetVisibility(0);
2616 // Place copy #1 of I1D7 in I20B
2618 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2619 sub3node->SetLineColor(kColorITS);
2620 sub3node->SetVisibility(0);
2623 // Place copy #1 of I1D1 in I1D7
2625 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2626 sub4node->SetLineColor(kColorITS);
2627 sub4node->SetVisibility(0);
2630 // Place copy #1 of ITS2 in I1D1
2632 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2633 sub5node->SetLineColor(kColorITS);
2634 fNodes->Add(sub5node);
2636 fNodes->Add(sub4node);
2638 fNodes->Add(sub3node);
2641 // Place copy #2 of I1D7 in I20B
2643 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2644 sub3node->SetLineColor(kColorITS);
2645 sub3node->SetVisibility(0);
2648 // Place copy #1 of I1D1 in I1D7
2650 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2651 sub4node->SetLineColor(kColorITS);
2652 sub4node->SetVisibility(0);
2655 // Place copy #1 of ITS2 in I1D1
2657 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2658 sub5node->SetLineColor(kColorITS);
2659 fNodes->Add(sub5node);
2661 fNodes->Add(sub4node);
2663 fNodes->Add(sub3node);
2666 // Place copy #3 of I1D7 in I20B
2668 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2669 sub3node->SetLineColor(kColorITS);
2670 sub3node->SetVisibility(0);
2673 // Place copy #1 of I1D1 in I1D7
2675 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2676 sub4node->SetLineColor(kColorITS);
2677 sub4node->SetVisibility(0);
2680 // Place copy #1 of ITS2 in I1D1
2682 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2683 sub5node->SetLineColor(kColorITS);
2684 fNodes->Add(sub5node);
2686 fNodes->Add(sub4node);
2688 fNodes->Add(sub3node);
2691 // Place copy #4 of I1D7 in I20B
2693 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2694 sub3node->SetLineColor(kColorITS);
2695 sub3node->SetVisibility(0);
2698 // Place copy #1 of I1D1 in I1D7
2700 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2701 sub4node->SetLineColor(kColorITS);
2702 sub4node->SetVisibility(0);
2705 // Place copy #1 of ITS2 in I1D1
2707 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2708 sub5node->SetLineColor(kColorITS);
2709 fNodes->Add(sub5node);
2711 fNodes->Add(sub4node);
2713 fNodes->Add(sub3node);
2715 fNodes->Add(sub2node);
2717 fNodes->Add(sub1node);
2720 // Place copy #4 of I12B in IT12
2722 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
2723 sub1node->SetLineColor(kColorITS);
2724 sub1node->SetVisibility(0);
2727 // Place copy #1 of I10B in I12B
2729 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2730 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2731 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2732 sub2node->SetLineColor(kColorITS);
2733 sub2node->SetVisibility(0);
2736 // Place copy #1 of I107 in I10B
2738 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2739 sub3node->SetLineColor(kColorITS);
2740 sub3node->SetVisibility(0);
2743 // Place copy #1 of I101 in I107
2745 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2746 sub4node->SetLineColor(kColorITS);
2747 sub4node->SetVisibility(0);
2750 // Place copy #1 of ITS1 in I101
2752 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2753 sub5node->SetLineColor(kColorITS);
2754 fNodes->Add(sub5node);
2756 fNodes->Add(sub4node);
2758 fNodes->Add(sub3node);
2761 // Place copy #2 of I107 in I10B
2763 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2764 sub3node->SetLineColor(kColorITS);
2765 sub3node->SetVisibility(0);
2768 // Place copy #1 of I101 in I107
2770 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2771 sub4node->SetLineColor(kColorITS);
2772 sub4node->SetVisibility(0);
2775 // Place copy #1 of ITS1 in I101
2777 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2778 sub5node->SetLineColor(kColorITS);
2779 fNodes->Add(sub5node);
2781 fNodes->Add(sub4node);
2783 fNodes->Add(sub3node);
2786 // Place copy #3 of I107 in I10B
2788 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2789 sub3node->SetLineColor(kColorITS);
2790 sub3node->SetVisibility(0);
2793 // Place copy #1 of I101 in I107
2795 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2796 sub4node->SetLineColor(kColorITS);
2797 sub4node->SetVisibility(0);
2800 // Place copy #1 of ITS1 in I101
2802 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2803 sub5node->SetLineColor(kColorITS);
2804 fNodes->Add(sub5node);
2806 fNodes->Add(sub4node);
2808 fNodes->Add(sub3node);
2811 // Place copy #4 of I107 in I10B
2813 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2814 sub3node->SetLineColor(kColorITS);
2815 sub3node->SetVisibility(0);
2818 // Place copy #1 of I101 in I107
2820 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2821 sub4node->SetLineColor(kColorITS);
2822 sub4node->SetVisibility(0);
2825 // Place copy #1 of ITS1 in I101
2827 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2828 sub5node->SetLineColor(kColorITS);
2829 fNodes->Add(sub5node);
2831 fNodes->Add(sub4node);
2833 fNodes->Add(sub3node);
2835 fNodes->Add(sub2node);
2838 // Place copy #2 of I10B in I12B
2840 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2841 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2842 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2843 sub2node->SetLineColor(kColorITS);
2844 sub2node->SetVisibility(0);
2847 // Place copy #1 of I107 in I10B
2849 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2850 sub3node->SetLineColor(kColorITS);
2851 sub3node->SetVisibility(0);
2854 // Place copy #1 of I101 in I107
2856 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2857 sub4node->SetLineColor(kColorITS);
2858 sub4node->SetVisibility(0);
2861 // Place copy #1 of ITS1 in I101
2863 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2864 sub5node->SetLineColor(kColorITS);
2865 fNodes->Add(sub5node);
2867 fNodes->Add(sub4node);
2869 fNodes->Add(sub3node);
2872 // Place copy #2 of I107 in I10B
2874 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2875 sub3node->SetLineColor(kColorITS);
2876 sub3node->SetVisibility(0);
2879 // Place copy #1 of I101 in I107
2881 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2882 sub4node->SetLineColor(kColorITS);
2883 sub4node->SetVisibility(0);
2886 // Place copy #1 of ITS1 in I101
2888 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2889 sub5node->SetLineColor(kColorITS);
2890 fNodes->Add(sub5node);
2892 fNodes->Add(sub4node);
2894 fNodes->Add(sub3node);
2897 // Place copy #3 of I107 in I10B
2899 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2900 sub3node->SetLineColor(kColorITS);
2901 sub3node->SetVisibility(0);
2904 // Place copy #1 of I101 in I107
2906 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2907 sub4node->SetLineColor(kColorITS);
2908 sub4node->SetVisibility(0);
2911 // Place copy #1 of ITS1 in I101
2913 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2914 sub5node->SetLineColor(kColorITS);
2915 fNodes->Add(sub5node);
2917 fNodes->Add(sub4node);
2919 fNodes->Add(sub3node);
2922 // Place copy #4 of I107 in I10B
2924 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2925 sub3node->SetLineColor(kColorITS);
2926 sub3node->SetVisibility(0);
2929 // Place copy #1 of I101 in I107
2931 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2932 sub4node->SetLineColor(kColorITS);
2933 sub4node->SetVisibility(0);
2936 // Place copy #1 of ITS1 in I101
2938 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2939 sub5node->SetLineColor(kColorITS);
2940 fNodes->Add(sub5node);
2942 fNodes->Add(sub4node);
2944 fNodes->Add(sub3node);
2946 fNodes->Add(sub2node);
2949 // Place copy #1 of I20B in I12B
2951 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2952 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2953 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2954 sub2node->SetLineColor(kColorITS);
2955 sub2node->SetVisibility(0);
2958 // Place copy #1 of I1D7 in I20B
2960 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2961 sub3node->SetLineColor(kColorITS);
2962 sub3node->SetVisibility(0);
2965 // Place copy #1 of I1D1 in I1D7
2967 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2968 sub4node->SetLineColor(kColorITS);
2969 sub4node->SetVisibility(0);