// 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 3D Cloud.
 * 
 * @author The AIDA team (http://aida.freehep.org/)
 *
 */

public interface ICloud3D extends ICloud {

    /**
     * Fill the ICloud3D with a triplet 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 z      The z value.
     * @throws IllegalArgumentException If the ICloud3D is full or if the weight's value
     *                                  is not between 0 and 1.
     *
     */
    public void fill(double x, double y, double z) throws IllegalArgumentException;
    /**
     * Fill the ICloud3D with a triplet 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 z      The z value.
     * @param weight The corresponding weight. By default it is 1.
     * @throws IllegalArgumentException If the ICloud3D is full or if the weight's value
     *                                  is not between 0 and 1.
     *
     */
    public void fill(double x, double y, double z, double weight) throws IllegalArgumentException;

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

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

    /**
     * Get the lower edge of the ICloud3D along the z axis.
     * @return The lower edge along the z axis.
     *
     */
    public double lowerEdgeZ();

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

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

    /**
     * Get the upper edge of the ICloud3D along the z axis.
     * @return The upper edge along the z axis.
     *
     */
    public double upperEdgeZ();

    /**
     * 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 ICloud3D 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 ICloud3D has already been converted.
     *
     */
      
    public double valueY(int index) throws AlreadyConvertedException;

    /**
     * Get the z value corresponding to a given entry.
     * @param index The entry's index.
     * @return      The z value of the index-th entry.
     * @throws      AlreadyConvertedException If the ICloud3D has already been converted.
     *
     */
      
    public double valueZ(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 ICloud3D along the x axis.
     * @return The mean along the x axis.
     *
     */
    public double meanX();

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

    /**
     * Get the mean of the ICloud3D along the z axis.
     * @return The mean along the z axis.
     *
     */
    public double meanZ();

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

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

    /**
     * Get the RMS of the ICloud3D along the z axis.
     * @return The RMS along the z axis.
     *
     */
    public double rmsZ();

    /**
     * Convert internally the ICloud3D to an IHistogram3D 
     * 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.
     * @param nBinsZ     The number of bins of the z axis.
     * @param lowerEdgeZ The lower edge of bins of the z axis.
     * @param upperEdgeZ The upper edge of bins of the z axis.
     * @throws AlreadyConvertedException If the ICloud3D has already been converted.
     *
     */
    public void convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) throws AlreadyConvertedException;

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

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

    /**
     * Project the ICloud3D on an IHistogram3D.
     * @param hist The IHistogram3D to be filled.
     * @throws RuntimeException If the ICloud3D is already converted.
     *
     */
    public void fillHistogram(IHistogram3D 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.
     * @param binsZ      The Z axis number of bins of the conversion IHistogram.
     * @param lowerEdgeZ The Z axis lower edge of the conversion IHistogram.
     * @param upperEdgeZ The Z axis upper edge of the conversion IHistogram.
     *
     */
    public void setConversionParameters(int binsX, double lowerEdgeX, double upperEdgeX, int binsY, double lowerEdgeY, double upperEdgeY, int binsZ, double lowerEdgeZ, double upperEdgeZ) throws IllegalArgumentException;
} // class or interface


 

Ads help maintain this website.