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  const 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  const FloatAccessor& accessor_noCloseBy(unsigned int n = 0) const;
47 
48  virtual bool accept(const xAOD::IParticle& x) const = 0;
49  virtual bool accept(const strObj& x) const = 0;
50 
51  private:
52  std::string m_name;
53  std::vector<xAOD::Iso::IsolationType> m_isolationType;
54  std::vector<FloatAccessor> m_acc;
55  std::vector<FloatAccessor> m_acc_noCloseBy;
56 
57  protected:
58  std::string m_isoDecSuffix{};
59  };
60 } // namespace CP
61 #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:55
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:41
CP::IsolationCondition::type
xAOD::Iso::IsolationType type(unsigned int n=0) const
Definition: IsolationCondition.cxx:43
x
#define x
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:49
CP::IsolationCondition::operator=
IsolationCondition & operator=(const IsolationCondition &rhs)=delete
CP::IsolationCondition::num_types
unsigned int num_types() const
Definition: IsolationCondition.cxx:41
CP::IsolationCondition
Definition: IsolationCondition.h:30
CP::strObj
Definition: IsolationCondition.h:23
CP::IsolationCondition::accessor_noCloseBy
const FloatAccessor & accessor_noCloseBy(unsigned int n=0) const
Definition: IsolationCondition.cxx:45
AsgMessaging.h
CP::IsolationCondition::accept
virtual bool accept(const xAOD::IParticle &x) const =0
beamspotman.n
n
Definition: beamspotman.py:729
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:36
CP::IsolationCondition::name
const std::string & name() const
Definition: IsolationCondition.cxx:42
CP::IsolationCondition::accessor
const FloatAccessor & accessor(unsigned int n=0) const
Definition: IsolationCondition.cxx:44
CP::IsolationCondition::m_acc
std::vector< FloatAccessor > m_acc
Definition: IsolationCondition.h:54
CP::IsolationCondition::m_acc_noCloseBy
std::vector< FloatAccessor > m_acc_noCloseBy
Definition: IsolationCondition.h:55
CP::IsolationCondition::m_name
std::string m_name
Definition: IsolationCondition.h:52
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:53
CP::IsolationCondition::m_isoDecSuffix
std::string m_isoDecSuffix
Definition: IsolationCondition.h:58
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