/* Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt SPDX-License-Identifier: GPL-3.0-only Authors: Florian Uhlig [committer] */ // ----------------------------------------------------------------------------- // ----- ----- // ----- CbmAlgo ----- // ----- ----- // ----------------------------------------------------------------------------- #ifndef CbmAlgo_H #define CbmAlgo_H #include "Rtypes.h" #include <vector> class TList; template<class Input, class Output> class CbmAlgo { public: CbmAlgo() = default; virtual ~CbmAlgo() = default; CbmAlgo(const CbmAlgo&) = delete; CbmAlgo& operator=(const CbmAlgo&) = delete; virtual Bool_t Init() = 0; virtual void Reset() = 0; virtual void Finish() = 0; virtual Bool_t InitContainers() = 0; virtual Bool_t ReInitContainers() = 0; virtual TList* GetParList() = 0; virtual std::vector<Output> ProcessInputData(const std::vector<Input>&) = 0; protected: /// Parameter management TList* fParCList {nullptr}; private: }; #endif