WienerFilter.hh

Go to the documentation of this file.
00001 
00008 //author: Marco Andrea Carrettoni 
00009 //mail : carrettoni@mib.infn.it
00010 #ifndef __QWIENERFILTER_HH__
00011 #define __QWIENERFILTER_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  
00111   QError Amplitude(QVector &pSamples, float &amp) ;
00112  
00117   void GetNoise(QVector & output);
00118  
00123   void GetAvg(QVector & output);
00124  
00129   void BiPol(double, double, double, double,double,double,double&,double&,double&);
00130   
00135   void SetNormType(int i){norm_type=i;};
00136 
00137 private:
00138 
00139   QVector AvgPulse;  //average pulse 
00140   QVector AvgPS;    // average pulse power spectrum
00141   
00142   int nSigPulses,norm_type,fTriggerPos; 
00143   
00144   // noise power spectrum
00145   QVector fPS;
00146   int nNoisePS;
00147   
00148   double n_energy, avg_energy, conv,blwidth,fThreshold;  
00149 
00150   QVectorC H; //transfer function in frequency domain
00151 
00152 
00153 
00154 };
00155 
00156 #endif
00157 

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