ATLAS Offline Software
SiliconProperties.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef SIPROPERTIESTOOL_SILICONPROPERTIES_H
6 #define SIPROPERTIESTOOL_SILICONPROPERTIES_H
7 
9 // Header file for class SiliconProperties
11 // (c) ATLAS Detector software
13 // Class to hold silicon properties such as mobility, etc.
14 // Quantities are in CLHEP units.
16 // Authors: Grant Gorfine
18 
20 
21 namespace InDet {
22 
24 {
25 public:
26 
27 
29  SiliconProperties(double temperature, double electricField);
30 
31  void setConditions(double temperature, double electricField);
32 
33  double electronDriftMobility() const;
34  double holeDriftMobility() const;
35  double electronHallMobility() const;
36  double holeHallMobility() const;
37  double electronDiffusionConstant() const;
38  double holeDiffusionConstant() const;
39  double electronSaturationVelocity() const;
40  double holeSaturationVelocity() const;
41 
42  double electronHolePairsPerEnergy() const;
43 
44  double driftMobility(InDetDD::CarrierType carrier) const;
45  double hallMobility(InDetDD::CarrierType carrier) const;
46  double signedHallMobility(InDetDD::CarrierType carrier) const; // signed by the charge of the carrier.
47  double diffusionConstant(InDetDD::CarrierType carrier) const;
48  static double charge(InDetDD::CarrierType carrier) ;
49 
50 
51  // These are mainly for use internally but are left public
52  static double calcElectronHallFactor(double temperature) ;
53  static double calcHoleHallFactor(double temperature) ;
54  static double calcDriftMobility(double electricField, double electricField_critical,
55  double saturationVelocity, double beta) ;
56  double calcElectronDriftMobility(double temperature, double electricField) const;
57  double calcHoleDriftMobility(double temperature, double electricField) const;
58  double calcElectronHallMobility(double temperature, double mobility) const;
59  double calcHoleHallMobility(double temperature, double mobility) const;
60  static double calcDiffusionConstant(double temperature, double mobility) ;
61 
62  // Allow overriding calculated quantities.
63  // Setting any one (other than setElectronHolePairsPerEnergy) will disable recalculations
64  // ie setConditions(temperature, electricField) will have no further effect.
65  void setElectronDriftMobility(double mobility);
66  void setHoleDriftMobility(double mobility);
67  void setElectronHallMobility(double mobility);
68  void setHoleHallMobility(double mobility);
73  void setElectronHolePairsPerEnergy(double ehPairsPerEnergy);
74 
75 private:
85 
86  bool m_override; // signal that quantities are overriden and recalculation are disabled.
87 
88  const static double s_ehPairsPerEnergyDefault;
89 };
90 
91 } // namespace InDetDD
92 
93 #endif // SIPROPERTIESTOOL_SILICONPROPERTIES_H
InDet::SiliconProperties::setElectronDiffusionConstant
void setElectronDiffusionConstant(double diffusionConstant)
Definition: SiliconProperties.cxx:216
InDet::SiliconProperties::holeHallMobility
double holeHallMobility() const
Definition: SiliconProperties.cxx:176
InDet::SiliconProperties::calcHoleHallMobility
double calcHoleHallMobility(double temperature, double mobility) const
InDet::SiliconProperties::calcElectronHallFactor
static double calcElectronHallFactor(double temperature)
Definition: SiliconProperties.cxx:123
InDet::SiliconProperties::calcDriftMobility
static double calcDriftMobility(double electricField, double electricField_critical, double saturationVelocity, double beta)
Definition: SiliconProperties.cxx:134
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SiliconProperties::setHoleDiffusionConstant
void setHoleDiffusionConstant(double diffusionConstant)
Definition: SiliconProperties.cxx:221
InDet::SiliconProperties::electronDriftMobility
double electronDriftMobility() const
Definition: SiliconProperties.cxx:164
InDet::SiliconProperties::holeDiffusionConstant
double holeDiffusionConstant() const
Definition: SiliconProperties.cxx:184
InDet::SiliconProperties::electronDiffusionConstant
double electronDiffusionConstant() const
Definition: SiliconProperties.cxx:180
InDet::SiliconProperties::diffusionConstant
double diffusionConstant(InDetDD::CarrierType carrier) const
Definition: SiliconProperties.cxx:102
InDet::SiliconProperties::m_holeSaturationVelocity
double m_holeSaturationVelocity
Definition: SiliconProperties.h:83
InDet::SiliconProperties::holeDriftMobility
double holeDriftMobility() const
Definition: SiliconProperties.cxx:168
InDet::SiliconProperties::m_holeHallMobility
double m_holeHallMobility
Definition: SiliconProperties.h:79
InDet::SiliconProperties::calcElectronDriftMobility
double calcElectronDriftMobility(double temperature, double electricField) const
Definition: SiliconProperties.cxx:140
InDet::SiliconProperties::m_electronDriftMobility
double m_electronDriftMobility
Definition: SiliconProperties.h:76
InDet::SiliconProperties::s_ehPairsPerEnergyDefault
static const double s_ehPairsPerEnergyDefault
Definition: SiliconProperties.h:88
InDetDD_Defs.h
InDet::SiliconProperties::m_override
bool m_override
Definition: SiliconProperties.h:86
InDet::SiliconProperties::driftMobility
double driftMobility(InDetDD::CarrierType carrier) const
Definition: SiliconProperties.cxx:86
InDet::SiliconProperties::m_electronHallMobility
double m_electronHallMobility
Definition: SiliconProperties.h:78
InDet::SiliconProperties::setElectronDriftMobility
void setElectronDriftMobility(double mobility)
Definition: SiliconProperties.cxx:196
InDet::SiliconProperties::calcDiffusionConstant
static double calcDiffusionConstant(double temperature, double mobility)
Definition: SiliconProperties.cxx:159
InDet::SiliconProperties::calcHoleDriftMobility
double calcHoleDriftMobility(double temperature, double electricField) const
Definition: SiliconProperties.cxx:149
InDet::SiliconProperties::calcHoleHallFactor
static double calcHoleHallFactor(double temperature)
Definition: SiliconProperties.cxx:128
InDet::SiliconProperties::hallMobility
double hallMobility(InDetDD::CarrierType carrier) const
Definition: SiliconProperties.cxx:94
InDet::SiliconProperties::m_electronDiffusionConstant
double m_electronDiffusionConstant
Definition: SiliconProperties.h:80
InDet::SiliconProperties::setHoleDriftMobility
void setHoleDriftMobility(double mobility)
Definition: SiliconProperties.cxx:201
InDet::SiliconProperties::calcElectronHallMobility
double calcElectronHallMobility(double temperature, double mobility) const
InDet::SiliconProperties::m_holeDriftMobility
double m_holeDriftMobility
Definition: SiliconProperties.h:77
InDet::SiliconProperties
Definition: SiliconProperties.h:24
InDet::SiliconProperties::signedHallMobility
double signedHallMobility(InDetDD::CarrierType carrier) const
Definition: SiliconProperties.cxx:114
InDet::SiliconProperties::SiliconProperties
SiliconProperties()
Definition: SiliconProperties.cxx:43
InDet::SiliconProperties::m_ehPairsPerEnergy
double m_ehPairsPerEnergy
Definition: SiliconProperties.h:84
InDet::SiliconProperties::electronHallMobility
double electronHallMobility() const
Definition: SiliconProperties.cxx:172
InDet::SiliconProperties::m_electronSaturationVelocity
double m_electronSaturationVelocity
Definition: SiliconProperties.h:82
InDetDD::CarrierType
CarrierType
Definition: InDetDD_Defs.h:17
InDet::SiliconProperties::holeSaturationVelocity
double holeSaturationVelocity() const
Definition: SiliconProperties.cxx:192
InDet::SiliconProperties::setHoleSaturationVelocity
void setHoleSaturationVelocity(double holeSaturationVelocity)
Definition: SiliconProperties.cxx:230
InDet::SiliconProperties::electronHolePairsPerEnergy
double electronHolePairsPerEnergy() const
Definition: SiliconProperties.cxx:238
InDet::SiliconProperties::electronSaturationVelocity
double electronSaturationVelocity() const
Definition: SiliconProperties.cxx:188
InDet::SiliconProperties::setElectronHallMobility
void setElectronHallMobility(double mobility)
Definition: SiliconProperties.cxx:206
InDet::SiliconProperties::setHoleHallMobility
void setHoleHallMobility(double mobility)
Definition: SiliconProperties.cxx:211
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
InDet::SiliconProperties::setElectronSaturationVelocity
void setElectronSaturationVelocity(double electronSaturationVelocity)
Definition: SiliconProperties.cxx:226
InDet::SiliconProperties::charge
static double charge(InDetDD::CarrierType carrier)
Definition: SiliconProperties.cxx:110
InDet::SiliconProperties::m_holeDiffusionConstant
double m_holeDiffusionConstant
Definition: SiliconProperties.h:81
InDet::SiliconProperties::setElectronHolePairsPerEnergy
void setElectronHolePairsPerEnergy(double ehPairsPerEnergy)
Definition: SiliconProperties.cxx:234
InDet::SiliconProperties::setConditions
void setConditions(double temperature, double electricField)
Definition: SiliconProperties.cxx:71