source: trunk/FACT++/src/DataCalib.h@ 12105

Last change on this file since 12105 was 12044, checked in by tbretz, 13 years ago
Fixed call to IsValid
File size: 1.6 KB
Line 
1#ifndef FACT_DataCalib
2#define FACT_DataCalib
3
4#include "DataProcessorImp.h"
5
6using namespace std;
7#include "externals/DrsCalib.h"
8
9class DimDescribedService;
10
11class DataCalib : public DataProcessorImp, CalibData
12{
13 static std::vector<int32_t> fOffset; /// Storage for physical baseline
14 static std::vector<int64_t> fGain; /// Storage for baseline corrected gain
15 static std::vector<int64_t> fTrgOff; /// Storage for logical baseline
16
17 static uint64_t fNumOffset; /// Scale for physcial baseline
18 static uint64_t fNumGain; /// Scale for gain values
19 static uint64_t fNumTrgOff; /// Scale for logical baseline
20
21 static std::vector<float> fStats; /// Storage for mean and rms values
22
23 /// State of the DRS calibration: Positiove numbers mean that
24 /// we are in a run, negative mean that it is closed
25 static int fStep;
26 static bool fProcessing;
27
28 DimDescribedService &fDim; // DimService through which statistics updates are transmitted
29
30 void WriteFits();
31
32public:
33 DataCalib(const std::string &path, uint32_t id, DimDescribedService &dim, MessageImp &imp) : DataProcessorImp(path, id, imp), fDim(dim)
34 {
35 }
36
37 static void Restart();
38 static void Update(DimDescribedService &dim);
39
40 bool Open(RUN_HEAD* h);
41 bool WriteEvt(EVENT *e);
42 bool Close(RUN_TAIL * = 0);
43
44 static void Apply(int16_t *val, const int16_t *start, uint32_t roi);
45 static void Apply(float *vec, int16_t *val, const int16_t *start, uint32_t roi);
46
47 static bool ReadFits(const string &fname, MessageImp &msg);
48
49 static bool IsValid() { return fStep>2; }
50};
51
52#endif
Note: See TracBrowser for help on using the repository browser.