Gaudi Framework, version v20r2

Generated: 18 Jul 2008

GaudiTool Class Reference

#include <GaudiTools/GaudiTool.h>

Inheritance diagram for GaudiTool:

Inheritance graph
[legend]
Collaboration diagram for GaudiTool:

Collaboration graph
[legend]
List of all members.

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" 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.

Attention:
See the class GaudiCommon, which implements some of the common functionality between GaudiTool and GaudiAlgorithm
Author:
Vanya BELYAEV Ivan.Belyaev@itep.ru

Chris Jones Christopher.Rob.Jones@cern.ch

Date:
2003-07-07

Definition at line 99 of file GaudiTool.h.

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
void 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.
void 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>
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>
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>
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>
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
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"


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 114 of file GaudiTool.cpp.

References AlgTool::declareProperty(), m_contextSvcName, m_local, and GaudiToolLocal::s_InstanceCounter.

00117   : GaudiCommon<AlgTool> ( this_type , this_name , parent )
00118   //  services
00119   , m_ntupleSvc   ( 0 )
00120   , m_evtColSvc   ( 0 )
00121   , m_evtSvc      ( 0 )
00122   , m_detSvc      ( 0 )
00123   , m_chronoSvc   ( 0 )
00124   , m_incSvc      ( 0 )
00125   , m_histoSvc    ( 0 )
00126   , m_contextSvc  ( 0 ) // pointer to Algorithm Context Service
00127   , m_contextSvcName ( "AlgContextSvc" ) // Algorithm Context Service name 
00128   //
00129   , m_local       ( this_type + "/" + this_name )
00130 {
00131   declareProperty 
00132     ( "ContextService" , 
00133       m_contextSvcName , 
00134       "The name of Algorithm Context Service" ) ;
00135   // make instance counts
00136   GaudiToolLocal::s_InstanceCounter.increment ( m_local ) ;
00137 }

GaudiTool::~GaudiTool (  )  [protected, virtual]

destructor, virtual and protected

Definition at line 141 of file GaudiTool.cpp.

References m_local, and GaudiToolLocal::s_InstanceCounter.

00142 { 
00143   GaudiToolLocal::s_InstanceCounter.decrement ( m_local ) ; 
00144 }

GaudiTool::GaudiTool (  )  [private]

no public default constructor

GaudiTool::GaudiTool ( const GaudiTool  )  [private]

no public copy constructor


Member Function Documentation

StatusCode GaudiTool::initialize (  )  [virtual]

standard initialization method

See also:
AlgTool

IAlgTool

Returns:
status code

Reimplemented from GaudiCommon< AlgTool >.

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

Definition at line 148 of file GaudiTool.cpp.

References GaudiCommon< PBASE >::initialize(), StatusCode::isFailure(), m_local, and GaudiToolLocal::s_FinalizeCounter.

Referenced by FuncMinimum::initialize(), EqSolver::initialize(), and SequencerTimerTool::initialize().

00149 {
00150   // initialize the base class
00151   const StatusCode sc = GaudiCommon<AlgTool>::initialize() ;
00152   if ( sc.isFailure() ) { return sc; }
00153 
00154   // increment the counter
00155   GaudiToolLocal::s_FinalizeCounter.increment( m_local ) ;
00156 
00157   // return
00158   return sc;
00159 }

StatusCode GaudiTool::finalize (  )  [virtual]

standard finalization method

See also:
AlgTool

IAlgTool

Returns:
status code

Reimplemented from GaudiCommon< AlgTool >.

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

Definition at line 163 of file GaudiTool.cpp.

References GaudiCommon< AlgTool >::debug(), MSG::DEBUG, endreq(), GaudiCommon< PBASE >::finalize(), StatusCode::isFailure(), m_chronoSvc, m_detSvc, m_evtSvc, m_histoSvc, m_incSvc, m_local, GaudiCommon< AlgTool >::msgLevel(), and GaudiToolLocal::s_FinalizeCounter.

Referenced by FuncMinimum::finalize(), EqSolver::finalize(), and SequencerTimerTool::finalize().

00164 {
00165   if ( msgLevel(MSG::DEBUG) )
00166     debug() << " ==> Finalize the base class GaudiTool " << endreq;
00167 
00168   // clear "explicit services"
00169     m_evtSvc    = 0 ;
00170     m_detSvc    = 0 ;
00171     m_chronoSvc = 0 ;
00172     m_incSvc    = 0 ;
00173     m_histoSvc  = 0 ;
00174 
00175   // finalize the base class
00176   const StatusCode sc = GaudiCommon<AlgTool>::finalize() ;
00177   if ( sc.isFailure() ) { return sc; }
00178 
00179   // Decrement the counter
00180   GaudiToolLocal::s_FinalizeCounter.decrement( m_local ) ;
00181 
00182   // return
00183   return sc;
00184 }

