PandaRoot
PndWriteoutBuffer.h
Go to the documentation of this file.
1 
24 #ifndef PNDWRITEOUTBUFFER_H_
25 #define PNDWRITEOUTBUFFER_H_
26 
27 #include "TObject.h"
28 #include "TString.h"
29 #include "FairWriteoutBuffer.h"
30 #include "FairTimeStamp.h"
31 #include <map>
32 
33 class PndWriteoutBuffer : public FairWriteoutBuffer {
34  public:
36  PndWriteoutBuffer(TString branchName, TString className, TString folderName, Bool_t persistance);
37  virtual ~PndWriteoutBuffer(){};
38 
39  virtual void WriteOutData(double time);
40  virtual void WriteOutAllData();
41 
42  virtual void SaveDataToTree(Bool_t val = kTRUE) { fTreeSave = val; }
43  virtual void ActivateBuffering(Bool_t val = kTRUE)
44  {
45  fActivateBuffering = val;
46  }
47 
48  virtual std::vector<FairTimeStamp *> GetRemoveOldData(double time);
49  virtual std::vector<FairTimeStamp *> GetAllData();
50  virtual void FillNewData(FairTimeStamp *data, double activeTime);
51  virtual Int_t GetNData() { return fDeadTime_map.size(); }
52 
53  virtual void AddNewDataToTClonesArray(FairTimeStamp *data) = 0;
54  virtual void DeleteOldData()
55  {
56  TClonesArray *myArray = FairRootManager::Instance()->GetTClonesArray(fBranchName);
57  myArray->Delete();
58  }
59 
60  virtual double FindTimeForData(
61  FairTimeStamp *data) = 0;
62  virtual void FillDataMap(FairTimeStamp *data, double activeTime) = 0;
63  virtual void EraseDataFromDataMap(FairTimeStamp *data) = 0;
64 
65  virtual void SetVerbose(Int_t val) { fVerbose = val; }
66 
67  protected:
70  virtual std::vector<std::pair<double, FairTimeStamp *>> Modify(std::pair<double, FairTimeStamp *> oldData, std::pair<double, FairTimeStamp *> newData)
71  {
72  std::vector<std::pair<double, FairTimeStamp *>> result;
73  result.push_back(oldData);
74  return result;
75  }
76 
77  std::multimap<double, FairTimeStamp *> fDeadTime_map;
78 
79  TString fBranchName;
80  TString fClassName;
81  Bool_t fTreeSave;
83  Int_t fVerbose;
85 };
86 
87 #endif /* PNDWRITEOUTBUFFER_H_ */
virtual void FillDataMap(FairTimeStamp *data, double activeTime)=0
add a new element in the search buffer
virtual void DeleteOldData()
virtual Int_t GetNData()
virtual ~PndWriteoutBuffer()
virtual void EraseDataFromDataMap(FairTimeStamp *data)=0
delete the element from the search buffer (see PndSdsDigiPixelWriteoutBuffer)
virtual void WriteOutData(double time)
virtual void WriteOutAllData()
virtual std::vector< FairTimeStamp * > GetRemoveOldData(double time)
virtual std::vector< FairTimeStamp * > GetAllData()
virtual void FillNewData(FairTimeStamp *data, double activeTime)
virtual void AddNewDataToTClonesArray(FairTimeStamp *data)=0
store the data from the FairTimeStamp pointer in a TClonesArray (you have to cast it to your type of ...
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp *> oldData, std::pair< double, FairTimeStamp *> newData)
std::multimap< double, FairTimeStamp * > fDeadTime_map
virtual double FindTimeForData(FairTimeStamp *data)=0
if the same data object (like a pad or a pixel) is already present in the buffer, the time of this ob...
virtual void SaveDataToTree(Bool_t val=kTRUE)
If SaveDataToTree is set the data is stored at the end of the buffering into the given TClonesArray...
A container class to store digi data during events.
virtual void ActivateBuffering(Bool_t val=kTRUE)
fActivateBuffering has to be set to kTRUE to use the buffering. Otherwise the data is directly stored...
virtual void SetVerbose(Int_t val)
ClassDef(PndWriteoutBuffer, 1)