QPulseBasicParams.hh
00001 #ifndef _Q_PULSE_BASIC_PARAMS_HH_
00002 #define _Q_PULSE_BASIC_PARAMS_HH_
00003
00004 #include "QVector.hh"
00005 #include "QError.hh"
00006
00007 using namespace Cuore;
00008
00009 class QPulseBasicParams {
00010
00011 public:
00012 QPulseBasicParams(int triggerPosition, double baseline, double baselineRMS);
00013 QPulseBasicParams(const QVector& pulse, int triggerPosition, double baseline, double baselineRMS, int ADCMax, int ADCMin);
00014
00015 double GetStart() const {return fStart; }
00016 double GetEnd() const {return fEnd; }
00017 double GetMaxBaseline() const {return fHeight; }
00018 double GetMaxPosition() const {return fMaxPos; }
00019 double GetBaseline() const {return fBaseline; }
00020 double GetBaselineRMS() const {return fBaselineRMS; }
00021 double GetRaise() const {return fRaise;}
00022 double GetDecay() const {return fDecay;}
00023 bool GetIsSaturatedHigh() {return fIsSaturatedHigh;}
00024 bool GetIsSaturatedLow() {return fIsSaturatedLow;}
00025
00026
00027 QError FindMaximumPosition(const QVector& pulse);
00028 QError ComputeHeight(const QVector& pulse);
00029 QError ComputeRaise(const QVector& pulse, double percLow,double percHigh);
00030 QError ComputeDecay(const QVector& pulse, double percHigh,double percLow);
00031 QError FindEnd(const QVector& pulse, size_t meansize, double peakperc);
00032 QError FindStart(const QVector& pulse, int bufsize);
00033 QError CheckSaturation(const QVector& pulse, int ADCMax, int ADCMin);
00034 QError ComputeDecayAndRise(const QVector& pulse,int smoothingSize, float fracMin, float fracMax, float fracMinDecay);
00035
00036 private:
00037 double fStart;
00038 double fEnd;
00039 double fRaise;
00040 double fDecay;
00041 double fHeight;
00042 double fMaxPos;
00043 double fBaseline;
00044 double fBaselineRMS;
00045 size_t fTriggerPosition;
00046 bool fIsSaturatedHigh;
00047 bool fIsSaturatedLow;
00048 };
00049
00050 #endif