1 /**************************************************************************
2 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 ///////////////////////////////////////////////////////////////////
20 // Implementation of the class to store the parameters used in //
21 // the simulation of SPD, SDD and SSD detectors //
22 // Origin: F.Prino, Torino, prino@to.infn.it //
24 ///////////////////////////////////////////////////////////////////
26 #include "AliITSSimuParam.h"
29 const Float_t AliITSSimuParam::fgkSPDBiasVoltageDefault = 18.182;
30 const Double_t AliITSSimuParam::fgkSPDThreshDefault = 3000.;
31 const Double_t AliITSSimuParam::fgkSPDSigmaDefault = 250.;
32 const TString AliITSSimuParam::fgkSPDCouplingOptDefault = "old";
33 const Double_t AliITSSimuParam::fgkSPDCouplColDefault = 0.;
34 const Double_t AliITSSimuParam::fgkSPDCouplRowDefault = 0.055;
35 const Float_t AliITSSimuParam::fgkSPDEccDiffDefault = 0.85;
36 const Float_t AliITSSimuParam::fgkSPDLorentzHoleWeightDefault = 1.0;
37 const Float_t AliITSSimuParam::fgkSDDDiffCoeffDefault = 3.23;
38 const Float_t AliITSSimuParam::fgkSDDDiffCoeff1Default = 30.;
39 const Float_t AliITSSimuParam::fgkSDDJitterErrorDefault = 20.; // 20 um from beam test 2001
40 const Float_t AliITSSimuParam::fgkSDDDynamicRangeDefault = 1400./2.5; // mV/MOhm = nA
41 const Int_t AliITSSimuParam::fgkSDDMaxAdcDefault = 1024;
42 const Float_t AliITSSimuParam::fgkSDDChargeLossDefault = 0.;
43 const Float_t AliITSSimuParam::fgkSDDTrigDelayDefault = 54.3;
44 const Double_t AliITSSimuParam::fgkSSDCouplingPRDefault = 0.01;
45 const Double_t AliITSSimuParam::fgkSSDCouplingPLDefault = 0.01;
46 const Double_t AliITSSimuParam::fgkSSDCouplingNRDefault = 0.01;
47 const Double_t AliITSSimuParam::fgkSSDCouplingNLDefault = 0.01;
48 const Int_t AliITSSimuParam::fgkSSDZSThresholdDefault = 3;
50 const Float_t AliITSSimuParam::fgkNsigmasDefault = 3.;
51 const Int_t AliITSSimuParam::fgkNcompsDefault = 121;
53 ClassImp(AliITSSimuParam)
55 //______________________________________________________________________
56 AliITSSimuParam::AliITSSimuParam():
60 //fSPDBiasVoltage(fgkSPDBiasVoltageDefault),
61 //fSPDThresh(fgkSPDThreshDefault),
62 //fSPDSigma(fgkSPDSigmaDefault),
64 fSPDCouplCol(fgkSPDCouplColDefault),
65 fSPDCouplRow(fgkSPDCouplRowDefault),
67 fSPDLorentzDrift(kTRUE),
68 fSPDLorentzHoleWeight(fgkSPDLorentzHoleWeightDefault),
69 fSPDAddNoisyFlag(kFALSE),
70 fSPDRemoveDeadFlag(kFALSE),
74 fSDDJitterError(fgkSDDJitterErrorDefault),
75 fSDDDynamicRange(fgkSDDDynamicRangeDefault),
77 fSDDChargeLoss(fgkSDDChargeLossDefault),
78 fSDDTrigDelay(fgkSDDTrigDelayDefault),
80 fSSDLorentzDrift(kTRUE),
85 fSSDZSThreshold(fgkSSDZSThresholdDefault),
86 fNsigmas(fgkNsigmasDefault),
87 fNcomps(fgkNcompsDefault),
92 // default constructor
93 SetSPDBiasVoltageAll(fgkSPDBiasVoltageDefault);
94 SetSPDThresholdsAll(fgkSPDThreshDefault,fgkSPDSigmaDefault);
97 SetDistanceOverVoltage();
98 SetSPDCouplingOption(fgkSPDCouplingOptDefault);
99 SetSPDSigmaDiffusionAsymmetry(fgkSPDEccDiffDefault);
101 SetSDDDiffCoeff(fgkSDDDiffCoeffDefault,fgkSDDDiffCoeff1Default);
102 SetSDDMaxAdc((Double_t)fgkSDDMaxAdcDefault);
103 SetSSDCouplings(fgkSSDCouplingPRDefault,fgkSSDCouplingPLDefault,fgkSSDCouplingNRDefault,fgkSSDCouplingNLDefault);
105 //______________________________________________________________________
106 AliITSSimuParam::AliITSSimuParam(const AliITSSimuParam &simpar):
108 fGeVcharge(simpar.fGeVcharge),
109 fDOverV(simpar.fDOverV),
110 //fSPDBiasVoltage(simpar.fSPDBiasVoltage),
111 //fSPDThresh(simpar.fSPDThresh),
112 //fSPDSigma(simpar.fSPDSigma),
113 fSPDCouplOpt(simpar.fSPDCouplOpt),
114 fSPDCouplCol(simpar.fSPDCouplCol),
115 fSPDCouplRow(simpar.fSPDCouplRow),
116 fSPDEccDiff(simpar.fSPDEccDiff),
117 fSPDLorentzDrift(simpar.fSPDLorentzDrift),
118 fSPDLorentzHoleWeight(simpar.fSPDLorentzHoleWeight),
119 fSPDAddNoisyFlag(simpar.fSPDAddNoisyFlag),
120 fSPDRemoveDeadFlag(simpar.fSPDRemoveDeadFlag),
121 fSDDElectronics(simpar.fSDDElectronics),
122 fSDDDiffCoeff(simpar.fSDDDiffCoeff),
123 fSDDDiffCoeff1(simpar.fSDDDiffCoeff1),
124 fSDDJitterError(simpar.fSDDJitterError),
125 fSDDDynamicRange(simpar.fSDDDynamicRange),
126 fSDDMaxAdc(simpar.fSDDMaxAdc),
127 fSDDChargeLoss(simpar.fSDDChargeLoss),
128 fSDDTrigDelay(simpar.fSDDTrigDelay),
129 fSDDRawFormat(simpar.fSDDRawFormat),
130 fSSDLorentzDrift(simpar.fSSDLorentzDrift),
131 fSSDCouplingPR(simpar.fSSDCouplingPR),
132 fSSDCouplingPL(simpar.fSSDCouplingPL),
133 fSSDCouplingNR(simpar.fSSDCouplingNR),
134 fSSDCouplingNL(simpar.fSSDCouplingNL),
135 fSSDZSThreshold(simpar.fSSDZSThreshold),
136 fNsigmas(simpar.fNsigmas),
137 fNcomps(simpar.fNcomps),
142 for (Int_t i=0;i<240;i++) {
143 fSPDBiasVoltage[i]=simpar.fSPDBiasVoltage[i];
144 fSPDThresh[i]=simpar.fSPDThresh[i];
145 fSPDSigma[i]=simpar.fSPDSigma[i];
146 fSPDNoise[i]=simpar.fSPDNoise[i];
147 fSPDBaseline[i]=simpar.fSPDBaseline[i];
151 //______________________________________________________________________
152 AliITSSimuParam& AliITSSimuParam::operator=(const AliITSSimuParam& source){
153 // Assignment operator.
154 this->~AliITSSimuParam();
155 new(this) AliITSSimuParam(source);
161 //______________________________________________________________________
162 AliITSSimuParam::~AliITSSimuParam() {
164 if(fGaus) delete fGaus;
166 //________________________________________________________________________
167 void AliITSSimuParam::SetNLookUp(Int_t p1){
168 // Set number of sigmas over which cluster disintegration is performed
170 if (fGaus) delete fGaus;
171 fGaus = new TArrayF(fNcomps+1);
172 for(Int_t i=0; i<=fNcomps; i++) {
173 Float_t x = -fNsigmas + (2.*i*fNsigmas)/(fNcomps-1);
174 (*fGaus)[i] = exp(-((x*x)/2));
177 //________________________________________________________________________
178 void AliITSSimuParam::PrintParameters() const{
179 printf("GeVToCharge = %G\n",fGeVcharge);
180 printf("DistanveOverVoltage = %f \n",fDOverV);
182 printf("===== SPD parameters =====\n");
183 printf("Bias Voltage = %f \n",fSPDBiasVoltage[0]);
184 printf("Threshold and sigma = %f %f\n",fSPDThresh[0],fSPDSigma[0]);
185 printf("Coupling Option = %s\n",fSPDCouplOpt.Data());
186 printf("Coupling value (column) = %f\n",fSPDCouplCol);
187 printf("Coupling value (row) = %f\n",fSPDCouplRow);
188 printf("Eccentricity in diffusion = %f\n",fSPDEccDiff);
189 printf("Flag to add Lorentz Drift = %d\n",fSPDLorentzDrift);
190 printf("Weight of Holes in Lor.Drift = %f\n",fSPDLorentzHoleWeight);
191 printf("Flag to add noisy = %d\n",fSPDAddNoisyFlag);
192 printf("Flag to remove dead = %d\n",fSPDRemoveDeadFlag);
194 printf("===== SDD parameters =====\n");
195 printf("Electronic chips = %d\n",fSDDElectronics);
196 printf("Diffusion Coefficients = %f %f\n",fSDDDiffCoeff,fSDDDiffCoeff1);
197 printf("Jitter Error = %f um\n",fSDDJitterError);
198 printf("Dynamic Range = %f\n",fSDDDynamicRange);
199 printf("Max. ADC = %f\n",fSDDMaxAdc);
200 printf("Charge Loss = %f\n",fSDDChargeLoss);
201 printf("Trigger Delay (ns) = %f\n",fSDDTrigDelay);
202 printf("Raw Data Format = %d\n",fSDDRawFormat);
204 printf("===== SSD parameters =====\n");
205 printf("Flag to add Lorentz Drift = %d\n",fSSDLorentzDrift);
206 printf("Coupling PR = %f\n",fSSDCouplingPR);
207 printf("Coupling PL = %f\n",fSSDCouplingPL);
208 printf("Coupling NR = %f\n",fSSDCouplingNR);
209 printf("Coupling NL = %f\n",fSSDCouplingNL);
210 printf("Zero Supp threshold = %d\n",fSSDZSThreshold);
212 //______________________________________________________________________
213 Double_t AliITSSimuParam::MobilityElectronSiEmp() const {
214 // Computes the electron mobility in cm^2/volt-sec. Taken from SILVACO
215 // International ATLAS II, 2D Device Simulation Framework, User Manual
216 // Chapter 5 Equation 5-6. An empirical function for low-field mobiliity
217 // in silicon at different tempeatures.
223 // The Mobility of electrons in Si at a give temprature and impurity
224 // concentration. [cm^2/Volt-sec]
225 const Double_t km0 = 55.24; // cm^2/Volt-sec
226 const Double_t km1 = 7.12E+08; // cm^2 (degree K)^2.3 / Volt-sec
227 const Double_t kN0 = 1.072E17; // #/cm^3
228 const Double_t kT0 = 300.; // degree K.
229 const Double_t keT0 = -2.3; // Power of Temp.
230 const Double_t keT1 = -3.8; // Power of Temp.
231 const Double_t keN = 0.73; // Power of Dopent Consentrations
233 Double_t tT = fT,nN = fN;
235 if(nN<=0.0){ // Simple case.
236 if(tT==300.) return 1350.0; // From Table 5-1 at consentration 1.0E14.
237 m = km1*TMath::Power(tT,keT0);
240 m = km1*TMath::Power(tT,keT0) - km0;
241 m /= 1.0 + TMath::Power(tT/kT0,keT1)*TMath::Power(nN/kN0,keN);
245 //______________________________________________________________________
246 Double_t AliITSSimuParam::MobilityHoleSiEmp() const {
247 // Computes the Hole mobility in cm^2/volt-sec. Taken from SILVACO
248 // International ATLAS II, 2D Device Simulation Framework, User Manual
249 // Chapter 5 Equation 5-7 An empirical function for low-field mobiliity
250 // in silicon at different tempeatures.
256 // The Mobility of Hole in Si at a give temprature and impurity
257 // concentration. [cm^2/Volt-sec]
258 const Double_t km0a = 49.74; // cm^2/Volt-sec
259 const Double_t km0b = 49.70; // cm^2/Volt-sec
260 const Double_t km1 = 1.35E+08; // cm^2 (degree K)^2.3 / Volt-sec
261 const Double_t kN0 = 1.606E17; // #/cm^3
262 const Double_t kT0 = 300.; // degree K.
263 const Double_t keT0 = -2.2; // Power of Temp.
264 const Double_t keT1 = -3.7; // Power of Temp.
265 const Double_t keN = 0.70; // Power of Dopent Consentrations
267 Double_t tT = fT,nN = fN;
269 if(nN<=0.0){ // Simple case.
270 if(tT==300.) return 495.0; // From Table 5-1 at consentration 1.0E14.
271 m = km1*TMath::Power(tT,keT0) + km0a-km0b;
274 m = km1*TMath::Power(tT,keT0) - km0b;
275 m /= 1.0 + TMath::Power(tT/kT0,keT1)*TMath::Power(nN/kN0,keN);
279 //______________________________________________________________________
280 Double_t AliITSSimuParam::DiffusionCoefficientElectron() const {
281 // Computes the Diffusion coefficient for electrons in cm^2/sec. Taken
282 // from SILVACO International ATLAS II, 2D Device Simulation Framework,
283 // User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
284 // coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
290 // The Diffusion Coefficient of electrons in Si at a give temprature
291 // and impurity concentration. [cm^2/sec]
292 // const Double_t kb = 1.3806503E-23; // Joules/degree K
293 // const Double_t qe = 1.60217646E-19; // Coulumbs.
294 const Double_t kbqe = 8.617342312E-5; // Volt/degree K
295 Double_t m = MobilityElectronSiEmp();
298 return m*kbqe*tT; // [cm^2/sec]
300 //______________________________________________________________________
301 Double_t AliITSSimuParam::DiffusionCoefficientHole() const {
302 // Computes the Diffusion coefficient for Holes in cm^2/sec. Taken
303 // from SILVACO International ATLAS II, 2D Device Simulation Framework,
304 // User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
305 // coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
311 // The Defusion Coefficient of Hole in Si at a give temprature and
312 // impurity concentration. [cm^2/sec]
313 // and impurity concentration. [cm^2/sec]
314 // const Double_t kb = 1.3806503E-23; // Joules/degree K
315 // const Double_t qe = 1.60217646E-19; // Coulumbs.
316 const Double_t kbqe = 8.617342312E-5; // Volt/degree K
317 Double_t m = MobilityHoleSiEmp();
320 return m*kbqe*tT; // [cm^2/sec]
322 //______________________________________________________________________
323 Double_t AliITSSimuParam::LorentzAngleHole(Double_t B) const {
324 // Computes the Lorentz angle for electrons in Si
325 // Input: magnetic Field in KGauss
326 // Output: Lorentz angle in radians (positive if Bz is positive)
327 // Main Reference: NIM A 497 (2003) 389–396.
328 // "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.
330 const Double_t krH=0.70; // Hall scattering factor for Hole
331 const Double_t kT0 = 300.; // reference Temperature (degree K).
332 const Double_t kmulow0 = 470.5; // cm^2/Volt-sec
333 const Double_t keT0 = -2.5; // Power of Temp.
334 const Double_t beta0 = 1.213; // beta coeff. at T0=300K
335 const Double_t keT1 = 0.17; // Power of Temp. for beta
336 const Double_t kvsat0 = 8.37E+06; // saturated velocity at T0=300K (cm/sec)
337 const Double_t keT2 = 0.52; // Power of Temp. for vsat
339 Double_t eE= 1./fDOverV;
340 Double_t muLow=kmulow0*TMath::Power(tT/kT0,keT0);
341 Double_t beta=beta0*TMath::Power(tT/kT0,keT1);
342 Double_t vsat=kvsat0*TMath::Power(tT/kT0,keT2);
343 Double_t mu=muLow/TMath::Power(1+TMath::Power(muLow*eE/vsat,beta),1/beta);
344 Double_t angle=TMath::ATan(krH*mu*B*1.E-05); // Conversion Factor
347 //______________________________________________________________________
348 Double_t AliITSSimuParam::LorentzAngleElectron(Double_t B) const {
349 // Computes the Lorentz angle for electrons in Si
350 // Input: magnetic Field in KGauss
351 // Output: Lorentz angle in radians (positive if Bz is positive)
352 // Main Reference: NIM A 497 (2003) 389–396.
353 // "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.
355 const Double_t krH=1.15; // Hall scattering factor for Electron
356 const Double_t kT0 = 300.; // reference Temperature (degree K).
357 const Double_t kmulow0 = 1417.0; // cm^2/Volt-sec
358 const Double_t keT0 = -2.2; // Power of Temp.
359 const Double_t beta0 = 1.109; // beta coeff. at T0=300K
360 const Double_t keT1 = 0.66; // Power of Temp. for beta
361 const Double_t kvsat0 = 1.07E+07; // saturated velocity at T0=300K (cm/sec)
362 const Double_t keT2 = 0.87; // Power of Temp. for vsat
364 Double_t eE= 1./fDOverV;
365 Double_t muLow=kmulow0*TMath::Power(tT/kT0,keT0);
366 Double_t beta=beta0*TMath::Power(tT/kT0,keT1);
367 Double_t vsat=kvsat0*TMath::Power(tT/kT0,keT2);
368 Double_t mu=muLow/TMath::Power(1+TMath::Power(muLow*eE/vsat,beta),1/beta);
369 Double_t angle=TMath::ATan(krH*mu*B*1.E-05);
372 //______________________________________________________________________
373 Double_t AliITSSimuParam::SpeedElectron() const {
374 // Computes the average speed for electrons in Si under the low-field
375 // approximation. [cm/sec].
381 // The speed the holes are traveling at due to the low field applied.
383 Double_t m = MobilityElectronSiEmp();
385 return m/fDOverV; // [cm/sec]
387 //______________________________________________________________________
388 Double_t AliITSSimuParam::SpeedHole() const {
389 // Computes the average speed for Holes in Si under the low-field
390 // approximation.[cm/sec].
396 // The speed the holes are traveling at due to the low field applied.
398 Double_t m = MobilityHoleSiEmp();
400 return m/fDOverV; // [cm/sec]
402 //______________________________________________________________________
403 Double_t AliITSSimuParam::SigmaDiffusion3D(Double_t l) const {
404 // Returns the Gaussian sigma^2 == <x^2+y^2+z^2> [cm^2] due to the
405 // defusion of electrons or holes through a distance l [cm] caused
406 // by an applied voltage v [volt] through a distance d [cm] in any
407 // material at a temperature T [degree K]. The sigma diffusion when
408 // expressed in terms of the distance over which the diffusion
409 // occures, l=time/speed, is independent of the mobility and therefore
410 // the properties of the material. The charge distributions is given by
411 // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 6Dt where D=mkT/e
412 // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
413 // charge. and vel=m*v/d. consiquently sigma^2=6kTdl/ev.
415 // Double_t l Distance the charge has to travel.
419 // The Sigma due to the diffution of electrons. [cm]
420 const Double_t kcon = 5.17040258E-04; // == 6k/e [J/col or volts]
422 return TMath::Sqrt(kcon*fT*fDOverV*l); // [cm]
424 //______________________________________________________________________
425 Double_t AliITSSimuParam::SigmaDiffusion2D(Double_t l) const {
426 // Returns the Gaussian sigma^2 == <x^2+z^2> [cm^2] due to the defusion
427 // of electrons or holes through a distance l [cm] caused by an applied
428 // voltage v [volt] through a distance d [cm] in any material at a
429 // temperature T [degree K]. The sigma diffusion when expressed in terms
430 // of the distance over which the diffusion occures, l=time/speed, is
431 // independent of the mobility and therefore the properties of the
432 // material. The charge distributions is given by
433 // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <x^2+z^2> = 4Dt where D=mkT/e
434 // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
435 // charge. and vel=m*v/d. consiquently sigma^2=4kTdl/ev.
437 // Double_t l Distance the charge has to travel.
441 // The Sigma due to the diffution of electrons. [cm]
442 const Double_t kcon = 3.446935053E-04; // == 4k/e [J/col or volts]
444 return TMath::Sqrt(kcon*fT*fDOverV*l); // [cm]
446 //______________________________________________________________________
447 Double_t AliITSSimuParam::SigmaDiffusion1D(Double_t l) const {
448 // Returns the Gaussian sigma^2 == <x^2> [cm^2] due to the defusion
449 // of electrons or holes through a distance l [cm] caused by an applied
450 // voltage v [volt] through a distance d [cm] in any material at a
451 // temperature T [degree K]. The sigma diffusion when expressed in terms
452 // of the distance over which the diffusion occures, l=time/speed, is
453 // independent of the mobility and therefore the properties of the
454 // material. The charge distributions is given by
455 // n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 2Dt where D=mkT/e
456 // (m==mobility, k==Boltzman's constant, T==temparature, e==electric
457 // charge. and vel=m*v/d. consiquently sigma^2=2kTdl/ev.
459 // Double_t l Distance the charge has to travel.
463 // The Sigma due to the diffution of electrons. [cm]
464 const Double_t kcon = 1.723467527E-04; // == 2k/e [J/col or volts]
466 return TMath::Sqrt(kcon*fT*fDOverV*l); // [cm]
468 //----------------------------------------------------------------------
469 Double_t AliITSSimuParam::DepletedRegionThicknessA(Double_t dopCons,
472 Double_t voltBuiltIn)const{
473 // Computes the thickness of the depleted region in Si due to the
474 // application of an external bias voltage. From the Particle Data
475 // Book, 28.8 Silicon semiconductor detectors equation 28.19 (2004)
476 // Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
477 // July 15 2004, ISSN 0370-2693 page 263. First equation.
479 // Double_t dopCons "N" doping concentration
480 // Double_t voltage "V" external bias voltage
481 // Double_t elecCharge "e" electronic charge
482 // Double_t voltBuiltIn=0.5 "V_bi" "built-in" Voltage (~0.5V for
483 // resistivities typically used in detectors)
487 // The thickness of the depleted region
489 return TMath::Sqrt(2.0*(voltage+voltBuiltIn)/(dopCons*elecCharge));
491 //----------------------------------------------------------------------
492 Double_t AliITSSimuParam::DepletedRegionThicknessB(Double_t resist,
495 Double_t voltBuiltIn,
496 Double_t dielConst)const{
497 // Computes the thickness of the depleted region in Si due to the
498 // application of an external bias voltage. From the Particle Data
499 // Book, 28.8 Silicon semiconductor detectors equation 28.19 (2004)
500 // Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
501 // July 15 2004, ISSN 0370-2693 page 263. Second Equation.
503 // Double_t resist "rho" resistivity (typically 1-10 kOhm cm)
504 // Double_t voltage "V" external bias voltage
505 // Double_t mobility "mu" charge carrier mobility
506 // (electons 1350, holes 450 cm^2/V/s)
507 // Double_t voltBuiltIn=0.5 "V_bi" "built-in" Voltage (~0.5V for
508 // resistivities typically used in detectors)
509 // Double_t dielConst=1.E-12 "epsilon" dielectric constant = 11.9 *
510 // (permittivity of free space) or ~ 1 pF/cm
514 // The thickness of the depleted region
516 return TMath::Sqrt(2.8*resist*mobility*dielConst*(voltage+voltBuiltIn));
518 //----------------------------------------------------------------------
519 Double_t AliITSSimuParam::ReverseBiasCurrent(Double_t temp,
520 Double_t revBiasCurT1,
522 Double_t energy)const{
523 // Computes the temperature dependance of the reverse bias current
524 // of Si detectors. From the Particle Data
525 // Book, 28.8 Silicon semiconductor detectors equation 28.21 (2004)
526 // Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
527 // July 15 2004, ISSN 0370-2693 page 263.
529 // Double_t temp The temperature at which the current is wanted
530 // Double_t revBiasCurT1 The reference bias current at temp T1
531 // Double_t tempT1 The temperature correstponding to revBiasCurT1
532 // Double_t energy=1.2 Some energy [eV]
536 // The reverse bias current at the tempeature temp.
537 const Double_t kBoltz = 8.617343E-5; //[eV/K]
539 return revBiasCurT1*(temp*temp/(tempT1*tempT1))*
540 TMath::Exp(-0.5*energy*(tempT1-temp)/(kBoltz*tempT1*temp));
542 //______________________________________________________________________
543 void AliITSSimuParam::SPDThresholds(const Int_t mod, Double_t& thresh, Double_t& sigma) const {
544 if(mod<0 || mod>239) {
549 thresh=fSPDThresh[mod];
550 sigma=fSPDSigma[mod];
553 //_______________________________________________________________________
554 void AliITSSimuParam::SPDNoise(const Int_t mod,Double_t &noise, Double_t &baseline) const {
555 if(mod<0 || mod>239) {
560 noise=fSPDNoise[mod];
561 baseline=fSPDBaseline[mod];