/*
* EfficiencyBinner1D.java
*
* Created on July 22, 2002, 10:19 AM
*/
package hep.aida.ref.histogram.binner;
/**
*
* @author The AIDA team at SLAC.
*
*/
public class EfficiencyBinner1D extends AbstractBinner1D {
private double[] error;
/**
* Creates a new instance of EfficiencyBinner1D.
*/
public EfficiencyBinner1D(int bins) {
super(bins);
}
public EfficiencyBinner1D(Binner1D binner) {
super(binner);
}
// Service methodes
protected void createArrays( int n ) {
super.createArrays(n);
error = new double[n];
}
// Binner1d methods
public double plusError(int bin) {
return EfficiencyBinnerUtils.H95CL(error[bin],entries[bin],1);
}
public double minusError(int bin) {
return EfficiencyBinnerUtils.H95CL(error[bin],entries[bin],2);
}
public void setBinCenter(int bin, double x) {
super.setBinCenter(bin, x);
error[bin] = 0;
}
public void clear() {
super.clear();
for (int i=0; i<bins; i++) {
error[i] = 0;
}
}
public void fill( int bin, double x, double weight) {
super.fill(bin, x, weight);
}
public void setBinContent(int bin, int entries, double height, double plusError, double minusError, double sumWW, double sumXW, double sumXXW) {
setBinContent(bin, entries, height, plusError, minusError, sumWW, sumXW, sumXXW);
if ( ! Double.isNaN(height) )
error[bin] = height*entries;
else
error[bin] = entries*entries;
}
}