PandaRoot
BSEmcWaveformData.h
Go to the documentation of this file.
1 //#pragma once
2 #ifndef BSEMCWAVEFORMDATA_HH
3 #define BSEMCWAVEFORMDATA_HH
4 
5 #include <map>
6 #include <ostream>
7 #include <string>
8 
9 #include "Rtypes.h"
10 #include "RtypesCore.h"
11 #include "TObject.h"
12 #include "TRef.h"
13 
14 #include "FairLink.h"
15 #include "FairTimeStamp.h"
16 
18 
19 class BSEmcWaveform;
20 class FairLink;
21 class TBuffer;
22 class TClass;
23 class TMemberInspector;
24 
30 class BSEmcWaveformData : public FairTimeStamp {
31  friend std::ostream &operator<<(std::ostream &t_out, BSEmcWaveformData &t_wfData)
32  {
33  t_out << "waveform links to " << t_wfData.fDepMap.size() << " BSEmcMCDeps:" << std::endl;
34 
35  Int_t count = 0;
36  for (auto &it : t_wfData.fDepMap) {
37  t_out << "\t#" << count++ << "\t time: " << it.first << "\t energy: " << it.second << std::endl;
38  }
39 
40  return t_out;
41  }
42 
43  public:
45  BSEmcWaveformData(Int_t t_detId, BSEmcAbsWaveformSimulator *t_wfSimulator);
46 
47  virtual ~BSEmcWaveformData(){};
48 
49  virtual Bool_t operator<(const BSEmcWaveformData &t_wfData) const;
50 
51  virtual BSEmcWaveformData &operator+=(const BSEmcWaveformData &t_toAdd);
52 
53  virtual Bool_t equal(FairTimeStamp *t_data) /*override*/;
54 
55  virtual void AddDeposit(const FairLink &t_linkToDeposit, Double_t t_absEventTime, Double_t t_energy);
56 
57  Int_t GetDetectorId() { return fDetectorId; };
58  Int_t GetNDeposits() { return fDepMap.size(); };
59  const std::map<Double_t, Double_t> &GetDepositMap() { return fDepMap; };
61  Double_t GetTimeOfLastSample() { return fTimeOfLastSample; };
62  void GetDepositParameter(Int_t t_depositNo, Double_t &t_time, Double_t &t_energy);
63 
64  void SetWaveformSimulator(BSEmcAbsWaveformSimulator *t_wfSimulator) { fWfSimulator.SetObject(t_wfSimulator); };
65  void SetTimeOfLastSample(Double_t t_time) { fTimeOfLastSample = t_time; };
66  void SetOverlapTime(const Double_t t_overlap) { fOverlapTime = t_overlap; }
67  Double_t GetOverlapTime() const { return fOverlapTime; }
68 
69  protected:
70  Int_t fDetectorId{-1};
71  Double_t fTimeOfLastSample{-1};
72  Double_t fOverlapTime{-1};
73 
74  TRef fWfSimulator{};
75  std::map<Double_t, Double_t> fDepMap{};
76 
77  ClassDef(BSEmcWaveformData, 1)
78 };
79 
80 #endif /*BSEMCWAVEFORMDATA_HH*/
std::map< Double_t, Double_t > fDepMap
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
virtual BSEmcWaveformData & operator+=(const BSEmcWaveformData &t_toAdd)
virtual void AddDeposit(const FairLink &t_linkToDeposit, Double_t t_absEventTime, Double_t t_energy)
virtual ~BSEmcWaveformData()
Double_t GetTimeOfLastSample()
virtual Bool_t equal(FairTimeStamp *t_data)
void GetDepositParameter(Int_t t_depositNo, Double_t &t_time, Double_t &t_energy)
BSEmcAbsWaveformSimulator * GetWaveformSimulator()
Abstract base class for waveform simulator.
void SetWaveformSimulator(BSEmcAbsWaveformSimulator *t_wfSimulator)
represents a simulated waveform in an emc crystal, used by BSEmcFwEndcapTimebasedWaveforms ...
friend std::ostream & operator<<(std::ostream &t_out, BSEmcWaveformData &t_wfData)
Double_t GetOverlapTime() const
virtual Bool_t operator<(const BSEmcWaveformData &t_wfData) const
void SetTimeOfLastSample(Double_t t_time)
void SetOverlapTime(const Double_t t_overlap)
const std::map< Double_t, Double_t > & GetDepositMap()