ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::SiliconProperties Class Reference

#include <SiliconProperties.h>

Collaboration diagram for InDet::SiliconProperties:

Public Member Functions

 SiliconProperties ()
 SiliconProperties (double temperature, double electricField)
void setConditions (double temperature, double electricField)
double electronDriftMobility () const
double holeDriftMobility () const
double electronHallMobility () const
double holeHallMobility () const
double electronDiffusionConstant () const
double holeDiffusionConstant () const
double electronSaturationVelocity () const
double holeSaturationVelocity () const
double electronHolePairsPerEnergy () const
double driftMobility (InDetDD::CarrierType carrier) const
double hallMobility (InDetDD::CarrierType carrier) const
double signedHallMobility (InDetDD::CarrierType carrier) const
double diffusionConstant (InDetDD::CarrierType carrier) const
double calcElectronDriftMobility (double temperature, double electricField) const
double calcHoleDriftMobility (double temperature, double electricField) const
double calcElectronHallMobility (double temperature, double mobility) const
double calcHoleHallMobility (double temperature, double mobility) const
void setElectronDriftMobility (double mobility)
void setHoleDriftMobility (double mobility)
void setElectronHallMobility (double mobility)
void setHoleHallMobility (double mobility)
void setElectronDiffusionConstant (double diffusionConstant)
void setHoleDiffusionConstant (double diffusionConstant)
void setElectronSaturationVelocity (double electronSaturationVelocity)
void setHoleSaturationVelocity (double holeSaturationVelocity)
void setElectronHolePairsPerEnergy (double ehPairsPerEnergy)

Static Public Member Functions

static double charge (InDetDD::CarrierType carrier)
static double calcElectronHallFactor (double temperature)
static double calcHoleHallFactor (double temperature)
static double calcDriftMobility (double electricField, double electricField_critical, double saturationVelocity, double beta)
static double calcDiffusionConstant (double temperature, double mobility)

Private Attributes

double m_electronDriftMobility
double m_holeDriftMobility
double m_electronHallMobility
double m_holeHallMobility
double m_electronDiffusionConstant
double m_holeDiffusionConstant
double m_electronSaturationVelocity
double m_holeSaturationVelocity
double m_ehPairsPerEnergy
bool m_override

Static Private Attributes

static const double s_ehPairsPerEnergyDefault = 1. / (3.62 * CLHEP::eV)

Detailed Description

Definition at line 23 of file SiliconProperties.h.

Constructor & Destructor Documentation

◆ SiliconProperties() [1/2]

InDet::SiliconProperties::SiliconProperties ( )

Definition at line 43 of file SiliconProperties.cxx.

53 m_override(false)
54{}
static const double s_ehPairsPerEnergyDefault

◆ SiliconProperties() [2/2]

InDet::SiliconProperties::SiliconProperties ( double temperature,
double electricField )

Definition at line 56 of file SiliconProperties.cxx.

Member Function Documentation

◆ calcDiffusionConstant()

double InDet::SiliconProperties::calcDiffusionConstant ( double temperature,
double mobility )
static

Definition at line 159 of file SiliconProperties.cxx.

159 {
160 // Einstein's relationship (in many text books)
161 return -CLHEP::k_Boltzmann * temperature / CLHEP::electron_charge * mobility; // CLHEP::k_Boltzmann and CLHEP::electron_charge
162}

◆ calcDriftMobility()

double InDet::SiliconProperties::calcDriftMobility ( double electricField,
double electricField_critical,
double saturationVelocity,
double beta )
static

Definition at line 134 of file SiliconProperties.cxx.

134 {
135 // Equation from ATL-INDET-2001-004
136 return saturationVelocity / electricField_critical /
137 std::pow(std::abs(1. + std::pow(std::abs(electricField/electricField_critical), beta)), 1./beta);
138}

◆ calcElectronDriftMobility()

double InDet::SiliconProperties::calcElectronDriftMobility ( double temperature,
double electricField ) const

Definition at line 140 of file SiliconProperties.cxx.

140 {
141 // Equations from ATL-INDET-2001-004
142// double saturationVelocity = elecV_sat_0 * std::pow(temperature, elecV_sat_exp);
143 double saturationVelocity = m_electronSaturationVelocity*std::pow(temperature, elecV_sat_exp);
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);
147}
static double calcDriftMobility(double electricField, double electricField_critical, double saturationVelocity, double beta)

◆ calcElectronHallFactor()

double InDet::SiliconProperties::calcElectronHallFactor ( double temperature)
static

Definition at line 123 of file SiliconProperties.cxx.

123 {
124 // Equation from ATL-INDET-2001-004
125 return elecHallFactZero + elecHallFact_drdt * (temperature - temperatureZero);
126}

