ATLAS Offline Software
IMuonSelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONSELECTORTOOLS_IMUONSELECTIONTOOL_H
6 #define MUONSELECTORTOOLS_IMUONSELECTIONTOOL_H
7 
8 // Framework include(s):
9 #include "AsgTools/IAsgTool.h"
10 #include "PATCore/AcceptData.h"
11 #include "PATCore/AcceptInfo.h"
12 
13 // EDM include(s):
14 #include "xAODMuon/Muon.h"
15 
16 namespace CP {
17 
25  class IMuonSelectionTool : public virtual asg::IAsgTool {
28 
29  public:
34  missingMiddle = 1 << 1,
35  missingOuter = 1 << 2,
36  highPt2station = 1 << 3,
37  highPt = 1 << 4,
38  spoiledCSC = 1 << 5,
39  BEoverlap = 1 << 6,
40  BIS78 = 1 << 7,
41  missingBEE = 1 << 8,
42  oneStation = 1 << 9,
48  };
49 
51  virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
52 
54  virtual asg::AcceptData accept(const xAOD::Muon& mu) const = 0;
55 
57  virtual void setPassesIDCuts(xAOD::Muon& mu) const = 0;
58 
60  virtual void setPassesHighPtCuts(xAOD::Muon& mu) const = 0;
61 
63  // virtual void setPassesLowPtEfficiencyCuts( xAOD::Muon& mu ) const = 0;
64 
66  virtual void setQuality(xAOD::Muon& mu) const = 0;
67 
70  virtual bool passedIDCuts(const xAOD::Muon&) const = 0;
71 
73  virtual bool passedMuonCuts(const xAOD::Muon&) const = 0;
74 
76  virtual bool passedIDCuts(const xAOD::TrackParticle&) const = 0;
77 
80  virtual bool passedHighPtCuts(const xAOD::Muon&) const = 0;
81 
84  virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon&) const = 0;
85  virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon&, xAOD::Muon::Quality thisMu_quality) const = 0;
86 
88  virtual bool passedErrorCutCB(const xAOD::Muon&) const = 0;
89 
91  virtual bool isBadMuon(const xAOD::Muon&) const = 0;
92 
94  virtual xAOD::Muon::Quality getQuality(const xAOD::Muon& mu) const = 0;
95 
97  virtual bool passedCaloTagQuality(const xAOD::Muon& mu) const = 0;
98 
100  virtual bool passedCaloScore(const xAOD::Muon& mu) const = 0;
101 
103  virtual int getResolutionCategory(const xAOD::Muon&) const = 0;
104 
105  }; // class IMuonSelectionTool
106 
107 } // namespace CP
108 
109 #endif // CPTOOLTESTS_IMUONSELECTIONTOOL_H
CP::IMuonSelectionTool::getResolutionCategory
virtual int getResolutionCategory(const xAOD::Muon &) const =0
Returns an integer corresponding to categorization of muons with different resolutions.
CP::IMuonSelectionTool::CategoryOne
@ CategoryOne
Definition: IMuonSelectionTool.h:44
CP::IMuonSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Decide whether the muon in question is a "good muon" or not.
CP::IMuonSelectionTool::ResolutionCategory
ResolutionCategory
Declare the interface that the class provides.
Definition: IMuonSelectionTool.h:31
CP::IMuonSelectionTool::unclassified
@ unclassified
Definition: IMuonSelectionTool.h:32
CP::IMuonSelectionTool::BEoverlap
@ BEoverlap
Definition: IMuonSelectionTool.h:39
Muon.h
CP::IMuonSelectionTool::highPt
@ highPt
Definition: IMuonSelectionTool.h:37
CP::IMuonSelectionTool::passedIDCuts
virtual bool passedIDCuts(const xAOD::Muon &) const =0
Returns true if the muon passes the standard MCP ID cuts.
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
CP::IMuonSelectionTool::CategoryZero
@ CategoryZero
Definition: IMuonSelectionTool.h:43
CP::IMuonSelectionTool::passedMuonCuts
virtual bool passedMuonCuts(const xAOD::Muon &) const =0
Returns true if the muon passes a standardized loose preselection.
CP::IMuonSelectionTool::CategoryThree
@ CategoryThree
Definition: IMuonSelectionTool.h:46
CP::IMuonSelectionTool::CategoryTwo
@ CategoryTwo
Definition: IMuonSelectionTool.h:45
CP::IMuonSelectionTool::missingMiddle
@ missingMiddle
Definition: IMuonSelectionTool.h:34
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
CP::IMuonSelectionTool::passedLowPtEfficiencyCuts
virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon &, xAOD::Muon::Quality thisMu_quality) const =0
CP::IMuonSelectionTool::isBadMuon
virtual bool isBadMuon(const xAOD::Muon &) const =0
Returns true if a CB muon fails some loose quaility requirements designed to remove pathological trac...
CP::IMuonSelectionTool::BIS78
@ BIS78
Definition: IMuonSelectionTool.h:40
CP::IMuonSelectionTool::getQuality
virtual xAOD::Muon::Quality getQuality(const xAOD::Muon &mu) const =0
Returns the quality of the muon. To set the value on the muon, instead call setQuality(xAOD::Muon&) c...
CP::IMuonSelectionTool::passedIDCuts
virtual bool passedIDCuts(const xAOD::TrackParticle &) const =0
Returns true if the track particle passes the standard MCP ID cuts.
CP::IMuonSelectionTool::setPassesHighPtCuts
virtual void setPassesHighPtCuts(xAOD::Muon &mu) const =0
set the passes high pT cuts variable of the muon
asg::AcceptInfo
Definition: AcceptInfo.h:28
CP::IMuonSelectionTool::setQuality
virtual void setQuality(xAOD::Muon &mu) const =0
set the passes low pT cuts variable of the muon
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
CP::IMuonSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Muon &mu) const =0
Decide whether the muon in question is a "good muon" or not.
IAsgTool.h
CP::IMuonSelectionTool::passedCaloTagQuality
virtual bool passedCaloTagQuality(const xAOD::Muon &mu) const =0
Returns true if the muon passes additional calo-tag quality cuts.
CP::IMuonSelectionTool::passedCaloScore
virtual bool passedCaloScore(const xAOD::Muon &mu) const =0
Returns true if the muon passes the CaloScore calo-tag working point.
AcceptData.h
CP::IMuonSelectionTool::passedHighPtCuts
virtual bool passedHighPtCuts(const xAOD::Muon &) const =0
Returns true if the muon passes the standard MCP high pt cuts.
CP::IMuonSelectionTool
Interface for (a) muon selector tool(s)
Definition: IMuonSelectionTool.h:25
CP::IMuonSelectionTool::missingBEE
@ missingBEE
Definition: IMuonSelectionTool.h:41
CP::IMuonSelectionTool::spoiledCSC
@ spoiledCSC
Definition: IMuonSelectionTool.h:38
AcceptInfo.h
CP::IMuonSelectionTool::passedErrorCutCB
virtual bool passedErrorCutCB(const xAOD::Muon &) const =0
Returns true if a CB muon passes a pt- and eta-dependent cut on the relative CB q/p error.
CP::IMuonSelectionTool::oneStation
@ oneStation
Definition: IMuonSelectionTool.h:42
CP::IMuonSelectionTool::CategoryFour
@ CategoryFour
Definition: IMuonSelectionTool.h:47
CP::IMuonSelectionTool::highPt2station
@ highPt2station
Definition: IMuonSelectionTool.h:36
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
CP::IMuonSelectionTool::passedLowPtEfficiencyCuts
virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon &) const =0
Returns true if the muon passes the standard MCP low pt cuts.
asg::AcceptData
Definition: AcceptData.h:30
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
CP::IMuonSelectionTool::missingOuter
@ missingOuter
Definition: IMuonSelectionTool.h:35
CP::IMuonSelectionTool::setPassesIDCuts
virtual void setPassesIDCuts(xAOD::Muon &mu) const =0
set the passes ID cuts variable of the muon
CP::IMuonSelectionTool::missingInner
@ missingInner
Definition: IMuonSelectionTool.h:33