ATLAS Offline Software
Loading...
Searching...
No Matches
SysWriteSelectionHandle.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
18
19//
20// method implementations
21//
22
23namespace CP
24{
25 SysWriteSelectionHandle ::
26 operator bool () const noexcept
27 {
28 return !m_selection.empty();
29 }
30
31
32
33 StatusCode SysWriteSelectionHandle ::
34 initialize (SysListHandle& sysListHandle, const ISysHandleBase& objectHandle)
35 {
36 if (m_selection.empty())
37 {
38 ANA_MSG_ERROR ("trying to initialize empty handle");
39 return StatusCode::FAILURE;
40 }
41 if (m_objectHandle != nullptr)
42 {
43 ANA_MSG_ERROR ("trying to initialize handle twice");
44 return StatusCode::FAILURE;
45 }
46 m_objectHandle = &objectHandle;
48 return sysListHandle.addHandle (*this);
49 }
50
51
52
53 StatusCode SysWriteSelectionHandle ::
54 initialize (SysListHandle& sysListHandle, const ISysHandleBase& objectHandle, SG::AllowEmptyEnum)
55 {
56 if (!empty())
57 return initialize (sysListHandle, objectHandle);
58 else
59 {
60 m_accessor = std::make_unique<SelectionWriteAccessorNull>();
61 return StatusCode::SUCCESS;
62 }
63 }
64
65
66
67 bool SysWriteSelectionHandle ::
68 empty () const noexcept
69 {
70 return m_selection.empty();
71 }
72
73
74
75 std::string SysWriteSelectionHandle ::
76 getLabel () const
77 {
78 return m_accessor->label();
79 }
80
81
82
83 const std::string& SysWriteSelectionHandle ::
84 getSelection () const
85 {
86 return m_selection;
87 }
88
89
90
91 std::string SysWriteSelectionHandle ::
92 getNamePattern () const
93 {
94 // So far it is undefined what to return here. I'll fill this in
95 // once there is a reason for it to be one or the other.
96 return "";
97 }
98
99
100
101 CP::SystematicSet SysWriteSelectionHandle ::
102 getInputAffecting (const ISystematicsSvc& /*svc*/) const
103 {
104 return CP::SystematicSet ();
105 }
106
107
108
109 StatusCode SysWriteSelectionHandle ::
110 fillSystematics (const ISystematicsSvc& svc,
111 const CP::SystematicSet& fullAffecting,
112 const std::vector<CP::SystematicSet>& sysList)
113 {
114 ANA_CHECK (m_accessor->fillSystematics (svc, fullAffecting, sysList, m_objectHandle->getNamePattern()));
115 return StatusCode::SUCCESS;
116 }
117}
macros for messaging and checking status codes
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
#define ANA_CHECK(EXP)
check whether the given expression was successful
static const Attributes_t empty
a basic interface for all systematics handles
the interface for the central systematics service
a class managing the property to configure the list of systematics to process
StatusCode addHandle(ISysHandleBase &handle)
register an input handle we are using
const ISysHandleBase * m_objectHandle
the object handle we use
std::string m_selection
the selection we use
std::unique_ptr< ISelectionWriteAccessor > m_accessor
the accessor we use
Class to wrap a set of SystematicVariations.
Select isolated Photons, Electrons and Muons.
StatusCode makeSelectionWriteAccessor(const std::string &name, std::unique_ptr< ISelectionWriteAccessor > &accessor, bool defaultToChar)
Produces a simple ISelectionWriteAccessor accessing the given decoration.
setBGCode setTAP setLVL2ErrorBits bool
void initialize()