PandaRoot
PndDiscWriteoutBuffer.h
Go to the documentation of this file.
1 //-------------------------------------------------------------------------
2 // Author: Oliver Merle (Oliver.Merle@exp2.physik.uni-giessen.de)
3 // Changes: Mustafa Schmidt (Mustafa.A.Schmidt@physik.uni-giessen.de)
4 // Date: 30.11.2015
5 // Description: Customization of FairRoot Write out buffer
6 // for time-based simulations
7 //-------------------------------------------------------------------------
8 
9 #ifndef DISCDIRCWRITEOUTBUFFER_H
10 #define DISCDIRCWRITEOUTBUFFER_H
11 
12 // ---------------------------
13 // vanilla PROOT
14 // ---------------------------
15 //#define RRTTI
16 #define FWB_USE_INHERITANCE
17 // ---------------------------
18 
19 #include "FairWriteoutBuffer.h"
20 #include "PndDiscDigitizedHit.h"
21 #include <iostream>
22 
23 class PndDiscWriteoutBuffer : public FairWriteoutBuffer {
24  public:
25 #ifdef RRTTI
26  struct CompareDigits {
28  bool operator()(const FairTimeStamp *const &p1, const FairTimeStamp *const &p2) const { return (*p1) < (*p2); }
29  };
30 #endif
31 
32  public:
34  PndDiscWriteoutBuffer(TString branchName, TString folderName, Bool_t persistance);
35  virtual ~PndDiscWriteoutBuffer();
36 
37  // the following should become a functor:
38  virtual std::vector<std::pair<double, FairTimeStamp *>> Modify(std::pair<double, FairTimeStamp *> oldData, std::pair<double, FairTimeStamp *> newData);
39 
40 #ifdef FWB_USE_INHERITANCE
41  // Interface due to lack of templates, will be replaced by
42  // RTTI based implementations in the base class:
43  virtual void AddNewDataToTClonesArray(FairTimeStamp *);
44  virtual double FindTimeForData(FairTimeStamp *data);
45  virtual void FillDataMap(FairTimeStamp *data, double activeTime);
46  virtual void EraseDataFromDataMap(FairTimeStamp *data);
47 #endif
48 
49  protected:
50 #ifndef RRTTI
51  std::map<PndDiscDigitizedHit, double> fData_map;
52 #else
53  typedef std::map<FairTimeStamp *, double, CompareDigits> DataMap_t;
54  DataMap_t fData_map;
55  TBuffer *buffer;
56 #endif
57 
59 };
60 
61 #endif // DISCDIRCWRITEOUTBUFFER_H
ClassDef(PndDiscWriteoutBuffer, 1)
virtual ~PndDiscWriteoutBuffer()
virtual void FillDataMap(FairTimeStamp *data, double activeTime)
virtual void EraseDataFromDataMap(FairTimeStamp *data)
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp *> oldData, std::pair< double, FairTimeStamp *> newData)
std::map< PndDiscDigitizedHit, double > fData_map
virtual double FindTimeForData(FairTimeStamp *data)
virtual void AddNewDataToTClonesArray(FairTimeStamp *)