spis.Surf.InteractModel
Class RangeFunction

java.lang.Object
  extended byspis.Surf.InteractModel.FunctionOfParticle
      extended byspis.Surf.InteractModel.FunctionOfParticleE
          extended byspis.Surf.InteractModel.RangeFunction
All Implemented Interfaces:
ScalFunctionOf4Scal, ScalFunctionOfScal
Direct Known Subclasses:
DoublePowerLawRangeFunction, ProtonRangeFunction1

public abstract class RangeFunction
extends FunctionOfParticleE

Class Name : RangeFunction
Project ref : SPIS project
File name : RangeFunction.java
File type : class
Copyright : ONERA, 2 Av. E. Belin, 31055 Toulouse cedex, France http://www.onecert.fr
Status : under development
Creation : May 3, 2004
Modification :

Description : Computes the range function R(E), and its derivatives.

Versions and anomalies correction :

Version numberAuthor (name, e-mail) Corrections/Modifications
0.1 JF Roussel, roussel@onecert.frCreation


Version:
0.1
Author:
JF Roussel

Field Summary
 
Fields inherited from class spis.Surf.InteractModel.FunctionOfParticle
defaultParamsId, materialRange, modelId, particleId, partTable
 
Constructor Summary
RangeFunction(int materialRange, int modelId, int particleId, PartTable partTable)
           
 
Method Summary
protected abstract  float compute(float E, int paramsId)
          Returns the range as a function of energy.
abstract  float computeDeriv(float E)
          returns dR/dE as a function of energy
abstract  float computeDeriv(float E, float matModId, float matId, float partId)
          returns dR/dE as a function of energy, depending on material Id (it is used for approximata dose profile computation close to the surface, in particular for secondary emission)
abstract  float computeSecondDeriv(float E)
          returns d2R/dE2 as a function of energy
abstract  float computeSecondDeriv(float E, float matModId, float matId, float partId)
          returns d2R/dE2 as a function of energy, depending on material Id (it may be used for approximata dose profile computation close to the surface, in particular for secondary emission)
 
Methods inherited from class spis.Surf.InteractModel.FunctionOfParticleE
compute, compute, compute, compute
 
Methods inherited from class spis.Surf.InteractModel.FunctionOfParticle
getDefaultParamsId, getMaterialRange, getModelId, getParticleId, getPartTable, selectParamSet, setDefaultParams, setDefaultParamsId, setMaterialRange, setModelId, setParticleId, setPartTable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RangeFunction

public RangeFunction(int materialRange,
                     int modelId,
                     int particleId,
                     PartTable partTable)
Parameters:
partTable -
Method Detail

compute

protected abstract float compute(float E,
                                 int paramsId)
Returns the range as a function of energy. May not always be needed, since material-indexed function should be used in principle (may even be forbidden => throws exception).

Specified by:
compute in class FunctionOfParticleE
Parameters:
E - particle energy [eV] (and not keV as often)
paramsId - Id of the parameter set to be used (i.e. material Id)
Returns:
range [m] (and not Angstrom as often)
See Also:
FunctionOfParticleE.compute(float, float, float, float)

computeDeriv

public abstract float computeDeriv(float E,
                                   float matModId,
                                   float matId,
                                   float partId)
returns dR/dE as a function of energy, depending on material Id (it is used for approximata dose profile computation close to the surface, in particular for secondary emission)

Parameters:
E - particle energy [eV] (and not keV as often)
matModId -
matId -
partId -
Returns:
dR/dE [m/eV]

computeDeriv

public abstract float computeDeriv(float E)
returns dR/dE as a function of energy

Parameters:
E - particle energy [eV] (and not keV as often)
Returns:
dR/dE [m/eV]

computeSecondDeriv

public abstract float computeSecondDeriv(float E,
                                         float matModId,
                                         float matId,
                                         float partId)
returns d2R/dE2 as a function of energy, depending on material Id (it may be used for approximata dose profile computation close to the surface, in particular for secondary emission)

Parameters:
E - particle energy [eV] (and not keV as often)
matModId -
matId -
partId -
Returns:
d2R/dE2 [m/eV2]

computeSecondDeriv

public abstract float computeSecondDeriv(float E)
returns d2R/dE2 as a function of energy

Parameters:
E - particle energy [eV] (and not keV as often)
Returns:
d2R/dE2 [m/eV2]