In [207]:
import math,numpy,pylab; import array
import math,numpy,pylab; import array
%pylab inline
Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].
For more information, type 'help(pylab)'.

Define some parameters:

• modulethickness=300E06m
• chargemobility=310cm2V.s
• chargeDistributionRMS=6.5E10
• VDepl=170V
• VAppl=300V
• CboltzoverE=1.38E23/1.6E19
• Temperature=273K
• noDiffusion=1.0E03
In [208]:
modulethickness=300E-6 if toPlots!="modulethickness" else numpy.asarray([300E-6,500E-6]);

modulethickness; chargemobility;Vdep;Vappl;Temperature;
toPlots="Temperature";toPlot=Temperature;
modulethickness=300E-6 if toPlots!="modulethickness" else numpy.asarray([300E-6,500E-6]);
chargemobility=310    if toPlots!="chargemobility" else  numpy.asarray([310,350]);
Vdep=170              if toPlots!="Vdep" else numpy.asarray(numpy.arange(120,250,10));
Vappl=300             if toPlots!="Vappl" else numpy.asarray(numpy.arange(250,350,10));
Temperature= 273.0   if toPlots!="Temperature" else numpy.asarray([200,273,293]);
chargeDistributionRMS=6.5e-10;
C_boltz_over_E=1.38E-23/1.6E-19;

noDiffusion=1.0e-03;
• energyDeposit_z is z position of hit, depend on the hit, typical value ~
In [209]:
energyDeposit_z=30E-6;

energyDeposit_z=30E-6;

compute normalization time

tNorm=modulethickness2(2VDeplchargemobility)

In [210]:
tnorm=modulethickness**2/(2*Vdep*chargemobility)

tnorm=modulethickness**2/(2*Vdep*chargemobility)
print tnorm;
8.53889943074e-13

depth=modulethickness2energyDepositz
thicknessFraction=depthmoduleThickness

In [211]:
print "thicknessFraction=",thicknessFraction

depth=modulethickness/2-energyDeposit_z;
thicknessFraction=depth/modulethickness;
print "depth=",depth
print "thicknessFraction=",thicknessFraction
depth= 0.00012
thicknessFraction= 0.4
• compute drift Time
driftTime=tNormlog(12VDeplVDepl+VApplthicknessFraction)+chargeDistributionRMS
In [212]:
driftTime= -tnorm*math.log(1-(2.0*Vdep)/(Vdep+Vappl)*thicknessFraction)+chargeDistributionRMS

print "log input value=",(1-(2.0*Vdep)/(Vdep+Vappl)*thicknessFraction)
driftTime= -tnorm*math.log(1-(2.0*Vdep)/(Vdep+Vappl)*thicknessFraction)+chargeDistributionRMS
print "drift Time=",driftTime
log input value= 0.710638297872
drift Time= 6.50291681719e-10
In [213]:
diffusionConstant=C_boltz_over_E*chargemobility*Temperature*noDiffusion

diffusionConstant=C_boltz_over_E*chargemobility*Temperature*noDiffusion
print "diffusionConstant=", diffusionConstant
diffusionConstant= [ 0.0053475   0.00729934  0.00783409]
In [214]:
spread=[math.sqrt(2.0*diffusionConstant[i]*driftTime) for i in range(len(diffusionConstant))]

spread=[math.sqrt(2.0*diffusionConstant[i]*driftTime) for i in range(len(diffusionConstant))]
print "spread=", spread
spread= [2.637208663716611e-06, 3.081135653718506e-06, 3.192003112500607e-06]
In [215]:
plt.xlabel(toPlots);plt.ylabel('charge spread')

#pylab.axis([300,380,3.05e-06,3.30e-06]);
plt.xlabel(toPlots);plt.ylabel('charge spread')
pylab.plot(toPlot,spread,"ro")
Out[215]:
[<matplotlib.lines.Line2D at 0x6390750>]
In [215]: