StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StiMaterial.h
1 /*
2  * StiMaterial represents the physical characteristics of a material within
3  * the ITTF geometry.
4  */
5 
6 #ifndef STI_MATERIAL_HH
7 #define STI_MATERIAL_HH
8 
9 #include "Stiostream.h"
10 #include <string>
11 using namespace std;
12 #include "Sti/Base/Named.h"
13 
14 class StiElossCalculator;
15 class StiMaterial : public Named
16 {
17 public:
18 
19  // con/destructor
20  StiMaterial();
21  StiMaterial(const string &name,
22  double z,
23  double a,
24  double density,
25  double X0);
26  virtual ~StiMaterial();
27  StiMaterial(const string &name,
28  double z,
29  double a,
30  double density,
31  double X0xDensity,
32  double ionization);
33 
35  double getDensity() const { return _density; }
37  double getX0() const { return _x0; }
39  double getA() const { return _a;}
41  double getZ() const { return _z;}
43  double getZOverA() const { return _zOverA;}
45  double getIonization() const { return -999;}
46 
48  StiElossCalculator *getElossCalculator() const;
49 
50  void set(const string& name,
51  double z,
52  double a,
53  double density,
54  double radLength,// X0*density (for compatibility)
55  double ionization);
56  void set(const string& name,
57  double z,
58  double a,
59  double density,
60  double X0);// X0
61 
62 protected:
63 
65  double _z;
67  double _a;
69  double _density;
71  double _ionization;
73  double _zOverA;
75  double _x0;
78 };
79 
80 //Non-members--------------------------
81 
82 ostream& operator<<(ostream& os, const StiMaterial& m);
83 
84 #endif
85 
86 
87 
88 
StiElossCalculator * _eloss
Keep Energy loss calculator.
Definition: StiMaterial.h:77
double _density
g/cm^3
Definition: StiMaterial.h:69
double _a
Effective A.
Definition: StiMaterial.h:67
double getZOverA() const
Get Z over A ratio.
Definition: StiMaterial.h:43
Definition: Named.h:16
double getA() const
Get the effective atomic mass of the material.
Definition: StiMaterial.h:39
double _x0
radiation length in cm.
Definition: StiMaterial.h:75
double getZ() const
Get the effective atomic number of the material.
Definition: StiMaterial.h:41
double _ionization
Effective ionization (in eV)
Definition: StiMaterial.h:71
double _zOverA
zOverA
Definition: StiMaterial.h:73
double getX0() const
Get the radiation length in centimeter.
Definition: StiMaterial.h:37
double getIonization() const
Dummy method.
Definition: StiMaterial.h:45
double getDensity() const
Get the material density in grams/cubic centimeter.
Definition: StiMaterial.h:35
double _z
Effective Z.
Definition: StiMaterial.h:65