PandaRoot
BSEmcWaveformBuffer.h
Go to the documentation of this file.
1 /*
2  * BSEmcWaveformBuffer.h
3  */
4 
5 #ifndef BSEMCWAVEFORMBUFFER_HH
6 #define BSEMCWAVEFORMBUFFER_HH
7 
8 #include <map>
9 #include <utility>
10 #include <vector>
11 
12 #include "Rtypes.h"
13 #include "RtypesCore.h"
14 #include "TString.h"
15 
16 #include "FairWriteoutBuffer.h"
17 
18 #include "BSEmcWaveformData.h"
19 
20 class FairTimeStamp;
21 class BSEmcWaveformData;
22 class TClonesArray;
23 class TBuffer;
24 class TClass;
25 class TMemberInspector;
26 
32 class BSEmcWaveformBuffer : public FairWriteoutBuffer {
33  public:
35  BSEmcWaveformBuffer(TString t_branchName, TString t_className, TString t_folderName, Bool_t t_persistance);
36 
37  virtual ~BSEmcWaveformBuffer();
38 
39  virtual void AddNewDataToTClonesArray(FairTimeStamp * /*data*/) /*override*/;
40  virtual Double_t FindTimeForData(FairTimeStamp *t_data) /*override*/;
41  virtual void FillDataMap(FairTimeStamp *t_data, Double_t t_activeTime) /*override*/;
42  virtual void EraseDataFromDataMap(FairTimeStamp *t_data) /*override*/;
43 
44  virtual void DeleteOldData() /*override*/;
45  virtual void StoreWaveformData(TString t_branchName, TString t_folderName, Bool_t t_persistance) /*override*/;
46 
47  virtual void FillNewData(BSEmcWaveformData *) /*override*/;
48 
49  private:
50  // don't allow copying (-Weffc++)
51  BSEmcWaveformBuffer(const BSEmcWaveformBuffer &); // no implementation
52  BSEmcWaveformBuffer &operator=(const BSEmcWaveformBuffer &); // no implementation
53 
54  protected:
55  std::vector<std::pair<Double_t, FairTimeStamp *>> Modify(std::pair<Double_t, FairTimeStamp *> t_oldData, std::pair<Double_t, FairTimeStamp *> t_newData);
56 
57  std::map<BSEmcWaveformData, Double_t> fData_map{};
58  Bool_t fStoreWaveformData{kFALSE};
59  TClonesArray *fWfDataArray{nullptr};
60  TString fWfDataBranchName{""};
61 
63 };
64 
65 #endif /*BSEMCWAVEFORMBUFFER_HH*/
std::map< BSEmcWaveformData, Double_t > fData_map
virtual void AddNewDataToTClonesArray(FairTimeStamp *)
ClassDef(BSEmcWaveformBuffer, 0)
virtual void StoreWaveformData(TString t_branchName, TString t_folderName, Bool_t t_persistance)
virtual ~BSEmcWaveformBuffer()
virtual void FillNewData(BSEmcWaveformData *)
buffer for waveforms, used by BSEmcFwEndcapTimebasedWaveforms
represents a simulated waveform in an emc crystal, used by BSEmcFwEndcapTimebasedWaveforms ...
TClonesArray * fWfDataArray
virtual void FillDataMap(FairTimeStamp *t_data, Double_t t_activeTime)
virtual void EraseDataFromDataMap(FairTimeStamp *t_data)
std::vector< std::pair< Double_t, FairTimeStamp * > > Modify(std::pair< Double_t, FairTimeStamp *> t_oldData, std::pair< Double_t, FairTimeStamp *> t_newData)
virtual void DeleteOldData()
virtual Double_t FindTimeForData(FairTimeStamp *t_data)