| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# IAlgorithm Class Reference

`#include <GaudiKernel/IAlgorithm.h>`

Inheritance diagram for IAlgorithm:

[legend]
Collaboration diagram for IAlgorithm:

[legend]
List of all members.

## Detailed Description

The IAlgorithm is the interface implmented by the Algorithm base class.

Concrete algorithms, derived from the Algorithm base class are controlled via this interface.

Author:
  Paul Maley

  D.Quarrie

Definition at line 22 of file IAlgorithm.h.

## Public Member Functions
virtual const std::string & | version () const=0
| The version of the algorithm.
virtual StatusCode | execute ()=0
| The action to be performed by the algorithm on an event.
virtual bool | isInitialized () const=0
| check if the algorithm is initialized properly
virtual bool | isFinalized () const=0
| check if the algorithm is finalized properly
virtual bool | isExecuted () const=0
| check if th ealgorithm is already executed for the current event
virtual StatusCode | configure ()=0
| Configuration (from OFFLINE to CONFIGURED).
virtual StatusCode | initialize ()=0
| Initialization (from CONFIGURED to INITIALIZED).
virtual StatusCode | start ()=0
| Start (from INITIALIZED to RUNNING).
virtual StatusCode | stop ()=0
| Stop (from RUNNING to INITIALIZED).
virtual StatusCode | finalize ()=0
| Finalize (from INITIALIZED to CONFIGURED).
virtual StatusCode | terminate ()=0
| Initialization (from CONFIGURED to OFFLINE).
virtual StatusCode | reinitialize ()=0
| Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
virtual StatusCode | restart ()=0
| Initialization (from RUNNING to RUNNING, via INITIALIZED).
virtual Gaudi::StateMachine::State | FSMState () const=0
| Get the current state.
virtual StatusCode | sysInitialize ()=0
| Initialization method invoked by the framework.
virtual StatusCode | sysStart ()=0
| Startup method invoked by the framework.
virtual StatusCode | sysReinitialize ()=0
| Re-initialization method invoked by the framework.
virtual StatusCode | sysRestart ()=0
| Re-start method invoked by the framework.
virtual StatusCode | sysExecute ()=0
| System execution. This method invokes the execute() method of a concrete algorithm.
virtual StatusCode | sysStop ()=0
| System stop.
virtual StatusCode | sysFinalize ()=0
| System finalization.
virtual StatusCode | sysBeginRun ()=0
| beginRun method invoked by the framework.
virtual StatusCode | sysEndRun ()=0
| endRun method invoked by the framework.
virtual void | resetExecuted ()=0
| Reset the Algorithm executed state for the current event.
virtual StatusCode | beginRun ()=0
| Algorithm begin run.
virtual StatusCode | endRun ()=0
| Algorithm end run.
## Static Public Member Functions
static const InterfaceID & | interfaceID ()
| Retrieve interface ID.

## Member Function Documentation

static const InterfaceID& IAlgorithm::interfaceID | ( |  | ) | `[inline, static]`

Retrieve interface ID.

Reimplemented from INamedInterface.

Definition at line 25 of file IAlgorithm.h.

References IID_IAlgorithm.

Referenced by Algorithm::queryInterface(), and toAlg().

    00025 { return IID_IAlgorithm; }

virtual const std::string& IAlgorithm::version | ( |  | ) | const`[pure virtual]`

The version of the algorithm.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::execute | ( |  | ) | `[pure virtual]`

The action to be performed by the algorithm on an event.

This method is invoked once per event for top level algorithms by the application manager.

Implemented in EventCounter, GaudiAlgorithm, GaudiSequencer, Prescaler, Sequencer, GaudiPython::PyAlgorithm, GaudiPython::PyAlg< ALGORITHM >, PartitionSwitchAlg, StoreExplorerAlg, CollectionCloneAlg, EvtCollectionStream, and OutputStream.

Referenced by Algorithm::sysExecute().

virtual bool IAlgorithm::isInitialized | ( |  | ) | const`[pure virtual]`

check if the algorithm is initialized properly

Implemented in Algorithm.

virtual bool IAlgorithm::isFinalized | ( |  | ) | const`[pure virtual]`

check if the algorithm is finalized properly

Implemented in Algorithm.

virtual bool IAlgorithm::isExecuted | ( |  | ) | const`[pure virtual]`

check if th ealgorithm is already executed for the current event

Implemented in Algorithm.

virtual StatusCode IAlgorithm::configure | ( |  | ) | `[pure virtual]`

Configuration (from OFFLINE to CONFIGURED).

Implemented in Algorithm.

virtual StatusCode IAlgorithm::initialize | ( |  | ) | `[pure virtual]`

Initialization (from CONFIGURED to INITIALIZED).

Implemented in EventCounter, GaudiAlgorithm, GaudiHistoAlg, GaudiSequencer, GaudiTupleAlg, Prescaler, Sequencer, Algorithm, GaudiPython::PyAlgorithm, GaudiPython::PyAlg< ALGORITHM >, PartitionSwitchAlg, StoreExplorerAlg, CollectionCloneAlg, EvtCollectionStream, OutputStream, TagCollectionStream, GaudiCommon< Algorithm >, GaudiHistos< GaudiAlgorithm >, and GaudiTuples< GaudiHistoAlg >.

