#pragma once #ifndef PNDEMCWAVEFORMDATA_H #define PNDEMCWAVEFORMDATA_H #include "FairTimeStamp.h" #include "FairLink.h" #include "PndEmcAbsWaveformSimulator.h" #include "TRef.h" #include "TObject.h" #include #include class PndEmcWaveform; class PndEmcWaveformData : public FairTimeStamp { public: PndEmcWaveformData(); PndEmcWaveformData(Int_t detId, PndEmcAbsWaveformSimulator* wfSimulator); virtual ~PndEmcWaveformData() {}; virtual bool operator <(const PndEmcWaveformData& wfData) const; friend std::ostream& operator<<(std::ostream& out, PndEmcWaveformData& wfData); virtual PndEmcWaveformData& operator+=(const PndEmcWaveformData& toAdd); virtual bool equal(FairTimeStamp* data); virtual void AddHit(const FairLink& linkToHit, Double_t absEventTime, Double_t energy); Int_t GetDetectorId() { return fDetectorId; }; Int_t GetNHits() { return fHitMap.size(); }; const std::map& GetHitMap() { return fHitMap; }; PndEmcAbsWaveformSimulator* GetWaveformSimulator() { return dynamic_cast(fWfSimulator.GetObject()); }; Double_t GetTimeOfLastSample() { return fTimeOfLastSample; }; void GetHitParameter(Int_t hitNo, Double_t& time, Double_t& energy); void SetWaveformSimulator(PndEmcAbsWaveformSimulator* wfSimulator) { fWfSimulator.SetObject(wfSimulator); }; void SetTimeOfLastSample(Double_t time) { fTimeOfLastSample = time; }; protected: Int_t fDetectorId; Double_t fTimeOfLastSample; TRef fWfSimulator; std::map fHitMap; ClassDef(PndEmcWaveformData, 1) }; #endif