The Gaudi Framework  v33r1 (b1225454)
Gaudi::Algorithm Class Reference

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

#include <Gaudi/Algorithm.h>

Inheritance diagram for Gaudi::Algorithm:
Collaboration diagram for Gaudi::Algorithm:

Public Types

typedef Gaudi::PluginService::Factory< IAlgorithm *(const std::string &, ISvcLocator *)> Factory
 
- Public Types inherited from extends< CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > >, IDataHandleHolder >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 

Public Member Functions

 Algorithm (std::string name, ISvcLocator *svcloc, std::string version=PACKAGE_VERSION)
 Constructor. 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 (const EventContext &ctx) 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...
 
const std::stringname () const override
 The identifying name of the algorithm object. More...
 
const Gaudi::StringKeynameKey () const override
 
const std::stringtype () const override
 The type of the algorithm object. More...
 
void setType (std::string type) override
 
const std::stringversion () 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 isEnabled () const override
 Is this algorithm enabled or disabled? More...
 
bool isSequence () const override
 Are we a Sequence? More...
 
unsigned int errorCount () const
 Get the number of failures of the algorithm. More...
 
template<class T >
StatusCode service (std::string_view 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 (std::string_view svcType, std::string_view svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist. More...
 
SmartIF< IServiceservice (std::string_view 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 (std::string_view 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< IDataProviderSvc > & detSvc () const
 The standard detector data service. More...
 
SmartIF< IConversionSvc > & detCnvSvc () const
 The standard detector data persistency conversion service. More...
 
SmartIF< IDataProviderSvc > & eventSvc () const
 The standard event data service. More...
 
SmartIF< IDataProviderSvc > & evtSvc () const
 shortcut for method eventSvc More...
 
SmartIF< IConversionSvc > & eventCnvSvc () const
 The standard event data persistency conversion service. More...
 
SmartIF< IHistogramSvc > & histoSvc () const
 The standard histogram service. More...
 
SmartIF< INTupleSvc > & ntupleSvc () const
 The standard N tuple service. More...
 
SmartIF< IRndmGenSvc > & randSvc () const
 The standard RandomGen service, Return a pointer to the 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
 
SmartIF< IAlgExecStateSvc > & algExecStateSvc () const
 
bool registerContext () const
 register for Algorithm Context Service? More...
 
StatusCode setProperties ()
 Set the algorithm's properties. More...
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
 
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...
 
void acceptDHVisitor (IDataHandleVisitor *) const override
 
void registerTool (IAlgTool *tool) const
 
void deregisterTool (IAlgTool *tool) const
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, bool createIf=true)
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
 
template<class T >
void addToolsArray (ToolHandleArray< T > &hndlArr)
 
const std::vector< IAlgTool * > & tools () const
 
bool isIOBound () const
 
void setIOBound (bool value)
 
unsigned int cardinality () const override
 Return the cardinality. More...
 
const std::vector< std::string > & neededResources () const override
 
AlgExecStateexecState (const EventContext &ctx) const override
 reference to AlgExecState of Alg More...
 
std::ostreamtoControlFlowExpression (std::ostream &os) const override
 Produce string represention of the control flow expression. More...
 
- Public Member Functions inherited from DataHandleHolderBase< CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > > >
std::vector< Gaudi::DataHandle * > inputHandles () const override
 
std::vector< Gaudi::DataHandle * > outputHandles () const override
 
virtual const DataObjIDCollextraInputDeps () const override
 
virtual const DataObjIDCollextraOutputDeps () const override
 
void declare (Gaudi::DataHandle &handle) override
 
void renounce (Gaudi::DataHandle &handle) override
 
const DataObjIDCollinputDataObjs () const override
 
const DataObjIDColloutputDataObjs () const override
 
void addDependency (const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
 
- Public Member Functions inherited from extends< CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > >, IDataHandleHolder >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > >
void declareCounter (std::string tag, Gaudi::Accumulators::PrintableCounter &r)
 
const Gaudi::Accumulators::PrintableCounter * findCounter (std::string_view tag) const
 
void forEachCounter (Callable &&f) const
 
int nCounters () const
 
std::size_t nOfCountersToBePrinted ()
 
void clearCounters ()
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p) override
 set the property form another property More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 set the property from name and the value More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (const std::string &name) const override
 get the property by name More...
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (const std::string &name) const override
 Return true if we have a property with the given name. More...
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
const SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 

Public Attributes

friend AlgorithmManager
 

Protected Member Functions

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...
 
bool isReEntrant () const override
 
- Protected Member Functions inherited from DataHandleHolderBase< CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > > >
void initDataHandleHolder ()
 initializes all handles - called by the sysInitialize method of any descendant of this More...
 
- Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > >
Gaudi::Details::PropertyBaseproperty (const std::string &name) const
 
- Protected Member Functions inherited from CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Protected Attributes

std::unique_ptr< IDataHandleVisitorm_updateDataHandles
 Hook for for derived classes to provide a custom visitor for data handles. More...
 
- Protected Attributes inherited from DataHandleHolderBase< CounterHolder< PropertyHolder< CommonMessaging< implements< IAlgorithm, IDataHandleHolder, IProperty, IStateful > > > > >
DataObjIDColl m_inputDataObjs
 
DataObjIDColl m_outputDataObjs
 

Private Member Functions

void initToolHandles () const
 
unsigned int maxErrors () const
 
template<typename IFace >
SmartIF< IFace > & get_svc_ (SmartIF< IFace > &p, const char *service_name) const
 
StatusCode service_i (std::string_view svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
 implementation of service method More...
 
StatusCode service_i (std::string_view svcType, std::string_view svcName, const InterfaceID &iid, void **ppSvc) const
 
 Algorithm (const Algorithm &)=delete
 delete copy constructor: NO COPY ALLOWED More...
 
Algorithmoperator= (const Algorithm &)=delete
 delete assignment operator: NO ASSIGNMENT ALLOWED More...
 

Private Attributes

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 = 0
 Algorithm's index. More...
 
std::vector< IAlgTool * > m_tools
 
std::vector< BaseToolHandle * > m_toolHandles
 
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
 
SmartIF< IMessageSvcm_MS
 Message service. More...
 
SmartIF< IDataProviderSvcm_EDS
 Event data service. More...
 
SmartIF< IHiveWhiteBoardm_WB
 Event data service (whiteboard) More...
 
SmartIF< IConversionSvcm_ECS
 Event conversion service. More...
 
SmartIF< IDataProviderSvcm_DDS
 Detector data service. More...
 
SmartIF< IConversionSvcm_DCS
 Detector conversion service. More...
 
SmartIF< IHistogramSvcm_HDS
 Histogram data service. More...
 
SmartIF< INTupleSvcm_NTS
 N tuple service. More...
 
SmartIF< IChronoStatSvcm_CSS
 Chrono & Stat Service. More...
 
SmartIF< IRndmGenSvcm_RGS
 Random Number Generator Service. More...
 
SmartIF< IExceptionSvcm_EXS
 Exception Handler Service. More...
 
SmartIF< IAuditorSvcm_pAuditorSvc
 Auditor Service. More...
 
SmartIF< IToolSvcm_ptoolSvc
 ToolSvc Service. More...
 
SmartIF< IMonitorSvcm_pMonitorSvc
 Online Monitoring Service. More...
 
SmartIF< IAlgContextSvcm_contextSvc
 Algorithm Context Service. More...
 
SmartIF< ITimelineSvcm_timelineSvc
 Timeline Service. More...
 
SmartIF< IAlgExecStateSvcm_aess
 Alg execution state mgr. More...
 
SmartIF< ISvcLocatorm_pSvcLocator
 Pointer to service locator service. More...
 
Gaudi::Property< int > m_outputLevel
 
Gaudi::Property< bool > m_isEnabled {this, "Enable", true, "should the algorithm be executed or not"}
 
Gaudi::Property< unsigned int > m_errorMax {this, "ErrorMax", 1, " max number of errors"}
 
Gaudi::Property< bool > m_auditInit
 
Gaudi::Property< bool > m_auditorInitialize
 
Gaudi::Property< bool > m_auditorReinitialize
 
Gaudi::Property< bool > m_auditorRestart {this, "AuditRestart", m_auditInit.value(), "trigger auditor on restart()"}
 
Gaudi::Property< bool > m_auditorExecute {this, "AuditExecute", m_auditInit.value(), "trigger auditor on execute()"}
 
Gaudi::Property< bool > m_auditorFinalize
 
Gaudi::Property< bool > m_auditorStart {this, "AuditStart", m_auditInit.value(), "trigger auditor on start()"}
 
Gaudi::Property< bool > m_auditorStop {this, "AuditStop", m_auditInit.value(), "trigger auditor on stop()"}
 
Gaudi::Property< bool > m_doTimeline {this, "Timeline", true, "send events to TimelineSvc"}
 
Gaudi::Property< std::stringm_monitorSvcName
 
Gaudi::Property< bool > m_registerContext
 
Gaudi::Property< int > m_cardinality {this, "Cardinality", 0, "how many clones to create - 0 means algo is reentrant"}
 
Gaudi::Property< std::vector< std::string > > m_neededResources
 
Gaudi::Property< bool > m_isIOBound
 
Gaudi::Property< bool > m_filterCircDeps
 
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...
 

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 89 of file Algorithm.h.

Member Typedef Documentation

◆ Factory

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

Definition at line 94 of file Algorithm.h.

Constructor & Destructor Documentation

◆ Algorithm() [1/2]

Gaudi::Algorithm::Algorithm ( std::string  name,
ISvcLocator svcloc,
std::string  version = PACKAGE_VERSION 
)
inline

Constructor.

Parameters
nameThe algorithm object's name
svclocA pointer to a service location service

Definition at line 102 of file Algorithm.h.

103  : m_name( std::move( name ) )
104  , m_version( std::move( version ) ) // incremented by AlgResourcePool
105  , m_pSvcLocator( svcloc ) {}
const std::string & version() const override
Definition: Algorithm.cpp:553
std::string m_version
Algorithm's version.
Definition: Algorithm.h:453
SmartIF< ISvcLocator > m_pSvcLocator
Pointer to service locator service.
Definition: Algorithm.h:484
T move(T... args)
Gaudi::StringKey m_name
Algorithm's name for identification.
Definition: Algorithm.h:451
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ Algorithm() [2/2]

Gaudi::Algorithm::Algorithm ( const Algorithm )
privatedelete

delete copy constructor: NO COPY ALLOWED

Member Function Documentation

◆ acceptDHVisitor()

void Gaudi::Algorithm::acceptDHVisitor ( IDataHandleVisitor vis) const
override

Definition at line 199 of file Algorithm.cpp.

◆ addToolsArray()

template<class T >
void Gaudi::Algorithm::addToolsArray ( ToolHandleArray< T > &  hndlArr)
inline

Definition at line 397 of file Algorithm.h.

397  {
398  m_toolHandleArrays.push_back( &hndlArr );
399  }
T push_back(T... args)
std::vector< GaudiHandleArrayBase * > m_toolHandleArrays
Definition: Algorithm.h:459

◆ algExecStateSvc()

SmartIF< IAlgExecStateSvc > & Gaudi::Algorithm::algExecStateSvc ( ) const

Definition at line 577 of file Algorithm.cpp.

◆ auditorSvc()

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

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

Definition at line 578 of file Algorithm.cpp.

◆ cardinality()

unsigned int Gaudi::Algorithm::cardinality ( ) const
inlineoverride

Return the cardinality.

Definition at line 423 of file Algorithm.h.

423 { return m_cardinality; }
Gaudi::Property< int > m_cardinality
Definition: Algorithm.h:521

◆ chronoSvc()

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

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

Definition at line 579 of file Algorithm.cpp.

◆ configure()

StatusCode Gaudi::Algorithm::configure ( )
inlineoverride

Dummy implementation of IStateful::configure() method.

Definition at line 174 of file Algorithm.h.

174 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ contextSvc()

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

get Algorithm Context Service

Definition at line 589 of file Algorithm.cpp.

◆ declareInfo() [1/2]

template<class T >
void Gaudi::Algorithm::declareInfo ( const std::string name,
const T &  var,
const std::string desc 
) const
inline

Declare monitoring information.

Parameters
nameMonitoring information name known to the external system
varMonitoring Listener address (the item to monitor...)
descTextual description of the information being monitored

Definition at line 352 of file Algorithm.h.

352  {
353  IMonitorSvc* mS = monitorSvc().get();
354  if ( mS ) mS->declareInfo( name, var, desc, this );
355  }
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
SmartIF< IMonitorSvc > & monitorSvc() const
Access the monitor service.
Definition: Algorithm.h:338
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:33
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ declareInfo() [2/2]

void Gaudi::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
nameMonitoring information name known to the external system
formatFormat information
varMonitoring Listener address
sizeMonitoring Listener address size
descTextual description of the information being monitored

Definition at line 364 of file Algorithm.h.

365  {
366  IMonitorSvc* mS = monitorSvc().get();
367  if ( mS ) mS->declareInfo( name, format, var, size, desc, this );
368  }
constexpr auto size(const T &, Args &&...) noexcept
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
SmartIF< IMonitorSvc > & monitorSvc() const
Access the monitor service.
Definition: Algorithm.h:338
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:33
virtual void declareInfo(const std::string &name, const bool &var, const std::string &desc, const IInterface *owner)=0
Declare monitoring information.
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ declareProperty() [1/2]

template<class T >
Gaudi::Details::PropertyBase* Gaudi::Algorithm::declareProperty ( const std::string name,
ToolHandle< T > &  hndl,
const std::string doc = "none" 
)
inline

Definition at line 312 of file Algorithm.h.

313  {
314  this->declareTool( hndl, hndl.typeAndName() ).ignore();
315  return PropertyHolderImpl::declareProperty( name, hndl, doc );
316  }
std::string typeAndName() const override
Definition: ToolHandle.h:270
StatusCode declareTool(ToolHandle< T > &handle, bool createIf=true)
Definition: Algorithm.h:377
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ declareProperty() [2/2]

template<class T >
Gaudi::Details::PropertyBase* Gaudi::Algorithm::declareProperty ( const std::string name,
ToolHandleArray< T > &  hndlArr,
const std::string doc = "none" 
)
inline

Definition at line 322 of file Algorithm.h.

323  {
324  addToolsArray( hndlArr );
325  return PropertyHolderImpl::declareProperty( name, hndlArr, doc );
326  }
void addToolsArray(ToolHandleArray< T > &hndlArr)
Definition: Algorithm.h:397
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ declareTool() [1/2]

template<class T >
StatusCode Gaudi::Algorithm::declareTool ( ToolHandle< T > &  handle,
bool  createIf = true 
)
inline

Definition at line 377 of file Algorithm.h.

377  {
378  return this->declareTool( handle, handle.typeAndName(), createIf );
379  }
std::string typeAndName() const override
Definition: ToolHandle.h:270
StatusCode declareTool(ToolHandle< T > &handle, bool createIf=true)
Definition: Algorithm.h:377

◆ declareTool() [2/2]

template<class T >
StatusCode Gaudi::Algorithm::declareTool ( ToolHandle< T > &  handle,
std::string  toolTypeAndName,
bool  createIf = true 
)
inline

Definition at line 382 of file Algorithm.h.

382  {
383 
384  StatusCode sc = handle.initialize( toolTypeAndName, handle.isPublic() ? nullptr : this, createIf );
385  if ( UNLIKELY( !sc ) ) {
386  throw GaudiException{std::string{"Cannot create handle for "} + ( handle.isPublic() ? "public" : "private" ) +
387  " tool " + toolTypeAndName,
388  name(), sc};
389  }
390 
391  m_toolHandles.push_back( &handle );
392 
393  return sc;
394  }
#define UNLIKELY(x)
Definition: Kernel.h:106
Define general base for Gaudi exception.
STL class.
T push_back(T... args)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
bool isPublic() const noexcept
Definition: ToolHandle.h:50
StatusCode initialize(const std::string &toolTypeAndName, const IInterface *parent=nullptr, bool createIf=true)
Definition: ToolHandle.h:210
std::vector< BaseToolHandle * > m_toolHandles
Definition: Algorithm.h:458
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ deregisterTool()

void Gaudi::Algorithm::deregisterTool ( IAlgTool tool) const

Definition at line 687 of file Algorithm.cpp.

◆ detCnvSvc()

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

The standard detector data persistency conversion service.

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

Definition at line 581 of file Algorithm.cpp.

◆ detSvc()

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

The standard detector data service.

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

Definition at line 580 of file Algorithm.cpp.

◆ errorCount()

unsigned int Gaudi::Algorithm::errorCount ( ) const

Get the number of failures of the algorithm.

Definition at line 701 of file Algorithm.cpp.

◆ eventCnvSvc()

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

The standard event data persistency conversion service.

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

Definition at line 583 of file Algorithm.cpp.

◆ eventSvc()

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

The standard event data service.

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

Definition at line 582 of file Algorithm.cpp.

◆ evtSvc()

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

shortcut for method eventSvc

Definition at line 249 of file Algorithm.h.

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

◆ exceptionSvc()

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

Get the exception Service.

Definition at line 588 of file Algorithm.cpp.

◆ execState()

AlgExecState & Gaudi::Algorithm::execState ( const EventContext ctx) const
override

reference to AlgExecState of Alg

Definition at line 561 of file Algorithm.cpp.

◆ finalize()

StatusCode Gaudi::Algorithm::finalize ( )
inlineoverride

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

Definition at line 185 of file Algorithm.h.

185 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ FSMState()

Gaudi::StateMachine::State Gaudi::Algorithm::FSMState ( ) const
inlineoverride

returns the current state of the algorithm

Definition at line 191 of file Algorithm.h.

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

◆ get_svc_()

template<typename IFace >
SmartIF< IFace > & Gaudi::Algorithm::get_svc_ ( SmartIF< IFace > &  p,
const char *  service_name 
) const
private

Definition at line 566 of file Algorithm.cpp.

◆ histoSvc()

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

The standard histogram service.

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

Definition at line 584 of file Algorithm.cpp.

◆ index()

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

Definition at line 555 of file Algorithm.cpp.

◆ initialize()

StatusCode Gaudi::Algorithm::initialize ( )
inlineoverride

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

Definition at line 179 of file Algorithm.h.

179 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ initToolHandles()

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

Definition at line 610 of file Algorithm.cpp.

◆ isEnabled()

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

Is this algorithm enabled or disabled?

Definition at line 559 of file Algorithm.cpp.

◆ isFinalized()

bool Gaudi::Algorithm::isFinalized ( ) const
inlineoverrideprotected

Has the Algorithm already been finalized?

Definition at line 432 of file Algorithm.h.

Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Algorithm.h:534

◆ isInitialized()

bool Gaudi::Algorithm::isInitialized ( ) const
inlineoverrideprotected

Has the Algorithm already been initialized?

Definition at line 429 of file Algorithm.h.

Gaudi::StateMachine::State m_state
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Algorithm.h:534

◆ isIOBound()

bool Gaudi::Algorithm::isIOBound ( ) const
inline

Definition at line 404 of file Algorithm.h.

404 { return m_isIOBound; }
Gaudi::Property< bool > m_isIOBound
Definition: Algorithm.h:525

◆ isReEntrant()

bool Gaudi::Algorithm::isReEntrant ( ) const
inlineoverrideprotected

Definition at line 448 of file Algorithm.h.

448 { return true; }

◆ isSequence()

bool Gaudi::Algorithm::isSequence ( ) const
inlineoverride

Are we a Sequence?

Definition at line 199 of file Algorithm.h.

199 { return false; }

◆ maxErrors()

unsigned int Gaudi::Algorithm::maxErrors ( ) const
inlineprivate

Definition at line 445 of file Algorithm.h.

445 { return m_errorMax; }
Gaudi::Property< unsigned int > m_errorMax
Definition: Algorithm.h:498

◆ monitorSvc()

SmartIF<IMonitorSvc>& Gaudi::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
NULLNo monitor service is present
non-NULLA monitor service is present and available to be used

Definition at line 338 of file Algorithm.h.

338  {
339  // If not already located try to locate it without forcing a creation
340  if ( !m_pMonitorSvc ) {
341  m_pMonitorSvc = service( m_monitorSvcName, false, true ); // do not create and be quiet
342  }
343  return m_pMonitorSvc;
344  }
StatusCode service(std::string_view name, T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Algorithm.h:206
Gaudi::Property< std::string > m_monitorSvcName
Definition: Algorithm.h:515
SmartIF< IMonitorSvc > m_pMonitorSvc
Online Monitoring Service.
Definition: Algorithm.h:478

◆ name()

const std::string & Gaudi::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 549 of file Algorithm.cpp.

◆ nameKey()

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

Definition at line 551 of file Algorithm.cpp.

◆ neededResources()

const std::vector<std::string>& Gaudi::Algorithm::neededResources ( ) const
inlineoverride

Definition at line 425 of file Algorithm.h.

425 { return m_neededResources; }
Gaudi::Property< std::vector< std::string > > m_neededResources
Definition: Algorithm.h:522

◆ ntupleSvc()

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

The standard N tuple service.

Returns a pointer to the N tuple service if present.

Definition at line 585 of file Algorithm.cpp.

◆ operator=()

Algorithm& Gaudi::Algorithm::operator= ( const Algorithm )
privatedelete

delete assignment operator: NO ASSIGNMENT ALLOWED

◆ randSvc()

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

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

Definition at line 586 of file Algorithm.cpp.

◆ registerContext()

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

register for Algorithm Context Service?

Definition at line 296 of file Algorithm.h.

296 { return m_registerContext; }
Gaudi::Property< bool > m_registerContext
Definition: Algorithm.h:518

◆ registerTool()

void Gaudi::Algorithm::registerTool ( IAlgTool tool) const

Definition at line 682 of file Algorithm.cpp.

◆ reinitialize()

StatusCode Gaudi::Algorithm::reinitialize ( )
override

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

Definition at line 514 of file Algorithm.cpp.

◆ restart()

StatusCode Gaudi::Algorithm::restart ( )
override

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

Definition at line 534 of file Algorithm.cpp.

◆ service() [1/4]

template<class T >
StatusCode Gaudi::Algorithm::service ( std::string_view  name,
T *&  psvc,
bool  createIf = true 
) const
inline

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

Definition at line 206 of file Algorithm.h.

206  {
207  return service_i( name, createIf, T::interfaceID(), (void**)&psvc );
208  }
StatusCode service_i(std::string_view svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
implementation of service method
Definition: Algorithm.cpp:665
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ service() [2/4]

template<class T >
StatusCode Gaudi::Algorithm::service ( std::string_view  svcType,
std::string_view  svcName,
T *&  psvc 
) const
inline

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

Definition at line 212 of file Algorithm.h.

212  {
213  return service_i( svcType, svcName, T::interfaceID(), reinterpret_cast<void**>( &psvc ) );
214  }
StatusCode service_i(std::string_view svcName, bool createIf, const InterfaceID &iid, void **ppSvc) const
implementation of service method
Definition: Algorithm.cpp:665

◆ service() [3/4]

SmartIF< IService > Gaudi::Algorithm::service ( std::string_view  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 677 of file Algorithm.cpp.

◆ service() [4/4]

template<class T >
SmartIF<T> Gaudi::Algorithm::service ( std::string_view  name,
bool  createIf = true,
bool  quiet = false 
) const
inline

Definition at line 220 of file Algorithm.h.

220  {
221  return service( name, createIf, quiet ).as<T>();
222  }
StatusCode service(std::string_view name, T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Algorithm.h:206
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ service_i() [1/2]

StatusCode Gaudi::Algorithm::service_i ( std::string_view  svcName,
bool  createIf,
const InterfaceID iid,
void **  ppSvc 
) const
private

implementation of service method

Protected Member Functions.

Definition at line 665 of file Algorithm.cpp.

◆ service_i() [2/2]

StatusCode Gaudi::Algorithm::service_i ( std::string_view  svcType,
std::string_view  svcName,
const InterfaceID iid,
void **  ppSvc 
) const
private

Definition at line 671 of file Algorithm.cpp.

◆ serviceLocator()

SmartIF< ISvcLocator > & Gaudi::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 593 of file Algorithm.cpp.

◆ setIndex()

void Gaudi::Algorithm::setIndex ( const unsigned int &  idx)
overrideprotected

set instantiation index of Alg

Definition at line 557 of file Algorithm.cpp.

◆ setIOBound()

void Gaudi::Algorithm::setIOBound ( bool  value)
inline

Definition at line 406 of file Algorithm.h.

406 { m_isIOBound = value; }
Gaudi::Property< bool > m_isIOBound
Definition: Algorithm.h:525

◆ setProperties()

StatusCode Gaudi::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 598 of file Algorithm.cpp.

◆ setType()

void Gaudi::Algorithm::setType ( std::string  type)
inlineoverride

Definition at line 167 of file Algorithm.h.

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

◆ start()

StatusCode Gaudi::Algorithm::start ( )
inlineoverride

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

Definition at line 181 of file Algorithm.h.

181 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ stop()

StatusCode Gaudi::Algorithm::stop ( )
inlineoverride

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

Definition at line 183 of file Algorithm.h.

183 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ svcLoc()

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

shortcut for method serviceLocator

Definition at line 289 of file Algorithm.h.

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

◆ sysExecute()

StatusCode Gaudi::Algorithm::sysExecute ( const EventContext ctx)
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 338 of file Algorithm.cpp.

◆ sysFinalize()

StatusCode Gaudi::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 462 of file Algorithm.cpp.

◆ sysInitialize()

StatusCode Gaudi::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 59 of file Algorithm.cpp.

61  {
62  sc = StatusCode( PyInt_AS_LONG( r ) );
63  Py_DECREF( r );
64  return sc;
65  } // RETURN
66 
67  // look for the method getCode with the signature:
68  // ' int getCode() '
69  PyObject* c = PyObject_CallMethod( r, chr( "getCode" ), nullptr );
70 
71  if ( !c ) {
72  PyErr_Print();
73  } else if ( PyLong_Check( c ) ) {
74  sc = StatusCode( PyLong_AsLong( c ) );
75  } else {
76  std::string msg( " call_python_method unexpected type from '" );
77  msg += method;
78  msg += "().getCode()' ";
79  PyErr_SetString( PyExc_TypeError, msg.c_str() );
80  PyErr_Print();
81  }
82  // release used objects
83  Py_XDECREF( c );
84  Py_XDECREF( r );
85  //
86  return sc;
87 }
88 // ============================================================================
89 
90 // ============================================================================
95 // ============================================================================
97  : Algorithm( name, Gaudi::svcLocator() ), m_self( self ) {
98  // The owner of the Algorithm is Python (as creator) therefore
99  // it should not be deleted by Gaudi (added an extra addRef()).
100  addRef();
101  addRef();
102 }
103 // ============================================================================
104 
105 // ============================================================================
107 // ============================================================================
109 // ============================================================================
111 // ============================================================================
113 // ============================================================================
StatusCode finalize() override
Definition: Algorithm.cpp:114
StatusCode execute() override
Definition: Algorithm.cpp:110
STL class.
StatusCode initialize() override
Definition: Algorithm.cpp:106
GAUDI_API ISvcLocator * svcLocator()
unsigned long addRef() override
Reference Interface instance.
Definition: implements.h:48
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
StatusCode stop() override
Definition: Algorithm.cpp:112
Alias for backward compatibility.
Definition: Algorithm.h:58
MsgStream & msg() const
shortcut for the method msgStream(MSG::INFO)
StatusCode start() override
Definition: Algorithm.cpp:108
GAUDI_API StatusCode call_python_method(PyObject *self, const char *method)
call the python method
Definition: Algorithm.cpp:48
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
PyAlgorithm(PyObject *self, const std::string &name)
constructor
Definition: Algorithm.cpp:96
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:549

◆ sysReinitialize()

StatusCode Gaudi::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 251 of file Algorithm.cpp.

◆ sysRestart()

StatusCode Gaudi::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 297 of file Algorithm.cpp.

◆ sysStart()

StatusCode Gaudi::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 207 of file Algorithm.cpp.

◆ sysStop()

StatusCode Gaudi::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 418 of file Algorithm.cpp.

◆ targetFSMState()

Gaudi::StateMachine::State Gaudi::Algorithm::targetFSMState ( ) const
inlineoverride

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

Definition at line 193 of file Algorithm.h.

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

◆ terminate()

StatusCode Gaudi::Algorithm::terminate ( )
inlineoverride

Dummy implementation of IStateful::terminate() method.

Definition at line 176 of file Algorithm.h.

176 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100

◆ timelineSvc()

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

Definition at line 590 of file Algorithm.cpp.

◆ toControlFlowExpression()

std::ostream & Gaudi::Algorithm::toControlFlowExpression ( std::ostream os) const
override

Produce string represention of the control flow expression.

Definition at line 697 of file Algorithm.cpp.

◆ tools() [1/2]

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

Definition at line 651 of file Algorithm.cpp.

◆ tools() [2/2]

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

Definition at line 656 of file Algorithm.cpp.

◆ toolSvc()

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

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

Definition at line 587 of file Algorithm.cpp.

◆ type()

const std::string& Gaudi::Algorithm::type ( ) const
inlineoverride

The type of the algorithm object.

Definition at line 166 of file Algorithm.h.

166 { return m_type; }
std::string m_type
Algorithm's type.
Definition: Algorithm.h:452

◆ version()

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

Definition at line 553 of file Algorithm.cpp.

◆ whiteboard()

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

Definition at line 591 of file Algorithm.cpp.

Member Data Documentation

◆ AlgorithmManager

friend Gaudi::Algorithm::AlgorithmManager

Definition at line 96 of file Algorithm.h.

◆ m_aess

SmartIF<IAlgExecStateSvc> Gaudi::Algorithm::m_aess
mutableprivate

Alg execution state mgr.

Definition at line 482 of file Algorithm.h.

◆ m_auditInit

Gaudi::Property<bool> Gaudi::Algorithm::m_auditInit
private
Initial value:
{this, "AuditAlgorithms", Details::getDefaultAuditorValue( m_pSvcLocator ),
" unused"}

Definition at line 500 of file Algorithm.h.

◆ m_auditorExecute

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorExecute {this, "AuditExecute", m_auditInit.value(), "trigger auditor on execute()"}
private

Definition at line 507 of file Algorithm.h.

◆ m_auditorFinalize

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorFinalize
private
Initial value:
{this, "AuditFinalize", m_auditInit.value(),
"trigger auditor on finalize()"}

Definition at line 508 of file Algorithm.h.

◆ m_auditorInitialize

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorInitialize
private
Initial value:
{this, "AuditInitialize", m_auditInit.value(),
"trigger auditor on initialize()"}

Definition at line 502 of file Algorithm.h.

◆ m_auditorReinitialize

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorReinitialize
private
Initial value:
{this, "AuditReinitialize", m_auditInit.value(),
"trigger auditor on reinitialize()"}

Definition at line 504 of file Algorithm.h.

◆ m_auditorRestart

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorRestart {this, "AuditRestart", m_auditInit.value(), "trigger auditor on restart()"}
private

Definition at line 506 of file Algorithm.h.

◆ m_auditorStart

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorStart {this, "AuditStart", m_auditInit.value(), "trigger auditor on start()"}
private

Definition at line 510 of file Algorithm.h.

◆ m_auditorStop

Gaudi::Property<bool> Gaudi::Algorithm::m_auditorStop {this, "AuditStop", m_auditInit.value(), "trigger auditor on stop()"}
private

Definition at line 511 of file Algorithm.h.

◆ m_cardinality

Gaudi::Property<int> Gaudi::Algorithm::m_cardinality {this, "Cardinality", 0, "how many clones to create - 0 means algo is reentrant"}
private

Definition at line 521 of file Algorithm.h.

◆ m_contextSvc

SmartIF<IAlgContextSvc> Gaudi::Algorithm::m_contextSvc
mutableprivate

Algorithm Context Service.

Definition at line 479 of file Algorithm.h.

◆ m_CSS

SmartIF<IChronoStatSvc> Gaudi::Algorithm::m_CSS
mutableprivate

Chrono & Stat Service.

Definition at line 473 of file Algorithm.h.

◆ m_DCS

SmartIF<IConversionSvc> Gaudi::Algorithm::m_DCS
mutableprivate

Detector conversion service.

Definition at line 470 of file Algorithm.h.

◆ m_DDS

SmartIF<IDataProviderSvc> Gaudi::Algorithm::m_DDS
mutableprivate

Detector data service.

Definition at line 469 of file Algorithm.h.

◆ m_doTimeline

Gaudi::Property<bool> Gaudi::Algorithm::m_doTimeline {this, "Timeline", true, "send events to TimelineSvc"}
private

Definition at line 513 of file Algorithm.h.

◆ m_ECS

SmartIF<IConversionSvc> Gaudi::Algorithm::m_ECS
mutableprivate

Event conversion service.

Definition at line 468 of file Algorithm.h.

◆ m_EDS

SmartIF<IDataProviderSvc> Gaudi::Algorithm::m_EDS
mutableprivate

Event data service.

Definition at line 466 of file Algorithm.h.

◆ m_errorMax

Gaudi::Property<unsigned int> Gaudi::Algorithm::m_errorMax {this, "ErrorMax", 1, " max number of errors"}
private

Definition at line 498 of file Algorithm.h.

◆ m_EXS

SmartIF<IExceptionSvc> Gaudi::Algorithm::m_EXS
mutableprivate

Exception Handler Service.

Definition at line 475 of file Algorithm.h.

◆ m_filterCircDeps

Gaudi::Property<bool> Gaudi::Algorithm::m_filterCircDeps
private
Initial value:
{this, "FilterCircularDependencies", true,
"filter out circular data dependencies"}

Definition at line 529 of file Algorithm.h.

◆ m_HDS

SmartIF<IHistogramSvc> Gaudi::Algorithm::m_HDS
mutableprivate

Histogram data service.

Definition at line 471 of file Algorithm.h.

◆ m_index

unsigned int Gaudi::Algorithm::m_index = 0
private

Algorithm's index.

Definition at line 454 of file Algorithm.h.

◆ m_isEnabled

Gaudi::Property<bool> Gaudi::Algorithm::m_isEnabled {this, "Enable", true, "should the algorithm be executed or not"}
private

Definition at line 496 of file Algorithm.h.

◆ m_isFinalized

bool Gaudi::Algorithm::m_isFinalized
private

Algorithm has been finalized flag.

Definition at line 536 of file Algorithm.h.

◆ m_isIOBound

Gaudi::Property<bool> Gaudi::Algorithm::m_isIOBound
private
Initial value:
{this, "IsIOBound", false,
"if the algorithm is I/O-bound (in the broad sense of Von Neumann bottleneck)"}

Definition at line 525 of file Algorithm.h.

◆ m_monitorSvcName

Gaudi::Property<std::string> Gaudi::Algorithm::m_monitorSvcName
private
Initial value:
{this, "MonitorService", "MonitorSvc",
"name to use for Monitor Service"}

Definition at line 515 of file Algorithm.h.

◆ m_MS

SmartIF<IMessageSvc> Gaudi::Algorithm::m_MS
mutableprivate

Message service.

Definition at line 465 of file Algorithm.h.

◆ m_name

Gaudi::StringKey Gaudi::Algorithm::m_name
private

Algorithm's name for identification.

Definition at line 451 of file Algorithm.h.

◆ m_neededResources

Gaudi::Property<std::vector<std::string> > Gaudi::Algorithm::m_neededResources
private
Initial value:
{
this, "NeededResources", {}, "named resources needed during event looping"}

Definition at line 522 of file Algorithm.h.

◆ m_NTS

SmartIF<INTupleSvc> Gaudi::Algorithm::m_NTS
mutableprivate

N tuple service.

Definition at line 472 of file Algorithm.h.

◆ m_outputLevel

Gaudi::Property<int> Gaudi::Algorithm::m_outputLevel
private
Initial value:
{
this, "OutputLevel", MSG::NIL,
"output level"}

Definition at line 492 of file Algorithm.h.

◆ m_pAuditorSvc

SmartIF<IAuditorSvc> Gaudi::Algorithm::m_pAuditorSvc
mutableprivate

Auditor Service.

Definition at line 476 of file Algorithm.h.

◆ m_pMonitorSvc

SmartIF<IMonitorSvc> Gaudi::Algorithm::m_pMonitorSvc
mutableprivate

Online Monitoring Service.

Definition at line 478 of file Algorithm.h.

◆ m_pSvcLocator

SmartIF<ISvcLocator> Gaudi::Algorithm::m_pSvcLocator
private

Pointer to service locator service.

Definition at line 484 of file Algorithm.h.

◆ m_ptoolSvc

SmartIF<IToolSvc> Gaudi::Algorithm::m_ptoolSvc
mutableprivate

ToolSvc Service.

Definition at line 477 of file Algorithm.h.

◆ m_registerContext

Gaudi::Property<bool> Gaudi::Algorithm::m_registerContext
private
Initial value:
{this, "RegisterForContextService", false,
"flag to enforce the registration for Algorithm Context Service"}

Definition at line 518 of file Algorithm.h.

◆ m_RGS

SmartIF<IRndmGenSvc> Gaudi::Algorithm::m_RGS
mutableprivate

Random Number Generator Service.

Definition at line 474 of file Algorithm.h.

◆ m_state

Gaudi::StateMachine::State Gaudi::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 534 of file Algorithm.h.

◆ m_targetState

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

Algorithm has been initialized flag.

Definition at line 535 of file Algorithm.h.

◆ m_timelineSvc

SmartIF<ITimelineSvc> Gaudi::Algorithm::m_timelineSvc
mutableprivate

Timeline Service.

Definition at line 481 of file Algorithm.h.

◆ m_toolHandleArrays

std::vector<GaudiHandleArrayBase*> Gaudi::Algorithm::m_toolHandleArrays
mutableprivate

Definition at line 459 of file Algorithm.h.

◆ m_toolHandles

std::vector<BaseToolHandle*> Gaudi::Algorithm::m_toolHandles
mutableprivate

Definition at line 458 of file Algorithm.h.

◆ m_toolHandlesInit

bool Gaudi::Algorithm::m_toolHandlesInit = false
mutableprivate

Definition at line 532 of file Algorithm.h.

◆ m_tools

std::vector<IAlgTool*> Gaudi::Algorithm::m_tools
mutableprivate

Definition at line 457 of file Algorithm.h.

◆ m_type

std::string Gaudi::Algorithm::m_type
private

Algorithm's type.

Definition at line 452 of file Algorithm.h.

◆ m_updateDataHandles

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

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

Definition at line 488 of file Algorithm.h.

◆ m_version

std::string Gaudi::Algorithm::m_version
private

Algorithm's version.

Definition at line 453 of file Algorithm.h.

◆ m_WB

SmartIF<IHiveWhiteBoard> Gaudi::Algorithm::m_WB
mutableprivate

Event data service (whiteboard)

Definition at line 467 of file Algorithm.h.


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