◆ calcElectronHallMobility()

double InDet::SiliconProperties::calcElectronHallMobility ( double temperature,
double mobility ) const

◆ calcHoleDriftMobility()

double InDet::SiliconProperties::calcHoleDriftMobility ( double temperature,
double electricField ) const

Definition at line 149 of file SiliconProperties.cxx.

149 {
150 // Equations from ATL-INDET-2001-004
151// double saturationVelocity = holeV_sat_0 * std::pow(temperature, holeV_sat_exp);
152 double saturationVelocity = m_holeSaturationVelocity*std::pow(temperature, holeV_sat_exp);
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);
156}

◆ calcHoleHallFactor()

double InDet::SiliconProperties::calcHoleHallFactor ( double temperature)
static

Definition at line 128 of file SiliconProperties.cxx.

128 {
129 // Equation from ATL-INDET-2001-004
130 return holeHallFactZero + holeHallFact_drdt * (temperature - temperatureZero);
131}

◆ calcHoleHallMobility()

double InDet::SiliconProperties::calcHoleHallMobility ( double temperature,
double mobility ) const

◆ charge()

double InDet::SiliconProperties::charge ( InDetDD::CarrierType carrier)
static

Definition at line 110 of file SiliconProperties.cxx.

110 {
111 return (carrierType == holes) ? +1 : -1;
112}

◆ diffusionConstant()

double InDet::SiliconProperties::diffusionConstant ( InDetDD::CarrierType carrier) const

Definition at line 102 of file SiliconProperties.cxx.

102 {
103 if (carrierType == holes) {
104 return holeDiffusionConstant();
105 } else {
107 }
108}
double electronDiffusionConstant() const

◆ driftMobility()

double InDet::SiliconProperties::driftMobility ( InDetDD::CarrierType carrier) const

Definition at line 86 of file SiliconProperties.cxx.

86 {
87 if (carrierType == holes) {
88 return holeDriftMobility();
89 } else {
90 return electronDriftMobility();
91 }
92}

◆ electronDiffusionConstant()

double InDet::SiliconProperties::electronDiffusionConstant ( ) const

Definition at line 180 of file SiliconProperties.cxx.

180 {
182}

◆ electronDriftMobility()

double InDet::SiliconProperties::electronDriftMobility ( ) const

Definition at line 164 of file SiliconProperties.cxx.

164 {
166}

◆ electronHallMobility()

double InDet::SiliconProperties::electronHallMobility ( ) const

Definition at line 172 of file SiliconProperties.cxx.

172 {
174}

◆ electronHolePairsPerEnergy()

double InDet::SiliconProperties::electronHolePairsPerEnergy ( ) const

Definition at line 238 of file SiliconProperties.cxx.

238 {
239 return m_ehPairsPerEnergy;
240}

◆ electronSaturationVelocity()

double InDet::SiliconProperties::electronSaturationVelocity ( ) const

Definition at line 188 of file SiliconProperties.cxx.

188 {
190}

◆ hallMobility()

double InDet::SiliconProperties::hallMobility ( InDetDD::CarrierType carrier) const

Definition at line 94 of file SiliconProperties.cxx.

94 {
95 if (carrierType == holes) {
96 return holeHallMobility();
97 } else {
98 return electronHallMobility();
99 }
100}

◆ holeDiffusionConstant()

double InDet::SiliconProperties::holeDiffusionConstant ( ) const

Definition at line 184 of file SiliconProperties.cxx.

184 {
186}

◆ holeDriftMobility()

double InDet::SiliconProperties::holeDriftMobility ( ) const

Definition at line 168 of file SiliconProperties.cxx.

168 {
169 return m_holeDriftMobility;
170}

◆ holeHallMobility()

double InDet::SiliconProperties::holeHallMobility ( ) const

Definition at line 176 of file SiliconProperties.cxx.

176 {
177 return m_holeHallMobility;
178}

◆ holeSaturationVelocity()

double InDet::SiliconProperties::holeSaturationVelocity ( ) const

Definition at line 192 of file SiliconProperties.cxx.

192 {
194}

◆ setConditions()

void InDet::SiliconProperties::setConditions ( double temperature,
double electricField )

Definition at line 71 of file SiliconProperties.cxx.

71 {
72
74 if (m_holeSaturationVelocity==0.0) { m_holeSaturationVelocity=holeV_sat_0; }
75
76 if (!m_override) {
77 m_electronDriftMobility = calcElectronDriftMobility(temperature, electricField);
78 m_holeDriftMobility = calcHoleDriftMobility(temperature, electricField);
83 }
84}
static double calcHoleHallFactor(double temperature)
static double calcElectronHallFactor(double temperature)
double calcElectronDriftMobility(double temperature, double electricField) const
double calcHoleDriftMobility(double temperature, double electricField) const
static double calcDiffusionConstant(double temperature, double mobility)

