PandaRoot
PndEmcWaveformBuffer.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  * PndEmcWaveformBuffer.h
15  */
16 
17 #ifndef PNDEMCWAVEFORMBUFFER_H_
18 #define PNDEMCWAVEFORMBUFFER_H_
19 
20 #include "FairWriteoutBuffer.h"
21 
22 class FairTimeStamp;
23 class PndEmcWaveformData;
24 
25 class TClonesArray;
26 
32 class PndEmcWaveformBuffer : public FairWriteoutBuffer {
33  public:
35  PndEmcWaveformBuffer(TString branchName, TString className, TString folderName, Bool_t persistance);
36 
37  virtual ~PndEmcWaveformBuffer();
38 
39  virtual void AddNewDataToTClonesArray(FairTimeStamp *);
40  virtual double FindTimeForData(FairTimeStamp *data);
41  virtual void FillDataMap(FairTimeStamp *data, double activeTime);
42  virtual void EraseDataFromDataMap(FairTimeStamp *data);
43 
44  virtual void DeleteOldData();
45  virtual void StoreWaveformData(TString branchName, TString folderName, bool persistance);
46 
47  virtual void FillNewData(PndEmcWaveformData *);
48 
49  private:
50  // don't allow copying (-Weffc++)
51  PndEmcWaveformBuffer(const PndEmcWaveformBuffer &); // no implementation
52  PndEmcWaveformBuffer &operator=(const PndEmcWaveformBuffer &); // no implementation
53 
54  protected:
55  std::map<PndEmcWaveformData, double> fData_map;
56  std::vector<std::pair<double, FairTimeStamp *>> Modify(std::pair<double, FairTimeStamp *> oldData, std::pair<double, FairTimeStamp *> newData);
57 
59 
61  TClonesArray *fWfDataArray;
63 };
64 
65 #endif /* PNDEMCWAVEFORMBUFFER_H*/
std::map< PndEmcWaveformData, double > fData_map
virtual void DeleteOldData()
virtual void StoreWaveformData(TString branchName, TString folderName, bool persistance)
virtual void AddNewDataToTClonesArray(FairTimeStamp *)
virtual void EraseDataFromDataMap(FairTimeStamp *data)
virtual void FillNewData(PndEmcWaveformData *)
std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp *> oldData, std::pair< double, FairTimeStamp *> newData)
virtual ~PndEmcWaveformBuffer()
buffer for waveforms, used by PndEmcFWEndcapTimebasedWaveforms
ClassDef(PndEmcWaveformBuffer, 0)
virtual double FindTimeForData(FairTimeStamp *data)
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
virtual void FillDataMap(FairTimeStamp *data, double activeTime)