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