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