Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DMaterial.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DMaterial.h
4 // Created: Fri Apr 25 15:44:12 EDT 2008
5 // Creator: davidl (on Darwin swire-d95.jlab.org 8.11.1 i386)
6 //
7 
8 #ifndef _DMaterial_
9 #define _DMaterial_
10 
11 #include <string>
12 #include <string.h>
13 using std::string;
14 
15 #include <particleType.h>
16 
17 
18 /// The DMaterial class holds information on a single material type. The
19 /// main purpose is to hold information needed to estimate energy loss and
20 /// multiple scattering for particles being swum through the detector.
21 /// The GetdEdx() method can be used to calculate dE/dx through this
22 /// material for a given particle type and mometum using the Bethe
23 /// formula.
24 
25 class DMaterial{
26  public:
27  DMaterial(string &name, double A, double Z, double density, double radlen);
28  virtual ~DMaterial(){}
29 
30  double GetRadiationLength(void) const {return kXo;}
31  double GetDensity(void) const {return kdensity;}
32  double GetAtomicWeight(void) const {return kA;}
33  double GetAtomicNumber(void) const {return kZ;}
34  double GetdEdx(Particle_t ptype, double kp);
35  const string& GetName(void) const {return kname;}
36 
37  double Xo(void) const {return kXo;}
38  double rho(void) const {return kdensity;}
39  double A(void) const {return kA;}
40  double Z(void) const {return kZ;}
41 
42  string toString(void);
43 
44  private:
45  DMaterial(); ///< Prevent use of trivial constructor
46 
47  double kXo; ///< radiation length of this material
48  double kdensity; ///< denisty of material in g/cm^3
49  double kA; ///< Effective atomic weight
50  double kZ; ///< Effective atomic number
51  string kname;
52 
54  double last_p;
55  double last_dEdx;
56 
57  void GetMaterials(void);
58 };
59 
60 #endif // _DMaterial_
61 
double kXo
radiation length of this material
Definition: DMaterial.h:47
string toString(void)
Definition: DMaterial.cc:32
double Xo(void) const
Definition: DMaterial.h:37
char string[256]
double kA
Effective atomic weight.
Definition: DMaterial.h:49
string kname
Definition: DMaterial.h:51
double GetAtomicWeight(void) const
Definition: DMaterial.h:32
double GetdEdx(Particle_t ptype, double kp)
Definition: DMaterial.cc:50
void GetMaterials(void)
double last_p
Definition: DMaterial.h:54
const string & GetName(void) const
Definition: DMaterial.h:35
double kZ
Effective atomic number.
Definition: DMaterial.h:50
double GetDensity(void) const
Definition: DMaterial.h:31
double rho(void) const
Definition: DMaterial.h:38
double last_dEdx
Definition: DMaterial.h:55
double kdensity
denisty of material in g/cm^3
Definition: DMaterial.h:48
double A(void) const
Definition: DMaterial.h:39
virtual ~DMaterial()
Definition: DMaterial.h:28
The DMaterial class holds information on a single material type. The main purpose is to hold informat...
Definition: DMaterial.h:25
Particle_t last_ptype
Definition: DMaterial.h:53
double GetAtomicNumber(void) const
Definition: DMaterial.h:33
double GetRadiationLength(void) const
Definition: DMaterial.h:30
DMaterial()
Prevent use of trivial constructor.
Particle_t
Definition: particleType.h:12
double Z(void) const
Definition: DMaterial.h:40