MuELMaterial.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::mueloss::MuELMaterial
5 
6 \brief Enumeration of materials for which the MuELoss package knows how to
7  calculate muon energy losses.
8 
9 \ref W.Lohmann, R.Kopp and R.Voss,
10  Energy Loss of Muons in the Energy Range 1-10000 GeV, CERN 85-03
11 
12 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
13  University of Liverpool & STFC Rutherford Appleton Laboratory
14 
15 \created December 10, 2003
16 
17 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
18  For the full text of the license visit http://copyright.genie-mc.org
19 
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _MUELOSS_MATERIAL_H_
24 #define _MUELOSS_MATERIAL_H_
25 
26 namespace genie {
27 namespace mueloss {
28 
29 typedef enum EMuELMaterial {
30 
32 
33  // ---- elements
34 
35  eMuHydrogen = 101,
36  eMuDeuterium = 102,
37  eMuHelium = 103,
38  eMuLithium = 104,
39  eMuBeryllium = 105,
40  eMuBoron = 106,
41  eMuCarbon = 107,
42  eMuNitrogen = 108,
43  eMuOxygen = 109,
44  eMuFluorine = 110,
45  eMuNeon = 111,
46  eMuSodium = 112,
47  eMuMagnesium = 113,
48  eMuAluminium = 114,
49  eMuSilicon = 115,
50  eMuSulphur = 116,
51  eMuChlorine = 117,
52  eMuArgon = 118,
53  eMuPotassium = 119,
54  eMuCalcium = 120,
55  eMuChromium = 121,
56  eMuManganese = 122,
57  eMuIron = 123,
58  eMuNickel = 124,
59  eMuCopper = 125,
60  eMuZinc = 126,
61  eMuGermanium = 127,
62  eMuBromine = 128,
63  eMuTin = 129,
64  eMuIodine = 130,
65  eMuBarium = 131,
66  eMuTungsten = 132,
67  eMuLead = 133,
68  eMuBismuth = 134,
69  eMuUranium = 135,
70 
71  // ---- compound materials
72 
75  eMuPyrex = 203, /* <-- SiO2(80%),B2O3(12%),Na2O(5%) */
77  eMuConcrete = 205, /* <-- O2(52.9%),Si(33.7%),Ca(4.4%),Al(3.4%),Na(1.6%),Fe(1.4%),K(1.3%),H2(1%) */
78  eMuFreon12 = 206,
79  eMuFreon13B1 = 207,
80  eMuLeadGlassSF5 = 208, /* <-- PbO(55%),SiO2 (38%),K2O(5%),Na2O(1%) */
81  eMuLeadOxide = 209,
83  eMuLucite = 211,
91  eMuWater = 219
92 
94 
96 {
97 public:
98  //____________________________________________________________________
99  static const char * AsString(MuELMaterial_t material)
100  {
101  switch(material) {
102 
103  //- compound materials
104  case eMuBariumFluoride: return "Barium Fluoride"; break;
105  case eMuBismuthGermanate: return "Bismuth Germanate"; break;
106  case eMuPyrex: return "Pyrex"; break;
107  case eMuCalciumCarbonate: return "Calcium Carbonate"; break;
108  case eMuConcrete: return "Concrete"; break;
109  case eMuFreon12: return "Freon 12"; break;
110  case eMuFreon13B1: return "Freon 13B1"; break;
111  case eMuLeadOxide: return "Lead Oxide"; break;
112  case eMuLithiumFluoride: return "Lithium Fluoride"; break;
113  case eMuLucite: return "Lucite"; break;
114  case eMuPolyethylene: return "Polyethylene"; break;
115  case eMuPolystyrene: return "Polystyrene"; break;
116  case eMuLiquidPropane: return "Liquid Propane"; break;
117  case eMuSiliconDioxide: return "Silicon Dioxide"; break;
118  case eMuSodiumIodide: return "Sodium Iodide"; break;
119  case eMuStandardRock: return "Standard Rock"; break;
120  case eMuUraniumOxide: return "Uranium Oxide"; break;
121  case eMuWater: return "Water"; break;
122 
123  //- elements
124  case eMuHydrogen: return "Hydrogen"; break;
125  case eMuDeuterium: return "Deuterium"; break;
126  case eMuHelium: return "Helium"; break;
127  case eMuLithium: return "Lithium"; break;
128  case eMuBeryllium: return "Beryllium"; break;
129  case eMuBoron: return "Boron"; break;
130  case eMuCarbon: return "Carbon"; break;
131  case eMuNitrogen: return "Nitrogen"; break;
132  case eMuOxygen: return "Oxygen"; break;
133  case eMuFluorine: return "Fluorine"; break;
134  case eMuNeon: return "Neon"; break;
135  case eMuSodium: return "Sodium"; break;
136  case eMuMagnesium: return "Magnesium"; break;
137  case eMuAluminium: return "Aluminium"; break;
138  case eMuSilicon: return "Silicon"; break;
139  case eMuSulphur: return "Sulphur"; break;
140  case eMuChlorine: return "Chlorine"; break;
141  case eMuArgon: return "Argon"; break;
142  case eMuPotassium: return "Potassium"; break;
143  case eMuCalcium: return "Calcium"; break;
144  case eMuChromium: return "Chromium"; break;
145  case eMuManganese: return "Manganese"; break;
146  case eMuIron: return "Iron"; break;
147  case eMuNickel: return "Nickel"; break;
148  case eMuCopper: return "Copper"; break;
149  case eMuZinc: return "Zinc"; break;
150  case eMuGermanium: return "Germanium"; break;
151  case eMuBromine: return "Bromine"; break;
152  case eMuTin: return "Tin"; break;
153  case eMuIodine: return "Iodine"; break;
154  case eMuBarium: return "Barium"; break;
155  case eMuTungsten: return "Tungsten"; break;
156  case eMuLead: return "Lead"; break;
157  case eMuBismuth: return "Bismuth"; break;
158  case eMuUranium: return "Uranium"; break;
159 
160  case eMuUndefined:
161  default:
162  return "*** unknown material ***";
163  }
164  return "*** unknown material ***";
165  }
166  //____________________________________________________________________
167  // material density in gr/cm^3
169  {
170  switch(material) {
171 
172  //- compound materials
173  case eMuBariumFluoride: return 4.830; break;
174  case eMuBismuthGermanate: return 7.100; break;
175  case eMuPyrex: return 2.230; break;
176  case eMuCalciumCarbonate: return 2.800; break;
177  case eMuConcrete: return 2.500; break;
178  case eMuFreon12: return 1.120; break;
179  case eMuFreon13B1: return 1.500; break;
180  case eMuLeadOxide: return 9.530; break;
181  case eMuLithiumFluoride: return 2.635; break;
182  case eMuLucite: return 1.190; break;
183  case eMuPolyethylene: return 0.940; break;
184  case eMuPolystyrene: return 1.060; break;
185  case eMuLiquidPropane: return 0.430; break;
186  case eMuSiliconDioxide: return 2.320; break;
187  case eMuSodiumIodide: return 3.367; break;
188  case eMuStandardRock: return 2.650; break;
189  case eMuUraniumOxide: return 10.960; break;
190  case eMuWater: return 1.000; break;
191 
192  //- elements
193  case eMuHydrogen: return 0.063; break;
194  case eMuDeuterium: return 0.140; break;
195  case eMuHelium: return 0.125; break;
196  case eMuLithium: return 0.534; break;
197  case eMuBeryllium: return 1.848; break;
198  case eMuBoron: return 2.370; break;
199  case eMuCarbon: return 2.265; break;
200  case eMuNitrogen: return 0.808; break;
201  case eMuOxygen: return 1.140; break;
202  case eMuFluorine: return 1.108; break;
203  case eMuNeon: return 1.207; break;
204  case eMuSodium: return 0.971; break;
205  case eMuMagnesium: return 1.740; break;
206  case eMuAluminium: return 2.699; break;
207  case eMuSilicon: return 2.330; break;
208  case eMuSulphur: return 2.000; break;
209  case eMuChlorine: return 1.560; break;
210  case eMuArgon: return 1.393; break;
211  case eMuPotassium: return 0.862; break;
212  case eMuCalcium: return 1.550; break;
213  case eMuChromium: return 7.180; break;
214  case eMuManganese: return 7.440; break;
215  case eMuIron: return 7.874; break;
216  case eMuNickel: return 8.902; break;
217  case eMuCopper: return 8.960; break;
218  case eMuZinc: return 7.133; break;
219  case eMuGermanium: return 5.323; break;
220  case eMuBromine: return 3.120; break;
221  case eMuTin: return 7.310; break;
222  case eMuIodine: return 4.930; break;
223  case eMuBarium: return 3.500; break;
224  case eMuTungsten: return 19.300; break;
225  case eMuLead: return 11.350; break;
226  case eMuBismuth: return 9.747; break;
227  case eMuUranium: return 18.950; break;
228 
229  case eMuUndefined:
230  default:
231  return 0;
232  }
233  return 0;
234  }
235  //____________________________________________________________________
236  static double Z(MuELMaterial_t material)
237  {
238  switch(material) {
239 
240  //- compound materials
241  case eMuBariumFluoride: return 0.4221; break; // For compound materials this is
242  case eMuBismuthGermanate: return 0.4207; break; // actually Z/A, and A will be set to 1
243  case eMuPyrex: return 0.4971; break; // OK for now because it is Z/A we
244  case eMuCalciumCarbonate: return 0.4996; break; // use... but *change that*
245  case eMuConcrete: return 0.5027; break;
246  case eMuFreon12: return 0.4797; break;
247  case eMuFreon13B1: return 0.4567; break;
248  case eMuLeadOxide: return 0.4032; break;
249  case eMuLithiumFluoride: return 0.4626; break;
250  case eMuLucite: return 0.5394; break;
251  case eMuPolyethylene: return 0.5703; break;
252  case eMuPolystyrene: return 0.5377; break;
253  case eMuLiquidPropane: return 0.5896; break;
254  case eMuSiliconDioxide: return 0.4993; break;
255  case eMuSodiumIodide: return 0.4270; break;
256  case eMuStandardRock: return 0.5000; break;
257  case eMuUraniumOxide: return 0.4000; break;
258  case eMuWater: return 0.5551; break;
259 
260  //- elements
261  case eMuHydrogen: return 1.; break;
262  case eMuDeuterium: return 1.; break;
263  case eMuHelium: return 2.; break;
264  case eMuLithium: return 3.; break;
265  case eMuBeryllium: return 4.; break;
266  case eMuBoron: return 5.; break;
267  case eMuCarbon: return 6.; break;
268  case eMuNitrogen: return 7.; break;
269  case eMuOxygen: return 8.; break;
270  case eMuFluorine: return 9.; break;
271  case eMuNeon: return 10.; break;
272  case eMuSodium: return 11.; break;
273  case eMuMagnesium: return 12.; break;
274  case eMuAluminium: return 13.; break;
275  case eMuSilicon: return 14.; break;
276  case eMuSulphur: return 16.; break;
277  case eMuChlorine: return 17.; break;
278  case eMuArgon: return 18.; break;
279  case eMuPotassium: return 19.; break;
280  case eMuCalcium: return 20.; break;
281  case eMuChromium: return 24.; break;
282  case eMuManganese: return 25.; break;
283  case eMuIron: return 26.; break;
284  case eMuNickel: return 28.; break;
285  case eMuCopper: return 29.; break;
286  case eMuZinc: return 30.; break;
287  case eMuGermanium: return 32.; break;
288  case eMuBromine: return 35.; break;
289  case eMuTin: return 50.; break;
290  case eMuIodine: return 53.; break;
291  case eMuBarium: return 56.; break;
292  case eMuTungsten: return 74.; break;
293  case eMuLead: return 82.; break;
294  case eMuBismuth: return 83.; break;
295  case eMuUranium: return 92.; break;
296 
297  case eMuUndefined:
298  default:
299  return 0;
300  }
301  return 0;
302  }
303  //____________________________________________________________________
304  static double A(MuELMaterial_t material)
305  {
306  switch(material) {
307 
308  //- compound materials
309  case eMuBariumFluoride: return 1.0; break; // A for compound materials is set to 1
310  case eMuBismuthGermanate: return 1.0; break; // because Z was set to Z/A.
311  case eMuPyrex: return 1.0; break; // OK for now because it is Z/A we
312  case eMuCalciumCarbonate: return 1.0; break; // use... but *change that*
313  case eMuConcrete: return 1.0; break;
314  case eMuFreon12: return 1.0; break;
315  case eMuFreon13B1: return 1.0; break;
316  case eMuLeadOxide: return 1.0; break;
317  case eMuLithiumFluoride: return 1.0; break;
318  case eMuLucite: return 1.0; break;
319  case eMuPolyethylene: return 1.0; break;
320  case eMuPolystyrene: return 1.0; break;
321  case eMuLiquidPropane: return 1.0; break;
322  case eMuSiliconDioxide: return 1.0; break;
323  case eMuSodiumIodide: return 1.0; break;
324  case eMuStandardRock: return 1.0; break;
325  case eMuUraniumOxide: return 1.0; break;
326  case eMuWater: return 1.0; break;
327 
328  //- elements
329  case eMuHydrogen: return 1.008; break;
330  case eMuDeuterium: return 2.014; break;
331  case eMuHelium: return 4.003; break;
332  case eMuLithium: return 6.940; break;
333  case eMuBeryllium: return 9.012; break;
334  case eMuBoron: return 10.810; break;
335  case eMuCarbon: return 12.011; break;
336  case eMuNitrogen: return 14.007; break;
337  case eMuOxygen: return 15.999; break;
338  case eMuFluorine: return 18.998; break;
339  case eMuNeon: return 20.170; break;
340  case eMuSodium: return 22.990; break;
341  case eMuMagnesium: return 24.305; break;
342  case eMuAluminium: return 26.982; break;
343  case eMuSilicon: return 28.086; break;
344  case eMuSulphur: return 32.060; break;
345  case eMuChlorine: return 35.453; break;
346  case eMuArgon: return 39.948; break;
347  case eMuPotassium: return 39.098; break;
348  case eMuCalcium: return 40.080; break;
349  case eMuChromium: return 51.996; break;
350  case eMuManganese: return 54.938; break;
351  case eMuIron: return 55.847; break;
352  case eMuNickel: return 58.710; break;
353  case eMuCopper: return 63.546; break;
354  case eMuZinc: return 65.380; break;
355  case eMuGermanium: return 72.590; break;
356  case eMuBromine: return 79.904; break;
357  case eMuTin: return 118.690; break;
358  case eMuIodine: return 126.905; break;
359  case eMuBarium: return 137.330; break;
360  case eMuTungsten: return 183.850; break;
361  case eMuLead: return 207.200; break;
362  case eMuBismuth: return 208.980; break;
363  case eMuUranium: return 238.029; break;
364 
365  case eMuUndefined:
366  default:
367  return 0;
368  }
369  return 0;
370  }
371  //____________________________________________________________________
372 };
373 
374 } // mueloss namespace
375 } // genie namespace
376 
377 #endif // _MUELOSS_MATERIAL_H_
378 
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
static double Z(MuELMaterial_t material)
Definition: MuELMaterial.h:236
static double Density(MuELMaterial_t material)
Definition: MuELMaterial.h:168
Enumeration of materials for which the MuELoss package knows how to calculate muon energy losses...
Definition: MuELMaterial.h:95
static const char * AsString(MuELMaterial_t material)
Definition: MuELMaterial.h:99
static double A(MuELMaterial_t material)
Definition: MuELMaterial.h:304
enum genie::mueloss::EMuELMaterial MuELMaterial_t