ATLAS Offline Software
Loading...
Searching...
No Matches
METPerfFexBase.cxx
Go to the documentation of this file.
1
4
5#include "METPerfFexBase.h"
8#include <memory>
10
11namespace LVL1
12{
13 METPerfFexBase::METPerfFexBase(const std::string &name, ISvcLocator *pSvcLocator)
14 : AthReentrantAlgorithm(name, pSvcLocator)
15 {
16 declareProperty("OutputMET", m_metKey, "Output MET");
17 }
18
20
22 {
23 ATH_CHECK(m_metKey.initialize());
24 return StatusCode::SUCCESS;
25 }
26
27 StatusCode METPerfFexBase::execute(const EventContext& ctx) const
28 {
29
30 auto met = std::make_unique<xAOD::EnergySumRoI>();
31 auto metAux = std::make_unique<xAOD::EnergySumRoIAuxInfo>();
32 met->setStore(metAux.get());
33 ATH_CHECK(runFex(ctx, *met));
34 auto metHandle = SG::makeHandle(m_metKey, ctx);
35 ATH_CHECK(metHandle.record(std::move(met), std::move(metAux)));
36
37 return StatusCode::SUCCESS;
38 }
39
40} // namespace LVL1
#define ATH_CHECK
Evaluate an expression and check for errors.
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
An algorithm that can be simultaneously executed in multiple threads.
virtual StatusCode execute(const EventContext &ctx) const final
METPerfFexBase(const std::string &name, ISvcLocator *pSvcLocator)
SG::WriteHandleKey< xAOD::EnergySumRoI > m_metKey
virtual StatusCode initialize() override
virtual StatusCode runFex(const EventContext &ctx, xAOD::EnergySumRoI &met) const =0
virtual ~METPerfFexBase() override
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())