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