00001 #ifndef QUICK_ANA__ZZ4l_MUON_TOOL_H
00002 #define QUICK_ANA__ZZ4l_MUON_TOOL_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
00023
00024 #include <QuickAna/AnaToolSelect.h>
00025 #include <AsgTools/AnaToolHandle.h>
00026 #include <QuickAna/SelectionCut.h>
00027
00028 namespace CP
00029 {
00030 class IMuonSelectionTool;
00031 class IIsolationSelectionTool;
00032 }
00033
00034 namespace WPType{
00035 enum {
00036 _HZZ4l,
00037 _SMZZ4l,
00038 _ZHinv,
00039 _Hmumu
00040 };
00041 }
00042
00043
00044 namespace ana
00045 {
00046
00047 class HZZMuonTool : public AnaToolSelect<xAOD::MuonContainer>
00048 {
00049
00050 ASG_TOOL_CLASS (HZZMuonTool, ana::IAnaTool)
00051
00052
00053 public:
00054 HZZMuonTool (const std::string& name);
00055
00056
00057 public:
00058 StatusCode initialize() override;
00059
00060
00061 public:
00062 virtual StatusCode
00063 selectObject (xAOD::Muon& muon) override;
00064
00065 public:
00066 xAOD::Muon::Quality m_quality;
00067 int m_wp;
00068 std::string m_isoStr;
00069
00071 public:
00072 asg::AnaToolHandle<CP::IMuonSelectionTool> m_selection;
00073 asg::AnaToolHandle<CP::IIsolationSelectionTool> m_isolationTool;
00074
00075 private:
00076 SelectionCut cut_ID;
00077 SelectionCut cut_Pt;
00078 SelectionCut cut_D0;
00079 SelectionCut cut_Z0;
00080
00081 SelectionCut cut_CB;
00082 SelectionCut cut_Eta;
00083 SelectionCut cut_Iso;
00084
00085 };
00086
00087 StatusCode makeHZZMuonTool(DefinitionArgs& args,
00088 const xAOD::Muon::Quality& quality=xAOD::Muon::Loose,
00089 int WP = WPType::_HZZ4l,
00090 const std::string& isolationWPString = "FixedCutLoose" );
00091
00092
00093
00094 }
00095
00096 #endif