source: trunk/MagicSoft/Mars/mpedestal/MPedestalSubtractedEvt.h@ 9426

Last change on this file since 9426 was 9226, checked in by tbretz, 16 years ago
*** empty log message ***
File size: 3.5 KB
Line 
1#ifndef MARS_MPedestalSubtractedEvt
2#define MARS_MPedestalSubtractedEvt
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7#ifndef MARS_MCamEvent
8#include "MCamEvent.h"
9#endif
10#ifndef MARS_MArrayF
11#include "MArrayF.h"
12#endif
13#ifndef MARS_MArrayS
14#include "MArrayS.h"
15#endif
16
17typedef UShort_t USample_t;
18
19class MPedestalSubtractedEvt : public MParContainer, public MCamEvent
20{
21private:
22 MArrayF fSamples; // list of all samples with pedestal subtracted
23 MArrayS fSamplesRaw; // list of all samples (raw)
24
25 UInt_t fNumSamples; // number of samples per pixel
26 UInt_t fNumPixels; // number of pixels
27
28public:
29 MPedestalSubtractedEvt(const char *name=NULL, const char *title=NULL)
30 : fNumSamples(0), fNumPixels(0)
31 {
32 }
33
34 void InitSize(const UInt_t i) { fNumPixels=i; }
35 void InitSamples(UInt_t samples, UInt_t pixels=0);
36
37 Float_t *GetSamples(UInt_t pixel) const;
38 USample_t *GetSamplesRaw(UInt_t pixel) const;
39
40 UInt_t GetNumSamples() const { return fNumSamples; }
41 UShort_t GetNumPixels() const { return fNumPixels; }
42
43 Int_t GetSaturation(const Int_t idx, Int_t limit, Int_t &first, Int_t &last) const;
44 //void InterpolateSaturation(const Int_t idx, Int_t limit, Int_t first, Int_t last) const;
45
46 Int_t GetMax(const Int_t pixidx, const Int_t first, const Int_t last, Float_t &val) const;
47 Int_t GetMax(const Int_t pixidx, Float_t &val) const
48 {
49 return GetMax(pixidx, 0, fNumSamples-1, val);
50 }
51 Int_t GetMaxPos(const Int_t pixidx, const Int_t first, const Int_t last) const
52 {
53 Float_t val;
54 return GetMax(pixidx, first, last, val);
55 }
56 Int_t GetMaxPos(const Int_t pixidx, Float_t &val) const
57 {
58 return GetMax(pixidx, 0, fNumSamples-1, val);
59 }
60
61 Int_t GetMaxPos(const Int_t pixidx) const
62 {
63 Float_t val;
64 return GetMax(pixidx, 0, fNumSamples-1, val);
65 }
66
67 Int_t GetRawMax(const Int_t idx, const Int_t first, const Int_t last, UInt_t &val) const;
68 Int_t GetRawMax(const Int_t pixidx, UInt_t &val) const
69 {
70 return GetRawMax(pixidx, 0, fNumSamples-1, val);
71 }
72 Int_t GetRawMaxPos(const Int_t pixidx, const Int_t first, const Int_t last) const
73 {
74 UInt_t val;
75 return GetRawMax(pixidx, first, last, val);
76 }
77 Int_t GetRawMaxPos(const Int_t pixidx, UInt_t &val) const
78 {
79 return GetRawMax(pixidx, 0, fNumSamples-1, val);
80 }
81
82 Int_t GetRawMaxPos(const Int_t pixidx) const
83 {
84 UInt_t val;
85 return GetRawMax(pixidx, 0, fNumSamples-1, val);
86 }
87
88 UInt_t GetRawMaxVal(const Int_t idx, const Int_t first, const Int_t last) const
89 {
90 UInt_t val;
91 GetRawMax(idx, first, last, val);
92 return val;
93 }
94
95
96 Int_t GetSaturation(const Int_t pixidx, Int_t limit) const
97 {
98 Int_t first=0;
99 Int_t last=fNumSamples-1;
100 return GetSaturation(pixidx, limit, first, last);
101 }
102
103 Int_t GetIntegralRaw(Int_t idx, Int_t first, Int_t last) const
104 {
105 USample_t *ptr = GetSamplesRaw(idx);
106
107 const USample_t *end = ptr + last - first + 1;
108
109 Int_t sum = 0;
110 while (ptr<end)
111 sum += *ptr++;
112
113 return sum;
114 }
115
116 void Print(Option_t *o="") const;
117
118 Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const { return kTRUE; }
119 void DrawPixelContent(Int_t num) const { }
120
121 ClassDef(MPedestalSubtractedEvt, 6) //Container to store the raw Event Data
122};
123
124#endif
Note: See TracBrowser for help on using the repository browser.