|
Gaudi Framework, version v22r2 |
| Home | Generated: Tue May 10 2011 |
The useful base class for tools. More...
#include <GaudiTools/GaudiTool.h>


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 | get (const std::string &location, const bool useRootInTES=true) const |
| Templated access to the data from Gaudi Event 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 > | |
| TYPE * | getDet (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. | |
Protected Member Functions | |
| GaudiTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| Standard constructor. | |
| virtual | ~GaudiTool () |
| destructor, virtual and protected | |
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" | |
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" retrive 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 shrinkage of existing code lines.
Definition at line 99 of file GaudiTool.h.
| GaudiTool::GaudiTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent | ||
| ) | [protected] |
Standard constructor.
| type | tool type (useless) |
| name | tool name |
| parent | pointer to parent object (service, algorithm or tool) |
Definition at line 114 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 141 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
| IChronoStatSvc * GaudiTool::chronoSvc | ( | ) | const |
accessor to Chrono & Stat Service
Definition at line 246 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
Definition at line 269 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
Definition at line 188 of file GaudiTool.cpp.
{
if ( 0 == m_detSvc )
{
m_detSvc =
svc<IDataProviderSvc>( GaudiToolServices::s_DetectorDataSvc , true ) ;
}
return m_detSvc ;
}
| INTupleSvc * GaudiTool::evtColSvc | ( | ) | const |
Access the standard event collection service.
Definition at line 211 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
Definition at line 222 of file GaudiTool.cpp.
{
if ( 0 == m_evtSvc )
{
m_evtSvc =
svc<IDataProviderSvc>( GaudiToolServices::s_EventDataSvc , true ) ;
}
return m_evtSvc ;
}
| 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" ) ;
| 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 |
| true | Data object or container exists and implements a proper interface |
| true | Failed to locate the data object or container |
Reimplemented from GaudiCommon< AlgTool >.
Definition at line 386 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , useRootInTES ) ;
}
| 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" ) ;
| location | Address in Gaudi Transient Event Store |
| true | Data object or container exists and implements a proper interface |
| true | Failed to locate the data object or container |
Definition at line 416 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::exist<TYPE> ( evtSvc() , location , useRootInTES ) ;
}
| 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" ) ;
| svc | Pointer to data service (data provider) |
| location | Address in Gaudi Transient Detector Store |
| true | Detector object exists and implements a proper interface |
| false | Failed to locate the data object |
Definition at line 439 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , false ) ;
}
| 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" ) ;
| location | Address in Gaudi Transient Detector Store |
| true | Detector object exists and implements a proper interface |
| false | Failed to locate the data object |
Definition at line 461 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::exist<TYPE> ( detSvc() , location , false ) ;
}
| StatusCode GaudiTool::finalize | ( | void | ) | [virtual] |
standard finalization method
Reimplemented from GaudiCommon< AlgTool >.
Reimplemented in GaudiHistoTool, GaudiTupleTool, SequencerTimerTool, EqSolver, FuncMinimum, GaudiHistos< GaudiTool >, and GaudiTuples< GaudiHistoTool >.
Definition at line 163 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;
}
| 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" );
| GaudiException | for Invalid Data Provider Service |
| GaudiException | for invalid/unavailable data |
| 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 |
Reimplemented from GaudiCommon< AlgTool >.
Definition at line 272 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , useRootInTES ) ;
}
| 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 );
| location | Data location/address in Gaudi Transient Store |
| useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property |
Definition at line 306 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::get<TYPE> ( evtSvc() , location , useRootInTES ) ;
}
| 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" );
| svc | Pointer to data service (data provider) |
| location | Detector location/address in Gaudi Transient Store |
Definition at line 331 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , false ) ;
}
| 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" );
| location | Detector location/address in Gaudi Transient Store |
Definition at line 355 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::get<TYPE> ( detSvc() , location , false ) ;
}
| 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" ) ;
| GaudiException | for Invalid Data Provider Service |
| GaudiException | for invalid/unavailable data |
| 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 |
Reimplemented from GaudiCommon< AlgTool >.
Definition at line 494 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( svc , location , useRootInTES ) ;
}
| 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" ) ;
| GaudiException | for Invalid Data Provider Service |
| GaudiException | for invalid/unavailable data |
| location | Location in Gaudi Transient Event Store |
| useRootInTES | Flag to turn on(TRUE) off(FALSE) the use of the RootInTES location property |
Definition at line 528 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( evtSvc() , location , useRootInTES ) ;
}
| IHistogramSvc * GaudiTool::histoSvc | ( | ) | const |
acessor to the histogram service
Definition at line 258 of file GaudiTool.cpp.
{
if ( 0 == m_histoSvc )
{
m_histoSvc = svc<IHistogramSvc> ( GaudiToolServices::s_HistoSvc, true ) ;
}
return m_histoSvc;
}
| IIncidentSvc * GaudiTool::incSvc | ( | ) | const |
Definition at line 234 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
Reimplemented from GaudiCommon< AlgTool >.
Reimplemented in GaudiHistoTool, GaudiTupleTool, SequencerTimerTool, EqSolver, FuncMinimum, GaudiHistos< GaudiTool >, and GaudiTuples< GaudiHistoTool >.
Definition at line 148 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.
Definition at line 200 of file GaudiTool.cpp.
{
if ( 0 == m_ntupleSvc )
{
m_ntupleSvc = svc<INTupleSvc>( "NTupleSvc" , true ) ;
}
return m_ntupleSvc ;
}
| 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.
| 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 |
| GaudiException | for invalid event data service |
| GaudiException | for invalid object |
| GaudiException | for error result from event data service |
| StatusCode::SUCCESS | Data was successfully placed in the TES. |
| StatusCode::FAILURE | Failed to store data in the TES. |
Reimplemented from GaudiCommon< AlgTool >.
Definition at line 196 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.
MCHits * hits = put( new MCHits(), "/Event/MC/Hits" );
| 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 |
| GaudiException | for invalid event data service |
| GaudiException | for invalid object |
| GaudiException | for error result from event data service |
| StatusCode::SUCCESS | Data was successfully placed in the TES. |
| StatusCode::FAILURE | Failed to store data in the TES. |
Definition at line 232 of file GaudiTool.h.
{
return GaudiCommon<AlgTool>::put ( evtSvc() , object , address , useRootInTES ) ;
}
IChronoStatSvc* GaudiTool::m_chronoSvc [mutable, private] |
pointer to Chrono & Stat Service
Definition at line 571 of file GaudiTool.h.
IAlgContextSvc* GaudiTool::m_contextSvc [mutable, private] |
Definition at line 577 of file GaudiTool.h.
std::string GaudiTool::m_contextSvcName [private] |
Definition at line 579 of file GaudiTool.h.
IDataProviderSvc* GaudiTool::m_detSvc [mutable, private] |
pointer to Detector Data Service
Definition at line 569 of file GaudiTool.h.
INTupleSvc* GaudiTool::m_evtColSvc [mutable, private] |
pointer to the event tag collection service
Definition at line 565 of file GaudiTool.h.
IDataProviderSvc* GaudiTool::m_evtSvc [mutable, private] |
pointer to Event Data Service
Definition at line 567 of file GaudiTool.h.
IHistogramSvc* GaudiTool::m_histoSvc [mutable, private] |
pointer for histogram service
Definition at line 575 of file GaudiTool.h.
IIncidentSvc* GaudiTool::m_incSvc [mutable, private] |
Definition at line 573 of file GaudiTool.h.
const std::string GaudiTool::m_local [private] |
full tool name "type/name"
Definition at line 584 of file GaudiTool.h.
INTupleSvc* GaudiTool::m_ntupleSvc [mutable, private] |
pointer to the N-Tuple service
Definition at line 563 of file GaudiTool.h.