Main Page | Class List | File List | Class Members | File Members | Related Pages

PulseFitter.h

00001 // PulseFitter.h
00002 // fits one channel
00003 // http://positron.ps.uci.edu/~schernau/ROD/2rt
00004 
00005 
00006 #include "CSCStrip.h"
00007 #include"TH1.h"
00008 #include"TF1.h"
00009 #include"CalServer.h"
00010 
00011 
00012 #ifndef TRUE
00013 #define TRUE 1
00014 #endif
00015 
00016 #ifndef FALSE
00017 #define FALSE 0
00018 #endif
00019 
00020 #define MODE_PARABOLIC 1  // no fit, use parabolic interpolation
00021 #define MODE_FIT       2  // root fit with 3 parameters
00022 
00023 
00024 
00025 //fit function
00026 Double_t fitshape(Double_t *x, Double_t *parm); //not part of this class
00027 
00028 
00029 class PulseFitter{ 
00030 
00031   private:
00032     double paraAmp, paraPeak, paraWidth;
00033     double adc[50]; // array of pedestal-subtracted samples
00034     TH1F* his;
00035     TF1 *fit; // fit function
00036     int mode; // fit or parabolic interpolation.
00037     void Parabolic (double a, double b, double c); //interpolation
00038     int bad; // parabola impossible
00039     
00040     
00041  public:
00042     PulseFitter(); //constructor for intialization
00043     ~PulseFitter(); //destructor
00044     
00045     
00046     
00047     
00048     
00049     void Fit (CSCStrip* strip, int mode, CalServer* cal);
00050     
00051     double GetAmplitude ();
00052     
00053     double GetPeakingTime ();
00054     
00055     double GetWidth ();
00056     
00057     double GetChi2 () {return fit->GetChisquare();};
00058     int GetBad() { return bad;};
00059  
00060 }; 
00061 

Generated on Wed Oct 29 10:35:18 2008 for CSCRead by  doxygen 1.3.9.1