// 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;
/**
*
* Abstract representation of the fit data. Serves for several purposes:
* - decouple fitter from the details of the particular data
* objects (Histograms etc)
* - provide range restriction capability ("cut of the tails...")
* - creates the image of the virtual data source
*
* Design notes:
*
* 1)
* we try to be explicit in the method names which should indicate the
* dimensionality of the fit data.
*
* this way we have more compile-time/run-time safety and clearer code.
* in C++ we can handle default arguments which otherwise would be ambigeous.
*
* 2)
* string names of the arguments are at the end of the methods'
* signatures and have default (empty) values.
* so if function argument name is missing,
* assume the ordering is taken from the histogram axis it connects to
* the name of the pipes then are generated automatically using
* the same default scheme as for functions x[1], x[2] etc.
*
* 3)
* There are two ends to pipes: one connected to the
* data source and one pouring data out. Both their orders has to be specified.
*
* For IHistogram, ICloud, IProfile the connections to the data source are
* ordered as the axis (x=0, y=1, z=2); the user has to provide the order
* with which the pipes are providing the data. So for example in the constructor
* create2DConnection(hist2D,xIndex,yIndex);
* xIndex specifies the exit order of the pipe connected to the x Axis (and similarly
* for yIndex). So the default method
* create2DConnection(hist2D);
* corresponds to
* create2DConnection(hist2D,0,1);
* In the methods for IHistograms, IClouds, and IProfiles one index could have
* been dropped as the second could be inferred by the dimensionality. We
* preferred being redundant just to avoid confusion in interpreting what
* create2DConnection(hist2D,1);
* really means.
*
* For ITuple and IDataPointSet the order in the connection to the data source
* is specified by the user by providing, respectively, the array of column names (or evaluators)
* and the array of coordinate indexes to which to connect the pipes.
* In this case we assume that the pipes are parallel, i.e. the exit order is the same
* as the one of the connection to the data source.
* In the createXDConnection methods to IDataPointSets we preferred not to provide
* defaults for the valIndex to avoid confusion in interpreting it.
* We can always add it later.
*
* PENDING: clarify the relation between data range and normalization range
*
* @author The AIDA Team.
*
*/
public interface IFitData {
/**
* One dimensional connections.
*
*/
/**
* Create a one dimensional connection to an IHistogram1D.
* @param h The 1D histogram to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create1DConnection(IHistogram1D h) throws IllegalArgumentException;
/**
* Create a one dimensional connection to an ICloud1D.
* @param c The 1D cloud to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create1DConnection(ICloud1D c) throws IllegalArgumentException;
/**
* Create a one dimensional connection to an IProfile1D.
* @param p The 1D profile to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create1DConnection(IProfile1D p) throws IllegalArgumentException;
/**
* Create a one dimensional connection to an IDataPointSet.
* @param dp The dataPointSet to which to connect to.
* @param xIndex The index of the coordinate to which the variable is connected.
* @param valIndex The index of the coordinate used as "height".
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create1DConnection(IDataPointSet dp, int xIndex, int valIndex) throws IllegalArgumentException;
/**
* Create a one dimensional connection to a set of measurements with corresponding correlation matrix.
* @param x The x coordinate of the measurement.
* @param y The y coordinate of the measurement.
* @param corrMatrix The correlation matrix provided as a simple array. Please refer to the specific implementation's
* documentation on how to convert a matrix to a one dimensional array.
* @throws IllegalArgumentException If something is wrong (if the dimensions of the arrays are incompatible).
*
*/
public void create1DConnection(double[] x, double[] y, double[] corrMatrix) throws IllegalArgumentException;
/**
* Two dimensional connections.
*
*/
/**
* Create a two dimensional connection to an IHistogram2D.
* @param h The 2D histogram to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(IHistogram2D h) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an IHistogram2D.
* @param h The 2D histogram to which to connect to.
* @param xIndex The index of the axis to which the x variable is connected.
* @param yIndex The index of the axis to which the y variable is connected.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(IHistogram2D h, int xIndex, int yIndex) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an ICloud2D.
* @param c The 2D cloud to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(ICloud2D c) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an ICloud2D.
* @param c The 2D cloud to which to connect to.
* @param xIndex The index of the axis to which the x variable is connected.
* @param yIndex The index of the axis to which the y variable is connected.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(ICloud2D c, int xIndex, int yIndex) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an IProfile2D.
* @param p The 2D profile to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(IProfile2D p) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an IProfile2D.
* @param p The 2D profile to which to connect to.
* @param xIndex The index of the axis to which the x variable is connected.
* @param yIndex The index of the axis to which the y variable is connected.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(IProfile2D p, int xIndex, int yIndex) throws IllegalArgumentException;
/**
* Create a two dimensional connection to an IDataPointSet.
* @param dp The dataPointSet to which to connect to.
* @param xIndex The index of the coordinate to which the x variable is connected.
* @param yIndex The index of the coordinate to which the y variable is connected.
* @param valIndex The index of the coordinate used as "height".
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create2DConnection(IDataPointSet dp, int xIndex, int yIndex, int valIndex) throws IllegalArgumentException;
/**
* Three dimensional connections.
*
*/
/**
* Create a three dimensional connection to an IHistogram3D.
* @param h The 3D histogram to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create3DConnection(IHistogram3D h) throws IllegalArgumentException;
/**
* Create a three dimensional connection to an IHistogram3D.
* @param h The 3D histogram to which to connect to.
* @param xIndex The index of the axis to which the x variable is connected.
* @param yIndex The index of the axis to which the y variable is connected.
* @param zIndex The index of the axis to which the z variable is connected.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create3DConnection(IHistogram3D h, int xIndex, int yIndex, int zIndex) throws IllegalArgumentException;
/**
* Create a three dimensional connection to an ICloud3D.
* @param c The 3D cloud to which to connect to.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create3DConnection(ICloud3D c) throws IllegalArgumentException;
/**
* Create a three dimensional connection to an ICloud3D.
* @param c The 3D cloud to which to connect to.
* @param xIndex The index of the axis to which the x variable is connected.
* @param yIndex The index of the axis to which the y variable is connected.
* @param zIndex The index of the axis to which the z variable is connected.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create3DConnection(ICloud3D c, int xIndex, int yIndex, int zIndex) throws IllegalArgumentException;
/**
* Create a three dimensional connection to an IDataPointSet.
* @param dp The dataPointSet to which to connect to.
* @param xIndex The index of the coordinate to which the x variable is connected.
* @param yIndex The index of the coordinate to which the y variable is connected.
* @param zIndex The index of the coordinate to which the z variable is connected.
* @param valIndex The index of the coordinate used as "height".
* @throws IllegalArgumentException If something is wrong.
*
*/
public void create3DConnection(IDataPointSet dp, int xIndex, int yIndex, int zIndex, int valIndex) throws IllegalArgumentException;
/**
* General connections.
*
*/
/**
* Tuples are for UNBINNED fits, so no value column required.
*/
/**
* Create a connection to an ITuple.
* @param t The ITuple.
* @param colNames The names of the columns to which to connect.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void createConnection(ITuple t, String[] colNames) throws IllegalArgumentException;
/**
* Create a connection to an ITuple.
* @param t The ITuple.
* @param evals The list of the IEvaluator used to calculate the variable's value.
* @throws IllegalArgumentException If something is wrong.
*
*/
public void createConnection(ITuple t, IEvaluator[] evals) throws IllegalArgumentException;
/**
* Create a connection to an IDataPointSet.
* @param dp The dataPointSet to which to connect to.
* @param indices The indeces of the coordinates to which the variables are connected.
* @param valIndex The index of the coordinate used as "height".
* @throws IllegalArgumentException If something is wrong.
*
*/
public void createConnection(IDataPointSet dp, int[] indices, int valIndex) throws IllegalArgumentException;
/**
* Remove all Ranges and connections; after this is like newly create.
*
*/
public void reset();
/**
* The dimension of this IFitData, i.e. the number of connections.
* @return The dimension of the IFitData.
*
*/
public int dimension();
/// Return a string describing the data. This should be considered as a
/// hint to the user where to find the original data objects and how
/// to connect the data pipes. PENDING: probably this can be part of
/// XML streaming.
public String dataDescription();
/**
* Get Range of the corresponding connection by index.
* The index represent the order in which
* connections are coming out of the IFitData.
* @param The index of the connection.
* @return The Range
* @throws IllegalArgumentException If the Range does not exist.
*
*/
public IRangeSet range(int index) throws IllegalArgumentException;
/** @link aggregation */
} // class or interface
Ads help maintain this website.