ATLAS Offline Software
Loading...
Searching...
No Matches
SelectionAccessorExprOr.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
8
9namespace CP {
10
12 std::unique_ptr<ISelectionReadAccessor> left,
13 std::unique_ptr<ISelectionReadAccessor> right)
14 : m_left(std::move(left)), m_right(std::move(right)) {}
15
17 const CP::SystematicSet *sys) const {
18 return m_left->getBool(element,sys) || m_right->getBool(element,sys);
19}
20
21std::string SelectionAccessorExprOr::label() const {
22 return "( " + m_left->label() + " || " + m_right->label() + " )";
23}
24
25CP::SystematicSet SelectionAccessorExprOr ::
26getInputAffecting (const ISystematicsSvc& svc,
27 const std::string& objectName) const
28{
29 CP::SystematicSet result = m_left->getInputAffecting (svc, objectName);
30 result.insert (m_right->getInputAffecting (svc, objectName));
31 return result;
32}
33
34StatusCode SelectionAccessorExprOr ::
35fillSystematics (const ISystematicsSvc& svc,
36 const std::vector<CP::SystematicSet>& sysList,
37 const std::string& objectName)
38{
39 using namespace msgSelectionHelpers;
40
41 ANA_CHECK (m_left->fillSystematics (svc, sysList, objectName));
42 ANA_CHECK (m_right->fillSystematics (svc, sysList, objectName));
43 return StatusCode::SUCCESS;
44}
45
46} // namespace CP
47
#define ANA_CHECK(EXP)
check whether the given expression was successful
the interface for the central systematics service
virtual std::string label() const override
virtual bool getBool(const SG::AuxElement &element, const CP::SystematicSet *sys) const override
std::unique_ptr< ISelectionReadAccessor > m_left
SelectionAccessorExprOr(std::unique_ptr< ISelectionReadAccessor > left, std::unique_ptr< ISelectionReadAccessor > right)
std::unique_ptr< ISelectionReadAccessor > m_right
Class to wrap a set of SystematicVariations.
Base class for elements of a container that can have aux data.
Definition AuxElement.h:483
Select isolated Photons, Electrons and Muons.
STL namespace.