ATLAS Offline Software
Loading...
Searching...
No Matches
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
34namespace 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;
48 virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType) = 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
#define ASG_TOOL_INTERFACE(CLASSNAME)
#define x
virtual asg::AcceptData accept(const xAOD::Muon &x) const =0
virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType)=0
virtual const asg::AcceptInfo & getObjAcceptInfo() const =0
virtual asg::AcceptData accept(const strObj &x) const =0
virtual const std::vector< std::unique_ptr< IsolationWP > > & getElectronWPs() const =0
virtual const std::vector< std::unique_ptr< IsolationWP > > & getObjWPs() const =0
virtual asg::AcceptData accept(const xAOD::IParticle &x) const =0
virtual const asg::AcceptInfo & getElectronAcceptInfo() const =0
virtual const asg::AcceptInfo & getPhotonAcceptInfo() const =0
virtual const asg::AcceptInfo & getMuonAcceptInfo() const =0
virtual asg::AcceptData accept(const xAOD::Photon &x) const =0
Declare the interface that the class provides.
virtual const std::vector< std::unique_ptr< IsolationWP > > & getMuonWPs() const =0
virtual asg::AcceptData accept(const xAOD::Electron &x) const =0
virtual const std::vector< std::unique_ptr< IsolationWP > > & getPhotonWPs() const =0
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Class providing the definition of the 4-vector interface.
Select isolated Photons, Electrons and Muons.
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition ObjectType.h:32
Muon_v1 Muon
Reference the current persistent version:
Photon_v1 Photon
Definition of the current "egamma version".
Electron_v1 Electron
Definition of the current "egamma version".