/* Copyright 2008-2010, Technische Universitaet Muenchen,
Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
This file is part of GENFIT.
GENFIT is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GENFIT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with GENFIT. If not, see .
*/
/** @addtogroup genfit
* @{
*/
#ifndef genfit_MaterialProperties_h
#define genfit_MaterialProperties_h
#include
namespace genfit {
/**
* @brief Material properties needed e.g. for material effects calculation.
*/
class MaterialProperties : public TObject {
public:
//! Compare material parameters
friend bool operator== (const MaterialProperties& lhs, const MaterialProperties& rhs);
friend bool operator!= (const MaterialProperties& lhs, const MaterialProperties& rhs);
MaterialProperties();
MaterialProperties(const double& density,
const double& Z,
const double& A,
const double& radiationLength,
const double& mEE);
double getDensity() const {return density_;}
double getZ() const {return Z_;}
double getA() const {return A_;}
double getRadLen() const {return radiationLength_;}
double getMEE() const {return mEE_;}
void getMaterialProperties(double& density,
double& Z,
double& A,
double& radiationLength,
double& mEE) const;
void setMaterialProperties(const double& density,
const double& Z,
const double& A,
const double& radiationLength,
const double& mEE);
void Print(const Option_t* = "") const;
private:
// material variables
//! density of material
double density_;
//! Atomic number Z of material
double Z_;
//! Mass number A of material
double A_;
//! radiation length X0
double radiationLength_;
//! mean excitation energy [eV]
double mEE_;
public:
ClassDef(MaterialProperties, 1)
};
inline MaterialProperties::MaterialProperties() :
density_(0),
Z_(0),
A_(0),
radiationLength_(0),
mEE_(0)
{
;
}
inline MaterialProperties::MaterialProperties(const double& density,
const double& Z,
const double& A,
const double& radiationLength,
const double& mEE) :
density_(density),
Z_(Z),
A_(A),
radiationLength_(radiationLength),
mEE_(mEE)
{
;
}
} /* End of namespace genfit */
/** @} */
#endif // genfit_MaterialProperties_h