#ifndef BASE_PROGMGR_H #define BASE_PROGMGR_H #include #include #include "base/defines.h" #include "base/Buffer.h" #include "base/Markers.h" #include "base/Event.h" class TTree; class TObject; namespace base { class Processor; class StreamProc; class EventProc; class EventStore; /** \brief Central data and process manager * * \ingroup stream_core_classes * * Class base::ProcMgr is central manager of processors and interface * to any external frameworks like ROOT or Go4 or ... * It is singleton - the only instance for whole system */ class ProcMgr { friend class Processor; protected: enum { MaxBrdId = 256 }; enum { NoSyncIndex = 0xfffffffe, DummyIndex = 0xffffffff }; /** map of stream processors */ typedef std::map StreamProcMap; struct HistBinning { int nbins{0}; double left{0.}, right{0}; HistBinning() = default; HistBinning(int _nbins, double _left, double _right) : nbins(_nbins), left(_left), right(_right) {} HistBinning& operator=(const HistBinning& src) { nbins = src.nbins; left = src.left; right = src.right; return *this; } }; std::string fSecondName; /// fProc; /// fEvProc; /// fCustomBinning; ///