ATLAS Offline Software
Loading...
Searching...
No Matches
EgammaCalibrationAndSmearingAlg.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
14
15//
16// method implementations
17//
18
19namespace CP
20{
21
22 StatusCode EgammaCalibrationAndSmearingAlg ::
23 initialize ()
24 {
28 if (!m_noToolSystematics.value())
30 ANA_CHECK (m_systematicsList.initialize());
31 ANA_CHECK (m_outOfValidity.initialize());
32 return StatusCode::SUCCESS;
33 }
34
35
36
37 StatusCode EgammaCalibrationAndSmearingAlg ::
38 execute ()
39 {
40 for (const auto& sys : m_systematicsList.systematicsVector())
41 {
42 // always need to call `getCopy` first to ensure that the shallow copies
43 // are all there if requested
44 xAOD::EgammaContainer *egammas = nullptr;
45 ANA_CHECK (m_egammaHandle.getCopy (egammas, sys));
46
47 if (sys.empty() && m_skipNominal.value())
48 continue;
49
50 if (!m_noToolSystematics.value())
51 ANA_CHECK (m_calibrationAndSmearingTool->applySystematicVariation (sys));
52 for (xAOD::Egamma *egamma : *egammas)
53 {
54 if (m_preselection.getBool (*egamma, sys))
55 {
57 }
58 }
59 }
60 return StatusCode::SUCCESS;
61 }
62}
#define ANA_CHECK(EXP)
check whether the given expression was successful
#define ANA_CHECK_CORRECTION(helper, object, expr)
a helper check macro to work with OutOfValidityHelper
ToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_calibrationAndSmearingTool
the smearing tool
Gaudi::Property< bool > m_skipNominal
whether to skip the nominal correction (for PHYSLITE)
SysListHandle m_systematicsList
the systematics list we run
OutOfValidityHelper m_outOfValidity
the helper for OutOfValidity results
Gaudi::Property< bool > m_noToolSystematics
whether to ignore all tool systematics
SysReadSelectionHandle m_preselection
the preselection we apply to our input
SysCopyHandle< xAOD::EgammaContainer > m_egammaHandle
the egamma collection we run on
elec/gamma data class.
Definition egamma.h:58
Select isolated Photons, Electrons and Muons.
Egamma_v1 Egamma
Definition of the current "egamma version".
Definition Egamma.h:17
EgammaContainer_v1 EgammaContainer
Definition of the current "egamma container version".