|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef DECISIONHANDLING_HYPOBASE_H
6 #define DECISIONHANDLING_HYPOBASE_H 1
23 HypoBase(
const std::string&
name, ISvcLocator* pSvcLocator );
32 bool onlyValidateOneStep =
true,
33 bool runTwoConversion =
false);
77 bool runTwoConversion);
82 bool onlyValidateOneStep,
83 bool runTwoConversion,
85 std::set<const TrigCompositeUtils::Decision*>& fullyExploredFrom);
105 Gaudi::Property<bool>
m_runtimeValidation {
this,
"RuntimeValidation",
false,
"Enable detailed runtime validation of HypoAlg output, and upstream Decisions." };
113 #endif // DECISIONHANDLING_HYPOBASE_H
const SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > & decisionInput() const
methods for derived classes to access handles of the base class input other read/write handles may be...
static void printBangs(MsgStream &msg)
Print header line.
Property holding a SG store/key/clid from which a ReadHandle is made.
const SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > & decisionOutput() const
methods for derived classes to access handles of the base class output other read/write handles may b...
An algorithm that can be simultaneously executed in multiple threads.
static StatusCode recursiveValidateGraph(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg, bool onlyValidateOneStep, bool runTwoConversion, size_t callDepth, std::set< const TrigCompositeUtils::Decision * > &fullyExploredFrom)
Execute all checks on one node in the graph, d, then recursive call self on all parent nodes up to L1...
Property holding a SG store/key/clid from which a WriteHandle is made.
static StatusCode validateDuplicatedDecisionID(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
Ensure that no space is being wasted by duplicated DecisionIDs in any Decision objects.
StatusCode hypoBaseOutputProcessing(SG::WriteHandle< TrigCompositeUtils::DecisionContainer > &outputHandle, MSG::Level lvl=MSG::DEBUG) const
Base class function to be called once slice specific code has finished. Handles debug printing and va...
Gaudi::Property< bool > m_runtimeValidation
Enabling of detailed validation checks for use during development.
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_input
input decisions
static StatusCode validateLogicalFlow(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg, const LogicalFlowCheckMode mode)
Ensure that all DecisionIDs have propagated correctly from their parent.
static StatusCode validateDecisionIDs(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
Ensure that all present IDs correspond to configured chains.
ElementLink implementation for ROOT usage.
Hypothesis algorithms take the output of reco algorithms and the decision from the preceeding InputMa...
virtual ~HypoBase()
destructor
StatusCode printDebugInformation(SG::WriteHandle< TrigCompositeUtils::DecisionContainer > &outputHandle, MSG::Level lvl) const
Common base function to print information on chains passed by objects considered in the hypo.
static StatusCode validateParentLinking(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg, bool runTwoConversion)
Ensure that the Decision has at least one valid parent, unless it is a initial Decision from the HLTS...
HypoBase(const std::string &name, ISvcLocator *pSvcLocator)
constructor, to be called by sub-class constructors
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > m_output
output decisions
virtual StatusCode sysInitialize() override
initialise this base class
static StatusCode runtimeValidation(SG::WriteHandle< TrigCompositeUtils::DecisionContainer > &outputHandle, MsgStream &msg, bool onlyValidateOneStep=true, bool runTwoConversion=false)
Executes all individual runtime tests.
static StatusCode validateHasLinks(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
Ensure all Decisions have the named ElementLink graph edges which they are required to by spec.
static void printErrorHeader(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
A problem was found, print common output data.
@ kRequireOne
Require all DecisionIDs to be present in at least one of my parent Decision objects.