FairRoot/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 
20 #include "FairWriteoutBuffer.h"
21 #include "PndDiscDigitizedHit.h"
22 #include <iostream>
23 
24 
25 class PndDiscWriteoutBuffer : public FairWriteoutBuffer {
26 public:
27 
28 #ifdef RRTTI
29 struct CompareDigits {
31  bool operator() (const FairTimeStamp* const & p1, const FairTimeStamp* const & p2) const
32  { return (*p1) < (*p2); }
33 };
34 #endif
35 
36 public:
38  PndDiscWriteoutBuffer(TString branchName, TString folderName, Bool_t persistance);
39  virtual ~PndDiscWriteoutBuffer();
40 
41  // the following should become a functor:
42  virtual std::vector<std::pair<double, FairTimeStamp*> > Modify(std::pair<double, FairTimeStamp*> oldData, std::pair<double, FairTimeStamp*> newData);
43 
44 
45 #ifdef FWB_USE_INHERITANCE
46  // Interface due to lack of templates, will be replaced by
47  // RTTI based implementations in the base class:
48  virtual void AddNewDataToTClonesArray(FairTimeStamp*);
49  virtual double FindTimeForData(FairTimeStamp* data);
50  virtual void FillDataMap(FairTimeStamp* data, double activeTime);
51  virtual void EraseDataFromDataMap(FairTimeStamp* data);
52 #endif
53 
54 protected:
55 
56 #ifndef RRTTI
57  std::map<PndDiscDigitizedHit, double> fData_map;
58 #else
59  typedef std::map<FairTimeStamp*, double, CompareDigits> DataMap_t;
60  DataMap_t fData_map;
61  TBuffer * buffer;
62 #endif
63 
65 };
66 
67 #endif //DISCDIRCWRITEOUTBUFFER_H
ClassDef(PndDiscWriteoutBuffer, 1)
virtual void FillDataMap(FairTimeStamp *data, double activeTime)
virtual double FindTimeForData(FairTimeStamp *data)
TPad * p2
Definition: hist-t7.C:117
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 void EraseDataFromDataMap(FairTimeStamp *data)
TPad * p1
Definition: hist-t7.C:116
virtual void AddNewDataToTClonesArray(FairTimeStamp *)