virtual StatusCode IAlgorithm::start | ( |  | ) | `[pure virtual]`

Start (from INITIALIZED to RUNNING).

Implemented in Sequencer, Algorithm, GaudiPython::PyAlgorithm, and GaudiPython::PyAlg< ALGORITHM >.

virtual StatusCode IAlgorithm::stop | ( |  | ) | `[pure virtual]`

Stop (from RUNNING to INITIALIZED).

Implemented in Sequencer, Algorithm, GaudiPython::PyAlgorithm, and GaudiPython::PyAlg< ALGORITHM >.

virtual StatusCode IAlgorithm::finalize | ( |  | ) | `[pure virtual]`

Finalize (from INITIALIZED to CONFIGURED).

Implemented in EventCounter, GaudiAlgorithm, GaudiHistoAlg, GaudiSequencer, GaudiTupleAlg, Prescaler, Sequencer, Algorithm, GaudiPython::PyAlgorithm, GaudiPython::PyAlg< ALGORITHM >, PartitionSwitchAlg, StoreExplorerAlg, CollectionCloneAlg, EvtCollectionStream, OutputStream, TagCollectionStream, GaudiCommon< Algorithm >, GaudiHistos< GaudiAlgorithm >, and GaudiTuples< GaudiHistoAlg >.

virtual StatusCode IAlgorithm::terminate | ( |  | ) | `[pure virtual]`

Initialization (from CONFIGURED to OFFLINE).

Implemented in Algorithm.

virtual StatusCode IAlgorithm::reinitialize | ( |  | ) | `[pure virtual]`

Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).

Implemented in Sequencer, and Algorithm.

virtual StatusCode IAlgorithm::restart | ( |  | ) | `[pure virtual]`

Initialization (from RUNNING to RUNNING, via INITIALIZED).

Implemented in Algorithm.

virtual Gaudi::StateMachine::State IAlgorithm::FSMState | ( |  | ) | const`[pure virtual]`

Get the current state.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysInitialize | ( |  | ) | `[pure virtual]`

Initialization method invoked by the framework.

This method is responsible for any bookkeeping of initialization required by the framework itself. It will in turn invoke the initialize() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

Referenced by AlgorithmManager::createAlgorithm().

virtual StatusCode IAlgorithm::sysStart | ( |  | ) | `[pure virtual]`

Startup method invoked by the framework.

This method is responsible for any bookkeeping of initialization required by the framework itself. It will in turn invoke the start() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

Referenced by AlgorithmManager::createAlgorithm().

virtual StatusCode IAlgorithm::sysReinitialize | ( |  | ) | `[pure virtual]`

Re-initialization method invoked by the framework.

This method is responsible for any re-initialization required by the framework itself. It will in turn invoke the reinitialize() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysRestart | ( |  | ) | `[pure virtual]`

Re-start method invoked by the framework.

This method is responsible for any re-start required by the framework itself. It will in turn invoke the restart() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysExecute | ( |  | ) | `[pure virtual]`

System execution. This method invokes the execute() method of a concrete algorithm.

Implemented in GaudiAlgorithm, and Algorithm.

Referenced by DataOnDemandSvc::execHandler().

virtual StatusCode IAlgorithm::sysStop | ( |  | ) | `[pure virtual]`

System stop.

This method invokes the stop() method of a concrete algorithm and the stop() methods of all of that algorithm's sub algorithms.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysFinalize | ( |  | ) | `[pure virtual]`

System finalization.

This method invokes the finalize() method of a concrete algorithm and the finalize() methods of all of that algorithm's sub algorithms.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysBeginRun | ( |  | ) | `[pure virtual]`

beginRun method invoked by the framework.

This method is responsible for any beginRun actions required by the framework itself. It will in turn invoke the beginRun() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

virtual StatusCode IAlgorithm::sysEndRun | ( |  | ) | `[pure virtual]`

endRun method invoked by the framework.

This method is responsible for any endRun actions required by the framework itself. It will in turn invoke the endRun() method of the derived algorithm, and of any sub-algorithms which it creates.

Implemented in Algorithm.

virtual void IAlgorithm::resetExecuted | ( |  | ) | `[pure virtual]`

Reset the Algorithm executed state for the current event.

Implemented in GaudiSequencer, Sequencer, and Algorithm.

virtual StatusCode IAlgorithm::beginRun | ( |  | ) | `[pure virtual]`

Algorithm begin run.

This method is called at the beginning of the event loop.

Implemented in GaudiSequencer, Sequencer, Algorithm, GaudiPython::PyAlgorithm, and GaudiPython::PyAlg< ALGORITHM >.

virtual StatusCode IAlgorithm::endRun | ( |  | ) | `[pure virtual]`

Algorithm end run.

This method is called at the end of the event loop.

Implemented in GaudiSequencer, Sequencer, Algorithm, GaudiPython::PyAlgorithm, and GaudiPython::PyAlg< ALGORITHM >.

The documentation for this class was generated from the following file:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r2/GaudiKernel/v25r2/GaudiKernel/IAlgorithm.h