CbmRoot
CbmStsPhysics Class Reference

Auxiliary class for physics processes in Silicon. More...

#include <CbmStsPhysics.h>

Collaboration diagram for CbmStsPhysics:
[legend]

Public Member Functions

virtual ~CbmStsPhysics ()
 
Double_t EnergyLoss (Double_t dz, Double_t mass, Double_t eKin, Double_t dedx) const
 Energy loss in a Silicon layer. More...
 
Double_t LandauWidth (Double_t mostProbableCharge)
 Half width at half max of Landau distribution in ultra-relativistic case. More...
 
Double_t StoppingPower (Double_t eKin, Int_t pid)
 Stopping power (average specific energy loss) in Silicon. More...
 
Double_t StoppingPower (Double_t energy, Double_t mass, Double_t charge, Bool_t isElectron)
 

Static Public Member Functions

static Double_t DiffusionWidth (Double_t z, Double_t d, Double_t vBias, Double_t vFd, Double_t temperature, Int_t chargeType)
 
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. More...
 
static CbmStsPhysicsInstance ()
 Accessor to singleton instance. More...
 
static Double_t PairCreationEnergy ()
 Energy for electron-hole pair creation in silicon. More...
 
static Double_t ParticleCharge (Int_t pid)
 Particle charge from PDG particle ID. More...
 
static Double_t ParticleMass (Int_t pid)
 Particle mass from PDG particle ID. More...
 

Private Member Functions

 CbmStsPhysics ()
 Constructor. More...
 
 CbmStsPhysics (const CbmStsPhysics &)=delete
 Copy constructor (disabled) More...
 
CbmStsPhysics operator= (const CbmStsPhysics &)=delete
 Assignment operator (disabled) More...
 
Double_t InterpolateDataTable (Double_t eKin, std::map< Double_t, Double_t > &table)
 Interpolate a value from the data tables. More...
 
void ReadDataTablesStoppingPower ()
 Read stopping power data table from file. More...
 
void ReadDataTablesLandauWidth ()
 Read Landau width data table from file. More...
 
void SetUrbanParameters (Double_t z)
 Calculate the parameters for the Urban model. More...
 
 ClassDef (CbmStsPhysics, 2)
 

Private Attributes

Double_t fUrbanI = 0.
 Urban model: mean ionisation potential of Silicon. More...
 
Double_t fUrbanE1 = 0.
 Urban model: first atomic energy level. More...
 
Double_t fUrbanE2 = 0.
 Urban model: second atomic energy level. More...
 
Double_t fUrbanF1 = 0.
 Urban model: oscillator strength first level. More...
 
Double_t fUrbanF2 = 0.
 Urban model: oscillator strength second level. More...
 
Double_t fUrbanEmax
 Urban model: cut-off energy (delta-e threshold) More...
 
Double_t fUrbanR
 Urban model: weight parameter excitation/ionisation. More...
 
std::map< Double_t, Double_t > fStoppingElectron {}
 E [GeV] -> <-dE/dx> [GeV*g/cm^2]. More...
 
std::map< Double_t, Double_t > fStoppingProton {}
 E [GeV] -> <-dE/dx> [GeV*g/cm^2]. More...
 
std::map< Double_t, Double_t > fLandauWidth
 q [e] -> width [e] More...
 

Static Private Attributes

static CbmStsPhysicsfgInstance
 Singleton instance. More...
 

Detailed Description

Auxiliary class for physics processes in Silicon.

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
02.12.2014

This singleton class is auxiliary for the detector response simulation of the CBM-STS, but can also be used from reconstruction ar analysis (e.g., Lorentz shift).

Definition at line 24 of file CbmStsPhysics.h.

Constructor & Destructor Documentation

◆ ~CbmStsPhysics()

CbmStsPhysics::~CbmStsPhysics ( )
virtual

Destructor

Definition at line 53 of file CbmStsPhysics.cxx.

◆ CbmStsPhysics() [1/2]

CbmStsPhysics::CbmStsPhysics ( )
private

Constructor.

◆ CbmStsPhysics() [2/2]

CbmStsPhysics::CbmStsPhysics ( const CbmStsPhysics )
privatedelete

Copy constructor (disabled)

Member Function Documentation

◆ ClassDef()

CbmStsPhysics::ClassDef ( CbmStsPhysics  ,
 
)
private

◆ DiffusionWidth()

Double_t CbmStsPhysics::DiffusionWidth ( Double_t  z,
Double_t  d,
Double_t  vBias,
Double_t  vFd,
Double_t  temperature,
Int_t  chargeType 
)
static

