1 | #ifndef MARS_MExtractTimeAndChargeDigitalFilterPeakSearch
|
---|
2 | #define MARS_MExtractTimeAndChargeDigitalFilterPeakSearch
|
---|
3 |
|
---|
4 | #ifndef MARS_MExtractTimeAndChargeDigitalFilter
|
---|
5 | #include "MExtractTimeAndChargeDigitalFilter.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | #ifndef MARS_MArrayF
|
---|
9 | #include "MArrayF.h"
|
---|
10 | #endif
|
---|
11 |
|
---|
12 | #ifndef MARS_MArrayI
|
---|
13 | #include "MArrayI.h"
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | class TH1F;
|
---|
17 | class TH2F;
|
---|
18 | class MPedestalPix;
|
---|
19 | class MExtractTimeAndChargeDigitalFilterPeakSearch : public MExtractTimeAndChargeDigitalFilter
|
---|
20 | {
|
---|
21 | private:
|
---|
22 |
|
---|
23 | static const Byte_t fgHiGainFirst; //! Default for fHiGainFirst (now set to: 0)
|
---|
24 | static const Byte_t fgHiGainLast; //! Default for fHiGainLast (now set to:18)
|
---|
25 | static const Byte_t fgLoGainFirst; //! Default for fLoGainFirst (now set to: 2)
|
---|
26 | static const Byte_t fgLoGainLast; //! Default for fLoGainLast (now set to:14)
|
---|
27 | static const Byte_t fgOffsetLeftFromPeak; //! Default for fOffsetLeftFromPeak (now set to: 1)
|
---|
28 | static const Byte_t fgOffsetRightFromPeak; //! Default for fOffsetRightFromPeak (now set to: 2)
|
---|
29 | static const Byte_t fgPeakSearchWindowSize; //! Default for fPeakSearchWindowSize (now set to: 2)
|
---|
30 |
|
---|
31 | Byte_t fOffsetLeftFromPeak; // Number of slices to start extraction before peak slice
|
---|
32 | Byte_t fOffsetRightFromPeak; // Number of slices to stop extraction after peak slice
|
---|
33 | Byte_t fPeakSearchWindowSize; // Size of FADC window in the search for the highest peak of all pixels.
|
---|
34 |
|
---|
35 | void FindPeak(Byte_t *ptr, Byte_t &startslice, Int_t &signal, Int_t &sat, Byte_t &satpos) const;
|
---|
36 |
|
---|
37 | Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
|
---|
38 | Int_t Process();
|
---|
39 |
|
---|
40 | public:
|
---|
41 |
|
---|
42 | MExtractTimeAndChargeDigitalFilterPeakSearch(const char *name=NULL, const char *title=NULL);
|
---|
43 | ~MExtractTimeAndChargeDigitalFilterPeakSearch() { }
|
---|
44 |
|
---|
45 | void SetOffsetLeftFromPeak ( Byte_t offset=fgOffsetLeftFromPeak ) { fOffsetLeftFromPeak = offset; }
|
---|
46 | void SetOffsetRightFromPeak( Byte_t offset=fgOffsetRightFromPeak ) { fOffsetRightFromPeak = offset; }
|
---|
47 | void SetPeakSearchWindowSize(Byte_t size =fgPeakSearchWindowSize ) { fPeakSearchWindowSize = size; }
|
---|
48 |
|
---|
49 | void Print(Option_t *o="") const;
|
---|
50 |
|
---|
51 | ClassDef(MExtractTimeAndChargeDigitalFilterPeakSearch, 1) // Digital filter with global Peak Search
|
---|
52 | };
|
---|
53 |
|
---|
54 | #endif
|
---|