]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STRUCT/AliBODY.cxx
139532b62382873e93a47c94f0652e9cf4c355c9
[u/mrichter/AliRoot.git] / STRUCT / AliBODY.cxx
1 ///////////////////////////////////////////////////////////////////////////////
2 //                                                                           //
3 //  Alice external volume                                                    //
4 //  This class contains the description of the Alice external volume         //
5 //                                                                           //
6 //Begin_Html
7 /*
8 <img src="picts/AliBODYClass.gif">
9 </pre>
10 <br clear=left>
11 <font size=+2 color=red>
12 <p>The responsible person for this module is
13 <a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
14 </font>
15 <pre>
16 */
17 //End_Html
18 //                                                                           //
19 //                                                                           //
20 ///////////////////////////////////////////////////////////////////////////////
21
22 #include "AliRun.h"
23 #include "AliBODY.h"
24
25 ClassImp(AliBODY)
26  
27 //_____________________________________________________________________________
28 AliBODY::AliBODY()
29 {
30   //
31   // Default constructor
32   //
33 }
34  
35 //_____________________________________________________________________________
36 AliBODY::AliBODY(const char *name, const char *title)
37        : AliModule(name,title)
38 {
39   //
40   // Standard constructor of the Alice external volume
41   //
42   SetMarkerColor(7);
43   SetMarkerStyle(2);
44   SetMarkerSize(0.4);
45 }
46  
47 //_____________________________________________________________________________
48 void AliBODY::CreateGeometry()
49 {
50   //
51   // Create the geometry of the Alice external body
52   //
53   //Begin_Html
54   /*
55     <img src="picts/AliBODYTree.gif">
56   */
57   //End_Html
58   //
59   // If the ZDC is present we have an asymmetric box
60   // made by a four sides polygone
61   //  
62   //Begin_Html
63   /*
64     <img src="picts/AliBODYLarge.gif">
65   */
66   //End_Html
67   //
68   // If the ZDC is not present make just a BOX
69   //
70   //Begin_Html
71   /*
72     <img src="picts/AliBODYSmall.gif">
73   */
74   //End_Html
75
76   Float_t DALIC[10];
77   Int_t *idtmed = fIdtmed->GetArray()+1;
78   //
79   if(gAlice->GetModule("ZDC")) {
80     //
81     // If the ZDC is present we have an asymmetric box
82     // made by a four sides polygone
83     //
84     DALIC[0]=45;
85     DALIC[1]=360;
86     DALIC[2]=4;
87     DALIC[3]=2;
88     DALIC[4]=-3000;
89     DALIC[5]=0;
90     DALIC[6]=2000;
91     DALIC[7]=15000;
92     DALIC[8]=0;
93     DALIC[9]=2000;
94     gMC->Gsvolu("ALIC","PGON",idtmed[1],DALIC,10);
95   } else {
96     //
97     // If the ZDC is not present make just a BOX
98     //
99     DALIC[0]=2000;
100     DALIC[1]=2000;
101     DALIC[2]=3000;
102     gMC->Gsvolu("ALIC","BOX ",idtmed[1],DALIC,3);
103   }
104 }
105  
106 //_____________________________________________________________________________
107 void AliBODY::CreateMaterials()
108 {
109   Int_t ISXFLD = gAlice->Field()->Integ();
110   Float_t SXMGMX = gAlice->Field()->Max();
111   //
112   AliMaterial(1,"Vacuum  $",1.e-16,1.e-16,1.e-16,1.e16,1.e16);
113   AliMaterial(2,"Air     $",14.61,7.3,0.001205,30420,67500);
114   AliMaterial(3,"Be      $", 9.01,4 ,1.848   ,35.30,36.70);
115   //
116   AliMedium(1,"Vacuum  $",1,0,ISXFLD,SXMGMX,10,1,0.1,0.1,10);
117   AliMedium(2,"Air     $",2,0,ISXFLD,SXMGMX,10,-1,-0.1,0.1 ,-10);
118   AliMedium(3,"Be pipe $",3,0,ISXFLD,SXMGMX,10,0.1,0.1,0.01,0.01);
119 }
120  
121 //_____________________________________________________________________________
122 void AliBODY::DrawModule()
123 {
124   //
125   // Draw a view of the Alice outside box
126   //
127   // Set everything unseen
128   gMC->Gsatt("*", "seen", -1);
129   // 
130   // Set ALIC mother visible
131   gMC->Gsatt("ALIC","SEEN",1);
132   //
133   // Set the volumes visible
134   //
135   gMC->Gdopt("hide","off");
136   if(gAlice->GetModule("ZDC")) {
137     //
138     // ZDC is present
139     //
140     gMC->DefaultRange();
141     gMC->Gdraw("alic", 40, 30, 0, 15, 10, .0014, .0014);
142     gMC->Gdhead(1111, "Aice Main body with Zero Degree Calorimeter");
143   } else {
144     //
145     // ZDC is not present
146     //
147     gMC->Gdraw("alic", 40, 30, 0, 10, 9, .0027, .0027);
148     gMC->Gdhead(1111, "Aice Main body");
149   }
150   gMC->Gdman(18, 4, "MAN");
151 }
152  
153