PandaRoot
BSEmcWaveformBuffer.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 /*
14  * BSEmcWaveformBuffer.h
15  */
16 
17 #ifndef BSEMCWAVEFORMBUFFER_HH
18 #define BSEMCWAVEFORMBUFFER_HH
19 
20 #include <map>
21 #include <utility>
22 #include <vector>
23 
24 #include "Rtypes.h"
25 #include "RtypesCore.h"
26 #include "TString.h"
27 
28 #include "FairWriteoutBuffer.h"
29 
30 #include "BSEmcWaveformData.h"
31 
32 class FairTimeStamp;
33 class BSEmcWaveformData;
34 class TClonesArray;
35 class TBuffer;
36 class TClass;
37 class TMemberInspector;
38 
44 class BSEmcWaveformBuffer : public FairWriteoutBuffer {
45  public:
47  BSEmcWaveformBuffer(TString t_branchName, TString t_className, TString t_folderName, Bool_t t_persistance);
48 
49  virtual ~BSEmcWaveformBuffer();
50 
51  virtual void AddNewDataToTClonesArray(FairTimeStamp * /*data*/) /*override*/;
52  virtual Double_t FindTimeForData(FairTimeStamp *t_data) /*override*/;
53  virtual void FillDataMap(FairTimeStamp *t_data, Double_t t_activeTime) /*override*/;
54  virtual void EraseDataFromDataMap(FairTimeStamp *t_data) /*override*/;
55 
56  virtual void DeleteOldData() /*override*/;
57  virtual void StoreWaveformData(TString t_branchName, TString t_folderName, Bool_t t_persistance) /*override*/;
58 
59  virtual void FillNewData(BSEmcWaveformData *) /*override*/;
60 
61  private:
62  // don't allow copying (-Weffc++)
63  BSEmcWaveformBuffer(const BSEmcWaveformBuffer &); // no implementation
64  BSEmcWaveformBuffer &operator=(const BSEmcWaveformBuffer &); // no implementation
65 
66  protected:
67  std::vector<std::pair<Double_t, FairTimeStamp *>> Modify(std::pair<Double_t, FairTimeStamp *> t_oldData, std::pair<Double_t, FairTimeStamp *> t_newData);
68 
69  std::map<BSEmcWaveformData, Double_t> fData_map{};
70  Bool_t fStoreWaveformData{kFALSE};
71  TClonesArray *fWfDataArray{nullptr};
72  TString fWfDataBranchName{""};
73 
75 };
76 
77 #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)