00001 #ifndef QUICK_ANA__SUSY_OR_TOOL_H
00002 #define QUICK_ANA__SUSY_OR_TOOL_H
00003
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
00017 #include "AssociationUtils/OverlapDecorationHelper.h"
00018
00019
00020 namespace ORUtils
00021 {
00022 class IOverlapTool;
00023 }
00024
00025 namespace ana
00026 {
00031 class SusyORTool : public AnaTool
00032 {
00033
00034
00035
00036
00037 ASG_TOOL_CLASS (SusyORTool, ana::IAnaTool)
00038
00039 public:
00040
00044 SusyORTool (const std::string& name);
00045
00046
00048 virtual StatusCode
00049 setObjectType (ObjectType type, const std::string& workingPoint) override;
00050
00051
00055 StatusCode initialize() override;
00056
00057
00060 virtual AnalysisStep step () const override;
00061
00062
00064 virtual unsigned inputTypes () const override;
00065
00066
00068 virtual unsigned outputTypes () const override;
00069
00070
00074 virtual StatusCode execute (IEventObjects& objects) override;
00075
00076 protected:
00077
00079 void printObj (const char* APP_NAME, const char* type,
00080 const xAOD::IParticle* obj) const;
00081
00082 private:
00083
00084
00085
00087 std::unique_ptr<ORUtils::OverlapDecorationHelper> m_decHelper;
00088
00090 asg::AnaToolHandle<ORUtils::IOverlapTool> m_eleMuTool;
00092 asg::AnaToolHandle<ORUtils::IOverlapTool> m_eleJetTool;
00094 asg::AnaToolHandle<ORUtils::IOverlapTool> m_muJetTool;
00096 asg::AnaToolHandle<ORUtils::IOverlapTool> m_phoEleTool;
00098 asg::AnaToolHandle<ORUtils::IOverlapTool> m_phoJetTool;
00099
00101 std::string m_orInputLabel;
00102
00104 std::string m_orOutputLabel;
00105
00107 std::string m_bJetLabel;
00108
00110 bool m_customMuons;
00111
00112 };
00113 }
00114
00115 #endif