GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
SimpleMaterialImpl.h
1 // -*- C++ -*-
2 #ifndef GEAR_SimpleMaterialImpl_H
3 #define GEAR_SimpleMaterialImpl_H 1
4 
5 #include "gear/SimpleMaterial.h"
6 
7 namespace gear {
8 
15 
16  public:
17 
19  SimpleMaterialImpl(const std::string name,
20  double A,
21  double Z,
22  double density,
23  double radLen,
24  double intLen ) :
25  _name(name) ,
26  _A(A),
27  _Z(Z),
28  _d(density),
29  _rl( radLen ),
30  _il( intLen ){
31  }
32 
33 
35  virtual ~SimpleMaterialImpl() { /* nop */ }
36 
38  virtual const std::string & getName() const { return _name ; }
39 
41  virtual double getA() const { return _A ; }
42 
44  virtual double getZ() const { return _Z ; }
45 
47  virtual double getDensity() const { return _d ; }
48 
50  virtual double getRadLength() const { return _rl ; }
51 
53  virtual double getIntLength() const { return _il ; }
54 
55  protected:
56  std::string _name {};
57  double _A {};
58  double _Z {};
59  double _d {};
60  double _rl {};
61  double _il {};
62 
63  }; // class
64 
65 } // namespace gear
66 
67 #endif // ifndef GEAR_SimpleMaterialImpl_H
virtual double getDensity() const
Density in kg/m^3.
virtual const std::string & getName() const
The material name.
Abstract interface for a simple material description tjhat hold s the following properties: A...
virtual double getRadLength() const
Radiation length of material in mm.
virtual double getZ() const
The atomic number of the (averaged) material.
SimpleMaterialImpl(const std::string name, double A, double Z, double density, double radLen, double intLen)
Only c'tor specifying all data attributes.
virtual ~SimpleMaterialImpl()
Destructor.
virtual double getA() const
The mass number of the (averaged) material.
virtual double getIntLength() const
Interaction length of material in mm.
Implementation of gear::SimpleMaterial.