ATLAS Offline Software
Loading...
Searching...
No Matches
AsgForwardElectronIsEMSelector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Dear emacs, this is -*-c++-*-
6
7#ifndef __ASGFORWARDELECTRONISEMSELECTOR__
8#define __ASGFORWARDELECTRONISEMSELECTOR__
9
22
23// Atlas includes
24#include "AsgTools/AsgTool.h"
25
26// Include the interfaces
28
31
32#include <string>
33
34class EventContext;
35
36namespace Root {
38}
39
41 : public asg::AsgTool
42 , virtual public IAsgForwardElectronIsEMSelector
43{
44
49
50public:
52 AsgForwardElectronIsEMSelector(const std::string& myname);
53
56
58 virtual StatusCode initialize() override final;
59
60 // Main methods for IAsgSelectionTool interface
61
66 virtual const asg::AcceptInfo& getAcceptInfo() const override final;
67
69 virtual asg::AcceptData accept(
70 const xAOD::IParticle* part) const override final;
71 virtual asg::AcceptData accept(
72 const EventContext& ctx,
73 const xAOD::IParticle* part) const override final;
74
76 virtual asg::AcceptData accept(const EventContext& ctx,
77 const xAOD::Egamma* part) const override final;
78
80 virtual asg::AcceptData accept(const EventContext& ctx,
81 const xAOD::Photon* part) const override final;
82
84 virtual asg::AcceptData accept(
85 const EventContext& ctx,
86 const xAOD::Electron* part) const override final;
88 virtual std::string getOperatingPointName() const override final;
89
90 // The main execute method
91 virtual StatusCode execute(const EventContext& ctx,
92 const xAOD::Egamma* eg,
93 unsigned int& isEM) const override final;
94 // Private member variables
95private:
96 unsigned int getNPrimVertices(const EventContext& ctx) const;
97
98 unsigned int calocuts_electrons(const xAOD::Egamma* eg,
99 float eta2,
100 float nvtx,
101 unsigned int iflag) const;
102
104 std::string m_WorkingPoint;
105
107 std::string m_configFile;
108
111
114
115 // defualt nPV (when not using PVCont)
116 unsigned int m_nPVdefault;
117
120 this,
121 "primaryVertexContainer",
122 "PrimaryVertices",
123 "The primary vertex container name"
124 };
125
126}; // End: class definition
127
128#endif
129
#define ASG_TOOL_CLASS3(CLASSNAME, INT1, INT2, INT3)
Property holding a SG store/key/clid from which a ReadHandle is made.
unsigned int calocuts_electrons(const xAOD::Egamma *eg, float eta2, float nvtx, unsigned int iflag) const
virtual asg::AcceptData accept(const xAOD::IParticle *part) const override final
Accept with generic interface.
SG::ReadHandleKey< xAOD::VertexContainer > m_primVtxContKey
read handle key to primary vertex container
bool m_usePVCont
Whether to use the PV (not available for trigger)
virtual StatusCode execute(const EventContext &ctx, const xAOD::Egamma *eg, unsigned int &isEM) const override final
==========================================================================================//
virtual StatusCode initialize() override final
Gaudi Service Interface method implementations.
Root::TForwardElectronIsEMSelector * m_rootForwardTool
Pointer to the underlying ROOT based tool.
virtual std::string getOperatingPointName() const override final
Method to get the operating point.
virtual ASG_TOOL_CLASS3(AsgForwardElectronIsEMSelector, IAsgForwardElectronIsEMSelector, IAsgEGammaIsEMSelector, IAsgSelectionTool) public ~AsgForwardElectronIsEMSelector()
Standard constructor.
unsigned int getNPrimVertices(const EventContext &ctx) const
( This is horrible!
virtual const asg::AcceptInfo & getAcceptInfo() const override final
Method to get the plain AcceptInfo.
Interface to tool to select photons.
Interface to tool to select electrons.
Property holding a SG store/key/clid from which a ReadHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
Class providing the definition of the 4-vector interface.
Egamma_v1 Egamma
Definition of the current "egamma version".
Definition Egamma.h:17
Photon_v1 Photon
Definition of the current "egamma version".
Electron_v1 Electron
Definition of the current "egamma version".