PandaRoot
PndBurstContainer.h
Go to the documentation of this file.
1 #ifndef PNDBURSTCONTAINER_HH
2 #define PNDBURSTCONTAINER_HH
3 
4 #include "FairTimeStamp.h"
5 #include "FairMQLogger.h"
6 
7 #include <vector>
8 
10  public:
11  PndBurstContainer() : fThreshold(2E3), fOffset(2E3), fCurrentThreshold(fThreshold), fCurrentOffset(fOffset + fThreshold) { fContainer.resize(3); }
12 
13  std::vector<std::vector<FairTimeStamp *>> ProcessData(std::vector<FairTimeStamp *> data);
14  std::vector<std::vector<FairTimeStamp *>> GetLastData() { return fContainer; }
15 
16  virtual void SetThreshold(double val) { fThreshold = val; }
17  virtual void SetOffset(double val) { fOffset = val; }
18 
19  virtual double GetThreshold() { return fThreshold; }
20  virtual double GetOffset() { return fOffset; }
21 
22  protected:
23  bool IsAboveOffset(FairTimeStamp *val) { return val->GetTimeStamp() > fCurrentOffset; }
24  int CalcContainerPos(FairTimeStamp *val)
25  {
26  int result;
27  double resultD = ((val->GetTimeStamp() - fCurrentThreshold) / fThreshold);
28  result = resultD;
29  if (resultD > 0)
30  result++;
31  return result;
32  }
33 
34  private:
35  std::vector<std::vector<FairTimeStamp *>> fContainer;
36  double fThreshold;
37  double fCurrentThreshold;
38  double fOffset;
39  double fCurrentOffset;
40 };
41 
42 #endif
virtual double GetOffset()
std::vector< std::vector< FairTimeStamp * > > ProcessData(std::vector< FairTimeStamp *> data)
virtual void SetThreshold(double val)
bool IsAboveOffset(FairTimeStamp *val)
virtual void SetOffset(double val)
virtual double GetThreshold()
int CalcContainerPos(FairTimeStamp *val)
std::vector< std::vector< FairTimeStamp * > > GetLastData()