Algorithms must always create their output containers, even if
empty. Algorithms not finding an expected input container must return
StatusCode::FAILURE, this will stop the event processing.
Monitoring and Checking
Monitors are algorithms that monitor the
performance of the code using real data only (no MC truth)
Checkers are algorithms that check the
performance of the code by comparing to MC truth information, and
therefore cannot run on real data.
Any monitoring or checking algorithms that produce histograms must
inherit from the GaudiHistoAlg
base class. This provides many shortcuts for booking and filling
histograms, and also enforces the convention that the histograms should be stored in directories that have the name
of the algorithm producing them. The HistoTopDir should be set to
the sub-detector name. Within an algorithm, histogram identifiers can be
freely chosen by the developer; any alphanumeric string is allowed.
Algorithms producing NTuples should inherit from the GaudiTupleAlg
base class, which itself inherits from GaudiHistoAlg. Use such
algorithms with care: NTuples grow with the number of events, they
should be used only in end-user analysis, not in production