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