00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: IMuonSelectionTool.h 299883 2014-03-28 17:34:16Z krasznaa $ 00003 #ifndef MUONSELECTORTOOLS_IMUONSELECTIONTOOL_H 00004 #define MUONSELECTORTOOLS_IMUONSELECTIONTOOL_H 00005 00006 // Framework include(s): 00007 #include "AsgTools/IAsgTool.h" 00008 #include "PATCore/TAccept.h" 00009 00010 // EDM include(s): 00011 #include "xAODMuon/Muon.h" 00012 00013 namespace CP { 00014 00025 class IMuonSelectionTool : public virtual asg::IAsgTool { 00026 00028 ASG_TOOL_INTERFACE( CP::IMuonSelectionTool ) 00029 00030 public: 00032 virtual const Root::TAccept& accept( const xAOD::Muon& mu ) const = 0; 00033 00035 virtual void setPassesIDCuts( xAOD::Muon& mu ) const = 0; 00036 00038 virtual void setPassesHighPtCuts( xAOD::Muon& mu ) const = 0; 00039 00041 virtual void setQuality( xAOD::Muon& mu ) const = 0; 00042 00044 virtual bool passedIDCuts(const xAOD::Muon&) const =0; 00045 00047 virtual bool passedMuonCuts(const xAOD::Muon&) const =0; 00048 00050 virtual bool passedIDCuts(const xAOD::TrackParticle&) const=0; 00051 00053 virtual bool passedHighPtCuts(const xAOD::Muon&) const =0; 00054 00056 virtual bool isBadMuon(const xAOD::Muon&) const=0; 00057 00059 virtual xAOD::Muon::Quality getQuality( const xAOD::Muon& mu ) const =0; 00060 00062 virtual bool passedCaloTagQuality (const xAOD::Muon& mu) const = 0; 00063 00064 }; // class IMuonSelectionTool 00065 00066 } // namespace CP 00067 00068 #endif // CPTOOLTESTS_IMUONSELECTIONTOOL_H