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);
45 MSG::Level lvl = MSG::DEBUG)
const;
77 bool runTwoConversion);
82 bool onlyValidateOneStep,
83 bool runTwoConversion,
85 std::set<const TrigCompositeUtils::Decision*>& fullyExploredFrom);
98 MSG::Level lvl)
const;
105 Gaudi::Property<bool>
m_runtimeValidation {
this,
"RuntimeValidation",
false,
"Enable detailed runtime validation of HypoAlg output, and upstream Decisions." };
An algorithm that can be simultaneously executed in multiple threads.
ElementLink implementation for ROOT usage.
@ kRequireOne
Require all DecisionIDs to be present in at least one of my parent Decision objects.
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > m_output
output decisions
static void printBangs(MsgStream &msg)
Print header line.
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_input
input decisions
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...
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.
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...
Gaudi::Property< bool > m_runtimeValidation
Enabling of detailed validation checks for use during development.
static StatusCode runtimeValidation(SG::WriteHandle< TrigCompositeUtils::DecisionContainer > &outputHandle, MsgStream &msg, bool onlyValidateOneStep=true, bool runTwoConversion=false)
Executes all individual runtime tests.
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...
virtual ~HypoBase()
destructor
static void printErrorHeader(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
A problem was found, print common output data.
static StatusCode validateDecisionIDs(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
Ensure that all present IDs correspond to configured chains.
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...
virtual StatusCode sysInitialize() override
initialise this base class
HypoBase(const std::string &name, ISvcLocator *pSvcLocator)
constructor, to be called by sub-class constructors
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...
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 StatusCode validateDuplicatedDecisionID(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg)
Ensure that no space is being wasted by duplicated DecisionIDs in any Decision objects.
static StatusCode validateLogicalFlow(const ElementLink< TrigCompositeUtils::DecisionContainer > &dEL, MsgStream &msg, const LogicalFlowCheckMode mode)
Ensure that all DecisionIDs have propagated correctly from their parent.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.