INTupleSvc * GaudiTool::ntupleSvc (  )  const

Access the standard N-Tuple.

Returns:
pointer to N-Tuple service .

Definition at line 200 of file GaudiTool.cpp.

References m_ntupleSvc.

00201 {
00202   if ( 0 == m_ntupleSvc )
00203   {
00204     m_ntupleSvc = svc<INTupleSvc>( "NTupleSvc" , true ) ;
00205   }
00206   return m_ntupleSvc ;
00207 }

INTupleSvc * GaudiTool::evtColSvc (  )  const

Access the standard event collection service.

Returns:
pointer to the event collection service

Definition at line 211 of file GaudiTool.cpp.

References m_evtColSvc.

00212 {
00213   if ( 0 == m_evtColSvc )
00214   {
00215     m_evtColSvc = svc< INTupleSvc > ( "EvtTupleSvc" , true ) ;
00216   }
00217   return m_evtColSvc ;
00218 }

IDataProviderSvc * GaudiTool::detSvc (  )  const

accessor to detector service

Returns:
pointer to detector service

Definition at line 188 of file GaudiTool.cpp.

References m_detSvc, and GaudiToolServices::s_DetectorDataSvc.

Referenced by existDet(), and getDet().

00189 {
00190   if ( 0 == m_detSvc )
00191   {
00192     m_detSvc =
00193       svc<IDataProviderSvc>( GaudiToolServices::s_DetectorDataSvc , true ) ;
00194   }
00195   return m_detSvc ;
00196 }

IDataProviderSvc * GaudiTool::evtSvc (  )  const

accessor to event service service

Returns:
pointer to detector service

Definition at line 222 of file GaudiTool.cpp.

References m_evtSvc, and GaudiToolServices::s_EventDataSvc.

Referenced by exist(), get(), getOrCreate(), and put().

00223 {
00224   if ( 0 == m_evtSvc )
00225   {
00226     m_evtSvc =
00227       svc<IDataProviderSvc>( GaudiToolServices::s_EventDataSvc , true ) ;
00228   }
00229   return m_evtSvc ;
00230 }

IIncidentSvc * GaudiTool::incSvc (  )  const

accessor to Incident Service

Returns:
pointer to the Incident Service

Definition at line 234 of file GaudiTool.cpp.

References m_incSvc, and GaudiToolServices::s_IncidentSvc.

00235 {
00236   if ( 0 == m_incSvc )
00237   {
00238     m_incSvc =
00239       svc<IIncidentSvc> ( GaudiToolServices::s_IncidentSvc , true ) ;
00240   }
00241   return m_incSvc ;
00242 }

IChronoStatSvc * GaudiTool::chronoSvc (  )  const

accessor to Chrono & Stat Service

Returns:
pointer to the Chrono & Stat Service

Definition at line 246 of file GaudiTool.cpp.

References m_chronoSvc, and GaudiToolServices::s_ChronoStatSvc.

00247 {
00248   if ( 0 == m_chronoSvc )
00249   {
00250     m_chronoSvc =
00251       svc<IChronoStatSvc> ( GaudiToolServices::s_ChronoStatSvc , true ) ;
00252   }
00253   return m_chronoSvc ;
00254 }

IHistogramSvc * GaudiTool::histoSvc (  )  const

acessor to the histogram service

Returns:
pointer to the histogram service

Definition at line 258 of file GaudiTool.cpp.

References m_histoSvc, and GaudiToolServices::s_HistoSvc.

00259 {
00260   if ( 0 == m_histoSvc )
00261   {
00262     m_histoSvc = svc<IHistogramSvc> ( GaudiToolServices::s_HistoSvc, true ) ;
00263   }
00264   return m_histoSvc;
00265 }

IAlgContextSvc * GaudiTool::contextSvc (  )  const

acessor to the Algorithm Context Service

Returns:
pointer to the Algorithm Contetx Service

Definition at line 269 of file GaudiTool.cpp.

References m_contextSvc, and m_contextSvcName.

00270 {
00271   if ( 0 == m_contextSvc )
00272   {
00273     m_contextSvc = svc<IAlgContextSvc> ( m_contextSvcName , true ) ;
00274   }
00275   return m_contextSvc;
00276 }

void 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 behaviour can be suppressed by passing the arguement 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.

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 196 of file GaudiTool.h.

References GaudiCommon< PBASE >::put(), and GaudiCommon< AlgTool >::svc().

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

