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 ///////////////////////////////////////////////////////////////////////////////
20 // Inner Traking System version PPR asymmetric //
21 // This class contains the base procedures for the Inner Tracking System //
23 // Authors: R. Barbera //
25 // Created January 15 2001. //
27 // NOTE: THIS IS THE ASYMMETRIC PPR geometry of the ITS. //
29 ///////////////////////////////////////////////////////////////////////////////
31 // See AliITSvPPRasymm::StepManager().
32 #include <Riostream.h>
37 //#include <TCanvas.h>
38 #include <TClonesArray.h>
39 //#include <TFile.h> // only required for Tracking function?
40 #include <TGeometry.h>
41 #include <TLorentzVector.h>
44 //#include <TObjArray.h>
45 //#include <TObjString.h>
47 //#include <TSystem.h>
50 #include <TVirtualMC.h>
55 #include "AliITSGeant3Geometry.h"
56 #include "AliTrackReference.h"
57 #include "AliITShit.h"
59 #include "AliITSvPPRasymm.h"
60 #include "AliITSgeom.h"
61 #include "AliITSgeomSDD.h"
62 #include "AliITSgeomSPD.h"
63 #include "AliITSgeomSSD.h"
64 #include "AliITShit.h"
65 #include "AliITSresponseSDD.h"
66 #include "AliITSresponseSPD.h"
67 #include "AliITSresponseSSD.h"
68 #include "AliITSsegmentationSDD.h"
69 #include "AliITSsegmentationSPD.h"
70 #include "AliITSsegmentationSSD.h"
71 #include "AliITSsimulationSDD.h"
72 #include "AliITSsimulationSPD.h"
73 #include "AliITSsimulationSSD.h"
74 #include "AliITSvPPRasymm.h"
78 ClassImp(AliITSvPPRasymm)
80 //_____________________________________________________________________________
81 AliITSvPPRasymm::AliITSvPPRasymm() {
82 ////////////////////////////////////////////////////////////////////////
83 // Standard default constructor for the ITS version 8.
84 ////////////////////////////////////////////////////////////////////////
90 fEuclidOut = kFALSE; // Don't write Euclide file
91 fGeomDetOut = kFALSE; // Don't write .det file
92 fGeomDetIn = kFALSE; // Don't Read .det file
93 fMajorVersion = IsVersion();
95 for(i=0;i<60;i++) fRead[i] = '\0';
96 for(i=0;i<60;i++) fWrite[i] = '\0';
97 for(i=0;i<60;i++) fEuclidGeomDet[i] = '\0';
99 //_____________________________________________________________________________
100 AliITSvPPRasymm::AliITSvPPRasymm(const char *name, const char *title) : AliITS(name, title){
101 ////////////////////////////////////////////////////////////////////////
102 // Standard constructor for the ITS version 8.
103 ////////////////////////////////////////////////////////////////////////
107 fIdName = new TString[fIdN];
114 fIdSens = new Int_t[fIdN];
115 for(i=0;i<fIdN;i++) fIdSens[i] = 0;
116 fMajorVersion = IsVersion();
118 fEuclidOut = kFALSE; // Don't write Euclide file
119 fGeomDetOut = kFALSE; // Don't write .det file
120 fGeomDetIn = kFALSE; // Don't Read .det file
126 fEuclidGeometry="$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.euc";
127 strncpy(fEuclidGeomDet,"$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det",60);
128 strncpy(fRead,fEuclidGeomDet,60);
129 strncpy(fWrite,fEuclidGeomDet,60);
131 //____________________________________________________________________________
132 AliITSvPPRasymm::AliITSvPPRasymm(const AliITSvPPRasymm &source):AliITS(source){
133 ////////////////////////////////////////////////////////////////////////
134 // Copy Constructor for ITS version 8.
135 ////////////////////////////////////////////////////////////////////////
136 if(&source == this) return;
137 Warning("Copy Constructor","Not allowed to copy AliITSvPPRasymm");
140 //_____________________________________________________________________________
141 AliITSvPPRasymm& AliITSvPPRasymm::operator=(const AliITSvPPRasymm &source){
142 ////////////////////////////////////////////////////////////////////////
143 // Assignment operator for the ITS version 8.
144 ////////////////////////////////////////////////////////////////////////
145 if(&source == this) return *this;
146 Warning("= operator","Not allowed to copy AliITSvPPRasymm");
149 //_____________________________________________________________________________
150 AliITSvPPRasymm::~AliITSvPPRasymm() {
151 ////////////////////////////////////////////////////////////////////////
152 // Standard destructor for the ITS version 8.
153 ////////////////////////////////////////////////////////////////////////
155 //__________________________________________________________________________
156 void AliITSvPPRasymm::BuildGeometry(){
157 ////////////////////////////////////////////////////////////////////////
158 // Geometry builder for the ITS version 8.
159 ////////////////////////////////////////////////////////////////////////
162 const Int_t kColorITS=kYellow;
164 top = gAlice->GetGeometry()->GetNode("alice");
167 new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
169 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
170 node->SetLineColor(kColorITS);
173 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
175 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
176 node->SetLineColor(kColorITS);
179 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
181 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
182 node->SetLineColor(kColorITS);
185 new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
187 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
188 node->SetLineColor(kColorITS);
191 new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
193 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
194 node->SetLineColor(kColorITS);
197 new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
199 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
200 node->SetLineColor(kColorITS);
207 TNode *sub1node, *sub2node, *sub3node, *sub4node, *sub5node;
209 // Define some variables for SPD
212 Float_t dits1[3], di101[3], di107[3], di10b[3]; // for layer 1
213 Float_t di103[3], di10a[3]; // for layer 1
214 Float_t dits2[3], di1d1[3], di1d7[3], di20b[3]; // for layer 2
215 Float_t di1d3[3], di20a[3]; // for layer 2
217 Float_t ddet1=200.; // total detector thickness on layer 1 (micron)
218 Float_t dchip1=200.; // total chip thickness on layer 1 (micron)
220 Float_t ddet2=200.; // total detector thickness on layer 2 (micron)
221 Float_t dchip2=200.; // total chip thickness on layer 2 (micron)
223 Float_t dbus=300.; // total bus thickness on both layers (micron)
225 ddet1 = GetThicknessDet1();
226 ddet2 = GetThicknessDet2();
227 dchip1 = GetThicknessChip1();
228 dchip2 = GetThicknessChip2();
230 cout << "par: " << ddet1 << " " << ddet2 << " " << ddet2 << " " << dchip1 << " " << dchip2 << endl;
232 if(ddet1 < 100. || ddet1 > 300.) {
233 cout << "ITS - WARNING: the detector thickness for layer 1 is outside the range of [100,300] microns."
234 " The default value of 200 microns will be used." << endl;
238 if(ddet2 < 100. || ddet2 > 300.) {
239 cout << "ITS - WARNING: the detector thickness for layer 2 is outside the range of [100,300] microns."
240 " The default value of 200 microns will be used." << endl;
244 if(dchip1 < 100. || dchip1 > 300.) {
245 cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
246 " The default value of 200 microns will be used." << endl;
250 if(dchip2 < 100. || dchip2 > 300.) {
251 cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
252 " The default value of 200 microns will be used." << endl;
256 cout << "ITS: Detector thickness on layer 1 is set to " << ddet1 << " microns." << endl;
257 cout << "ITS: Chip thickness on layer 1 is set to " << dchip1 << " microns." << endl;
258 cout << "ITS: Detector thickness on layer 2 is set to " << ddet2 << " microns." << endl;
259 cout << "ITS: Chip thickness on layer 2 is set to " << dchip2 << " microns." << endl;
261 ddet1 = ddet1*0.0001/2.; // conversion from tot length in um to half in cm
262 ddet2 = ddet2*0.0001/2.; // conversion from tot length in um to half in cm
263 dchip1 = dchip1*0.0001/2.;// conversion from tot length in um to half in cm
264 dchip2 = dchip2*0.0001/2.;// conversion from tot length in um to half in cm
265 dbus = dbus*0.0001/2.; // conversion from tot length in um to half in cm
267 Float_t deltax, deltay;
269 Int_t thickness = fMinorVersion/10;
270 Int_t option = fMinorVersion - 10*thickness;
273 // Define some variables for SDD
274 // SDD detector ladder
277 Float_t I302dits[3], I402dits[3], I004dits[3], I005dits[3];
278 Float_t Y_SDD_sep = 0.20;
279 Float_t Z_SDD_lay3[6] = {18.55, 10.95, 3.70, -3.70, -11.20, -18.35};
280 Float_t Z_SDD_lay4[8] = {25.75, 18.60, 11.00, 3.70, -3.70, -11.20, -18.45, -26.05};
288 new TRotMatrix("itsrot238","itsrot238",90.0,144.0,90.0,234.0,0.0,0.0);
289 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
290 new TRotMatrix("itsrot239","itsrot239",90.0,216.0,90.0,306.0,0.0,0.0);
291 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0 );
292 new TRotMatrix("itsrot240","itsrot240",90.0,288.0,90.0,18.0,0.0,0.0);
293 new TRotMatrix("itsrot241","itsrot241",90.0,324.0,90.0,54.0,0.0,0.0);
294 new TRotMatrix("itsrot242","itsrot242",90.0,36.0,90.0,126.0,0.0,0.0);
295 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
296 new TRotMatrix("itsrot243","itsrot243",90.0,108.0,90.0,198.0,0.0,0.0);
297 new TRotMatrix("itsrot244","itsrot244",90.0,180.0,90.0,270.0,0.0,0.0);
298 new TRotMatrix("itsrot245","itsrot245",90.0,162.0,90.0,252.0,0.0,0.0);
299 new TRotMatrix("itsrot246","itsrot246",90.0,310.0,90.0,40.0,0.0,0.0);
300 new TRotMatrix("itsrot247","itsrot247",90.0,319.0,90.0,49.0,0.0,0.0);
301 new TRotMatrix("itsrot248","itsrot248",90.0,328.0,90.0,58.0,0.0,0.0);
302 new TRotMatrix("itsrot249","itsrot249",90.0,337.0,90.0,67.0,0.0,0.0);
306 // SPD - option 'b' (this is the default)
310 new TRotMatrix("itsrot233","itsrot233",90.0,252.000504,90.0,342.000488,0.0,0.0);
311 new TRotMatrix("itsrot244","itsrot244",90.0,216.0,90.0,306.0,0.0,0.0);
312 new TRotMatrix("itsrot236","itsrot236",90.0,180.013702,90.0,270.013702,0.0,0.0);
313 new TRotMatrix("itsrot245","itsrot245",90.0,36.0,90.0,126.0,0.0,0.0);
314 new TRotMatrix("itsrot234","itsrot234",90.0,71.9991,90.0,161.9991,0.0,0.0);
315 new TRotMatrix("itsrot246","itsrot246",90.0,108.0,90.0,198.0,0.0,0.0);
316 new TRotMatrix("itsrot247","itsrot247",90.0,144.0,90.0,234.0,0.0,0.0);
317 new TRotMatrix("itsrot248","itsrot248",90.0,288.0,90.0,18.0,0.0,0.0);
318 new TRotMatrix("itsrot249","itsrot249",90.0,324.0,90.0,54.0,0.0,0.0);
319 new TRotMatrix("itsrot238","itsrot238",90.0,180.0,90.0,270.0,0.0,0.0);
320 new TRotMatrix("itsrot239","itsrot239",90.0,162.0,90.0,252.0,0.0,0.0);
321 new TRotMatrix("itsrot240","itsrot240",90.0,310.0,90.0,40.0,0.0,0.0);
322 new TRotMatrix("itsrot241","itsrot241",90.0,319.0,90.0,49.0,0.0,0.0);
323 new TRotMatrix("itsrot242","itsrot242",90.0,328.0,90.0,58.0,0.0,0.0);
324 new TRotMatrix("itsrot243","itsrot243",90.0,337.0,90.0,67.0,0.0,0.0);
330 new TRotMatrix("itsrot321","itsrot321",90.0,12.86,90.0,102.86,0.0,0.0);
331 new TRotMatrix("itsrot333","itsrot333",90.0,38.57,90.0,128.57,0.0,0.0);
332 new TRotMatrix("itsrot336","itsrot336",90.0,64.29,90.0,154.29,0.0,0.0);
333 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
334 new TRotMatrix("itsrot313","itsrot313",90.0,115.71,90.0,205.71,0.0,0.0);
335 new TRotMatrix("itsrot311","itsrot311",90.0,141.43,90.0,231.43,0.0,0.0);
336 new TRotMatrix("itsrot310","itsrot310",90.0,167.14,90.0,257.14,0.0,0.0);
337 new TRotMatrix("itsrot386","itsrot386",90.0,192.86,90.0,282.86,0.0,0.0);
338 new TRotMatrix("itsrot309","itsrot309",90.0,218.57,90.0,308.57,0.0,0.0);
339 new TRotMatrix("itsrot308","itsrot308",90.0,244.29,90.0,334.29,0.0,0.0);
340 new TRotMatrix("itsrot356","itsrot356",90.0,270.0,90.0,0.0,0.0,0.0);
341 new TRotMatrix("itsrot307","itsrot307",90.0,295.71,90.0,25.71,0.0,0.0);
342 new TRotMatrix("itsrot306","itsrot306",90.0,321.43,90.0,51.43,0.0,0.0);
343 new TRotMatrix("itsrot305","itsrot305",90.0,347.14,90.0,77.14,0.0,0.0);
344 new TRotMatrix("itsrot335","itsrot335",90.0,8.18,90.0,98.18,0.0,0.0);
345 new TRotMatrix("itsrot332","itsrot332",90.0,24.55,90.0,114.55,0.0,0.0);
346 new TRotMatrix("itsrot331","itsrot331",90.0,40.91,90.0,130.91,0.0,0.0);
347 new TRotMatrix("itsrot366","itsrot366",90.0,57.27,90.0,147.27,0.0,0.0);
348 new TRotMatrix("itsrot330","itsrot330",90.0,73.64,90.0,163.64,0.0,0.0);
349 new TRotMatrix("itsrot350","itsrot350",90.0,90.0,90.0,180.0,0.0,0.0);
350 new TRotMatrix("itsrot329","itsrot329",90.0,106.36,90.0,196.36,0.0,0.0);
351 new TRotMatrix("itsrot328","itsrot328",90.0,122.73,90.0,212.73,0.0,0.0);
352 new TRotMatrix("itsrot327","itsrot327",90.0,139.09,90.0,229.09,0.0,0.0);
353 new TRotMatrix("itsrot326","itsrot326",90.0,155.45,90.0,245.45,0.0,0.0);
354 new TRotMatrix("itsrot325","itsrot325",90.0,171.82,90.0,261.82,0.0,0.0);
355 new TRotMatrix("itsrot324","itsrot324",90.0,188.18,90.0,278.18,0.0,0.0);
356 new TRotMatrix("itsrot323","itsrot323",90.0,204.55,90.0,294.55,0.0,0.0);
357 new TRotMatrix("itsrot322","itsrot322",90.0,220.91,90.0,310.91,0.0,0.0);
358 new TRotMatrix("itsrot320","itsrot320",90.0,237.27,90.0,327.27,0.0,0.0);
359 new TRotMatrix("itsrot319","itsrot319",90.0,253.64,90.0,343.64,0.0,0.0);
360 new TRotMatrix("itsrot318","itsrot318",90.0,270.0,90.0,360.0,0.0,0.0);
361 new TRotMatrix("itsrot317","itsrot317",90.0,286.36,90.0,16.36,0.0,0.0);
362 new TRotMatrix("itsrot316","itsrot316",90.0,302.73,90.0,32.73,0.0,0.0);
363 new TRotMatrix("itsrot315","itsrot315",90.0,319.09,90.0,49.09,0.0,0.0);
364 new TRotMatrix("itsrot314","itsrot314",90.0,335.45,90.0,65.45,0.0,0.0);
365 new TRotMatrix("itsrot334","itsrot334",90.0,351.82,90.0,81.82,0.0,0.0);
369 new TRotMatrix("itsrot504","itsrot504",90.0,127.06,90.0,217.06,0.0,0.0);
370 new TRotMatrix("itsrot505","itsrot505",90.0,116.47,90.0,206.47,0.0,0.0);
371 new TRotMatrix("itsrot506","itsrot506",90.0,105.88,90.0,195.88,0.0,0.0);
372 new TRotMatrix("itsrot507","itsrot507",90.0,95.29,90.0,185.29,0.0,0.0);
373 new TRotMatrix("itsrot508","itsrot508",90.0,84.71,90.0,174.71,0.0,0.0);
374 new TRotMatrix("itsrot509","itsrot509",90.0,74.12,90.0,164.12,0.0,0.0);
375 new TRotMatrix("itsrot510","itsrot510",90.0,63.53,90.0,153.53,0.0,0.0);
376 new TRotMatrix("itsrot511","itsrot511",90.0,52.94,90.0,142.94,0.0,0.0);
377 new TRotMatrix("itsrot512","itsrot512",90.0,42.35,90.0,132.35,0.0,0.0);
378 new TRotMatrix("itsrot513","itsrot513",90.0,31.76,90.0,121.76,0.0,0.0);
379 new TRotMatrix("itsrot653","itsrot653",90.0,21.18,90.0,111.18,0.0,0.0);
380 new TRotMatrix("itsrot514","itsrot514",90.0,10.59,90.0,100.59,0.0,0.0);
381 new TRotMatrix("itsrot515","itsrot515",90.0,349.41,90.0,79.41,0.0,0.0);
382 new TRotMatrix("itsrot516","itsrot516",90.0,338.82,90.0,68.82,0.0,0.0);
383 new TRotMatrix("itsrot517","itsrot517",90.0,328.24,90.0,58.24,0.0,0.0);
384 new TRotMatrix("itsrot518","itsrot518",90.0,317.65,90.0,47.65,0.0,0.0);
385 new TRotMatrix("itsrot519","itsrot519",90.0,307.06,90.0,37.06,0.0,0.0);
386 new TRotMatrix("itsrot520","itsrot520",90.0,296.47,90.0,26.47,0.0,0.0);
387 new TRotMatrix("itsrot521","itsrot521",90.0,285.88,90.0,15.88,0.0,0.0);
388 new TRotMatrix("itsrot522","itsrot522",90.0,275.29,90.0,5.29,0.0,0.0);
389 new TRotMatrix("itsrot523","itsrot523",90.0,264.71,90.0,354.71,0.0,0.0);
390 new TRotMatrix("itsrot524","itsrot524",90.0,254.12,90.0,344.12,0.0,0.0);
391 new TRotMatrix("itsrot525","itsrot525",90.0,243.53,90.0,333.53,0.0,0.0);
392 new TRotMatrix("itsrot526","itsrot526",90.0,232.94,90.0,322.94,0.0,0.0);
393 new TRotMatrix("itsrot527","itsrot527",90.0,222.35,90.0,312.35,0.0,0.0);
394 new TRotMatrix("itsrot528","itsrot528",90.0,211.76,90.0,301.76,0.0,0.0);
395 new TRotMatrix("itsrot618","itsrot618",90.0,201.18,90.0,291.18,0.0,0.0);
396 new TRotMatrix("itsrot529","itsrot529",90.0,190.59,90.0,280.59,0.0,0.0);
397 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
398 new TRotMatrix("itsrot530","itsrot530",90.0,169.41,90.0,259.41,0.0,0.0);
399 new TRotMatrix("itsrot531","itsrot531",90.0,158.82,90.0,248.82,0.0,0.0);
400 new TRotMatrix("itsrot501","itsrot501",90.0,148.24,90.0,238.24,0.0,0.0);
401 new TRotMatrix("itsrot503","itsrot503",90.0,137.65,90.0,227.65,0.0,0.0);
402 new TRotMatrix("itsrot532","itsrot532",90.0,360.0,90.0,90.0,0.0,0.0);
403 new TRotMatrix("itsrot560","itsrot560",90.0,85.26,90.0,175.26,0.0,0.0);
404 new TRotMatrix("itsrot561","itsrot561",90.0,94.74,90.0,184.74,0.0,0.0);
405 new TRotMatrix("itsrot562","itsrot562",90.0,104.21,90.0,194.21,0.0,0.0);
406 new TRotMatrix("itsrot563","itsrot563",90.0,113.68,90.0,203.68,0.0,0.0);
407 new TRotMatrix("itsrot564","itsrot564",90.0,123.16,90.0,213.16,0.0,0.0);
408 new TRotMatrix("itsrot565","itsrot565",90.0,132.63,90.0,222.63,0.0,0.0);
409 new TRotMatrix("itsrot566","itsrot566",90.0,142.11,90.0,232.11,0.0,0.0);
410 new TRotMatrix("itsrot567","itsrot567",90.0,151.58,90.0,241.58,0.0,0.0);
411 new TRotMatrix("itsrot568","itsrot568",90.0,161.05,90.0,251.05,0.0,0.0);
412 new TRotMatrix("itsrot569","itsrot569",90.0,170.53,90.0,260.53,0.0,0.0);
413 new TRotMatrix("itsrot533","itsrot533",90.0,180.0,90.0,270.0,0.0,0.0);
414 new TRotMatrix("itsrot534","itsrot534",90.0,189.47,90.0,279.47,0.0,0.0);
415 new TRotMatrix("itsrot535","itsrot535",90.0,198.95,90.0,288.95,0.0,0.0);
416 new TRotMatrix("itsrot623","itsrot623",90.0,208.42,90.0,298.42,0.0,0.0);
417 new TRotMatrix("itsrot537","itsrot537",90.0,217.89,90.0,307.89,0.0,0.0);
418 new TRotMatrix("itsrot538","itsrot538",90.0,227.37,90.0,317.37,0.0,0.0);
419 new TRotMatrix("itsrot539","itsrot539",90.0,236.84,90.0,326.84,0.0,0.0);
420 new TRotMatrix("itsrot540","itsrot540",90.0,246.32,90.0,336.32,0.0,0.0);
421 new TRotMatrix("itsrot541","itsrot541",90.0,255.79,90.0,345.79,0.0,0.0);
422 new TRotMatrix("itsrot542","itsrot542",90.0,265.26,90.0,355.26,0.0,0.0);
423 new TRotMatrix("itsrot543","itsrot543",90.0,274.74,90.0,4.74,0.0,0.0);
424 new TRotMatrix("itsrot544","itsrot544",90.0,284.21,90.0,14.21,0.0,0.0);
425 new TRotMatrix("itsrot545","itsrot545",90.0,293.68,90.0,23.68,0.0,0.0);
426 new TRotMatrix("itsrot546","itsrot546",90.0,303.16,90.0,33.16,0.0,0.0);
427 new TRotMatrix("itsrot547","itsrot547",90.0,312.63,90.0,42.63,0.0,0.0);
428 new TRotMatrix("itsrot548","itsrot548",90.0,322.11,90.0,52.11,0.0,0.0);
429 new TRotMatrix("itsrot549","itsrot549",90.0,331.58,90.0,61.58,0.0,0.0);
430 new TRotMatrix("itsrot550","itsrot550",90.0,341.05,90.0,71.05,0.0,0.0);
431 new TRotMatrix("itsrot551","itsrot551",90.0,350.53,90.0,80.53,0.0,0.0);
432 new TRotMatrix("itsrot552","itsrot552",90.0,9.47,90.0,99.47,0.0,0.0);
433 new TRotMatrix("itsrot553","itsrot553",90.0,18.95,90.0,108.95,0.0,0.0);
434 new TRotMatrix("itsrot620","itsrot620",90.0,28.42,90.0,118.42,0.0,0.0);
435 new TRotMatrix("itsrot555","itsrot555",90.0,37.89,90.0,127.89,0.0,0.0);
436 new TRotMatrix("itsrot556","itsrot556",90.0,47.37,90.0,137.37,0.0,0.0);
437 new TRotMatrix("itsrot557","itsrot557",90.0,56.84,90.0,146.84,0.0,0.0);
438 new TRotMatrix("itsrot558","itsrot558",90.0,66.32,90.0,156.32,0.0,0.0);
439 new TRotMatrix("itsrot559","itsrot559",90.0,75.79,90.0,165.79,0.0,0.0);
442 // --- Define SPD (option 'a') volumes ----------------------------
445 // (this is NOT the default)
452 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
457 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
462 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
467 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
470 di103[1] = ddet1+dchip1;
472 new TBRIK("I103","I103","void",di103[0],di103[1],di103[2]);
475 di1d3[1] = ddet2+dchip2;
477 new TBRIK("I1D3","I1D3","void",di1d3[0],di1d3[1],di1d3[2]);
480 di10a[1] = ddet1+dchip1+dbus+0.0025;
482 new TBRIK("I10A","I10A","void",di10a[0],di10a[1],di10a[2]);
485 di20a[1] = ddet2+dchip2+dbus+0.0025;
487 new TBRIK("I20A","I20A","void",di20a[0],di20a[1],di20a[2]);
494 new TTUBS("I12A","I12A","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
499 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
503 // --- Define SPD (option 'b') volumes ----------------------------
506 // (this is the default)
513 new TBRIK("ITS1","ITS1","void",dits1[0],dits1[1],dits1[2]);
518 new TBRIK("ITS2","ITS2","void",dits2[0],dits2[1],dits2[2]);
523 new TBRIK("I101","I101","void",di101[0],di101[1],di101[2]);
528 new TBRIK("I1D1","I1D1","void",di1d1[0],di1d1[1],di1d1[2]);
531 di107[1] = ddet1+dchip1;
533 new TBRIK("I107","I107","void",di107[0],di107[1],di107[2]);
536 di1d7[1] = ddet2+dchip2;
538 new TBRIK("I1D7","I1D7","void",di1d7[0],di1d7[1],di1d7[2]);
541 di10b[1] = ddet1+dchip1+dbus+0.0025;
543 new TBRIK("I10B","I10B","void",di10b[0],di10b[1],di10b[2]);
546 di20b[1] = ddet2+dchip2+dbus+0.0025;
548 new TBRIK("I20B","I20B","void",di20b[0],di20b[1],di20b[2]);
555 new TTUBS("I12B","I12B","void",dits[0],dits[1],dits[2],dits[3],dits[4]);
560 new TTUBE("IT12","IT12","void",dits[0],dits[1],dits[2]);
565 // --- Define SDD volumes ------------------------------------------
567 TPCON *it34 = new TPCON("IT34","IT34","void",0.,360.,6);
568 it34->DefineSection(0,-34.6,23.49,28.);
569 it34->DefineSection(1,-23.65,23.49,28.);
570 it34->DefineSection(2,-23.65,14.59,28.);
571 it34->DefineSection(3,23.65,14.59,28.);
572 it34->DefineSection(4,23.65,23.49,28.);
573 it34->DefineSection(5,34.6,23.49,28.);
575 I302dits[0] = 3.6250;
576 I302dits[1] = 0.0150;
577 I302dits[2] = 4.3794;
578 new TBRIK("I302","I302","void",I302dits[0],I302dits[1],I302dits[2]);
580 I004dits[0] = I302dits[0]+0.005;
581 I004dits[1] = 2*I302dits[1]+Y_SDD_sep/2.;
582 I004dits[2] = TMath::Abs(Z_SDD_lay3[0]);
583 if (I004dits[2] < TMath::Abs(Z_SDD_lay3[5])) {
584 I004dits[2] = TMath::Abs(Z_SDD_lay3[5]);
586 I004dits[2] = I004dits[2] + I302dits[2];
587 new TBRIK("I004","I004","void",I004dits[0],I004dits[1],I004dits[2]);
592 new TBRIK("ITS3","ITS3","void",dits[0],dits[1],dits[2]);
594 I402dits[0] = 3.6250;
595 I402dits[1] = 0.0150;
596 I402dits[2] = 4.3794;
597 new TBRIK("I402","I402","void",I402dits[0],I402dits[1],I402dits[2]);
599 I005dits[0] = I402dits[0]+0.005;
600 I005dits[1] = 2*I402dits[1]+Y_SDD_sep/2.;
601 I005dits[2] = TMath::Abs(Z_SDD_lay4[0]);
602 if (I005dits[2] < TMath::Abs(Z_SDD_lay4[7])) {
603 I005dits[2] = TMath::Abs(Z_SDD_lay4[7]);
605 I005dits[2] = I005dits[2] + I402dits[2];
606 new TBRIK("I005","I005","void",I005dits[0],I005dits[1],I005dits[2]);
611 new TBRIK("ITS4","ITS4","void",dits[0],dits[1],dits[2]);
614 // --- Define SSD volumes ------------------------------------------
617 TPCON *it56 = new TPCON("IT56","IT56","void",0.,360.,6);
618 it56->DefineSection(0,-57.45,43.6,48.);
619 it56->DefineSection(1,-49.15,43.6,48.);
620 it56->DefineSection(2,-49.15,36.9,48.);
621 it56->DefineSection(3,50.55,36.9,48.);
622 it56->DefineSection(4,50.55,43.6,48.);
623 it56->DefineSection(5,57.45,43.6,48.);
628 new TBRIK("I565","I565","void",dits[0],dits[1],dits[2]);
633 new TBRIK("I569","I569","void",dits[0],dits[1],dits[2]);
638 new TBRIK("I562","I562","void",dits[0],dits[1],dits[2]);
643 new TBRIK("I566","I566","void",dits[0],dits[1],dits[2]);
648 new TBRIK("ITS5","ITS5","void",dits[0],dits[1],dits[2]);
653 new TBRIK("ITS6","ITS6","void",dits[0],dits[1],dits[2]);
659 // --- Place SPD (option 'a') volumes into their mother volume
662 // (this is NOT the default)
670 // --- Place SPD (option 'b') volumes into their mother volume
673 // (this is the default)
677 // Place IT12 in Alice
679 node = new TNode("IT12","IT12","IT12",0.,0.,0.,"");
680 node->SetLineColor(kColorITS);
681 node->SetVisibility(0);
684 // Place copy #1 of I12B in IT12
686 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"");
687 sub1node->SetLineColor(kColorITS);
688 sub1node->SetVisibility(0);
691 // Place copy #1 of I10B in I12B
693 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
694 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
695 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
696 sub2node->SetLineColor(kColorITS);
697 sub2node->SetVisibility(0);
700 // Place copy #1 of I107 in I10B
702 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
703 sub3node->SetLineColor(kColorITS);
704 sub3node->SetVisibility(0);
707 // Place copy #1 of I101 in I107
709 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
710 sub4node->SetLineColor(kColorITS);
711 sub4node->SetVisibility(0);
714 // Place copy #1 of ITS1 in I101
716 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
717 sub5node->SetLineColor(kColorITS);
718 fNodes->Add(sub5node);
720 fNodes->Add(sub4node);
722 fNodes->Add(sub3node);
725 // Place copy #2 of I107 in I10B
727 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
728 sub3node->SetLineColor(kColorITS);
729 sub3node->SetVisibility(0);
732 // Place copy #1 of I101 in I107
734 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
735 sub4node->SetLineColor(kColorITS);
736 sub4node->SetVisibility(0);
739 // Place copy #1 of ITS1 in I101
741 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
742 sub5node->SetLineColor(kColorITS);
743 fNodes->Add(sub5node);
745 fNodes->Add(sub4node);
747 fNodes->Add(sub3node);
750 // Place copy #3 of I107 in I10B
752 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
753 sub3node->SetLineColor(kColorITS);
754 sub3node->SetVisibility(0);
757 // Place copy #1 of I101 in I107
759 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
760 sub4node->SetLineColor(kColorITS);
761 sub4node->SetVisibility(0);
764 // Place copy #1 of ITS1 in I101
766 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
767 sub5node->SetLineColor(kColorITS);
768 fNodes->Add(sub5node);
770 fNodes->Add(sub4node);
772 fNodes->Add(sub3node);
775 // Place copy #4 of I107 in I10B
777 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
778 sub3node->SetLineColor(kColorITS);
779 sub3node->SetVisibility(0);
782 // Place copy #1 of I101 in I107
784 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
785 sub4node->SetLineColor(kColorITS);
786 sub4node->SetVisibility(0);
789 // Place copy #1 of ITS1 in I101
791 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
792 sub5node->SetLineColor(kColorITS);
793 fNodes->Add(sub5node);
795 fNodes->Add(sub4node);
797 fNodes->Add(sub3node);
799 fNodes->Add(sub2node);
802 // Place copy #2 of I10B in I12B
804 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
805 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
806 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
807 sub2node->SetLineColor(kColorITS);
808 sub2node->SetVisibility(0);
811 // Place copy #1 of I107 in I10B
813 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
814 sub3node->SetLineColor(kColorITS);
815 sub3node->SetVisibility(0);
818 // Place copy #1 of I101 in I107
820 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
821 sub4node->SetLineColor(kColorITS);
822 sub4node->SetVisibility(0);
825 // Place copy #1 of ITS1 in I101
827 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
828 sub5node->SetLineColor(kColorITS);
829 fNodes->Add(sub5node);
831 fNodes->Add(sub4node);
833 fNodes->Add(sub3node);
836 // Place copy #2 of I107 in I10B
838 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
839 sub3node->SetLineColor(kColorITS);
840 sub3node->SetVisibility(0);
843 // Place copy #1 of I101 in I107
845 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
846 sub4node->SetLineColor(kColorITS);
847 sub4node->SetVisibility(0);
850 // Place copy #1 of ITS1 in I101
852 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
853 sub5node->SetLineColor(kColorITS);
854 fNodes->Add(sub5node);
856 fNodes->Add(sub4node);
858 fNodes->Add(sub3node);
861 // Place copy #3 of I107 in I10B
863 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
864 sub3node->SetLineColor(kColorITS);
865 sub3node->SetVisibility(0);
868 // Place copy #1 of I101 in I107
870 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
871 sub4node->SetLineColor(kColorITS);
872 sub4node->SetVisibility(0);
875 // Place copy #1 of ITS1 in I101
877 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
878 sub5node->SetLineColor(kColorITS);
879 fNodes->Add(sub5node);
881 fNodes->Add(sub4node);
883 fNodes->Add(sub3node);
886 // Place copy #4 of I107 in I10B
888 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
889 sub3node->SetLineColor(kColorITS);
890 sub3node->SetVisibility(0);
893 // Place copy #1 of I101 in I107
895 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
896 sub4node->SetLineColor(kColorITS);
897 sub4node->SetVisibility(0);
900 // Place copy #1 of ITS1 in I101
902 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
903 sub5node->SetLineColor(kColorITS);
904 fNodes->Add(sub5node);
906 fNodes->Add(sub4node);
908 fNodes->Add(sub3node);
910 fNodes->Add(sub2node);
913 // Place copy #1 of I20B in I12B
915 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
916 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
917 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
918 sub2node->SetLineColor(kColorITS);
919 sub2node->SetVisibility(0);
922 // Place copy #1 of I1D7 in I20B
924 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
925 sub3node->SetLineColor(kColorITS);
926 sub3node->SetVisibility(0);
929 // Place copy #1 of I1D1 in I1D7
931 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
932 sub4node->SetLineColor(kColorITS);
933 sub4node->SetVisibility(0);
936 // Place copy #1 of ITS2 in I1D1
938 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
939 sub5node->SetLineColor(kColorITS);
940 fNodes->Add(sub5node);
942 fNodes->Add(sub4node);
944 fNodes->Add(sub3node);
947 // Place copy #2 of I1D7 in I20B
949 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
950 sub3node->SetLineColor(kColorITS);
951 sub3node->SetVisibility(0);
954 // Place copy #1 of I1D1 in I1D7
956 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
957 sub4node->SetLineColor(kColorITS);
958 sub4node->SetVisibility(0);
961 // Place copy #1 of ITS2 in I1D1
963 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
964 sub5node->SetLineColor(kColorITS);
965 fNodes->Add(sub5node);
967 fNodes->Add(sub4node);
969 fNodes->Add(sub3node);
972 // Place copy #3 of I1D7 in I20B
974 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
975 sub3node->SetLineColor(kColorITS);
976 sub3node->SetVisibility(0);
979 // Place copy #1 of I1D1 in I1D7
981 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
982 sub4node->SetLineColor(kColorITS);
983 sub4node->SetVisibility(0);
986 // Place copy #1 of ITS2 in I1D1
988 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
989 sub5node->SetLineColor(kColorITS);
990 fNodes->Add(sub5node);
992 fNodes->Add(sub4node);
994 fNodes->Add(sub3node);
997 // Place copy #4 of I1D7 in I20B
999 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1000 sub3node->SetLineColor(kColorITS);
1001 sub3node->SetVisibility(0);
1004 // Place copy #1 of I1D1 in I1D7
1006 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1007 sub4node->SetLineColor(kColorITS);
1008 sub4node->SetVisibility(0);
1011 // Place copy #1 of ITS2 in I1D1
1013 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1014 sub5node->SetLineColor(kColorITS);
1015 fNodes->Add(sub5node);
1017 fNodes->Add(sub4node);
1019 fNodes->Add(sub3node);
1021 fNodes->Add(sub2node);
1024 // Place copy #2 of I20B in I12B
1026 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1027 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1028 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1029 sub2node->SetLineColor(kColorITS);
1030 sub2node->SetVisibility(0);
1033 // Place copy #1 of I1D7 in I20B
1035 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1036 sub3node->SetLineColor(kColorITS);
1037 sub3node->SetVisibility(0);
1040 // Place copy #1 of I1D1 in I1D7
1042 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1043 sub4node->SetLineColor(kColorITS);
1044 sub4node->SetVisibility(0);
1047 // Place copy #1 of ITS2 in I1D1
1049 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1050 sub5node->SetLineColor(kColorITS);
1051 fNodes->Add(sub5node);
1053 fNodes->Add(sub4node);
1055 fNodes->Add(sub3node);
1058 // Place copy #2 of I1D7 in I20B
1060 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1061 sub3node->SetLineColor(kColorITS);
1062 sub3node->SetVisibility(0);
1065 // Place copy #1 of I1D1 in I1D7
1067 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1068 sub4node->SetLineColor(kColorITS);
1069 sub4node->SetVisibility(0);
1072 // Place copy #1 of ITS2 in I1D1
1074 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1075 sub5node->SetLineColor(kColorITS);
1076 fNodes->Add(sub5node);
1078 fNodes->Add(sub4node);
1080 fNodes->Add(sub3node);
1083 // Place copy #3 of I1D7 in I20B
1085 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1086 sub3node->SetLineColor(kColorITS);
1087 sub3node->SetVisibility(0);
1090 // Place copy #1 of I1D1 in I1D7
1092 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1093 sub4node->SetLineColor(kColorITS);
1094 sub4node->SetVisibility(0);
1097 // Place copy #1 of ITS2 in I1D1
1099 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1100 sub5node->SetLineColor(kColorITS);
1101 fNodes->Add(sub5node);
1103 fNodes->Add(sub4node);
1105 fNodes->Add(sub3node);
1108 // Place copy #4 of I1D7 in I20B
1110 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1111 sub3node->SetLineColor(kColorITS);
1112 sub3node->SetVisibility(0);
1115 // Place copy #1 of I1D1 in I1D7
1117 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1118 sub4node->SetLineColor(kColorITS);
1119 sub4node->SetVisibility(0);
1122 // Place copy #1 of ITS2 in I1D1
1124 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1125 sub5node->SetLineColor(kColorITS);
1126 fNodes->Add(sub5node);
1128 fNodes->Add(sub4node);
1130 fNodes->Add(sub3node);
1132 fNodes->Add(sub2node);
1135 // Place copy #3 of I20B in I12B
1137 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1138 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1139 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1140 sub2node->SetLineColor(kColorITS);
1141 sub2node->SetVisibility(0);
1144 // Place copy #1 of I1D7 in I20B
1146 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1147 sub3node->SetLineColor(kColorITS);
1148 sub3node->SetVisibility(0);
1151 // Place copy #1 of I1D1 in I1D7
1153 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1154 sub4node->SetLineColor(kColorITS);
1155 sub4node->SetVisibility(0);
1158 // Place copy #1 of ITS2 in I1D1
1160 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1161 sub5node->SetLineColor(kColorITS);
1162 fNodes->Add(sub5node);
1164 fNodes->Add(sub4node);
1166 fNodes->Add(sub3node);
1169 // Place copy #2 of I1D7 in I20B
1171 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1172 sub3node->SetLineColor(kColorITS);
1173 sub3node->SetVisibility(0);
1176 // Place copy #1 of I1D1 in I1D7
1178 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1179 sub4node->SetLineColor(kColorITS);
1180 sub4node->SetVisibility(0);
1183 // Place copy #1 of ITS2 in I1D1
1185 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1186 sub5node->SetLineColor(kColorITS);
1187 fNodes->Add(sub5node);
1189 fNodes->Add(sub4node);
1191 fNodes->Add(sub3node);
1194 // Place copy #3 of I1D7 in I20B
1196 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1197 sub3node->SetLineColor(kColorITS);
1198 sub3node->SetVisibility(0);
1201 // Place copy #1 of I1D1 in I1D7
1203 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1204 sub4node->SetLineColor(kColorITS);
1205 sub4node->SetVisibility(0);
1208 // Place copy #1 of ITS2 in I1D1
1210 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1211 sub5node->SetLineColor(kColorITS);
1212 fNodes->Add(sub5node);
1214 fNodes->Add(sub4node);
1216 fNodes->Add(sub3node);
1219 // Place copy #4 of I1D7 in I20B
1221 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1222 sub3node->SetLineColor(kColorITS);
1223 sub3node->SetVisibility(0);
1226 // Place copy #1 of I1D1 in I1D7
1228 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1229 sub4node->SetLineColor(kColorITS);
1230 sub4node->SetVisibility(0);
1233 // Place copy #1 of ITS2 in I1D1
1235 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1236 sub5node->SetLineColor(kColorITS);
1237 fNodes->Add(sub5node);
1239 fNodes->Add(sub4node);
1241 fNodes->Add(sub3node);
1243 fNodes->Add(sub2node);
1246 // Place copy #4 of I20B in I12B
1248 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1249 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1250 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1251 sub2node->SetLineColor(kColorITS);
1252 sub2node->SetVisibility(0);
1255 // Place copy #1 of I1D7 in I20B
1257 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1258 sub3node->SetLineColor(kColorITS);
1259 sub3node->SetVisibility(0);
1262 // Place copy #1 of I1D1 in I1D7
1264 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1265 sub4node->SetLineColor(kColorITS);
1266 sub4node->SetVisibility(0);
1269 // Place copy #1 of ITS2 in I1D1
1271 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1272 sub5node->SetLineColor(kColorITS);
1273 fNodes->Add(sub5node);
1275 fNodes->Add(sub4node);
1277 fNodes->Add(sub3node);
1280 // Place copy #2 of I1D7 in I20B
1282 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1283 sub3node->SetLineColor(kColorITS);
1284 sub3node->SetVisibility(0);
1287 // Place copy #1 of I1D1 in I1D7
1289 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1290 sub4node->SetLineColor(kColorITS);
1291 sub4node->SetVisibility(0);
1294 // Place copy #1 of ITS2 in I1D1
1296 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1297 sub5node->SetLineColor(kColorITS);
1298 fNodes->Add(sub5node);
1300 fNodes->Add(sub4node);
1302 fNodes->Add(sub3node);
1305 // Place copy #3 of I1D7 in I20B
1307 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1308 sub3node->SetLineColor(kColorITS);
1309 sub3node->SetVisibility(0);
1312 // Place copy #1 of I1D1 in I1D7
1314 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1315 sub4node->SetLineColor(kColorITS);
1316 sub4node->SetVisibility(0);
1319 // Place copy #1 of ITS2 in I1D1
1321 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1322 sub5node->SetLineColor(kColorITS);
1323 fNodes->Add(sub5node);
1325 fNodes->Add(sub4node);
1327 fNodes->Add(sub3node);
1330 // Place copy #4 of I1D7 in I20B
1332 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1333 sub3node->SetLineColor(kColorITS);
1334 sub3node->SetVisibility(0);
1337 // Place copy #1 of I1D1 in I1D7
1339 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1340 sub4node->SetLineColor(kColorITS);
1341 sub4node->SetVisibility(0);
1344 // Place copy #1 of ITS2 in I1D1
1346 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1347 sub5node->SetLineColor(kColorITS);
1348 fNodes->Add(sub5node);
1350 fNodes->Add(sub4node);
1352 fNodes->Add(sub3node);
1354 fNodes->Add(sub2node);
1356 fNodes->Add(sub1node);
1359 // Place copy #2 of I12B in IT12
1361 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot245");
1362 sub1node->SetLineColor(kColorITS);
1363 sub1node->SetVisibility(0);
1366 // Place copy #1 of I10B in I12B
1368 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
1369 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
1370 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
1371 sub2node->SetLineColor(kColorITS);
1372 sub2node->SetVisibility(0);
1375 // Place copy #1 of I107 in I10B
1377 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1378 sub3node->SetLineColor(kColorITS);
1379 sub3node->SetVisibility(0);
1382 // Place copy #1 of I101 in I107
1384 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1385 sub4node->SetLineColor(kColorITS);
1386 sub4node->SetVisibility(0);
1389 // Place copy #1 of ITS1 in I101
1391 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1392 sub5node->SetLineColor(kColorITS);
1393 fNodes->Add(sub5node);
1395 fNodes->Add(sub4node);
1397 fNodes->Add(sub3node);
1400 // Place copy #2 of I107 in I10B
1402 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1403 sub3node->SetLineColor(kColorITS);
1404 sub3node->SetVisibility(0);
1407 // Place copy #1 of I101 in I107
1409 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1410 sub4node->SetLineColor(kColorITS);
1411 sub4node->SetVisibility(0);
1414 // Place copy #1 of ITS1 in I101
1416 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1417 sub5node->SetLineColor(kColorITS);
1418 fNodes->Add(sub5node);
1420 fNodes->Add(sub4node);
1422 fNodes->Add(sub3node);
1425 // Place copy #3 of I107 in I10B
1427 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1428 sub3node->SetLineColor(kColorITS);
1429 sub3node->SetVisibility(0);
1432 // Place copy #1 of I101 in I107
1434 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1435 sub4node->SetLineColor(kColorITS);
1436 sub4node->SetVisibility(0);
1439 // Place copy #1 of ITS1 in I101
1441 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1442 sub5node->SetLineColor(kColorITS);
1443 fNodes->Add(sub5node);
1445 fNodes->Add(sub4node);
1447 fNodes->Add(sub3node);
1450 // Place copy #4 of I107 in I10B
1452 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1453 sub3node->SetLineColor(kColorITS);
1454 sub3node->SetVisibility(0);
1457 // Place copy #1 of I101 in I107
1459 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1460 sub4node->SetLineColor(kColorITS);
1461 sub4node->SetVisibility(0);
1464 // Place copy #1 of ITS1 in I101
1466 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1467 sub5node->SetLineColor(kColorITS);
1468 fNodes->Add(sub5node);
1470 fNodes->Add(sub4node);
1472 fNodes->Add(sub3node);
1474 fNodes->Add(sub2node);
1477 // Place copy #2 of I10B in I12B
1479 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
1480 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
1481 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
1482 sub2node->SetLineColor(kColorITS);
1483 sub2node->SetVisibility(0);
1486 // Place copy #1 of I107 in I10B
1488 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
1489 sub3node->SetLineColor(kColorITS);
1490 sub3node->SetVisibility(0);
1493 // Place copy #1 of I101 in I107
1495 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1496 sub4node->SetLineColor(kColorITS);
1497 sub4node->SetVisibility(0);
1500 // Place copy #1 of ITS1 in I101
1502 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1503 sub5node->SetLineColor(kColorITS);
1504 fNodes->Add(sub5node);
1506 fNodes->Add(sub4node);
1508 fNodes->Add(sub3node);
1511 // Place copy #2 of I107 in I10B
1513 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
1514 sub3node->SetLineColor(kColorITS);
1515 sub3node->SetVisibility(0);
1518 // Place copy #1 of I101 in I107
1520 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1521 sub4node->SetLineColor(kColorITS);
1522 sub4node->SetVisibility(0);
1525 // Place copy #1 of ITS1 in I101
1527 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1528 sub5node->SetLineColor(kColorITS);
1529 fNodes->Add(sub5node);
1531 fNodes->Add(sub4node);
1533 fNodes->Add(sub3node);
1536 // Place copy #3 of I107 in I10B
1538 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
1539 sub3node->SetLineColor(kColorITS);
1540 sub3node->SetVisibility(0);
1543 // Place copy #1 of I101 in I107
1545 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1546 sub4node->SetLineColor(kColorITS);
1547 sub4node->SetVisibility(0);
1550 // Place copy #1 of ITS1 in I101
1552 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1553 sub5node->SetLineColor(kColorITS);
1554 fNodes->Add(sub5node);
1556 fNodes->Add(sub4node);
1558 fNodes->Add(sub3node);
1561 // Place copy #4 of I107 in I10B
1563 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
1564 sub3node->SetLineColor(kColorITS);
1565 sub3node->SetVisibility(0);
1568 // Place copy #1 of I101 in I107
1570 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
1571 sub4node->SetLineColor(kColorITS);
1572 sub4node->SetVisibility(0);
1575 // Place copy #1 of ITS1 in I101
1577 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
1578 sub5node->SetLineColor(kColorITS);
1579 fNodes->Add(sub5node);
1581 fNodes->Add(sub4node);
1583 fNodes->Add(sub3node);
1585 fNodes->Add(sub2node);
1588 // Place copy #1 of I20B in I12B
1590 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
1591 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
1592 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
1593 sub2node->SetLineColor(kColorITS);
1594 sub2node->SetVisibility(0);
1597 // Place copy #1 of I1D7 in I20B
1599 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1600 sub3node->SetLineColor(kColorITS);
1601 sub3node->SetVisibility(0);
1604 // Place copy #1 of I1D1 in I1D7
1606 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1607 sub4node->SetLineColor(kColorITS);
1608 sub4node->SetVisibility(0);
1611 // Place copy #1 of ITS2 in I1D1
1613 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1614 sub5node->SetLineColor(kColorITS);
1615 fNodes->Add(sub5node);
1617 fNodes->Add(sub4node);
1619 fNodes->Add(sub3node);
1622 // Place copy #2 of I1D7 in I20B
1624 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1625 sub3node->SetLineColor(kColorITS);
1626 sub3node->SetVisibility(0);
1629 // Place copy #1 of I1D1 in I1D7
1631 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1632 sub4node->SetLineColor(kColorITS);
1633 sub4node->SetVisibility(0);
1636 // Place copy #1 of ITS2 in I1D1
1638 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1639 sub5node->SetLineColor(kColorITS);
1640 fNodes->Add(sub5node);
1642 fNodes->Add(sub4node);
1644 fNodes->Add(sub3node);
1647 // Place copy #3 of I1D7 in I20B
1649 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1650 sub3node->SetLineColor(kColorITS);
1651 sub3node->SetVisibility(0);
1654 // Place copy #1 of I1D1 in I1D7
1656 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1657 sub4node->SetLineColor(kColorITS);
1658 sub4node->SetVisibility(0);
1661 // Place copy #1 of ITS2 in I1D1
1663 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1664 sub5node->SetLineColor(kColorITS);
1665 fNodes->Add(sub5node);
1667 fNodes->Add(sub4node);
1669 fNodes->Add(sub3node);
1672 // Place copy #4 of I1D7 in I20B
1674 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1675 sub3node->SetLineColor(kColorITS);
1676 sub3node->SetVisibility(0);
1679 // Place copy #1 of I1D1 in I1D7
1681 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1682 sub4node->SetLineColor(kColorITS);
1683 sub4node->SetVisibility(0);
1686 // Place copy #1 of ITS2 in I1D1
1688 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1689 sub5node->SetLineColor(kColorITS);
1690 fNodes->Add(sub5node);
1692 fNodes->Add(sub4node);
1694 fNodes->Add(sub3node);
1696 fNodes->Add(sub2node);
1699 // Place copy #2 of I20B in I12B
1701 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
1702 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
1703 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
1704 sub2node->SetLineColor(kColorITS);
1705 sub2node->SetVisibility(0);
1708 // Place copy #1 of I1D7 in I20B
1710 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1711 sub3node->SetLineColor(kColorITS);
1712 sub3node->SetVisibility(0);
1715 // Place copy #1 of I1D1 in I1D7
1717 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1718 sub4node->SetLineColor(kColorITS);
1719 sub4node->SetVisibility(0);
1722 // Place copy #1 of ITS2 in I1D1
1724 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1725 sub5node->SetLineColor(kColorITS);
1726 fNodes->Add(sub5node);
1728 fNodes->Add(sub4node);
1730 fNodes->Add(sub3node);
1733 // Place copy #2 of I1D7 in I20B
1735 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1736 sub3node->SetLineColor(kColorITS);
1737 sub3node->SetVisibility(0);
1740 // Place copy #1 of I1D1 in I1D7
1742 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1743 sub4node->SetLineColor(kColorITS);
1744 sub4node->SetVisibility(0);
1747 // Place copy #1 of ITS2 in I1D1
1749 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1750 sub5node->SetLineColor(kColorITS);
1751 fNodes->Add(sub5node);
1753 fNodes->Add(sub4node);
1755 fNodes->Add(sub3node);
1758 // Place copy #3 of I1D7 in I20B
1760 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1761 sub3node->SetLineColor(kColorITS);
1762 sub3node->SetVisibility(0);
1765 // Place copy #1 of I1D1 in I1D7
1767 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1768 sub4node->SetLineColor(kColorITS);
1769 sub4node->SetVisibility(0);
1772 // Place copy #1 of ITS2 in I1D1
1774 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1775 sub5node->SetLineColor(kColorITS);
1776 fNodes->Add(sub5node);
1778 fNodes->Add(sub4node);
1780 fNodes->Add(sub3node);
1783 // Place copy #4 of I1D7 in I20B
1785 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1786 sub3node->SetLineColor(kColorITS);
1787 sub3node->SetVisibility(0);
1790 // Place copy #1 of I1D1 in I1D7
1792 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1793 sub4node->SetLineColor(kColorITS);
1794 sub4node->SetVisibility(0);
1797 // Place copy #1 of ITS2 in I1D1
1799 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1800 sub5node->SetLineColor(kColorITS);
1801 fNodes->Add(sub5node);
1803 fNodes->Add(sub4node);
1805 fNodes->Add(sub3node);
1807 fNodes->Add(sub2node);
1810 // Place copy #3 of I20B in I12B
1812 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
1813 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
1814 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
1815 sub2node->SetLineColor(kColorITS);
1816 sub2node->SetVisibility(0);
1819 // Place copy #1 of I1D7 in I20B
1821 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1822 sub3node->SetLineColor(kColorITS);
1823 sub3node->SetVisibility(0);
1826 // Place copy #1 of I1D1 in I1D7
1828 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1829 sub4node->SetLineColor(kColorITS);
1830 sub4node->SetVisibility(0);
1833 // Place copy #1 of ITS2 in I1D1
1835 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1836 sub5node->SetLineColor(kColorITS);
1837 fNodes->Add(sub5node);
1839 fNodes->Add(sub4node);
1841 fNodes->Add(sub3node);
1844 // Place copy #2 of I1D7 in I20B
1846 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1847 sub3node->SetLineColor(kColorITS);
1848 sub3node->SetVisibility(0);
1851 // Place copy #1 of I1D1 in I1D7
1853 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1854 sub4node->SetLineColor(kColorITS);
1855 sub4node->SetVisibility(0);
1858 // Place copy #1 of ITS2 in I1D1
1860 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1861 sub5node->SetLineColor(kColorITS);
1862 fNodes->Add(sub5node);
1864 fNodes->Add(sub4node);
1866 fNodes->Add(sub3node);
1869 // Place copy #3 of I1D7 in I20B
1871 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1872 sub3node->SetLineColor(kColorITS);
1873 sub3node->SetVisibility(0);
1876 // Place copy #1 of I1D1 in I1D7
1878 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1879 sub4node->SetLineColor(kColorITS);
1880 sub4node->SetVisibility(0);
1883 // Place copy #1 of ITS2 in I1D1
1885 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1886 sub5node->SetLineColor(kColorITS);
1887 fNodes->Add(sub5node);
1889 fNodes->Add(sub4node);
1891 fNodes->Add(sub3node);
1894 // Place copy #4 of I1D7 in I20B
1896 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
1897 sub3node->SetLineColor(kColorITS);
1898 sub3node->SetVisibility(0);
1901 // Place copy #1 of I1D1 in I1D7
1903 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1904 sub4node->SetLineColor(kColorITS);
1905 sub4node->SetVisibility(0);
1908 // Place copy #1 of ITS2 in I1D1
1910 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1911 sub5node->SetLineColor(kColorITS);
1912 fNodes->Add(sub5node);
1914 fNodes->Add(sub4node);
1916 fNodes->Add(sub3node);
1918 fNodes->Add(sub2node);
1921 // Place copy #4 of I20B in I12B
1923 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
1924 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
1925 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
1926 sub2node->SetLineColor(kColorITS);
1927 sub2node->SetVisibility(0);
1930 // Place copy #1 of I1D7 in I20B
1932 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
1933 sub3node->SetLineColor(kColorITS);
1934 sub3node->SetVisibility(0);
1937 // Place copy #1 of I1D1 in I1D7
1939 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1940 sub4node->SetLineColor(kColorITS);
1941 sub4node->SetVisibility(0);
1944 // Place copy #1 of ITS2 in I1D1
1946 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1947 sub5node->SetLineColor(kColorITS);
1948 fNodes->Add(sub5node);
1950 fNodes->Add(sub4node);
1952 fNodes->Add(sub3node);
1955 // Place copy #2 of I1D7 in I20B
1957 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
1958 sub3node->SetLineColor(kColorITS);
1959 sub3node->SetVisibility(0);
1962 // Place copy #1 of I1D1 in I1D7
1964 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1965 sub4node->SetLineColor(kColorITS);
1966 sub4node->SetVisibility(0);
1969 // Place copy #1 of ITS2 in I1D1
1971 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1972 sub5node->SetLineColor(kColorITS);
1973 fNodes->Add(sub5node);
1975 fNodes->Add(sub4node);
1977 fNodes->Add(sub3node);
1980 // Place copy #3 of I1D7 in I20B
1982 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
1983 sub3node->SetLineColor(kColorITS);
1984 sub3node->SetVisibility(0);
1987 // Place copy #1 of I1D1 in I1D7
1989 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
1990 sub4node->SetLineColor(kColorITS);
1991 sub4node->SetVisibility(0);
1994 // Place copy #1 of ITS2 in I1D1
1996 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
1997 sub5node->SetLineColor(kColorITS);
1998 fNodes->Add(sub5node);
2000 fNodes->Add(sub4node);
2002 fNodes->Add(sub3node);
2005 // Place copy #4 of I1D7 in I20B
2007 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2008 sub3node->SetLineColor(kColorITS);
2009 sub3node->SetVisibility(0);
2012 // Place copy #1 of I1D1 in I1D7
2014 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2015 sub4node->SetLineColor(kColorITS);
2016 sub4node->SetVisibility(0);
2019 // Place copy #1 of ITS2 in I1D1
2021 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2022 sub5node->SetLineColor(kColorITS);
2023 fNodes->Add(sub5node);
2025 fNodes->Add(sub4node);
2027 fNodes->Add(sub3node);
2029 fNodes->Add(sub2node);
2031 fNodes->Add(sub1node);
2034 // Place copy #3 of I12B in IT12
2036 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot234");
2037 sub1node->SetLineColor(kColorITS);
2038 sub1node->SetVisibility(0);
2041 // Place copy #1 of I10B in I12B
2043 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2044 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2045 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2046 sub2node->SetLineColor(kColorITS);
2047 sub2node->SetVisibility(0);
2050 // Place copy #1 of I107 in I10B
2052 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2053 sub3node->SetLineColor(kColorITS);
2054 sub3node->SetVisibility(0);
2057 // Place copy #1 of I101 in I107
2059 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2060 sub4node->SetLineColor(kColorITS);
2061 sub4node->SetVisibility(0);
2064 // Place copy #1 of ITS1 in I101
2066 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2067 sub5node->SetLineColor(kColorITS);
2068 fNodes->Add(sub5node);
2070 fNodes->Add(sub4node);
2072 fNodes->Add(sub3node);
2075 // Place copy #2 of I107 in I10B
2077 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2078 sub3node->SetLineColor(kColorITS);
2079 sub3node->SetVisibility(0);
2082 // Place copy #1 of I101 in I107
2084 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2085 sub4node->SetLineColor(kColorITS);
2086 sub4node->SetVisibility(0);
2089 // Place copy #1 of ITS1 in I101
2091 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2092 sub5node->SetLineColor(kColorITS);
2093 fNodes->Add(sub5node);
2095 fNodes->Add(sub4node);
2097 fNodes->Add(sub3node);
2100 // Place copy #3 of I107 in I10B
2102 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2103 sub3node->SetLineColor(kColorITS);
2104 sub3node->SetVisibility(0);
2107 // Place copy #1 of I101 in I107
2109 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2110 sub4node->SetLineColor(kColorITS);
2111 sub4node->SetVisibility(0);
2114 // Place copy #1 of ITS1 in I101
2116 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2117 sub5node->SetLineColor(kColorITS);
2118 fNodes->Add(sub5node);
2120 fNodes->Add(sub4node);
2122 fNodes->Add(sub3node);
2125 // Place copy #4 of I107 in I10B
2127 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2128 sub3node->SetLineColor(kColorITS);
2129 sub3node->SetVisibility(0);
2132 // Place copy #1 of I101 in I107
2134 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2135 sub4node->SetLineColor(kColorITS);
2136 sub4node->SetVisibility(0);
2139 // Place copy #1 of ITS1 in I101
2141 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2142 sub5node->SetLineColor(kColorITS);
2143 fNodes->Add(sub5node);
2145 fNodes->Add(sub4node);
2147 fNodes->Add(sub3node);
2149 fNodes->Add(sub2node);
2152 // Place copy #2 of I10B in I12B
2154 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2155 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2156 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2157 sub2node->SetLineColor(kColorITS);
2158 sub2node->SetVisibility(0);
2161 // Place copy #1 of I107 in I10B
2163 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2164 sub3node->SetLineColor(kColorITS);
2165 sub3node->SetVisibility(0);
2168 // Place copy #1 of I101 in I107
2170 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2171 sub4node->SetLineColor(kColorITS);
2172 sub4node->SetVisibility(0);
2175 // Place copy #1 of ITS1 in I101
2177 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2178 sub5node->SetLineColor(kColorITS);
2179 fNodes->Add(sub5node);
2181 fNodes->Add(sub4node);
2183 fNodes->Add(sub3node);
2186 // Place copy #2 of I107 in I10B
2188 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2189 sub3node->SetLineColor(kColorITS);
2190 sub3node->SetVisibility(0);
2193 // Place copy #1 of I101 in I107
2195 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2196 sub4node->SetLineColor(kColorITS);
2197 sub4node->SetVisibility(0);
2200 // Place copy #1 of ITS1 in I101
2202 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2203 sub5node->SetLineColor(kColorITS);
2204 fNodes->Add(sub5node);
2206 fNodes->Add(sub4node);
2208 fNodes->Add(sub3node);
2211 // Place copy #3 of I107 in I10B
2213 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2214 sub3node->SetLineColor(kColorITS);
2215 sub3node->SetVisibility(0);
2218 // Place copy #1 of I101 in I107
2220 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2221 sub4node->SetLineColor(kColorITS);
2222 sub4node->SetVisibility(0);
2225 // Place copy #1 of ITS1 in I101
2227 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2228 sub5node->SetLineColor(kColorITS);
2229 fNodes->Add(sub5node);
2231 fNodes->Add(sub4node);
2233 fNodes->Add(sub3node);
2236 // Place copy #4 of I107 in I10B
2238 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2239 sub3node->SetLineColor(kColorITS);
2240 sub3node->SetVisibility(0);
2243 // Place copy #1 of I101 in I107
2245 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2246 sub4node->SetLineColor(kColorITS);
2247 sub4node->SetVisibility(0);
2250 // Place copy #1 of ITS1 in I101
2252 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2253 sub5node->SetLineColor(kColorITS);
2254 fNodes->Add(sub5node);
2256 fNodes->Add(sub4node);
2258 fNodes->Add(sub3node);
2260 fNodes->Add(sub2node);
2263 // Place copy #1 of I20B in I12B
2265 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2266 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2267 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2268 sub2node->SetLineColor(kColorITS);
2269 sub2node->SetVisibility(0);
2272 // Place copy #1 of I1D7 in I20B
2274 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2275 sub3node->SetLineColor(kColorITS);
2276 sub3node->SetVisibility(0);
2279 // Place copy #1 of I1D1 in I1D7
2281 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2282 sub4node->SetLineColor(kColorITS);
2283 sub4node->SetVisibility(0);
2286 // Place copy #1 of ITS2 in I1D1
2288 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2289 sub5node->SetLineColor(kColorITS);
2290 fNodes->Add(sub5node);
2292 fNodes->Add(sub4node);
2294 fNodes->Add(sub3node);
2297 // Place copy #2 of I1D7 in I20B
2299 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2300 sub3node->SetLineColor(kColorITS);
2301 sub3node->SetVisibility(0);
2304 // Place copy #1 of I1D1 in I1D7
2306 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2307 sub4node->SetLineColor(kColorITS);
2308 sub4node->SetVisibility(0);
2311 // Place copy #1 of ITS2 in I1D1
2313 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2314 sub5node->SetLineColor(kColorITS);
2315 fNodes->Add(sub5node);
2317 fNodes->Add(sub4node);
2319 fNodes->Add(sub3node);
2322 // Place copy #3 of I1D7 in I20B
2324 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2325 sub3node->SetLineColor(kColorITS);
2326 sub3node->SetVisibility(0);
2329 // Place copy #1 of I1D1 in I1D7
2331 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2332 sub4node->SetLineColor(kColorITS);
2333 sub4node->SetVisibility(0);
2336 // Place copy #1 of ITS2 in I1D1
2338 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2339 sub5node->SetLineColor(kColorITS);
2340 fNodes->Add(sub5node);
2342 fNodes->Add(sub4node);
2344 fNodes->Add(sub3node);
2347 // Place copy #4 of I1D7 in I20B
2349 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2350 sub3node->SetLineColor(kColorITS);
2351 sub3node->SetVisibility(0);
2354 // Place copy #1 of I1D1 in I1D7
2356 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2357 sub4node->SetLineColor(kColorITS);
2358 sub4node->SetVisibility(0);
2361 // Place copy #1 of ITS2 in I1D1
2363 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2364 sub5node->SetLineColor(kColorITS);
2365 fNodes->Add(sub5node);
2367 fNodes->Add(sub4node);
2369 fNodes->Add(sub3node);
2371 fNodes->Add(sub2node);
2374 // Place copy #2 of I20B in I12B
2376 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(49.*TMath::Pi()/180.);
2377 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(49.*TMath::Pi()/180.);
2378 sub2node = new TNode("I20B","I20B","I20B",1.9612+deltax,6.9062+deltay,0.,"itsrot241");
2379 sub2node->SetLineColor(kColorITS);
2380 sub2node->SetVisibility(0);
2383 // Place copy #1 of I1D7 in I20B
2385 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2386 sub3node->SetLineColor(kColorITS);
2387 sub3node->SetVisibility(0);
2390 // Place copy #1 of I1D1 in I1D7
2392 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2393 sub4node->SetLineColor(kColorITS);
2394 sub4node->SetVisibility(0);
2397 // Place copy #1 of ITS2 in I1D1
2399 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2400 sub5node->SetLineColor(kColorITS);
2401 fNodes->Add(sub5node);
2403 fNodes->Add(sub4node);
2405 fNodes->Add(sub3node);
2408 // Place copy #2 of I1D7 in I20B
2410 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2411 sub3node->SetLineColor(kColorITS);
2412 sub3node->SetVisibility(0);
2415 // Place copy #1 of I1D1 in I1D7
2417 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2418 sub4node->SetLineColor(kColorITS);
2419 sub4node->SetVisibility(0);
2422 // Place copy #1 of ITS2 in I1D1
2424 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2425 sub5node->SetLineColor(kColorITS);
2426 fNodes->Add(sub5node);
2428 fNodes->Add(sub4node);
2430 fNodes->Add(sub3node);
2433 // Place copy #3 of I1D7 in I20B
2435 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2436 sub3node->SetLineColor(kColorITS);
2437 sub3node->SetVisibility(0);
2440 // Place copy #1 of I1D1 in I1D7
2442 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2443 sub4node->SetLineColor(kColorITS);
2444 sub4node->SetVisibility(0);
2447 // Place copy #1 of ITS2 in I1D1
2449 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2450 sub5node->SetLineColor(kColorITS);
2451 fNodes->Add(sub5node);
2453 fNodes->Add(sub4node);
2455 fNodes->Add(sub3node);
2458 // Place copy #4 of I1D7 in I20B
2460 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2461 sub3node->SetLineColor(kColorITS);
2462 sub3node->SetVisibility(0);
2465 // Place copy #1 of I1D1 in I1D7
2467 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2468 sub4node->SetLineColor(kColorITS);
2469 sub4node->SetVisibility(0);
2472 // Place copy #1 of ITS2 in I1D1
2474 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2475 sub5node->SetLineColor(kColorITS);
2476 fNodes->Add(sub5node);
2478 fNodes->Add(sub4node);
2480 fNodes->Add(sub3node);
2482 fNodes->Add(sub2node);
2485 // Place copy #3 of I20B in I12B
2487 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(58.*TMath::Pi()/180.);
2488 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(58.*TMath::Pi()/180.);
2489 sub2node = new TNode("I20B","I20B","I20B",0.8567+deltax,7.1279+deltay,0.,"itsrot242");
2490 sub2node->SetLineColor(kColorITS);
2491 sub2node->SetVisibility(0);
2494 // Place copy #1 of I1D7 in I20B
2496 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2497 sub3node->SetLineColor(kColorITS);
2498 sub3node->SetVisibility(0);
2501 // Place copy #1 of I1D1 in I1D7
2503 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2504 sub4node->SetLineColor(kColorITS);
2505 sub4node->SetVisibility(0);
2508 // Place copy #1 of ITS2 in I1D1
2510 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2511 sub5node->SetLineColor(kColorITS);
2512 fNodes->Add(sub5node);
2514 fNodes->Add(sub4node);
2516 fNodes->Add(sub3node);
2519 // Place copy #2 of I1D7 in I20B
2521 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2522 sub3node->SetLineColor(kColorITS);
2523 sub3node->SetVisibility(0);
2526 // Place copy #1 of I1D1 in I1D7
2528 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2529 sub4node->SetLineColor(kColorITS);
2530 sub4node->SetVisibility(0);
2533 // Place copy #1 of ITS2 in I1D1
2535 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2536 sub5node->SetLineColor(kColorITS);
2537 fNodes->Add(sub5node);
2539 fNodes->Add(sub4node);
2541 fNodes->Add(sub3node);
2544 // Place copy #3 of I1D7 in I20B
2546 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2547 sub3node->SetLineColor(kColorITS);
2548 sub3node->SetVisibility(0);
2551 // Place copy #1 of I1D1 in I1D7
2553 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2554 sub4node->SetLineColor(kColorITS);
2555 sub4node->SetVisibility(0);
2558 // Place copy #1 of ITS2 in I1D1
2560 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2561 sub5node->SetLineColor(kColorITS);
2562 fNodes->Add(sub5node);
2564 fNodes->Add(sub4node);
2566 fNodes->Add(sub3node);
2569 // Place copy #4 of I1D7 in I20B
2571 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2572 sub3node->SetLineColor(kColorITS);
2573 sub3node->SetVisibility(0);
2576 // Place copy #1 of I1D1 in I1D7
2578 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2579 sub4node->SetLineColor(kColorITS);
2580 sub4node->SetVisibility(0);
2583 // Place copy #1 of ITS2 in I1D1
2585 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2586 sub5node->SetLineColor(kColorITS);
2587 fNodes->Add(sub5node);
2589 fNodes->Add(sub4node);
2591 fNodes->Add(sub3node);
2593 fNodes->Add(sub2node);
2596 // Place copy #4 of I20B in I12B
2598 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(67.*TMath::Pi()/180.);
2599 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(67.*TMath::Pi()/180.);
2600 sub2node = new TNode("I20B","I20B","I20B",-0.2689+deltax,7.1742+deltay,0.,"itsrot243");
2601 sub2node->SetLineColor(kColorITS);
2602 sub2node->SetVisibility(0);
2605 // Place copy #1 of I1D7 in I20B
2607 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2608 sub3node->SetLineColor(kColorITS);
2609 sub3node->SetVisibility(0);
2612 // Place copy #1 of I1D1 in I1D7
2614 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2615 sub4node->SetLineColor(kColorITS);
2616 sub4node->SetVisibility(0);
2619 // Place copy #1 of ITS2 in I1D1
2621 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2622 sub5node->SetLineColor(kColorITS);
2623 fNodes->Add(sub5node);
2625 fNodes->Add(sub4node);
2627 fNodes->Add(sub3node);
2630 // Place copy #2 of I1D7 in I20B
2632 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2633 sub3node->SetLineColor(kColorITS);
2634 sub3node->SetVisibility(0);
2637 // Place copy #1 of I1D1 in I1D7
2639 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2640 sub4node->SetLineColor(kColorITS);
2641 sub4node->SetVisibility(0);
2644 // Place copy #1 of ITS2 in I1D1
2646 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2647 sub5node->SetLineColor(kColorITS);
2648 fNodes->Add(sub5node);
2650 fNodes->Add(sub4node);
2652 fNodes->Add(sub3node);
2655 // Place copy #3 of I1D7 in I20B
2657 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-3.536,"");
2658 sub3node->SetLineColor(kColorITS);
2659 sub3node->SetVisibility(0);
2662 // Place copy #1 of I1D1 in I1D7
2664 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2665 sub4node->SetLineColor(kColorITS);
2666 sub4node->SetVisibility(0);
2669 // Place copy #1 of ITS2 in I1D1
2671 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2672 sub5node->SetLineColor(kColorITS);
2673 fNodes->Add(sub5node);
2675 fNodes->Add(sub4node);
2677 fNodes->Add(sub3node);
2680 // Place copy #4 of I1D7 in I20B
2682 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],-10.708,"");
2683 sub3node->SetLineColor(kColorITS);
2684 sub3node->SetVisibility(0);
2687 // Place copy #1 of I1D1 in I1D7
2689 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2690 sub4node->SetLineColor(kColorITS);
2691 sub4node->SetVisibility(0);
2694 // Place copy #1 of ITS2 in I1D1
2696 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2697 sub5node->SetLineColor(kColorITS);
2698 fNodes->Add(sub5node);
2700 fNodes->Add(sub4node);
2702 fNodes->Add(sub3node);
2704 fNodes->Add(sub2node);
2706 fNodes->Add(sub1node);
2709 // Place copy #4 of I12B in IT12
2711 sub1node = new TNode("I12B","I12B","I12B",0.,0.,0.,"itsrot246");
2712 sub1node->SetLineColor(kColorITS);
2713 sub1node->SetVisibility(0);
2716 // Place copy #1 of I10B in I12B
2718 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(252.*TMath::Pi()/180.);
2719 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(252.*TMath::Pi()/180.);
2720 sub2node = new TNode("I10B","I10B","I10B",1.4531+deltax,3.8152+deltay,0.,"itsrot239");
2721 sub2node->SetLineColor(kColorITS);
2722 sub2node->SetVisibility(0);
2725 // Place copy #1 of I107 in I10B
2727 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2728 sub3node->SetLineColor(kColorITS);
2729 sub3node->SetVisibility(0);
2732 // Place copy #1 of I101 in I107
2734 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2735 sub4node->SetLineColor(kColorITS);
2736 sub4node->SetVisibility(0);
2739 // Place copy #1 of ITS1 in I101
2741 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2742 sub5node->SetLineColor(kColorITS);
2743 fNodes->Add(sub5node);
2745 fNodes->Add(sub4node);
2747 fNodes->Add(sub3node);
2750 // Place copy #2 of I107 in I10B
2752 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2753 sub3node->SetLineColor(kColorITS);
2754 sub3node->SetVisibility(0);
2757 // Place copy #1 of I101 in I107
2759 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2760 sub4node->SetLineColor(kColorITS);
2761 sub4node->SetVisibility(0);
2764 // Place copy #1 of ITS1 in I101
2766 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2767 sub5node->SetLineColor(kColorITS);
2768 fNodes->Add(sub5node);
2770 fNodes->Add(sub4node);
2772 fNodes->Add(sub3node);
2775 // Place copy #3 of I107 in I10B
2777 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2778 sub3node->SetLineColor(kColorITS);
2779 sub3node->SetVisibility(0);
2782 // Place copy #1 of I101 in I107
2784 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2785 sub4node->SetLineColor(kColorITS);
2786 sub4node->SetVisibility(0);
2789 // Place copy #1 of ITS1 in I101
2791 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2792 sub5node->SetLineColor(kColorITS);
2793 fNodes->Add(sub5node);
2795 fNodes->Add(sub4node);
2797 fNodes->Add(sub3node);
2800 // Place copy #4 of I107 in I10B
2802 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2803 sub3node->SetLineColor(kColorITS);
2804 sub3node->SetVisibility(0);
2807 // Place copy #1 of I101 in I107
2809 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2810 sub4node->SetLineColor(kColorITS);
2811 sub4node->SetVisibility(0);
2814 // Place copy #1 of ITS1 in I101
2816 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2817 sub5node->SetLineColor(kColorITS);
2818 fNodes->Add(sub5node);
2820 fNodes->Add(sub4node);
2822 fNodes->Add(sub3node);
2824 fNodes->Add(sub2node);
2827 // Place copy #2 of I10B in I12B
2829 deltax=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Cos(270.*TMath::Pi()/180.);
2830 deltay=((ddet1-0.01/2.)+(dchip1-0.015/2.))*TMath::Sin(270.*TMath::Pi()/180.);
2831 sub2node = new TNode("I10B","I10B","I10B",0.203+deltax,3.8206+deltay,0.,"itsrot238");
2832 sub2node->SetLineColor(kColorITS);
2833 sub2node->SetVisibility(0);
2836 // Place copy #1 of I107 in I10B
2838 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],10.708,"");
2839 sub3node->SetLineColor(kColorITS);
2840 sub3node->SetVisibility(0);
2843 // Place copy #1 of I101 in I107
2845 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2846 sub4node->SetLineColor(kColorITS);
2847 sub4node->SetVisibility(0);
2850 // Place copy #1 of ITS1 in I101
2852 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2853 sub5node->SetLineColor(kColorITS);
2854 fNodes->Add(sub5node);
2856 fNodes->Add(sub4node);
2858 fNodes->Add(sub3node);
2861 // Place copy #2 of I107 in I10B
2863 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],3.536,"");
2864 sub3node->SetLineColor(kColorITS);
2865 sub3node->SetVisibility(0);
2868 // Place copy #1 of I101 in I107
2870 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2871 sub4node->SetLineColor(kColorITS);
2872 sub4node->SetVisibility(0);
2875 // Place copy #1 of ITS1 in I101
2877 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2878 sub5node->SetLineColor(kColorITS);
2879 fNodes->Add(sub5node);
2881 fNodes->Add(sub4node);
2883 fNodes->Add(sub3node);
2886 // Place copy #3 of I107 in I10B
2888 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-3.536,"");
2889 sub3node->SetLineColor(kColorITS);
2890 sub3node->SetVisibility(0);
2893 // Place copy #1 of I101 in I107
2895 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2896 sub4node->SetLineColor(kColorITS);
2897 sub4node->SetVisibility(0);
2900 // Place copy #1 of ITS1 in I101
2902 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2903 sub5node->SetLineColor(kColorITS);
2904 fNodes->Add(sub5node);
2906 fNodes->Add(sub4node);
2908 fNodes->Add(sub3node);
2911 // Place copy #4 of I107 in I10B
2913 sub3node = new TNode("I107","I107","I107",-0.0455,-di10b[1]+di107[1],-10.708,"");
2914 sub3node->SetLineColor(kColorITS);
2915 sub3node->SetVisibility(0);
2918 // Place copy #1 of I101 in I107
2920 sub4node = new TNode("I101","I101","I101",0.,ddet1,0.,"");
2921 sub4node->SetLineColor(kColorITS);
2922 sub4node->SetVisibility(0);
2925 // Place copy #1 of ITS1 in I101
2927 sub5node = new TNode("ITS1","ITS1","ITS1",0.,0.,0.,"");
2928 sub5node->SetLineColor(kColorITS);
2929 fNodes->Add(sub5node);
2931 fNodes->Add(sub4node);
2933 fNodes->Add(sub3node);
2935 fNodes->Add(sub2node);
2938 // Place copy #1 of I20B in I12B
2940 deltax=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Cos(40.*TMath::Pi()/180.);
2941 deltay=((ddet2-0.01/2.)+(dchip2-0.015/2.))*TMath::Sin(40.*TMath::Pi()/180.);
2942 sub2node = new TNode("I20B","I20B","I20B",3.0174+deltax,6.5143+deltay,0.,"itsrot240");
2943 sub2node->SetLineColor(kColorITS);
2944 sub2node->SetVisibility(0);
2947 // Place copy #1 of I1D7 in I20B
2949 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],10.708,"");
2950 sub3node->SetLineColor(kColorITS);
2951 sub3node->SetVisibility(0);
2954 // Place copy #1 of I1D1 in I1D7
2956 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2957 sub4node->SetLineColor(kColorITS);
2958 sub4node->SetVisibility(0);
2961 // Place copy #1 of ITS2 in I1D1
2963 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2964 sub5node->SetLineColor(kColorITS);
2965 fNodes->Add(sub5node);
2967 fNodes->Add(sub4node);
2969 fNodes->Add(sub3node);
2972 // Place copy #2 of I1D7 in I20B
2974 sub3node = new TNode("I1D7","I1D7","I1D7",-0.0455,-di20b[1]+di1d7[1],3.536,"");
2975 sub3node->SetLineColor(kColorITS);
2976 sub3node->SetVisibility(0);
2979 // Place copy #1 of I1D1 in I1D7
2981 sub4node = new TNode("I1D1","I1D1","I1D1",0.,ddet2,0.,"");
2982 sub4node->SetLineColor(kColorITS);
2983 sub4node->SetVisibility(0);
2986 // Place copy #1 of ITS2 in I1D1
2988 sub5node = new TNode("ITS2","ITS2","ITS2",0.,0.,0.,"");
2989 sub5node->SetLineColor(kColorITS);
2990 fNodes->Add(sub5node);
2992 fNodes->Add(sub4node);