00001 #ifndef QUICK_ANA__LEGACY_OR_TOOL_H
00002 #define QUICK_ANA__LEGACY_OR_TOOL_H
00003
00004
00005
00006
00007
00008
00009
00010 #include <QuickAna/Global.h>
00011
00012 #include <QuickAna/AnaTool.h>
00013 #include <AsgTools/AnaToolHandle.h>
00014 #include <QuickAna/xAODInclude.h>
00015
00016 class IOverlapRemovalTool;
00017
00018 namespace ana
00019 {
00026 class LegacyORTool : public AnaTool
00027 {
00028
00029
00030
00031
00032 ASG_TOOL_CLASS (LegacyORTool, ana::IAnaTool)
00033
00034 public:
00035
00039 LegacyORTool (const std::string& name);
00040
00041
00043 virtual StatusCode
00044 setObjectType (ObjectType type, const std::string& workingPoint) override;
00045
00046
00050 StatusCode initialize() override;
00051
00052
00055 virtual AnalysisStep step () const override;
00056
00057
00059 virtual unsigned inputTypes () const override;
00060
00061
00063 virtual unsigned outputTypes () const override;
00064
00065
00069 virtual StatusCode execute (IEventObjects& objects) override;
00070
00071
00073 enum OR_Type {
00074 Default = 0,
00075 run1_top_default,
00076 run1_SSbjets,
00077 run1_susy_default
00078 };
00079
00080 protected:
00081
00083 void printObj (const char* APP_NAME, const char* type,
00084 const xAOD::IParticle* obj) const;
00085
00086 private:
00087
00088
00089
00091 asg::AnaToolHandle<IOverlapRemovalTool> m_ortool;
00092
00094 std::string m_orInputLabel;
00095
00097 std::string m_orOutputLabel;
00098
00100
00101
00102
00103 int m_or_type;
00104
00105 };
00106 }
00107
00108 #endif