| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
GaudiTool Class Reference

The useful base class for tools. More...

`#include <GaudiTools/GaudiTool.h>`

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

## Public Member Functions
virtual StatusCode | initialize ()
| standard initialization method
virtual StatusCode | finalize ()
| standard finalization method
INTupleSvc * | ntupleSvc () const
| Access the standard N-Tuple.
INTupleSvc * | evtColSvc () const
| Access the standard event collection service.
IDataProviderSvc * | detSvc () const
| accessor to detector service
IDataProviderSvc * | evtSvc () const
| accessor to event service service
IIncidentSvc * | incSvc () const
| accessor to Incident Service
IChronoStatSvc * | chronoSvc () const
| accessor to Chrono & Stat Service
IHistogramSvc * | histoSvc () const
| acessor to the histogram service
IAlgContextSvc * | contextSvc () const
| acessor to the Algorithm Context Service
DataObject * | put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
DataObject * | put (DataObject *object, const std::string &address, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | get (const std::string &location, const bool useRootInTES=true) const
| Templated access to the data from Gaudi Event Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
template<class TYPE >
TYPE * | getDet (IDataProviderSvc *svc, const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getDetIfExists (IDataProviderSvc *svc, const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
TYPE * | getDet (const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
Gaudi::Utils::GetData< TYPE > ::return_type | getDetIfExists (const std::string &location) const
| Templated access to the detector data from the Gaudi Detector Transient Store.
template<class TYPE >
bool | exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE >
bool | exist (const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
template<class TYPE >
bool | existDet (IDataProviderSvc *svc, const std::string &location) const
| Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE >
bool | existDet (const std::string &location) const
| Check the existence of detector objects in the Gaudi Transient Detector Store.
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
template<class TYPE , class TYPE2 >
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
Public Member Functions inherited from GaudiCommon< AlgTool >
Gaudi::Utils::GetData< TYPE > ::return_type | get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Templated access to the data in Gaudi Transient Store.
Gaudi::Utils::GetData< TYPE > ::return_type | getIfExists (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Quicker version of the get function which bypasses the check on the retrieved data.
bool | exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Check the existence of a data object or container in the Gaudi Transient Event Store.
Gaudi::Utils::GetData< TYPE > ::return_type | getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
| Get the existing data object from Gaudi Event Transient store.
DataObject * | put (IDataProviderSvc *svc, DataObject *object, const std::string &location, const bool useRootInTES=true) const
| Register a data object or container into Gaudi Event Transient Store.
TOOL * | tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
| Useful method for the easy location of tools.
TOOL * | tool (const std::string &type, const IInterface *parent=0, bool create=true) const
| A useful method for the easy location of tools.
SmartIF< SERVICE > | svc (const std::string &name, const bool create=true) const
| A useful method for the easy location of services.
IUpdateManagerSvc * | updMgrSvc () const
| Short-cut to locate the Update Manager Service.
StatusCode | Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
| Print the error message and return with the given StatusCode.
StatusCode | Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
| Print the warning message and return with the given StatusCode.
StatusCode | Info (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const size_t mx=10) const
| Print the info message and return with the given StatusCode.
StatusCode | Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
| Print the message and return with the given StatusCode.
void | Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Assertion - throw exception if the given condition is not fulfilled.
void | Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Assertion - throw exception if the given condition is not fulfilled.
void | Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and (re)-throw a given GaudiException.
void | Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and (re)-throw a given exception.
void | Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
| Create and throw an exception with the given message.
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts.
MsgStream & | always () const
| shortcut for the method msgStream ( MSG::ALWAYS )
MsgStream & | fatal () const
| shortcut for the method msgStream ( MSG::FATAL )
MsgStream & | err () const
| shortcut for the method msgStream ( MSG::ERROR )
MsgStream & | error () const
| shortcut for the method msgStream ( MSG::ERROR )
MsgStream & | warning () const
| shortcut for the method msgStream ( MSG::WARNING )
MsgStream & | info () const
| shortcut for the method msgStream ( MSG::INFO )
MsgStream & | debug () const
| shortcut for the method msgStream ( MSG::DEBUG )
MsgStream & | verbose () const
| shortcut for the method msgStream ( MSG::VERBOSE )
MsgStream & | msg () const
| shortcut for the method msgStream ( MSG::INFO )
const Statistics & | counters () const
| accessor to all counters
StatEntity & | counter (const std::string &tag) const
| accessor to certain counter by name
MSG::Level | msgLevel () const
| The current message service output level.
bool | msgLevel (const MSG::Level level) const
| Test the output level.
void | resetMsgStream () const
| Reset (delete) the current message stream object.
bool | typePrint () const
| Insert the actual C++ type of the algorithm/tool in the messages ?
bool | propsPrint () const
| Print properties at initialization ?
bool | statPrint () const
| Print statistical counters at finalization ?
bool | errorsPrint () const
| Print error counters at finalization ?
long | printStat (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of statistical counters
long | printErrors (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of error counters
long | printProps (const MSG::Level level=MSG::ALWAYS) const
| perform the actual printout of properties
void | registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
void | registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
void | registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
| just to avoid conflicts with the version using a pointer to a template class.
void | registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
| register the current instance to the UpdateManagerSvc as a consumer for a condition.
StatusCode | runUpdate ()
| asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident.
| GaudiCommon (const std::string &name, ISvcLocator *pSvcLocator)
| Algorithm constructor.
| GaudiCommon (const std::string &type, const std::string &name, const IInterface *parent)
| Tool constructor.
StatusCode | release (const IInterface *interface) const
| Manual forced (and 'safe') release of the active tool or service.
virtual unsigned long | release ()
| Un-hide IInterface::release (ICC warning #1125)
const AlgTools & | tools () const
| get the list of aquired tools
const Services & | services () const
| get the list of aquired services
const std::string & | context () const
| Returns the "context" string. Used to identify different processing states.
const std::string & | rootInTES () const
| Returns the "rootInTES" string.
double | globalTimeOffset () const
| Returns the "globalTimeOffset" double.
const std::string | fullTESLocation (const std::string &location, const bool useRootInTES) const
| Returns the full correct event location given the rootInTes settings.
Public Member Functions inherited from AlgTool
virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvUnknown)
| Query for a given interface.
virtual const std::string & | name () const
| Retrieve full identifying name of the concrete tool object.
virtual const std::string & | type () const
| Retrieve type (concrete class) of the sub-algtool.
virtual const IInterface * | parent () const
| Retrieve parent of the sub-algtool.
virtual StatusCode | configure ()
virtual StatusCode | start ()
virtual StatusCode | stop ()
virtual StatusCode | terminate ()
virtual StatusCode | reinitialize ()
virtual StatusCode | restart ()
virtual Gaudi::StateMachine::State | FSMState () const
virtual Gaudi::StateMachine::State | targetFSMState () const
virtual StatusCode | sysInitialize ()
| Initialize AlgTool.
virtual StatusCode | sysStart ()
| Start AlgTool.
virtual StatusCode | sysStop ()
| Stop AlgTool.
virtual StatusCode | sysFinalize ()
| Finalize AlgTool.
virtual StatusCode | sysReinitialize ()
| Initialize AlgTool.
virtual StatusCode | sysRestart ()
| Start AlgTool.
virtual StatusCode | setProperty (const Property &p)
| Default implementations for IProperty interface.
virtual StatusCode | setProperty (const std::string &s)
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
virtual StatusCode | getProperty (Property *p) const
virtual const Property & | getProperty (const std::string &name) const
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
virtual const std::vector < Property * > & | getProperties () const
PropertyMgr * | getPropertyMgr ()
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value
| AlgTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard Constructor.
ISvcLocator * | serviceLocator () const
| Retrieve pointer to service locator.
ISvcLocator * | svcLoc () const
| shortcut for the method service locator
IMessageSvc * | msgSvc () const
| Retrieve pointer to message service.
IToolSvc * | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present.
StatusCode | setProperties ()
| Method for setting declared properties to the values specified in the jobOptions via the job option service.
template<class T >
StatusCode | service (const std::string &name, T *&svc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &type, const std::string &name, T *&svc) const
| Access a service by name, type creating it if it doesn't already exist.
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")
void | declInterface (const InterfaceID &, void *)
| declare interface
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
IAuditorSvc * | auditorSvc () const
| Access the auditor service.
IMonitorSvc * | monitorSvc () const
| Access the monitor service.
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information.
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)

## Static Public Member Functions
static bool | enableSummary (bool)
| enable/disable summary
static bool | summaryEnabled ()
| is summary enabled?

## Protected Member Functions
| GaudiTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard constructor.
virtual | ~GaudiTool ()
| destructor, virtual and protected
Protected Member Functions inherited from GaudiCommon< AlgTool >
virtual | ~GaudiCommon ()
| Destructor.
StatusCode | releaseTool (const IAlgTool *tool) const
| manual forced (and 'safe') release of the tool
StatusCode | releaseSvc (const IInterface *svc) const
| manual forced (and 'safe') release of the service
Protected Member Functions inherited from AlgTool
int | outputLevel () const
| get tool's output level
IntegerProperty & | outputLevelProperty ()
| Accessor for the Message level property.
void | initOutputLevel (Property &prop)
| callback for output level property
virtual | ~AlgTool ()

## Private Member Functions
| GaudiTool ()
| no public default constructor
| GaudiTool (const GaudiTool &)
| no public copy constructor
GaudiTool & | operator= (const GaudiTool &)
| no public assignment operator

## Private Attributes
INTupleSvc * | m_ntupleSvc
| pointer to the N-Tuple service
INTupleSvc * | m_evtColSvc
| pointer to the event tag collection service
IDataProviderSvc * | m_evtSvc
| pointer to Event Data Service
IDataProviderSvc * | m_detSvc
| pointer to Detector Data Service
IChronoStatSvc * | m_chronoSvc
| pointer to Chrono & Stat Service
IIncidentSvc * | m_incSvc
| pointer to Incident Service
IHistogramSvc * | m_histoSvc
| pointer for histogram service
IAlgContextSvc * | m_contextSvc
| Algorithm Context Service.
std::string | m_contextSvcName
| Algorithm Context Service.
const std::string | m_local
| full tool name "type/name"

## Static Private Attributes
static bool | s_enableSummary = true
| enable printout of summary?

## Additional Inherited Members
Public Types inherited from AlgTool
typedef Gaudi::PluginService::Factory3 < IAlgTool *, const std::string &, const std::string &, const IInterface * > | Factory
Protected Types inherited from GaudiCommon< AlgTool >
typedef std::map< std::string, StatEntity > | Statistics
| the actual type of general counters
typedef std::map< std::string, unsigned int > | Counter
| the actual type error/warning counter
typedef std::vector< IAlgTool * > | AlgTools
| storage for active tools
typedef GaudiUtils::HashMap < std::string, SmartIF < IService > > | Services
| storage for active services
Protected Attributes inherited from GaudiCommon< AlgTool >
ICounterSummarySvc * | m_counterSummarySvc
| a pointer to the CounterSummarySvc
std::vector< std::string > | m_counterList
| list of counters to declare. Set by property CounterList. This can be a regular expression.
std::vector< std::string > | m_statEntityList
Static Protected Attributes inherited from GaudiCommon< AlgTool >
static const bool | IgnoreRootInTES
| Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.
static const bool | UseRootInTES
| Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.

## Detailed Description

The useful base class for tools.

Small extension of ordinary the AlgTool base class.

This base class allows "easy"(=="1 line") access to tools and services. This access is safe in the sense that there is no need to worry about the reference counts for tools and services.

The base class allows "easy" (=="1 line") access to data in Gaudi Transient Stores. The functionality includes the checking of the presence of the data at the given location, checking the validity of the data, retrieval of valid data and "forced" retrieve of valid data (create if there is no data).

The base class allows to perform an easy error, warning and exception treatments, including the accumulated statistics of exceptions, errors and warnings.

The base class also includes utilities for general statistical counters.

It has been reported that usage of this base class results in significant reduction of existing code lines.

Attention
  See the class GaudiCommon, which implements some of the common functionality between GaudiTool and GaudiAlgorithm

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@i.nosp@m.tep..nosp@m.ru
  Chris Jones Chris.nosp@m.toph.nosp@m.er.Ro.nosp@m.b.Jo.nosp@m.nes@c.nosp@m.ern..nosp@m.ch

Date
  2003-07-07

Definition at line 99 of file GaudiTool.h.

## Constructor & Destructor Documentation

GaudiTool::GaudiTool | ( | const std::string & | type,
|  | const std::string & | name,
|  | const IInterface * | parent
| ) |  |
| protected

Standard constructor.

See Also
  AlgTool

Parameters

  type | tool type (useless)
  name | tool name
  parent | pointer to parent object (service, algorithm or tool)

Definition at line 140 of file GaudiTool.cpp.

: GaudiCommon<AlgTool> ( this_type , this_name , parent )
// services
, m_ntupleSvc ( 0 )
, m_evtColSvc ( 0 )
, m_evtSvc ( 0 )
, m_detSvc ( 0 )
, m_chronoSvc ( 0 )
, m_incSvc ( 0 )
, m_histoSvc ( 0 )
, m_contextSvc ( 0 ) // pointer to Algorithm Context Service
, m_contextSvcName ( "AlgContextSvc" ) // Algorithm Context Service name
//
, m_local ( this_type + "/" + this_name )
{
declareProperty
( "ContextService" ,
m_contextSvcName ,
"The name of Algorithm Context Service" ) ;
// make instance counts
GaudiToolLocal::s_InstanceCounter.increment ( m_local ) ;
}

GaudiTool::~GaudiTool | ( |  | ) |
| protected virtual

destructor, virtual and protected

Definition at line 167 of file GaudiTool.cpp.

{
GaudiToolLocal::s_InstanceCounter.decrement ( m_local ) ;
}

GaudiTool::GaudiTool | ( |  | ) |
| private

no public default constructor

GaudiTool::GaudiTool | ( | const GaudiTool & |  | ) |
| private

no public copy constructor

## Member Function Documentation

IChronoStatSvc * GaudiTool::chronoSvc | ( |  | ) | const

accessor to Chrono & Stat Service

Returns
  pointer to the Chrono & Stat Service

Definition at line 272 of file GaudiTool.cpp.

{
if ( 0 == m_chronoSvc )
{
m_chronoSvc =
svc<IChronoStatSvc> ( GaudiToolServices::s_ChronoStatSvc , true ) ;
}
return m_chronoSvc ;
}

IAlgContextSvc * GaudiTool::contextSvc | ( |  | ) | const

acessor to the Algorithm Context Service

Returns
  pointer to the Algorithm Context Service

Definition at line 295 of file GaudiTool.cpp.

{
if ( 0 == m_contextSvc )
{
m_contextSvc = svc<IAlgContextSvc> ( m_contextSvcName , true ) ;
}
return m_contextSvc;
}

IDataProviderSvc * GaudiTool::detSvc | ( |  | ) | const

accessor to detector service

Returns
  pointer to detector service

Definition at line 214 of file GaudiTool.cpp.

{
if ( 0 == m_detSvc )
{
m_detSvc =
svc<IDataProviderSvc>( GaudiToolServices::s_DetectorDataSvc , true ) ;
}
return m_detSvc ;
}

bool GaudiTool::enableSummary | ( | bool | value | ) |
| static

enable/disable summary

Definition at line 127 of file GaudiTool.cpp.

{
s_enableSummary = value ;
return summaryEnabled () ;
}

INTupleSvc * GaudiTool::evtColSvc | ( |  | ) | const

Access the standard event collection service.

Returns
  pointer to the event collection service

Definition at line 237 of file GaudiTool.cpp.

{
if ( 0 == m_evtColSvc )
{
m_evtColSvc = svc< INTupleSvc > ( "EvtTupleSvc" , true ) ;
}
return m_evtColSvc ;
}

IDataProviderSvc * GaudiTool::evtSvc | ( |  | ) | const

accessor to event service service

Returns
  pointer to detector service

Definition at line 248 of file GaudiTool.cpp.

{
if ( 0 == m_evtSvc )
{
m_evtSvc =
svc<IDataProviderSvc>( GaudiToolServices::s_EventDataSvc , true ) ;
}
return m_evtSvc ;
}
template<class TYPE >

bool GaudiTool::exist | ( | IDataProviderSvc * | svc,
|  | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Check the existence of a data object or container in the Gaudi Transient Event Store.

bool a1 = exist<DataObject>( evtSvc(), "/Event/MyObject" ) ;
bool a2 = exist<MyHits> ( evtSvc(), "/Event/MyHits" ) ;

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Parameters

  svc | Pointer to data service (data provider)
  location | Address in Gaudi Transient Event Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  Boolean indicating status of the request

Return values

  true | Data object or container exists and implements a proper interface
  true | Failed to locate the data object or container

Definition at line 519 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , useRootInTES ) ;
}
template<class TYPE >

bool GaudiTool::exist | ( | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Check the existence of a data object or container in the Gaudi Transient Event Store.

bool a1 = exist<DataObject>( "/Event/MyObject" ) ;
bool a2 = exist<MyHits> ( "/Event/MyHits" ) ;

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Parameters

  location | Address in Gaudi Transient Event Store

Returns
  Boolean indicating status of the request

Return values

  true | Data object or container exists and implements a proper interface
  true | Failed to locate the data object or container

Definition at line 549 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::exist<TYPE> ( evtSvc() , location , useRootInTES ) ;
}
template<class TYPE >

bool GaudiTool::existDet | ( | IDataProviderSvc * | svc,
|  | const std::string & | location
| ) |  | const
| inline

Check the existence of detector objects in the Gaudi Transient Detector Store.

bool a1 = existDet<DataObject> ( detSvc(), "/dd/Structure/MyObject" ) ;
bool a2 = existDet<Material> ( detSvc(), "/dd/Structure/Material/Air" ) ;

Parameters

  svc | Pointer to data service (data provider)
  location | Address in Gaudi Transient Detector Store

Returns
  Boolean indicating status of the request

Return values

  true | Detector object exists and implements a proper interface
  false | Failed to locate the data object

Definition at line 572 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , false ) ;
}
template<class TYPE >

bool GaudiTool::existDet | ( | const std::string & | location | ) | const
| inline

Check the existence of detector objects in the Gaudi Transient Detector Store.

bool a1 = existDet<DataObject> ( "/dd/Structure/MyObject" ) ;
bool a2 = existDet<Material> ( "/dd/Structure/Material/Air" ) ;

Parameters

  location | Address in Gaudi Transient Detector Store

Returns
  Boolean indicating status of the request

Return values

  true | Detector object exists and implements a proper interface
  false | Failed to locate the data object

Definition at line 594 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::exist<TYPE> ( detSvc() , location , false ) ;
}

StatusCode GaudiTool::finalize | ( |  | ) |
| virtual

standard finalization method

See Also
  AlgTool
  IAlgTool

Returns
  status code

Reimplemented from GaudiCommon< AlgTool >.

Reimplemented in GaudiHistos< GaudiTool >, GaudiTuples< GaudiHistoTool >, GaudiHistoTool, GaudiTupleTool, SequencerTimerTool, FuncMinimum, and EqSolver.

Definition at line 189 of file GaudiTool.cpp.

{
if ( msgLevel(MSG::DEBUG) )
debug() << " ==> Finalize the base class GaudiTool " << endmsg;
// clear "explicit services"
m_evtSvc = 0 ;
m_detSvc = 0 ;
m_chronoSvc = 0 ;
m_incSvc = 0 ;
m_histoSvc = 0 ;
// finalize the base class
const StatusCode sc = GaudiCommon<AlgTool>::finalize() ;
if ( sc.isFailure() ) { return sc; }
// Decrement the counter
GaudiToolLocal::s_FinalizeCounter.decrement( m_local ) ;
// return
return sc;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::get | ( | IDataProviderSvc * | svc,
|  | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Templated access to the data in Gaudi Transient Store.

Quick and safe access to the data in Gaudi transient store. The method located the data at given address and perform the debug printout about located data

MCHits* hits = get<MCHits>( evtSvc() , "/Event/MC/Hits" );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

See Also
  IDataProviderSvc
  SmartDataPtr

Exceptions

  GaudiException | for Invalid Data Provider Service
  GaudiException | for invalid/unavailable data

Parameters

  svc | Pointer to data service (data provider)
  location | data location/address in Gaudi Transient Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  pointer to the data object

Definition at line 265 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , useRootInTES ) ;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::get | ( | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Templated access to the data from Gaudi Event Transient Store.

Quick and safe access to the data in Gaudi transient store.

The method located the data at the given address and perform the debug printout about located data.

MCParticles* mcps = get<MCParticles>( MCParticleLocation::Default );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Parameters

  location | Data location/address in Gaudi Transient Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  Pointer to the data object

Definition at line 341 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::get<TYPE> ( evtSvc() , location , useRootInTES ) ;
}
template<class TYPE >

TYPE* GaudiTool::getDet | ( | IDataProviderSvc * | svc,
|  | const std::string & | location
| ) |  | const
| inline

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

MyDet* mdet = getDet<MyDet>( detSvc() , "/dd/Structure/LHCb/MyDet" );

Parameters

  svc | Pointer to data service (data provider)
  location | Detector location/address in Gaudi Transient Store

Returns
  Pointer to the detector object

Definition at line 406 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , false ) ;
}
template<class TYPE >

TYPE* GaudiTool::getDet | ( | const std::string & | location | ) | const
| inline

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

MyDet* mdet = getDet<MyDet>( "/dd/Structure/LHCb/MyDet" );

Parameters

  location | Detector location/address in Gaudi Transient Store

Returns
  Pointer to the detector object

Definition at line 460 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::get<TYPE> ( detSvc() , location , false ) ;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getDetIfExists | ( | IDataProviderSvc * | svc,
|  | const std::string & | location
| ) |  | const
| inline

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

Skips the check on the data as performed by 'get'. No exception is thrown if the data is missing.

MyDet* mdet = getDetIfExists<MyDet>( detSvc() , "/dd/Structure/LHCb/MyDet" );

Parameters

  svc | Pointer to data service (data provider)
  location | Detector location/address in Gaudi Transient Store

Returns
  Pointer to the detector object

Return values

  NULL | If the detector object does not exist.

Definition at line 436 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getIfExists<TYPE> ( svc , location , false ) ;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getDetIfExists | ( | const std::string & | location | ) | const
| inline

Templated access to the detector data from the Gaudi Detector Transient Store.

Quick and safe access to the detector data in Gaudi transient store.

The method located the detector at the given address and perform the debug printout about located detector.

Skips the check on the data as performed by 'get'. No exception is thrown if the data is missing.

MyDet* mdet = getDetIfExists<MyDet>( "/dd/Structure/LHCb/MyDet" );

Parameters

  location | Detector location/address in Gaudi Transient Store

Returns
  Pointer to the detector object

Return values

  NULL | If the detector object does not exist.

Definition at line 488 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getIfExists<TYPE> ( detSvc() , location , false ) ;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getIfExists | ( | IDataProviderSvc * | svc,
|  | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Templated access to the data in Gaudi Transient Store.

Quick and safe access to the data in Gaudi transient store. The method located the data at given address and perform the debug printout about located data.

Skips the check on the data as performed by 'get'. No exception is thrown if the data is missing.

MCHits* hits = getIfExists<MCHits>( evtSvc() , "/Event/MC/Hits" );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

See Also
  IDataProviderSvc
  SmartDataPtr

Parameters

  svc | Pointer to data service (data provider)
  location | data location/address in Gaudi Transient Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  pointer to the data object.

Return values

  NULL | If data does not exist.

Definition at line 307 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getIfExists<TYPE> ( svc , location , useRootInTES ) ;
}
template<class TYPE >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getIfExists | ( | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Templated access to the data in Gaudi Transient Store.

Quick and safe access to the data in Gaudi transient store. The method located the data at given address and perform the debug printout about located data.

Skips the check on the data as performed by 'get'. No exception is thrown if the data is missing.

MCHits* hits = getIfExists<MCHits>( "/Event/MC/Hits" );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

See Also
  IDataProviderSvc
  SmartDataPtr

Parameters

  location | data location/address in Gaudi Transient Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  pointer to the data object.

Return values

  NULL | If data does not exist.

Definition at line 381 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getIfExists<TYPE> ( evtSvc() , location , useRootInTES ) ;
}
template<class TYPE , class TYPE2 >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getOrCreate | ( | IDataProviderSvc * | svc,
|  | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Get the existing data object from Gaudi Event Transient store.

       Alternatively, create new object and register it in TES
       and return if object does not exist.

MyHits* hits = getOrCreate<MyHits,MyHits>( evtSvc() , "/Event/MyHits" ) ;

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Exceptions

  GaudiException | for Invalid Data Provider Service
  GaudiException | for invalid/unavailable data

Parameters

  svc | Pointer to data service (data provider)
  location | Location in Gaudi Transient Event Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  A valid pointer to the object

Definition at line 627 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( svc , location , useRootInTES ) ;
}
template<class TYPE , class TYPE2 >

Gaudi::Utils::GetData<TYPE>::return_type GaudiTool::getOrCreate | ( | const std::string & | location,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Get the existing data object from Gaudi Event Transient store.

       Alternatively, create new object and register it in TES
       and return if object does not exist.

MyHits* hits = getOrCreate<MyHits,MyHits>( "/Event/MyHits" ) ;

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Exceptions

  GaudiException | for Invalid Data Provider Service
  GaudiException | for invalid/unavailable data

Parameters

  location | Location in Gaudi Transient Event Store
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Returns
  A valid pointer to the object

Definition at line 661 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( evtSvc() , location , useRootInTES ) ;
}

IHistogramSvc * GaudiTool::histoSvc | ( |  | ) | const

acessor to the histogram service

Returns
  pointer to the histogram service

Definition at line 284 of file GaudiTool.cpp.

{
if ( 0 == m_histoSvc )
{
m_histoSvc = svc<IHistogramSvc> ( GaudiToolServices::s_HistoSvc, true ) ;
}
return m_histoSvc;
}

IIncidentSvc * GaudiTool::incSvc | ( |  | ) | const

accessor to Incident Service

Returns
  pointer to the Incident Service

Definition at line 260 of file GaudiTool.cpp.

{
if ( 0 == m_incSvc )
{
m_incSvc =
svc<IIncidentSvc> ( GaudiToolServices::s_IncidentSvc , true ) ;
}
return m_incSvc ;
}

StatusCode GaudiTool::initialize | ( |  | ) |
| virtual

standard initialization method

See Also
  AlgTool
  IAlgTool

Returns
  status code

Reimplemented from GaudiCommon< AlgTool >.

Reimplemented in GaudiHistos< GaudiTool >, GaudiTuples< GaudiHistoTool >, GaudiHistoTool, GaudiTupleTool, SequencerTimerTool, FuncMinimum, and EqSolver.

Definition at line 174 of file GaudiTool.cpp.

{
// initialize the base class
const StatusCode sc = GaudiCommon<AlgTool>::initialize() ;
if ( sc.isFailure() ) { return sc; }
// increment the counter
GaudiToolLocal::s_FinalizeCounter.increment( m_local ) ;
// return
return sc;
}

INTupleSvc * GaudiTool::ntupleSvc | ( |  | ) | const

Access the standard N-Tuple.

Returns
  pointer to N-Tuple service .

Definition at line 226 of file GaudiTool.cpp.

{
if ( 0 == m_ntupleSvc )
{
m_ntupleSvc = svc<INTupleSvc>( "NTupleSvc" , true ) ;
}
return m_ntupleSvc ;
}

GaudiTool& GaudiTool::operator= | ( | const GaudiTool & |  | ) |
| private

no public assignment operator

DataObject* GaudiTool::put | ( | IDataProviderSvc * | svc,
|  | DataObject * | object,
|  | const std::string & | address,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Register a data object or container into Gaudi Event Transient Store.

MCHits * hits = new MCHits();
put( evtSvc(), hits, "/Event/MC/Hits" );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

See Also
  IDataProviderSvc

Parameters

  svc | Pointer to data provider service
  object | Data object or container to be registered
  address | Address in Gaudi Event Transient Store ("/Event" could be omitted )
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Exceptions

  GaudiException | for invalid event data service
  GaudiException | for invalid object
  GaudiException | for error result from event data service

Returns
  StatusCode

Return values

  StatusCode::SUCCESS | Data was successfully placed in the TES.
  StatusCode::FAILURE | Failed to store data in the TES.

Definition at line 189 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::put ( svc , object , address , useRootInTES ) ;
}

DataObject* GaudiTool::put | ( | DataObject * | object,
|  | const std::string & | address,
|  | const bool | useRootInTES = `true`
| ) |  | const
| inline

Register a data object or container into Gaudi Event Transient Store.

See Also
  IDataProviderSvc

MCHits * hits = put( new MCHits(), "/Event/MC/Hits" );

Attention
  The method respects the setting of the job option RootInTES by prepending the value of this to the data location that is passed. The default setting for RootInTES is "" so has no effect. This behavior can be suppressed by passing the argument useRootInTES = false

Parameters

  object | Data object or container to be registered
  address | Address in Gaudi Event Transient Store ("/Event" could be omitted )
  useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property

Exceptions

  GaudiException | for invalid event data service
  GaudiException | for invalid object
  GaudiException | for error result from event data service

Returns
  StatusCode

Return values

  StatusCode::SUCCESS | Data was successfully placed in the TES.
  StatusCode::FAILURE | Failed to store data in the TES.

Definition at line 225 of file GaudiTool.h.

{
return GaudiCommon<AlgTool>::put ( evtSvc() , object , address , useRootInTES ) ;
}

bool GaudiTool::summaryEnabled | ( |  | ) |
| static

is summary enabled?

Definition at line 135 of file GaudiTool.cpp.

{ return s_enableSummary ; }

## Member Data Documentation

IChronoStatSvc* GaudiTool::m_chronoSvc
| mutable private

pointer to Chrono & Stat Service

Definition at line 710 of file GaudiTool.h.

IAlgContextSvc* GaudiTool::m_contextSvc
| mutable private

Algorithm Context Service.

Definition at line 716 of file GaudiTool.h.

std::string GaudiTool::m_contextSvcName
| private

Algorithm Context Service.

Definition at line 718 of file GaudiTool.h.

IDataProviderSvc* GaudiTool::m_detSvc
| mutable private

pointer to Detector Data Service

Definition at line 708 of file GaudiTool.h.

INTupleSvc* GaudiTool::m_evtColSvc
| mutable private

pointer to the event tag collection service

Definition at line 704 of file GaudiTool.h.

IDataProviderSvc* GaudiTool::m_evtSvc
| mutable private

pointer to Event Data Service

Definition at line 706 of file GaudiTool.h.

IHistogramSvc* GaudiTool::m_histoSvc
| mutable private

pointer for histogram service

Definition at line 714 of file GaudiTool.h.

IIncidentSvc* GaudiTool::m_incSvc
| mutable private

pointer to Incident Service

Definition at line 712 of file GaudiTool.h.

const std::string GaudiTool::m_local
| private

full tool name "type/name"

Definition at line 723 of file GaudiTool.h.

INTupleSvc* GaudiTool::m_ntupleSvc
| mutable private

pointer to the N-Tuple service

Definition at line 702 of file GaudiTool.h.

bool GaudiTool::s_enableSummary = true
| static private

enable printout of summary?

summary is enabled

Definition at line 728 of file GaudiTool.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiAlg/GaudiAlg/GaudiTool.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiAlg/src/lib/GaudiTool.cpp