ATLAS Offline Software
Loading...
Searching...
No Matches
IIsolationSelectionTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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
11
12// EDM include(s):
13#include "xAODEgamma/Electron.h"
14#include "xAODEgamma/Photon.h"
15#include "xAODMuon/Muon.h"
17
18// std include(s):
19#include <vector>
20#include <memory>
21namespace asg{
22 class AcceptData;
23 class AcceptInfo;
24}
25
34
35
36namespace CP {
37 struct strObj;
38 class IsolationWP;
39 class IIsolationSelectionTool : virtual public asg::IAsgTool {
42
43 public:
44 // Cut on object
45 virtual asg::AcceptData accept(const xAOD::Photon& x) const = 0;
46 virtual asg::AcceptData accept(const xAOD::Electron& x) const = 0;
47 virtual asg::AcceptData accept(const xAOD::Muon& x) const = 0;
48 virtual asg::AcceptData accept(const strObj& x) const = 0;
49 virtual asg::AcceptData accept(const xAOD::IParticle& x) const = 0;
50 virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType) = 0;
51
52 virtual const asg::AcceptInfo& getPhotonAcceptInfo() const = 0;
53 virtual const asg::AcceptInfo& getElectronAcceptInfo() const = 0;
54 virtual const asg::AcceptInfo& getMuonAcceptInfo() const = 0;
55 virtual const asg::AcceptInfo& getObjAcceptInfo() const = 0;
56
57 virtual const std::vector<std::unique_ptr<IsolationWP>>& getMuonWPs() const = 0;
58 virtual const std::vector<std::unique_ptr<IsolationWP>>& getElectronWPs() const = 0;
59 virtual const std::vector<std::unique_ptr<IsolationWP>>& getPhotonWPs() const = 0;
60 virtual const std::vector<std::unique_ptr<IsolationWP>>& getObjWPs() const = 0;
61 };
62} // namespace CP
63#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".