ATLAS Offline Software
IsolationCondition.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_ISOLATIONCONDITION_H
6 #define ISOLATIONSELECTION_ISOLATIONCONDITION_H
7 
9 #include <xAODBase/IParticle.h>
12 
13 #include <map>
14 #include <memory>
15 #include <vector>
16 
19 
20 
21 
22 namespace CP {
23  struct strObj {
24  float pt{0.f};
25  float eta{0.f};
26  std::vector<float> isolationValues;
28  };
29 
31  public:
32  IsolationCondition(const std::string& name, xAOD::Iso::IsolationType isoType, const std::string& isoDecSuffix = "");
33  IsolationCondition(const std::string& name, const std::vector<xAOD::Iso::IsolationType>& isoTypes, const std::string& isoDecSuffix = "");
34  IsolationCondition(const std::string& name, const std::string& isoType, const std::string& isoDecSuffix = "");
35  IsolationCondition(const std::string& name, const std::vector<std::string>& isoTypes, const std::string& isoDecSuffix = "");
36 
37  IsolationCondition(const IsolationCondition& rhs) = delete;
39  virtual ~IsolationCondition() = default;
40 
41  std::string name() const;
42 
43  unsigned int num_types() const;
44  xAOD::Iso::IsolationType type(unsigned int n = 0) const;
45  const FloatAccessor& accessor(unsigned int n = 0) const;
46 
47  virtual bool accept(const xAOD::IParticle& x) const = 0;
48  virtual bool accept(const strObj& x) const = 0;
49 
50  private:
51  std::string m_name;
52  std::vector<xAOD::Iso::IsolationType> m_isolationType;
53  std::vector<FloatAccessor> m_acc;
54 
55  protected:
56  std::string m_isoDecSuffix{};
57  };
58 } // namespace CP
59 #endif
IParticle.h
ObjectType
ObjectType
Definition: BaseObject.h:11
IsolationType.h
EventInfo
EventInfo
Definition: EventTPCnv.cxx:47
CP::strObj::isolationValues
std::vector< float > isolationValues
Definition: IsolationCondition.h:26
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
Defs.h
CP::IsolationCondition::~IsolationCondition
virtual ~IsolationCondition()=default
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
CP::IsolationCondition::type
xAOD::Iso::IsolationType type(unsigned int n=0) const
Definition: IsolationCondition.cxx:37
x
#define x
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::IsolationCondition::operator=
IsolationCondition & operator=(const IsolationCondition &rhs)=delete
CP::IsolationCondition::num_types
unsigned int num_types() const
Definition: IsolationCondition.cxx:35
CP::IsolationCondition
Definition: IsolationCondition.h:30
CP::strObj
Definition: IsolationCondition.h:23
AsgMessaging.h
CP::IsolationCondition::name
std::string name() const
Definition: IsolationCondition.cxx:36
CP::IsolationCondition::accept
virtual bool accept(const xAOD::IParticle &x) const =0
beamspotman.n
n
Definition: beamspotman.py:731
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition: IsolationType.h:26
CP::IsolationCondition::IsolationCondition
IsolationCondition(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isoDecSuffix="")
Definition: IsolationCondition.cxx:30
CP::IsolationCondition::accessor
const FloatAccessor & accessor(unsigned int n=0) const
Definition: IsolationCondition.cxx:38
CP::IsolationCondition::m_acc
std::vector< FloatAccessor > m_acc
Definition: IsolationCondition.h:53
CP::IsolationCondition::m_name
std::string m_name
Definition: IsolationCondition.h:51
asg::AsgMessaging
Class mimicking the AthMessaging class from the offline software.
Definition: AsgMessaging.h:40
getIsolationAccessor.h
CP::IsolationCondition::m_isolationType
std::vector< xAOD::Iso::IsolationType > m_isolationType
Definition: IsolationCondition.h:52
CP::IsolationCondition::m_isoDecSuffix
std::string m_isoDecSuffix
Definition: IsolationCondition.h:56
CP::IsolationCondition::IsolationCondition
IsolationCondition(const IsolationCondition &rhs)=delete
CP::strObj::pt
float pt
Definition: IsolationCondition.h:24
CP::IsolationCondition::accept
virtual bool accept(const strObj &x) const =0
AuxElement.h
Base class for elements of a container that can have aux data.
CP::strObj::eta
float eta
Definition: IsolationCondition.h:25
CP::strObj::type
xAOD::Type::ObjectType type
Definition: IsolationCondition.h:27