ATLAS Offline Software
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 
9 namespace 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 
21 std::string SelectionAccessorExprOr::label() const {
22  return "( " + m_left->label() + " || " + m_right->label() + " )";
23 }
24 
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 
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 
get_generator_info.result
result
Definition: get_generator_info.py:21
CP::ISystematicsSvc
the interface for the central systematics service
Definition: ISystematicsSvc.h:25
CP::SelectionAccessorExprOr::SelectionAccessorExprOr
SelectionAccessorExprOr(std::unique_ptr< ISelectionReadAccessor > left, std::unique_ptr< ISelectionReadAccessor > right)
Definition: SelectionAccessorExprOr.cxx:11
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:483
SelectionAccessorExprOr.h
SystematicSet.h
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
CP::SelectionAccessorExprOr::fillSystematics
virtual StatusCode fillSystematics(const ISystematicsSvc &svc, const std::vector< CP::SystematicSet > &sysList, const std::string &objectName) override
fill the systematic variations
Definition: SelectionAccessorExprOr.cxx:35
CP::SelectionAccessorExprOr::getInputAffecting
virtual CP::SystematicSet getInputAffecting(const ISystematicsSvc &svc, const std::string &objectName) const override
get the systematics when reading from the decoration
Definition: SelectionAccessorExprOr.cxx:26
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::SelectionAccessorExprOr::m_left
std::unique_ptr< ISelectionReadAccessor > m_left
Definition: SelectionAccessorExprOr.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
CP::SelectionAccessorExprOr::label
virtual std::string label() const override
Definition: SelectionAccessorExprOr.cxx:21
CP::SelectionAccessorExprOr::m_right
std::unique_ptr< ISelectionReadAccessor > m_right
Definition: SelectionAccessorExprOr.h:41
CP::SelectionAccessorExprOr::getBool
virtual bool getBool(const SG::AuxElement &element, const CP::SystematicSet *sys) const override
Definition: SelectionAccessorExprOr.cxx:16