00001
00002 #ifndef ANAPHE_AIDA_CHAINEDTUPLE
00003 #define ANAPHE_AIDA_CHAINEDTUPLE 1
00004
00005 #include "AIDA_Dev/IDevTuple.h"
00006 #include "AIDA_TupleHeader.h"
00007 #include <vector>
00008
00009 namespace Anaphe {
00010 namespace AIDA_Tuple_native {
00011
00012 class AIDA_ChainedTuple : virtual public AIDA::Dev::IDevTuple
00013 {
00014 public:
00015 AIDA_ChainedTuple( const std::vector<IDevTuple*>& tuples );
00016 ~AIDA_ChainedTuple();
00017
00018
00019 const std::string & name() const;
00020
00021
00022 bool isUpToDate() const;
00023 void setUpToDate( bool isUpToDate );
00024 bool setName( const std::string& newName );
00025 const std::string& userLevelClassType() const;
00026
00027
00028 bool connectToStore( AIDA::Dev::IBackingStore* store );
00029 AIDA::Dev::IBackingStore* store();
00030 const AIDA::Dev::IBackingStore* store() const;
00031 AIDA::Dev::ITupleHeader& header();
00032 const AIDA::Dev::ITupleHeader& header() const;
00033 void* variableAddress( const std::string& variableName );
00034 const void* variableAddress( const std::string& variableName ) const;
00035
00036
00037 const std::string & title() const;
00038 bool setTitle(const std::string & title);
00039 AIDA::IAnnotation & annotation();
00040 const AIDA::IAnnotation & annotation() const;
00041 bool fill(int column, double value);
00042 bool fill(int column, float value);
00043 bool fill(int column, int value);
00044 bool fill(int column, short value);
00045 bool fill(int column, long value);
00046 bool fill(int column, char value);
00047 bool fill(int column, bool value);
00048 bool fill(int column, const std::string & value);
00049 bool fill(int column, const AIDA::ITupleEntry & value);
00050 bool fill(const std::vector<double>& values);
00051 bool fill(const std::vector<float>& values);
00052 bool addRow();
00053 void resetRow();
00054 void reset();
00055 int rows() const;
00056 void start();
00057 bool skip(int rows);
00058 bool next();
00059 bool setRow(int rowIndex);
00060 int findColumn(const std::string & name) const;
00061 double getDouble(int column) const;
00062 float getFloat(int column) const;
00063 int getInt(int column) const;
00064 short getShort(int column) const;
00065 long getLong(int column) const;
00066 char getChar(int column) const;
00067 bool getBoolean(int column) const;
00068 const std::string & getString(int column) const;
00069 const AIDA::ITupleEntry * getObject(int column) const;
00070 const AIDA::ITuple * getTuple(int column) const;
00071 AIDA::ITuple * getTuple(int column);
00072 int columns() const;
00073 const std::string & columnName(int column) const;
00074 const std::string & columnType(int column) const;
00075 double columnMin(int column) const;
00076 double columnMax(int column) const;
00077 double columnMean(int column) const;
00078 double columnRms(int column) const;
00079 bool project(AIDA::IHistogram1D & histogram, AIDA::IEvaluator & evaluatorX);
00080 bool project(AIDA::IHistogram1D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IFilter & filter);
00081 bool project(AIDA::IHistogram1D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & weight);
00082 bool project(AIDA::IHistogram1D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00083 bool project(AIDA::IHistogram2D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY);
00084 bool project(AIDA::IHistogram2D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter);
00085 bool project(AIDA::IHistogram2D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & weight);
00086 bool project(AIDA::IHistogram2D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00087 bool project(AIDA::IHistogram3D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ);
00088 bool project(AIDA::IHistogram3D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter);
00089 bool project(AIDA::IHistogram3D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IEvaluator & weight);
00090 bool project(AIDA::IHistogram3D & histogram, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00091 bool project(AIDA::ICloud1D & cloud, AIDA::IEvaluator & evaluatorX);
00092 bool project(AIDA::ICloud1D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IFilter & filter);
00093 bool project(AIDA::ICloud1D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & weight);
00094 bool project(AIDA::ICloud1D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00095 bool project(AIDA::ICloud2D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY);
00096 bool project(AIDA::ICloud2D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter);
00097 bool project(AIDA::ICloud2D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & weight);
00098 bool project(AIDA::ICloud2D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00099 bool project(AIDA::ICloud3D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ);
00100 bool project(AIDA::ICloud3D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter);
00101 bool project(AIDA::ICloud3D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IEvaluator & weight);
00102 bool project(AIDA::ICloud3D & cloud, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00103 bool project(AIDA::IProfile1D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY);
00104 bool project(AIDA::IProfile1D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter);
00105 bool project(AIDA::IProfile1D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & weight);
00106 bool project(AIDA::IProfile1D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00107 bool project(AIDA::IProfile2D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ);
00108 bool project(AIDA::IProfile2D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter);
00109 bool project(AIDA::IProfile2D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IEvaluator & weight);
00110 bool project(AIDA::IProfile2D & profile, AIDA::IEvaluator & evaluatorX, AIDA::IEvaluator & evaluatorY, AIDA::IEvaluator & evaluatorZ, AIDA::IFilter & filter, AIDA::IEvaluator & weight);
00111
00112
00113 public:
00114 std::vector<AIDA::Dev::IDevTuple*> m_tuples;
00115 AIDA_TupleHeader m_header;
00116 unsigned int m_currentTuple;
00117 };
00118
00119 }
00120 }
00121
00122 #endif