| The Gaudi Framework v27r1

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

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Algorithm Class Reference

Base class from which all concrete algorithm classes should be derived. More...

`#include <GaudiKernel/Algorithm.h>`

Inheritance diagram for Algorithm:
[legend]
Collaboration diagram for Algorithm:
[legend]

## Public Types
typedef Gaudi::PluginService::Factory< IAlgorithm *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > >
using | base_class = CommonMessaging

## Public Member Functions
| Algorithm (const std::string &name, ISvcLocator *svcloc, const std::string &version=PACKAGE_VERSION)
| Constructor. More...
| ~Algorithm () override=default
| Destructor. More...
StatusCode | sysStart () override
| Reinitialization method invoked by the framework. More...
StatusCode | sysInitialize () override
| Initialization method invoked by the framework. More...
StatusCode | sysReinitialize () override
| Reinitialization method invoked by the framework. More...
StatusCode | sysRestart () override
| Restart method invoked by the framework. More...
StatusCode | sysExecute () override
| The actions to be performed by the algorithm on an event. More...
StatusCode | sysStop () override
| System stop. More...
StatusCode | sysFinalize () override
| System finalization. More...
StatusCode | sysBeginRun () override
| beginRun method invoked by the framework. More...
StatusCode | sysEndRun () override
| endRun method invoked by the framework. More...
const std::string & | name () const override
| The identifying name of the algorithm object. More...
const Gaudi::StringKey & | nameKey () const override
const std::string & | type () const override
| The type of the algorithm object. More...
void | setType (const std::string &type) override
const std::string & | version () const override
unsigned int | index () const override
StatusCode | configure () override
| Dummy implementation of IStateful::configure() method. More...
StatusCode | terminate () override
| Dummy implementation of IStateful::terminate() method. More...
StatusCode | initialize () override
| the default (empty) implementation of IStateful::initialize() method More...
StatusCode | start () override
| the default (empty) implementation of IStateful::start() method More...
StatusCode | stop () override
| the default (empty) implementation of IStateful::stop() method More...
StatusCode | finalize () override
| the default (empty) implementation of IStateful::finalize() method More...
StatusCode | reinitialize () override
| the default (empty) implementation of IStateful::reinitialize() method More...
StatusCode | restart () override
| the default (empty) implementation of IStateful::restart() method More...
Gaudi::StateMachine::State | FSMState () const override
| returns the current state of the algorithm More...
Gaudi::StateMachine::State | targetFSMState () const override
| returns the state the algorithm will be in after the ongoing transition More...
bool | isExecuted () const override
| Has this algorithm been executed since the last reset? More...
void | setExecuted (bool state) override
| Set the executed flag to the specified state. More...
void | resetExecuted () override
| Reset the executed state of the Algorithm for the duration of the current event. More...
StatusCode | beginRun () override
| Algorithm begin run. More...
StatusCode | endRun () override
| Algorithm end run. This method is called at the end of the event loop. More...
bool | isEnabled () const override
| Is this algorithm enabled or disabled? More...
bool | filterPassed () const override
| Did this algorithm pass or fail its filter criterion for the last event? More...
void | setFilterPassed (bool state) override
| Set the filter passed flag to the specified state. More...
int | errorCount () const
| Get the number of failures of the algorithm. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist. More...
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name") More...
template<class T >
SmartIF< T > | service (const std::string &name, bool createIf=true, bool quiet=false) const
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
SmartIF< IChronoStatSvc > & | chronoSvc () const
| The standard Chrono & Stat service, Return a pointer to the service if present. More...
SmartIF< IChronoStatSvc > & | chronoStatService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IDataProviderSvc > & | detSvc () const
| The standard detector data service. More...
SmartIF< IDataProviderSvc > & | detDataService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IConversionSvc > & | detCnvSvc () const
| The standard detector data persistency conversion service. More...
SmartIF< IConversionSvc > & | detDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IDataProviderSvc > & | eventSvc () const
| The standard event data service. More...
SmartIF< IDataProviderSvc > & | evtSvc () const
| shortcut for method eventSvc More...
SmartIF< IDataProviderSvc > & | eventDataService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IConversionSvc > & | eventCnvSvc () const
| The standard event data persistency conversion service. More...
SmartIF< IConversionSvc > & | eventDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IHistogramSvc > & | histoSvc () const
| The standard histogram service. More...
SmartIF< IHistogramSvc > & | histogramDataService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< INTupleSvc > & | ntupleSvc () const
| The standard N tuple service. More...
SmartIF< INTupleSvc > & | ntupleService () const
| Obsoleted name, kept due to the backwards compatibility. More...
SmartIF< IRndmGenSvc > & | randSvc () const
| AIDA-based NTuple service Returns a pointer to the AIDATuple service if present. More...
SmartIF< IToolSvc > & | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present. More...
SmartIF< IExceptionSvc > & | exceptionSvc () const
| Get the exception Service. More...
SmartIF< IAlgContextSvc > & | contextSvc () const
| get Algorithm Context Service More...
SmartIF< ITimelineSvc > & | timelineSvc () const
SmartIF< ISvcLocator > & | serviceLocator () const override
| The standard service locator. More...
SmartIF< ISvcLocator > & | svcLoc () const
| shortcut for method serviceLocator More...
SmartIF< IHiveWhiteBoard > & | whiteboard () const
bool | registerContext () const
| register for Algorithm Context Service? More...
StatusCode | createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
| Create a sub algorithm. More...
const std::vector< Algorithm * > * | subAlgorithms () const
| List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms. More...
std::vector< Algorithm * > * | subAlgorithms ()
| List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms. More...
StatusCode | setProperty (const Property &p) override
| Implementation of IProperty::setProperty. More...
StatusCode | setProperty (const std::string &s) override
| Implementation of IProperty::setProperty. More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| Implementation of IProperty::setProperty. More...
StatusCode | getProperty (Property *p) const override
| Implementation of IProperty::getProperty. More...
const Property & | getProperty (const std::string &name) const override
| Implementation of IProperty::getProperty. More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| Implementation of IProperty::getProperty. More...
const std::vector< Property * > & | getProperties () const override
| Implementation of IProperty::getProperties. More...
bool | hasProperty (const std::string &name) const override
| Implementation of IProperty::hasProperty. More...
PropertyMgr * | getPropertyMgr ()
StatusCode | setProperties ()
| Set the algorithm's properties. More...
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property. More...
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties. More...
template<class T >
Property * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none") const
template<class T >
Property * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none") const
SmartIF< IMonitorSvc > & | monitorSvc () const
| Access the monitor service. More...
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information. More...
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case) More...
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
EventContext * | getContext () const
| get the context More...
void | setContext (EventContext *context)
| set the context More...
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override
virtual const DataObjIDColl & | extraInputDeps () const override
virtual const DataObjIDColl & | extraOutputDeps () const override
virtual void | acceptDHVisitor (IDataHandleVisitor *) const override
const DataObjIDColl & | inputDataObjs () const
const DataObjIDColl & | outputDataObjs () const
void | commitHandles () override
void | registerTool (IAlgTool *tool) const
void | deregisterTool (IAlgTool *tool) const
template<class T >
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
const std::vector< IAlgTool * > & | tools () const
bool | isClonable () const override
| Specifies the clonability of the algorithm. More...
unsigned int | cardinality () const override
| Return the cardinality. More...
const std::vector< std::string > & | neededResources () const override
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...

