ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
Algorithms
EgammaAnalysisAlgorithms
Root
ElectronEfficiencyCorrectionAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
7
8
9
//
10
// includes
11
//
12
13
#include <
EgammaAnalysisAlgorithms/ElectronEfficiencyCorrectionAlg.h
>
14
15
//
16
// method implementations
17
//
18
19
namespace
CP
20
{
21
22
StatusCode ElectronEfficiencyCorrectionAlg ::
23
initialize ()
24
{
25
if
(
m_scaleFactorDecoration
.empty())
26
{
27
ANA_MSG_ERROR
(
"no scale factor decoration name set"
);
28
return
StatusCode::FAILURE;
29
}
30
31
ANA_CHECK
(
m_efficiencyCorrectionTool
.retrieve());
32
ANA_CHECK
(
m_electronHandle
.initialize (
m_systematicsList
));
33
ANA_CHECK
(
m_preselection
.initialize (
m_systematicsList
,
m_electronHandle
,
SG::AllowEmpty
));
34
ANA_CHECK
(
m_scaleFactorDecoration
.initialize (
m_systematicsList
,
m_electronHandle
));
35
ANA_CHECK
(
m_systematicsList
.addSystematics (*
m_efficiencyCorrectionTool
));
36
ANA_CHECK
(
m_systematicsList
.initialize());
37
ANA_CHECK
(
m_outOfValidity
.initialize());
38
39
return
StatusCode::SUCCESS;
40
}
41
42
43
44
StatusCode ElectronEfficiencyCorrectionAlg ::
45
execute (
const
EventContext& ctx)
46
{
47
for
(
const
auto
& sys :
m_systematicsList
.systematicsVector())
48
{
49
ANA_CHECK
(
m_efficiencyCorrectionTool
->applySystematicVariation (sys));
50
const
xAOD::ElectronContainer
*electrons =
nullptr
;
51
ANA_CHECK
(
m_electronHandle
.retrieve (electrons, sys, ctx));
52
for
(
const
xAOD::Electron
*
electron
: *electrons)
53
{
54
if
(
m_preselection
.getBool (*
electron
, sys))
55
{
56
double
sf = 0;
57
ANA_CHECK_CORRECTION
(
m_outOfValidity
, *
electron
,
m_efficiencyCorrectionTool
->getEfficiencyScaleFactor (*
electron
, sf));
58
m_scaleFactorDecoration
.set (*
electron
, sf, sys);
59
}
else
{
60
m_scaleFactorDecoration
.set (*
electron
,
invalidScaleFactor
(), sys);
61
}
62
}
63
}
64
return
StatusCode::SUCCESS;
65
}
66
}
ANA_MSG_ERROR
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
Definition
Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:294
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition
Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
ElectronEfficiencyCorrectionAlg.h
ANA_CHECK_CORRECTION
#define ANA_CHECK_CORRECTION(helper, object, expr)
a helper check macro to work with OutOfValidityHelper
Definition
OutOfValidityHelper.h:132
CP::ElectronEfficiencyCorrectionAlg::m_preselection
SysReadSelectionHandle m_preselection
the preselection we apply to our input
Definition
ElectronEfficiencyCorrectionAlg.h:49
CP::ElectronEfficiencyCorrectionAlg::m_systematicsList
SysListHandle m_systematicsList
the systematics list we run
Definition
ElectronEfficiencyCorrectionAlg.h:40
CP::ElectronEfficiencyCorrectionAlg::m_electronHandle
SysReadHandle< xAOD::ElectronContainer > m_electronHandle
the electron collection we run on
Definition
ElectronEfficiencyCorrectionAlg.h:44
CP::ElectronEfficiencyCorrectionAlg::m_efficiencyCorrectionTool
ToolHandle< IAsgElectronEfficiencyCorrectionTool > m_efficiencyCorrectionTool
the smearing tool
Definition
ElectronEfficiencyCorrectionAlg.h:36
CP::ElectronEfficiencyCorrectionAlg::m_scaleFactorDecoration
SysWriteDecorHandle< float > m_scaleFactorDecoration
the decoration for the electron scale factor
Definition
ElectronEfficiencyCorrectionAlg.h:58
CP::ElectronEfficiencyCorrectionAlg::m_outOfValidity
OutOfValidityHelper m_outOfValidity
the helper for OutOfValidity results
Definition
ElectronEfficiencyCorrectionAlg.h:54
CP
Select isolated Photons, Electrons and Muons.
Definition
Control/xAODRootAccess/xAODRootAccess/TEvent.h:27
CP::invalidScaleFactor
constexpr float invalidScaleFactor()
the decoration value to use if there is no valid scale factor decoration
Definition
SysWriteDecorHandle.h:31
SG::AllowEmpty
@ AllowEmpty
Definition
StoreGate/StoreGate/VarHandleKey.h:27
xAOD::ElectronContainer
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
Definition
Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainer.h:17
xAOD::electron
@ electron
Definition
TrackingPrimitives.h:195
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition
Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
Generated on
for ATLAS Offline Software by
1.17.0