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=30E-6;
tnorm=modulethickness**2/(2*Vdep*chargemobility)
print tnorm;
depth=modulethickness/2-energyDeposit_z;
thicknessFraction=depth/modulethickness;
print "depth=",depth
print "thicknessFraction=",thicknessFraction
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
diffusionConstant=C_boltz_over_E*chargemobility*Temperature*noDiffusion
print "diffusionConstant=", diffusionConstant
spread=[math.sqrt(2.0*diffusionConstant[i]*driftTime) for i in range(len(diffusionConstant))]
print "spread=", spread
#pylab.axis([300,380,3.05e-06,3.30e-06]);
plt.xlabel(toPlots);plt.ylabel('charge spread')
pylab.plot(toPlot,spread,"ro")