ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AtTools::AtELossModel Class Referenceabstract

#include <AtELossModel.h>

Inheritance diagram for AtTools::AtELossModel:
Inheritance graph
[legend]

Public Member Functions

 AtELossModel (double density)
 
virtual ~AtELossModel ()=default
 
void SetDensity (double density)
 
virtual double GetdEdx (double energy) const =0
 
virtual double GetRange (double energyIni, double energyFin=0) const =0
 
virtual double GetEnergyLoss (double energyIni, double distance) const =0
 
virtual double GetEnergy (double energyIni, double distance) const =0
 

Protected Member Functions

void SetIniDensity (double density)
 

Protected Attributes

double fDensityIni
 
double fDensity
 
double fdEdxScale {1}
 

Detailed Description

Class representing the energy loss of a particle through some material. Derived classes can represent models from different sources (SRIM, etc). Internal units are Mev/mm

Based on a combination of Nabin Rijal's AtELossManager and the EnergyLoss class (https://github.com/joshhooker/EnergyLossClass) which is released unter the MIT Licsense (copyright Joshua Hooker).

Definition at line 15 of file AtELossModel.h.

Constructor & Destructor Documentation

◆ AtELossModel()

AtTools::AtELossModel::AtELossModel ( double  density)
inline

Definition at line 31 of file AtELossModel.h.

◆ ~AtELossModel()

virtual AtTools::AtELossModel::~AtELossModel ( )
virtualdefault

Member Function Documentation

◆ GetdEdx()

virtual double AtTools::AtELossModel::GetdEdx ( double  energy) const
pure virtual

Get the stopping power in MeV/mm

Implemented in AtTools::AtELossTable.

◆ GetEnergy()

virtual double AtTools::AtELossModel::GetEnergy ( double  energyIni,
double  distance 
) const
pure virtual

Get the energy of particle after traveling some distance (in mm). If the distance is negative, then returns the energy the particle had to reach energyIni after distance.

Implemented in AtTools::AtELossTable.

◆ GetEnergyLoss()

virtual double AtTools::AtELossModel::GetEnergyLoss ( double  energyIni,
double  distance 
) const
pure virtual

Get the energy loss over some distance (in mm).

Implemented in AtTools::AtELossTable.

◆ GetRange()

virtual double AtTools::AtELossModel::GetRange ( double  energyIni,
double  energyFin = 0 
) const
pure virtual

Get the range of the particle in the material.

Implemented in AtTools::AtELossTable.

◆ SetDensity()

void AtTools::AtELossModel::SetDensity ( double  density)

Set the density of the material we are calculating energy losses for in mg/cm^3. Likely not fully tested, but I want to keep it around to remind myself of it.

Definition at line 10 of file AtELossModel.cxx.

◆ SetIniDensity()

void AtTools::AtELossModel::SetIniDensity ( double  density)
inlineprotected

Definition at line 58 of file AtELossModel.h.

Member Data Documentation

◆ fdEdxScale

double AtTools::AtELossModel::fdEdxScale {1}
protected

Definition at line 28 of file AtELossModel.h.

◆ fDensity

double AtTools::AtELossModel::fDensity
protected

Density of the target in mg/cm^3 we are calcualting energy losses for. Energy loss is scaled using this value and fDensityIni.

Definition at line 26 of file AtELossModel.h.

◆ fDensityIni

double AtTools::AtELossModel::fDensityIni
protected

Density of the target in mg/cm^3 if known (used to scale E-loss over different ranges). This is the density used in the internal model (set on construction).

Definition at line 21 of file AtELossModel.h.


The documentation for this class was generated from the following files: