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 IIsolationSelectionTool;
00031 }
00032 class IAsgElectronLikelihoodTool;
00033
00034 namespace WPType{
00035 enum {
00036 _HZZ4l,
00037 _SMZZ4l,
00038 _ZHinv
00039 };
00040 }
00041
00042 namespace ana
00043 {
00044
00045 class HZZElectronTool : public AnaToolSelect<xAOD::ElectronContainer>
00046 {
00047
00048 ASG_TOOL_CLASS (HZZElectronTool, ana::IAnaTool)
00049
00050
00051 public:
00052 HZZElectronTool (const std::string& name);
00053
00054
00055 public:
00056 StatusCode initialize() override;
00057
00058
00059 public:
00060 virtual StatusCode
00061 selectObject (xAOD::Electron& electron) override;
00062
00063 public:
00064 std::string m_selection;
00065 int m_wp;
00066 std::string m_isoStr;
00067
00069 public:
00070 asg::AnaToolHandle<IAsgElectronLikelihoodTool> m_selectionTool;
00071 asg::AnaToolHandle<CP::IIsolationSelectionTool> m_isolationTool;
00072
00073 private:
00074 SelectionCut cut_Pt;
00075 SelectionCut cut_Eta;
00076 SelectionCut cut_OQ;
00077 SelectionCut cut_selectionTool;
00078 SelectionCut cut_Z0;
00079 SelectionCut cut_D0;
00080 SelectionCut cut_Iso;
00081 };
00082
00083 StatusCode makeHZZElectronTool(DefinitionArgs& args,
00084 const std::string& selection = "LooseLLH",
00085 int WP = WPType::_HZZ4l,
00086 const std::string& isolationWPString = "FixedCutLoose" );
00087
00088
00089
00090 }
00091
00092 #endif