PandaRoot
MaterialProperties.h
Go to the documentation of this file.
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
24 #ifndef genfit_MaterialProperties_h
25 #define genfit_MaterialProperties_h
26 
27 #include <TObject.h>
28 
29 namespace genfit {
30 
34 class MaterialProperties : public TObject {
35 
36  public:
38  friend bool operator==(const MaterialProperties &lhs, const MaterialProperties &rhs);
39  friend bool operator!=(const MaterialProperties &lhs, const MaterialProperties &rhs);
40 
42  MaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE);
43 
44  double getDensity() const { return density_; }
45  double getZ() const { return Z_; }
46  double getA() const { return A_; }
47  double getRadLen() const { return radiationLength_; }
48  double getMEE() const { return mEE_; }
49 
50  void getMaterialProperties(double &density, double &Z, double &A, double &radiationLength, double &mEE) const;
51 
52  void setMaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE);
53 
54  void Print(const Option_t * = "") const;
55 
56  private:
57  // material variables
59  double density_;
61  double Z_;
63  double A_;
65  double radiationLength_;
67  double mEE_;
68 
69  public:
70  ClassDef(MaterialProperties, 1)
71 };
72 
73 inline MaterialProperties::MaterialProperties() : density_(0), Z_(0), A_(0), radiationLength_(0), mEE_(0)
74 {
75  ;
76 }
77 
78 inline MaterialProperties::MaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE)
79  : density_(density), Z_(Z), A_(A), radiationLength_(radiationLength), mEE_(mEE)
80 {
81  ;
82 }
83 
84 } /* End of namespace genfit */
87 #endif // genfit_MaterialProperties_h
void getMaterialProperties(double &density, double &Z, double &A, double &radiationLength, double &mEE) const
void Print(const Option_t *="") const
void setMaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE)
Material properties needed e.g. for material effects calculation.
friend bool operator!=(const MaterialProperties &lhs, const MaterialProperties &rhs)
friend bool operator==(const MaterialProperties &lhs, const MaterialProperties &rhs)
Compare material parameters.
Matrix inversion tools.
Definition: AbsBField.h:28