QWienerFilter.hh

00001 
00008 //author: Marco Andrea Carrettoni 
00009 //mail : carrettoni@mib.infn.it
00010 #ifndef _Q_WIENER_FILTER_HH__
00011 #define _Q_WIENER_FILTER_HH__
00012 #include <vector>
00013 
00014 
00015 #include "QVector.hh"
00016 #include "QVectorC.hh"
00017 #include "QError.hh"
00018 
00019 using namespace std; 
00020 using namespace Cuore; 
00021 
00022 class WienerFilter {
00023   
00024 public:
00025 
00029   WienerFilter();
00030 
00031   virtual ~WienerFilter();
00032  
00036         QError Compute();
00037  
00042         QError Compute_d();
00043 
00048         QError SetFilters_d(const QVector &avg, const QVector &noise);  
00053         QError SetFilters(const QVector &avg, const QVector &noise);
00054   
00058   double GetADC2mV(){return 0.152587890625;}; 
00062   QError Filter(const QVector &pSamples, QVector &samplesFiltered);
00063 
00067   QError Filter_d(const QVector &pSamples, QVector &samplesFiltered,double);
00068  
00073   QError Compute_2();
00074    
00079   QError PowerSpectrum(const QVector &pSamples, QVector& samplesFiltered);
00080   
00085 void SetBaseLineWidth(double value) {blwidth=value;}
00086  
00091   double GetThresh(const QVector &pSamples);
00092 
00093  
00099   void SetThresh(int thresh) { fThreshold = thresh; }; 
00100  
00105   int FindPeaks(const QVector &pSamples, QVector &positions,QVector &relamp);
00106  
00107 
00112   void GetNoise(QVector & output);
00113  
00118   void GetAvg(QVector & output);
00119  
00120   
00125   void SetNormType(int i){norm_type=i;};
00126 
00127 private:
00128 
00129   QVector AvgPulse;  //average pulse 
00130   QVector AvgPS;    // average pulse power spectrum
00131   
00132   int nSigPulses,norm_type,fTriggerPos; 
00133   
00134   // noise power spectrum
00135   QVector fPS;
00136   int nNoisePS;
00137   
00138   double n_energy, avg_energy, conv,blwidth,fThreshold;  
00139 
00140   QVectorC H; //transfer function in frequency domain
00141 
00142 
00143 
00144 };
00145 
00146 #endif
00147 

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