package mmc; /** * class contains functions necessary for calculation of ionization losses */ public class IonizContinuous extends Ionizationloss{ private Integral I; //----------------------------------------------------------------------------------------------------// /** * initializes an integral class separate from that in Propagate */ public IonizContinuous(Ionizationloss cros){ super(cros); I = new Integral(iromb, imaxs, iprec); } //----------------------------------------------------------------------------------------------------// /** * inelastic electron bremsstrahlung correction to dEdx - interface to Integral */ public double function(double v){ return v*ioniz.d2Ndvdx(v)*ioniz.inelCorrection(v); } //----------------------------------------------------------------------------------------------------// /* * density correction */ private double delta(){ double X; X=Math.log(beta*gamma)/Log10; if(X0) result*=K*p.c*p.c*m.ZA/(2*aux); else result=0; return cros.ci*(m.Ro*result+p.e*(I.integrateWithLog(vMin, vUp, this))); } //----------------------------------------------------------------------------------------------------// public Interpolate J; public boolean jt=false; /** * 1d parametrization - interface to Interpolate */ public double functionInt(double e){ p.setEnergy(e); return dEdx(); } }