Package pulse.problem.laser
Class ExponentiallyModifiedGaussian
- java.lang.Object
-
- pulse.util.UpwardsNavigable
-
- pulse.util.Group
-
- pulse.util.Accessible
-
- pulse.util.PropertyHolder
-
- pulse.problem.laser.PulseTemporalShape
-
- pulse.problem.laser.ExponentiallyModifiedGaussian
-
- All Implemented Interfaces:
Serializable,Descriptive,Reflexive
public class ExponentiallyModifiedGaussian extends PulseTemporalShape
Represents the exponentially modified Gaussian function, which is given by three independent parameters (μ, σ and λ).- See Also:
- Wikipedia page, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ExponentiallyModifiedGaussian()Creates an exponentially modified Gaussian with the default parameter values.ExponentiallyModifiedGaussian(ExponentiallyModifiedGaussian another)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PulseTemporalShapecopy()doubleevaluateAt(double time)Evaluates the laser power function.NumericPropertygetLambda()NumericPropertygetMu()intgetRequiredDiscretisation()NumericPropertygetSigma()Set<NumericPropertyKeyword>listedKeywords()By default, this will search the children of thisPropertyHolderto collect the types of their listed numeric parameters recursively.voidset(NumericPropertyKeyword type, NumericProperty property)An abstract method, which must be overriden to gain access over setting the values of all relevant (selected by the programmer)NumericProperties in subclasses ofAccessible.voidsetLambda(NumericProperty p)Sets theSKEW_LAMBDAparametervoidsetMu(NumericProperty p)Sets theSKEW_MUparametervoidsetSigma(NumericProperty p)Sets theSKEW_SIGMAparameter-
Methods inherited from class pulse.problem.laser.PulseTemporalShape
getPrefix, getPulseWidth, init, setPulseWidth, toString
-
Methods inherited from class pulse.util.PropertyHolder
addListener, areDetailsHidden, data, describe, firePropertyChanged, getDescriptor, getListeners, ignoreSiblings, initListeners, isListedNumericType, isListedParameter, listedTypes, numericData, parameterListChanged, removeListeners, setPrefix, updateProperties, updateProperty
-
Methods inherited from class pulse.util.Accessible
accessibleChildren, genericProperties, genericProperty, numericProperties, numericProperty, property, update, update
-
Methods inherited from class pulse.util.UpwardsNavigable
addHierarchyListener, getHierarchyListeners, getParent, identify, removeHierarchyListener, removeHierarchyListeners, setParent, specificAncestor, tellParent
-
-
-
-
Constructor Detail
-
ExponentiallyModifiedGaussian
public ExponentiallyModifiedGaussian()
Creates an exponentially modified Gaussian with the default parameter values.
-
ExponentiallyModifiedGaussian
public ExponentiallyModifiedGaussian(ExponentiallyModifiedGaussian another)
-
-
Method Detail
-
evaluateAt
public double evaluateAt(double time)
Evaluates the laser power function. The error function is calculated using the ApacheCommonsMath library tools.- Specified by:
evaluateAtin classPulseTemporalShape- Parameters:
time- is measured from the 'start' of laser pulse- Returns:
- a double value, representing the pulse function at
time - See Also:
- https://tinyurl.com/ExpModifiedGaussian
-
listedKeywords
public Set<NumericPropertyKeyword> listedKeywords()
Description copied from class:PropertyHolderBy default, this will search the children of this
PropertyHolderto collect the types of their listed numeric parameters recursively.- Overrides:
listedKeywordsin classPropertyHolder- Returns:
- a set of
NumericPropertyKeywordinstances, which have been explicitly marked as a listed parameter for thisPropertyHolder. - See Also:
pulse.properties.NumericPropertyKeyword.SKEW_MU,pulse.properties.NumericPropertyKeyword.SKEW_LAMBDA,pulse.properties.NumericPropertyKeyword.SKEW_SIGMA
-
getMu
public NumericProperty getMu()
- Returns:
- the μ parameter
-
getSigma
public NumericProperty getSigma()
- Returns:
- the σ parameter
-
getLambda
public NumericProperty getLambda()
- Returns:
- the λ parameter
-
setLambda
public void setLambda(NumericProperty p)
Sets theSKEW_LAMBDAparameter- Parameters:
p- the λ parameter
-
setMu
public void setMu(NumericProperty p)
Sets theSKEW_MUparameter- Parameters:
p- the μ parameter
-
setSigma
public void setSigma(NumericProperty p)
Sets theSKEW_SIGMAparameter- Parameters:
p- the σ parameter
-
set
public void set(NumericPropertyKeyword type, NumericProperty property)
Description copied from class:AccessibleAn abstract method, which must be overriden to gain access over setting the values of all relevant (selected by the programmer)
NumericProperties in subclasses ofAccessible. Typically this involves aswitchstatement that goes through the different options for thetypeand invokes differentset(...)methods to update the matchingNumericPropertywithproperty.- Specified by:
setin classAccessible- Parameters:
type- the type, which must be equal by definition toproperty.getType().property- the property, which contains new information.
-
copy
public PulseTemporalShape copy()
- Specified by:
copyin classPulseTemporalShape
-
getRequiredDiscretisation
public int getRequiredDiscretisation()
- Specified by:
getRequiredDiscretisationin classPulseTemporalShape
-
-