BesselTransformer.hh

Go to the documentation of this file.
00001 #ifndef _BESSEL_TRANSFORMER_HH_
00002 #define _BESSEL_TRANSFORMER_HH_
00003 
00011 #include "QVector.hh"
00012 #include "QVectorC.hh"
00013 #include "QError.hh"
00014 
00015 using namespace Cuore;
00016 
00017 class BesselTransformer
00018 {
00019     public:
00021         typedef double(*pt2Func)(double*);
00022         typedef double(*pt2FuncParam)(double t, double* param);
00023 
00031         BesselTransformer(double cutFreq, double duration, double samplFreq, double tauRC, bool zeroPad);
00032 
00034         const QVectorC& GetResponseFunction() const { return fTransferFunction; }
00035 
00037         const QVector& GetDeltaResponse() const { return fDeltaResponse; }
00038 
00040         double GetDeltaResponse(double t) const;
00041 
00043         double GetExpResponse(double t_0, double tau, double t) const;
00044 
00046         QError ConvolveTD(const QVector& pulse, int t_min, QVector& signal) ;
00047 
00049         QError ConvolveTD(const QVector& pulse, QVector& signal) {return ConvolveTD(pulse, 0, signal);}
00051         void ConvolveTD(double (*pulse)(double*)) ;
00052         void ConvolveTD(pt2FuncParam func,double* param) ;
00053         double ConvolvedFuncTD(double* t);
00054 
00056         void ConvolveFD(double (*pulse)(double*)) ;
00057         void ConvolveFD(pt2FuncParam,double* param) ;
00058         double ConvolvedFuncFD(double* t);
00059 
00061         QError ConvolveFD(const QVector& pulse, QVector& signal) ;
00062 
00063     private:
00064 
00065         QVector fDeltaResponse;
00066         QVectorC fTransferFunction;
00067         QVector fConvolvedVectorTD;
00068         QVector fConvolvedVectorFD;
00069         double fCutFreq;
00070         double fRCFreq;
00071         double fNormCutFreq;
00072         double fSamplingFrequency;
00073         size_t fSize;
00074         double fDuration;
00075         // analyitical formula
00076         size_t fAN;
00077         double* fAp;
00078         double* fAq;
00079         double* fAtheta;
00080         double* fAphi;
00081         bool fZeroPad;
00082 
00083 };
00084 
00085 #endif

Generated on Tue Nov 16 10:49:58 2010 for CUORE Software by  doxygen 1.5.6