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