00001
00002
00003
00004
00005 #ifndef ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H
00006 #define ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H
00007
00008
00009 #include "AsgTools/IAsgTool.h"
00010 #include "PATCore/TAccept.h"
00011
00012
00013 #include "xAODPrimitives/IsolationType.h"
00014 #include "xAODEgamma/Photon.h"
00015 #include "xAODEgamma/Electron.h"
00016 #include "xAODMuon/Muon.h"
00017
00018
00019
00020 #include <map>
00021 #include <memory>
00022
00031 struct strObj;
00032
00033 namespace CP
00034 {
00035 class IIsolationSelectionTool : virtual public asg::IAsgTool {
00036
00038 ASG_TOOL_INTERFACE( CP::IIsolationSelectionTool )
00039
00040 public:
00041
00042 virtual const Root::TAccept& accept( const xAOD::Photon& x ) const = 0;
00043 virtual const Root::TAccept& accept( const xAOD::Electron& x ) const = 0;
00044 virtual const Root::TAccept& accept( const xAOD::Muon& x ) const = 0;
00045 virtual const Root::TAccept& accept( const strObj& x ) const = 0;
00046 virtual const Root::TAccept& accept(const xAOD::IParticle& x ) const = 0;
00047 virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType) = 0;
00048
00049 virtual const Root::TAccept& getPhotonTAccept() const = 0;
00050 virtual const Root::TAccept& getElectronTAccept() const = 0;
00051 virtual const Root::TAccept& getMuonTAccept() const = 0;
00052 virtual const Root::TAccept& getObjTAccept() const = 0;
00053
00054 };
00055 }
00056 #endif