]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSvPPRcoarseasymm.cxx
Overlaps corrected. (R. Barbera)
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRcoarseasymm.cxx
CommitLineData
5d5bdf03 1 /**************************************************************************
33959f40 2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/*
17$Log$
c2685204 18Revision 1.25 2001/05/03 08:40:15 barbera
19Volume ITSD slightly modified to be consistent with v5. Some improvement in the printouts. The last commit did not complete successfully.
20
1e9111db 21Revision 1.23 2001/04/04 07:02:16 barbera
22Position of the cylinders holding rails corrected
23
27c5763c 24Revision 1.22 2001/03/29 22:01:53 barbera
25New flag added to change the material for some service supports as asked by the PMD people. Some changes to the services due to the new drawings from the engineers
26
72923d44 27Revision 1.21 2001/03/29 05:28:56 barbera
28Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
29
31683195 30Revision 1.20 2001/03/28 06:40:21 barbera
31Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
32
e4f08ac3 33Revision 1.19 2001/03/13 18:13:30 barbera
34Some mother volumes sligthly modified to eliminate an overlap with the absorber
35
45725ec9 36Revision 1.18 2001/02/19 09:44:16 barbera
37Copy no.2 of volume ICO2 re-inserted
38
1a366a10 39Revision 1.17 2001/02/09 00:05:31 nilsen
40Added fMajor/MinorVersion variables and made other changes to better make
41use of the new code changes in AliITSgeom related classes.
42
bae7e562 43Revision 1.16 2001/01/30 09:23:13 hristov
44Streamers removed (R.Brun)
45
a8a6107b 46Revision 1.15 2001/01/17 07:41:29 barbera
47Some media parameters modified
48
9cd18c59 49Revision 1.14 2001/01/15 13:13:53 barbera
50Some comments added
51
faec2e21 52Revision 1.13 2000/12/10 16:00:45 barbera
53Added last definition of special media like end-ladder boxes and cones
54
89909db5 55Revision 1.12 2000/11/02 15:44:23 barbera
56Services on the opposite side w.r.t the absorber modified to make room for rails
57
4ebc1b6a 58Revision 1.10 2000/10/27 17:19:50 barbera
59Position of rails w.r.t. the interaction point corrected.
60
acb52b3d 61Revision 1.9 2000/10/27 13:31:29 barbera
62Rails between ITS and TPC added.
63
c54243df 64Revision 1.8 2000/10/27 13:03:08 barbera
65Small changes in the SPD volumes and materials
66
6c251614 67Revision 1.6 2000/10/16 14:45:37 barbera
68Mother volume ITSD modified to avoid some overlaps
69
e8031268 70Revision 1.5 2000/10/16 13:49:15 barbera
71Services volumes slightly modified and material added following Pierluigi Barberis' information
72
e6892b92 73Revision 1.4 2000/10/07 15:33:07 barbera
74Small corrections to the ITSV mother volume
75
990d421f 76Revision 1.3 2000/10/07 13:06:50 barbera
77Some new materials and media defined
78
d12d92a5 79Revision 1.2 2000/10/07 10:58:15 barbera
80Mother volume ITSV corrected
81
b16d3d87 82Revision 1.1 2000/10/06 23:09:24 barbera
83New coarse geometry (asymmetric services
84
33959f40 85Revision 1.20 2000/10/02 21:28:08 fca
86Removal of useless dependecies via forward declarations
87
88Revision 1.19 2000/07/10 16:07:19 fca
89Release version of ITS code
90
91Revision 1.14.2.2 2000/05/19 10:09:21 nilsen
92fix for bug with HP and Sun unix + fix for event display in ITS-working branch
93
94Revision 1.14.2.1 2000/03/04 23:45:19 nilsen
95Fixed up the comments/documentation.
96
97Revision 1.14 1999/11/25 06:52:56 fca
98Correct value of drca
99
100Revision 1.13.2.1 1999/11/25 06:52:21 fca
101Correct value of drca
102
103Revision 1.13 1999/10/27 11:16:26 fca
104Correction of problem in geometry
105
106Revision 1.12 1999/10/22 08:25:25 fca
107remove double definition of destructors
108
109Revision 1.11 1999/10/22 08:16:49 fca
110Correct destructors, thanks to I.Hrivnacova
111
112Revision 1.10 1999/10/06 19:56:50 fca
113Add destructor
114
115Revision 1.9 1999/10/05 08:05:09 fca
116Minor corrections for uninitialised variables.
117
118Revision 1.8 1999/09/29 09:24:20 fca
119Introduction of the Copyright and cvs Log
120
121*/
122
123///////////////////////////////////////////////////////////////////////////////
124// //
125// Inner Traking System version PPR coarse asymmetric //
126// This class contains the base procedures for the Inner Tracking System //
127// //
128// Authors: R. Barbera
129// version 6.
130// Created 2000.
131//
132// NOTE: THIS IS THE COARSE ASYMMETRIC PPR geometry of the ITS.
133// THIS WILL NOT WORK
134// with the geometry or module classes or any analysis classes. You are
135// strongly encouraged to uses AliITSv5.
136// //
137///////////////////////////////////////////////////////////////////////////////
bae7e562 138#include <iostream.h>
33959f40 139#include <TMath.h>
140#include <TRandom.h>
141#include <TVector.h>
142#include <TGeometry.h>
143#include <TNode.h>
144#include <TTUBE.h>
145#include <TFile.h> // only required for Tracking function?
146#include <TCanvas.h>
147#include <TObjArray.h>
148#include <TClonesArray.h>
149
150
151#include "AliMC.h"
152#include "AliMagF.h"
153#include "AliConst.h"
154
155#include "AliITShit.h"
156#include "AliITSvPPRcoarseasymm.h"
157#include "AliRun.h"
158
159
160ClassImp(AliITSvPPRcoarseasymm)
161
162//_____________________________________________________________________________
163AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm() {
164////////////////////////////////////////////////////////////////////////
165// Standard default constructor for the ITS version 6.
166////////////////////////////////////////////////////////////////////////
167
bae7e562 168 fIdN = 0;
169 fIdName = 0;
170 fIdSens = 0;
171 fMajorVersion = 9;
172 fMinorVersion = 0;
33959f40 173}
174//_____________________________________________________________________________
175AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const char *name, const char *title) : AliITS(name, title){
176////////////////////////////////////////////////////////////////////////
177// Standard constructor for the ITS version 6.
178////////////////////////////////////////////////////////////////////////
179
bae7e562 180 fIdN = 6;
181 fIdName = new TString[fIdN];
182 fIdName[0] = "ITS1";
183 fIdName[1] = "ITS2";
184 fIdName[2] = "ITS3";
185 fIdName[3] = "ITS4";
186 fIdName[4] = "ITS5";
187 fIdName[5] = "ITS6";
188 fIdSens = new Int_t[fIdN];
189 for (Int_t i=0;i<fIdN;i++) fIdSens[i]=0;
190 fMajorVersion = 9;
191 fMinorVersion = 0;
33959f40 192}
193//____________________________________________________________________________
194AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const AliITSvPPRcoarseasymm &source){
195////////////////////////////////////////////////////////////////////////
196// Copy Constructor for ITS version 6.
197////////////////////////////////////////////////////////////////////////
198 if(&source == this) return;
bae7e562 199 Warning("Copy Constructor","Not allowed to copy AliITSvPPRcoarseasymm");
33959f40 200 return;
201}
202//_____________________________________________________________________________
203AliITSvPPRcoarseasymm& AliITSvPPRcoarseasymm::operator=(const AliITSvPPRcoarseasymm &source){
204////////////////////////////////////////////////////////////////////////
205// Assignment operator for the ITS version 6.
206////////////////////////////////////////////////////////////////////////
207 if(&source == this) return *this;
bae7e562 208 Warning("= operator","Not allowed to copy AliITSvPPRcoarseasymm");
33959f40 209 return *this;
210}
211//_____________________________________________________________________________
212AliITSvPPRcoarseasymm::~AliITSvPPRcoarseasymm() {
213////////////////////////////////////////////////////////////////////////
214// Standard destructor for the ITS version 6.
215////////////////////////////////////////////////////////////////////////
216}
217
218//__________________________________________________________________________
219void AliITSvPPRcoarseasymm::BuildGeometry(){
220////////////////////////////////////////////////////////////////////////
221// Geometry builder for the ITS version 6.
222////////////////////////////////////////////////////////////////////////
223 TNode *node, *top;
224 const int kColorITS=kYellow;
225 //
226 top = gAlice->GetGeometry()->GetNode("alice");
227
228 new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
229 top->cd();
230 node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
231 node->SetLineColor(kColorITS);
232 fNodes->Add(node);
233
234 new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+0.05475,16.3);
235 top->cd();
236 node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
237 node->SetLineColor(kColorITS);
238 fNodes->Add(node);
239
240 new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.05288,21.1);
241 top->cd();
242 node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
243 node->SetLineColor(kColorITS);
244 fNodes->Add(node);
245
246 new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
247 top->cd();
248 node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
249 node->SetLineColor(kColorITS);
250 fNodes->Add(node);
251
252 new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
253 top->cd();
254 node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
255 node->SetLineColor(kColorITS);
256 fNodes->Add(node);
257
258 new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
259 top->cd();
260 node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
261 node->SetLineColor(kColorITS);
262 fNodes->Add(node);
263}
264//_____________________________________________________________________________
265void AliITSvPPRcoarseasymm::CreateGeometry(){
266////////////////////////////////////////////////////////////////////////
267// This routine defines and Creates the geometry for version 6 of the ITS.
268////////////////////////////////////////////////////////////////////////
269
270 //INNER RADII OF THE SILICON LAYERS
6c251614 271 Float_t rl[6] = { 3.8095,7.,15.,24.,38.1,43.5765 };
33959f40 272 //THICKNESSES OF LAYERS (in % radiation length)
6c251614 273 Float_t drl[6] = { 1.03,1.03,0.94,0.95,0.91,0.87 };
33959f40 274 //HALF LENGTHS OF LAYERS
6c251614 275 Float_t dzl[6] = { 14.35,14.35,25.1,32.1,49.405,55.27 };
33959f40 276 //LENGTHS OF END-LADDER BOXES (ALL INCLUDED)
89909db5 277 Float_t dzb[6] = { 12.4,12.4,13.5,15.,7.5,7.5 };
33959f40 278 //THICKNESSES OF END-LADDER BOXES (ALL INCLUDED)
89909db5 279 Float_t drb[6] = { rl[1]-rl[0],0.2,5.,5.,4.,4. };
33959f40 280
281
282 Float_t dits[3], rlim, zmax;
283 Float_t zpos;
e4f08ac3 284 Float_t pcits[100], ztpc;
285 Int_t idrotm[1999], i;
286 Float_t dgh[100];
287
e4f08ac3 288 Int_t rails = 1; // flag for rails (1 --> rails in; 0 --> rails out)
72923d44 289 Int_t suppmat = 0; // flag to change the material of the services
290 // supports (=0 copper, =1 aluminum, =2 carbon)
e4f08ac3 291 rails = GetRails();
33959f40 292
e4f08ac3 293 if(rails != 0 && rails != 1) {
1e9111db 294 cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
e4f08ac3 295 " The default value of 1 (rails in) will be used." << endl;
e4f08ac3 296 }
297
72923d44 298 if (rails == 0 ) {
1e9111db 299 cout << "ITS: Rails are out." << endl;
e4f08ac3 300 } else {
1e9111db 301 cout << "ITS: Rails are in." << endl;
e4f08ac3 302 }
72923d44 303
304 suppmat = GetSupportMaterial();
305
306 if (suppmat != 0 && suppmat != 1 && suppmat != 2) {
1e9111db 307 cout << "ITS - WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)."
72923d44 308 " The default value of 0 (copper) will be used." << endl;
309 }
310
311 if (suppmat == 0) {
1e9111db 312 cout << "ITS: The material of the services supports is copper." << endl;
72923d44 313 } else if (suppmat == 1){
1e9111db 314 cout << "ITS: The material of the services supports is aluminum." << endl;
72923d44 315 } else {
1e9111db 316 cout << "ITS: The material of the services supports is carbon." << endl;
72923d44 317 }
318
e4f08ac3 319
33959f40 320 Int_t *idtmed = fIdtmed->GetArray()-199;
321
322 // CONVERT INTO CM (RL(SI)=9.36 CM)
323 for (i = 0; i < 6; ++i) {
324 drl[i] = drl[i] / 100. * 9.36;
325 }
326
327 // FIELD CAGE HALF LENGTH
328
1e9111db 329 rlim = 50.;
e4f08ac3 330 zmax = 74.;
331 ztpc = 284.;
33959f40 332
b16d3d87 333 // --- Define ghost volume containing the whole ITS (including services)
334 // and fill it with air
335
336 dgh[0] = 0.;
337 dgh[1] = 360.;
e4f08ac3 338 dgh[2] = 16.;
339 dgh[3] = -ztpc-5.-0.1;
340 dgh[4] = 46;
b16d3d87 341 dgh[5] = 85.;
e4f08ac3 342 dgh[6] = -ztpc;
343 dgh[7] = 46;
b16d3d87 344 dgh[8] = 85.;
e4f08ac3 345 dgh[9] = -ztpc;
346 dgh[10] = 46;
1e9111db 347 dgh[11] = rlim+6;
e4f08ac3 348 dgh[12] = -97.5;
349 dgh[13] = 46;
1e9111db 350 dgh[14] = rlim+6;
e4f08ac3 351 dgh[15] = -zmax;
352 dgh[16] = 46;
1e9111db 353 dgh[17] = rlim+6;
e4f08ac3 354 dgh[18] = -48;
355 dgh[19] = 6;
1e9111db 356 dgh[20] = rlim+6;
e4f08ac3 357 dgh[21] = -28.6;
358 dgh[22] = 6;
1e9111db 359 dgh[23] = rlim+6;
e4f08ac3 360 dgh[24] = -27.6;
361 dgh[25] = 3.295;
1e9111db 362 dgh[26] = rlim+6;
e4f08ac3 363 dgh[27] = 27.6;
364 dgh[28] = 3.295;
1e9111db 365 dgh[29] = rlim+6;
e4f08ac3 366 dgh[30] = 28.6;
367 dgh[31] = 6;
1e9111db 368 dgh[32] = rlim+6;
e4f08ac3 369 dgh[33] = 48;
370 dgh[34] = 6;
1e9111db 371 dgh[35] = rlim+6;
e4f08ac3 372 dgh[36] = zmax;
373 dgh[37] = 46;
1e9111db 374 dgh[38] = rlim+6;
e4f08ac3 375 dgh[39] = 97.5;
376 dgh[40] = 46;
1e9111db 377 dgh[41] = rlim+6;
e4f08ac3 378 dgh[42] = ztpc;
379 dgh[43] = 62;
380 dgh[44] = 62+4.;
381 dgh[45] = ztpc;
382 dgh[46] = 62;
383 dgh[47] = 85.;
384 dgh[48] = ztpc+4.+0.1;
385 dgh[49] = 62.4;
386 dgh[50] = 85.;
387 gMC->Gsvolu("ITSV", "PCON", idtmed[275], dgh, 51);
b16d3d87 388
389 // --- Place the ghost volume in its mother volume (ALIC) and make it
390 // invisible
391
392 gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
e4f08ac3 393 //gMC->Gsatt("ITSV", "SEEN", 0);
b16d3d87 394
395
33959f40 396 // --- Define ghost volume containing the six layers and fill it with air
397
398 dgh[0] = 0.;
399 dgh[1] = 360.;
e4f08ac3 400 dgh[2] = 8.;
401 dgh[3] = -zmax;
45725ec9 402 dgh[4] = 46.;
e4f08ac3 403 dgh[5] = rlim;
404 dgh[6] = -47.5;
405 dgh[7] = 6.005;
406 dgh[8] = rlim;
407 dgh[9] = -28.5;
408 dgh[10] = 6.005;
409 dgh[11] = rlim;
410 dgh[12] = -27.5;
411 dgh[13] = 3.3;
412 dgh[14] = rlim;
413 dgh[15] = 27.5;
414 dgh[16] = 3.3;
415 dgh[17] = rlim;
416 dgh[18] = 28.5;
417 dgh[19] = 6.005;
418 dgh[20] = rlim;
419 dgh[21] = 47.5;
420 dgh[22] = 6.005;
421 dgh[23] = rlim;
422 dgh[24] = zmax;
423 dgh[25] = 46.;
424 dgh[26] = rlim;
425 gMC->Gsvolu("ITSD", "PCON", idtmed[275], dgh, 27);
33959f40 426
427 // --- Place the ghost volume in its mother volume (ITSV) and make it
428 // invisible
429
b16d3d87 430 gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
146fb996 431 //gMC->Gsatt("ITSD", "SEEN", 0);
33959f40 432
e4f08ac3 433
33959f40 434 // ITS LAYERS (SILICON)
435
436 dits[0] = rl[0];
437 dits[1] = rl[0] + drl[0];
438 dits[2] = dzl[0];
439 gMC->Gsvolu("ITS1", "TUBE", idtmed[199], dits, 3);
b16d3d87 440 gMC->Gspos("ITS1", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 441
442 dits[0] = rl[1];
443 dits[1] = rl[1] + drl[1];
444 dits[2] = dzl[1];
445 gMC->Gsvolu("ITS2", "TUBE", idtmed[199], dits, 3);
b16d3d87 446 gMC->Gspos("ITS2", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 447
448 dits[0] = rl[2];
449 dits[1] = rl[2] + drl[2];
450 dits[2] = dzl[2];
451 gMC->Gsvolu("ITS3", "TUBE", idtmed[224], dits, 3);
b16d3d87 452 gMC->Gspos("ITS3", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 453
454 dits[0] = rl[3];
455 dits[1] = rl[3] + drl[3];
456 dits[2] = dzl[3];
457 gMC->Gsvolu("ITS4", "TUBE", idtmed[224], dits, 3);
b16d3d87 458 gMC->Gspos("ITS4", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 459
460 dits[0] = rl[4];
461 dits[1] = rl[4] + drl[4];
462 dits[2] = dzl[4];
463 gMC->Gsvolu("ITS5", "TUBE", idtmed[249], dits, 3);
b16d3d87 464 gMC->Gspos("ITS5", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 465
466 dits[0] = rl[5];
467 dits[1] = rl[5] + drl[5];
468 dits[2] = dzl[5];
469 gMC->Gsvolu("ITS6", "TUBE", idtmed[249], dits, 3);
b16d3d87 470 gMC->Gspos("ITS6", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 471
d12d92a5 472 // END-LADDER ELECTRONICS BOXES AND CABLES FOR SPD
33959f40 473
d12d92a5 474 gMC->Gsvolu("IEL1", "TUBE", idtmed[208], dits, 0);
475 for (i = 0; i < 2; i++) {
33959f40 476 dits[0] = rl[i];
477 dits[1] = dits[0] + drb[i];
478 dits[2] = dzb[i] / 2.;
479 zpos = dzl[i] + dits[2];
d12d92a5 480 gMC->Gsposp("IEL1", i+1, "ITSD", 0., 0., zpos, 0, "ONLY", dits, 3);
481 gMC->Gsposp("IEL1", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
33959f40 482 }
d12d92a5 483
484 // END-LADDER ELECTRONICS BOXES AND CABLES FOR SDD
485
486 gMC->Gsvolu("IEL2", "TUBE", idtmed[237], dits, 0);
89909db5 487 for (i = 2; i < 3; i++) {
488 dits[0] = rl[i]-2.5;
489 dits[1] = dits[0] + drb[i];
490 dits[2] = dzb[i] / 2.;
491 zpos = dzl[i] + dits[2];
492 gMC->Gsposp("IEL2", i+1, "ITSD", 0., 0., zpos, 0, "ONLY", dits, 3);
493 gMC->Gsposp("IEL2", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
494 }
495 for (i = 3; i < 4; i++) {
496 dits[0] = rl[i]-1.4;
d12d92a5 497 dits[1] = dits[0] + drb[i];
498 dits[2] = dzb[i] / 2.;
499 zpos = dzl[i] + dits[2];
500 gMC->Gsposp("IEL2", i+1, "ITSD", 0., 0., zpos, 0, "ONLY", dits, 3);
501 gMC->Gsposp("IEL2", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
502 }
503
504 // END-LADDER ELECTRONICS BOXES AND CABLES FOR SSD
505
506 gMC->Gsvolu("IEL3", "TUBE", idtmed[263], dits, 0);
89909db5 507 for (i = 4; i < 5; i++) {
508 dits[0] = rl[i]+1.4;
d12d92a5 509 dits[1] = dits[0] + drb[i];
510 dits[2] = dzb[i] / 2.;
511 zpos = dzl[i] + dits[2];
512 gMC->Gsposp("IEL3", i+1, "ITSD", 0., 0., zpos, 0, "ONLY", dits, 3);
513 gMC->Gsposp("IEL3", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
514 }
89909db5 515 for (i = 5; i < 6; i++) {
516 dits[0] = rl[i]+0.4235;
517 dits[1] = dits[0] + drb[i];
518 dits[2] = dzb[i] / 2.;
519 zpos = dzl[i] + dits[2];
520 gMC->Gsposp("IEL3", i+1, "ITSD", 0., 0., zpos, 0, "ONLY", dits, 3);
521 gMC->Gsposp("IEL3", i+1+6, "ITSD", 0., 0.,-zpos, 0, "ONLY", dits, 3);
522 }
146fb996 523
6c251614 524 // DEFINE THERMAL SCREEN FOR SPD
33959f40 525
6c251614 526 pcits[0] = 8.3;
527 pcits[1] = 8.5;
528 pcits[2] = 42.5;
529 gMC->Gsvolu("ICY1", "TUBE", idtmed[274], pcits, 3);
530 gMC->Gspos("ICY1", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 531
33959f40 532 // DEFINE END CONES FOR SDD
533
4ebc1b6a 534 pcits[0] = (59.-42.5)/2.;
535 pcits[1] = 8.5;
89909db5 536 pcits[2] = 8.5+0.1;
4ebc1b6a 537 pcits[3] = 28.;
89909db5 538 pcits[4] = 28.+0.1;
9cd18c59 539 gMC->Gsvolu("ICO1", "CONE", idtmed[238], pcits, 5);
146fb996 540 AliMatrix(idrotm[200], 90., 0., 90., 90., 180., 0.);
4ebc1b6a 541 gMC->Gspos("ICO1", 1, "ITSD", 0., 0., 42.5+pcits[0], 0, "ONLY");
542 gMC->Gspos("ICO1", 2, "ITSD", 0., 0., -(42.5+pcits[0]), idrotm[200], "ONLY");
6c251614 543
544 // DEFINE CYLINDER BETWEEN SDD AND SSD
545
546 pcits[0] = (59.5-0.13/2.)/2.;
547 pcits[1] = (59.5+0.13/2.)/2.;
548 pcits[2] = 57.;
faec2e21 549 gMC->Gsvolu("ICY2", "TUBE", idtmed[274], pcits, 3);
146fb996 550 gMC->Gspos("ICY2", 1, "ITSD", 0., 0., 0., 0, "ONLY");
33959f40 551
552 // DEFINE END CONES FOR SSD
553
4ebc1b6a 554 pcits[0] = (74.-59.)/2.;
555 pcits[1] = 28.;
89909db5 556 pcits[2] = 28.+0.1;
4ebc1b6a 557 pcits[3] = 47.;
89909db5 558 pcits[4] = 47.+0.1;
9cd18c59 559 gMC->Gsvolu("ICO2", "CONE", idtmed[264], pcits, 5);
4ebc1b6a 560 gMC->Gspos("ICO2", 1, "ITSD", 0., 0., 59.+pcits[0], 0, "ONLY");
1a366a10 561 gMC->Gspos("ICO2", 2, "ITSD", 0., 0., -(59.+pcits[0]), idrotm[200], "ONLY");
e4f08ac3 562
1a366a10 563
e4f08ac3 564 // **************************** SERVICES *********************************
565
566
567
c54243df 568 // --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
72923d44 569 // UPPER PART
33959f40 570
e4f08ac3 571 dgh[0] = 46.;
572 dgh[1] = 46.+1.0;
e8031268 573 dgh[2] = 9.5;
72923d44 574 dgh[3] = 12.;
575 dgh[4] = 168.;
33959f40 576
72923d44 577 if (suppmat == 0) {
578 gMC->Gsvolu("I1CU", "TUBS", idtmed[279], dgh, 5); // copper
579 } else if (suppmat == 1) {
580 gMC->Gsvolu("I1CU", "TUBS", idtmed[285], dgh, 5); // aluminum
581 } else {
582 gMC->Gsvolu("I1CU", "TUBS", idtmed[274], dgh, 5); // carbon
583 }
584 gMC->Gspos("I1CU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
585 gMC->Gspos("I1CU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
e6892b92 586
72923d44 587 // --- DEFINE CABLES AT THE END OF THE ITS CONES - COPPER PART
588 // LOWER PART
589
590 dgh[0] = 46.;
591 dgh[1] = 46.+1.0;
592 dgh[2] = 9.5;
593 dgh[3] = 192.;
594 dgh[4] = 348.;
595
596 if (suppmat == 0) {
597 gMC->Gsvolu("I2CU", "TUBS", idtmed[279], dgh, 5); // copper
598 } else if (suppmat == 1) {
599 gMC->Gsvolu("I2CU", "TUBS", idtmed[285], dgh, 5); // aluminum
600 } else {
601 gMC->Gsvolu("I2CU", "TUBS", idtmed[274], dgh, 5); // carbon
602 }
603 gMC->Gspos("I2CU", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
604 gMC->Gspos("I2CU", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
605
606
c54243df 607 // --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
72923d44 608 // UPPER PART
e6892b92 609
e4f08ac3 610 dgh[0] = 46.+1.0;
611 dgh[1] = 46.+1.0+1.5;
e8031268 612 dgh[2] = 9.5;
72923d44 613 dgh[3] = 12.;
614 dgh[4] = 168.;
e6892b92 615
72923d44 616 gMC->Gsvolu("I1CC", "TUBS", idtmed[274], dgh, 5);
617 gMC->Gspos("I1CC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
618 gMC->Gspos("I1CC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
33959f40 619
72923d44 620 // --- DEFINE CABLES AT THE END OF THE ITS CONES - CARBON PART
621 // LOWER PART
622
623 dgh[0] = 46.+1.0;
624 dgh[1] = 46.+1.0+1.5;
625 dgh[2] = 9.5;
626 dgh[3] = 192.;
627 dgh[4] = 348.;
33959f40 628
72923d44 629 gMC->Gsvolu("I2CC", "TUBS", idtmed[274], dgh, 5);
630 gMC->Gspos("I2CC", 1, "ITSV", 0., 0., 83.5, 0, "ONLY");
631 gMC->Gspos("I2CC", 2, "ITSV", 0., 0., -83.5, idrotm[200], "ONLY");
632
633 // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
634 // UPPER PART
635
e4f08ac3 636 dgh[0] = 46.;
33959f40 637 dgh[1] = 56.;
638 dgh[2] = 2.25;
72923d44 639 dgh[3] = 12.;
640 dgh[4] = 168.;
33959f40 641
72923d44 642 gMC->Gsvolu("IPA1", "TUBS", idtmed[285], dgh, 5);
643 gMC->Gspos("IPA1", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");
644 gMC->Gspos("IPA1", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY");
645
646
647 // --- DEFINE PATCH PANELS AT THE END OF THE ITS CONES
648 // LOWER PART
649
650 dgh[0] = 46.;
651 dgh[1] = 56.;
652 dgh[2] = 2.25;
653 dgh[3] = 192.;
654 dgh[4] = 348.;
33959f40 655
72923d44 656 gMC->Gsvolu("IPA2", "TUBS", idtmed[285], dgh, 5);
657 gMC->Gspos("IPA2", 1, "ITSV", 0., 0., 95.25, 0, "ONLY");
658 gMC->Gspos("IPA2", 2, "ITSV", 0., 0., -95.25, idrotm[200], "ONLY");
659
660
c54243df 661 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
4ebc1b6a 662 // UPPER PART
663
e4f08ac3 664 dgh[0] = (ztpc-97.5)/2.;
665 dgh[1] = 46.2;
666 dgh[2] = 46.2+1.0;
667 dgh[3] = 62.3;
668 dgh[4] = 62.3+1.0;
4ebc1b6a 669 dgh[5] = 12.;
670 dgh[6] = 168.;
72923d44 671 if (suppmat == 0) {
672 gMC->Gsvolu("ICU1", "CONS", idtmed[279], dgh, 7); // copper
673 } else if (suppmat == 1) {
674 gMC->Gsvolu("ICU1", "CONS", idtmed[285], dgh, 7); // aluminum
675 } else {
676 gMC->Gsvolu("ICU1", "CONS", idtmed[274], dgh, 7); // carbon
677 }
e4f08ac3 678 gMC->Gspos("ICU1", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
33959f40 679
4ebc1b6a 680 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - COPPER PART
681 // LOWER PART
682
e4f08ac3 683 dgh[0] = (ztpc-97.5)/2.;
684 dgh[1] = 46.2;
685 dgh[2] = 46.2+1.0;
686 dgh[3] = 62.3;
687 dgh[4] = 62.3+1.0;
4ebc1b6a 688 dgh[5] = 192.;
689 dgh[6] = 348.;
72923d44 690 if (suppmat == 0) {
691 gMC->Gsvolu("ICU2", "CONS", idtmed[279], dgh, 7); // copper
692 } else if (suppmat == 1) {
693 gMC->Gsvolu("ICU2", "CONS", idtmed[285], dgh, 7); // aluminum
694 } else {
695 gMC->Gsvolu("ICU2", "CONS", idtmed[274], dgh, 7); // carbon
696 }
e4f08ac3 697 gMC->Gspos("ICU2", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
698
4ebc1b6a 699
700 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
701 // UPPER PART
702
e4f08ac3 703 dgh[0] = (ztpc-97.5)/2.;
704 dgh[1] = 46.2+1.0;
705 dgh[2] = 46.2+1.0+1.5;
706 dgh[3] = 62.3+1.0;
707 dgh[4] = 62.3+1.0+1.5;
4ebc1b6a 708 dgh[5] = 12.;
709 dgh[6] = 168.;
710 gMC->Gsvolu("ICC1", "CONS", idtmed[274], dgh, 7);
e4f08ac3 711 gMC->Gspos("ICC1", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
e6892b92 712
c54243df 713 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE ABSORBER SIDE - CARBON PART
4ebc1b6a 714 // LOWER PART
715
e4f08ac3 716 dgh[0] = (ztpc-97.5)/2.;
717 dgh[1] = 46.2+1.0;
45725ec9 718 dgh[2] = 46.2+1.0+1.5;
e4f08ac3 719 dgh[3] = 62.3+1.0;
45725ec9 720 dgh[4] = 62.3+1.0+1.5;
4ebc1b6a 721 dgh[5] = 192.;
722 dgh[6] = 348.;
723 gMC->Gsvolu("ICC2", "CONS", idtmed[274], dgh, 7);
e4f08ac3 724 gMC->Gspos("ICC2", 1, "ITSV", 0., 0., 97.5+dgh[0], 0, "ONLY");
4ebc1b6a 725
c54243df 726 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
4ebc1b6a 727 // UPPER PART
728
e4f08ac3 729 dgh[0] = 62.1;
4ebc1b6a 730 dgh[1] = 74.5;
731 dgh[2] = 0.5;
732 dgh[3] = 12.;
733 dgh[4] = 168.;
72923d44 734 if (suppmat == 0) {
735 gMC->Gsvolu("ICU3", "TUBS", idtmed[279], dgh, 5); // copper
736 } else if (suppmat == 1) {
737 gMC->Gsvolu("ICU3", "TUBS", idtmed[285], dgh, 5); // aluminum
738 } else {
739 gMC->Gsvolu("ICU3", "TUBS", idtmed[274], dgh, 5); // carbon
740 }
e4f08ac3 741 gMC->Gspos("ICU3", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");
4ebc1b6a 742
743 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - COPPER PART
744 // LOWER PART
745
e4f08ac3 746 dgh[0] = 62.1;
4ebc1b6a 747 dgh[1] = 74.5;
748 dgh[2] = 0.5;
749 dgh[3] = 192.;
750 dgh[4] = 348.;
72923d44 751 if (suppmat == 0) {
752 gMC->Gsvolu("ICU4", "TUBS", idtmed[279], dgh, 5); // copper
753 } else if (suppmat == 1) {
754 gMC->Gsvolu("ICU4", "TUBS", idtmed[285], dgh, 5); // aluminum
755 } else {
756 gMC->Gsvolu("ICU4", "TUBS", idtmed[274], dgh, 5); // carbon
757 }
e4f08ac3 758 gMC->Gspos("ICU4", 1, "ITSV", 0., 0., ztpc+1.5+dgh[2], 0, "ONLY");
4ebc1b6a 759
c54243df 760 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
4ebc1b6a 761 // UPPER PART
762
e4f08ac3 763 dgh[0] = 62.1;
4ebc1b6a 764 dgh[1] = 74.5;
765 dgh[2] = 0.75;
766 dgh[3] = 12.;
767 dgh[4] = 168.;
768 gMC->Gsvolu("ICC3", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 769 gMC->Gspos("ICC3", 1, "ITSV", 0., 0., ztpc+dgh[2], 0, "ONLY");
4ebc1b6a 770
771 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON THE ABSORBER SIDE - CARBON PART
772 // LOWER PART
773
e4f08ac3 774 dgh[0] = 62.1;
4ebc1b6a 775 dgh[1] = 74.5;
776 dgh[2] = 0.75;
777 dgh[3] = 192.;
778 dgh[4] = 348.;
779 gMC->Gsvolu("ICC4", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 780 gMC->Gspos("ICC4", 1, "ITSV", 0., 0., ztpc+dgh[2], 0, "ONLY");
33959f40 781
c54243df 782 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
1a7aef02 783 // THE ABSORBER - COPPER PART - UPPER PART
33959f40 784
e4f08ac3 785 dgh[0] = 46.;
786 dgh[1] = 46.+1.0;
787 dgh[2] = (ztpc-97.5+1.5)/2.;
1a7aef02 788 dgh[3] = 12.;
789 dgh[4] = 168.;
72923d44 790 if (suppmat == 0) {
791 gMC->Gsvolu("ICU5", "TUBS", idtmed[279], dgh, 5); // copper
792 } else if (suppmat == 1) {
793 gMC->Gsvolu("ICU5", "TUBS", idtmed[285], dgh, 5); // aluminum
794 } else {
795 gMC->Gsvolu("ICU5", "TUBS", idtmed[274], dgh, 5); // carbon
796 }
e4f08ac3 797 gMC->Gspos("ICU5", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
e6892b92 798
c54243df 799 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
1a7aef02 800 // THE ABSORBER - COPPER PART - LOWER PART
801
e4f08ac3 802 dgh[0] = 46.;
803 dgh[1] = 46.+1.0;
804 dgh[2] = (ztpc-97.5+1.5)/2.;
1a7aef02 805 dgh[3] = 192.;
806 dgh[4] = 348.;
72923d44 807 if (suppmat == 0) {
808 gMC->Gsvolu("ICU6", "TUBS", idtmed[279], dgh, 5); // copper
809 } else if (suppmat == 1) {
810 gMC->Gsvolu("ICU6", "TUBS", idtmed[285], dgh, 5); // aluminum
811 } else {
812 gMC->Gsvolu("ICU6", "TUBS", idtmed[274], dgh, 5); // carbon
813 }
e4f08ac3 814 gMC->Gspos("ICU6", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
1a7aef02 815
816 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
817 // THE ABSORBER - CARBON PART - UPPER PART
818
e4f08ac3 819 dgh[0] = 46.+1.0;
820 dgh[1] = 46.+1.0+1.5;
821 dgh[2] = (ztpc-97.5)/2.;
1a7aef02 822 dgh[3] = 12.;
823 dgh[4] = 168.;
824 gMC->Gsvolu("ICC5", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 825 gMC->Gspos("ICC5", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
1a7aef02 826
827 // --- DEFINE CABLES/COOLING BELOW THE TPC ON THE OTHER SIDE W.R.T.
828 // THE ABSORBER - CARBON PART - LOWER PART
e6892b92 829
e4f08ac3 830 dgh[0] = 46.+1.0;
831 dgh[1] = 46.+1.0+1.5;
832 dgh[2] = (ztpc-97.5)/2.;
1a7aef02 833 dgh[3] = 192.;
834 dgh[4] = 348.;
835 gMC->Gsvolu("ICC6", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 836 gMC->Gspos("ICC6", 1, "ITSV", 0., 0., -97.5-dgh[2], 0, "ONLY");
33959f40 837
1a7aef02 838 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
839 // COPPER PART - UPPER PART
840
e4f08ac3 841 dgh[0] = 46.;
1a7aef02 842 dgh[1] = 74.5;
843 dgh[2] = 0.5;
844 dgh[3] = 12.;
845 dgh[4] = 168.;
72923d44 846 if (suppmat == 0) {
847 gMC->Gsvolu("ICU7", "TUBS", idtmed[279], dgh, 5); // copper
848 } else if (suppmat == 1) {
849 gMC->Gsvolu("ICU7", "TUBS", idtmed[285], dgh, 5); // aluminum
850 } else {
851 gMC->Gsvolu("ICU7", "TUBS", idtmed[274], dgh, 5); // carbon
852 }
e4f08ac3 853 gMC->Gspos("ICU7", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");
33959f40 854
c54243df 855 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
1a7aef02 856 // COPPER PART - LOWER PART
4ebc1b6a 857
e4f08ac3 858 dgh[0] = 46.;
4ebc1b6a 859 dgh[1] = 74.5;
860 dgh[2] = 0.5;
1a7aef02 861 dgh[3] = 192.;
862 dgh[4] = 348.;
72923d44 863 if (suppmat == 0) {
864 gMC->Gsvolu("ICU8", "TUBS", idtmed[279], dgh, 5); // copper
865 } else if (suppmat == 1) {
866 gMC->Gsvolu("ICU8", "TUBS", idtmed[285], dgh, 5); // aluminum
867 } else {
868 gMC->Gsvolu("ICU8", "TUBS", idtmed[274], dgh, 5); // carbon
869 }
e4f08ac3 870 gMC->Gspos("ICU8", 1, "ITSV", 0., 0., -(ztpc+1.5+dgh[2]), 0, "ONLY");
1a7aef02 871
872 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
873 // CARBON PART - UPPER PART
33959f40 874
e4f08ac3 875 dgh[0] = 46.+1.0;
1a7aef02 876 dgh[1] = 74.5;
877 dgh[2] = 0.75;
878 dgh[3] = 12.;
879 dgh[4] = 168.;
880 gMC->Gsvolu("ICC7", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 881 gMC->Gspos("ICC7", 1, "ITSV", 0., 0., -(ztpc+dgh[2]), 0, "ONLY");
e6892b92 882
c54243df 883 // --- DEFINE CABLES/COOLING BEHIND THE TPC ON OTHER SIDE W.R.T. THE ABSORBER
1a7aef02 884 // CARBON PART - LOWER PART
e6892b92 885
e4f08ac3 886 dgh[0] = 46.+1.0;
4ebc1b6a 887 dgh[1] = 74.5;
888 dgh[2] = 0.75;
1a7aef02 889 dgh[3] = 192.;
890 dgh[4] = 348.;
891 gMC->Gsvolu("ICC8", "TUBS", idtmed[274], dgh, 5);
e4f08ac3 892 gMC->Gspos("ICC8", 1, "ITSV", 0., 0., -(ztpc+dgh[2]), 0, "ONLY");
33959f40 893
1a7aef02 894 // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - UPPER PART
895
896 dgh[0] = 74.5;
897 dgh[1] = 79.5;
898 dgh[2] = 2.5;
899 dgh[3] = 12.;
900 dgh[4] = 168.;
901 gMC->Gsvolu("IHK1", "TUBS", idtmed[284], dgh, 5);
e4f08ac3 902 gMC->Gspos("IHK1", 1, "ITSV", 0., 0., -ztpc-dgh[2], 0, "ONLY");
1a7aef02 903
904 // --- DEFINE HOOK TO THE TPC ON OTHER SIDE W.R.T. THE ABSORBER - LOWER PART
33959f40 905
906 dgh[0] = 74.5;
907 dgh[1] = 79.5;
908 dgh[2] = 2.5;
1a7aef02 909 dgh[3] = 192.;
910 dgh[4] = 348.;
911 gMC->Gsvolu("IHK2", "TUBS", idtmed[284], dgh, 5);
e4f08ac3 912 gMC->Gspos("IHK2", 1, "ITSV", 0., 0., -ztpc-dgh[2], 0, "ONLY");
33959f40 913
c54243df 914 // --- DEFINE RAILS BETWEEN THE ITS AND THE TPC
915
e4f08ac3 916 if (rails == 1) {
917
918 dgh[0] = 2.;
919 dgh[1] = 8.;
920 dgh[2] = 190.;
31683195 921 gMC->Gsvolu("IRA1", "BOX ", idtmed[239], dgh, 3);
e4f08ac3 922 gMC->Gspos("IRA1", 1, "ITSV", 53.5, 0., -69.5, 0, "ONLY");
31683195 923 gMC->Gsvolu("IRA2", "BOX ", idtmed[239], dgh, 3);
e4f08ac3 924 gMC->Gspos("IRA2", 1, "ITSV", -53.5, 0., -69.5, 0, "ONLY");
925
31683195 926 dgh[0] = 2.-0.5; // 0.5 was determined in such a way that the aluminum area is 20.9 cm^2
927 dgh[1] = 8.-0.5; // 0.5 was determined in such a way that the aluminum area is 20.9 cm^2
e4f08ac3 928 dgh[2] = 190.;
929 gMC->Gsvolu("IRA3", "BOX ", idtmed[275], dgh, 3);
930 gMC->Gspos("IRA3", 1, "IRA1", 0., 0., 0., 0, "ONLY");
931 gMC->Gsvolu("IRA4", "BOX ", idtmed[275], dgh, 3);
932 gMC->Gspos("IRA4", 1, "IRA2", 0., 0., 0., 0, "ONLY");
933
934 }
c54243df 935
4ebc1b6a 936 // --- DEFINE CYLINDERS HOLDING RAILS BETWEEN THE ITS AND THE TPC
937
e4f08ac3 938 dgh[0] = 56.9;
4ebc1b6a 939 dgh[1] = 59.;
89909db5 940 dgh[2] = 0.6;
4ebc1b6a 941 gMC->Gsvolu("ICYL", "TUBE", idtmed[285], dgh, 3);
27c5763c 942 gMC->Gspos("ICYL", 1, "ALIC", 0., 0., 74.1, 0, "ONLY");
943 gMC->Gspos("ICYL", 2, "ALIC", 0., 0., -74.1, idrotm[200], "ONLY");
e4f08ac3 944
945 // --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE CYLINDERS
946
947 dgh[0] = 0.;
948 dgh[1] = 3.;
949 dgh[2] = 5.; // 5. comes from the fact that the volume has to be 567.6/2 cm^3
950 gMC->Gsvolu("ISR1", "TUBE", idtmed[286], dgh, 3);
c2685204 951 gMC->Gspos("ISR1", 1, "ITSV", 53.4292, 10.7053, 79.75, 0, "ONLY");
952 gMC->Gspos("ISR1", 2, "ITSV", 53.4292, -10.7053, 79.75, 0, "ONLY");
953 gMC->Gspos("ISR1", 3, "ITSV", -53.4292, 10.7053, 79.75, 0, "ONLY");
954 gMC->Gspos("ISR1", 4, "ITSV", -53.4292, -10.7053, 79.75, 0, "ONLY");
955 gMC->Gspos("ISR1", 5, "ITSV", 53.4292, 10.7053, -79.75, 0, "ONLY");
956 gMC->Gspos("ISR1", 6, "ITSV", 53.4292, -10.7053, -79.75, 0, "ONLY");
957 gMC->Gspos("ISR1", 7, "ITSV", -53.4292, 10.7053, -79.75, 0, "ONLY");
958 gMC->Gspos("ISR1", 8, "ITSV", -53.4292, -10.7053, -79.75, 0, "ONLY");
e4f08ac3 959
960 // --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE ABSORBER
961
962 dgh[0] = 5.;
963 dgh[1] = 12.;
964 dgh[2] = 5.;
965 gMC->Gsvolu("ISR2", "BOX ", idtmed[285], dgh, 3);
966 gMC->Gspos("ISR2", 1, "ALIC", 53.5, 0., 125.5, 0, "ONLY");
967 gMC->Gsvolu("ISR3", "BOX ", idtmed[285], dgh, 3);
968 gMC->Gspos("ISR3", 1, "ALIC", -53.5, 0., 125.5, 0, "ONLY");
969
970 dgh[0] = 5.-2.;
971 dgh[1] = 12.-2.;
972 dgh[2] = 5.;
973 gMC->Gsvolu("ISR4", "BOX ", idtmed[275], dgh, 3);
974 gMC->Gspos("ISR4", 1, "ISR2", 0., 0., 0., 0, "ONLY");
975 gMC->Gsvolu("ISR5", "BOX ", idtmed[275], dgh, 3);
976 gMC->Gspos("ISR5", 1, "ISR3", 0., 0., 0., 0, "ONLY");
977
978 // --- DEFINE SUPPORTS TO ATTACH THE ITS TO THE TPC
979
980 dgh[0] = 0.;
981 dgh[1] = 5.;
982 dgh[2] = 2.;
983 gMC->Gsvolu("ISR6", "TUBE", idtmed[285], dgh, 3);
984 gMC->Gspos("ISR6", 1, "ALIC", 0., 54., 77., 0, "ONLY");
985 gMC->Gspos("ISR6", 2, "ALIC", 0., 54., -77., 0, "ONLY");
986 gMC->Gspos("ISR6", 3, "ALIC", 0., -54., -77., 0, "ONLY");
987
988
33959f40 989 // --- Outputs the geometry tree in the EUCLID/CAD format
990
991 if (fEuclidOut) {
992 gMC->WriteEuclid("ITSgeometry", "ITSV", 1, 5);
993 }
994}
995//_____________________________________________________________________________
996void AliITSvPPRcoarseasymm::CreateMaterials(){
997////////////////////////////////////////////////////////////////////////
998 //
999 // Create ITS materials
1000 // This function defines the default materials used in the Geant
1001 // Monte Carlo simulations for the geometries AliITSv1, AliITSv3,
1002 // AliITSvPPRcoarseasymm.
1003 // In general it is automatically replaced by
1004 // the CreatMaterials routine defined in AliITSv?. Should the function
1005 // CreateMaterials not exist for the geometry version you are using this
1006 // one is used. See the definition found in AliITSv5 or the other routine
1007 // for a complete definition.
1008 //
1009 // Water H2O
1010 Float_t awat[2] = { 1.00794,15.9994 };
1011 Float_t zwat[2] = { 1.,8. };
1012 Float_t wwat[2] = { 2.,1. };
1013 Float_t denswat = 1.;
1014 // Freon
1015 Float_t afre[2] = { 12.011,18.9984032 };
1016 Float_t zfre[2] = { 6.,9. };
1017 Float_t wfre[2] = { 5.,12. };
1018 Float_t densfre = 1.5;
1019 // Ceramics
1020 // 94.4% Al2O3 , 2.8% SiO2 , 2.3% MnO , 0.5% Cr2O3
1021 Float_t acer[5] = { 26.981539,15.9994,28.0855,54.93805,51.9961 };
1022 Float_t zcer[5] = { 13.,8.,14.,25., 24. };
1023 Float_t wcer[5] = { .49976,1.01233,.01307, .01782,.00342 };
1024 Float_t denscer = 3.6;
1025 //
1026 // 60% SiO2 , 40% G10FR4
1027 // PC board
1028 Float_t apcb[3] = { 28.0855,15.9994,17.749 };
1029 Float_t zpcb[3] = { 14.,8.,8.875 };
1030 Float_t wpcb[3] = { .28,.32,.4 };
1031 Float_t denspcb = 1.8;
1032 // POLYETHYL
1033 Float_t apoly[2] = { 12.01,1. };
1034 Float_t zpoly[2] = { 6.,1. };
1035 Float_t wpoly[2] = { .33,.67 };
d12d92a5 1036 // old SERVICES
33959f40 1037 Float_t zserv[4] = { 1.,6.,26.,29. };
1038 Float_t aserv[4] = { 1.,12.,55.8,63.5 };
1039 Float_t wserv[4] = { .014,.086,.42,.48 };
d12d92a5 1040 // Stainless steel
1041 Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
1042 Float_t zsteel[4] = { 26.,24.,28.,14. };
1043 Float_t wsteel[4] = { .715,.18,.1,.005 };
1044
33959f40 1045
1046 Int_t isxfld = gAlice->Field()->Integ();
1047 Float_t sxmgmx = gAlice->Field()->Max();
1048
1049
1050 // --- Define the various materials for GEANT ---
1051
1052 // 200-224 --> Silicon Pixel Detectors (detectors, chips, buses, cooling,..)
1053
e4f08ac3 1054 AliMaterial(0, "SPD Si$", 28.0855, 14., 2.33, 9.36, 999.);
1055 AliMaterial(1, "SPD Si chip$", 28.0855, 14., 2.33, 9.36, 999.);
1056 AliMaterial(2, "SPD Si bus$", 28.0855, 14., 2.33, 9.36, 999.);
1057 AliMaterial(3, "SPD C$", 12.011, 6., 2.265,18.8, 999.);
33959f40 1058 // v. dens
e4f08ac3 1059 AliMaterial(4, "SPD Air$", 14.61, 7.3, .001205, 30423., 999.);
33959f40 1060 AliMaterial(5, "SPD Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
e4f08ac3 1061 AliMaterial(6, "SPD Al$", 26.981539, 13., 2.6989, 8.9, 999.);
33959f40 1062 AliMixture( 7, "SPD Water $", awat, zwat, denswat, -2, wwat);
1063 AliMixture( 8, "SPD Freon$", afre, zfre, densfre, -2, wfre);
e4f08ac3 1064 AliMaterial(9, "SPD End ladder$", 55.845, 26., 7.87/10., 1.76*10., 999.);
1065 //AliMaterial(9, "SPD End ladder$", 55.845, 26., -7.87/10., -1.76*10., 999.);
1066 AliMaterial(10, "SPD cone$",28.0855, 14., 2.33, 9.36, 999.); // check !!!!
33959f40 1067 // **
faec2e21 1068 AliMedium(0, "SPD Si$", 0, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1069 AliMedium(1, "SPD Si chip$", 1, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1070 AliMedium(2, "SPD Si bus$", 2, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1071 AliMedium(3, "SPD C$", 3, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1072 AliMedium(4, "SPD Air$", 4, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1073 AliMedium(5, "SPD Vacuum$", 5, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
1074 AliMedium(6, "SPD Al$", 6, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1075 AliMedium(7, "SPD Water $", 7, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1076 AliMedium(8, "SPD Freon$", 8, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1077 AliMedium(9, "SPD End ladder$",9, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1078 AliMedium(10, "SPD cone$", 10, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
33959f40 1079
1080 // 225-249 --> Silicon Drift Detectors (detectors, chips, buses, cooling,..)
1081
e4f08ac3 1082 AliMaterial(25, "SDD Si$", 28.0855, 14., 2.33, 9.36, 999.);
1083 AliMaterial(26, "SDD Si chip$", 28.0855, 14., 2.33, 9.36, 999.);
1084 AliMaterial(27, "SDD Si bus$", 28.0855, 14., 2.33, 9.36, 999.);
1085 AliMaterial(28, "SDD C$", 12.011, 6., 2.265,18.8, 999.);
33959f40 1086 // v. dens
e4f08ac3 1087 AliMaterial(29, "SDD Air$", 14.61, 7.3, .001205, 30423., 999.);
33959f40 1088 AliMaterial(30, "SDD Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
e4f08ac3 1089 AliMaterial(31, "SDD Al$", 26.981539, 13., 2.6989, 8.9, 999.);
33959f40 1090 // After a call with ratios by number (negative number of elements),
1091 // the ratio array is changed to the ratio by weight, so all successive
1092 // calls with the same array must specify the number of elements as
1093 // positive
1094 AliMixture(32, "SDD Water $", awat, zwat, denswat, 2, wwat);
1095 // After a call with ratios by number (negative number of elements),
1096 // the ratio array is changed to the ratio by weight, so all successive
1097 // calls with the same array must specify the number of elements as
1098 // positive
1099 AliMixture( 33, "SDD Freon$", afre, zfre, densfre, 2, wfre);
1100 AliMixture( 34, "SDD PCB$", apcb, zpcb, denspcb, 3, wpcb);
e4f08ac3 1101 AliMaterial(35, "SDD Copper$", 63.546, 29., 8.96, 1.43, 999.);
33959f40 1102 AliMixture( 36, "SDD Ceramics$", acer, zcer, denscer, -5, wcer);
e4f08ac3 1103 AliMaterial(37, "SDD Kapton$", 12.011, 6., 1.3, 31.27, 999.);
1104 AliMaterial(38, "SDD End ladder$", 69.9298, 29.8246, 0.3824, 36.5103, 999.);
31683195 1105 AliMaterial(39, "SDD cone$",63.546, 29., 1.15, 1.265, 999.);
1106 AliMaterial(40, "SDD M55J$",12.3565, 6.4561, 1.8097, 22.9570, 999.);
e4f08ac3 1107 //AliMaterial(38, "SDD End ladder$", 69.9298, 29.8246, -0.3824, -36.5103, 999.);
1108 //AliMaterial(39, "SDD cone$",63.546, 29., -1.15, -1.265, 999.);
89909db5 1109
33959f40 1110 // **
1111 // check A and Z
faec2e21 1112 AliMedium(25, "SDD Si$", 25, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1113 AliMedium(26, "SDD Si chip$", 26, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1114 AliMedium(27, "SDD Si bus$", 27, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1115 AliMedium(28, "SDD C$", 28, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1116 AliMedium(29, "SDD Air$", 29, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1117 AliMedium(30, "SDD Vacuum$", 30, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
1118 AliMedium(31, "SDD Al$", 31, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1119 AliMedium(32, "SDD Water $", 32, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1120 AliMedium(33, "SDD Freon$", 33, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1121 AliMedium(34, "SDD PCB$", 34, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1122 AliMedium(35, "SDD Copper$", 35, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1123 AliMedium(36, "SDD Ceramics$", 36, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1124 AliMedium(37, "SDD Kapton$", 37, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1125 AliMedium(38, "SDD End ladder$",38, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1126 AliMedium(39, "SDD cone$", 39, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
31683195 1127 AliMedium(40, "SDD M55J$", 40, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
33959f40 1128 // 250-274 --> Silicon Strip Detectors (detectors, chips, buses, cooling,..)
1129
1130 AliMaterial(50, "SSD Si$", 28.0855, 14., 2.33, 9.36, 999.);
1131 AliMaterial(51, "SSD Si chip$", 28.0855, 14., 2.33, 9.36, 999.);
1132 AliMaterial(52, "SSD Si bus$", 28.0855, 14., 2.33, 9.36, 999.);
1133 AliMaterial(53, "SSD C$", 12.011, 6., 2.265,18.8, 999.);
1134 // v. dens
e4f08ac3 1135 AliMaterial(54, "SSD Air$", 14.61, 7.3, .001205, 30423., 999.);
33959f40 1136 AliMaterial(55, "SSD Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
e4f08ac3 1137 AliMaterial(56, "SSD Al$", 26.981539, 13., 2.6989, 8.9, 999.);
33959f40 1138 // After a call with ratios by number (negative number of elements),
1139 // the ratio array is changed to the ratio by weight, so all successive
1140 // calls with the same array must specify the number of elements as
1141 // positive
1142 AliMixture(57, "SSD Water $", awat, zwat, denswat, 2, wwat);
1143 // After a call with ratios by number (negative number of elements),
1144 // the ratio array is changed to the ratio by weight, so all successive
1145 // calls with the same array must specify the number of elements as
1146 // positive
1147 AliMixture(58, "SSD Freon$", afre, zfre, densfre, 2, wfre);
1148 AliMixture(59, "SSD PCB$", apcb, zpcb, denspcb, 3, wpcb);
1149 AliMaterial(60, "SSD Copper$", 63.546, 29., 8.96, 1.43, 999.);
1150 // After a call with ratios by number (negative number of elements),
1151 // the ratio array is changed to the ratio by weight, so all successive
1152 // calls with the same array must specify the number of elements as
1153 // positive
e4f08ac3 1154 AliMixture(61, "SSD Ceramics$", acer, zcer, denscer, 5, wcer);
33959f40 1155 AliMaterial(62, "SSD Kapton$", 12.011, 6., 1.3, 31.27, 999.);
1156 // check A and Z
d12d92a5 1157 AliMaterial(63, "SSD G10FR4$", 17.749, 8.875, 1.8, 21.822, 999.);
e4f08ac3 1158 AliMaterial(64, "SSD End ladder$", 32.0988, 15.4021, 0.68, 35.3238, 999.);
1159 AliMaterial(65, "SSD cone$",63.546, 29., 1.15, 1.265, 999.);
1160 //AliMaterial(64, "SSD End ladder$", 32.0988, 15.4021, -0.68, -35.3238, 999.);
1161 //AliMaterial(65, "SSD cone$",63.546, 29., -1.15, -1.265, 999.);
33959f40 1162 // **
faec2e21 1163 AliMedium(50, "SSD Si$", 50, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1164 AliMedium(51, "SSD Si chip$", 51, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1165 AliMedium(52, "SSD Si bus$", 52, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1166 AliMedium(53, "SSD C$", 53, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1167 AliMedium(54, "SSD Air$", 54, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1168 AliMedium(55, "SSD Vacuum$", 55, 0,isxfld,sxmgmx, 10.,1.00, .1, .100,10.00);
1169 AliMedium(56, "SSD Al$", 56, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1170 AliMedium(57, "SSD Water $", 57, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1171 AliMedium(58, "SSD Freon$", 58, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1172 AliMedium(59, "SSD PCB$", 59, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1173 AliMedium(60, "SSD Copper$", 60, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1174 AliMedium(61, "SSD Ceramics$", 61, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1175 AliMedium(62, "SSD Kapton$", 62, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1176 AliMedium(63, "SSD G10FR4$", 63, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1177 AliMedium(64, "SSD End ladder$",64, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1178 AliMedium(65, "SSD cone$", 65, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1179
33959f40 1180 // 275-299 --> General (end-caps, frames, cooling, cables, etc.)
1181
1182 AliMaterial(75, "GEN C$", 12.011, 6., 2.265, 18.8, 999.);
1183 // verify density
e4f08ac3 1184 AliMaterial(76, "GEN Air$", 14.61, 7.3, .001205, 30423., 999.);
33959f40 1185 AliMaterial(77, "GEN Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
1186 AliMixture( 78, "GEN POLYETHYL$", apoly, zpoly, .95, -2, wpoly);
1187 AliMixture( 79, "GEN SERVICES$", aserv, zserv, 4.68, 4, wserv);
1188 AliMaterial(80, "GEN Copper$", 63.546, 29., 8.96, 1.43, 999.);
1189 // After a call with ratios by number (negative number of elements),
1190 // the ratio array is changed to the ratio by weight, so all successive
1191 // calls with the same array must specify the number of elements as
1192 // positive
1193 AliMixture(81, "GEN Water $", awat, zwat, denswat, 2, wwat);
e6892b92 1194// AliMaterial(82, "GEN Cables$", 12.011, 6., 2.265, 18.8, 999.); // check !!!
1195// AliMaterial(83, "GEN patch pan$", 12.011, 6., 2.265, 18.8, 999.); // check !!!
1196// AliMaterial(84, "GEN serv$", 12.011, 6., 2.265, 18.8, 999.); // check !!!
d12d92a5 1197 AliMixture(85, "GEN Inox$", asteel, zsteel, 7.88, 4, wsteel);
e4f08ac3 1198 AliMaterial(86, "GEN Al$", 26.981539, 13., 2.6989, 8.9, 999.);
1199 AliMaterial(87,"inox/alum$", 32.1502,15.3383,3.0705,6.9197,999.);
33959f40 1200 // **
1201 AliMedium(75,"GEN C$", 75, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1202 AliMedium(76,"GEN Air$", 76, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1203 AliMedium(77,"GEN Vacuum$", 77, 0,isxfld,sxmgmx, 10., .10, .1, .100,10.00);
1204 AliMedium(78,"GEN POLYETHYL$",78, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1205 AliMedium(79,"GEN SERVICES$", 79, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1206 AliMedium(80,"GEN Copper$", 80, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1207 AliMedium(81,"GEN Water $", 81, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
e6892b92 1208// AliMedium(82,"GEN Cables$", 82, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1209// AliMedium(83,"GEN patch pan$",83, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1210// AliMedium(84,"GEN serv$", 84, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
d12d92a5 1211 AliMedium(85,"GEN Inox$", 85, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
e6892b92 1212 AliMedium(86, "GEN Al$", 86, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
e4f08ac3 1213 AliMedium(87,"inox/alum$", 87, 0,isxfld,sxmgmx, 10., .01, .1, .003, .003);
1214
33959f40 1215}
1216//_____________________________________________________________________________
1217void AliITSvPPRcoarseasymm::Init(){
1218////////////////////////////////////////////////////////////////////////
1219// Initialise the ITS after it has been created.
1220////////////////////////////////////////////////////////////////////////
bae7e562 1221 Int_t i;
33959f40 1222
bae7e562 1223 cout << endl;
1224 for(i=0;i<24;i++) cout << "*";cout << " ITSvPPRcoarseasymm_Init ";
1225 for(i=0;i<25;i++) cout << "*";cout << endl;
1226//
33959f40 1227 AliITS::Init();
bae7e562 1228//
1229 for(i=0;i<72;i++) cout << "*";
1230 cout << endl;
33959f40 1231}
1232
1233//_____________________________________________________________________________
1234void AliITSvPPRcoarseasymm::DrawModule(){
1235////////////////////////////////////////////////////////////////////////
1236// Draw a shaded view of the FMD version 6.
1237////////////////////////////////////////////////////////////////////////
1238
1239 // Set everything unseen
1240 gMC->Gsatt("*", "seen", -1);
1241 //
1242 // Set ALIC mother visible
1243 gMC->Gsatt("ALIC","SEEN",0);
1244 //
1245 // Set the volumes visible
1246 gMC->Gsatt("ITSD","SEEN",0);
1247 gMC->Gsatt("ITS1","SEEN",1);
1248 gMC->Gsatt("ITS2","SEEN",1);
1249 gMC->Gsatt("ITS3","SEEN",1);
1250 gMC->Gsatt("ITS4","SEEN",1);
1251 gMC->Gsatt("ITS5","SEEN",1);
1252 gMC->Gsatt("ITS6","SEEN",1);
1253
1254 gMC->Gsatt("IPCB","SEEN",1);
1255 gMC->Gsatt("ICO2","SEEN",1);
1256 gMC->Gsatt("ICER","SEEN",0);
1257 gMC->Gsatt("ISI2","SEEN",0);
1258 gMC->Gsatt("IPLA","SEEN",0);
1259 gMC->Gsatt("ICO3","SEEN",0);
1260 gMC->Gsatt("IEPX","SEEN",0);
1261 gMC->Gsatt("ISI3","SEEN",1);
1262 gMC->Gsatt("ISUP","SEEN",0);
1263 gMC->Gsatt("ICHO","SEEN",0);
1264 gMC->Gsatt("ICMO","SEEN",0);
1265 gMC->Gsatt("ICMD","SEEN",0);
1266 gMC->Gsatt("ICCO","SEEN",1);
1267 gMC->Gsatt("ICCM","SEEN",0);
1268 gMC->Gsatt("ITMD","SEEN",0);
1269 gMC->Gsatt("ITTT","SEEN",1);
1270
1271 //
1272 gMC->Gdopt("hide", "on");
1273 gMC->Gdopt("shad", "on");
1274 gMC->Gsatt("*", "fill", 7);
1275 gMC->SetClipBox(".");
1276 gMC->SetClipBox("*", 0, 300, -300, 300, -300, 300);
1277 gMC->DefaultRange();
1278 gMC->Gdraw("alic", 40, 30, 0, 11, 10, .07, .07);
1279 gMC->Gdhead(1111, "Inner Tracking System Version 1");
1280 gMC->Gdman(17, 6, "MAN");
1281}
1282//_____________________________________________________________________________
1283void AliITSvPPRcoarseasymm::StepManager(){
1284////////////////////////////////////////////////////////////////////////
1285// Called for every step in the ITS, then calls the AliITShit class
1286// creator with the information to be recoreded about that hit.
1287////////////////////////////////////////////////////////////////////////
b16d3d87 1288
1289/*
33959f40 1290 Int_t copy, id;
1291 Float_t hits[8];
1292 Int_t vol[4];
1293 TLorentzVector position, momentum;
1294// TClonesArray &lhits = *fHits;
1295//
1296// no hits for this coarse asymmetric version.
1297//
1298
1299 //
1300 // Track status
1301 vol[3] = 0;
1302 if(gMC->IsTrackInside()) vol[3] += 1;
1303 if(gMC->IsTrackEntering()) vol[3] += 2;
1304 if(gMC->IsTrackExiting()) vol[3] += 4;
1305 if(gMC->IsTrackOut()) vol[3] += 8;
1306 if(gMC->IsTrackDisappeared()) vol[3] += 16;
1307 if(gMC->IsTrackStop()) vol[3] += 32;
1308 if(gMC->IsTrackAlive()) vol[3] += 64;
1309 //
1310 // Fill hit structure.
1311 if( !(gMC->TrackCharge()) ) return;
1312 //
1313 // Only entering charged tracks
1314 if((id=gMC->CurrentVolID(copy))==fIdSens[0]) {
1315 vol[0]=1;
1316 id=gMC->CurrentVolOffID(1,copy);
1317 vol[1]=copy;
1318 id=gMC->CurrentVolOffID(2,copy);
1319 vol[2]=copy;
1320 } else if(id==fIdSens[1]) {
1321 vol[0]=2;
1322 id=gMC->CurrentVolOffID(1,copy);
1323 vol[1]=copy;
1324 id=gMC->CurrentVolOffID(2,copy);
1325 vol[2]=copy;
1326 } else if(id==fIdSens[2]) {
1327 vol[0]=3;
1328 vol[1]=copy;
1329 id=gMC->CurrentVolOffID(1,copy);
1330 vol[2]=copy;
1331 } else if(id==fIdSens[3]) {
1332 vol[0]=4;
1333 vol[1]=copy;
1334 id=gMC->CurrentVolOffID(1,copy);
1335 vol[2]=copy;
1336 } else if(id==fIdSens[4]) {
1337 vol[0]=5;
1338 vol[1]=copy;
1339 id=gMC->CurrentVolOffID(1,copy);
1340 vol[2]=copy;
1341 } else if(id==fIdSens[5]) {
1342 vol[0]=6;
1343 vol[1]=copy;
1344 id=gMC->CurrentVolOffID(1,copy);
1345 vol[2]=copy;
1346 } else return;
1347 gMC->TrackPosition(position);
1348 gMC->TrackMomentum(momentum);
1349 hits[0]=position[0];
1350 hits[1]=position[1];
1351 hits[2]=position[2];
1352 hits[3]=momentum[0];
1353 hits[4]=momentum[1];
1354 hits[5]=momentum[2];
1355 hits[6]=gMC->Edep();
1356 hits[7]=gMC->TrackTime();
1357// new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
1358//
1359// no hits for this coarse asymmetric version.
1360//
b16d3d87 1361*/
33959f40 1362}
33959f40 1363