Diffusion width as function of z

Parameters
zDistance from p side [cm]
dThickness of sensor [cm]
vBiasBias voltage [V]
vFdFull depletion voltage [V]
temperatureTemperature [K]
chargeType0 = electron, 1 = hole
Returns
Drift time [s]

Calculates the diffusion width (sigma) for a charge drifting from z to the readout (z = 0 for hole, z = d for electrons).

For the reference to the formulae, see the STS digitiser note.

Definition at line 58 of file CbmStsPhysics.cxx.

References d, log(), and sqrt().

Referenced by CbmStsSimSensorDssdOrtho::PropagateCharge(), and CbmStsSimSensorDssdStereo::PropagateCharge().

◆ ElectricField()

Double_t CbmStsPhysics::ElectricField ( Double_t  vBias,
Double_t  vFd,
Double_t  dZ,
Double_t  z 
)
static

Electric field magnitude in a silicon sensor as function of z.

Parameters
vBiasBias voltage [V]
vFdFull depletion voltage [V]
dZThickness of sensor [cm]
zz coordinate, measured from the p side [cm]
Returns
z component of electric field [V/cm]

Definition at line 102 of file CbmStsPhysics.cxx.

Referenced by CbmStsSimSensorDssd::LorentzShift().

◆ EnergyLoss()

Double_t CbmStsPhysics::EnergyLoss ( Double_t  dz,
Double_t  mass,
Double_t  eKin,
Double_t  dedx 
) const

Energy loss in a Silicon layer.

Parameters
dzLayer thickness [cm]
massParticle mass [GeV]
eKinKinetic energy [GeV]
dedxAverage specific energy loss [GeV/cm]
Returns
Energy loss in the layer [GeV]

The energy loss is sampled from the Urban fluctuation model described in the GEANT3 manual (PHYS333 2.4, pp. 262-264).

Definition at line 112 of file CbmStsPhysics.cxx.

Referenced by CbmStsSimSensorDssd::ProduceCharge().

◆ Instance()

CbmStsPhysics * CbmStsPhysics::Instance ( )
static

Accessor to singleton instance.

Returns
Pointer to singleton instance

Will instantiate a singleton object if not yet existing.

Definition at line 155 of file CbmStsPhysics.cxx.

Referenced by CbmStsDigitize::Init(), and CbmStsSimSensorDssd::ProduceCharge().

◆ InterpolateDataTable()

Double_t CbmStsPhysics::InterpolateDataTable ( Double_t  eKin,
std::map< Double_t, Double_t > &  table 
)
private

Interpolate a value from the data tables.

Parameters
eKinEquivalent kinetic energy [GeV]
tableReference to data map (fStoppingElectron or fStoppingProton)
Returns
Interpolated value from data table

The eEquiv is below the tabulated range, the first table value is returned; if it is above the range, the last value is returned.

Definition at line 163 of file CbmStsPhysics.cxx.

◆ LandauWidth()

Double_t CbmStsPhysics::LandauWidth ( Double_t  mostProbableCharge)

Half width at half max of Landau distribution in ultra-relativistic case.

Parameters
mostProbableCharge[e]
Returns
half width [e]

Definition at line 187 of file CbmStsPhysics.cxx.

Referenced by CbmStsAlgoAnaCluster::AnaSize2(), and CbmStsAlgoAnaCluster::AnaSizeN().

◆ operator=()

CbmStsPhysics CbmStsPhysics::operator= ( const CbmStsPhysics )
privatedelete

Assignment operator (disabled)

◆ PairCreationEnergy()

static Double_t CbmStsPhysics::PairCreationEnergy ( )
inlinestatic

Energy for electron-hole pair creation in silicon.

Returns
Pair creation energy [GeV]

Definition at line 97 of file CbmStsPhysics.h.

Referenced by CbmStsSimSensorDssd::ProduceCharge().

◆ ParticleCharge()

Double_t CbmStsPhysics::ParticleCharge ( Int_t  pid)
static

Particle charge from PDG particle ID.

Parameters
pidPID (PDG code)
Returns
Particle charge [e]

For particles in the TDataBasePDG, the charge is taken from there. For ions, it is calculated following the PDG code convention. If not found, zero is returned.

Definition at line 196 of file CbmStsPhysics.cxx.

◆ ParticleMass()

Double_t CbmStsPhysics::ParticleMass ( Int_t  pid)
static

Particle mass from PDG particle ID.

Parameters
pidPID (PDG code)
Returns
Particle mass [GeV]

For particles in the TDataBasePDG, the mass is taken from there. For ions, it is calculated following the PDG code convention. If not found, zero is returned.

