FairRoot/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 
30 namespace genfit {
31 
32 
36 class MaterialProperties : public TObject {
37 
38  public:
39 
41  friend bool operator== (const MaterialProperties& lhs, const MaterialProperties& rhs);
42  friend bool operator!= (const MaterialProperties& lhs, const MaterialProperties& rhs);
43 
45  MaterialProperties(const double& density,
46  const double& Z,
47  const double& A,
48  const double& radiationLength,
49  const double& mEE);
50 
51  double getDensity() const {return density_;}
52  double getZ() const {return Z_;}
53  double getA() const {return A_;}
54  double getRadLen() const {return radiationLength_;}
55  double getMEE() const {return mEE_;}
56 
57  void getMaterialProperties(double& density,
58  double& Z,
59  double& A,
60  double& radiationLength,
61  double& mEE) const;
62 
63  void setMaterialProperties(const double& density,
64  const double& Z,
65  const double& A,
66  const double& radiationLength,
67  const double& mEE);
68 
69  void Print(const Option_t* = "") const;
70 
71  private:
72 
73  // material variables
75  double density_;
77  double Z_;
79  double A_;
83  double mEE_;
84 
85 
86  public:
87  ClassDef(MaterialProperties, 1)
88 
89 };
90 
91 
93  density_(0),
94  Z_(0),
95  A_(0),
96  radiationLength_(0),
97  mEE_(0)
98 {
99  ;
100 }
101 
102 inline MaterialProperties::MaterialProperties(const double& density,
103  const double& Z,
104  const double& A,
105  const double& radiationLength,
106  const double& mEE) :
107  density_(density),
108  Z_(Z),
109  A_(A),
110  radiationLength_(radiationLength),
111  mEE_(mEE)
112 {
113  ;
114 }
115 
116 } /* End of namespace genfit */
119 #endif // genfit_MaterialProperties_h
void getMaterialProperties(double &density, double &Z, double &A, double &radiationLength, double &mEE) const
double radiationLength_
radiation length X0
double Z_
Atomic number Z of material.
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.
double A_
Mass number A of material.
friend bool operator!=(const MaterialProperties &lhs, const MaterialProperties &rhs)
friend bool operator==(const MaterialProperties &lhs, const MaterialProperties &rhs)
Compare material parameters.
double mEE_
mean excitation energy [eV]
void Print(const Option_t *="") const
double Z
Definition: anaLmdDigi.C:68
double density_
density of material