// AID-GENERATED
// =========================================================================
// This class was generated by AID - Abstract Interface Definition          
// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
// =========================================================================

//  This file is part of the AIDA library
//  Copyright (C) 2002 by the AIDA team.  All rights reserved.
//  This library is free software and under the terms of the
//  GNU Library General Public License described in the LGPL.txt 
package hep.aida;


/**
 * User level interface to a 2D Cloud.
 * 
 * @author The AIDA team (http://aida.freehep.org/)
 *
 */
 
public interface ICloud2D extends ICloud {

    /**
     * Fill the ICloud2D with a couple of values and a corresponding weight.
     * If either a coordinate or the weight is NaN the entry
     * will be recorded but it will not contribue to the statistics.
     * @param x      The x value.
     * @param y      The y value.
     * @throws IllegalArgumentException If the ICloud2D is full or if the weight's value
     *                                  is not between 0 and 1.
     *
     */
    public void fill(double x, double y) throws IllegalArgumentException;
    /**
     * Fill the ICloud2D with a couple of values and a corresponding weight.
     * If either a coordinate or the weight is NaN the entry
     * will be recorded but it will not contribue to the statistics.
     * @param x      The x value.
     * @param y      The y value.
     * @param weight The corresponding weight. By default it is 1.
     * @throws IllegalArgumentException If the ICloud2D is full or if the weight's value
     *                                  is not between 0 and 1.
     *
     */
    public void fill(double x, double y, double weight) throws IllegalArgumentException;

    /**
     * Get the lower edge of the ICloud2D along the x axis.
     * @return The lower edge along the x axis.
     *
     */
    public double lowerEdgeX();

    /**
     * Get the lower edge of the ICloud2D along the y axis.
     * @return The lower edge along the y axis.
     *
     */
    public double lowerEdgeY();

    /**
     * Get the upper edge of the ICloud2D along the x axis.
     * @return The upper edge along the x axis.
     *
     */
    public double upperEdgeX();

    /**
     * Get the upper edge of the ICloud2D along the y axis.
     * @return The upper edge along the y axis.
     *
     */
    public double upperEdgeY();

    /**
     * Get the x value corresponding to a given entry.
     * @param index The entry's index.
     * @return      The x value of the index-th entry.
     * @throws      AlreadyConvertedException If the ICloud2D has already been converted.
     *
     */
      
    public double valueX(int index) throws AlreadyConvertedException;

    /**
     * Get the y value corresponding to a given entry.
     * @param index The entry's index.
     * @return      The y value of the index-th entry.
     * @throws      AlreadyConvertedException If the ICloud2D has already been converted.
     *
     */
      
    public double valueY(int index) throws AlreadyConvertedException;

    /**
     * Get the weight corresponding to a given entry.
     * @param index The entry's index.
     * @return      The weight of the index-th entry.
     * @throws      AlreadyConvertedException If the ICloud has already been converted.
     *
     */
      
    public double weight(int index) throws AlreadyConvertedException;

    /**
     * Get the mean of the ICloud2D along the x axis.
     * @return The mean along the x axis.
     *
     */
    public double meanX();

    /**
     * Get the mean of the ICloud2D along the y axis.
     * @return The mean along the y axis.
     *
     */
    public double meanY();

    /**
     * Get the RMS of the ICloud2D along the x axis.
     * @return The RMS along the x axis.
     *
     */
    public double rmsX();

    /**
     * Get the RMS of the ICloud2D along the y axis.
     * @return The RMS along the y axis.
     *
     */
    public double rmsY();

    /**
     * Convert internally the ICloud2D to an IHistogram2D 
     * with given number of bins, upper edge and lower edge.
     * @param nBinsX     The number of bins of the x axis.
     * @param lowerEdgeX The lower edge of bins of the x axis.
     * @param upperEdgeX The upper edge of bins of the x axis.
     * @param nBinsY     The number of bins of the y axis.
     * @param lowerEdgeY The lower edge of bins of the y axis.
     * @param upperEdgeY The upper edge of bins of the y axis.
     * @throws AlreadyConvertedException If the ICloud2D has already been converted.
     *
     */
    public void convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) throws AlreadyConvertedException;

    /**
     * Convert internally the ICloud2D to an IHistogram2D 
     * with given bin edges.
     * @param binEdgesX The bins edges of the x axis.
     * @param binEdgesY The bins edges of the y axis.
     * @throws          AlreadyConvertedException If the ICloud2D has already been converted.
     *
     */
    public void convert(double[] binEdgesX, double[] binEdgesY) throws AlreadyConvertedException;

    /**     
     * Get the internal IHistogram2D in which the ICloud2D converted to.
     * @return The histogram.
     * @throws RuntimeException If the ICloud2D did not convert either automatically
     *                          or because of a convert() method invocation.
     *
     */
    public IHistogram2D histogram() throws RuntimeException;

    /**
     * Project the ICloud2D on an IHistogram2D.
     * @param hist The IHistogram2D to be filled.
     * @throws RuntimeException If the ICloud2D is already converted.
     *
     */
    public void fillHistogram(IHistogram2D hist) throws RuntimeException;

    /**
     * Set the parameters for the ICloud conversion to an IHistogram.
     * @param binsX      The X axis number of bins of the conversion IHistogram.
     * @param lowerEdgeX The X axis lower edge of the conversion IHistogram.
     * @param upperEdgeX The X axis upper edge of the conversion IHistogram.
     * @param binsY      The Y axis number of bins of the conversion IHistogram.
     * @param lowerEdgeY The Y axis lower edge of the conversion IHistogram.
     * @param upperEdgeY The Y axis upper edge of the conversion IHistogram.
     *
     */
    public void setConversionParameters(int binsX, double lowerEdgeX, double upperEdgeX, int binsY, double lowerEdgeY, double upperEdgeY) throws IllegalArgumentException;
} // class or interface


 

Ads help maintain this website.