Definition at line 217 of file CbmStsPhysics.cxx.

Referenced by CbmStsSimSensorDssd::ProduceCharge().

◆ ReadDataTablesLandauWidth()

void CbmStsPhysics::ReadDataTablesLandauWidth ( )
private

Read Landau width data table from file.

Definition at line 238 of file CbmStsPhysics.cxx.

◆ ReadDataTablesStoppingPower()

void CbmStsPhysics::ReadDataTablesStoppingPower ( )
private

Read stopping power data table from file.

Definition at line 268 of file CbmStsPhysics.cxx.

◆ SetUrbanParameters()

void CbmStsPhysics::SetUrbanParameters ( Double_t  z)
private

Calculate the parameters for the Urban model.

Parameters
zAtomic charge of material element

The parameters are set according to the GEANT3 manual (PHYS332 and PHYS333)

Definition at line 322 of file CbmStsPhysics.cxx.

◆ StoppingPower() [1/2]

Double_t CbmStsPhysics::StoppingPower ( Double_t  eKin,
Int_t  pid 
)

Stopping power (average specific energy loss) in Silicon.

Parameters
eKinKinetic energy pf the particle [GeV]
pidParticle ID (PDG code)
Returns
Stopping power [GeV/cm]

This function calculates the stopping power (average specific energy loss) in Silicon of a particle specified by its PDG code. For an unknown pid, null is returned.

Definition at line 358 of file CbmStsPhysics.cxx.

Referenced by CbmStsSimSensorDssd::ProduceCharge().

◆ StoppingPower() [2/2]

Double_t CbmStsPhysics::StoppingPower ( Double_t  energy,
Double_t  mass,
Double_t  charge,
Bool_t  isElectron 
)

Stopping power in Silicon

Parameters
energyEnergy of particle [GeV]
massParticle mass [GeV]
chargeElectric charge [e]
isElectronkTRUE if electron, kFALSE else
Returns
Stopping power [GeV/cm]

This function calculates the stopping power (average specific energy loss) in Silicon of a particle with given mass and charge.

Definition at line 371 of file CbmStsPhysics.cxx.

References CbmSts::kProtonMass, and CbmSts::kSiDensity.

Member Data Documentation

◆ fgInstance

CbmStsPhysics* CbmStsPhysics::fgInstance
staticprivate

Singleton instance.

Definition at line 194 of file CbmStsPhysics.h.

◆ fLandauWidth

std::map<Double_t, Double_t> CbmStsPhysics::fLandauWidth
private

q [e] -> width [e]

Definition at line 214 of file CbmStsPhysics.h.

◆ fStoppingElectron

std::map<Double_t, Double_t> CbmStsPhysics::fStoppingElectron {}
private

E [GeV] -> <-dE/dx> [GeV*g/cm^2].

Definition at line 209 of file CbmStsPhysics.h.

◆ fStoppingProton

std::map<Double_t, Double_t> CbmStsPhysics::fStoppingProton {}
private

E [GeV] -> <-dE/dx> [GeV*g/cm^2].

Definition at line 211 of file CbmStsPhysics.h.

◆ fUrbanE1

Double_t CbmStsPhysics::fUrbanE1 = 0.
private

Urban model: first atomic energy level.

Definition at line 198 of file CbmStsPhysics.h.

◆ fUrbanE2

Double_t CbmStsPhysics::fUrbanE2 = 0.
private

Urban model: second atomic energy level.

Definition at line 199 of file CbmStsPhysics.h.

◆ fUrbanEmax

Double_t CbmStsPhysics::fUrbanEmax
private
Initial value:
=
0.

Urban model: cut-off energy (delta-e threshold)

Definition at line 202 of file CbmStsPhysics.h.

◆ fUrbanF1

Double_t CbmStsPhysics::fUrbanF1 = 0.
private

Urban model: oscillator strength first level.

Definition at line 200 of file CbmStsPhysics.h.

◆ fUrbanF2

Double_t CbmStsPhysics::fUrbanF2 = 0.
private

Urban model: oscillator strength second level.

Definition at line 201 of file CbmStsPhysics.h.

◆ fUrbanI

Double_t CbmStsPhysics::fUrbanI = 0.
private

Urban model: mean ionisation potential of Silicon.

Definition at line 197 of file CbmStsPhysics.h.

◆ fUrbanR

Double_t CbmStsPhysics::fUrbanR
private
Initial value:
=
0.

Urban model: weight parameter excitation/ionisation.

Definition at line 204 of file CbmStsPhysics.h.


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