6#include "CLHEP/Units/PhysicalConstants.h"
87 if (carrierType ==
holes) {
95 if (carrierType ==
holes) {
103 if (carrierType ==
holes) {
111 return (carrierType ==
holes) ? +1 : -1;
115 if (carrierType ==
holes) {
125 return elecHallFactZero + elecHallFact_drdt * (temperature - temperatureZero);
130 return holeHallFactZero + holeHallFact_drdt * (temperature - temperatureZero);
136 return saturationVelocity / electricField_critical /
137 std::pow(std::abs(1. + std::pow(std::abs(electricField/electricField_critical), beta)), 1./beta);
144 double electricField_critical = elecE_crit_0 * std::pow(temperature, elecE_crit_exp);
145 double beta = elecBeta_0 * std::pow(temperature, elecBeta_exp);
146 return calcDriftMobility(electricField, electricField_critical, saturationVelocity, beta);
153 double electricField_critical = holeE_crit_0 * std::pow(temperature, holeE_crit_exp);
154 double beta = holeBeta_0 * std::pow(temperature, holeBeta_exp);
155 return calcDriftMobility(electricField, electricField_critical, saturationVelocity, beta);
161 return -CLHEP::k_Boltzmann * temperature / CLHEP::electron_charge * mobility;
static double calcHoleHallFactor(double temperature)
void setConditions(double temperature, double electricField)
double driftMobility(InDetDD::CarrierType carrier) const
double holeDriftMobility() const
void setElectronDiffusionConstant(double diffusionConstant)
static double charge(InDetDD::CarrierType carrier)
double signedHallMobility(InDetDD::CarrierType carrier) const
double m_electronSaturationVelocity
double m_electronDriftMobility
void setElectronHolePairsPerEnergy(double ehPairsPerEnergy)
void setHoleDiffusionConstant(double diffusionConstant)
double electronDriftMobility() const
static double calcElectronHallFactor(double temperature)
double hallMobility(InDetDD::CarrierType carrier) const
double m_holeHallMobility
double electronSaturationVelocity() const
void setHoleSaturationVelocity(double holeSaturationVelocity)
double electronHolePairsPerEnergy() const
void setElectronSaturationVelocity(double electronSaturationVelocity)
double holeHallMobility() const
double calcElectronDriftMobility(double temperature, double electricField) const
double m_electronDiffusionConstant
double electronHallMobility() const
double holeDiffusionConstant() const
void setHoleHallMobility(double mobility)
double calcHoleDriftMobility(double temperature, double electricField) const
double m_holeDiffusionConstant
double m_electronHallMobility
double m_holeSaturationVelocity
void setElectronDriftMobility(double mobility)
void setElectronHallMobility(double mobility)
static double calcDriftMobility(double electricField, double electricField_critical, double saturationVelocity, double beta)
static double calcDiffusionConstant(double temperature, double mobility)
double diffusionConstant(InDetDD::CarrierType carrier) const
void setHoleDriftMobility(double mobility)
double holeSaturationVelocity() const
double m_holeDriftMobility
static const double s_ehPairsPerEnergyDefault
double electronDiffusionConstant() const
double m_ehPairsPerEnergy
const double holeHallFactZero
const double elecHallFactZero
const double temperatureZero
const double elecBeta_exp
const double elecHallFact_drdt
const double holeBeta_exp
const double elecE_crit_0
const double holeE_crit_0
const double elecE_crit_exp
const double holeE_crit_exp
const double holeHallFact_drdt
const double holeV_sat_exp
const double elecV_sat_exp