00001 #ifndef QUICK_ANA__I_TOOL_SCHEDULER_H
00002 #define QUICK_ANA__I_TOOL_SCHEDULER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <QuickAna/Global.h>
00021
00022 #include <AsgTools/IAsgTool.h>
00023 #include <vector>
00024
00025 namespace CP
00026 {
00027 class SystematicSet;
00028 }
00029
00030 namespace ana
00031 {
00033 class IToolScheduler : virtual public asg::IAsgTool
00034 {
00035
00036
00037
00038
00039 ASG_TOOL_INTERFACE(IToolScheduler)
00040
00041
00042
00043
00044
00045
00046 public:
00047 StatusCode addTools (const Configuration& conf, InternalConfiguration& internal,
00048 const std::string& prefix);
00049
00053 public:
00054 virtual StatusCode addTool (IAnaTool *tool) = 0;
00055
00059 public:
00060 virtual CP::SystematicSet affectingSystematics () const = 0;
00061
00065 public:
00066 virtual CP::SystematicSet recommendedSystematics() const = 0;
00067
00074 public:
00075 virtual StatusCode
00076 applySystematicVariation (const CP::SystematicSet& systConfig) = 0;
00077
00083 public:
00084 virtual StatusCode
00085 fillEventObjects (IEventObjects*& object) = 0;
00086
00091 public:
00092 virtual const std::vector<CP::SystematicSet>& systematics () const = 0;
00093
00100 public:
00101 virtual StatusCode
00102 setSystematics (const std::vector<CP::SystematicSet>& val_systematics) = 0;
00103
00104
00110 public:
00111 virtual EventData getEventData () const = 0;
00112 };
00113 }
00114
00115 #endif