00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef JOBC_NODE_H
00010 #define JOBC_NODE_H
00011 #include <string>
00012 #ifndef JOBC_RESOURCE_H
00013 #include "JobControl/Resource.h"
00014 #endif
00015 namespace edm { class EventHandle; }
00016 namespace jobc { class Module; }
00017
00018 namespace jobc {
00021 class Node {
00022 public:
00023 Node();
00024 Node(const char* name, const char* ver="default", bool isSeq=false);
00025 Node(const Node& n);
00026 virtual ~Node();
00027
00028 const char* Name() const { return fName.c_str(); }
00029 const char* FolderName() const { return fFolderName.c_str(); }
00030 bool IsSequence() const { return fIsSequence; }
00031
00032 void SetFilter (bool onoff=true) { fFilterActive = onoff; }
00033 void ReverseFilter(bool onoff=true) { fFilterReversed = onoff; }
00034 void ActivateReco (bool onoff=true) { fRecoActive = onoff; }
00035 void ActivateAna (bool onoff=true) { fAnaActive = onoff; }
00036
00037 void StepInToFolder() const;
00038 void StepOutOfFolder() const;
00039
00040 Node& operator=(const Node& rhs);
00041 Module* GetModule();
00042
00043 virtual Node* GetNode(const char* ) { return this; }
00044 virtual bool Exec(edm::EventHandle& evt);
00045 virtual void Print(const char* indent=0) const;
00046 virtual void ResourceReport(bool printheader=false) const;
00047
00048 double AnaTime() const;
00049 double RecoTime() const;
00050 protected:
00051 Module* fModule;
00052 bool fIsSequence;
00053
00054 std::string fName;
00055 std::string fVersion;
00056 std::string fFolderName;
00057 bool fFilterActive;
00058 bool fFilterReversed;
00059 bool fRecoActive;
00060 bool fAnaActive;
00061 unsigned int fNpassReco;
00062 unsigned int fNfailReco;
00063 unsigned int fNpassAna;
00064 unsigned int fNfailAna;
00065 Resource fResourceAna;
00066 Resource fResourceReco;
00067 };
00068 }
00069 #endif // JOBCNODE_H
00070
00071