CbmRoot
|
Auxiliary class for physics processes in Silicon. More...
#include <CbmStsPhysics.h>
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 CbmStsPhysics * | Instance () |
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 CbmStsPhysics * | fgInstance |
Singleton instance. More... | |
Auxiliary class for physics processes in Silicon.
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.
|
virtual |
Destructor
Definition at line 53 of file CbmStsPhysics.cxx.
|
private |
Constructor.
|
privatedelete |
Copy constructor (disabled)
|
private |
|
static |
Diffusion width as function of z
z | Distance from p side [cm] |
d | Thickness of sensor [cm] |
vBias | Bias voltage [V] |
vFd | Full depletion voltage [V] |
temperature | Temperature [K] |
chargeType | 0 = electron, 1 = hole |
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().
|
static |
Electric field magnitude in a silicon sensor as function of z.
vBias | Bias voltage [V] |
vFd | Full depletion voltage [V] |
dZ | Thickness of sensor [cm] |
z | z coordinate, measured from the p side [cm] |
Definition at line 102 of file CbmStsPhysics.cxx.
Referenced by CbmStsSimSensorDssd::LorentzShift().
Double_t CbmStsPhysics::EnergyLoss | ( | Double_t | dz, |
Double_t | mass, | ||
Double_t | eKin, | ||
Double_t | dedx | ||
) | const |
Energy loss in a Silicon layer.
dz | Layer thickness [cm] |
mass | Particle mass [GeV] |
eKin | Kinetic energy [GeV] |
dedx | Average specific energy loss [GeV/cm] |
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().
|
static |
Accessor 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().
|
private |
Interpolate a value from the data tables.
eKin | Equivalent kinetic energy [GeV] |
table | Reference to data map (fStoppingElectron or fStoppingProton) |
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.
Double_t CbmStsPhysics::LandauWidth | ( | Double_t | mostProbableCharge | ) |
Half width at half max of Landau distribution in ultra-relativistic case.
mostProbableCharge | [e] |
Definition at line 187 of file CbmStsPhysics.cxx.
Referenced by CbmStsAlgoAnaCluster::AnaSize2(), and CbmStsAlgoAnaCluster::AnaSizeN().
|
privatedelete |
Assignment operator (disabled)
|
inlinestatic |
Energy for electron-hole pair creation in silicon.
Definition at line 97 of file CbmStsPhysics.h.
Referenced by CbmStsSimSensorDssd::ProduceCharge().
|
static |
Particle charge from PDG particle ID.
pid | PID (PDG code) |
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.
|
static |
Particle mass from PDG particle ID.
pid | PID (PDG code) |
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().
|
private |
Read Landau width data table from file.
Definition at line 238 of file CbmStsPhysics.cxx.
|
private |
Read stopping power data table from file.
Definition at line 268 of file CbmStsPhysics.cxx.
|
private |
Calculate the parameters for the Urban model.
z | Atomic charge of material element |
The parameters are set according to the GEANT3 manual (PHYS332 and PHYS333)
Definition at line 322 of file CbmStsPhysics.cxx.
Double_t CbmStsPhysics::StoppingPower | ( | Double_t | eKin, |
Int_t | pid | ||
) |
Stopping power (average specific energy loss) in Silicon.
eKin | Kinetic energy pf the particle [GeV] |
pid | Particle ID (PDG code) |
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().
Double_t CbmStsPhysics::StoppingPower | ( | Double_t | energy, |
Double_t | mass, | ||
Double_t | charge, | ||
Bool_t | isElectron | ||
) |
Stopping power in Silicon
energy | Energy of particle [GeV] |
mass | Particle mass [GeV] |
charge | Electric charge [e] |
isElectron | kTRUE if electron, kFALSE else |
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.
|
staticprivate |
Singleton instance.
Definition at line 194 of file CbmStsPhysics.h.
|
private |
q [e] -> width [e]
Definition at line 214 of file CbmStsPhysics.h.
|
private |
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
Definition at line 209 of file CbmStsPhysics.h.
|
private |
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
Definition at line 211 of file CbmStsPhysics.h.
|
private |
Urban model: first atomic energy level.
Definition at line 198 of file CbmStsPhysics.h.
|
private |
Urban model: second atomic energy level.
Definition at line 199 of file CbmStsPhysics.h.
|
private |
Urban model: cut-off energy (delta-e threshold)
Definition at line 202 of file CbmStsPhysics.h.
|
private |
Urban model: oscillator strength first level.
Definition at line 200 of file CbmStsPhysics.h.
|
private |
Urban model: oscillator strength second level.
Definition at line 201 of file CbmStsPhysics.h.
|
private |
Urban model: mean ionisation potential of Silicon.
Definition at line 197 of file CbmStsPhysics.h.
|
private |
Urban model: weight parameter excitation/ionisation.
Definition at line 204 of file CbmStsPhysics.h.