CbmRoot
Loading...
Searching...
No Matches
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.
 
Double_t LandauWidth (Double_t mostProbableCharge)
 Half width at half max of Landau distribution in ultra-relativistic case.
 
std::pair< std::vector< double >, double > GetLandauWidthTable () const
 Raw values of landau width interpolation table.
 
Double_t StoppingPower (Double_t eKin, Int_t pid)
 Stopping power (average specific energy loss) in Silicon.
 
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.
 
static CbmStsPhysicsInstance ()
 Accessor to singleton instance.
 
static Double_t PairCreationEnergy ()
 Energy for electron-hole pair creation in silicon.
 
static Double_t ParticleCharge (Int_t pid)
 Particle charge from PDG particle ID.
 
static Double_t ParticleMass (Int_t pid)
 Particle mass from PDG particle ID.
 

Private Member Functions

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

Private Attributes

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

Static Private Attributes

static CbmStsPhysicsfgInstance
 Singleton instance.
 

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 30 of file CbmStsPhysics.h.

Constructor & Destructor Documentation

◆ ~CbmStsPhysics()

CbmStsPhysics::~CbmStsPhysics ( )
virtual

Destructor

Definition at line 58 of file CbmStsPhysics.cxx.

◆ CbmStsPhysics() [1/2]

CbmStsPhysics::CbmStsPhysics ( )
private

Constructor.

Referenced by Instance().

◆ CbmStsPhysics() [2/2]

CbmStsPhysics::CbmStsPhysics ( const CbmStsPhysics & )
privatedelete

Copy constructor (disabled)

Member Function Documentation

◆ ClassDef()

CbmStsPhysics::ClassDef ( CbmStsPhysics ,
2  )
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 63 of file CbmStsPhysics.cxx.

References 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 104 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.

References fUrbanE1, fUrbanE2, fUrbanEmax, fUrbanF1, fUrbanF2, fUrbanI, and fUrbanR.

Referenced by CbmStsSimSensorDssd::ProduceCharge().

◆ GetLandauWidthTable()

std::pair< std::vector< double >, double > CbmStsPhysics::GetLandauWidthTable ( ) const

Raw values of landau width interpolation table.

Returns
interpolation table values and step size of table

Definition at line 191 of file CbmStsPhysics.cxx.

References fLandauWidth.

Referenced by CbmRecoSts::CreateModules(), and CbmTaskStsHitFinderParWrite::CreateModules().

◆ 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 150 of file CbmStsPhysics.cxx.

References CbmStsPhysics(), and fgInstance.

Referenced by CbmRecoSts::CreateModules(), CbmTaskStsHitFinderParWrite::CreateModules(), CbmStsDigitize::Init(), CbmStsDigitizePixel::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 159 of file CbmStsPhysics.cxx.

Referenced by LandauWidth(), and StoppingPower().

◆ 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 183 of file CbmStsPhysics.cxx.

References fLandauWidth, and InterpolateDataTable().

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 101 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 217 of file CbmStsPhysics.cxx.

Referenced by StoppingPower().

◆ 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 239 of file CbmStsPhysics.cxx.

Referenced by CbmStsSimSensorDssd::ProduceCharge(), and StoppingPower().

◆ ReadDataTablesLandauWidth()

void CbmStsPhysics::ReadDataTablesLandauWidth ( )
private

Read Landau width data table from file.

Definition at line 261 of file CbmStsPhysics.cxx.

References fLandauWidth.

◆ ReadDataTablesStoppingPower()

void CbmStsPhysics::ReadDataTablesStoppingPower ( )
private

Read stopping power data table from file.

Definition at line 292 of file CbmStsPhysics.cxx.

References fStoppingElectron, and fStoppingProton.

◆ 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 347 of file CbmStsPhysics.cxx.

References fUrbanE1, fUrbanE2, fUrbanEmax, fUrbanF1, fUrbanF2, fUrbanI, and fUrbanR.

◆ 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 382 of file CbmStsPhysics.cxx.

References ParticleCharge(), ParticleMass(), and StoppingPower().

Referenced by CbmStsSimSensorDssd::ProduceCharge(), and StoppingPower().

◆ 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 396 of file CbmStsPhysics.cxx.

References fStoppingElectron, fStoppingProton, InterpolateDataTable(), CbmSts::kProtonMass, and CbmSts::kSiDensity.

Member Data Documentation

◆ fgInstance

CbmStsPhysics* CbmStsPhysics::fgInstance
staticprivate

Singleton instance.

Definition at line 194 of file CbmStsPhysics.h.

Referenced by Instance().

◆ fLandauWidth

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

q [e] -> width [e]

Definition at line 210 of file CbmStsPhysics.h.

Referenced by GetLandauWidthTable(), LandauWidth(), and ReadDataTablesLandauWidth().

◆ fStoppingElectron

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

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

Definition at line 206 of file CbmStsPhysics.h.

Referenced by ReadDataTablesStoppingPower(), and StoppingPower().

◆ fStoppingProton

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

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

Definition at line 207 of file CbmStsPhysics.h.

Referenced by ReadDataTablesStoppingPower(), and StoppingPower().

◆ fUrbanE1

Double_t CbmStsPhysics::fUrbanE1 = 0.
private

Urban model: first atomic energy level.

Definition at line 198 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanE2

Double_t CbmStsPhysics::fUrbanE2 = 0.
private

Urban model: second atomic energy level.

Definition at line 199 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanEmax

Double_t CbmStsPhysics::fUrbanEmax = 0.
private

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

Definition at line 202 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanF1

Double_t CbmStsPhysics::fUrbanF1 = 0.
private

Urban model: oscillator strength first level.

Definition at line 200 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanF2

Double_t CbmStsPhysics::fUrbanF2 = 0.
private

Urban model: oscillator strength second level.

Definition at line 201 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanI

Double_t CbmStsPhysics::fUrbanI = 0.
private

Urban model: mean ionisation potential of Silicon.

Definition at line 197 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().

◆ fUrbanR

Double_t CbmStsPhysics::fUrbanR = 0.
private

Urban model: weight parameter excitation/ionisation.

Definition at line 203 of file CbmStsPhysics.h.

Referenced by EnergyLoss(), and SetUrbanParameters().


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