// ----------------------------------------------------------------------------- // ----- ----- // ----- CbmTSUnpack ----- // ----- Created 07.11.2014 by F. Uhlig ----- // ----- ----- // ----------------------------------------------------------------------------- #ifndef CBMTSUNPACK_H #define CBMTSUNPACK_H #include // for ClassDef #include // for Bool_t, kTRUE #include // for size_t #include // for TObject #include #include // FairRootManager namespace fles { class Timeslice; } class CbmTSUnpack : public TObject { public: CbmTSUnpack(); virtual ~CbmTSUnpack(); virtual Bool_t Init() = 0; virtual Bool_t DoUnpack(const fles::Timeslice& ts, size_t component) = 0; virtual void Reset() = 0; virtual void Finish() = 0; virtual void SetParContainers() = 0; virtual Bool_t InitContainers() {return kTRUE;} virtual Bool_t ReInitContainers() {return kTRUE;} virtual void FillOutput(boost::any) = 0; /** @brief Register the output arrays ** ** An array for the digis will be created and ** registered as output to the ROOT tree. The current implementation ** uses std::vector as container. ** The pointer to the registered array is passed as return value **/ template std::vector* RegisterOutput(std::string branchName) { // --- Get FairRootManager instance FairRootManager* ioman = FairRootManager::Instance(); assert ( ioman ); // --- Branch for digis std::vector* fDigis = new std::vector(); ioman->RegisterAny(branchName.c_str(), fDigis, kTRUE); return fDigis; // Isoutputbranchpersistent(branchName)); } // -------------------------------------------------------------------------- ClassDef(CbmTSUnpack, 0) }; #endif