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. | |
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 CbmStsPhysics * | Instance () |
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 CbmStsPhysics * | fgInstance |
Singleton instance. | |
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 30 of file CbmStsPhysics.h.
|
virtual |
Destructor
Definition at line 58 of file CbmStsPhysics.cxx.
|
private |
Constructor.
Referenced by Instance().
|
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 63 of file CbmStsPhysics.cxx.
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 104 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.
References fUrbanE1, fUrbanE2, fUrbanEmax, fUrbanF1, fUrbanF2, fUrbanI, and fUrbanR.
Referenced by CbmStsSimSensorDssd::ProduceCharge().
std::pair< std::vector< double >, double > CbmStsPhysics::GetLandauWidthTable | ( | ) | const |
Raw values of landau width interpolation table.
Definition at line 191 of file CbmStsPhysics.cxx.
References fLandauWidth.
Referenced by CbmRecoSts::CreateModules(), and CbmTaskStsHitFinderParWrite::CreateModules().
|
static |
Accessor 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().
|
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 159 of file CbmStsPhysics.cxx.
Referenced by LandauWidth(), and StoppingPower().
Double_t CbmStsPhysics::LandauWidth | ( | Double_t | mostProbableCharge | ) |
Half width at half max of Landau distribution in ultra-relativistic case.
mostProbableCharge | [e] |
Definition at line 183 of file CbmStsPhysics.cxx.
References fLandauWidth, and InterpolateDataTable().
Referenced by CbmStsAlgoAnaCluster::AnaSize2(), and CbmStsAlgoAnaCluster::AnaSizeN().
|
privatedelete |
Assignment operator (disabled)
|
inlinestatic |
Energy for electron-hole pair creation in silicon.
Definition at line 101 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 217 of file CbmStsPhysics.cxx.
Referenced by StoppingPower().
|
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 239 of file CbmStsPhysics.cxx.
Referenced by CbmStsSimSensorDssd::ProduceCharge(), and StoppingPower().
|
private |
Read Landau width data table from file.
Definition at line 261 of file CbmStsPhysics.cxx.
References fLandauWidth.
|
private |
Read stopping power data table from file.
Definition at line 292 of file CbmStsPhysics.cxx.
References fStoppingElectron, and fStoppingProton.
|
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 347 of file CbmStsPhysics.cxx.
References fUrbanE1, fUrbanE2, fUrbanEmax, fUrbanF1, fUrbanF2, fUrbanI, and fUrbanR.
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 382 of file CbmStsPhysics.cxx.
References ParticleCharge(), ParticleMass(), and StoppingPower().
Referenced by CbmStsSimSensorDssd::ProduceCharge(), and StoppingPower().
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 396 of file CbmStsPhysics.cxx.
References fStoppingElectron, fStoppingProton, InterpolateDataTable(), CbmSts::kProtonMass, and CbmSts::kSiDensity.
|
staticprivate |
|
private |
q [e] -> width [e]
Definition at line 210 of file CbmStsPhysics.h.
Referenced by GetLandauWidthTable(), LandauWidth(), and ReadDataTablesLandauWidth().
|
private |
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
Definition at line 206 of file CbmStsPhysics.h.
Referenced by ReadDataTablesStoppingPower(), and StoppingPower().
|
private |
E [GeV] -> <-dE/dx> [GeV*g/cm^2].
Definition at line 207 of file CbmStsPhysics.h.
Referenced by ReadDataTablesStoppingPower(), and StoppingPower().
|
private |
Urban model: first atomic energy level.
Definition at line 198 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: second atomic energy level.
Definition at line 199 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: cut-off energy (delta-e threshold)
Definition at line 202 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: oscillator strength first level.
Definition at line 200 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: oscillator strength second level.
Definition at line 201 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: mean ionisation potential of Silicon.
Definition at line 197 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().
|
private |
Urban model: weight parameter excitation/ionisation.
Definition at line 203 of file CbmStsPhysics.h.
Referenced by EnergyLoss(), and SetUrbanParameters().