]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STRUCT/AliDIPOv1.cxx
Do not save CVS subdirectories
[u/mrichter/AliRoot.git] / STRUCT / AliDIPOv1.cxx
1 ///////////////////////////////////////////////////////////////////////////////
2 //                                                                           //
3 //  Magnetic Dipole version 1                                                //
4 //                                                                           //
5 //Begin_Html
6 /*
7 <img src="gif/AliDIPOv1Class.gif">
8 </pre>
9 <br clear=left>
10 <font size=+2 color=red>
11 <p>The responsible person for this module is
12 <a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
13 </font>
14 <pre>
15 */
16 //End_Html
17 //                                                                           //
18 //                                                                           //
19 ///////////////////////////////////////////////////////////////////////////////
20
21 #include "AliDIPOv1.h"
22 #include "AliRun.h"
23 #include "AliMC.h"
24  
25 ClassImp(AliDIPOv1)
26  
27 //_____________________________________________________________________________
28 AliDIPOv1::AliDIPOv1() : AliDIPO()
29 {
30   //
31   // Default constructor for the magnetic dipole version 1
32   //
33 }
34  
35 //_____________________________________________________________________________
36 AliDIPOv1::AliDIPOv1(const char *name, const char *title)
37        : AliDIPO(name,title)
38 {
39   //
40   // Standard constructor for magnetic dipole version 1
41   //
42   SetMarkerColor(7);
43   SetMarkerStyle(2);
44   SetMarkerSize(0.4);
45 }
46  
47 //_____________________________________________________________________________
48 void AliDIPOv1::CreateGeometry()
49 {
50   //
51   // Creation of the geometry of the magnetic DIPOLE version 1
52   //
53   //Begin_Html
54   /*
55     <img src="gif/AliDIPOv1Tree.gif">
56   */
57   //End_Html
58   //Begin_Html
59   /*
60     <img src="gif/AliDIPOv1.gif">
61   */
62   //End_Html
63
64   AliMC* pMC = AliMC::GetMC();
65   
66   Float_t par[5];
67   
68   Int_t *idtmed = gAlice->Idtmed();
69   
70   //abs_d   = 90.;  // DEFINES DRIFT LENGTH 
71   //z_nose  = 102.;
72   //z_cone  = 285.;
73   //theta1  = 24.;  // 1. angle defining the front absorber 
74   //theta2  = 5.;   // 2. angle defining the front absorbe 
75   //acc_max = 9.;   // ANGLE POLAIRE MAXIMUM 
76   //acc_min = 2.;   // ANGLE POLAIRE MINIMUM DE DETECTION 
77   //abs_l   = 503.;
78   //d_steel = 1.;   // THICKNESS OF STEEL SUPPORT 
79   //d_poly  = 7.5;
80   //d_pb    = 2.5;
81   //abs_cc  = 315.; // DEFINES LENGTH OF CARBON 
82   //abs_c   = 358.;
83   //abs_s   = 150.; // DEFINES W-SHIELD LENGTH 
84   //abs_n   = 80.;  // START OF NOSE 
85   //r_abs   = 4.;
86   //r_pb    = .1;
87   //epsilon = .01;
88   //theta_r = 3.;
89   //d_rear  = 35.;
90   //theta_open = .75;
91   
92   //z_l3      = 700.;
93   //zmag_in   = 725.;
94   //zmag_out  = 1225.;
95   //zfil_in   = 1471.;
96   //zfil_out  = 1591.;
97   //zcon_in   = 1900.;
98   //zcon_out  = 2e3;
99   //zcone_e   = 859.0875;
100   //spec_l    = 1800.;
101   //zplug_in  = 1780.;
102   //zplug_out = 1900.;
103
104   //     Chamber position 
105   //      CZ1=515.5 
106   //cz1 = 511.;
107   //cz2 = 686.;
108   //cz3 = 971.;
109   //cz4 = 1245.;
110   //cz5 = 1445.;
111   //cz6 = 1610.;
112   //cz7 = 1710.;
113   
114   
115   //       DIPOLE MAGNET 
116   par[0] = 0.;
117   par[1] = 280.;
118   par[2] = 250.;
119   pMC->Gsvolu("DDIP", "TUBE", idtmed[1801], par, 3);
120   
121   //       COIL 
122   par[0] = 250.;
123   par[1] = 125.;
124   par[2] = 165.;
125   par[3] = 204.;
126   par[4] = 244.;
127   
128   pMC->Gsvolu("DIPC", "CONE", idtmed[1810], par, 5);
129   pMC->Gspos("DIPC", 1, "DDIP", 0., 0., 0., 0, "ONLY");
130   par[0] = 250.;
131   par[1] = 115.;
132   par[2] = 125.;
133   par[3] = 194.;
134   par[4] = 204.;
135   pMC->Gsvolu("DIIC", "CONE", idtmed[1807], par, 5);
136   pMC->Gspos("DIIC", 1, "DDIP", 0., 0., 0., 0, "ONLY");
137   
138   //       YOKE 
139   par[0] = 250.;
140   par[1] = 165.;
141   par[2] = 195.;
142   par[3] = 244.;
143   par[4] = 274.;
144   
145   pMC->Gsvolu("DIPY", "CONE", idtmed[1834], par, 5);
146   pMC->Gspos("DIPY", 1, "DDIP", 0., 0., 0., 0, "ONLY");
147   pMC->Gspos("DDIP", 1, "ALIC", 0., 0., 725.+250, 0, "ONLY");
148 }
149
150 //_____________________________________________________________________________
151 void AliDIPOv1::DrawDetector()
152 {
153   //
154   // Draw a shaded view of the muon absorber
155   //
156
157   AliMC* pMC = AliMC::GetMC();
158   
159   // Set everything unseen
160   pMC->Gsatt("*", "seen", -1);
161   // 
162   // Set ALIC mother transparent
163   pMC->Gsatt("ALIC","SEEN",0);
164   //
165   // Set the volumes visible
166   pMC->Gsatt("DDIP","seen",1);
167   pMC->Gsatt("DIPC","seen",1);
168   pMC->Gsatt("DIIC","seen",1);
169   pMC->Gsatt("DIPY","seen",1);
170   //
171   pMC->Gdopt("hide", "on");
172   pMC->Gdopt("shad", "on");
173   pMC->Gsatt("*", "fill", 7);
174   pMC->SetClipBox(".");
175   pMC->SetClipBox(".");
176   pMC->DefaultRange();
177   pMC->Gdraw("alic", 30, 30, 0, 17, 13.5, .019, .019);
178   pMC->Gdhead(1111, "Magnetic Dipole Version 1");
179   pMC->Gdman(16, 4, "MAN");
180 }
181
182 //_____________________________________________________________________________
183 void AliDIPOv1::CreateMaterials()
184 {
185   //
186   // Create Materials for Dipole Magnet version 1
187   //
188   
189   Int_t ISXFLD   = gAlice->Field()->Integ();
190   Float_t SXMGMX = gAlice->Field()->Max();
191   
192   Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
193   Float_t zsteel[4] = { 26.,24.,28.,14. };
194   Float_t wsteel[4] = { .715,.18,.1,.005 };
195   Float_t epsil, stmin, deemax, tmaxfd, stemax;
196   
197   //     STEEL 
198   
199   
200   // --- Define the various materials for GEANT --- 
201   AliMaterial(1809, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
202   AliMaterial(1815, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
203   AliMaterial(1810, "IRON$     ", 55.85, 26., 7.87, 0, 17.1);
204   AliMaterial(1816, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
205   AliMixture(1824, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
206   
207   // **************** 
208   //     Defines tracking media parameters. 
209   //     Les valeurs sont commentees pour laisser le defaut 
210   //     a GEANT (version 3-21, page CONS200), f.m. 
211   epsil  = .001; // Tracking precision, 
212   stemax = -1.;  // Maximum displacement for multiple scat 
213   tmaxfd = -20.; // Maximum angle due to field deflection 
214   deemax = -.3;  // Maximum fractional energy loss, DLS 
215   stmin  = -.8;
216   // *************** 
217   
218   //    Air 
219
220   AliMedium(1801, "AIR_DI_US         ", 1815, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
221   AliMedium(1802, "AIR_DI_US         ", 1815, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
222   AliMedium(1803, "AIR_L3_US         ", 1815, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
223   
224   //    Aluminum 
225   
226   AliMedium(1808, "ALU_DI_US         ", 1809, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
227   AliMedium(1811, "ALU_DI_SH         ", 1809, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
228   
229   //    Iron 
230   
231   AliMedium(1831, "FE_NF_US          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
232   AliMedium(1832, "FE_DI_US          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
233   AliMedium(1833, "FE_L3_US          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
234   AliMedium(1834, "FE_NF_SH          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
235   AliMedium(1835, "FE_DI_SH          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
236   AliMedium(1836, "FE_L3_SH          ", 1810, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
237   
238   //    Vacuum 
239   
240   AliMedium(1837, "VA_NF_US          ", 1816, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
241   AliMedium(1838, "VA_DI_US          ", 1816, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
242   AliMedium(1839, "VA_L3_US          ", 1816, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
243   
244   //    Steel 
245   
246   AliMedium(1875, "ST_L3_US          ", 1824, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
247 }
248
249 //_____________________________________________________________________________
250 void AliDIPOv1::StepManager()
251 {
252   //
253   // Called at each step in the Dipole Magnet
254   //
255 }