FairRoot/PandaRoot
PndWriteoutBuffer.h
Go to the documentation of this file.
1 
24 #ifndef PNDWRITEOUTBUFFER_H_
25 #define PNDWRITEOUTBUFFER_H_
26 
27 
28 
29 #include "TObject.h"
30 #include "TString.h"
31 #include "FairWriteoutBuffer.h"
32 #include "FairTimeStamp.h"
33 #include <map>
34 
35 
36 class PndWriteoutBuffer: public FairWriteoutBuffer{
37 public:
39  PndWriteoutBuffer(TString branchName, TString className, TString folderName, Bool_t persistance);
40  virtual ~PndWriteoutBuffer(){};
41 
42  virtual void WriteOutData(double time);
43  virtual void WriteOutAllData();
44 
45  virtual void SaveDataToTree(Bool_t val = kTRUE){fTreeSave = val;}
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  TClonesArray* myArray = FairRootManager::Instance()->GetTClonesArray(fBranchName);
56  myArray->Delete();
57  }
58 
59  virtual double FindTimeForData(FairTimeStamp* data) = 0;
60  virtual void FillDataMap(FairTimeStamp* data, double activeTime) = 0;
61  virtual void EraseDataFromDataMap(FairTimeStamp* data) = 0;
62 
63  virtual void SetVerbose(Int_t val){fVerbose = val;}
64 protected:
65 
68  virtual std::vector<std::pair<double, FairTimeStamp*> > Modify(std::pair<double, FairTimeStamp*> oldData, std::pair<double, FairTimeStamp*> newData){
69  std::vector<std::pair<double, FairTimeStamp*> > result;
70  result.push_back(oldData);
71  return result;
72  }
73 
74  std::multimap<double, FairTimeStamp*> fDeadTime_map;
75 
80  Int_t fVerbose;
82 };
83 
84 #endif /* PNDWRITEOUTBUFFER_H_ */
virtual void FillDataMap(FairTimeStamp *data, double activeTime)=0
add a new element in the search buffer
virtual void DeleteOldData()
std::multimap< double, FairTimeStamp * > fDeadTime_map
virtual std::vector< FairTimeStamp * > GetRemoveOldData(double time)
virtual Int_t GetNData()
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp * > oldData, std::pair< double, FairTimeStamp * > newData)
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
virtual ~PndWriteoutBuffer()
virtual void EraseDataFromDataMap(FairTimeStamp *data)=0
delete the element from the search buffer (see PndSdsDigiPixelWriteoutBuffer)
virtual void FillNewData(FairTimeStamp *data, double activeTime)
virtual void WriteOutData(double time)
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 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...
virtual void WriteOutAllData()
A container class to store digi data during events.
virtual std::vector< FairTimeStamp * > GetAllData()
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)