| 1 | #ifndef MARS_MExtractTimeFastSpline | 
|---|
| 2 | #define MARS_MExtractTimeFastSpline | 
|---|
| 3 |  | 
|---|
| 4 | #ifndef MARS_MExtractTime | 
|---|
| 5 | #include "MExtractTime.h" | 
|---|
| 6 | #endif | 
|---|
| 7 |  | 
|---|
| 8 | class MPedestalPix; | 
|---|
| 9 |  | 
|---|
| 10 | class MExtractTimeFastSpline : public MExtractTime | 
|---|
| 11 | { | 
|---|
| 12 | private: | 
|---|
| 13 | static const Byte_t  fgHiGainFirst;    // Default for fHiGainFirst  (now set to: 2) | 
|---|
| 14 | static const Byte_t  fgHiGainLast;     // Default for fHiGainLast   (now set to: 14) | 
|---|
| 15 | static const Byte_t  fgLoGainFirst;    // Default for fLOGainFirst  (now set to: 3) | 
|---|
| 16 | static const Byte_t  fgLoGainLast;     // Default for fLoGainLast   (now set to: 14) | 
|---|
| 17 | static const Float_t fgResolution;     // Default for fResolution   (now set to: 0.003) | 
|---|
| 18 | static const Float_t fgRiseTime  ;     // Default for fRiseTime     (now set to: 1.5  ) | 
|---|
| 19 |  | 
|---|
| 20 | Float_t *fHiGainFirstDeriv;            //! | 
|---|
| 21 | Float_t *fLoGainFirstDeriv;            //! | 
|---|
| 22 | Float_t *fHiGainSecondDeriv;           //! | 
|---|
| 23 | Float_t *fLoGainSecondDeriv;           //! | 
|---|
| 24 |  | 
|---|
| 25 | Float_t fResolution;                   // The time resolution in FADC units | 
|---|
| 26 | Float_t fRiseTime  ;                   // The rise time of the pulse | 
|---|
| 27 | Byte_t  fStartBeforeMax;               // Slices to start searching for the halfmax before max | 
|---|
| 28 |  | 
|---|
| 29 | void FindTimeHiGain(Byte_t *first, Float_t &time, Float_t &dtime, Byte_t &sat, const MPedestalPix &ped) const; | 
|---|
| 30 | void FindTimeLoGain(Byte_t *first, Float_t &time, Float_t &dtime, Byte_t &sat, const MPedestalPix &ped) const; | 
|---|
| 31 |  | 
|---|
| 32 | Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print); | 
|---|
| 33 |  | 
|---|
| 34 | public: | 
|---|
| 35 |  | 
|---|
| 36 | MExtractTimeFastSpline(const char *name=NULL, const char *title=NULL); | 
|---|
| 37 | ~MExtractTimeFastSpline(); | 
|---|
| 38 |  | 
|---|
| 39 | void SetRange(Byte_t hifirst=0, Byte_t hilast=0, Byte_t lofirst=0, Byte_t lolast=0); | 
|---|
| 40 | void SetResolution(Float_t f=fgResolution)     { fResolution = f;  } | 
|---|
| 41 | void SetRiseTime  (Float_t f=fgRiseTime  )     { fRiseTime   = f; fStartBeforeMax = (Int_t)(1.5*fRiseTime); } | 
|---|
| 42 |  | 
|---|
| 43 | void Print(Option_t *o) const; | 
|---|
| 44 |  | 
|---|
| 45 | ClassDef(MExtractTimeFastSpline, 1)   // Task to Extract the Arrival Times using a Fast Spline | 
|---|
| 46 | }; | 
|---|
| 47 |  | 
|---|
| 48 | #endif | 
|---|
| 49 |  | 
|---|
| 50 |  | 
|---|
| 51 |  | 
|---|