/* * PndMQHitsEventBuilder.h * * Created on: 21.10.2015 * Author: Stockmanns */ #ifndef MVD_MVDOFFLINETBANALYSIS_TOPIX4_MQ_PNDMQHITSEVENTBUILDER_H_ #define MVD_MVDOFFLINETBANALYSIS_TOPIX4_MQ_PNDMQHITSEVENTBUILDER_H_ #include #include #include "PndSdsHit.h" using namespace std; class PndMQHitsEventBuilder { public: PndMQHitsEventBuilder(int nChannels = 4); virtual ~PndMQHitsEventBuilder(); void AddData(vector > >& data); vector > GetEvents(); vector GetSensorsInEvent(){ return fSensorsInEvent;} std::vector GetInputDataLevel(){ std::vector result; for (auto& channelIter : fInputData){ result.push_back(channelIter.size()); } return result; } protected: vector GetChannelsInEvent(vector >& eventData); int FindFirstChannel(vector >& eventData); ///< channel which has the oldest data vector GetNextEvent(); vector fSensorsInEvent; bool HasData(); private: vector > > fInputData; //< array of InputChannels. An InputChannel contains PndSdsHits grouped in events int fNChannels; int fEventCounter; }; #endif /* MVD_MVDOFFLINETBANALYSIS_TOPIX4_MQ_PNDMQHITSEVENTBUILDER_H_ */