4 #ifndef __KVIONRANGETABLEMATERIAL_H 
    5 #define __KVIONRANGETABLEMATERIAL_H 
   10 #include "KVIonRangeTable.h" 
   15 #define RTT  62.36367e+03   
   16 #define ZERO_KELVIN  273.15 
#define ClassDef(name, id)
 
Base class for KaliVeda framework.
 
Material for use in energy loss & range calculations.
 
virtual Double_t GetLinearEIncOfMaxDeltaEOfIon(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
virtual Double_t GetLinearPunchThroughEnergy(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
virtual Double_t GetDeltaEOfIon(Int_t Z, Int_t A, Double_t E, Double_t e, Double_t isoAmat=0.)
 
Double_t GetDeltaEFromEResOfIon(Int_t Z, Int_t A, Double_t ERes, Double_t e, Double_t isoAmat=0.)
 
void AddCompoundElement(Int_t Z, Int_t A, Int_t Natoms)
 
virtual Double_t GetLinearMaxDeltaEOfIon(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
virtual Double_t GetLinearEIncFromDeltaEOfIon(Int_t Z, Int_t A, Double_t DeltaE, Double_t e, enum KVIonRangeTable::SolType type=KVIonRangeTable::kEmax, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
TF1 * fDeltaE
function parameterising energy loss in material
 
virtual Double_t GetEResOfIon(Int_t Z, Int_t A, Double_t E, Double_t e, Double_t isoAmat=0.)
 
virtual Double_t GetLinearRangeOfIon(Int_t Z, Int_t A, Double_t E, Double_t isoAmat=0, Double_t T=-1., Double_t P=-1.)
 
Double_t fZmat
effective atomic number of material
 
TGeoMaterial * GetTGeoMaterial() const
 
const KVIonRangeTable * GetTable() const
 
virtual TF1 * GetEResFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat=0)=0
 
const Char_t * GetSymbol() const
 
void Copy(TObject &) const
 
virtual TF1 * GetStoppingFunction(Int_t Z, Int_t A, Double_t isoAmat=0)=0
 
virtual Float_t GetEmaxValid(Int_t, Int_t) const
 
virtual TF1 * GetDeltaEFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat=0)=0
 
void AddMixtureElement(Int_t Z, Int_t A, Int_t Natoms, Double_t Proportion)
 
void SetState(const Char_t *st)
 
Double_t fDens
density of material in g/cm**3
 
Double_t GetMoleWt() const
 
KVIonRangeTableMaterial()
Default constructor.
 
TString fState
state of material = "solid", "liquid", "gas", "unknown"
 
virtual Double_t GetEIncFromDeltaEOfIon(Int_t Z, Int_t A, Double_t DeltaE, Double_t e, enum KVIonRangeTable::SolType type=KVIonRangeTable::kEmax, Double_t isoAmat=0.)
 
virtual Double_t GetLinearDeltaEOfIon(Int_t Z, Int_t A, Double_t E, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
virtual TF1 * GetRangeFunction(Int_t Z, Int_t A, Double_t isoAmat=0)=0
 
virtual ~KVIonRangeTableMaterial()
Destructor.
 
Bool_t IsCompound() const
 
virtual void Initialize()
 
void ls(Option_t *="") const
 
void PrintComposition(std::ostream &) const
Print to stream the composition of this material, in a format compatible with the VEDALOSS parameter ...
 
Double_t fAmat
effective mass number of material
 
KVList * GetComposition() const
 
Double_t GetDensity() const
 
TF1 * fEres
function parameterising residual energy after crossing material
 
virtual Float_t GetEminValid(Int_t, Int_t) const
 
virtual Double_t GetEIncFromEResOfIon(Int_t Z, Int_t A, Double_t Eres, Double_t e, Double_t isoAmat=0.)
 
TF1 * fRange
function parameterising range of charged particles in material
 
TF1 * fStopping
function parameterising stopping power of charged particles in material
 
virtual Double_t GetLinearEResOfIon(Int_t Z, Int_t A, Double_t E, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
Double_t fRangeOfLastDE
range corresponding to last calculated DE
 
void Print(Option_t *="") const
 
const KVIonRangeTable * fTable
parent range table
 
Double_t GetRangeOfLastDE() const
 
virtual Double_t GetPunchThroughEnergy(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0.)
 
KVList * fComposition
composition of compound/mixture
 
virtual Double_t GetLinearEIncFromEResOfIon(Int_t Z, Int_t A, Double_t Eres, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
void SetTemperatureAndPressure(Double_t T, Double_t P)
 
void PrintRangeTable(Int_t Z, Int_t A, Double_t isoAmat=0, Double_t units=KVUnits::cm, Double_t T=-1, Double_t P=-1)
 
void SetDensity(Double_t d)
 
virtual Double_t GetEIncOfMaxDeltaEOfIon(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0.)
 
Double_t GetLinearDeltaEFromEResOfIon(Int_t Z, Int_t A, Double_t ERes, Double_t e, Double_t isoAmat=0., Double_t T=-1., Double_t P=-1.)
 
virtual Double_t GetMaxDeltaEOfIon(Int_t Z, Int_t A, Double_t e, Double_t isoAmat=0.)
 
Double_t fMoleWt
mass of one mole of substance in grammes
 
virtual Double_t GetRangeOfIon(Int_t Z, Int_t A, Double_t E, Double_t isoAmat=0.)
 
Abstract base class for calculation of range & energy loss of charged particles in matter.
 
Extended TList class which owns its objects by default.
 
const char * GetTitle() const override