ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtELossModel.h
Go to the documentation of this file.
1 #ifndef ATELOSSMODEL_H
2 #define ATELOSSMODEL_H
3 
4 namespace AtTools {
5 
15 class AtELossModel {
16 protected:
21  double fDensityIni;
26  double fDensity;
27 
28  double fdEdxScale{1};
29 
30 public:
31  AtELossModel(double density) : fDensityIni(density), fDensity(fDensityIni){};
32  virtual ~AtELossModel() = default;
33 
34  void SetDensity(double density);
38  virtual double GetdEdx(double energy) const = 0;
39 
43  virtual double GetRange(double energyIni, double energyFin = 0) const = 0;
44 
48  virtual double GetEnergyLoss(double energyIni, double distance) const = 0;
49 
55  virtual double GetEnergy(double energyIni, double distance) const = 0;
56 
57 protected:
58  void SetIniDensity(double density)
59  {
60  fDensityIni = density;
61  fDensity = density;
62  }
63 };
64 } // namespace AtTools
65 
66 #endif
AtTools::AtELossModel::GetRange
virtual double GetRange(double energyIni, double energyFin=0) const =0
AtTools::AtELossModel::fDensityIni
double fDensityIni
Definition: AtELossModel.h:21
AtTools::AtELossModel::AtELossModel
AtELossModel(double density)
Definition: AtELossModel.h:31
AtTools::AtELossModel::GetEnergy
virtual double GetEnergy(double energyIni, double distance) const =0
AtTools
Definition: AtSimpleSimulation.h:19
AtTools::AtELossModel::SetDensity
void SetDensity(double density)
Definition: AtELossModel.cxx:10
AtTools::AtELossModel::GetdEdx
virtual double GetdEdx(double energy) const =0
AtTools::AtELossModel::~AtELossModel
virtual ~AtELossModel()=default
AtTools::AtELossModel::fdEdxScale
double fdEdxScale
Definition: AtELossModel.h:28
AtTools::AtELossModel::SetIniDensity
void SetIniDensity(double density)
Definition: AtELossModel.h:58
AtTools::AtELossModel::fDensity
double fDensity
Definition: AtELossModel.h:26
AtTools::AtELossModel::GetEnergyLoss
virtual double GetEnergyLoss(double energyIni, double distance) const =0
AtTools::AtELossModel
Definition: AtELossModel.h:15