source: trunk/Mars/mdrs/MHDrsCalibration.h@ 18066

Last change on this file since 18066 was 16891, checked in by tbretz, 12 years ago
Added a check for underflows, for the case the gains are read as offsets... only for checking purpose.
File size: 1.4 KB
Line 
1#ifndef MARS_MHDrsCalibration
2#define MARS_MHDrsCalibration
3
4#ifndef MARS_MHCamEvent
5#include "MHCamEvent.h"
6#endif
7
8#ifndef MARS_DrsCalib
9#include "DrsCalib.h"
10#endif
11
12class MRawRunHeader;
13class MRawEvtData;
14struct MDrsCalibration;
15
16class MHDrsCalibration : public MHCamEvent
17{
18private:
19 MRawRunHeader *fRun; //!
20 MRawEvtData *fEvt; //!
21 MDrsCalibration *fResult; //!
22
23 std::vector<float> fBuffer; //! Compilation bufer for writing output files
24 DrsCalibrate fData; //!
25
26 Short_t fStep;
27
28 Double_t fScale;
29
30 UInt_t fNumPixels;
31 UInt_t fNumSamples;
32
33 TString fOutputPath;
34
35 void InitHistogram();
36
37 template<typename T>
38 Bool_t CopyData(std::vector<T> &dest) const;
39
40public:
41 MHDrsCalibration(const char *name=NULL, const char *title=NULL);
42
43 Bool_t SetupFill(const MParList *pList);
44 Bool_t ReInit(MParList *);
45 Int_t Fill(const MParContainer *par, const Stat_t w=1);
46 Bool_t Finalize();
47
48 Bool_t ResetSecondaryBaseline()
49 {
50 if (fStep!=2)
51 return kFALSE;
52
53 for (int i=1024*1440*4+4; i<1440*1024*6+160*1024*2+4; i++)
54 fBuffer[i] = 0;
55
56 fStep=1;
57
58 return kTRUE;
59 }
60
61 void SetOutputPath(const char *path) { fOutputPath = path; }
62
63 void Paint(Option_t *o="");
64
65 Short_t GetNumUnderflows(float lvl) const;
66
67 ClassDef(MHDrsCalibration, 1) // A list of histograms storing the Fadc spektrum of one pixel
68};
69
70#endif
Note: See TracBrowser for help on using the repository browser.