package hep.aida.ref.pdf;
import hep.aida.IFitData;
import hep.aida.ref.fitter.fitdata.FitData;
/**
* A Dependent. Dependents take their values from a data set.
*
* @author The FreeHEP team @ SLAC.
*/
public class Dependent extends Variable implements RangeSetListener {
private double value;
private RangeSet range;
private FitData data = null;
public Dependent(String name, double lowerEdge, double upperEdge) {
super(name, Variable.DEPENDENT);
range = new RangeSet(lowerEdge, upperEdge);
}
public double value() {
return value;
}
protected void setVariableValue(double value) {
if ( range.isInRange(value) )
this.value = value;
else
throw new IllegalArgumentException("Value "+value+" is out of the current range.");
}
public RangeSet range() {
return range;
}
public void rangeSetChanged() {
notifyVariableChanged(Variable.RANGE_CHANGED);
}
public void connectToData(Object dataObject) {
if ( dataObject instanceof FitData )
this.data = (FitData) dataObject;
else {
data = new FitData();
data.create1DConnection(dataObject);
}
}
public boolean isConnected() {
return data != null;
}
public IFitData data() {
return data;
}
}