hep.aida.ref.pdf
Class NonParametricPdf
- java.lang.Object
-
- hep.aida.ref.pdf.Variable
-
- hep.aida.ref.pdf.Function
-
- hep.aida.ref.pdf.NonParametricPdf
-
- All Implemented Interfaces:
- IFunction, IModelFunction, FunctionDispatcher, HasName, HasUnits, HasValue, VariableListener
public class NonParametricPdf extends Function
A Pdf builtg from a given data set. The Pdf is evaluated using the idea of adaptive kernel estimation presented at http://www-wisconsin.cern.ch/~cranmer/keys.html Mirroring is to be performed when distributions don't naturally taper to zero on one or both sides. With abrupt interruptions of the distribution there is a leak of probability due to the way the kernel is built (gaussian). By mirroring the distribution on the side of the abrupt edge the loss of probability is minimized.
-
-
Field Summary
Fields Modifier and Type Field and Description static intMIRROR_BOTHstatic intMIRROR_LEFTstatic intMIRROR_RIGHTstatic intNO_MIRROR
-
Constructor Summary
Constructors Constructor and Description NonParametricPdf(java.lang.String name, FitData data, Dependent x)NonParametricPdf(java.lang.String name, FitData data, Dependent x, int mirrorCode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doubleevaluateAnalyticalNormalization(Dependent dep)doublefunctionValue()booleanhasAnalyticalNormalization(Dependent dep)FIXME Should the normalization be left to 1? or should we evaluate it numerically? The problem is the leaking of probability at the edge.booleanhasAnalyticalVariableGradient(Variable var)To be overwritten by classes extending Function.voidvariableChanged(Variable var)This method is invoked when a variable in the function has changed its value.-
Methods inherited from class hep.aida.ref.pdf.Function
addFunctionListener, addVariable, addVariables, annotation, codeletString, dimension, evaluateAnalyticalVariableGradient, excludeNormalizationAll, functionMaxValue, functionValue, getDependent, getDependent, getNormalizationParameter, getParameter, getParameter, gradient, gradient, includeNormalizationAll, indexOfParameter, isComposite, isEqual, isNormalized, normalizationParameter, normalizationRange, normalizationRangeChanged, normalize, numberOfDependents, numberOfParameters, parameter, parameterGradient, parameterGradient, parameterNames, parameters, providesGradient, providesGradientWithRespectToVariable, providesNormalization, providesParameterGradient, removeFunctionListener, setCodeletString, setNormalizationParamter, setParameter, setParameters, setTitle, setValue, title, value, value, variableChangedName, variableChangedRange, variableChangedUnits, variableChangedValue, variableChangingName, variableChangingUnits, variableChangingValue, variableName, variableNames
-
Methods inherited from class hep.aida.ref.pdf.Variable
addVariableListener, name, removeVariableListener, setName, setUnits, type, units
-
-
-
-
Field Detail
-
NO_MIRROR
public static final int NO_MIRROR
- See Also:
- Constant Field Values
-
MIRROR_LEFT
public static final int MIRROR_LEFT
- See Also:
- Constant Field Values
-
MIRROR_RIGHT
public static final int MIRROR_RIGHT
- See Also:
- Constant Field Values
-
MIRROR_BOTH
public static final int MIRROR_BOTH
- See Also:
- Constant Field Values
-
-
Method Detail
-
variableChanged
public void variableChanged(Variable var)
Description copied from class:FunctionThis method is invoked when a variable in the function has changed its value.- Overrides:
variableChangedin classFunction
-
functionValue
public double functionValue()
- Overrides:
functionValuein classFunction
-
hasAnalyticalVariableGradient
public boolean hasAnalyticalVariableGradient(Variable var)
Description copied from class:FunctionTo be overwritten by classes extending Function. This method is used internally by this class to determine if a function has can provide an analytical gradient with respect to a given Variable.- Overrides:
hasAnalyticalVariableGradientin classFunction
-
hasAnalyticalNormalization
public boolean hasAnalyticalNormalization(Dependent dep)
FIXME Should the normalization be left to 1? or should we evaluate it numerically? The problem is the leaking of probability at the edge.- Overrides:
hasAnalyticalNormalizationin classFunction
-
evaluateAnalyticalNormalization
public double evaluateAnalyticalNormalization(Dependent dep)
- Overrides:
evaluateAnalyticalNormalizationin classFunction
-
-
DMelt 3.0 © DataMelt by jWork.ORG