00001
00002
00004 #ifndef __Oqplane__
00005 #define __Oqplane__
00006
00007 #include "MakeTriggers.h"
00008 #include "Spectrum.h"
00009 #include "Omap.h"
00010
00011
00012 #define BIASFACT2 (1.0-log(4.0*3.0*3.0)/(4.0*3.0*3.0-1.0))
00013
00014 using namespace std;
00015
00022 class Oqplane: public Omap {
00023
00024 public:
00025 friend class Otile;
00026
00027 private:
00028
00029
00030 Oqplane(const double aQ,
00031 const int aSampleFrequency,
00032 const int aTimeRange,
00033 const double aFrequencyMin,
00034 const double aFrequencyMax,
00035 const double aMismatchStep);
00036 virtual ~Oqplane(void);
00037
00038 void PrintParameters(void);
00039 bool ProjectData(double *aDataRe, double *aDataIm);
00040 bool SaveTriggers(MakeTriggers *aTriggers,
00041 const double aLeftTimePad=0.0,
00042 const double aRightTimePad=0.0,
00043 const double aT0=0.0);
00044
00045
00046 inline double GetQ(void){ return Q; };
00047 inline double GetTileAmplitude(const int aTimeTileIndex, const int aBandIndex){
00048 return GetTileContent(aTimeTileIndex,aBandIndex)*sqrt(bandPower[aBandIndex]);
00049 };
00050
00051 inline int GetNTriggers(void){ return nTriggers; }
00052
00053
00054 bool SetPower(Spectrum *aSpec);
00055 inline void SetSNRThr(const double aSNRThr){ SNRThr=aSNRThr; };
00056
00057
00058
00059 double GetMeanEnergy(const int aBandIndex, double *aEnergies);
00060 void GetPlaneNormalization(void);
00061
00062
00063 double Q;
00064 double QPrime;
00065 double PlaneNormalization;
00066
00067
00068 double SNRThr;
00069 long int nTriggers;
00070
00071
00072 int *bandWindowSize;
00073 double **bandWindow;
00074 double **bandWindowFreq;
00075 double *bandPower;
00076 fft **bandFFT;
00077
00078 ClassDef(Oqplane,0)
00079 };
00080
00081
00082 #endif
00083
00084