00001 #ifndef GAUSSFIT_H__
00002 #define GAUSSFIT_H__
00003
00004 #include "TSetupData.h"
00005 #include "TVAnalysedPulseGenerator.h"
00006 #include "definitions.h"
00007 class TF1;
00008
00009 class GaussFitAPGenerator:public TVAnalysedPulseGenerator {
00010
00012 enum FitParams{ kAmplitude=0, kTime , kPedestal , kGradient , kWidth ,kNumParams};
00015 struct FittedVals{
00016 int status;
00017 double chi2;
00018 double value[kNumParams];
00019 double error[kNumParams];
00020 };
00021
00022 public:
00023 GaussFitAPGenerator(TAPGeneratorOptions* opts);
00024 virtual ~GaussFitAPGenerator(){};
00025
00026 public:
00027 virtual int ProcessPulses( const PulseIslandList&,AnalysedPulseList&);
00028
00029
00030
00031 virtual bool MayDivideTPIs(){return false;};
00032 void FitPulse(const TPulseIsland* tpi,const int& id,FittedVals& tap);
00033
00034 static const char* TapType();
00035
00036 private:
00037 double fMean, fWidth, fAmplitude, fPedestal, fGradient;
00038 TF1* fFitFunc;
00039 static const char* fFitName;
00040 };
00041
00042 #endif //GAUSSFIT_H__