/** * @file * @author Christian Simon * @since 2017-07-03 */ #ifndef CBMTOFSIGNALBUFFER_H #define CBMTOFSIGNALBUFFER_H 1 #include "Rtypes.h" #include #include #include class CbmTofDigiExp; /** * @brief ... * @author Christian Simon * @since 2017-07-03 * @version 1.0 * @details ... */ class CbmTofSignalBuffer { public: CbmTofSignalBuffer(Int_t iNChannels); virtual ~CbmTofSignalBuffer(); std::set& GetMergedDigiIndices(Int_t iChannelAddress) {return fMergedDigiIndices.at(iChannelAddress);} void SetIgnoreInterference(Bool_t bIgnore = kTRUE) {fbIgnoreInterference = bIgnore;} void Fill(Int_t iChannelAddress, CbmTofDigiExp*& Digi); Int_t ReadOutData(Int_t iChannelAddress, Double_t dTimeLimit, std::vector& DigiVector); protected: private: CbmTofSignalBuffer(const CbmTofSignalBuffer&); CbmTofSignalBuffer& operator=(const CbmTofSignalBuffer&); Bool_t CheckInterference(CbmTofDigiExp* FirstDigi, CbmTofDigiExp* SecondDigi); void Modify(CbmTofDigiExp* OldDigi1, CbmTofDigiExp* OldDigi2, CbmTofDigiExp*& NewDigi, Int_t iChannelAddress); std::map> fChannelBuffer; std::map> fMergedDigiIndices; Bool_t fbIgnoreInterference; ClassDef(CbmTofSignalBuffer, 0) }; #endif