void 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 = new MCHits();
  put( 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 behaviour can be suppressed by passing the arguement 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 233 of file GaudiTool.h.

References evtSvc(), and GaudiCommon< PBASE >::put().

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

template<class TYPE>
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 behaviour can be suppressed by passing the arguement 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

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 272 of file GaudiTool.h.

References GaudiCommon< AlgTool >::svc().

00275   {
00276     return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , useRootInTES ) ;
00277   }

template<class TYPE>
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 behaviour can be suppressed by passing the arguement 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 305 of file GaudiTool.h.

References evtSvc().

00307   {
00308     return GaudiCommon<AlgTool>::get<TYPE> ( evtSvc() , location , useRootInTES ) ;
00309   }

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 330 of file GaudiTool.h.

References GaudiCommon< AlgTool >::svc().

00332   {
00333     return GaudiCommon<AlgTool>::get<TYPE> ( svc , location , false ) ;
00334   }

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 354 of file GaudiTool.h.

References detSvc().

00355   {
00356     return GaudiCommon<AlgTool>::get<TYPE> ( detSvc() , location , false ) ;
00357   }

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 behaviour can be suppressed by passing the arguement 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

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 385 of file GaudiTool.h.

References GaudiCommon< AlgTool >::svc().

00388   {
00389     return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , useRootInTES ) ;
00390   }

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 behaviour can be suppressed by passing the arguement 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 415 of file GaudiTool.h.

References evtSvc().

00417   {
00418     return GaudiCommon<AlgTool>::exist<TYPE> ( evtSvc() , location , useRootInTES ) ;
00419   }

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 438 of file GaudiTool.h.

References GaudiCommon< AlgTool >::svc().

00440   {
00441     return GaudiCommon<AlgTool>::exist<TYPE> ( svc , location , false ) ;
00442   }

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 460 of file GaudiTool.h.

References detSvc().

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

template<class TYPE, class TYPE2>
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 behaviour can be suppressed by passing the arguement 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

Reimplemented from GaudiCommon< AlgTool >.

Definition at line 492 of file GaudiTool.h.

References GaudiCommon< AlgTool >::svc().

00495   {
00496     return GaudiCommon<AlgTool>::getOrCreate<TYPE,TYPE2> ( svc , location , useRootInTES ) ;
00497   }

template<class TYPE, class TYPE2>
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 behaviour can be suppressed by passing the arguement 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 525 of file GaudiTool.h.

References evtSvc().

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

GaudiTool& GaudiTool::operator= ( const GaudiTool  )  [private]

no public assignment operator


Member Data Documentation

INTupleSvc* GaudiTool::m_ntupleSvc [mutable, private]

pointer to the N-Tuple service

Definition at line 560 of file GaudiTool.h.

Referenced by ntupleSvc().

INTupleSvc* GaudiTool::m_evtColSvc [mutable, private]

pointer to the event tag collection service

Definition at line 562 of file GaudiTool.h.

Referenced by evtColSvc().

IDataProviderSvc* GaudiTool::m_evtSvc [mutable, private]

pointer to Event Data Service

Definition at line 564 of file GaudiTool.h.

Referenced by evtSvc(), and finalize().

IDataProviderSvc* GaudiTool::m_detSvc [mutable, private]

pointer to Detector Data Service

Definition at line 566 of file GaudiTool.h.

Referenced by detSvc(), and finalize().

IChronoStatSvc* GaudiTool::m_chronoSvc [mutable, private]

pointer to Chrono & Stat Service

Definition at line 568 of file GaudiTool.h.

Referenced by chronoSvc(), and finalize().

IIncidentSvc* GaudiTool::m_incSvc [mutable, private]

pointer to Incident Service

Definition at line 570 of file GaudiTool.h.

Referenced by finalize(), and incSvc().

IHistogramSvc* GaudiTool::m_histoSvc [mutable, private]

pointer for histogram service

Definition at line 572 of file GaudiTool.h.

Referenced by finalize(), and histoSvc().

IAlgContextSvc* GaudiTool::m_contextSvc [mutable, private]

Algorithm Context Service.

Definition at line 574 of file GaudiTool.h.

Referenced by contextSvc().

std::string GaudiTool::m_contextSvcName [private]

Algorithm Context Service.

Definition at line 576 of file GaudiTool.h.

Referenced by contextSvc(), and GaudiTool().

const std::string GaudiTool::m_local [private]

full tool name "type/name"

Definition at line 581 of file GaudiTool.h.

Referenced by finalize(), GaudiTool(), initialize(), and ~GaudiTool().


The documentation for this class was generated from the following files:
Generated at Fri Jul 18 12:07:38 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004