ATLAS Offline Software
KLFitterFinalizeOutputAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
9 
10 namespace EventReco {
11 
13  ISvcLocator *pSvcLocator)
14  : EL::AnaAlgorithm(name, pSvcLocator) {}
15 
20  return StatusCode::SUCCESS;
21 }
22 
24  for (const auto &sys : m_systematicsList.systematicsVector()) {
25  // for events, where the KLFitterResultContainer was not created (e.g. event
26  // didn't pass any of the regions' selections) we have to record an empty
27  // container -- this ensures that every single event has at least empty
28  // container (no KLFitter permutations)
29  if (!m_inHandle.isValid(sys)) {
30  auto resultAuxContainer =
31  std::make_unique<xAOD::KLFitterResultAuxContainer>();
32  auto resultContainer = std::make_unique<xAOD::KLFitterResultContainer>();
33  resultContainer->setStore(resultAuxContainer.get());
34  ANA_CHECK(m_outHandle.record(std::move(resultContainer),
35  std::move(resultAuxContainer), sys));
36  }
37  }
38  return StatusCode::SUCCESS;
39 }
40 
41 } // namespace EventReco
EventReco::KLFitterFinalizeOutputAlg::KLFitterFinalizeOutputAlg
KLFitterFinalizeOutputAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: KLFitterFinalizeOutputAlg.cxx:12
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
CP::SysListHandle::systematicsVector
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
Definition: SysListHandle.cxx:96
EventReco::KLFitterFinalizeOutputAlg::m_systematicsList
CP::SysListHandle m_systematicsList
Definition: KLFitterFinalizeOutputAlg.h:27
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::SysListHandle::initialize
::StatusCode initialize()
intialize this property
Definition: SysListHandle.cxx:69
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
EL
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Definition: AsgComponentFactories.h:16
KLFitterFinalizeOutputAlg.h
EventReco
Definition: KLFitterEnums.h:16
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
EventReco::KLFitterFinalizeOutputAlg::m_inHandle
CP::SysReadHandle< xAOD::KLFitterResultContainer > m_inHandle
Definition: KLFitterFinalizeOutputAlg.h:29
EventReco::KLFitterFinalizeOutputAlg::m_outHandle
CP::SysWriteHandle< xAOD::KLFitterResultContainer, xAOD::KLFitterResultAuxContainer > m_outHandle
Definition: KLFitterFinalizeOutputAlg.h:34
EventReco::KLFitterFinalizeOutputAlg::execute
virtual StatusCode execute() final
Definition: KLFitterFinalizeOutputAlg.cxx:23
EventReco::KLFitterFinalizeOutputAlg::initialize
virtual StatusCode initialize() final
Definition: KLFitterFinalizeOutputAlg.cxx:16