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