// Response class for set:ITS //
////////////////////////////////////////////////
+#include <TMath.h>
#include <TF1.h>
#include <TString.h>
#include "AliITSresponse.h"
ClassImp(AliITSresponse)
+
+//______________________________________________________________________
+AliITSresponse::AliITSresponse(){
+ // Default Constructor
+
+ fdv = 0.000375; // 300 microns and 80 volts.
+ fN = 0.0;
+ fT = 300.0;
+}
+//______________________________________________________________________
+AliITSresponse::AliITSresponse(Double_t thickness){
+ // Default Constructor
+
+ fdv = thickness/80.0; // 80 volts.
+ fN = 0.0;
+ fT = 300.0;
+}
+//______________________________________________________________________
+Double_t AliITSresponse::MobilityElectronSiEmp(){
+ // Computes the electron mobility in cm^2/volt-sec. Taken from SILVACO
+ // International ATLAS II, 2D Device Simulation Framework, User Manual
+ // Chapter 5 Equation 5-6. An empirical function for low-field mobiliity
+ // in silicon at different tempeatures.
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The Mobility of electrons in Si at a give temprature and impurity
+ // concentration. [cm^2/Volt-sec]
+ const Double_t m0 = 55.24; // cm^2/Volt-sec
+ const Double_t m1 = 7.12E+08; // cm^2 (degree K)^2.3 / Volt-sec
+ const Double_t N0 = 1.072E17; // #/cm^3
+ const Double_t T0 = 300.; // degree K.
+ const Double_t eT0 = -2.3; // Power of Temp.
+ const Double_t eT1 = -3.8; // Power of Temp.
+ const Double_t eN = 0.73; // Power of Dopent Consentrations
+ Double_t m;
+ Double_t T = fT,N = fN;
+
+ if(N<=0.0){ // Simple case.
+ if(T==300.) return 1350.0; // From Table 5-1 at consentration 1.0E14.
+ m = m1*TMath::Power(T,eT0);
+ return m;
+ } // if N<=0.0
+ m = m1*TMath::Power(T,eT0) - m0;
+ m /= 1.0 + TMath::Power(T/T0,eT1)*TMath::Power(N/N0,eN);
+ m += m0;
+ return m;
+}
+//______________________________________________________________________
+Double_t AliITSresponse::MobilityHoleSiEmp(){
+ // Computes the Hole mobility in cm^2/volt-sec. Taken from SILVACO
+ // International ATLAS II, 2D Device Simulation Framework, User Manual
+ // Chapter 5 Equation 5-7 An empirical function for low-field mobiliity
+ // in silicon at different tempeatures.
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The Mobility of Hole in Si at a give temprature and impurity
+ // concentration. [cm^2/Volt-sec]
+ const Double_t m0a = 49.74; // cm^2/Volt-sec
+ const Double_t m0b = 49.70; // cm^2/Volt-sec
+ const Double_t m1 = 1.35E+08; // cm^2 (degree K)^2.3 / Volt-sec
+ const Double_t N0 = 1.606E17; // #/cm^3
+ const Double_t T0 = 300.; // degree K.
+ const Double_t eT0 = -2.2; // Power of Temp.
+ const Double_t eT1 = -3.7; // Power of Temp.
+ const Double_t eN = 0.70; // Power of Dopent Consentrations
+ Double_t m;
+ Double_t T = fT,N = fN;
+
+ if(N<=0.0){ // Simple case.
+ if(T==300.) return 495.0; // From Table 5-1 at consentration 1.0E14.
+ m = m1*TMath::Power(T,eT0) + m0a-m0b;
+ return m;
+ } // if N<=0.0
+ m = m1*TMath::Power(T,eT0) - m0b;
+ m /= 1.0 + TMath::Power(T/T0,eT1)*TMath::Power(N/N0,eN);
+ m += m0a;
+ return m;
+}
+//______________________________________________________________________
+Double_t AliITSresponse::DiffusionCoefficientElectron(){
+ // Computes the Diffusion coefficient for electrons in cm^2/sec. Taken
+ // from SILVACO International ATLAS II, 2D Device Simulation Framework,
+ // User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
+ // coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The Diffusion Coefficient of electrons in Si at a give temprature
+ // and impurity concentration. [cm^2/sec]
+ // const Double_t kb = 1.3806503E-23; // Joules/degree K
+ // const Double_t qe = 1.60217646E-19; // Coulumbs.
+ const Double_t kbqe = 8.617342312E-5; // Volt/degree K
+ Double_t m = MobilityElectronSiEmp();
+ Double_t T = fT;
+
+ return m*kbqe*T; // [cm^2/sec]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::DiffusionCoefficientHole(){
+ // Computes the Diffusion coefficient for Holes in cm^2/sec. Taken
+ // from SILVACO International ATLAS II, 2D Device Simulation Framework,
+ // User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
+ // coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The Defusion Coefficient of Hole in Si at a give temprature and
+ // impurity concentration. [cm^2/sec]
+ // and impurity concentration. [cm^2/sec]
+ // const Double_t kb = 1.3806503E-23; // Joules/degree K
+ // const Double_t qe = 1.60217646E-19; // Coulumbs.
+ const Double_t kbqe = 8.617342312E-5; // Volt/degree K
+ Double_t m = MobilityHoleSiEmp();
+ Double_t T = fT;
+
+ return m*kbqe*T; // [cm^2/sec]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::SpeedElectron(){
+ // Computes the average speed for electrons in Si under the low-field
+ // approximation. [cm/sec].
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The speed the holes are traveling at due to the low field applied.
+ // [cm/sec]
+ Double_t m = MobilityElectronSiEmp();
+
+ return m/fdv; // [cm/sec]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::SpeedHole(){
+ // Computes the average speed for Holes in Si under the low-field
+ // approximation.[cm/sec].
+ // Inputs:
+ // none.
+ // Output:
+ // none.
+ // Return:
+ // The speed the holes are traveling at due to the low field applied.
+ // [cm/sec]
+ Double_t m = MobilityHoleSiEmp();
+
+ return m/fdv; // [cm/sec]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::SigmaDiffusion3D(Double_t l){
+ // Returns the Gaussian sigma^2 == <x^2+y^2+z^2> [cm^2] due to the defusion
+ // of electrons or holes through a distance l [cm] caused by an applied
+ // voltage v [volt] through a distance d [cm] in any material at a
+ // temperature T [degree K]. The sigma diffusion when expressed in terms
+ // of the distance over which the diffusion occures, l=time/speed, is
+ // independent of the mobility and therefore the properties of the
+ // material. The charge distributions is given by
+ // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 6Dt where D=mkT/e
+ // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
+ // charge. and vel=m*v/d. consiquently sigma^2=6kTdl/ev.
+ // Inputs:
+ // Double_t l Distance the charge has to travel.
+ // Output:
+ // none.
+ // Return:
+ // The Sigma due to the diffution of electrons. [cm]
+ const Double_t con = 5.17040258E-04; // == 6k/e [J/col or volts]
+
+ return TMath::Sqrt(con*fT*fdv*l); // [cm]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::SigmaDiffusion2D(Double_t l){
+ // Returns the Gaussian sigma^2 == <x^2+z^2> [cm^2] due to the defusion
+ // of electrons or holes through a distance l [cm] caused by an applied
+ // voltage v [volt] through a distance d [cm] in any material at a
+ // temperature T [degree K]. The sigma diffusion when expressed in terms
+ // of the distance over which the diffusion occures, l=time/speed, is
+ // independent of the mobility and therefore the properties of the
+ // material. The charge distributions is given by
+ // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <x^2+z^2> = 4Dt where D=mkT/e
+ // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
+ // charge. and vel=m*v/d. consiquently sigma^2=4kTdl/ev.
+ // Inputs:
+ // Double_t l Distance the charge has to travel.
+ // Output:
+ // none.
+ // Return:
+ // The Sigma due to the diffution of electrons. [cm]
+ const Double_t con = 3.446935053E-04; // == 4k/e [J/col or volts]
+
+ return TMath::Sqrt(con*fT*fdv*l); // [cm]
+}
+//______________________________________________________________________
+Double_t AliITSresponse::SigmaDiffusion1D(Double_t l){
+ // Returns the Gaussian sigma^2 == <x^2> [cm^2] due to the defusion
+ // of electrons or holes through a distance l [cm] caused by an applied
+ // voltage v [volt] through a distance d [cm] in any material at a
+ // temperature T [degree K]. The sigma diffusion when expressed in terms
+ // of the distance over which the diffusion occures, l=time/speed, is
+ // independent of the mobility and therefore the properties of the
+ // material. The charge distributions is given by
+ // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 2Dt where D=mkT/e
+ // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
+ // charge. and vel=m*v/d. consiquently sigma^2=2kTdl/ev.
+ // Inputs:
+ // Double_t l Distance the charge has to travel.
+ // Output:
+ // none.
+ // Return:
+ // The Sigma due to the diffution of electrons. [cm]
+ const Double_t con = 1.723467527E-04; // == 2k/e [J/col or volts]
+
+ return TMath::Sqrt(con*fT*fdv*l); // [cm]
+}