package hep.aida; /** A Java interface corresponding to the AIDA 2D Histogram. <p> <b>Note</b> All methods that accept a bin number as an argument will also accept the constants OVERFLOW or UNDERFLOW as the argument, and as a result give the contents of the resulting OVERFLOW or UNDERFLOW bin. @see <a href="http://wwwinfo.cern.ch/asd/lhc++/AIDA/">AIDA</a> @author Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, Andreas Pfeiffer, and others. @version 1.0, 23/03/2000 */ public interface IHistogram2D extends IHistogram { /** * The number of entries (ie the number of times fill was called for this bin). * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. */ public int binEntries(int indexX, int indexY ); /** * Equivalent to <tt>projectionX().binEntries(indexX)</tt>. */ public int binEntriesX(int indexX); /** * Equivalent to <tt>projectionY().binEntries(indexY)</tt>. */ public int binEntriesY(int indexY); /** * The error on this bin. * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. */ public double binError(int indexX,int indexY ); /** * Total height of the corresponding bin (ie the sum of the weights in this bin). * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. */ public double binHeight(int indexX,int indexY ); /** * Equivalent to <tt>projectionX().binHeight(indexX)</tt>. */ public double binHeightX(int indexX); /** * Equivalent to <tt>projectionY().binHeight(indexY)</tt>. */ public double binHeightY(int indexY); /** * Fill the histogram with weight 1. */ public void fill( double x, double y); /** * Fill the histogram with specified weight. */ public void fill( double x, double y, double weight); /** * Returns the mean of the histogram, as calculated on filling-time projected on the X axis. */ public double meanX(); /** * Returns the mean of the histogram, as calculated on filling-time projected on the Y axis. */ public double meanY(); /** * Indexes of the in-range bins containing the smallest and largest binHeight(), respectively. * @return <tt>{minBinX,minBinY, maxBinX,maxBinY}</tt>. */ public int[] minMaxBins(); /** * Create a projection parallel to the X axis. * Equivalent to <tt>sliceX(UNDERFLOW,OVERFLOW)</tt>. */ public IHistogram1D projectionX(); /** * Create a projection parallel to the Y axis. * Equivalent to <tt>sliceY(UNDERFLOW,OVERFLOW)</tt>. */ public IHistogram1D projectionY(); /** * Returns the rms of the histogram as calculated on filling-time projected on the X axis. */ public double rmsX(); /** * Returns the rms of the histogram as calculated on filling-time projected on the Y axis. */ public double rmsY(); /** * Slice parallel to the Y axis at bin indexY and one bin wide. * Equivalent to <tt>sliceX(indexY,indexY)</tt>. */ public IHistogram1D sliceX(int indexY ); /** * Create a slice parallel to the axis X axis, between "indexY1" and "indexY2" (inclusive). * The returned IHistogram1D represents an instantaneous snapshot of the * histogram at the time the slice was created. */ public IHistogram1D sliceX(int indexY1, int indexY2); /** * Slice parallel to the X axis at bin indexX and one bin wide. * Equivalent to <tt>sliceY(indexX,indexX)</tt>. */ public IHistogram1D sliceY(int indexX ); /** * Create a slice parallel to the axis Y axis, between "indexX1" and "indexX2" (inclusive) * The returned IHistogram1D represents an instantaneous snapshot of the * histogram at the time the slice was created. */ public IHistogram1D sliceY(int indexX1, int indexX2); /** * Return the X axis. */ public IAxis xAxis(); /** * Return the Y axis. */ public IAxis yAxis(); }