00001
00002
00004 #ifndef __Otile__
00005 #define __Otile__
00006
00007 #include "CUtils.h"
00008 #include "Oqplane.h"
00009 #include "Triggers.h"
00010
00011 #define NQPLANEMAX 50
00012
00013 using namespace std;
00014
00020 class Otile {
00021
00022 public:
00023
00047 Otile(const int aTimeRange,
00048 const int aTimePad,
00049 const double aQMin,
00050 const double aQMax,
00051 const double aFrequencyMin,
00052 const double aFrequencyMax,
00053 const int aSampleFrequency,
00054 const double aMaximumMismatch,
00055 const double aSNRThreshold=0,
00056 const int aVerbosity=0);
00057
00061 virtual ~Otile(void);
00074 bool SetPowerSpectrum(Spectrum *aSpec);
00075
00094 bool GetTriggers(Triggers *aTriggers, double *aDataRe, double *aDataIm, const int aTimeStart);
00095
00113 TH2D* GetMap(const int qindex, double *aDataRe, double *aDataIm, const double time_offset=0.0, const bool printamplitude=false);
00114
00120 double GetQ(const int qindex);
00121
00125 inline bool GetStatus(void){ return status_OK; };
00126
00130 inline int GetNQPlanes(void){ return fNumberOfPlanes; };
00131
00135 void PrintInfo(void);
00136
00137 private:
00138
00139
00140 bool status_OK;
00141 int fVerbosity;
00142
00143
00144 int fTimeRange;
00145 int fTimePad;
00146 double fQMin,
00147 fQMax;
00148 double fFrequencyMin,
00149 fFrequencyMax;
00150 int fSampleFrequency;
00151 double fSNRThreshold;
00152 double fMaximumMismatch;
00153
00154
00155 double fMismatchStep;
00156 double fQMismatchStep;
00157
00158
00159 Oqplane *qplanes[NQPLANEMAX];
00160 int fNumberOfPlanes;
00161 vector <double> fQs;
00162 int fNumberOfTiles;
00163
00164 bool CheckParameters(void);
00165 void CreatePlanes(void);
00166
00167 ClassDef(Otile,0)
00168 };
00169
00170 #endif
00171
00172