Gaudi Framework, version v24r2

Home   Generated: Wed Dec 4 2013
 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:
Inheritance graph
[legend]
Collaboration diagram for GaudiTool:
Collaboration graph
[legend]

Public Member Functions

virtual StatusCode initialize ()
 standard initialization method
 
virtual StatusCode finalize ()
 standard finalization method
 
INTupleSvcntupleSvc () const
 Access the standard N-Tuple.
 
INTupleSvcevtColSvc () const
 Access the standard event collection service.
 
IDataProviderSvcdetSvc () const
 accessor to detector service
 
IDataProviderSvcevtSvc () const
 accessor to event service service
 
IIncidentSvcincSvc () const
 accessor to Incident Service
 
IChronoStatSvcchronoSvc () const
 accessor to Chrono & Stat Service
 
IHistogramSvchistoSvc () const
 acessor to the histogram service
 
IAlgContextSvccontextSvc () const
 acessor to the Algorithm Context Service
 
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
 Register a data object or container into Gaudi Event Transient Store.
 
DataObjectput (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.
 
DataObjectput (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.
 
IUpdateManagerSvcupdMgrSvc () 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.
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts.
 
MsgStreamalways () const
 shortcut for the method msgStream ( MSG::ALWAYS )
 
MsgStreamfatal () const
 shortcut for the method msgStream ( MSG::FATAL )
 
MsgStreamerr () const
 shortcut for the method msgStream ( MSG::ERROR )
 
MsgStreamerror () const
 shortcut for the method msgStream ( MSG::ERROR )
 
MsgStreamwarning () const
 shortcut for the method msgStream ( MSG::WARNING )
 
MsgStreaminfo () const
 shortcut for the method msgStream ( MSG::INFO )
 
MsgStreamdebug () const
 shortcut for the method msgStream ( MSG::DEBUG )
 
MsgStreamverbose () const
 shortcut for the method msgStream ( MSG::VERBOSE )
 
MsgStreammsg () const
 shortcut for the method msgStream ( MSG::INFO )
 
const Statisticscounters () const
 accessor to all counters
 
StatEntitycounter (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 AlgToolstools () const
 get the list of aquired tools
 
const Servicesservices () const
 get the list of aquired services
 
const std::stringcontext () const
 Returns the "context" string. Used to identify different processing states.
 
const std::stringrootInTES () 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::stringname () const
 Retrieve full identifying name of the concrete tool object.
 
virtual const std::stringtype () const
 Retrieve type (concrete class) of the sub-algtool.
 
virtual const IInterfaceparent () 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 PropertygetProperty (const std::string &name) const
 
virtual StatusCode getProperty (const std::string &n, std::string &v) const
 
virtual const std::vector
< Property * > & 
getProperties () const
 
PropertyMgrgetPropertyMgr ()
 
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.
 
ISvcLocatorserviceLocator () const
 Retrieve pointer to service locator.
 
ISvcLocatorsvcLoc () const
 shortcut for the method service locator
 
IMessageSvcmsgSvc () const
 Retrieve pointer to message service.
 
IToolSvctoolSvc () 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< IServiceservice (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 >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property.
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties.
 
IAuditorSvcauditorSvc () const
 Access the auditor service.
 
IMonitorSvcmonitorSvc () 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
 
IntegerPropertyoutputLevelProperty ()
 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
 
GaudiTooloperator= (const GaudiTool &)
 no public assignment operator
 

Private Attributes

INTupleSvcm_ntupleSvc
 pointer to the N-Tuple service
 
INTupleSvcm_evtColSvc
 pointer to the event tag collection service
 
IDataProviderSvcm_evtSvc
 pointer to Event Data Service
 
IDataProviderSvcm_detSvc
 pointer to Detector Data Service
 
IChronoStatSvcm_chronoSvc
 pointer to Chrono & Stat Service
 
IIncidentSvcm_incSvc
 pointer to Incident Service
 
IHistogramSvcm_histoSvc
 pointer for histogram service
 
IAlgContextSvcm_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 implements3< IAlgTool, IProperty, IStateful >
typedef implements3 base_class
 Typedef to this class.
 
typedef extend_interfaces3
< IAlgTool, IProperty,
IStateful
extend_interfaces_base
 Typedef to the base of this class.
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.
 
- 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 >
ICounterSummarySvcm_counterSummarySvc
 a pointer to the CounterSummarySvc
 
std::vector< std::stringm_counterList
 list of counters to declare. Set by property CounterList. This can be a regular expression.
 
std::vector< std::stringm_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
typetool type (useless)
nametool name
parentpointer 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 )
{
( "ContextService" ,
"The name of Algorithm Context Service" ) ;
// make instance counts
}
GaudiTool::~GaudiTool ( )
protectedvirtual

destructor, virtual and protected

Definition at line 167 of file GaudiTool.cpp.

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 )
{
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 )
{
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 )
{
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
svcPointer to data service (data provider)
locationAddress in Gaudi Transient Event Store
useRootInTESFlag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns
Boolean indicating status of the request
Return values
trueData object or container exists and implements a proper interface
trueFailed 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
locationAddress in Gaudi Transient Event Store
Returns
Boolean indicating status of the request
Return values
trueData object or container exists and implements a proper interface
trueFailed 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
svcPointer to data service (data provider)
locationAddress in Gaudi Transient Detector Store
Returns
Boolean indicating status of the request
Return values
trueDetector object exists and implements a proper interface
falseFailed 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
locationAddress in Gaudi Transient Detector Store
Returns
Boolean indicating status of the request
Return values
trueDetector object exists and implements a proper interface
falseFailed 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, FuncMinimum, SequencerTimerTool, and EqSolver.

Definition at line 189 of file GaudiTool.cpp.

{
debug() << " ==> Finalize the base class GaudiTool " << endmsg;
// clear "explicit services"
m_evtSvc = 0 ;
m_detSvc = 0 ;
m_incSvc = 0 ;
m_histoSvc = 0 ;
// finalize the base class
if ( sc.isFailure() ) { return sc; }
// Decrement the counter
// 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
GaudiExceptionfor Invalid Data Provider Service
GaudiExceptionfor invalid/unavailable data
Parameters
svcPointer to data service (data provider)
locationdata location/address in Gaudi Transient Store
useRootInTESFlag 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
locationData location/address in Gaudi Transient Store
useRootInTESFlag 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
svcPointer to data service (data provider)
locationDetector 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
locationDetector 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
svcPointer to data service (data provider)
locationDetector location/address in Gaudi Transient Store
Returns
Pointer to the detector object
Return values
NULLIf 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
locationDetector location/address in Gaudi Transient Store
Returns
Pointer to the detector object
Return values
NULLIf 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
svcPointer to data service (data provider)
locationdata location/address in Gaudi Transient Store
useRootInTESFlag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns
pointer to the data object.
Return values
NULLIf 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
locationdata location/address in Gaudi Transient Store
useRootInTESFlag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Returns
pointer to the data object.
Return values
NULLIf 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
GaudiExceptionfor Invalid Data Provider Service
GaudiExceptionfor invalid/unavailable data
Parameters
svcPointer to data service (data provider)
locationLocation in Gaudi Transient Event Store
useRootInTESFlag 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
GaudiExceptionfor Invalid Data Provider Service
GaudiExceptionfor invalid/unavailable data
Parameters
locationLocation in Gaudi Transient Event Store
useRootInTESFlag 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 )
{
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, FuncMinimum, SequencerTimerTool, and EqSolver.

Definition at line 174 of file GaudiTool.cpp.

{
// initialize the base class
if ( sc.isFailure() ) { return sc; }
// increment the counter
// 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
svcPointer to data provider service
objectData object or container to be registered
addressAddress in Gaudi Event Transient Store ("/Event" could be omitted )
useRootInTESFlag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Exceptions
GaudiExceptionfor invalid event data service
GaudiExceptionfor invalid object
GaudiExceptionfor error result from event data service
Returns
StatusCode
Return values
StatusCode::SUCCESSData was successfully placed in the TES.
StatusCode::FAILUREFailed 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
objectData object or container to be registered
addressAddress in Gaudi Event Transient Store ("/Event" could be omitted )
useRootInTESFlag to turn on(TRUE) off(FALSE) the use of the RootInTES location property
Exceptions
GaudiExceptionfor invalid event data service
GaudiExceptionfor invalid object
GaudiExceptionfor error result from event data service
Returns
StatusCode
Return values
StatusCode::SUCCESSData was successfully placed in the TES.
StatusCode::FAILUREFailed 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
mutableprivate

pointer to Chrono & Stat Service

Definition at line 710 of file GaudiTool.h.

IAlgContextSvc* GaudiTool::m_contextSvc
mutableprivate

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
mutableprivate

pointer to Detector Data Service

Definition at line 708 of file GaudiTool.h.

INTupleSvc* GaudiTool::m_evtColSvc
mutableprivate

pointer to the event tag collection service

Definition at line 704 of file GaudiTool.h.

IDataProviderSvc* GaudiTool::m_evtSvc
mutableprivate

pointer to Event Data Service

Definition at line 706 of file GaudiTool.h.

IHistogramSvc* GaudiTool::m_histoSvc
mutableprivate

pointer for histogram service

Definition at line 714 of file GaudiTool.h.

IIncidentSvc* GaudiTool::m_incSvc
mutableprivate

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
mutableprivate

pointer to the N-Tuple service

Definition at line 702 of file GaudiTool.h.

bool GaudiTool::s_enableSummary = true
staticprivate

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:

Generated at Wed Dec 4 2013 14:33:16 for Gaudi Framework, version v24r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004