◆ setElectronDiffusionConstant()

void InDet::SiliconProperties::setElectronDiffusionConstant ( double diffusionConstant)

Definition at line 216 of file SiliconProperties.cxx.

216 {
217 m_override = true;
219}
double diffusionConstant(InDetDD::CarrierType carrier) const

◆ setElectronDriftMobility()

void InDet::SiliconProperties::setElectronDriftMobility ( double mobility)

Definition at line 196 of file SiliconProperties.cxx.

196 {
197 m_override = true;
198 m_electronDriftMobility = mobility;
199}

◆ setElectronHallMobility()

void InDet::SiliconProperties::setElectronHallMobility ( double mobility)

Definition at line 206 of file SiliconProperties.cxx.

206 {
207 m_override = true;
208 m_electronHallMobility = mobility;
209}

◆ setElectronHolePairsPerEnergy()

void InDet::SiliconProperties::setElectronHolePairsPerEnergy ( double ehPairsPerEnergy)

Definition at line 234 of file SiliconProperties.cxx.

234 {
235 m_ehPairsPerEnergy = ehPairsPerEnergy;
236}

◆ setElectronSaturationVelocity()

void InDet::SiliconProperties::setElectronSaturationVelocity ( double electronSaturationVelocity)

Definition at line 226 of file SiliconProperties.cxx.

◆ setHoleDiffusionConstant()

void InDet::SiliconProperties::setHoleDiffusionConstant ( double diffusionConstant)

Definition at line 221 of file SiliconProperties.cxx.

221 {
222 m_override = true;
224}

◆ setHoleDriftMobility()

void InDet::SiliconProperties::setHoleDriftMobility ( double mobility)

Definition at line 201 of file SiliconProperties.cxx.

201 {
202 m_override = true;
203 m_holeDriftMobility = mobility;
204}

◆ setHoleHallMobility()

void InDet::SiliconProperties::setHoleHallMobility ( double mobility)

Definition at line 211 of file SiliconProperties.cxx.

211 {
212 m_override = true;
213 m_holeHallMobility = mobility;
214}

◆ setHoleSaturationVelocity()

void InDet::SiliconProperties::setHoleSaturationVelocity ( double holeSaturationVelocity)

Definition at line 230 of file SiliconProperties.cxx.

◆ signedHallMobility()

double InDet::SiliconProperties::signedHallMobility ( InDetDD::CarrierType carrier) const

Definition at line 114 of file SiliconProperties.cxx.

114 {
115 if (carrierType == holes) {
116 return holeHallMobility();
117 } else {
118 return -electronHallMobility();
119 }
120}

Member Data Documentation

◆ m_ehPairsPerEnergy

double InDet::SiliconProperties::m_ehPairsPerEnergy
private

Definition at line 84 of file SiliconProperties.h.

◆ m_electronDiffusionConstant

double InDet::SiliconProperties::m_electronDiffusionConstant
private

Definition at line 80 of file SiliconProperties.h.

◆ m_electronDriftMobility

double InDet::SiliconProperties::m_electronDriftMobility
private

Definition at line 76 of file SiliconProperties.h.

◆ m_electronHallMobility

double InDet::SiliconProperties::m_electronHallMobility
private

Definition at line 78 of file SiliconProperties.h.

◆ m_electronSaturationVelocity

double InDet::SiliconProperties::m_electronSaturationVelocity
private

Definition at line 82 of file SiliconProperties.h.

◆ m_holeDiffusionConstant

double InDet::SiliconProperties::m_holeDiffusionConstant
private

Definition at line 81 of file SiliconProperties.h.

◆ m_holeDriftMobility

double InDet::SiliconProperties::m_holeDriftMobility
private

Definition at line 77 of file SiliconProperties.h.

◆ m_holeHallMobility

double InDet::SiliconProperties::m_holeHallMobility
private

Definition at line 79 of file SiliconProperties.h.

◆ m_holeSaturationVelocity

double InDet::SiliconProperties::m_holeSaturationVelocity
private

Definition at line 83 of file SiliconProperties.h.

◆ m_override

bool InDet::SiliconProperties::m_override
private

Definition at line 86 of file SiliconProperties.h.

◆ s_ehPairsPerEnergyDefault

const double InDet::SiliconProperties::s_ehPairsPerEnergyDefault = 1. / (3.62 * CLHEP::eV)
staticprivate

Definition at line 88 of file SiliconProperties.h.


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