Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
AsgObjectScaleFactorAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 namespace CP
8 {
9 
11  initialize ()
12  {
13 
15 
16  for(const auto& sf : m_inScaleFactors)
17  m_inSFHandles.emplace_back(sf, this);
18  for(auto& handle : m_inSFHandles)
20 
22 
24 
25  return StatusCode::SUCCESS;
26  }
27 
29  execute ()
30  {
31 
32  for (const auto& sys : m_systematicsList.systematicsVector())
33  {
34  const xAOD::IParticleContainer *particles = nullptr;
36  for (const xAOD::IParticle *particle : *particles)
37  {
38  float scaleFactor = 1.;
39  for(const auto& sf : m_inSFHandles)
40  scaleFactor *= sf.get(*particle, sys);
41 
42  m_outSFHandle.set(*particle, scaleFactor, sys);
43  }
44  }
45 
46  return StatusCode::SUCCESS;
47  }
48 
49 } // namespace
CP::SysWriteDecorHandle::set
void set(const SG::AuxElement &object, const T &value, const CP::SystematicSet &sys) const
set the object decoration for the given systematic
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
CP::AsgObjectScaleFactorAlg::m_outSFHandle
SysWriteDecorHandle< float > m_outSFHandle
Definition: AsgObjectScaleFactorAlg.h:42
CP::SysListHandle::systematicsVector
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
Definition: SysListHandle.cxx:96
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:49
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::AsgObjectScaleFactorAlg::m_systematicsList
SysListHandle m_systematicsList
the systematics list we run
Definition: AsgObjectScaleFactorAlg.h:31
CP::AsgObjectScaleFactorAlg::initialize
StatusCode initialize() override
Definition: AsgObjectScaleFactorAlg.cxx:11
EL::AnaAlgorithm::handle
void handle(const Incident &inc)
receive the given incident
Definition: AnaAlgorithm.cxx:521
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
CP::SysWriteDecorHandle::initialize
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize this handle
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
CP::AsgObjectScaleFactorAlg::m_particlesHandle
SysReadHandle< xAOD::IParticleContainer > m_particlesHandle
the particle container we run on
Definition: AsgObjectScaleFactorAlg.h:34
CP::AsgObjectScaleFactorAlg::m_inScaleFactors
Gaudi::Property< std::vector< std::string > > m_inScaleFactors
Definition: AsgObjectScaleFactorAlg.h:37
AsgObjectScaleFactorAlg.h
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
CP::AsgObjectScaleFactorAlg::m_inSFHandles
std::vector< SysReadDecorHandle< float > > m_inSFHandles
Definition: AsgObjectScaleFactorAlg.h:40
CP::AsgObjectScaleFactorAlg::execute
StatusCode execute() override
Definition: AsgObjectScaleFactorAlg.cxx:29