#ifndef MARS_MTask #define MARS_MTask ///////////////////////////////////////////////////////////////////////////// // // // MTask // // // // Abstract base class for a task // // // ///////////////////////////////////////////////////////////////////////////// #ifndef MARS_MInputStreamID #include "MInputStreamID.h" #endif class TList; class MFilter; class MParList; class MTask : public MInputStreamID { private: TList *fListOfBranches; // List of Branch names for auto enabeling scheme const MFilter *fFilter; // Filter for conditional task execution Bool_t fIsPreprocessed; // Indicates the success of the PreProcessing (set by MTaskList) UInt_t fNumExecutions; // Number of Excutions virtual Bool_t PreProcess(MParList *pList); virtual Bool_t Process(); virtual Bool_t PostProcess(); protected: void AddToBranchList(const char *b); void AddToBranchList(const TString &str) { AddToBranchList((const char*)str); } void AddToBranchList(const char *master, const char *sub, const UInt_t first, const UInt_t last) { if (first==0 && last==0) { AddToBranchList(sub); return; } for (unsigned int i=first; i