ATLAS Offline Software
IIsolationSelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H
6 #define ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_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 "xAODEgamma/Electron.h"
15 #include "xAODEgamma/Photon.h"
16 #include "xAODMuon/Muon.h"
18 // #include "IsolationSelection/strMuon.h"
19 
20 // std include(s):
21 #include <map>
22 #include <memory>
23 
32 
33 
34 namespace CP {
35  struct strObj;
36  class IsolationWP;
37  class IIsolationSelectionTool : virtual public asg::IAsgTool {
40 
41  public:
42  // Cut on object
43  virtual asg::AcceptData accept(const xAOD::Photon& x) const = 0;
44  virtual asg::AcceptData accept(const xAOD::Electron& x) const = 0;
45  virtual asg::AcceptData accept(const xAOD::Muon& x) const = 0;
46  virtual asg::AcceptData accept(const strObj& x) const = 0;
47  virtual asg::AcceptData accept(const xAOD::IParticle& x) const = 0;
49 
50  virtual const asg::AcceptInfo& getPhotonAcceptInfo() const = 0;
51  virtual const asg::AcceptInfo& getElectronAcceptInfo() const = 0;
52  virtual const asg::AcceptInfo& getMuonAcceptInfo() const = 0;
53  virtual const asg::AcceptInfo& getObjAcceptInfo() const = 0;
54 
55  virtual const std::vector<std::unique_ptr<IsolationWP>>& getMuonWPs() const = 0;
56  virtual const std::vector<std::unique_ptr<IsolationWP>>& getElectronWPs() const = 0;
57  virtual const std::vector<std::unique_ptr<IsolationWP>>& getPhotonWPs() const = 0;
58  virtual const std::vector<std::unique_ptr<IsolationWP>>& getObjWPs() const = 0;
59  };
60 } // namespace CP
61 #endif
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Electron &x) const =0
CP::IIsolationSelectionTool::getPhotonAcceptInfo
virtual const asg::AcceptInfo & getPhotonAcceptInfo() const =0
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const strObj &x) const =0
ObjectType
ObjectType
Definition: BaseObject.h:11
Muon.h
IsolationType.h
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle &x) const =0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Photon &x) const =0
Declare the interface that the class provides.
CP::IIsolationSelectionTool::getObjWPs
virtual const std::vector< std::unique_ptr< IsolationWP > > & getObjWPs() const =0
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
x
#define x
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::IIsolationSelectionTool::getMuonWPs
virtual const std::vector< std::unique_ptr< IsolationWP > > & getMuonWPs() const =0
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
CP::strObj
Definition: IsolationCondition.h:23
asg::AcceptInfo
Definition: AcceptInfo.h:28
Photon.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CP::IIsolationSelectionTool::setIParticleCutsFrom
virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType)=0
CP::IIsolationSelectionTool::getElectronWPs
virtual const std::vector< std::unique_ptr< IsolationWP > > & getElectronWPs() const =0
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Muon &x) const =0
CP::IIsolationSelectionTool
Definition: IIsolationSelectionTool.h:37
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
AcceptData.h
CP::IIsolationSelectionTool::getElectronAcceptInfo
virtual const asg::AcceptInfo & getElectronAcceptInfo() const =0
CP::IIsolationSelectionTool::getObjAcceptInfo
virtual const asg::AcceptInfo & getObjAcceptInfo() const =0
xAOD::Electron_v1
Definition: Electron_v1.h:34
AcceptInfo.h
CP::IIsolationSelectionTool::getMuonAcceptInfo
virtual const asg::AcceptInfo & getMuonAcceptInfo() const =0
xAOD::Photon_v1
Definition: Photon_v1.h:37
Electron.h
asg::AcceptData
Definition: AcceptData.h:30
CP::IIsolationSelectionTool::getPhotonWPs
virtual const std::vector< std::unique_ptr< IsolationWP > > & getPhotonWPs() const =0