The Gaudi Framework
v29r0 (ff2e7097)
|
Implements the common functionality between GaudiTools and GaudiAlgorithms. More...
#include <GaudiAlg/GaudiCommon.h>
Public Member Functions | |
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. More... | |
template<class TYPE > | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<class TOOL > | |
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. More... | |
template<class TOOL > | |
TOOL * | tool (const std::string &type, const IInterface *parent=0, bool create=true) const |
A useful method for the easy location of tools. More... | |
template<class SERVICE > | |
SmartIF< SERVICE > | svc (const std::string &name, const bool create=true) const |
A useful method for the easy location of services. More... | |
IUpdateManagerSvc * | updMgrSvc () const |
Short-cut to locate the Update Manager Service. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const |
Create and (re)-throw a given GaudiException. More... | |
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. More... | |
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. More... | |
const Statistics & | counters () const |
accessor to all counters More... | |
StatEntity & | counter (const std::string &tag) const |
accessor to certain counter by name More... | |
bool | typePrint () const |
Insert the actual C++ type of the algorithm/tool in the messages ? More... | |
bool | propsPrint () const |
Print properties at initialization ? More... | |
bool | statPrint () const |
Print statistical counters at finalization ? More... | |
bool | errorsPrint () const |
Print error counters at finalization ? More... | |
long | printStat (const MSG::Level level=MSG::ALWAYS) const |
perform the actual printout of statistical counters More... | |
long | printErrors (const MSG::Level level=MSG::ALWAYS) const |
perform the actual printout of error counters More... | |
long | printProps (const MSG::Level level=MSG::ALWAYS) const |
perform the actual printout of properties More... | |
template<class CallerClass > | |
void | registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=nullptr) |
register the current instance to the UpdateManagerSvc as a consumer for a condition. More... | |
template<class CallerClass , class CondType > | |
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. More... | |
template<class CallerClass > | |
void | registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL) |
just to avoid conflicts with the version using a pointer to a template class. More... | |
template<class CallerClass , class TargetClass > | |
void | registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL) |
register the current instance to the UpdateManagerSvc as a consumer for a condition. More... | |
StatusCode | runUpdate () |
asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident. More... | |
template<typename U = PBASE, class = typename std::enable_if<std::is_base_of<Algorithm, PBASE>::value, U>::type> | |
GaudiCommon (const std::string &name, ISvcLocator *pSvcLocator) | |
Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined if PBASE derives from Algorithm. More... | |
template<typename U = PBASE, class = typename std::enable_if<std::is_base_of<AlgTool, PBASE>::value, U>::type> | |
GaudiCommon (const std::string &type, const std::string &name, const IInterface *ancestor) | |
Tool constructor - SFINAE-ed to insure this constructor is only defined if PBASE derives from AlgTool. More... | |
StatusCode | initialize () override |
standard initialization method More... | |
StatusCode | finalize () override |
standard finalization method More... | |
StatusCode | release (const IInterface *interface) const |
Manual forced (and 'safe') release of the active tool or service. More... | |
const Services & | services () const |
get the list of aquired services More... | |
const std::string & | context () const |
Returns the "context" string. Used to identify different processing states. More... | |
const std::string & | rootInTES () const |
Returns the "rootInTES" string. More... | |
const std::string | fullTESLocation (const std::string &location, const bool useRootInTES) const |
Returns the full correct event location given the rootInTes settings. More... | |
Protected Types | |
using | base_class = PBASE |
typedef std::map< std::string, StatEntity > | Statistics |
the actual type of general counters More... | |
typedef std::map< std::string, unsigned int > | Counter |
the actual type error/warning counter More... | |
typedef std::vector< IAlgTool * > | AlgTools |
storage for active tools More... | |
typedef std::vector< SmartIF< IService > > | Services |
storage for active services More... | |
Protected Member Functions | |
~GaudiCommon () override=default | |
Destructor. More... | |
StatusCode | releaseTool (const IAlgTool *tool) const |
manual forced (and 'safe') release of the tool More... | |
StatusCode | releaseSvc (const IInterface *svc) const |
manual forced (and 'safe') release of the service More... | |
Protected Attributes | |
SmartIF< ICounterSummarySvc > | m_counterSummarySvc |
a pointer to the CounterSummarySvc More... | |
Static Protected Attributes | |
static const bool | IgnoreRootInTES = false |
Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods. More... | |
static const bool | UseRootInTES = true |
Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods. More... | |
Private Member Functions | |
GaudiCommon ()=delete | |
GaudiCommon (const GaudiCommon &)=delete | |
GaudiCommon & | operator= (const GaudiCommon &)=delete |
void | printErrorHandler (Gaudi::Details::PropertyBase &) |
handler for "ErrorPrint" property More... | |
void | printPropsHandler (Gaudi::Details::PropertyBase &) |
handler for "PropertiesPrint" property More... | |
void | printStatHandler (Gaudi::Details::PropertyBase &) |
handler for "StatPrint" property More... | |
void | addToServiceList (SmartIF< IService > svc) const |
Add the given service to the list of acquired services. More... | |
void | initGaudiCommonConstructor (const IInterface *parent=nullptr) |
Constructor initializations. More... | |
Private Attributes | |
AlgTools | m_managedTools |
List of active tools. More... | |
Services | m_services |
List of active services. More... | |
Counter | m_errors |
Counter of errors. More... | |
Counter | m_warnings |
counter of warnings More... | |
Counter | m_infos |
counter of infos More... | |
Counter | m_exceptions |
Counter of exceptions. More... | |
Statistics | m_counters |
General counters. More... | |
IUpdateManagerSvc * | m_updMgrSvc = nullptr |
Pointer to the Update Manager Service instance. More... | |
Gaudi::Property< bool > | m_errorsPrint {this, "ErrorsPrint", true, "print the statistics of errors/warnings/exceptions"} |
Gaudi::Property< bool > | m_propsPrint {this, "PropertiesPrint", false, "print the properties of the component"} |
Gaudi::Property< bool > | m_statPrint {this, "StatPrint", true, "print the table of counters"} |
Gaudi::Property< bool > | m_typePrint {this, "TypePrint", true, "add the actual C++ component type into the messages"} |
Gaudi::Property< std::string > | m_context {this, "Context", {}, "note: overridden by parent settings"} |
Gaudi::Property< std::string > | m_rootInTES {this, "RootInTES", {}, "note: overridden by parent settings"} |
Gaudi::Property< std::string > | m_header |
Gaudi::Property< std::string > | m_format1 |
Gaudi::Property< std::string > | m_format2 |
Gaudi::Property< bool > | m_useEffFormat |
Gaudi::Property< std::vector< std::string > > | m_counterList |
Gaudi::Property< std::vector< std::string > > | m_statEntityList |
Implements the common functionality between GaudiTools and GaudiAlgorithms.
Definition at line 80 of file GaudiCommon.h.
|
protected |
storage for active tools
Definition at line 115 of file GaudiCommon.h.
|
protected |
Definition at line 83 of file GaudiCommon.h.
|
protected |
the actual type error/warning counter
Definition at line 113 of file GaudiCommon.h.
|
protected |
storage for active services
Definition at line 117 of file GaudiCommon.h.
|
protected |
the actual type of general counters
Definition at line 111 of file GaudiCommon.h.
|
inline |
Algorithm constructor - the SFINAE constraint below ensures that this is constructor is only defined if PBASE derives from Algorithm.
Definition at line 611 of file GaudiCommon.h.
|
inline |
Tool constructor - SFINAE-ed to insure this constructor is only defined if PBASE derives from AlgTool.
Definition at line 618 of file GaudiCommon.h.
|
overrideprotecteddefault |
Destructor.
|
privatedelete |
|
privatedelete |
|
private |
Add the given service to the list of acquired services.
Definition at line 362 of file GaudiCommon.icpp.
|
inline |
Assertion - throw exception if the given condition is not fulfilled.
Exception | for invalid condition |
ok | Condition which should be "true" |
message | Message to be associated with the exception |
Definition at line 200 of file GaudiCommonImp.h.
|
inline |
Assertion - throw exception if the given condition is not fulfilled.
Exception | for invalid condition |
ok | Condition which should be "true" |
message | Message to be associated with the exception |
Definition at line 208 of file GaudiCommonImp.h.
|
inline |
Returns the "context" string. Used to identify different processing states.
Definition at line 704 of file GaudiCommon.h.
|
inline |
accessor to certain counter by name
tag | counter name |
Definition at line 484 of file GaudiCommon.h.
|
inline |
StatusCode GaudiCommon< PBASE >::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.
Also performs statistical analysis of the error messages and suppression after the defined number of error instances.
msg | Error message |
st | StatusCode to return |
mx | Maximum number of printouts for this message |
Definition at line 383 of file GaudiCommon.icpp.
|
inline |
void GaudiCommon< PBASE >::Exception | ( | const std::string & | msg, |
const GaudiException & | exc, | ||
const StatusCode | sc = StatusCode( StatusCode::FAILURE, true ) |
||
) | const |
Create and (re)-throw a given GaudiException.
GaudiException | always thrown! |
msg | Exception message |
exc | (previous) exception of type GaudiException |
Definition at line 479 of file GaudiCommon.icpp.
void GaudiCommon< PBASE >::Exception | ( | const std::string & | msg, |
const std::exception & | exc, | ||
const StatusCode | sc = StatusCode( StatusCode::FAILURE, true ) |
||
) | const |
Create and (re)-throw a given exception.
std::exception | always thrown! |
msg | Exception message |
exc | (previous) exception of type std::exception |
sc | StatusCode |
Definition at line 492 of file GaudiCommon.icpp.
void GaudiCommon< PBASE >::Exception | ( | const std::string & | msg = "no message" , |
const StatusCode | sc = StatusCode( StatusCode::FAILURE, true ) |
||
) | const |
Create and throw an exception with the given message.
GaudiException | always thrown! |
msg | Exception message |
sc | StatusCode |
Definition at line 505 of file GaudiCommon.icpp.
|
inline |
Check the existence of a data object or container in the Gaudi Transient Event Store.
svc | Pointer to data provider service |
location | Address in Gaudi Transient 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 |
Definition at line 78 of file GaudiCommonImp.h.
|
override |
standard finalization method
Definition at line 208 of file GaudiCommon.icpp.
|
inline |
Returns the full correct event location given the rootInTes settings.
Definition at line 24 of file GaudiCommonImp.h.
|
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
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 |
Definition at line 51 of file GaudiCommonImp.h.
|
inline |
Quicker version of the get function which bypasses the check on the retrieved data.
Definition at line 65 of file GaudiCommonImp.h.
|
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.
GaudiException | for Invalid Data Provider Service |
GaudiException | for invalid/unavailable data |
svc | Pointer to data provider service |
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 95 of file GaudiCommonImp.h.
StatusCode GaudiCommon< PBASE >::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.
Also performs statistical analysis of the info messages and suppression after the defined number of instances.
msg | Info message |
st | StatusCode to return |
mx | Maximum number of printouts for this message |
Definition at line 423 of file GaudiCommon.icpp.
|
private |
Constructor initializations.
Definition at line 65 of file GaudiCommon.icpp.
|
override |
standard initialization method
Definition at line 114 of file GaudiCommon.icpp.
|
privatedelete |
StatusCode GaudiCommon< PBASE >::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.
msg | Message to print |
st | StatusCode to return |
lev | Printout level for the given message |
Definition at line 443 of file GaudiCommon.icpp.
|
private |
handler for "ErrorPrint" property
Definition at line 629 of file GaudiCommon.icpp.
long GaudiCommon< PBASE >::printErrors | ( | const MSG::Level | level = MSG::ALWAYS | ) | const |
perform the actual printout of error counters
level | The message level to print at |
Definition at line 547 of file GaudiCommon.icpp.
long GaudiCommon< PBASE >::printProps | ( | const MSG::Level | level = MSG::ALWAYS | ) | const |
perform the actual printout of properties
perform the printout of properties
level | The message level to print at |
Definition at line 574 of file GaudiCommon.icpp.
|
private |
handler for "PropertiesPrint" property
Definition at line 643 of file GaudiCommon.icpp.
long GaudiCommon< PBASE >::printStat | ( | const MSG::Level | level = MSG::ALWAYS | ) | const |
perform the actual printout of statistical counters
level | The message level to print at |
Definition at line 518 of file GaudiCommon.icpp.
|
private |
handler for "StatPrint" property
Definition at line 657 of file GaudiCommon.icpp.
|
inline |
DataObject * GaudiCommon< PBASE >::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.
svc | Pointer to data provider service |
object | Data object or container to be registered |
location | Location 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 597 of file GaudiCommon.icpp.
|
inline |
register the current instance to the UpdateManagerSvc as a consumer for a condition.
condition | the path inside the Transient Detector Store to the condition object. |
mf | optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitly provide the class name to the method. StatusCode MyAlg::initialize(){ // ... registerCondition("/dd/Conditions/Readout/MyDet/MyCond",&MyAlg::i_CallBack); registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond"); // ... } |
Definition at line 528 of file GaudiCommon.h.
|
inline |
register the current instance to the UpdateManagerSvc as a consumer for a condition.
This version of the method allow the user to specify where to put a copy of the pointer to the condition object.
condition | the path inside the Transient Detector Store to the condition object. |
condPtrDest | pointer to fill with the location of the condition object. Note: the pointer can be safely used only in the execute method or in the member function triggered by the update. |
mf | optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitly provide the class name to the method. // ... public: virtual StatusCode i_CallBack(); private: Condition *m_MyCond; SpecialCondition *m_MyOtherCond; // ... }; StatusCode MyAlg::initialize(){ // ... registerCondition("/dd/Conditions/Readout/MyDet/MyCond",m_MyCond,&MyAlg::i_CallBack); registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond",m_MyOtherCond); // ... } |
Definition at line 563 of file GaudiCommon.h.
|
inline |
just to avoid conflicts with the version using a pointer to a template class.
Definition at line 570 of file GaudiCommon.h.
|
inline |
register the current instance to the UpdateManagerSvc as a consumer for a condition.
condition | the path inside the Transient Detector Store to the condition object. |
mf | optional pointer to the member function to call when the condition object is updated. If the pointer is omitted the user must explicitly provide the class name to the method. StatusCode MyAlg::initialize(){ // ... registerCondition("/dd/Conditions/Readout/MyDet/MyCond",&MyAlg::i_CallBack); registerCondition<MyAlg>("/dd/Conditions/Readout/MyDet/MyOtherCond"); // ... } |
Definition at line 590 of file GaudiCommon.h.
StatusCode GaudiCommon< PBASE >::release | ( | const IInterface * | interface | ) | const |
Manual forced (and 'safe') release of the active tool or service.
interface | Interface pointer to the interface to be released |
StatusCode::SUCCESS | Tool or service was successfully released |
StatusCode::FAILURE | Error releasing too or service |
Definition at line 287 of file GaudiCommon.icpp.
|
protected |
manual forced (and 'safe') release of the service
Definition at line 340 of file GaudiCommon.icpp.
|
protected |
manual forced (and 'safe') release of the tool
Definition at line 303 of file GaudiCommon.icpp.
|
inline |
Returns the "rootInTES" string.
Used as the directory root in the TES for which all data access refers to (both saving and retrieving).
Definition at line 708 of file GaudiCommon.h.
|
inline |
asks the UpdateManagerSvc to perform an update of the instance (if needed) without waiting the next BeginEvent incident.
It is useful if the instance can be instantiated after a BeginEvent incident, and used before the next one (for example with tools).
Definition at line 605 of file GaudiCommon.h.
|
inline |
|
inline |
|
inline |
A useful method for the easy location of services.
GaudiException | for error in Algorithms::service |
GaudiException | for invalid service |
name | service type name |
create | Flag for creation of non-existing services |
Definition at line 158 of file GaudiCommonImp.h.
|
inline |
Useful method for the easy location of tools.
GaudiException | for invalid Tool Service |
GaudiException | for error from Tool Service |
GaudiException | for invalid tool |
type | Tool type |
name | Tool name |
parent | Tool parent |
create | Flag for creation of nonexisting tools |
Definition at line 108 of file GaudiCommonImp.h.
|
inline |
A useful method for the easy location of tools.
GaudiException | for invalid Tool Service |
GaudiException | for error from Tool Service |
GaudiException | for invalid tool |
type | Tool type, could be of "Type/Name" format |
parent | Tool parent |
create | Flag for creation of non-existing tools |
Definition at line 134 of file GaudiCommonImp.h.
|
inline |
Insert the actual C++ type of the algorithm/tool in the messages ?
Definition at line 488 of file GaudiCommon.h.
|
inline |
Short-cut to locate the Update Manager Service.
Definition at line 189 of file GaudiCommonImp.h.
StatusCode GaudiCommon< PBASE >::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.
Also performs statistical analysis of the warning messages and suppression after the defined number of error instances.
msg | Warning message |
st | StatusCode to return |
mx | Maximum number of printouts for this message |
Definition at line 403 of file GaudiCommon.icpp.
|
staticprotected |
Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.
If used with cause the RootInTES option to be IGNORED.
Useful to aid with code readability. e.g.
Definition at line 94 of file GaudiCommon.h.
|
private |
Definition at line 748 of file GaudiCommon.h.
|
private |
Definition at line 765 of file GaudiCommon.h.
|
mutableprivate |
General counters.
Definition at line 737 of file GaudiCommon.h.
|
protected |
a pointer to the CounterSummarySvc
Definition at line 122 of file GaudiCommon.h.
|
mutableprivate |
Counter of errors.
Definition at line 729 of file GaudiCommon.h.
|
private |
Definition at line 743 of file GaudiCommon.h.
|
mutableprivate |
Counter of exceptions.
Definition at line 735 of file GaudiCommon.h.
|
private |
Definition at line 755 of file GaudiCommon.h.
|
private |
Definition at line 758 of file GaudiCommon.h.
|
private |
Definition at line 751 of file GaudiCommon.h.
|
mutableprivate |
counter of infos
Definition at line 733 of file GaudiCommon.h.
|
mutableprivate |
List of active tools.
Definition at line 724 of file GaudiCommon.h.
|
private |
Definition at line 744 of file GaudiCommon.h.
|
private |
Definition at line 749 of file GaudiCommon.h.
|
mutableprivate |
List of active services.
Definition at line 726 of file GaudiCommon.h.
|
private |
Definition at line 767 of file GaudiCommon.h.
|
private |
Definition at line 745 of file GaudiCommon.h.
|
private |
Definition at line 746 of file GaudiCommon.h.
|
mutableprivate |
Pointer to the Update Manager Service instance.
Definition at line 740 of file GaudiCommon.h.
|
private |
Definition at line 762 of file GaudiCommon.h.
|
mutableprivate |
counter of warnings
Definition at line 731 of file GaudiCommon.h.
|
staticprotected |
Simple definition to be used with the new useRootInTES argument get<TYPE> and put methods.
If used with cause the RootInTES option to be USED
Useful to aid with code readability. e.g.
Definition at line 106 of file GaudiCommon.h.