ATLAS Offline Software
JvtEfficiencyAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 
8 //
9 // includes
10 //
11 
13 
15 
16 //
17 // method implementations
18 //
19 
20 namespace CP
21 {
22 
23 
25  initialize ()
26  {
27 
28  ANA_CHECK (m_efficiencyTool.retrieve());
36 
37  return StatusCode::SUCCESS;
38  }
39 
40 
41 
43  execute ()
44  {
45  for (const auto& sys : m_systematicsList.systematicsVector())
46  {
47  ANA_CHECK (m_efficiencyTool->applySystematicVariation (sys));
48  const xAOD::JetContainer *jets = nullptr;
50 
51  for (const xAOD::Jet *jet : *jets)
52  {
53  if (m_preselection.getBool (*jet, sys))
54  {
55  bool goodJet = true;
57  {
58  goodJet = m_selectionHandle.getBool(*jet, sys);
59  }
60  float sf = 1;
61  if (goodJet) {
62  ANA_CHECK_CORRECTION (m_outOfValidity, *jet, m_efficiencyTool->getEfficiencyScaleFactor (*jet, sf));
63  } else if (!m_skipBadEfficiency) {
64  ANA_CHECK_CORRECTION (m_outOfValidity, *jet, m_efficiencyTool->getInefficiencyScaleFactor (*jet, sf));
65  }
67  } else {
69  }
70  }
71  }
72 
73  return StatusCode::SUCCESS;
74  }
75 }
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
CP::JvtEfficiencyAlg::m_scaleFactorDecoration
SysWriteDecorHandle< float > m_scaleFactorDecoration
the decoration for the JVT scale factor
Definition: JvtEfficiencyAlg.h:61
CP::JvtEfficiencyAlg::execute
StatusCode execute() override
Definition: JvtEfficiencyAlg.cxx:43
CP::JvtEfficiencyAlg::m_preselection
SysReadSelectionHandle m_preselection
the preselection we apply to our input
Definition: JvtEfficiencyAlg.h:51
CP::JvtEfficiencyAlg::m_systematicsList
SysListHandle m_systematicsList
the systematics list we run
Definition: JvtEfficiencyAlg.h:42
CP::SysListHandle::addSystematics
StatusCode addSystematics(const CP::SystematicSet &recommended, const CP::SystematicSet &affecting)
register a set of affecting variables for the current algorithm (usually obtained from an CP::ISystem...
Definition: SysListHandle.cxx:48
JvtEfficiencyAlg.h
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
CP::SysReadHandle::retrieve
::StatusCode retrieve(const T *&object, const CP::SystematicSet &sys) const
retrieve the object for the given name
CP::SysListHandle::systematicsVector
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
Definition: SysListHandle.cxx:96
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::invalidScaleFactor
constexpr float invalidScaleFactor()
the decoration value to use if there is no valid scale factor decoration
Definition: SysWriteDecorHandle.h:31
CP::SysReadHandle::initialize
StatusCode initialize(SysListHandle &sysListHandle)
initialize this handle
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
CP::SysListHandle::initialize
::StatusCode initialize()
intialize this property
Definition: SysListHandle.cxx:69
CP::SysReadSelectionHandle::getBool
bool getBool(const SG::AuxElement &element, const CP::SystematicSet &sys) const
get the selection as a bool
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:581
CP::JvtEfficiencyAlg::initialize
StatusCode initialize() override
Definition: JvtEfficiencyAlg.cxx:25
CP::JvtEfficiencyAlg::m_efficiencyTool
ToolHandle< CP::IJvtEfficiencyTool > m_efficiencyTool
the efficiency tool
Definition: JvtEfficiencyAlg.h:37
CP::JvtEfficiencyAlg::m_outOfValidity
OutOfValidityHelper m_outOfValidity
the helper for OutOfValidity results
Definition: JvtEfficiencyAlg.h:74
ANA_CHECK_CORRECTION
#define ANA_CHECK_CORRECTION(helper, object, expr)
a helper check macro to work with OutOfValidityHelper
Definition: OutOfValidityHelper.h:132
CP::JvtEfficiencyAlg::m_jetHandle
SysReadHandle< xAOD::JetContainer > m_jetHandle
the jet collection we run on
Definition: JvtEfficiencyAlg.h:46
CP::JvtEfficiencyAlg::m_skipBadEfficiency
Gaudi::Property< bool > m_skipBadEfficiency
whether to skip efficiency calculation if the selection failed
Definition: JvtEfficiencyAlg.h:66
CP::OutOfValidityHelper::initialize
::StatusCode initialize()
standard initialize
Definition: OutOfValidityHelper.cxx:25
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
CP::JvtEfficiencyAlg::m_selectionHandle
SysReadSelectionHandle m_selectionHandle
the decoration for the JVT selection
Definition: JvtEfficiencyAlg.h:56
CP::SysReadSelectionHandle::initialize
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize the accessor
Definition: SysReadSelectionHandle.cxx:34
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
SelectionHelpers.h