00001
00009 #ifndef INTERFACES_INTUPLE_H
00010 #define INTERFACES_INTUPLE_H 1
00011
00012 #include <iostream>
00013 #include <utility>
00014 #include <vector>
00015
00016 #ifndef ANAPHE_NO_NAMESPACE
00017 namespace Anaphe {
00018 #endif
00019
00020 class IHistogram1D;
00021 class IHistogram2D;
00022 class IScatter2D;
00023
00024 class INtuple
00025 {
00026 public:
00027
00028
00029 virtual ~INtuple () { }
00030
00031 virtual const char* name () = 0;
00032
00033 #ifdef AIDA_DONT_USE_STD
00034 virtual void listAttributes ( ostream& aOs = cout ) = 0;
00035
00036 virtual void scan ( const char* aAttributes,
00037 const char* aCut,
00038 const unsigned long aFirst = 0,
00039 const unsigned long aRows = LONG_MAX,
00040 ostream& aOs = cout ) = 0;
00041 virtual void scan ( const int aAttNum,
00042 const char* aCut,
00043 const unsigned long aFirst = 0,
00044 const unsigned long aRows = LONG_MAX,
00045 ostream& aOs = cout ) = 0;
00046 virtual void cscan ( const char* aAttributes,
00047 const char* aCut,
00048 const unsigned long aFirst = 0,
00049 const unsigned long aRows = LONG_MAX,
00050 ostream& aOs = cout ) = 0;
00051 virtual void cscan ( const int aAttNum,
00052 const char* aCut,
00053 const unsigned long aFirst = 0,
00054 const unsigned long aRows = LONG_MAX,
00055 ostream& aOs = cout ) = 0;
00056 virtual void project1D ( IHistogram1D* aHist,
00057 const char* aAttribute,
00058 const char* aCut,
00059 const unsigned long aFirst = 0,
00060 const unsigned long aRows = LONG_MAX ) = 0;
00061 virtual void cproject1D ( IHistogram1D* aHist,
00062 const char* aFunc,
00063 const char* aCut,
00064 const unsigned long aFirst = 0,
00065 const unsigned long aRows = LONG_MAX ) = 0;
00066 virtual void project2D ( IHistogram2D* aHist,
00067 const char* aAttribute1,
00068 const char* aAttribute2,
00069 const char* aCut,
00070 const unsigned long aFirst = 0,
00071 const unsigned long aRows = LONG_MAX ) = 0;
00072 virtual void cproject2D ( IHistogram2D* aHist,
00073 const char* aFunc1,
00074 const char* aFunc2,
00075 const char* aCut,
00076 const unsigned long aFirst = 0,
00077 const unsigned long aRows = LONG_MAX ) = 0;
00078 virtual void probe1D ( const char* aFunc,
00079 const char* aCut,
00080 double& xMin, double& xMax,
00081 unsigned long& aMatcNum,
00082 const unsigned long aFirst = 0,
00083 const unsigned long aRows = LONG_MAX ) = 0;
00084 virtual void probe2D ( const char* aFuncX,
00085 const char* aFuncY,
00086 const char* aCut,
00087 double & xMin, double & xMax,
00088 double & yMin, double & yMax,
00089 unsigned long& aMatcNum,
00090 const unsigned long aFirst = 0,
00091 const unsigned long aRows = LONG_MAX ) = 0;
00092 #else // #ifdef AIDA_DONT_USE_STD
00093
00094 virtual void listAttributes ( std::ostream& aOs = std::cout ) = 0;
00095
00096 virtual void scan ( const char* aAttributes,
00097 const char* aCut,
00098 const unsigned long aFirst = 0,
00099 const unsigned long aRows = LONG_MAX,
00100 std::ostream& aOs = std::cout ) = 0;
00101 virtual void scan ( const int aAttNum,
00102 const char* aCut,
00103 const unsigned long aFirst = 0,
00104 const unsigned long aRows = LONG_MAX,
00105 std::ostream& aOs = std::cout ) = 0;
00106 virtual void cscan ( const char* aAttributes,
00107 const char* aCut,
00108 const unsigned long aFirst = 0,
00109 const unsigned long aRows = LONG_MAX,
00110 std::ostream& aOs = std::cout ) = 0;
00111 virtual void cscan ( const int aAttNum,
00112 const char* aCut,
00113 const unsigned long aFirst = 0,
00114 const unsigned long aRows = LONG_MAX,
00115 std::ostream& aOs = std::cout ) = 0;
00116 virtual void project1D ( IHistogram1D* aHist,
00117 const char* aAttribute,
00118 const char* aCut,
00119 const unsigned long aFirst = 0,
00120 const unsigned long aRows = LONG_MAX ) = 0;
00121 virtual void cproject1D ( IHistogram1D* aHist,
00122 const char* aFunc,
00123 const char* aCut,
00124 const unsigned long aFirst = 0,
00125 const unsigned long aRows = LONG_MAX ) = 0;
00126 virtual void project2D ( IHistogram2D* aHist,
00127 const char* aAttribute1,
00128 const char* aAttribute2,
00129 const char* aCut,
00130 const unsigned long aFirst = 0,
00131 const unsigned long aRows = LONG_MAX ) = 0;
00132 virtual void cproject2D ( IHistogram2D* aHist,
00133 const char* aFunc1,
00134 const char* aFunc2,
00135 const char* aCut,
00136 const unsigned long aFirst = 0,
00137 const unsigned long aRows = LONG_MAX ) = 0;
00138 virtual void probe1D ( const char* aFunc,
00139 const char* aCut,
00140 double & xMin, double & xMax,
00141 unsigned long& aMatcNum,
00142 const unsigned long aFirst = 0,
00143 const unsigned long aRows = LONG_MAX ) = 0;
00144 virtual void probe2D ( const char* aFuncX,
00145 const char* aFuncY,
00146 const char* aCut,
00147 double & xMin, double & xMax,
00148 double & yMin, double & yMax,
00149 unsigned long& aMatcNum,
00150 const unsigned long aFirst = 0,
00151 const unsigned long aRows = LONG_MAX ) = 0;
00152 #endif // #ifdef AIDA_DONT_USE_STD
00153 virtual void scatter2D ( IScatter2D* aPlot,
00154 const char* aFuncX,
00155 const char* aFuncY,
00156 const char* aCut,
00157 const unsigned long aFirst = 0,
00158 const unsigned long aRows = LONG_MAX ) = 0;
00159
00160 };
00161
00162 #ifndef ANAPHE_NO_NAMESPACE
00163 };
00164 #endif
00165
00166 #endif // #ifndef INTERFACES_INTUPLE_H