00001 #ifndef QUICK_ANA__OBJECTS_OUTPUT_TOOL_H
00002 #define QUICK_ANA__OBJECTS_OUTPUT_TOOL_H
00003
00004 #include <QuickAna/Global.h>
00005
00006 #include <AsgTools/AsgTool.h>
00007 #include <QuickAna/IOutputTool.h>
00008 #include <AsgTools/AnaToolHandle.h>
00009
00010 namespace ana
00011 {
00012
00018 class ObjectsOutputTool : public IOutputToolOld,
00019 public asg::AsgTool
00020 {
00021
00023 ASG_TOOL_CLASS(ObjectsOutputTool, IOutputToolOld)
00024
00025 public:
00026
00028 ObjectsOutputTool(const std::string& name);
00029
00031 virtual StatusCode initialize() override;
00032
00038 __attribute__ ((deprecated))
00039 virtual StatusCode execute(xAOD::TEvent* outputStore);
00040
00045 virtual StatusCode write(xAOD::TEvent* outputStore,
00046 const std::string& suffix = "") override;
00047
00049 StatusCode addOutputCopyObject(const std::string& name);
00050
00052 StatusCode addOutputObject(ana::ObjectType objType,
00053 const std::string& basename);
00054
00059
00060
00061
00063 void setSuffixes(const std::vector<CP::SystematicSet>& sysList);
00064
00065 private:
00066
00068 std::vector<std::string> m_suffixes;
00069
00071 std::vector< asg::AnaToolHandle<IOutputToolOld> > m_outputTools;
00072
00074
00075
00076 };
00077
00078 }
00079
00080 #endif