Skip to content
Snippets Groups Projects
Forked from Computing / cbmroot
3817 commits behind the upstream repository.
CbmAlgo.h 1.10 KiB
// -----------------------------------------------------------------------------
// -----                                                                   -----
// -----                         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