]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCv0.cxx
Remove dead and/or unused code and printout lines. i.e. cleaned it up a bit.
[u/mrichter/AliRoot.git] / TPC / AliTPCv0.cxx
CommitLineData
4c039060 1/**************************************************************************
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$
f4900c61 18Revision 1.23 2001/04/24 11:17:33 kowal2
19New TPC geometry.
20
79575d04 21Revision 1.22 2001/03/13 13:07:33 kowal2
22Corrected bug in the TPC mother volume geometry.
23Thanks to A. Morsch
24
7ab50f40 25Revision 1.21 2000/11/14 10:48:57 kowal2
26Correct material used for TSA4. Thanks to J. Barbosa.
27
2c668420 28Revision 1.20 2000/11/06 17:24:10 kowal2
29Corrected bug in the outer containment vessel and
30the outer field cage geometry.
31Thanks to J. Barbosa.
32
720b23b8 33Revision 1.19 2000/11/02 16:55:24 kowal2
34Corrected bug in the inner containment vessel geometry.
35Thanks to J. Belikov
36
08db548a 37Revision 1.18 2000/11/02 07:24:11 kowal2
38Correction in the TPC geometry.
39Changes due to the new hit structure.
40
6a905708 41Revision 1.17 2000/07/10 20:57:39 hristov
42Update of TPC code and macros by M.Kowalski
43
37831078 44Revision 1.16 2000/06/30 12:07:50 kowal2
45Updated from the TPC-PreRelease branch
46
73042f01 47Revision 1.15.2.4 2000/06/26 07:39:42 kowal2
48Changes to obey the coding rules
49
50Revision 1.15.2.3 2000/06/25 08:38:41 kowal2
51Splitted from AliTPCtracking
52
53Revision 1.15.2.2 2000/06/16 12:58:13 kowal2
54Changed parameter settings
55
56Revision 1.15.2.1 2000/06/09 07:15:07 kowal2
57
58Defaults loaded automatically (hard-wired)
59Optional parameters can be set via macro called in the constructor
60
61Revision 1.15 2000/05/15 10:00:30 kowal2
62Corrected bug in the TPC geometry, thanks to Ivana Hrivnacova
63
e94dd9ca 64Revision 1.14 2000/04/17 09:37:33 kowal2
65removed obsolete AliTPCDigitsDisplay.C
66
cc80f89e 67Revision 1.13.8.2 2000/04/10 08:33:44 kowal2
68
69Updated readout chambers
70
71Revision 1.13.8.1 2000/04/10 07:56:53 kowal2
72Not used anymore - removed
73
74Revision 1.13 1999/11/04 17:28:06 fca
75Correct barrel part of HV Degrader
76
a5371c42 77Revision 1.12 1999/10/08 06:27:23 fca
78Corrected bug in the HV degrader geometry, thanks to G.Tabary
79
d183a600 80Revision 1.11 1999/10/04 13:39:54 fca
81Correct array index problem
82
cdde5b1e 83Revision 1.10 1999/09/29 09:24:34 fca
84Introduction of the Copyright and cvs Log
85
4c039060 86*/
73042f01 87//
4c039060 88
fe4da5cc 89///////////////////////////////////////////////////////////////////////////////
90// //
91// Time Projection Chamber version 0 -- "coarse" TPC //
92// //
93//Begin_Html
94/*
1439f98e 95<img src="picts/AliTPCv0Class.gif">
fe4da5cc 96*/
97//End_Html
98// //
99// //
100///////////////////////////////////////////////////////////////////////////////
101
102#include <TMath.h>
103#include <TGeometry.h>
104#include <TNode.h>
105#include <TTUBE.h>
106#include "AliTPCv0.h"
107#include "AliRun.h"
108#include <iostream.h>
109#include <fstream.h>
fe4da5cc 110#include "AliMC.h"
111#include "AliConst.h"
112
73042f01 113#include "AliTPCParamSR.h"
cc80f89e 114#include "AliTPCDigitsArray.h"
1283eee5 115
fe4da5cc 116ClassImp(AliTPCv0)
117
118//_____________________________________________________________________________
119AliTPCv0::AliTPCv0(const char *name, const char *title)
120 :AliTPC(name, title)
121{
122 //
123 // Standard creator for TPC version 0
124 //
73042f01 125
126 SetGasMixt(2,20,10,-1,0.9,0.1,0.);
127
128 if (fTPCParam)
129 fTPCParam->Write(fTPCParam->GetTitle());
fe4da5cc 130}
131
132//_____________________________________________________________________________
133void AliTPCv0::CreateGeometry()
134{
79575d04 135
fe4da5cc 136 //
37831078 137 // Creation of the TPC version 0, i.e. no sensitive volumes,
138 // only the material distribution
fe4da5cc 139 //
140 //Begin_Html
141 /*
37831078 142 <img src="picts/AliTPC.gif">
fe4da5cc 143 */
144 //End_Html
145 //Begin_Html
146 /*
1439f98e 147 <img src="picts/AliTPCv0Tree.gif">
fe4da5cc 148 */
149 //End_Html
150
37831078 151 //---------------------------------------------------------------
152 // TPC geometry
153 //
154 // Origin: Marek Kowalski, INP Cracow
155 // Marek.Kowalski@ifj.edu.pl
156 //---------------------------------------------------------------
37831078 157 Float_t dm[50];
1283eee5 158
37831078 159 Int_t *idtmed = fIdtmed->GetArray(); // TPC media
1283eee5 160
37831078 161 Int_t idrotm[120]; // rotation matrices
1283eee5 162
37831078 163 Int_t nRotMat = 0; // actual number of rotation matrices
1283eee5 164
1283eee5 165
37831078 166 //
79575d04 167 // Mother volume TPC (Air) - all volumes will be positioned in it
37831078 168 //
79575d04 169
37831078 170 dm[0]=0.;
171 dm[1]=360.;
79575d04 172 dm[2]=8.;
1283eee5 173
37831078 174 //
1283eee5 175
79575d04 176 dm[3]=-283.7;
177 dm[4]=65.6;
178 dm[5]=278.;
1283eee5 179
37831078 180 //
1283eee5 181
79575d04 182 dm[6]=-253.6;
183 dm[7]=65.6;
184 dm[8]=278.;
1283eee5 185
37831078 186 //
fe4da5cc 187
79575d04 188 dm[9]=-73.3;
189 dm[10]=60.9;
190 dm[11]=278.;
1283eee5 191
37831078 192 //
1283eee5 193
79575d04 194 dm[12]=-73.3;
195 dm[13]=56.9;
196 dm[14]=278.;
1283eee5 197
37831078 198 //
1283eee5 199
79575d04 200 dm[15]=73.3;
201 dm[16]=56.9;
202 dm[17]=278.;
1283eee5 203
37831078 204 //
1283eee5 205
79575d04 206 dm[18]=73.3;
207 dm[19]=60.9;
208 dm[20]=278.;
1283eee5 209
37831078 210 //
1283eee5 211
79575d04 212 dm[21]=253.6;
213 dm[22]=65.6;
214 dm[23]=278.;
1283eee5 215
37831078 216 //
1283eee5 217
79575d04 218 dm[24]=283.7;
219 dm[25]=65.6;
220 dm[26]=278.;
221
222 gMC->Gsvolu("TPC ","PCON",idtmed[0],dm,27);
1283eee5 223
79575d04 224 // outer part
1283eee5 225
37831078 226 //-------------------------------------------------------------------
79575d04 227 // Tpc Outer INsulator (CO2) - contains cont. vessel and field cage
37831078 228 //-------------------------------------------------------------------
1283eee5 229
37831078 230 dm[0]= 0.;
231 dm[1]= 360.;
232 dm[2]= 6.;
1283eee5 233
37831078 234 //
1283eee5 235
79575d04 236 dm[3]=-253.6;
237 dm[4]=258.;
238 dm[5]=275.5;
1283eee5 239
37831078 240 //
cc80f89e 241
79575d04 242 dm[6]=-250.6;
243 dm[7]=258.;
244 dm[8]=275.5;
1283eee5 245
37831078 246 //
1283eee5 247
79575d04 248 dm[9]=-250.6;
249 dm[10]=258.;
250 dm[11]=278.;
1283eee5 251
79575d04 252 //
1283eee5 253
79575d04 254 dm[12]=253.6;
255 dm[13]=258.;
256 dm[14]=278.;
1283eee5 257
37831078 258 //
1283eee5 259
79575d04 260 dm[15]=253.6;
261 dm[16]=264.8;
262 dm[17]=278.;
1283eee5 263
37831078 264 //
1283eee5 265
79575d04 266 dm[18]=256.6;
267 dm[19]=264.8;
268 dm[20]=278.;
1283eee5 269
79575d04 270 gMC->Gsvolu("TOIN","PCON",idtmed[3],dm,21);
1283eee5 271
37831078 272 //----------------------------------------------------------------
273 // Tpc Outer Contaiment Vessel
274 // mother volume - Al, daughters - composite (sandwich)
275 //----------------------------------------------------------------
79575d04 276
277 dm[0]=0.;
278 dm[1]=360.;
720b23b8 279 dm[2]=6.;
37831078 280
281 //
282
79575d04 283 dm[3]=-250.6;
284 dm[4]=270.4;
285 dm[5]=278.;
37831078 286
287 //
288
79575d04 289 dm[6]=-247.6;
290 dm[7]=270.4;
291 dm[8]=278.;
37831078 292
293 //
79575d04 294
295 dm[9]=-247.6;
296 dm[10]=274.81;
297 dm[11]=278.;
37831078 298
299 //
1283eee5 300
79575d04 301 dm[12]=253.6;
302 dm[13]=274.81;
303 dm[14]=278.;
1283eee5 304
720b23b8 305 //
37831078 306
79575d04 307 dm[15]=253.6;
308 dm[16]=264.8;
309 dm[17]=278.;
37831078 310
79575d04 311 //
720b23b8 312
79575d04 313 dm[18]=256.6;
314 dm[19]=264.8;
315 dm[20]=278.;
720b23b8 316
317 gMC->Gsvolu("TOCV","PCON",idtmed[4],dm,21);
37831078 318
79575d04 319 // Daughter volumes - sandwich
37831078 320
321 // Tpc SAndwich 1 - Al
79575d04 322
323 dm[0]=274.81;
324 dm[1]=278.;
325 dm[2]=252.1;
1283eee5 326
37831078 327 gMC->Gsvolu("TSA1","TUBE",idtmed[4],dm,3);
1283eee5 328
79575d04 329 // Tpc SAndwich 2 - epoxy glue (I use Lexan)
1283eee5 330
37831078 331 dm[0] += 5.e-3;
332 dm[1] -= 5.e-3;
79575d04 333
334 gMC->Gsvolu("TSA2","TUBE",idtmed[14],dm,3);
335
336 // Tpc SAndwich 3 - Tedlar
337
338 dm[0] += 0.01;
339 dm[1] -= 0.01;
37831078 340
79575d04 341 gMC->Gsvolu("TSA3","TUBE",idtmed[9],dm,3);
1283eee5 342
1283eee5 343
79575d04 344 // Tpc SAndwich 4 - fiber glass (G10)
1283eee5 345
79575d04 346 dm[0] += 5.e-3;
347 dm[1] -= 5.e-3;
1283eee5 348
79575d04 349 gMC->Gsvolu("TSA4","TUBE",idtmed[12],dm,3);
37831078 350
79575d04 351 // Tpc SAndwich 5 - NOMEX honeycomb
37831078 352
79575d04 353 dm[0] += 0.075;
354 dm[1] -= 0.075;
37831078 355
79575d04 356 gMC->Gsvolu("TSA5","TUBE",idtmed[6],dm,3);
357
358 // 5->4->3->2->1->TCOV
37831078 359
79575d04 360
361 gMC->Gspos("TSA5",1,"TSA4",0.,0.,0.,0,"ONLY");
37831078 362 gMC->Gspos("TSA4",1,"TSA3",0.,0.,0.,0,"ONLY");
363 gMC->Gspos("TSA3",1,"TSA2",0.,0.,0.,0,"ONLY");
79575d04 364 gMC->Gspos("TSA2",1,"TSA1",0.,0.,0.,0,"ONLY");
37831078 365
79575d04 366 gMC->Gspos("TSA1",1,"TOCV",0.,0.,3.,0,"ONLY");
37831078 367
368 // TCOV-> TOIN
369
370 gMC->Gspos("TOCV",1,"TOIN",0.,0.,0.,0,"ONLY");
371
372 //-------------------------------------------------------
373 // Tpc Outer Field Cage
374 // mother volume - Al, daughters - composite (sandwich)
375 //-------------------------------------------------------
376
377 dm[0]=0.;
378 dm[1]=360.;
379 dm[2]=6.;
380
79575d04 381 //
382
383 dm[3]=-253.6;
384 dm[4]=258.;
385 dm[5]=275.5;
37831078 386
387 //
1283eee5 388
79575d04 389 dm[6]=-250.6;
390 dm[7]=258.;
391 dm[8]=275.5;
1283eee5 392
37831078 393 //
79575d04 394
395 dm[9]=-250.6;
396 dm[10]=258.;
397 dm[11]=260.05;
37831078 398
399 //
400
79575d04 401 dm[12]=250.6;
402 dm[13]=258.;
403 dm[14]=260.05;
1283eee5 404
37831078 405 //
1283eee5 406
79575d04 407 dm[15]=250.6;
408 dm[16]=258.;
409 dm[17]=275.5;
1283eee5 410
37831078 411 //
412
79575d04 413 dm[18]=253.6;
414 dm[19]=258.;
415 dm[20]=275.5;
37831078 416
79575d04 417 gMC->Gsvolu("TOFC","PCON",idtmed[4],dm,21);
37831078 418
419 // Daughter volumes
420
79575d04 421 // Tpc SAndwich 6 - Tedlar
37831078 422
423 dm[0]= 258.;
424 dm[1]= 260.05;
79575d04 425 dm[2]= 252.1;
37831078 426
79575d04 427 gMC->Gsvolu("TSA6","TUBE",idtmed[9],dm,3);
37831078 428
79575d04 429 // Tpc SAndwich 7 - fiber glass
37831078 430
431 dm[0] += 5.e-3;
432 dm[1] -= 5.e-3;
433
79575d04 434 gMC->Gsvolu("TSA7","TUBE",idtmed[12],dm,3);
37831078 435
37831078 436
79575d04 437 // Tpc SAndwich 8 - NOMEX
37831078 438
439 dm[0] += 0.02;
440 dm[1] -= 0.02;
441
79575d04 442 gMC->Gsvolu("TSA8","TUBE",idtmed[6],dm,3);
37831078 443
79575d04 444 // 8->7->6->TOFC
37831078 445
79575d04 446 gMC->Gspos("TSA8",1,"TSA7",0.,0.,0.,0,"ONLY");
447 gMC->Gspos("TSA7",1,"TSA6",0.,0.,0.,0,"ONLY");
448 gMC->Gspos("TSA6",1,"TOFC",0.,0.,0.,0,"ONLY");
37831078 449
450 // TOFC->TOIN
451
79575d04 452 gMC->Gspos("TOFC",1,"TOIN",0.,0.,0.,0,"ONLY");
37831078 453
454 // TOIN->TPC
455
456 gMC->Gspos("TOIN",1,"TPC ",0.,0.,0.,0,"ONLY");
457
79575d04 458 // inner part
1283eee5 459
79575d04 460 //--------------------------------------------------------------------
461 // Tpc Inner INsulator (CO2) - inner f.c. will be placed there
462 // Inner containment vessel will be placed directly in the TPC
463 //--------------------------------------------------------------------
1283eee5 464
37831078 465 dm[0]=0.;
79575d04 466 dm[1]=360.;
467 dm[2]=4.;
37831078 468
79575d04 469 //
37831078 470
79575d04 471 dm[3]=-253.6;
472 dm[4]=65.9;
473 dm[5]=79.2;
37831078 474
1283eee5 475 //
476
79575d04 477 dm[6]=-73.3;
478 dm[7]=61.2;
479 dm[8]=79.2;
37831078 480
481 //
1283eee5 482
79575d04 483 dm[9]=73.3;
484 dm[10]=61.2;
485 dm[11]=79.2;
1283eee5 486
37831078 487 //
1283eee5 488
79575d04 489 dm[12]=253.6;
490 dm[13]=65.9;
491 dm[14]=79.2;
1283eee5 492
79575d04 493 gMC->Gsvolu("TIIN","PCON",idtmed[3],dm,15);
37831078 494
79575d04 495 // the middle part of the F.C. is thinner - carve out the strip - Ne-CO2
37831078 496
79575d04 497 dm[0]=79.16;
498 dm[1]=79.2;
499 dm[2]=88.;
37831078 500
79575d04 501 gMC->Gsvolu("TII1","TUBE",idtmed[1],dm,3);
1283eee5 502
79575d04 503 gMC->Gspos("TII1",1,"TIIN",0.,0.,0.,0,"ONLY");
1283eee5 504
79575d04 505 //-----------------------------------------------------
506 // Tpc Inner Field Cage
507 // mother volume - Al, daughters - composite (sandwich)
508 //------------------------------------------------------
1283eee5 509
79575d04 510 dm[0]=0.;
511 dm[1]=360.;
512 dm[2]=10.;
1283eee5 513
514 //
37831078 515
79575d04 516 dm[3]=-253.6;
517 dm[4]=70.3;
518 dm[5]=79.2;
37831078 519
1283eee5 520 //
521
79575d04 522 dm[6]=-250.6;
523 dm[7]=70.3;
524 dm[8]=79.2;
1283eee5 525
37831078 526 //
527
79575d04 528 dm[9]=-250.6;
529 dm[10]=77.05;
530 dm[11]=79.2;
37831078 531
532 //
1283eee5 533
79575d04 534 dm[12]=-88.;
535 dm[13]=77.05;
536 dm[14]=79.2;
1283eee5 537
37831078 538 //
1283eee5 539
79575d04 540 dm[15]=-88.;
541 dm[16]=77.09;
542 dm[17]=79.16;
1283eee5 543
37831078 544 //
1283eee5 545
79575d04 546 dm[18]=88.;
547 dm[19]=77.09;
548 dm[20]=79.16;
1283eee5 549
37831078 550 //
551
79575d04 552 dm[21]=88.;
553 dm[22]=77.05;
554 dm[23]=79.2;
1283eee5 555
37831078 556 //
1283eee5 557
79575d04 558 dm[24]=250.6;
559 dm[25]=77.05;
560 dm[26]=79.2;
1283eee5 561
37831078 562 //
1283eee5 563
79575d04 564 dm[27]=250.6;
565 dm[28]=70.3;
566 dm[29]=79.2;
1283eee5 567
37831078 568 //
1283eee5 569
79575d04 570 dm[30]=253.6;
571 dm[31]=70.3;
572 dm[32]=79.2;
1283eee5 573
79575d04 574 gMC->Gsvolu("TIFC","PCON",idtmed[4],dm,33);
1283eee5 575
79575d04 576 // daughter volumes - central part
1283eee5 577
79575d04 578 // Tpc Sandwich 9 -Tedlar
1283eee5 579
79575d04 580 dm[0]=77.09;
581 dm[1]=79.16;
582 dm[2]=88.;
1283eee5 583
79575d04 584 gMC->Gsvolu("TSA9","TUBE",idtmed[9],dm,3);
1283eee5 585
79575d04 586 // Tpc Sandwich 10 - fiber glass (G10)
1283eee5 587
79575d04 588 dm[0] += 5.e-3;
589 dm[1] -= 5.e-3;
37831078 590
79575d04 591 gMC->Gsvolu("TS10","TUBE",idtmed[12],dm,3);
1283eee5 592
79575d04 593 // Tpc Sandwich 11 - NOMEX
fe4da5cc 594
79575d04 595 dm[0] += 0.03;
596 dm[1] -= 0.03;
37831078 597
79575d04 598 gMC->Gsvolu("TS11","TUBE",idtmed[6],dm,3);
37831078 599
79575d04 600 // 11->10->9->TIFC
37831078 601
79575d04 602 gMC->Gspos("TS11",1,"TS10",0.,0.,0.,0,"ONLY");
603 gMC->Gspos("TS10",1,"TSA9",0.,0.,0.,0,"ONLY");
37831078 604
79575d04 605 gMC->Gspos("TSA9",1,"TIFC",0.,0.,0.,0,"ONLY");
37831078 606
79575d04 607 // daughter volumes - outer parts (reinforced)
37831078 608
79575d04 609 // Tpc Sandwich 12 -Tedlar
37831078 610
79575d04 611 dm[0]=77.05;
612 dm[1]=79.2;
613 dm[2]=82.05;
37831078 614
79575d04 615 gMC->Gsvolu("TS12","TUBE",idtmed[9],dm,3);
37831078 616
79575d04 617 // Tpc Sandwich 13 - fiber glass (G10)
1283eee5 618
79575d04 619 dm[0] += 5.e-3;
620 dm[1] -= 5.e-3;
1283eee5 621
79575d04 622 gMC->Gsvolu("TS13","TUBE",idtmed[12],dm,3);
37831078 623
79575d04 624 // Tpc Sandwich 14 - NOMEX
1283eee5 625
79575d04 626 dm[0] += 0.07;
627 dm[1] -= 0.07;
1283eee5 628
79575d04 629 gMC->Gsvolu("TS14","TUBE",idtmed[6],dm,3);
37831078 630
79575d04 631 // 14->13->12->TIFC
1283eee5 632
79575d04 633 gMC->Gspos("TS14",1,"TS13",0.,0.,0.,0,"ONLY");
634 gMC->Gspos("TS13",1,"TS12",0.,0.,0.,0,"ONLY");
1283eee5 635
79575d04 636 gMC->Gspos("TS12",1,"TIFC",0.,0.,170.05,0,"ONLY");
637 gMC->Gspos("TS12",2,"TIFC",0.,0.,-170.05,0,"ONLY");
37831078 638
79575d04 639 // place this inside the inner insulator
1283eee5 640
79575d04 641 gMC->Gspos("TIFC",1,"TIIN",0.,0.,0.,0,"ONLY");
37831078 642
79575d04 643 // and now in the TPC...
37831078 644
79575d04 645 gMC->Gspos("TIIN",1,"TPC ",0.,0.,0.,0,"ONLY");
37831078 646
79575d04 647 //---------------------------------------------------------
648 // Tpc Inner Containment vessel - Cones
649 //---------------------------------------------------------
1283eee5 650
79575d04 651 dm[0]=0.;
652 dm[1]=360.;
37831078 653 dm[2]=8.;
1283eee5 654
37831078 655 //
1283eee5 656
79575d04 657 dm[3]=71.8;
658 dm[4]=56.9;
659 dm[5]=59.4;
1283eee5 660
37831078 661 //
1283eee5 662
79575d04 663 dm[6]=73.;
664 dm[7]=56.9;
665 dm[8]=59.4;
1283eee5 666
37831078 667 //
1283eee5 668
79575d04 669 dm[9]=73.;
670 dm[10]=56.9;
671 dm[11]=61.2;
1283eee5 672
37831078 673 //
1283eee5 674
79575d04 675 dm[12]=73.3;
676 dm[13]=56.9;
677 dm[14]=61.2;
1283eee5 678
37831078 679 //
79575d04 680
681 dm[15]=73.3;
682 dm[16]=60.9;
683 dm[17]=61.2;
1283eee5 684
79575d04 685 //
1283eee5 686
79575d04 687 dm[18]=253.6;
688 dm[19]=65.6;
689 dm[20]=65.9;
1283eee5 690
37831078 691 //
1283eee5 692
79575d04 693 dm[21]=253.6;
694 dm[22]=65.6;
f4900c61 695 dm[23]=74.6;
1283eee5 696
37831078 697 //
1283eee5 698
f4900c61 699 dm[24]=256.6;
79575d04 700 dm[25]=65.6;
f4900c61 701 dm[26]=74.6;
1283eee5 702
79575d04 703 gMC->Gsvolu("TICC","PCON",idtmed[4],dm,27);
1283eee5 704
79575d04 705 Float_t phi1,phi2,phi3,theta1,theta2,theta3; // rotation angles
1283eee5 706
79575d04 707 // reflection matrix
708
709 theta1 = 90.;
710 phi1 = 0.;
711 theta2 = 90.;
712 phi2 = 270.;
713 theta3 = 180.;
714 phi3 = 0.;
1283eee5 715
79575d04 716 AliMatrix(idrotm[nRotMat], theta1, phi1, theta2, phi2, theta3, phi3);
1283eee5 717
79575d04 718 gMC->Gspos("TICC",1,"TPC ",0.,0.,0.,0,"ONLY");
719 gMC->Gspos("TICC",2,"TPC ",0.,0.,0.,idrotm[nRotMat],"ONLY");
1283eee5 720
1283eee5 721
79575d04 722 //---------------------------------------------------------
723 // Tpc Inner Containment vessel - Middle part -Al
724 //---------------------------------------------------------
1283eee5 725
79575d04 726 dm[0]=0.;
727 dm[1]=360.;
728 dm[2]=6.;
1283eee5 729
37831078 730 //
1283eee5 731
79575d04 732 dm[3]=-71.6;
733 dm[4]=60.2;
734 dm[5]=61.2;
1283eee5 735
37831078 736 //
1283eee5 737
79575d04 738 dm[6]=-69.1;
739 dm[7]=60.2;
740 dm[8]=61.2;
1283eee5 741
37831078 742 //
1283eee5 743
79575d04 744 dm[9]=-69.1;
745 dm[10]=60.64;
746 dm[11]=61.2;
1283eee5 747
37831078 748 //
1283eee5 749
79575d04 750 dm[12]=69.1;
751 dm[13]=60.64;
752 dm[14]=61.2;
1283eee5 753
37831078 754 //
1283eee5 755
79575d04 756 dm[15]=69.1;
757 dm[16]=60.2;
758 dm[17]=61.2;
37831078 759
760 //
761
79575d04 762 dm[18]=71.6;
763 dm[19]=60.2;
764 dm[20]=61.2;
37831078 765
79575d04 766 gMC->Gsvolu("TICM","PCON",idtmed[4],dm,21);
37831078 767
79575d04 768 // Tpc Sandwich 15 - Al
37831078 769
79575d04 770 dm[0]=60.64;
771 dm[1]=61.2;
772 dm[2]=70.1;
37831078 773
79575d04 774 gMC->Gsvolu("TS15","TUBE",idtmed[4],dm,3);
37831078 775
79575d04 776 // Tpc Sandwich 16 - epoxy glue
37831078 777
79575d04 778 dm[0] += 5.e-3;
779 dm[1] -= 5.e-3;
37831078 780
79575d04 781 gMC->Gsvolu("TS16","TUBE",idtmed[14],dm,3);
37831078 782
6a905708 783 // Tpc Sandwich 17 - Tedlar
37831078 784
79575d04 785 dm[0] += 0.01;
786 dm[1] -= 0.01;
37831078 787
6a905708 788 gMC->Gsvolu("TS17","TUBE",idtmed[9],dm,3);
37831078 789
79575d04 790 // Tpc Sandwich 18 - fiber glass
37831078 791
79575d04 792 dm[0] += 5.e-3;
793 dm[1] -= 5.e-3;
37831078 794
79575d04 795 gMC->Gsvolu("TS18","TUBE",idtmed[12],dm,3);
37831078 796
79575d04 797 // Tpc Sandwich 19 - Nomex
37831078 798
79575d04 799 dm[0] += 0.01;
800 dm[1] -= 0.01;
37831078 801
79575d04 802 gMC->Gsvolu("TS19","TUBE",idtmed[12],dm,3);
37831078 803
79575d04 804 // 19->18->17->16->15-> TICM
37831078 805
79575d04 806 gMC->Gspos("TS19",1,"TS18",0.,0.,0.,0,"ONLY");
37831078 807 gMC->Gspos("TS18",1,"TS17",0.,0.,0.,0,"ONLY");
79575d04 808 gMC->Gspos("TS17",1,"TS16",0.,0.,0.,0,"ONLY");
809 gMC->Gspos("TS16",1,"TS15",0.,0.,0.,0,"ONLY");
37831078 810
79575d04 811 gMC->Gspos("TS15",1,"TICM ",0.,0.,0.,0,"ONLY");
812
37831078 813
79575d04 814 // TPc inner cont. vessel Joints
37831078 815
79575d04 816 dm[0]=60.2;
817 dm[1]=61.2;
818 dm[2]=0.5;
37831078 819
79575d04 820 gMC->Gsvolu("TPJ1","TUBE",idtmed[4],dm,3);
37831078 821
79575d04 822 gMC->Gspos("TPJ1",1,"TPC ",0.,0.,72.3,0,"ONLY");
823 gMC->Gspos("TPJ1",2,"TPC ",0.,0.,-72.3,0,"ONLY");
37831078 824
79575d04 825 //
37831078 826
79575d04 827 dm[0]=0.;
828 dm[1]=360.;
829 dm[2]=4.;
37831078 830
79575d04 831 //
37831078 832
79575d04 833 dm[3]=70.8;
834 dm[4]=58.4;
835 dm[5]=60.1;
37831078 836
79575d04 837 //
37831078 838
79575d04 839 dm[6]=71.2;
840 dm[7]=58.4;
841 dm[8]=60.1;
37831078 842
79575d04 843 //
37831078 844
79575d04 845 dm[9]=71.2;
846 dm[10]=58.4;
847 dm[11]=59.4;
37831078 848
79575d04 849 //
37831078 850
79575d04 851 dm[12]=71.6;
852 dm[13]=58.4;
853 dm[14]=59.4;
37831078 854
79575d04 855 gMC->Gsvolu("TPJ2","PCON",idtmed[4],dm,15);
37831078 856
79575d04 857 gMC->Gspos("TPJ2",1,"TPC ",0.,0.,0.,0,"ONLY");
858 gMC->Gspos("TPJ2",2,"TPC ",0.,0.,0.,idrotm[nRotMat],"ONLY");
37831078 859
37831078 860
37831078 861
79575d04 862 // Tpc Inner Containment vessel Seal (Viton, I use Lexan for a time being)
37831078 863
79575d04 864 dm[0]=58.4;
865 dm[1]=61.2;
866 dm[2]=0.1;
37831078 867
79575d04 868 gMC->Gsvolu("TICS","TUBE",idtmed[14],dm,3);
37831078 869
79575d04 870 gMC->Gspos("TICS",1,"TPC ",0.,0.,71.7,0,"ONLY");
871 gMC->Gspos("TICS",2,"TPC ",0.,0.,-71.7,0,"ONLY");
37831078 872
79575d04 873 // TICM -> TPC
37831078 874
79575d04 875 gMC->Gspos("TICM",1,"TPC ",0.,0.,0.,0,"ONLY");
37831078 876
79575d04 877 //
37831078 878
79575d04 879 nRotMat++; // prepare for the next rotation matrix
37831078 880
881 //---------------------------------------------------------
882 // Tpc Dift Gas volume Nonsensitive (Ne-CO2 90/10)
883 // and its daughters (HV membrane, rods, readout chambers)
884 //---------------------------------------------------------
885
886 dm[0]= 79.2;
887 dm[1]= 258.0;
888 dm[2]= 253.6;
889
79575d04 890 gMC->Gsvolu("TDGN","TUBE",idtmed[1],dm,3);
37831078 891
892 // sector opening angles
893
894 Float_t innerOpenAngle = fTPCParam->GetInnerAngle();
895
896 // sector angle shift
897
898 Float_t innerAngleShift = fTPCParam->GetInnerAngleShift();
899
900 // number of sectors
901
902 Int_t nInnerSector = fTPCParam->GetNInnerSector()/2;
903 Int_t nOuterSector = fTPCParam->GetNOuterSector()/2;
904
905 // All above parameters are identical for inner and outer
906 // sectors. The distinction is kept for the historical reasons
907 // and eventually will disappear.
908
909 Float_t tanAlpha = TMath::Tan(0.5*innerOpenAngle);
910 Float_t cosAlpha = TMath::Sqrt(1.+tanAlpha*tanAlpha);
911 Float_t space;
912
913 //-------------------------------------------------------------------------
914 // Tpc Inner Readout Chambers
915 //-------------------------------------------------------------------------
916
917 dm[0]= 14.483;
918 dm[1]= 23.3345;
919 dm[2]= 1.6; // thickness
920 dm[3]= 25.1;
921
922 gMC->Gsvolu("TIRC","TRD1",idtmed[4],dm,4);
923
924 // this volume will be positioned in the empty space
925 // of the end-cap to avoid overlaps
926
927 dm[0]= 13.7305;
928 dm[1]= 21.1895;
929 dm[2]= 2.25;
930 dm[3]= 21.15;
931
932 gMC->Gsvolu("TIC1","TRD1",idtmed[4],dm,4);
933
934
935 //------------------------------------------------
936 // Tpc Inner readout chamber Pad Plane
937 //------------------------------------------------
938
939 dm[0]= 14.483;
940 dm[1]= 23.3345;
941 dm[2]= 0.5;
942 dm[3]= 25.1;
943
944 gMC->Gsvolu("TIPP","TRD1",idtmed[12],dm,4);
945
946 //
947
948 dm[0] -= 1.218511934;
949 dm[1] -= 1.218511934;
950 dm[2] = 0.35;
951
952 gMC->Gsvolu("TIC3","TRD1",idtmed[1],dm,4);
953
954 gMC->Gspos("TIC3",1,"TIPP",0.,0.15,0.,0,"ONLY");
955
956 gMC->Gspos("TIPP",1,"TIRC",0.,1.1,0.,0,"ONLY");
957
958
959 //----------------------------------------------
960 // Tpc Readout Chambers Empty spaces - for both
961 // inner and outer sectors
962 //----------------------------------------------
963
964 gMC->Gsvolu("TRCE","TRD1",idtmed[0],dm,0);
965
966 // Inner sector - 4 spaces
967
968
969 dm[3] = 4.7625;
970 dm[0] = 12.472;
971
972 Float_t rr = 90.52;
973 Float_t zz;
974
975 zz= -12.7875;
976
977 space = rr*tanAlpha-dm[0];
978
979 for(Int_t nsLow=0;nsLow<4;nsLow++){
980
981 rr += 9.525;
982 dm[1]= rr*tanAlpha - space;
983
984 dm[2]=0.8;
985
986 gMC->Gsposp("TRCE",nsLow+1,"TIRC",0.,-0.8,zz,0,"ONLY",dm,4);
987
988 //
989
990 dm[2] = 1.2;
991
992 gMC->Gsposp("TRCE",nsLow+5,"TIC1",0.,1.05,zz-2.1,0,"ONLY",dm,4);
993
994 rr += 0.4;
995 dm[0] = rr*tanAlpha - space;
996 zz += (0.4+9.525);
997
998 }
999
1000 dm[0]= 12.472;
1001 // dm[1] - this is the dm[1] from the previous TRCE
1002 dm[2]= 1.05;
1003 dm[3]= 19.65;
1004
1005 gMC->Gsposp("TRCE",9,"TIC1",0.,-1.2,0.,0,"ONLY",dm,4);
1006
1007 //
1008 // TPc Space for Connectors
1009 //
1010
1011 dm[0]= .3;
1012 dm[1]= .3;
1013 dm[2]= 4.5;
1014
1015 gMC->Gsvolu("TPSC","BOX ",idtmed[0],dm,3);
1016
1017 // TPC Connectors
1018
1019 dm[0]= .25;
1020 dm[1]= .15;
1021 dm[2]= 3.75;
1022
1023 gMC->Gsvolu("TPCC","BOX ",idtmed[13],dm,3);
1024
1025 gMC->Gspos("TPCC",1,"TPSC",0.,0.15,0.,0,"ONLY");
1026
1027 zz = -12.7875;
1028
1029
1030 Float_t alpha;
1031 Float_t astep;
1032
37831078 1033 // inner part of the inner sector - 2 x 20 holes
1034
1035 astep = 20.00096874/19.;
1036
1037 alpha = 10.00048437-astep;
1038
1039 Float_t x1,x2;
1040
1041 x1 = 13.31175725;
1042 x1 -= 0.996357832;
1043
1044 x2 = 15.06180253;
1045 x2 -= 1.163028812;
1046
1047 Int_t ncon;
1048
1049 for(ncon=0;ncon<20;ncon++){
1050
1051 phi1 = 0.;
1052 theta1 = 90.+alpha;
1053 phi2=90.;
1054 theta2 = 90.;
1055 phi3 = (alpha>0) ? 0. : 180.;
1056 theta3 = TMath::Abs(alpha);
1057
1058 AliMatrix(idrotm[nRotMat], theta1, phi1, theta2, phi2, theta3, phi3);
1059
1060
1061
1062 gMC->Gspos("TPSC",ncon+1,"TIRC",x1,0.3,-12.7875,idrotm[nRotMat],"ONLY");
1063 gMC->Gspos("TPSC",ncon+21,"TIRC",x2,0.3,-2.8625,idrotm[nRotMat],"ONLY");
1064
1065
1066 x1 -= 1.296357833;
1067 x2 -= 1.463028812;
1068
1069 alpha -= astep;
1070 nRotMat++;
1071
1072 }
1073
1074 // outer part of the inner sector - 2 x 25 holes
1075
1076 astep = 20.00096874/24.;
1077 alpha = 10.00048437-astep;
1078
1079 x1 = 16.81184781;
1080 x1 -= 1.016295986;
1081
1082 x2 = 18.5618931;
1083 x2 -= 1.150914854;
1084
1085 for(ncon=0;ncon<25;ncon++){
1086
1087 phi1 = 0.;
1088 theta1 = 90.+alpha;
1089 phi2=90.;
1090 theta2 = 90.;
1091 phi3 = (alpha>0) ? 0. : 180.;
1092 theta3 = TMath::Abs(alpha);
1093
1094 AliMatrix(idrotm[nRotMat], theta1, phi1, theta2, phi2, theta3, phi3);
1095
1096
1097
1098 gMC->Gspos("TPSC",ncon+41,"TIRC",x1,0.3,7.0625,idrotm[nRotMat],"ONLY");
1099 gMC->Gspos("TPSC",ncon+66,"TIRC",x2,0.3,16.9875,idrotm[nRotMat],"ONLY");
1100
1101
1102 x1 -= 1.316295986;
1103 x2 -= 1.450914854;
1104
1105 alpha -= astep;
1106 nRotMat++;
1107
1108 }
1109
1110 //--------------------------------------------------------------------------
1111 // TPC Outer Readout Chambers
1112 // this is NOT a final design
1113 //--------------------------------------------------------------------------
1114
1115 dm[0]= 23.3875;
1116 dm[1]= 43.524;
1117 dm[2]= 1.5; //thickness
1118 dm[3]= 57.1;
1119
1120 gMC->Gsvolu("TORC","TRD1",idtmed[4],dm,4);
1121
1122 //------------------------------------------------
1123 // Tpc Outer readout chamber Pad Plane
1124 //------------------------------------------------
1125
1126 dm[2]= 0.5;
1127
1128 gMC->Gsvolu("TOPP","TRD1",idtmed[12],dm,4);
1129
1130 dm[0] -= 1.218511934;
1131 dm[1] -= 1.218511934;
1132 dm[2] = 0.35;
1133
1134 gMC->Gsvolu("TOC3","TRD1",idtmed[1],dm,4);
1135
1136 gMC->Gspos("TOC3",1,"TOPP",0.,0.15,0.,0,"ONLY");
1137
1138 gMC->Gspos("TOPP",1,"TORC",0.,1.0,0.,0,"ONLY");
1139
1140 // empty space
1141
1142 dm[0]= 21.035;
1143 dm[1]= 38.7205;
1144 dm[2]= 0.7;
1145 dm[3]= 50.15;
1146
1147 gMC->Gsposp("TRCE",10,"TORC",0.,-0.8,-2.15,0,"ONLY",dm,4);
1148
1149 dm[0]= 22.2935;
1150 dm[1]= 40.5085;
1151 dm[2]= 2.25;
1152 dm[3]= 51.65;
1153
1154 gMC->Gsvolu("TOC1","TRD1",idtmed[4],dm,4);
1155
1156 dm[0]= 21.35;
1157 dm[1]= 38.7205;
1158 dm[2]= 2.25;
1159 dm[3]= 50.15;
1160
79575d04 1161 gMC->Gsposp("TRCE",11,"TOC1",0.,0.,0.,0,"ONLY",dm,4);
37831078 1162
1163 //-----------------------------------------------
1164 // Tpc Services Support Wheel
1165 //-----------------------------------------------
1166
1167 dm[0]=0.;
1168 dm[1]=360.;
1169 dm[2]=18.;
1170 dm[3]=2.;
1171
1172 dm[4]= -5.;
1173 dm[5]= 77.017;
1174 dm[6]= 255.267;
1175
1176 dm[7]= 5.;
1177 dm[8]= dm[5];
1178 dm[9]= dm[6];
1179
1180 gMC->Gsvolu("TSSW","PGON",idtmed[4],dm,10);
1181
1182 // Tpc Services Wheel Cover
1183
1184 dm[4]= -0.5;
1185 dm[7]= 0.5;
1186
1187 gMC->Gsvolu("TSWC","PGON",idtmed[4],dm,10);
1188
1189 // Tpc Service wheel Cover Empty space
1190
1191 dm[0]= 10.99;
1192 dm[1]= 39.599;
1193 dm[2]= .5;
1194 dm[3]= 81.125;
1195
1196 gMC->Gsvolu("TSCE","TRD1",idtmed[0],dm,4);
1197
1198 // Tpc services Wheel Empty Spaces
1199
1200 dm[0]= 13.18017507;
1201 dm[1]= 44.61045938;
1202 dm[2]= 4.;
1203 dm[3]= 89.125;
1204
1205 gMC->Gsvolu("TWES","TRD1",idtmed[0],dm,4);
1206
1207 // Tpc Services Wheel Bars
1208
1209 gMC->Gsvolu("TSWB","TRD1",idtmed[4],dm,0);
1210
1211 // bars-> TWES
1212
1213 dm[2]= 4.;
1214 dm[3]= .4;
1215
1216 dm[0]= 13.8149522;
1217 dm[1]= 13.95601379;
1218
1219 gMC->Gsposp("TSWB",1,"TWES",0.,0.,-85.125,0,"ONLY",dm,4);
1220
1221 dm[0]= 43.83462067;
1222 dm[1]= 43.97568225;
1223
1224 gMC->Gsposp("TSWB",2,"TWES",0.,0.,85.125,0,"ONLY",dm,4);
1225
1226 // TPc ELectronics - right now 30% X0 Si
1227
1228 dm[0]= 14.03813696;
1229 dm[1]= 43.3524075;
1230 dm[2]= 1.404;
1231 dm[3]= 83.125;
1232
1233 gMC->Gsvolu("TPEL","TRD1",idtmed[11],dm,4);
1234 gMC->Gspos("TPEL",1,"TWES",0.,0.,0.,0,"ONLY");
1235
1236 //--------------------------------------------------------------------------
1237 // End caps
1238 //--------------------------------------------------------------------------
1239
1240 // TPc Main Wheel - Al
1241
79575d04 1242 dm[0]= 74.9;
1243 dm[1]= 264.4;
37831078 1244 dm[2]= 3.0;
1245
1246 gMC->Gsvolu("TPMW","TUBE",idtmed[4],dm,3);
1247
37831078 1248 //--------------------------------------------------------------------------
1249 // Tpc Empty Space for the Readout chambers
1250 //--------------------------------------------------------------------------
1251
1252 Float_t rLow= 86.2;
1253 Float_t rUp= 243.5;
1254 Float_t dR = 0.5*(rUp-rLow);
1255
79575d04 1256 space= 1.5/cosAlpha; // wheel ribs are 3.0 cm wide
37831078 1257
1258 dm[0]= rLow*tanAlpha-space;
1259 dm[1]= rUp*tanAlpha-space;
1260 dm[2] = 3.0;
1261 dm[3]= dR;
1262
1263 gMC->Gsvolu("TESR","TRD1",idtmed[0],dm,4);
1264
1265 // TIC1->TESR
1266
1267 gMC->Gspos("TIC1",1,"TESR",0.,0.75,-dR+23.97,0,"ONLY");
1268
1269 // TOC1->TESR
1270
1271 gMC->Gspos("TOC1",1,"TESR",0.,0.75,dR-55.02,0,"ONLY");
1272
1273 // Tpc Empty Space Bars - Al (daughters of TESR)
1274
1275 Float_t zBar;
1276
1277 gMC->Gsvolu("TESB","TRD1",idtmed[4],dm,0);
1278
1279 // lower bar
1280
1281 dm[0]= rLow*tanAlpha-space;
1282 dm[1]= 88.7*tanAlpha-space;
79575d04 1283 dm[2]= 2.25;
37831078 1284 dm[3]= 1.275;
1285
1286 zBar = -dR+dm[3];
1287
79575d04 1288 gMC->Gsposp("TESB",1,"TESR",0.,0.75,zBar,0,"ONLY",dm,4);
37831078 1289
1290 // middle bar
1291
1292 dm[0]= 131.65*tanAlpha-space;
1293 dm[1]= 136.5*tanAlpha-space;
1294 dm[3]= 2.425;
1295
1296 zBar = -dR +131.65+dm[3]-rLow;
1297
79575d04 1298 gMC->Gsposp("TESB",2,"TESR",0.,0.75,zBar,0,"ONLY",dm,4);
37831078 1299
1300 // upper bar
1301
1302 dm[0]= 240.4*tanAlpha-space;
1303 dm[1]= rUp*tanAlpha-space;
1304 dm[3]= 1.55;
1305
1306 zBar = dR-dm[3];
1307
79575d04 1308 gMC->Gsposp("TESB",3,"TESR",0.,0.75,zBar,0,"ONLY",dm,4);
37831078 1309
1310 // positioning of the empty spaces into the main wheel
1311
37831078 1312 Float_t rCenter,xc,yc;
1313 Float_t rInner,rOuter; // center of the inner and outer chamber
1314
1315 rCenter = rLow+dR;
1316
1317 rInner = 108.07;
1318 rOuter = 190.68;
1319
1320
1321 for(Int_t ns=0; ns<nInnerSector;ns++){
1322
1323 phi1 = ns * innerOpenAngle + innerAngleShift;
1324 phi1 *= kRaddeg; // in degrees
1325
1326 phi1 = (Float_t)TMath::Nint(phi1) + 270.;
1327
1328 if (phi1 > 360.) phi1 -= 360.;
1329
1330 theta1 = 90.;
1331 phi2 = 90.;
1332 theta2 = 180.;
1333 phi3 = ns * innerOpenAngle + innerAngleShift;
1334 phi3 *= kRaddeg; // in degrees
1335
1336 phi3 = (Float_t)TMath::Nint(phi3);
1337
1338 if(phi3 > 360.) phi3 -= 360.;
1339
1340 theta3 = 90.;
1341
1342 // "holes"->End plate
1343
1344 xc = rCenter*TMath::Cos(phi3*kDegrad);
1345 yc = rCenter*TMath::Sin(phi3*kDegrad);
1346
1347 AliMatrix(idrotm[nRotMat], theta1, phi1, theta2, phi2, theta3, phi3);
1348
1349 gMC->Gspos("TESR",ns+1,"TPMW",xc,yc,0.,idrotm[nRotMat],"ONLY");
1350
1351 // TSCE->TSWC (services wheel volumes)
1352
1353 xc = 166.142*TMath::Cos(phi3*kDegrad);
1354 yc = 166.142*TMath::Sin(phi3*kDegrad);
1355
1356 gMC->Gspos("TSCE",ns+1,"TSWC",xc,yc,0.,idrotm[nRotMat],"ONLY");
1357 gMC->Gspos("TWES",ns+1,"TSSW",xc,yc,0.,idrotm[nRotMat],"ONLY");
1358
1359
1360 // readout chambers->TDGN (drift gas)
1361
1362 xc = rInner*TMath::Cos(phi3*kDegrad);
1363 yc = rInner*TMath::Sin(phi3*kDegrad);
1364
1365 gMC->Gspos("TIRC",ns+1,"TDGN",xc,yc,252.,idrotm[nRotMat],"ONLY");
1366
1367 xc = rOuter*TMath::Cos(phi3*kDegrad);
1368 yc = rOuter*TMath::Sin(phi3*kDegrad);
1369
1370 gMC->Gspos("TORC",ns+1,"TDGN",xc,yc,252.1,idrotm[nRotMat],"ONLY");
1371
1372 nRotMat++;
1373
1374 theta2 = 0.; // reflection
1375
1376 AliMatrix(idrotm[nRotMat], theta1, phi1, theta2, phi2, theta3, phi3);
1377
1378 xc = rInner*TMath::Cos(phi3*kDegrad);
1379 yc = rInner*TMath::Sin(phi3*kDegrad);
1380
1381 gMC->Gspos("TIRC",ns+nInnerSector+1,"TDGN",xc,yc,-252.,idrotm[nRotMat],"ONLY");
1382
1383 xc = rOuter*TMath::Cos(phi3*kDegrad);
1384 yc = rOuter*TMath::Sin(phi3*kDegrad);
1385
1386 gMC->Gspos("TORC",ns+nOuterSector+1,"TDGN",xc,yc,-252.1,idrotm[nRotMat],"ONLY");
1387
1388 nRotMat++;
1389
1390 }
37831078 1391 // TPMW->TPC
1392
1393 gMC->Gspos("TPMW",1,"TPC ",0.,0.,256.6,0,"ONLY");
79575d04 1394 gMC->Gspos("TPMW",2,"TPC ",0.,0.,-256.6,idrotm[0],"ONLY");
37831078 1395
79575d04 1396 //---------------------------------------------------------
1397 // Tpc High Voltage Membrane - 100 microns of mylar
1398 //---------------------------------------------------------
37831078 1399
79575d04 1400 dm[0]=82.8;
1401 dm[1]=252.;
1402 dm[2]=0.005;
37831078 1403
79575d04 1404 gMC->Gsvolu("THVM","TUBE",idtmed[8],dm,3);
37831078 1405
79575d04 1406 gMC->Gspos("THVM",1,"TDGN",0.,0.,0.,0,"ONLY");
37831078 1407
79575d04 1408 // Tpc High Voltage membrane Holders
37831078 1409
79575d04 1410 gMC->Gsvolu("THVH","TUBE",idtmed[4],dm,0);
37831078 1411
79575d04 1412
37831078 1413
79575d04 1414 // inner
37831078 1415
79575d04 1416 dm[0]=79.3;
1417 dm[1]=82.8;
1418 dm[2]=0.2;
37831078 1419
79575d04 1420 gMC->Gsposp("THVH",1,"TDGN",0.,0.,0.,0,"ONLY",dm,3);
1421
1422 // outer
1423
1424 dm[0]= 252.;
1425 dm[1]= 257.9;
1426 dm[2]= 0.4;
1427
1428 gMC->Gsposp("THVH",2,"TDGN",0.,0.,0.,0,"ONLY",dm,3);
37831078 1429
1430 //----------------------------------------------------------
1431 // TPc Support Rods - MAKROLON
1432 //----------------------------------------------------------
1433
1434 dm[0]= 0.9;
1435 dm[1]= 1.2;
37831078 1436
79575d04 1437 gMC->Gsvolu("TPSR","TUBE",idtmed[7],dm,0); // inner and outer rods differ
1438
37831078 1439
79575d04 1440 for(Int_t nrod=0;nrod<18;nrod++){
37831078 1441 Float_t angle=innerOpenAngle*(Float_t)nrod;
1442
79575d04 1443 xc=81.5*TMath::Cos(angle);
1444 yc=81.5*TMath::Sin(angle);
37831078 1445
79575d04 1446 dm[2]=126.7;
37831078 1447
79575d04 1448 gMC->Gsposp("TPSR",nrod+1,"TDGN",xc,yc,126.9,0,"ONLY",dm,3);
1449 gMC->Gsposp("TPSR",nrod+19,"TDGN",xc,yc,-126.9,0,"ONLY",dm,3);
37831078 1450
79575d04 1451 dm[2]=126.6;
1452
1453 xc=254.25*TMath::Cos(angle);
1454 yc=254.25*TMath::Sin(angle);
1455
1456 // rod number 54 contans the HV cable
37831078 1457
79575d04 1458 if(nrod<17) {
1459 gMC->Gsposp("TPSR",nrod+37,"TDGN",xc,yc,127.,0,"ONLY",dm,3);
1460 gMC->Gsposp("TPSR",nrod+54,"TDGN",xc,yc,-127.,0,"ONLY",dm,3);
1461 }
1462
37831078 1463 }
1464
1465 //----------------------------------------------------------
79575d04 1466 // Tpc High Voltage Rod - MAKROLON + Copper cable
37831078 1467 //----------------------------------------------------------
1468
1469 // rod with cable (Left)
1470
1471 dm[0]=0.;
1472 dm[1]=2.25;
79575d04 1473 dm[2]=126.6;
37831078 1474
1475 gMC->Gsvolu("THVL","TUBE",idtmed[7],dm,3);
1476
1477 // HV cable
1478
1479 dm[0]=0.;
1480 dm[1]=0.3;
79575d04 1481 dm[2]=126.6;
37831078 1482
79575d04 1483 gMC->Gsvolu("THVC","TUBE",idtmed[10],dm,3);
37831078 1484
1485 // empty space
1486
1487 dm[0]=0.3;
1488 dm[1]=1.;
79575d04 1489 dm[2]=126.6;
37831078 1490
1491 gMC->Gsvolu("THVE","TUBE",idtmed[1],dm,3);
1492
1493 gMC->Gspos("THVC",1,"THVL",0.,0.,0.,0,"ONLY");
1494 gMC->Gspos("THVE",1,"THVL",0.,0.,0.,0,"ONLY");
1495
1496 // rod without cable
1497
1498 dm[0]=1.8;
1499 dm[1]=2.25;
79575d04 1500 dm[2]=126.6;
37831078 1501
1502 gMC->Gsvolu("THVR","TUBE",idtmed[7],dm,3);
1503
79575d04 1504 gMC->Gspos("THVL",1,"TDGN",xc,yc,-127.,0,"ONLY");
1505 gMC->Gspos("THVR",1,"TDGN",xc,yc,127.,0,"ONLY");
37831078 1506
1507 gMC->Gspos("TDGN",1,"TPC ",0.,0.,0.,0,"ONLY");
79575d04 1508
37831078 1509 // services wheel cover -> wheel
1510
1511
1512 gMC->Gspos("TSWC",1,"TSSW",0.,0.,4.5,0,"ONLY");
1513 gMC->Gspos("TSWC",2,"TSSW",0.,0.,-4.5,0,"ONLY");
1514
1515
1516 // put the wheel into the TPC
1517
1518 gMC->Gspos("TSSW",1,"TPC ",0.,0.,278.7,0,"ONLY");
1519 gMC->Gspos("TSSW",2,"TPC ",0.,0.,-278.7,0,"ONLY");
1520
1521 //
1522
1523 gMC->Gsord("TPMW",6);
1524 gMC->Gsord("TSSW",6);
1525 gMC->Gsord("TSWC",6);
1526
1527 // put the TPC into ALIC (main mother volume)
1283eee5 1528
37831078 1529 gMC->Gspos("TPC ",1,"ALIC",0.,0.,0.,0,"ONLY");
79575d04 1530
1283eee5 1531} // end of function
1532
fe4da5cc 1533
1534//_____________________________________________________________________________
1535void AliTPCv0::CreateMaterials()
1536{
1537 //
1538 // Define materials for the TPC
1539 //
1540 AliTPC::CreateMaterials();
1541}
1542
1543//_____________________________________________________________________________
8c555625 1544void AliTPCv0::DrawDetector()
fe4da5cc 1545{
1546 //
1547 // Draw a shaded view of the Time Projection Chamber version 0
1548 //
1549
fe4da5cc 1550 // Set everything unseen
cfce8870 1551 gMC->Gsatt("*", "seen", -1);
fe4da5cc 1552 //
1553 // Set ALIC mother transparent
cfce8870 1554 gMC->Gsatt("ALIC","SEEN",0);
fe4da5cc 1555 //
1556 // Set the volumes visible
37831078 1557 gMC->Gsatt("TPC ","SEEN",0);
1558 gMC->Gsatt("TOIN","SEEN",1);
1559 gMC->Gsatt("TOIN","COLO",7);
37831078 1560 gMC->Gsatt("TOCV","SEEN",1);
1561 gMC->Gsatt("TOCV","COLO",4);
1562 gMC->Gsatt("TSA1","SEEN",0);
1563 gMC->Gsatt("TSA2","SEEN",0);
1564 gMC->Gsatt("TSA3","SEEN",0);
79575d04 1565 gMC->Gsatt("TSA4","SEEN",0);
1566 gMC->Gsatt("TSA5","SEEN",0);
37831078 1567 gMC->Gsatt("TOFC","SEEN",1);
1568 gMC->Gsatt("TOFC","COLO",4);
37831078 1569 gMC->Gsatt("TSA6","SEEN",0);
1570 gMC->Gsatt("TSA7","SEEN",0);
79575d04 1571 gMC->Gsatt("TSA8","SEEN",0);
37831078 1572 gMC->Gsatt("TIIN","SEEN",1);
79575d04 1573 gMC->Gsatt("TIIN","COLO",7);
1574 gMC->Gsatt("TII1","SEEN",0);
1575 gMC->Gsatt("TIFC","SEEN",1);
1576 gMC->Gsatt("TIFC","COLO",4);
1577 gMC->Gsatt("TSA9","SEEN",0);
37831078 1578 gMC->Gsatt("TS10","SEEN",0);
1579 gMC->Gsatt("TS11","SEEN",0);
1580 gMC->Gsatt("TS12","SEEN",0);
37831078 1581 gMC->Gsatt("TS13","SEEN",0);
1582 gMC->Gsatt("TS14","SEEN",0);
79575d04 1583 gMC->Gsatt("TICC","SEEN",0);
1584 gMC->Gsatt("TICM","SEEN",0);
37831078 1585 gMC->Gsatt("TS15","SEEN",0);
1586 gMC->Gsatt("TS16","SEEN",0);
37831078 1587 gMC->Gsatt("TS17","SEEN",0);
79575d04 1588 gMC->Gsatt("TS18","SEEN",0);
1589 gMC->Gsatt("TS19","SEEN",0);
1590 gMC->Gsatt("TPJ1","SEEN",0);
1591 gMC->Gsatt("TPJ2","SEEN",0);
1592 gMC->Gsatt("TICS","SEEN",0);
1593 gMC->Gsatt("TDGN","SEEN",0);
37831078 1594 gMC->Gsatt("TIRC","SEEN",0);
1595 gMC->Gsatt("TIC1","SEEN",1);
1596 gMC->Gsatt("TIPP","SEEN",0);
1597 gMC->Gsatt("TIC3","SEEN",0);
1598 gMC->Gsatt("TRCE","SEEN",0);
1599 gMC->Gsatt("TPSC","SEEN",0);
79575d04 1600 gMC->Gsatt("TPCC","SEEN",0);
37831078 1601 gMC->Gsatt("TORC","SEEN",0);
1602 gMC->Gsatt("TOPP","SEEN",0);
1603 gMC->Gsatt("TOC3","SEEN",0);
1604 gMC->Gsatt("TOC1","SEEN",1);
1605 gMC->Gsatt("TSSW","SEEN",1);
1606 gMC->Gsatt("TSWC","SEEN",1);
37831078 1607 gMC->Gsatt("TSSW","COLO",3);
1608 gMC->Gsatt("TSWC","COLO",3);
1609 gMC->Gsatt("TSCE","COLO",6);
79575d04 1610 gMC->Gsatt("TSCE","SEEN",1);
37831078 1611 gMC->Gsatt("TWES","SEEN",0);
1612 gMC->Gsatt("TSWB","SEEN",0);
1613 gMC->Gsatt("TPEL","SEEN",0);
1614 gMC->Gsatt("TPMW","SEEN",1);
37831078 1615 gMC->Gsatt("TESR","SEEN",1);
1616 gMC->Gsatt("TPMW","COLO",12);
37831078 1617 gMC->Gsatt("TIC1","COLO",5);
79575d04 1618 gMC->Gsatt("TOC1","COLO",5);
37831078 1619 gMC->Gsatt("TESB","SEEN",0);
1620 gMC->Gsatt("THVM","SEEN",1);
1621 gMC->Gsatt("THVM","COLO",11);
79575d04 1622 gMC->Gsatt("THVH","SEEN",0);
1623 gMC->Gsatt("TPSR","SEEN",0);
37831078 1624 gMC->Gsatt("THVL","SEEN",0);
79575d04 1625 gMC->Gsatt("THVC","SEEN",0);
37831078 1626 gMC->Gsatt("THVE","SEEN",0);
1627 gMC->Gsatt("THVR","SEEN",0);
79575d04 1628
fe4da5cc 1629 //
cfce8870 1630 gMC->Gdopt("hide", "on");
1631 gMC->Gdopt("shad", "on");
1632 gMC->Gsatt("*", "fill", 7);
1633 gMC->SetClipBox(".");
37831078 1634 gMC->SetClipBox("TPMW",-300,300,-300,300,254.,270.);
1635 gMC->SetClipBox("TESR",-300,300,-300,300,254.,270.);
1636 gMC->SetClipBox("TSSW",-300,300,-300,300,283.,284.);
1637 gMC->SetClipBox("TSWC",-300,300,-300,300,283.,284.);
1638 gMC->SetClipBox("*", 0, 300, -300, 300, -290, 290);
cfce8870 1639 gMC->DefaultRange();
1640 gMC->Gdraw("alic", 40, 30, 0, 12, 9.5, .025, .025);
1641 gMC->Gdhead(1111, "Time Projection Chamber");
1642 gMC->Gdman(18, 4, "MAN");
1643 gMC->Gdopt("hide","off");
fe4da5cc 1644}
1645
1646//_____________________________________________________________________________
1647void AliTPCv0::Init()
1648{
1649 //
1650 // Initialise Time Projection Chamber version 0
1651 //
1652 printf("TPC version 0 initialized\n");
1653}
1654
1655//_____________________________________________________________________________
1656void AliTPCv0::StepManager()
1657{
1658 //
1659 // Procedure called at each step in the TPC
1660 //
1661}