## Protected Member Functions
virtual void | declareInput (Gaudi::DataHandle *im) override
virtual void | declareOutput (Gaudi::DataHandle *im) override
std::vector< IAlgTool * > & | tools ()
bool | isInitialized () const override
| Has the Algorithm already been initialized? More...
bool | isFinalized () const override
| Has the Algorithm already been finalized? More...
void | setIndex (const unsigned int &idx) override
| set instantiation index of Alg More...
Protected Member Functions inherited from CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Protected Attributes
EventContext * | m_event_context
| Event specific data for multiple event processing. More...
SmartIF< PropertyMgr > | m_propertyMgr
| For management of properties. More...
std::unique_ptr< IDataHandleVisitor > | m_updateDataHandles
| Hook for for derived classes to provide a custom visitor for data handles. More...

## Private Member Functions
void | initToolHandles () const
StatusCode | service_i (const std::string &svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
| implementation of service method More...
StatusCode | service_i (const std::string &svcType, const std::string &svcName, const InterfaceID &iid, void **ppSvc) const
| Algorithm (const Algorithm &a)
| Private Copy constructor: NO COPY ALLOWED. More...
Algorithm & | operator= (const Algorithm &rhs)
| Private assignment operator: NO ASSIGNMENT ALLOWED. More...

## Private Attributes
std::vector< Gaudi::DataHandle * > | m_inputHandles
std::vector< Gaudi::DataHandle * > | m_outputHandles
DataObjIDColl | m_inputDataObjs
DataObjIDColl | m_outputDataObjs
DataObjIDColl | m_extInputDataObjs
DataObjIDColl | m_extOutputDataObjs
Gaudi::StringKey | m_name
| Algorithm's name for identification. More...
std::string | m_type
| Algorithm's type. More...
std::string | m_version
| Algorithm's version. More...
unsigned int | m_index
| Algorithm's index. More...
std::vector< Algorithm * > | m_subAlgms
| Sub algorithms. More...
std::vector< IAlgTool * > | m_tools
std::vector< BaseToolHandle * > | m_toolHandles
std::vector< GaudiHandleArrayBase * > | m_toolHandleArrays
SmartIF< IMessageSvc > | m_MS
| Message service. More...
SmartIF< IDataProviderSvc > | m_EDS
| Event data service. More...
SmartIF< IHiveWhiteBoard > | m_WB
| Event data service (whiteboard) More...
SmartIF< IConversionSvc > | m_ECS
| Event conversion service. More...
SmartIF< IDataProviderSvc > | m_DDS
| Detector data service. More...
SmartIF< IConversionSvc > | m_DCS
| Detector conversion service. More...
SmartIF< IHistogramSvc > | m_HDS
| Histogram data service. More...
SmartIF< INTupleSvc > | m_NTS
| N tuple service. More...
SmartIF< IChronoStatSvc > | m_CSS
| Chrono & Stat Service. More...
SmartIF< IRndmGenSvc > | m_RGS
| Random Number Generator Service. More...
SmartIF< IExceptionSvc > | m_EXS
| Exception Handler Service. More...
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. More...
SmartIF< IToolSvc > | m_ptoolSvc
| ToolSvc Service. More...
SmartIF< IMonitorSvc > | m_pMonitorSvc
| Online Monitoring Service. More...
SmartIF< IAlgContextSvc > | m_contextSvc
| Algorithm Context Service. More...
SmartIF< ITimelineSvc > | m_timelineSvc
| Timeline Service. More...
bool | m_registerContext = false
| flag to register for Algorithm Context Service More...
std::string | m_monitorSvcName
| Name to use for Monitor Service. More...
SmartIF< ISvcLocator > | m_pSvcLocator
| Pointer to service locator service. More...
IntegerProperty | m_outputLevel
| Algorithm output level. More...
int | m_errorMax
| Algorithm Max number of errors. More...
int | m_errorCount
| Algorithm error counter. More...
BooleanProperty | m_auditInit
| global flag for auditors More...
bool | m_auditorInitialize
| flag for auditors in "initialize()" More...
bool | m_auditorReinitialize
| flag for auditors in "Reinitialize()" More...
bool | m_auditorRestart
| flag for auditors in "Restart()" More...
bool | m_auditorExecute
| flag for auditors in "execute()" More...
bool | m_auditorFinalize
| flag for auditors in "finalize()" More...
bool | m_auditorBeginRun
| flag for auditors in "beginRun()" More...
bool | m_auditorEndRun
| flag for auditors in "endRun()" More...
bool | m_auditorStart
| flag for auditors in "initialize()" More...
bool | m_auditorStop
| flag for auditors in "Reinitialize()" More...
bool | m_filterPassed = true
| Filter passed flag. More...
bool | m_isEnabled = true
| Algorithm is enabled flag. More...
bool | m_isExecuted = false
| Algorithm is executed flag. More...
bool | m_toolHandlesInit = false
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::CONFIGURED
| flag indicating whether ToolHandle tools have been added to m_tools More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::CONFIGURED
| Algorithm has been initialized flag. More...
bool | m_isFinalized
| Algorithm has been finalized flag. More...
bool | m_doTimeline
bool | m_isClonable
| The algorithm clonability of the algorithm. More...
unsigned int | m_cardinality
| The maximum number of clones that can exist. More...
std::vector< std::string > | m_neededResources
| The named resources needed during event looping. More...

## Detailed Description

Base class from which all concrete algorithm classes should be derived.

In order for a concrete algorithm class to do anything useful the methods initialize(), execute() and finalize() should be overridden.

The base class provides utility methods for accessing standard services (event data service etc.); for declaring properties which may be configured by the job options service; and for creating sub algorithms. The only base class functionality which may be used in the constructor of a concrete algorithm is the declaration of member variables as properties. All other functionality, i.e. the use of services and the creation of sub-algorithms, may be used only in initialize() and afterwards (see the Gaudi user guide).

Author
  Paul Maley
  Pere Mato
  David Quarrie

Date
  1998

Definition at line 74 of file Algorithm.h.

## Member Typedef Documentation

typedef Gaudi::PluginService::Factory<IAlgorithm*, const std::string&, ISvcLocator*> Algorithm::Factory

Definition at line 82 of file Algorithm.h.

## Constructor & Destructor Documentation

Algorithm::Algorithm | ( | const std::string & | name,
|  | ISvcLocator * | svcloc,
|  | const std::string & | version = `PACKAGE_VERSION`
| ) |  |

Constructor.

Parameters

  name | The algorithm object's name
  svcloc | A pointer to a service location service

Definition at line 43 of file Algorithm.cpp.

47 { PyErr_Print() ; }
48 else if ( PyLong_Check( c )) { sc = PyLong_AsLong( c ); }
49 else
50 {
51 std::string msg( " call_python_method unexpected type from '" );
52 msg += method ;
53 msg += "().getCode()' " ;
54 PyErr_SetString( PyExc_TypeError , msg.c_str() ) ;
55 PyErr_Print() ;
56 }
57 // release used objects
58 Py_XDECREF( c ) ;
59 Py_XDECREF( r ) ;
60 //
61 return sc;
62 }
63 // ============================================================================
64
65 // ============================================================================
70 // ============================================================================
71 GaudiPython::PyAlgorithm::PyAlgorithm
72 ( PyObject* self ,
73 const std::string& name )
74 : Algorithm ( name , Gaudi::svcLocator() )
75 , m_self ( self )
76 {
77 // The owner of the Algorithm is Python (as creator) therefore
78 // it should not be deleted by Gaudi (added an extra addRef()).
79 addRef() ;
80 addRef() ;
81 }
82 // ============================================================================
83
84 // ============================================================================
85 StatusCode GaudiPython::PyAlgorithm::initialize ()
86 { return GaudiPython::call_python_method ( m_self , "initialize" ) ; }
87 // ============================================================================
88 StatusCode GaudiPython::PyAlgorithm::start ()
89 { return GaudiPython::call_python_method ( m_self , "start" ) ; }
90 // ============================================================================
91 StatusCode GaudiPython::PyAlgorithm::execute ()
92 { return GaudiPython::call_python_method ( m_self , "execute" ) ; }
93 // ============================================================================
94 StatusCode GaudiPython::PyAlgorithm::stop ()
95 { return GaudiPython::call_python_method ( m_self , "stop" ) ; }
96 // ============================================================================
97 StatusCode GaudiPython::PyAlgorithm::finalize ()
98 { return GaudiPython::call_python_method ( m_self , "finalize" ) ; }
99
100 StatusCode GaudiPython::PyAlgorithm::beginRun() {
101 return GaudiPython::call_python_method ( m_self , "beginRun" ) ; }
102 StatusCode GaudiPython::PyAlgorithm::endRun() {
CommonMessagingBase::msg
MsgStream & msg() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:133
GaudiPython::PyAlgorithm::beginRun
StatusCode beginRun()
Definition: Algorithm.cpp:100
gaudirun.c
tuple c
Definition: gaudirun.py:391
GaudiPython::PyAlgorithm::PyAlgorithm
PyAlgorithm(PyObject *self, const std::string &name)
constructor
Definition: Algorithm.cpp:72
merge_files.sc
int sc
Definition: merge_files.py:167
std::string
STL class.
Gaudi::svcLocator
GAUDI_API ISvcLocator * svcLocator()
GaudiPython::PyAlgorithm::initialize
StatusCode initialize()
Definition: Algorithm.cpp:85
implements< IConverter >::addRef
unsigned long addRef() override
Reference Interface instance.
Definition: implements.h:44
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
GaudiPython::PyAlgorithm::execute
StatusCode execute()
Definition: Algorithm.cpp:91
Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:74
GaudiPython::PyAlgorithm::start
StatusCode start()
Definition: Algorithm.cpp:88
GaudiPython::PyAlgorithm::stop
StatusCode stop()
Definition: Algorithm.cpp:94
GaudiPython::PyAlgorithm::finalize
StatusCode finalize()
Definition: Algorithm.cpp:97
GaudiPython::PyAlgorithm::endRun
StatusCode endRun()
Definition: Algorithm.cpp:102
GaudiPython::call_python_method
GAUDI_API StatusCode call_python_method(PyObject *self, const char *method)
call the python method
Definition: Algorithm.cpp:29
Gaudi
Helper functions to set/get the application return code.
Definition: __init__.py:1

Algorithm::~Algorithm | ( |  | ) |
| override default

Destructor.

Algorithm::Algorithm | ( | const Algorithm & | a | ) |
| private

Private Copy constructor: NO COPY ALLOWED.

## Member Function Documentation

void Algorithm::acceptDHVisitor | ( | IDataHandleVisitor * | vis | ) | const
| override virtual

Definition at line 226 of file Algorithm.cpp.

SmartIF<IAuditorSvc>& Algorithm::auditorSvc | ( |  | ) | const

The standard auditor service.May not be invoked before sysInitialize() has been invoked.

StatusCode Algorithm::beginRun | ( |  | ) |
| override

Algorithm begin run.

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

Definition at line 500 of file Algorithm.cpp.

unsigned int Algorithm::cardinality | ( |  | ) | const
| inline override

Return the cardinality.

Definition at line 658 of file Algorithm.h.

658 { return m_cardinality; }
Algorithm::m_cardinality
unsigned int m_cardinality
The maximum number of clones that can exist.
Definition: Algorithm.h:744

m_CSS m_DCS m_WB m_HDS m_NTS m_ptoolSvc m_timelineSvc SmartIF< IChronoStatSvc > & Algorithm::chronoStatService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 901 of file Algorithm.cpp.

SmartIF<IChronoStatSvc>& Algorithm::chronoSvc | ( |  | ) | const

The standard Chrono & Stat service, Return a pointer to the service if present.

void Algorithm::commitHandles | ( |  | ) |
| override

Definition at line 1097 of file Algorithm.cpp.

StatusCode Algorithm::configure | ( |  | ) |
| inline override

Dummy implementation of IStateful::configure() method.

Definition at line 176 of file Algorithm.h.

176 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

SmartIF<IAlgContextSvc>& Algorithm::contextSvc | ( |  | ) | const

get Algorithm Context Service

StatusCode Algorithm::createSubAlgorithm | ( | const std::string & | type,
|  | const std::string & | name,
|  | Algorithm *& | pSubAlg
| ) |  |

Create a sub algorithm.

A call to this method creates a child algorithm object. Note that the returned pointer is to Algorithm (as opposed to IAlgorithm), and thus the methods of IProperty are also available for the direct setting of the sub-algorithm's properties. Using this mechanism instead of creating daughter algorithms directly via the new operator is prefered since then the framework may take care of all of the necessary book-keeping.

Parameters

  type | The concrete algorithm class of the sub algorithm
  name | The name to be given to the sub algorithm
  pSubAlg | Set to point to the newly created algorithm object

Definition at line 955 of file Algorithm.cpp.

template<class T >

void Algorithm::declareInfo | ( | const std::string & | name,
|  | const T & | var,
|  | const std::string & | desc
| ) |  | const
| inline

Declare monitoring information.

Parameters

  name | Monitoring information name known to the external system
  var | Monitoring Listener address (the item to monitor...)
  desc | Textual description of the information being monitored

Definition at line 493 of file Algorithm.h.

496 {
497 IMonitorSvc* mS = monitorSvc().get();
498 if ( mS ) mS->declareInfo(name, var, desc, this);
499 }
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
IMonitorSvc
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:21
Algorithm::monitorSvc
SmartIF< IMonitorSvc > & monitorSvc() const
Access the monitor service.
Definition: Algorithm.h:478
IMonitorSvc::declareInfo
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.

void Algorithm::declareInfo | ( | const std::string & | name,
|  | const std::string & | format,
|  | const void * | var,
|  | int | size,
|  | const std::string & | desc
| ) |  | const
| inline

Declare monitoring information (special case)

Parameters

  name | Monitoring information name known to the external system
  format | Format information
  var | Monitoring Listener address
  size | Monitoring Listener address size
  desc | Textual description of the information being monitored

Definition at line 508 of file Algorithm.h.

513 {
514 IMonitorSvc* mS = monitorSvc().get();
515 if ( mS ) mS->declareInfo(name, format, var, size, desc, this);
516 }
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
IMonitorSvc
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:21
Algorithm::monitorSvc
SmartIF< IMonitorSvc > & monitorSvc() const
Access the monitor service.
Definition: Algorithm.h:478
IMonitorSvc::declareInfo
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.

virtual void Algorithm::declareInput | ( | Gaudi::DataHandle * | im | ) |
| inline override protected virtual

Definition at line 579 of file Algorithm.h.

579 {
580 m_inputHandles.push_back(im);
581 }
std::vector::push_back
T push_back(T...args)
Algorithm::m_inputHandles
std::vector< Gaudi::DataHandle * > m_inputHandles
Definition: Algorithm.h:605

virtual void Algorithm::declareOutput | ( | Gaudi::DataHandle * | im | ) |
| inline override protected virtual

Definition at line 582 of file Algorithm.h.

582 {
583 m_outputHandles.push_back(im);
584 }
Algorithm::m_outputHandles
std::vector< Gaudi::DataHandle * > m_outputHandles
Definition: Algorithm.h:605
std::vector::push_back
T push_back(T...args)
template<class T >

Property* Algorithm::declareProperty | ( | const std::string & | name,
|  | T & | property,
|  | const std::string & | doc = `"none"`
| ) |  | const
| inline

Declare the named property.

MyAlg ( const std::string& name ,
ISvcLocator* pSvc )
: Algorithm ( name , pSvc )
, m_property1 ( ... )
, m_property2 ( ... )
{
// declare the property
declareProperty( "Property1" , m_property1 , "Doc for property #1" ) ;
// declare the property and attach the handler to it
declareProperty( "Property2" , m_property2 , "Doc for property #2" )
-> declareUpdateHandler( &MyAlg::handler_2 ) ;
}

See also
  PropertyMgr
  PropertyMgr::declareProperty

Parameters

  name | the property name
  property | the property itself,
  doc | the documentation string

Returns
  the actual property objects

Definition at line 426 of file Algorithm.h.

429 {
430 return m_propertyMgr->declareProperty(name, property, doc);
431 }
PropertyMgr::declareProperty
Property * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
Definition: PropertyMgr.h:186
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714
template<class T >

Property* Algorithm::declareProperty | ( | const std::string & | name,
|  | ToolHandle< T > & | hndl,
|  | const std::string & | doc = `"none"`
| ) |  | const
| inline

Definition at line 446 of file Algorithm.h.

448 {
449
450 Algorithm* a = const_cast<Algorithm*>(this);
451 a->declareTool(hndl).ignore();
452
453 return m_propertyMgr->declareProperty(name, hndl, doc);
454
455 }
Algorithm::declareTool
StatusCode declareTool(ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
Definition: Algorithm.h:616
PropertyMgr::declareProperty
Property * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
Definition: PropertyMgr.h:186
Algorithm
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:74
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
template<class T >

Property* Algorithm::declareProperty | ( | const std::string & | name,
|  | ToolHandleArray< T > & | hndlArr,
|  | const std::string & | doc = `"none"`
| ) |  | const
| inline

Definition at line 461 of file Algorithm.h.

463 {
464 m_toolHandleArrays.push_back( &hndlArr );
465 return m_propertyMgr->declareProperty(name, hndlArr, doc);
466 }
Algorithm::m_toolHandleArrays
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
Definition: Algorithm.h:687
std::vector::push_back
T push_back(T...args)
PropertyMgr::declareProperty
Property * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
Definition: PropertyMgr.h:186
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714

Property* Algorithm::declareRemoteProperty | ( | const std::string & | name,
|  | IProperty * | rsvc,
|  | const std::string & | rname = `""`
| ) |  | const
| inline

Declare remote named properties.

Definition at line 435 of file Algorithm.h.

438 {
439 return m_propertyMgr -> declareRemoteProperty ( name , rsvc , rname );
440 }
Algorithm::declareRemoteProperty
Property * declareRemoteProperty(const std::string &name, IProperty *rsvc, const std::string &rname="") const
Declare remote named properties.
Definition: Algorithm.h:435
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714
template<class T >

StatusCode Algorithm::declareTool | ( | ToolHandle< T > & | handle,
|  | std::string | toolTypeAndName = `""`,
|  | bool | createIf = `true`
| ) |  |
| inline

Definition at line 616 of file Algorithm.h.

618 {
619
620 if (toolTypeAndName == "")
621 toolTypeAndName = handle.typeAndName();
622
623 StatusCode sc = handle.initialize(toolTypeAndName,
624 handle.isPublic() ? nullptr : this,
625 createIf);
626 if (UNLIKELY(!sc)) {
627 throw GaudiException{std::string{"Cannot create handle for "} +
628 (handle.isPublic() ? "public" : "private") +
629 " tool " + toolTypeAndName,
630 name(), sc};
631 }
632
633 m_toolHandles.push_back(&handle);
634
635 return sc;
636 }
ToolHandle::typeAndName
std::string typeAndName() const override
Definition: ToolHandle.h:199
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:126
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:23
Algorithm::m_toolHandles
std::vector< BaseToolHandle * > m_toolHandles
Definition: Algorithm.h:686
merge_files.sc
int sc
Definition: merge_files.py:167
std::string
STL class.
Algorithm::name
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:820
std::vector::push_back
T push_back(T...args)
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
ToolHandleInfo::isPublic
bool isPublic() const
Definition: ToolHandle.h:34
ToolHandle::initialize
StatusCode initialize(const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:157

void Algorithm::deregisterTool | ( | IAlgTool * | tool | ) | const

Definition at line 1125 of file Algorithm.cpp.

SmartIF<IConversionSvc>& Algorithm::detCnvSvc | ( |  | ) | const

The standard detector data persistency conversion service.

May not be invoked before sysInitialize() has been invoked.

SmartIF< IConversionSvc > & Algorithm::detDataCnvService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 909 of file Algorithm.cpp.

SmartIF< IDataProviderSvc > & Algorithm::detDataService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 905 of file Algorithm.cpp.

SmartIF<IDataProviderSvc>& Algorithm::detSvc | ( |  | ) | const

The standard detector data service.

May not be invoked before sysInitialize() has been invoked.

StatusCode Algorithm::endRun | ( |  | ) |
| override

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

Definition at line 562 of file Algorithm.cpp.

int Algorithm::errorCount | ( |  | ) | const
| inline

Get the number of failures of the algorithm.

Definition at line 227 of file Algorithm.h.

227 { return m_errorCount; }
Algorithm::m_errorCount
int m_errorCount
Algorithm error counter.
Definition: Algorithm.h:722

SmartIF<IConversionSvc>& Algorithm::eventCnvSvc | ( |  | ) | const

The standard event data persistency conversion service.

May not be invoked before sysInitialize() has been invoked.

SmartIF< IConversionSvc > & Algorithm::eventDataCnvService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 917 of file Algorithm.cpp.

SmartIF< IDataProviderSvc > & Algorithm::eventDataService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 913 of file Algorithm.cpp.

SmartIF<IDataProviderSvc>& Algorithm::eventSvc | ( |  | ) | const

The standard event data service.

May not be invoked before sysInitialize() has been invoked.

SmartIF<IDataProviderSvc>& Algorithm::evtSvc | ( |  | ) | const
| inline

shortcut for method eventSvc

Definition at line 284 of file Algorithm.h.

284 { return eventSvc() ; }
Algorithm::eventSvc
SmartIF< IDataProviderSvc > & eventSvc() const
The standard event data service.

SmartIF<IExceptionSvc>& Algorithm::exceptionSvc | ( |  | ) | const

Get the exception Service.

virtual const DataObjIDColl& Algorithm::extraInputDeps | ( |  | ) | const
| inline override virtual

Definition at line 590 of file Algorithm.h.

590 {
591 return m_extInputDataObjs;
592 }
Algorithm::m_extInputDataObjs
DataObjIDColl m_extInputDataObjs
Definition: Algorithm.h:608

virtual const DataObjIDColl& Algorithm::extraOutputDeps | ( |  | ) | const
| inline override virtual

Definition at line 593 of file Algorithm.h.

593 {
594 return m_extOutputDataObjs;
595 }
Algorithm::m_extOutputDataObjs
DataObjIDColl m_extOutputDataObjs
Definition: Algorithm.h:608

bool Algorithm::filterPassed | ( |  | ) | const
| override

Did this algorithm pass or fail its filter criterion for the last event?

Definition at line 857 of file Algorithm.cpp.

StatusCode Algorithm::finalize | ( |  | ) |
| inline override

the default (empty) implementation of IStateful::finalize() method

Definition at line 187 of file Algorithm.h.

187 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

Gaudi::StateMachine::State Algorithm::FSMState | ( |  | ) | const
| inline override

returns the current state of the algorithm

Definition at line 193 of file Algorithm.h.

193 { return m_state; }
Algorithm::m_state
Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Algorithm.h:737

EventContext* Algorithm::getContext | ( |  | ) | const
| inline

get the context

Definition at line 571 of file Algorithm.h.

571 {return m_event_context;}
Algorithm::m_event_context
EventContext * m_event_context
Event specific data for multiple event processing.
Definition: Algorithm.h:671

const std::vector< Property * > & Algorithm::getProperties | ( |  | ) | const
| override

Implementation of IProperty::getProperties.

Definition at line 998 of file Algorithm.cpp.

StatusCode Algorithm::getProperty | ( | Property * | p | ) | const
| override

Implementation of IProperty::getProperty.

Definition at line 989 of file Algorithm.cpp.

const Property & Algorithm::getProperty | ( | const std::string & | name | ) | const
| override

Implementation of IProperty::getProperty.

Definition at line 992 of file Algorithm.cpp.

StatusCode Algorithm::getProperty | ( | const std::string & | n,
|  | std::string & | v
| ) |  | const
| override

Implementation of IProperty::getProperty.

Definition at line 995 of file Algorithm.cpp.

PropertyMgr* Algorithm::getPropertyMgr | ( |  | ) |
| inline

Definition at line 384 of file Algorithm.h.

384 { return m_propertyMgr; }
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714

bool Algorithm::hasProperty | ( | const std::string & | name | ) | const
| override

Implementation of IProperty::hasProperty.

Definition at line 1001 of file Algorithm.cpp.

SmartIF< IHistogramSvc > & Algorithm::histogramDataService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 921 of file Algorithm.cpp.

SmartIF<IHistogramSvc>& Algorithm::histoSvc | ( |  | ) | const

The standard histogram service.

May not be invoked before sysInitialize() has been invoked.

unsigned int Algorithm::index | ( |  | ) | const
| override

Definition at line 832 of file Algorithm.cpp.

StatusCode Algorithm::initialize | ( |  | ) |
| inline override

the default (empty) implementation of IStateful::initialize() method

Definition at line 181 of file Algorithm.h.

181 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

void Algorithm::initToolHandles | ( |  | ) | const
| private

Definition at line 1005 of file Algorithm.cpp.

const DataObjIDColl& Algorithm::inputDataObjs | ( |  | ) | const
| inline

Definition at line 599 of file Algorithm.h.

599 { return m_inputDataObjs; }
Algorithm::m_inputDataObjs
DataObjIDColl m_inputDataObjs
Definition: Algorithm.h:606

virtual std::vector<Gaudi::DataHandle*> Algorithm::inputHandles | ( |  | ) | const
| inline override virtual

Definition at line 587 of file Algorithm.h.

587 { return m_inputHandles; }
Algorithm::m_inputHandles
std::vector< Gaudi::DataHandle * > m_inputHandles
Definition: Algorithm.h:605

bool Algorithm::isClonable | ( |  | ) | const
| inline override

Specifies the clonability of the algorithm.

Definition at line 655 of file Algorithm.h.

655 { return m_isClonable; }
Algorithm::m_isClonable
bool m_isClonable
The algorithm clonability of the algorithm.
Definition: Algorithm.h:743

bool Algorithm::isEnabled | ( |  | ) | const
| override

Is this algorithm enabled or disabled?

Definition at line 853 of file Algorithm.cpp.

bool Algorithm::isExecuted | ( |  | ) | const
| override

Has this algorithm been executed since the last reset?

Definition at line 840 of file Algorithm.cpp.

bool Algorithm::isFinalized | ( |  | ) | const
| inline override protected

Has the Algorithm already been finalized?

Definition at line 668 of file Algorithm.h.

668 { return Gaudi::StateMachine::CONFIGURED == m_state; }
Gaudi::StateMachine::CONFIGURED
Definition: StateMachine.h:14
Algorithm::m_state
Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Algorithm.h:737

bool Algorithm::isInitialized | ( |  | ) | const
| inline override protected

Has the Algorithm already been initialized?

Definition at line 665 of file Algorithm.h.

665 { return Gaudi::StateMachine::INITIALIZED == m_state; }
Gaudi::StateMachine::INITIALIZED
Definition: StateMachine.h:15
Algorithm::m_state
Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Algorithm.h:737

SmartIF<IMonitorSvc>& Algorithm::monitorSvc | ( |  | ) | const
| inline

Access the monitor service.

Attention
  Note that this method will return a NULL pointer if no monitor service is configured to be present. You must take this possibility into account when using the pointer

Returns
  Pointer to the Monitor service

Return values

  NULL | No monitor service is present
  non-NULL | A monitor service is present and available to be used

Definition at line 478 of file Algorithm.h.

479 {
480 // If not already located try to locate it without forcing a creation
481 if ( !m_pMonitorSvc ){
482 m_pMonitorSvc = service(m_monitorSvcName, false, true); // do not create and be quiet
483 }
484 return m_pMonitorSvc;
485 }
Algorithm::m_pMonitorSvc
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: Algorithm.h:705
Algorithm::service
StatusCode service(const std::string &name, T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Algorithm.h:232
Algorithm::m_monitorSvcName
std::string m_monitorSvcName
Name to use for Monitor Service.
Definition: Algorithm.h:711

const std::string & Algorithm::name | ( |  | ) | const
| override

The identifying name of the algorithm object.

This is the name of a particular instantiation of an algorithm object as opposed to the name of the algorithm itself, e.g. "LinearTrackFit" may be the name of a concrete algorithm class, whereas "ApproxTrackFit" and "BestTrackFit" may be two instantiations of the class configured to find tracks with different fit criteria.

Definition at line 820 of file Algorithm.cpp.

const Gaudi::StringKey & Algorithm::nameKey | ( |  | ) | const
| override

Definition at line 824 of file Algorithm.cpp.

const std::vector<std::string>& Algorithm::neededResources | ( |  | ) | const
| inline override

Definition at line 660 of file Algorithm.h.

660 { return m_neededResources; }
Algorithm::m_neededResources
std::vector< std::string > m_neededResources
The named resources needed during event looping.
Definition: Algorithm.h:745

SmartIF< INTupleSvc > & Algorithm::ntupleService | ( |  | ) | const

Obsoleted name, kept due to the backwards compatibility.

Definition at line 925 of file Algorithm.cpp.

SmartIF<INTupleSvc>& Algorithm::ntupleSvc | ( |  | ) | const

The standard N tuple service.

Returns a pointer to the N tuple service if present.

Algorithm& Algorithm::operator= | ( | const Algorithm & | rhs | ) |
| private

Private assignment operator: NO ASSIGNMENT ALLOWED.

const DataObjIDColl& Algorithm::outputDataObjs | ( |  | ) | const
| inline

Definition at line 600 of file Algorithm.h.

600 { return m_outputDataObjs; }
Algorithm::m_outputDataObjs
DataObjIDColl m_outputDataObjs
Definition: Algorithm.h:606

virtual std::vector<Gaudi::DataHandle*> Algorithm::outputHandles | ( |  | ) | const
| inline override virtual

Definition at line 588 of file Algorithm.h.

588 { return m_outputHandles; }
Algorithm::m_outputHandles
std::vector< Gaudi::DataHandle * > m_outputHandles
Definition: Algorithm.h:605

SmartIF<IRndmGenSvc>& Algorithm::randSvc | ( |  | ) | const

AIDA-based NTuple service Returns a pointer to the AIDATuple service if present.

The standard RandomGen service, Return a pointer to the service if present

bool Algorithm::registerContext | ( |  | ) | const
| inline

register for Algorithm Context Service?

Definition at line 344 of file Algorithm.h.

344 { return m_registerContext ; }
Algorithm::m_registerContext
bool m_registerContext
flag to register for Algorithm Context Service
Definition: Algorithm.h:710

void Algorithm::registerTool | ( | IAlgTool * | tool | ) | const

Definition at line 1116 of file Algorithm.cpp.

StatusCode Algorithm::reinitialize | ( |  | ) |
| override

the default (empty) implementation of IStateful::reinitialize() method

Definition at line 785 of file Algorithm.cpp.

void Algorithm::resetExecuted | ( |  | ) |
| override

Reset the executed state of the Algorithm for the duration of the current event.

Definition at line 848 of file Algorithm.cpp.

StatusCode Algorithm::restart | ( |  | ) |
| override

the default (empty) implementation of IStateful::restart() method

Definition at line 805 of file Algorithm.cpp.

template<class T >

StatusCode Algorithm::service | ( | const std::string & | name,
|  | T *& | psvc,
|  | bool | createIf = `true`
| ) |  | const
| inline

Access a service by name, creating it if it doesn't already exist.

Definition at line 232 of file Algorithm.h.

232 {
233 return service_i(name, createIf, T::interfaceID(), (void**)&psvc);
234 }
Algorithm::service_i
StatusCode service_i(const std::string &svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
implementation of service method
Definition: Algorithm.cpp:1073
template<class T >

StatusCode Algorithm::service | ( | const std::string & | svcType,
|  | const std::string & | svcName,
|  | T *& | psvc
| ) |  | const
| inline

Access a service by name and type, creating it if it doesn't already exist.

Definition at line 238 of file Algorithm.h.

239 {
240 return service_i(svcType, svcName, T::interfaceID(), (void**)&psvc);
241 }
Algorithm::service_i
StatusCode service_i(const std::string &svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
implementation of service method
Definition: Algorithm.cpp:1073

SmartIF< IService > Algorithm::service | ( | const std::string & | name,
|  | const bool | createIf = `true`,
|  | const bool | quiet = `false`
| ) |  | const

Return a pointer to the service identified by name (or "type/name")

Definition at line 1090 of file Algorithm.cpp.

template<class T >

SmartIF<T> Algorithm::service | ( | const std::string & | name,
|  | bool | createIf = `true`,
|  | bool | quiet = `false`
| ) |  | const
| inline

Definition at line 247 of file Algorithm.h.

247 {
248 return service(name,createIf,quiet).as<T>();
249 }
Algorithm::service
StatusCode service(const std::string &name, T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Algorithm.h:232

StatusCode Algorithm::service_i | ( | const std::string & | svcName,
|  | bool | createIf,
|  | const InterfaceID & | iid,
|  | void ** | ppSvc
| ) |  | const
| private

implementation of service method

Protected Member Functions.

Definition at line 1073 of file Algorithm.cpp.

StatusCode Algorithm::service_i | ( | const std::string & | svcType,
|  | const std::string & | svcName,
|  | const InterfaceID & | iid,
|  | void ** | ppSvc
| ) |  | const
| private

Definition at line 1082 of file Algorithm.cpp.

SmartIF< ISvcLocator > & Algorithm::serviceLocator | ( |  | ) | const
| override

The standard service locator.

Returns a pointer to the service locator service. This service may be used by an algorithm to request any services it requires in addition to those provided by default.

Definition at line 929 of file Algorithm.cpp.

void Algorithm::setContext | ( | EventContext * | context | ) |
| inline

set the context

Definition at line 574 of file Algorithm.h.

574 {m_event_context = context;}
Algorithm::m_event_context
EventContext * m_event_context
Event specific data for multiple event processing.
Definition: Algorithm.h:671

void Algorithm::setExecuted | ( | bool | state | ) |
| override

Set the executed flag to the specified state.

Definition at line 844 of file Algorithm.cpp.

void Algorithm::setFilterPassed | ( | bool | state | ) |
| override

Set the filter passed flag to the specified state.

Definition at line 861 of file Algorithm.cpp.

void Algorithm::setIndex | ( | const unsigned int & | idx | ) |
| override protected

set instantiation index of Alg

Definition at line 836 of file Algorithm.cpp.

StatusCode Algorithm::setProperties | ( |  | ) |

Set the algorithm's properties.

This method requests the job options service to set the values of any declared properties. The method is invoked from within sysInitialize() by the framework and does not need to be explicitly called by a concrete algorithm.

Definition at line 934 of file Algorithm.cpp.

StatusCode Algorithm::setProperty | ( | const Property & | p | ) |
| override

Implementation of IProperty::setProperty.

Definition at line 980 of file Algorithm.cpp.

StatusCode Algorithm::setProperty | ( | const std::string & | s | ) |
| override

Implementation of IProperty::setProperty.

Definition at line 983 of file Algorithm.cpp.

StatusCode Algorithm::setProperty | ( | const std::string & | n,
|  | const std::string & | v
| ) |  |
| override

Implementation of IProperty::setProperty.

Definition at line 986 of file Algorithm.cpp.

template<class TYPE >

StatusCode Algorithm::setProperty | ( | const std::string & | name,
|  | const TYPE & | value
| ) |  |
| inline

set the property form the value

std::vector<double> data = ... ;
setProperty( "Data" , data ) ;
std::map<std::string,double> cuts = ... ;
setProperty( "Cuts" , cuts ) ;
std::map<std::string,std::string> dict = ... ;
setProperty( "Dictionary" , dict ) ;

Note: the interface IProperty allows setting of the properties either directly from other properties or from strings only

This is very convenient in resetting of the default properties in the derived classes. E.g. without this method one needs to convert everything into strings to use IProperty::setProperty

setProperty ( "OutputLevel" , "1" ) ;
setProperty ( "Enable" , "True" ) ;
setProperty ( "ErrorMax" , "10" ) ;

For simple cases it is more or less ok, but for complicated properties it is just ugly..

Parameters

  name | name of the property
  value | value of the property

See also
  Gaudi::Utils::setProperty

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2007-05-13

Definition at line 564 of file Algorithm.h.

566 { return Gaudi::Utils::setProperty ( m_propertyMgr.get() , name , value ) ; }
Gaudi::Utils::setProperty
StatusCode setProperty(IProperty *component, const std::string &name, const TYPE &value, const std::string &doc)
simple function to set the property of the given object from the value
Definition: Property.h:1187
Algorithm::name
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:820
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Algorithm::m_propertyMgr
SmartIF< PropertyMgr > m_propertyMgr
For management of properties.
Definition: Algorithm.h:714

void Algorithm::setType | ( | const std::string & | type | ) |
| inline override

Definition at line 169 of file Algorithm.h.

169 { m_type = type;} //BH, TODO: move to proper place
Algorithm::type
const std::string & type() const override
The type of the algorithm object.
Definition: Algorithm.h:168
Algorithm::m_type
std::string m_type
Algorithm's type.
Definition: Algorithm.h:679

StatusCode Algorithm::start | ( |  | ) |
| inline override

the default (empty) implementation of IStateful::start() method

Definition at line 183 of file Algorithm.h.

183 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

StatusCode Algorithm::stop | ( |  | ) |
| inline override

the default (empty) implementation of IStateful::stop() method

Definition at line 185 of file Algorithm.h.

185 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

const std::vector< Algorithm * > * Algorithm::subAlgorithms | ( |  | ) | const

List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.

Definition at line 865 of file Algorithm.cpp.

std::vector< Algorithm * > * Algorithm::subAlgorithms | ( |  | ) |

List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.

Definition at line 869 of file Algorithm.cpp.

SmartIF<ISvcLocator>& Algorithm::svcLoc | ( |  | ) | const
| inline

shortcut for method serviceLocator

Definition at line 339 of file Algorithm.h.

339 { return serviceLocator() ; }
Algorithm::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
The standard service locator.
Definition: Algorithm.cpp:929

StatusCode Algorithm::sysBeginRun | ( |  | ) |
| override

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.

Definition at line 443 of file Algorithm.cpp.

StatusCode Algorithm::sysEndRun | ( |  | ) |
| override

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.

Definition at line 505 of file Algorithm.cpp.

StatusCode Algorithm::sysExecute | ( |  | ) |
| override

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

This method is invoked once per event for top level algorithms by the application manager. This method invokes execute() method. For sub-algorithms either the sysExecute() method or execute() method must be EXPLICITLY invoked by the parent algorithm.

Definition at line 567 of file Algorithm.cpp.

StatusCode Algorithm::sysFinalize | ( |  | ) |
| override

System finalization.

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

Definition at line 725 of file Algorithm.cpp.

StatusCode Algorithm::sysInitialize | ( |  | ) |
| override

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.

Definition at line 105 of file Algorithm.cpp.

StatusCode Algorithm::sysReinitialize | ( |  | ) |
| override

Reinitialization method invoked by the framework.

This method is responsible for any reinitialization 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.

Definition at line 311 of file Algorithm.cpp.

StatusCode Algorithm::sysRestart | ( |  | ) |
| override

Restart method invoked by the framework.

It will in turn invoke the restart() method of the derived algorithm, and of any sub-algorithms which it creates.

Definition at line 379 of file Algorithm.cpp.

StatusCode Algorithm::sysStart | ( |  | ) |
| override

Reinitialization method invoked by the framework.

This method is responsible for any reinitialization 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.

Definition at line 243 of file Algorithm.cpp.

StatusCode Algorithm::sysStop | ( |  | ) |
| override

System stop.

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

Definition at line 672 of file Algorithm.cpp.

Gaudi::StateMachine::State Algorithm::targetFSMState | ( |  | ) | const
| inline override

returns the state the algorithm will be in after the ongoing transition

Definition at line 195 of file Algorithm.h.

195 { return m_targetState; }
Algorithm::m_targetState
Gaudi::StateMachine::State m_targetState
Algorithm has been initialized flag.
Definition: Algorithm.h:738

StatusCode Algorithm::terminate | ( |  | ) |
| inline override

Dummy implementation of IStateful::terminate() method.

Definition at line 178 of file Algorithm.h.

178 { return StatusCode::SUCCESS ; }
StatusCode::SUCCESS
Definition: StatusCode.h:30

SmartIF<ITimelineSvc>& Algorithm::timelineSvc | ( |  | ) | const

const std::vector< IAlgTool * > & Algorithm::tools | ( |  | ) | const

Definition at line 1058 of file Algorithm.cpp.

std::vector< IAlgTool * > & Algorithm::tools | ( |  | ) |
| protected

Definition at line 1063 of file Algorithm.cpp.

SmartIF<IToolSvc>& Algorithm::toolSvc | ( |  | ) | const

The standard ToolSvc service, Return a pointer to the service if present.

const std::string& Algorithm::type | ( |  | ) | const
| inline override

The type of the algorithm object.

Definition at line 168 of file Algorithm.h.

168 { return m_type;}
Algorithm::m_type
std::string m_type
Algorithm's type.
Definition: Algorithm.h:679

const std::string & Algorithm::version | ( |  | ) | const
| override

Definition at line 828 of file Algorithm.cpp.

SmartIF<IHiveWhiteBoard>& Algorithm::whiteboard | ( |  | ) | const

## Member Data Documentation

BooleanProperty Algorithm::m_auditInit
| private

global flag for auditors

Definition at line 723 of file Algorithm.h.

bool Algorithm::m_auditorBeginRun
| private

flag for auditors in "beginRun()"

Definition at line 729 of file Algorithm.h.

bool Algorithm::m_auditorEndRun
| private

flag for auditors in "endRun()"

Definition at line 730 of file Algorithm.h.

bool Algorithm::m_auditorExecute
| private

flag for auditors in "execute()"

Definition at line 727 of file Algorithm.h.

bool Algorithm::m_auditorFinalize
| private

flag for auditors in "finalize()"

Definition at line 728 of file Algorithm.h.

bool Algorithm::m_auditorInitialize
| private

flag for auditors in "initialize()"

Definition at line 724 of file Algorithm.h.

bool Algorithm::m_auditorReinitialize
| private

flag for auditors in "Reinitialize()"

Definition at line 725 of file Algorithm.h.

bool Algorithm::m_auditorRestart
| private

flag for auditors in "Restart()"

Definition at line 726 of file Algorithm.h.

bool Algorithm::m_auditorStart
| private

flag for auditors in "initialize()"

Definition at line 731 of file Algorithm.h.

bool Algorithm::m_auditorStop
| private

flag for auditors in "Reinitialize()"

Definition at line 732 of file Algorithm.h.

unsigned int Algorithm::m_cardinality
| private

The maximum number of clones that can exist.

Definition at line 744 of file Algorithm.h.

SmartIF<IAlgContextSvc> Algorithm::m_contextSvc
| mutable private

Algorithm Context Service.

Definition at line 706 of file Algorithm.h.

SmartIF<IChronoStatSvc> Algorithm::m_CSS
| mutable private

Chrono & Stat Service.

Definition at line 700 of file Algorithm.h.

SmartIF<IConversionSvc> Algorithm::m_DCS
| mutable private

Detector conversion service.

Definition at line 696 of file Algorithm.h.

SmartIF<IDataProviderSvc> Algorithm::m_DDS
| mutable private

Detector data service.

Definition at line 695 of file Algorithm.h.

bool Algorithm::m_doTimeline
| private

Definition at line 741 of file Algorithm.h.

SmartIF<IConversionSvc> Algorithm::m_ECS
| mutable private

Event conversion service.

Definition at line 694 of file Algorithm.h.

SmartIF<IDataProviderSvc> Algorithm::m_EDS
| mutable private

Event data service.

Definition at line 692 of file Algorithm.h.

int Algorithm::m_errorCount
| private

Algorithm error counter.

Definition at line 722 of file Algorithm.h.

int Algorithm::m_errorMax
| private

Algorithm Max number of errors.

Definition at line 721 of file Algorithm.h.

EventContext* Algorithm::m_event_context
| protected

Event specific data for multiple event processing.

Definition at line 671 of file Algorithm.h.

SmartIF<IExceptionSvc> Algorithm::m_EXS
| mutable private

Exception Handler Service.

Definition at line 702 of file Algorithm.h.

DataObjIDColl Algorithm::m_extInputDataObjs
| private

Definition at line 608 of file Algorithm.h.

DataObjIDColl Algorithm::m_extOutputDataObjs
| private

Definition at line 608 of file Algorithm.h.

bool Algorithm::m_filterPassed = true
| private

Filter passed flag.

Definition at line 733 of file Algorithm.h.

SmartIF<IHistogramSvc> Algorithm::m_HDS
| mutable private

Histogram data service.

Definition at line 697 of file Algorithm.h.

unsigned int Algorithm::m_index
| private

Algorithm's index.

Definition at line 681 of file Algorithm.h.

DataObjIDColl Algorithm::m_inputDataObjs
| private

Definition at line 606 of file Algorithm.h.

std::vector<Gaudi::DataHandle*> Algorithm::m_inputHandles
| private

Definition at line 605 of file Algorithm.h.

bool Algorithm::m_isClonable
| private

The algorithm clonability of the algorithm.

Definition at line 743 of file Algorithm.h.

bool Algorithm::m_isEnabled = true
| private

Algorithm is enabled flag.

Definition at line 734 of file Algorithm.h.

bool Algorithm::m_isExecuted = false
| private

Algorithm is executed flag.

Definition at line 735 of file Algorithm.h.

bool Algorithm::m_isFinalized
| private

Algorithm has been finalized flag.

Definition at line 739 of file Algorithm.h.

std::string Algorithm::m_monitorSvcName
| private

Name to use for Monitor Service.

Definition at line 711 of file Algorithm.h.

SmartIF<IMessageSvc> Algorithm::m_MS
| mutable private

Message service.

Definition at line 691 of file Algorithm.h.

Gaudi::StringKey Algorithm::m_name
| private

Algorithm's name for identification.

Definition at line 678 of file Algorithm.h.

std::vector<std::string> Algorithm::m_neededResources
| private

The named resources needed during event looping.

Definition at line 745 of file Algorithm.h.

SmartIF<INTupleSvc> Algorithm::m_NTS
| mutable private

N tuple service.

Definition at line 698 of file Algorithm.h.

DataObjIDColl Algorithm::m_outputDataObjs
| private

Definition at line 606 of file Algorithm.h.

std::vector<Gaudi::DataHandle*> Algorithm::m_outputHandles
| private

Definition at line 605 of file Algorithm.h.

IntegerProperty Algorithm::m_outputLevel
| private

Algorithm output level.

Definition at line 720 of file Algorithm.h.

SmartIF<IAuditorSvc> Algorithm::m_pAuditorSvc
| mutable private

Auditor Service.

Definition at line 703 of file Algorithm.h.

SmartIF<IMonitorSvc> Algorithm::m_pMonitorSvc
| mutable private

Online Monitoring Service.

Definition at line 705 of file Algorithm.h.

SmartIF<PropertyMgr> Algorithm::m_propertyMgr
| protected

For management of properties.

Definition at line 714 of file Algorithm.h.

SmartIF<ISvcLocator> Algorithm::m_pSvcLocator
| private

Pointer to service locator service.

Definition at line 712 of file Algorithm.h.

SmartIF<IToolSvc> Algorithm::m_ptoolSvc
| mutable private

ToolSvc Service.

Definition at line 704 of file Algorithm.h.

bool Algorithm::m_registerContext = false
| private

flag to register for Algorithm Context Service

Definition at line 710 of file Algorithm.h.

SmartIF<IRndmGenSvc> Algorithm::m_RGS
| mutable private

Random Number Generator Service.

Definition at line 701 of file Algorithm.h.

Gaudi::StateMachine::State Algorithm::m_state = Gaudi::StateMachine::CONFIGURED
| private

flag indicating whether ToolHandle tools have been added to m_tools

Algorithm has been initialized flag

Definition at line 737 of file Algorithm.h.

std::vector<Algorithm *> Algorithm::m_subAlgms
| private

Sub algorithms.

Definition at line 682 of file Algorithm.h.

Gaudi::StateMachine::State Algorithm::m_targetState = Gaudi::StateMachine::CONFIGURED
| private

Algorithm has been initialized flag.

Definition at line 738 of file Algorithm.h.

SmartIF<ITimelineSvc> Algorithm::m_timelineSvc
| mutable private

Timeline Service.

Definition at line 708 of file Algorithm.h.

std::vector<GaudiHandleArrayBase*> Algorithm::m_toolHandleArrays
| mutable private

Definition at line 687 of file Algorithm.h.

std::vector<BaseToolHandle *> Algorithm::m_toolHandles
| mutable private

Definition at line 686 of file Algorithm.h.

bool Algorithm::m_toolHandlesInit = false
| mutable private

Definition at line 736 of file Algorithm.h.

std::vector<IAlgTool *> Algorithm::m_tools
| mutable private

Definition at line 685 of file Algorithm.h.

std::string Algorithm::m_type
| private

Algorithm's type.

Definition at line 679 of file Algorithm.h.

std::unique_ptr<IDataHandleVisitor> Algorithm::m_updateDataHandles
| protected

Hook for for derived classes to provide a custom visitor for data handles.

Definition at line 717 of file Algorithm.h.

std::string Algorithm::m_version
| private

Algorithm's version.

Definition at line 680 of file Algorithm.h.

SmartIF<IHiveWhiteBoard> Algorithm::m_WB
| mutable private

Event data service (whiteboard)

Definition at line 693 of file Algorithm.h.

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

- GaudiKernel/GaudiKernel/Algorithm.h
- GaudiPython/src/Lib/Algorithm.cpp