Files
geant4/examples/extended/analysis/A01/include/AIDA/ITuple.h
T
2016-06-08 16:57:27 +02:00

907 lines
39 KiB
C++

//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// -*- C++ -*-
// 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.
// =========================================================================
#ifndef AIDA_ITUPLE_H
#define AIDA_ITUPLE_H 1
// 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
#include <string>
#include <vector>
namespace AIDA {
class IAnnotation;
class ICloud1D;
class ICloud2D;
class ICloud3D;
class IEvaluator;
class IFilter;
class IHistogram1D;
class IHistogram2D;
class IHistogram3D;
class IProfile1D;
class IProfile2D;
class ITupleEntry;
/**
* User level interface to a Tuple.
*
* @author The AIDA team (http://aida.freehep.org/)
*
*/
class ITuple {
public:
/// Destructor.
virtual ~ITuple() { /* nop */; }
/**
* Get the title of this ITuple.
* @return The ITuple's title.
*
*/
virtual const std::string & title() const = 0;
/**
* Set the title of the ITuple.
* @param title The new ITuple's title.
* @return false If title cannot be changed.
*
*/
virtual bool setTitle(const std::string & title) = 0;
/**
* Get the IAnnotation corresponding to this ITuple.
* @return The ITuple's IAnnotation.
*
*/
virtual IAnnotation & annotation() = 0;
virtual const IAnnotation & annotation() const = 0;
/**
* Fill a given column with a double.
* @param column The column's index within the ITuple.
* @param value The double.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, double value) = 0;
/**
* Fill a given column with a float.
* @param column The column's index within the ITuple.
* @param value The float.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, float value) = 0;
/**
* Fill a given column with an integer.
* @param column The column's index within the ITuple.
* @param value The integer.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, int value) = 0;
/**
* Fill a given column with a short.
* @param column The column's index within the ITuple.
* @param value The short.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, short value) = 0;
/**
* Fill a given column with a long.
* @param column The column's index within the ITuple.
* @param value The long.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, long value) = 0;
/**
* Fill a given column with a char.
* @param column The column's index within the ITuple.
* @param value The char.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, char value) = 0;
/**
* Fill a given column with a boolean.
* @param column The column's index within the ITuple.
* @param value The boolean.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, bool value) = 0;
/**
* Fill a given column with a string.
* @param column The column's index within the ITuple.
* @param value The string.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, const std::string & value) = 0;
/**
* Fill a given column with an object.
* @param column The column's index within the ITuple.
* @param value The object.
* @return false If the column is of the wrong type.
*
*/
virtual bool fill(int column, const ITupleEntry & value) = 0;
/**
* Fill all the columns at once with doubles.
* @param values The array of doubles.
* @return false If any column is not of type double or if
* the array has the wrong dimension.
*
*/
virtual bool fill(const std::vector<double> & values) = 0;
/**
* Fill all the columns at once with floats.
* @param values The array of floats.
* @return false If any column is not of type float or if
* the array has the wrong dimension.
*
*/
virtual bool fill(const std::vector<float> & values) = 0;
/**
* Add the current row to the ITuple. This method should be called after
* fill has been called for the columns; unfilled columns will be filled
* with their default value.
* @return false When the ITuple runs out of storage space.
*
*/
virtual bool addRow() = 0;
/**
* Clear the current(not yet added) row.
*
*/
virtual void resetRow() = 0;
/**
* Reset the ITuple. All the rows are reset.
* The ITuple is as just created.
*
*/
virtual void reset() = 0;
/**
* Get the number of rows currently filled in the ITuple.
* @return The number of rows. -1 if empty or if it cannot be determined.
*
*/
virtual int rows() const = 0;
/**
* Positions the read cursor immediately before the first row.
*
*/
virtual void start() = 0;
/**
* Skips a given number of rows.
* @param rows The number of rows to skip.
* @return false If rows is less than zero or
* if it is not possible to perform the jump.
*
*/
virtual bool skip(int rows) = 0;
/**
* Positions the cursor at the next row.
* @return false if there is no next row.
*
*/
virtual bool next() = 0;
/**
* Position the cursor at a give row.
* @param rowIndex The row where the cursor has to be positioned.
* @return false If the cursor cannot be positioned
* at the give row.
*
*/
virtual bool setRow(int rowIndex) = 0;
/**
* Get the index within the ITuple of a given column.
* @param name The colum's name.
* @return The corresponding column's index. Note: in C++ -1 may
* be returned if the column does not exist.
*/
virtual int findColumn(const std::string & name) const = 0;
/**
* Get the double stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The double.
*
*/
virtual double getDouble(int column) const = 0;
/**
* Get the float stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The float.
*
*/
virtual float getFloat(int column) const = 0;
/**
* Get the integer stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The integer.
*
*/
virtual int getInt(int column) const = 0;
/**
* Get the short stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The short.
*
*/
virtual short getShort(int column) const = 0;
/**
* Get the long stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The long.
*
*/
virtual long getLong(int column) const = 0;
/**
* Get the character stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The character.
*
*/
virtual char getChar(int column) const = 0;
/**
* Get the boolean stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The boolean.
*
*/
virtual bool getBoolean(int column) const = 0;
/**
* Get the string stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The string.
*
*/
virtual const std::string & getString(int column) const = 0;
/**
* Get the object stored in a given column at the current cursor's position.
* @param column The column's index within the ITuple.
* @return The object.
*
*/
virtual const ITupleEntry * getObject(int column) const = 0;
/**
* Return method for tuple variables of type ITuple for a given column.
* This method can be used in order to fill a tuple variable in the master tuple.
* @param column The column's index.
* @return The ITuple representing the structure of this column.
*
*/
virtual const ITuple * getTuple(int column) const = 0;
virtual ITuple * getTuple(int column) = 0;
/**
* Get the number of columns in the ITuple
* @return The number of columns.
*
*/
virtual int columns() const = 0;
/**
* Get the name of a column from its index.
* @param column The column's index.
* @return The column's name.
*
*/
virtual const std::string & columnName(int column) const = 0;
/**
* Get the type of a give column.
* @param column The column's type.
* @return The column's Class.
*
*/
virtual const std::string & columnType(int column) const = 0;
/**
* Get the minimum value of a given column (if it can be converted to a double).
* @param column The column's index.
* @return The column's minimum value. In Java Double.NaN might be returned.
*
*/
virtual double columnMin(int column) const = 0;
/**
* Get the maximum value of a given column (if it can be converted to a double).
* @param column The column's index.
* @return The column's maximum value. In Java Double.NaN might be returned.
*
*/
virtual double columnMax(int column) const = 0;
/**
* Get the mean value of a given column (if it can be converted to a double).
* @param column The column's index.
* @return The column's mean value. In Java Double.NaN might be returned.
*
*/
virtual double columnMean(int column) const = 0;
/**
* Get the RMS of a given column (if it can be converted to a double).
* @param column The column's index.
* @return The column's RMS. In Java Double.NaN might be returned.
*
*/
virtual double columnRms(int column) const = 0;
/**
* Fill an IHistogram1D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram. The value is computed
* from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX) = 0;
/**
* Fill an IHistogram1D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram. The value is computed
* from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter) = 0;
/**
* Fill an IHistogram1D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram. The value is computed
* from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IEvaluator & weight) = 0;
/**
* Fill an IHistogram1D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram. The value is computed
* from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an IHistogram2D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
/**
* Fill an IHistogram2D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
/**
* Fill an IHistogram2D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
/**
* Fill an IHistogram2D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an IHistogram3D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the histogram along the z axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
/**
* Fill an IHistogram3D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the histogram along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
/**
* Fill an IHistogram3D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the histogram along the z axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
/**
* Fill an IHistogram3D from the tuple.
* @param histogram The histogram to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the histogram along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the histogram along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the histogram along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the histogram is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an ICloud1D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud. The value is computed
* from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX) = 0;
/**
* Fill an ICloud1D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud. The value is computed
* from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter) = 0;
/**
* Fill an ICloud1D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud. The value is computed
* from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IEvaluator & weight) = 0;
/**
* Fill an ICloud1D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud. The value is computed
* from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an ICloud2D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
/**
* Fill an ICloud2D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
/**
* Fill an ICloud2D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
/**
* Fill an ICloud2D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an ICloud3D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the cloud along the z axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
/**
* Fill an ICloud3D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the cloud along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
/**
* Fill an ICloud3D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the cloud along the z axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
/**
* Fill an ICloud3D from the tuple.
* @param cloud The cloud to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the cloud along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the cloud along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the cloud along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the cloud is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an IProfile1D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0;
/**
* Fill an IProfile1D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the profile is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0;
/**
* Fill an IProfile1D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0;
/**
* Fill an IProfile1D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the profile is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0;
/**
* Fill an IProfile2D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the profile along the z axis.
* The value is computed from the current row of the tuple.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0;
/**
* Fill an IProfile2D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the profile along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the profile is not filled.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0;
/**
* Fill an IProfile2D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the profile along the z axis.
* The value is computed from the current row of the tuple.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0;
/**
* Fill an IProfile2D from the tuple.
* @param profile The profile to fill.
* @param evaluatorX The evaluator used to compute the value
* to be filled in the profile along the x axis.
* The value is computed from the current row of the tuple.
* @param evaluatorY The evaluator used to compute the value
* to be filled in the profile along the y axis.
* The value is computed from the current row of the tuple.
* @param evaluatorZ The evaluator used to compute the value
* to be filled in the profile along the z axis.
* The value is computed from the current row of the tuple.
* @param filter The filter object used to accept or not the current row.
* If rejected, the profile is not filled.
* @param weight The evaluator which determines the weight which is used during the filling.
* @return false If something goes wrong.
*
*/
virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0;
}; // class
}; // namespace AIDA
#endif /* ifndef AIDA_ITUPLE_H */