PandaRoot
MaterialProperties.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 /* Copyright 2008-2010, Technische Universitaet Muenchen,
14  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
15 
16  This file is part of GENFIT.
17 
18  GENFIT is free software: you can redistribute it and/or modify
19  it under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  GENFIT is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU Lesser General Public License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public License
29  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
30 */
31 
36 #ifndef genfit_MaterialProperties_h
37 #define genfit_MaterialProperties_h
38 
39 #include <TObject.h>
40 
41 namespace genfit {
42 
46 class MaterialProperties : public TObject {
47 
48  public:
50  friend bool operator==(const MaterialProperties &lhs, const MaterialProperties &rhs);
51  friend bool operator!=(const MaterialProperties &lhs, const MaterialProperties &rhs);
52 
54  MaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE);
55 
56  double getDensity() const { return density_; }
57  double getZ() const { return Z_; }
58  double getA() const { return A_; }
59  double getRadLen() const { return radiationLength_; }
60  double getMEE() const { return mEE_; }
61 
62  void getMaterialProperties(double &density, double &Z, double &A, double &radiationLength, double &mEE) const;
63 
64  void setMaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE);
65 
66  void Print(const Option_t * = "") const;
67 
68  private:
69  // material variables
71  double density_;
73  double Z_;
75  double A_;
77  double radiationLength_;
79  double mEE_;
80 
81  public:
82  ClassDef(MaterialProperties, 1)
83 };
84 
85 inline MaterialProperties::MaterialProperties() : density_(0), Z_(0), A_(0), radiationLength_(0), mEE_(0)
86 {
87  ;
88 }
89 
90 inline MaterialProperties::MaterialProperties(const double &density, const double &Z, const double &A, const double &radiationLength, const double &mEE)
91  : density_(density), Z_(Z), A_(A), radiationLength_(radiationLength), mEE_(mEE)
92 {
93  ;
94 }
95 
96 } /* End of namespace genfit */
99 #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:40