ATLAS Offline Software
Loading...
Searching...
No Matches
SystematicsTool.h
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#ifndef PATINTERFACES_SYSTEMATICS_TOOL_H
9#define PATINTERFACES_SYSTEMATICS_TOOL_H
10
11// System include(s):
12#include <unordered_map>
13
14// Local include(s):
19
20namespace CP {
21
48 class SystematicsTool : virtual public ISystematicsTool {
49
50 public:
55
58 virtual bool
59 isAffectedBySystematic( const SystematicVariation& systematic ) const;
60
65 virtual SystematicSet
67
72 virtual SystematicSet
74
79 const SystematicSet& appliedSystematics() const;
80
87 std::string appliedSystematicsString () const;
88
103 virtual StatusCode applySystematicVariation
104 ( const SystematicSet& systConfig );
105
106 protected:
113 StatusCode addAffectingSystematic
114 ( const SystematicVariation& systematic, bool recommended );
115
118 StatusCode addRecommendedSystematic
119 ( const SystematicVariation& systematic );
120
123 ( const SystematicSet& systematics );
124
127 ( const SystematicSet& systematics );
128
137 ( const SystematicSet& systConfig ) = 0;
138
139 public:
142 void testInvariant() const;
143
144 protected:
148
149 private:
152
154 std::unordered_map<SystematicSet, SystematicSet> m_systFilterMap;
155
156 }; // class SystematicsTool
157
158} // namespace CP
159
160#endif // PATINTERFACES_SYSTEMATICS_TOOL_H
static const std::vector< std::string > systematics
Interface for all CP tools supporting systematic variations.
Class to wrap a set of SystematicVariations.
SystematicsTool()
effects: standard constructor guarantee: strong failures: out of memory I
virtual bool isAffectedBySystematic(const SystematicVariation &systematic) const
returns: whether this tool is affected by the given systematic guarantee: no-fail
SystematicSet * m_appliedSystematics
description: pointer to currenty applied systematics
void addAffectingSystematics(const SystematicSet &systematics)
effects: add a SystematicSet to the registered systematics.
void testInvariant() const
effects: test the invariance of this object guarantee: no-fail
StatusCode addRecommendedSystematic(const SystematicVariation &systematic)
effects: add a systematic to the list of recommended systematics failures: unsupported systematic
virtual StatusCode sysApplySystematicVariation(const SystematicSet &systConfig)=0
effects: configure this tool for the given list of systematic variations.
virtual SystematicSet recommendedSystematics() const
returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of ...
SystematicSet m_recommendedSystematics
virtual SystematicSet affectingSystematics() const
returns: the list of all systematics this tool can be affected by guarantee: strong failures: out of ...
std::unordered_map< SystematicSet, SystematicSet > m_systFilterMap
map of cached systematics filtering
StatusCode addRecommendedSystematics(const SystematicSet &systematics)
effects: add a SystematicSet to the recommended systematics.
virtual StatusCode applySystematicVariation(const SystematicSet &systConfig)
effects: configure this tool for the given list of systematic variations.
SystematicSet m_affectingSystematics
description: members directly corresponding to accessors
std::string appliedSystematicsString() const
returns: a string representation of appliedSystematics() guarantee: strong failures: out of memory II...
StatusCode addAffectingSystematic(const SystematicVariation &systematic, bool recommended)
effects: add a systematic to the list of registered systematics.
const SystematicSet & appliedSystematics() const
returns: the list of systematics that have been applied to this tool.
Select isolated Photons, Electrons and Muons.