//____________________________________________________________________________ /*! \class PropaNucl \brief A class to compute muon energy loss: photo-nuclear \author Carla Distefano LNS-INFN, Catania \created December 9, 2015 \cpright Copyright (c) 2015-2019, The KM3NeT Collaboration For the full text of the license see $GSEAGEN/LICENSE */ //____________________________________________________________________________ #ifndef _GPropaNucl_H__ #define _GPropaNucl_H__ #include #include using namespace std; class PropaNucl { public: PropaNucl(); ~PropaNucl(); double BCoeff (double Energy, double Z, double A); double BCoeff (double Energy, double Z, double A, double Vmin, double Vmax); double dE_dx (double Energy, double Z, double A); double dE_dx (double Energy, double Z, double A, double Vmin, double Vmax); double BCoeff (double Energy, map MediaComposition); double BCoeff (double Energy, map MediaComposition, double Vmin, double Vmax); double dE_dx (double Energy, map MediaComposition); double dE_dx (double Energy, map MediaComposition, double Vmin, double Vmax); double SigmaTot(double Energy, double Z, double A); double SigmaTot(double Energy, double Z, double A, double Vmin, double Vmax); double SigmaTot(double Energy, map MediaComposition); double SigmaTot(double Energy, map MediaComposition, double Vmin, double Vmax); double Lambda(double Energy, map MediaComposition); double Lambda(double Energy, map MediaComposition, double Vmin, double Vmax); double Lambda(double Energy, double Z, double A); double Lambda(double Energy, double Z, double A, double Vmin, double Vmax); }; //____________________________________________________________________________ class PropaNuclBCoeff : public ROOT::Math::IBaseFunctionOneDim { public: PropaNuclBCoeff(double Energy, double Z); ~PropaNuclBCoeff(); // ROOT::Math::IBaseFunctionOneDim interface unsigned int NDim (void) const; double DoEval (double xin) const; ROOT::Math::IBaseFunctionOneDim * Clone (void) const; private: double fEnergy; double fA; }; //____________________________________________________________________________ class PropaNuclXSec : public ROOT::Math::IBaseFunctionOneDim { public: PropaNuclXSec(double Energy, double Z); ~PropaNuclXSec(); // ROOT::Math::IBaseFunctionOneDim interface unsigned int NDim (void) const; double DoEval (double xin) const; ROOT::Math::IBaseFunctionOneDim * Clone (void) const; private: double fEnergy; double fA; }; #endif // _GPropaNucl_H__