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