11#ifndef CBMSTSPHYSICS_H
12#define CBMSTSPHYSICS_H 1
15#include <RtypesCore.h>
51 static Double_t
DiffusionWidth(Double_t z, Double_t d, Double_t vBias, Double_t vFd, Double_t temperature,
62 static Double_t
ElectricField(Double_t vBias, Double_t vFd, Double_t dZ, Double_t z);
75 Double_t
EnergyLoss(Double_t dz, Double_t mass, Double_t eKin, Double_t dedx)
const;
149 Double_t
StoppingPower(Double_t energy, Double_t mass, Double_t charge, Bool_t isElectron);
Auxiliary class for physics processes in Silicon.
static Double_t PairCreationEnergy()
Energy for electron-hole pair creation in silicon.
void ReadDataTablesLandauWidth()
Read Landau width data table from file.
CbmStsPhysics operator=(const CbmStsPhysics &)=delete
Assignment operator (disabled)
static Double_t ElectricField(Double_t vBias, Double_t vFd, Double_t dZ, Double_t z)
Electric field magnitude in a silicon sensor as function of z.
static Double_t ParticleCharge(Int_t pid)
Particle charge from PDG particle ID.
CbmStsPhysics(const CbmStsPhysics &)=delete
Copy constructor (disabled)
std::pair< std::vector< double >, double > GetLandauWidthTable() const
Raw values of landau width interpolation table.
Double_t fUrbanR
Urban model: weight parameter excitation/ionisation.
static Double_t ParticleMass(Int_t pid)
Particle mass from PDG particle ID.
Double_t InterpolateDataTable(Double_t eKin, std::map< Double_t, Double_t > &table)
Interpolate a value from the data tables.
static CbmStsPhysics * Instance()
Accessor to singleton instance.
static Double_t DiffusionWidth(Double_t z, Double_t d, Double_t vBias, Double_t vFd, Double_t temperature, Int_t chargeType)
Double_t StoppingPower(Double_t eKin, Int_t pid)
Stopping power (average specific energy loss) in Silicon.
Double_t LandauWidth(Double_t mostProbableCharge)
Half width at half max of Landau distribution in ultra-relativistic case.
static CbmStsPhysics * fgInstance
Singleton instance.
Double_t fUrbanE1
Urban model: first atomic energy level.
Double_t EnergyLoss(Double_t dz, Double_t mass, Double_t eKin, Double_t dedx) const
Energy loss in a Silicon layer.
std::map< Double_t, Double_t > fStoppingElectron
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
void ReadDataTablesStoppingPower()
Read stopping power data table from file.
Double_t fUrbanE2
Urban model: second atomic energy level.
Double_t fUrbanI
Urban model: mean ionisation potential of Silicon.
CbmStsPhysics()
Constructor.
Double_t fUrbanF2
Urban model: oscillator strength second level.
std::map< Double_t, Double_t > fStoppingProton
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
ClassDef(CbmStsPhysics, 2)
void SetUrbanParameters(Double_t z)
Calculate the parameters for the Urban model.
Double_t fUrbanF1
Urban model: oscillator strength first level.
std::map< Double_t, Double_t > fLandauWidth
q [e] -> width [e]
Double_t fUrbanEmax
Urban model: cut-off energy (delta-e threshold)