| The Gaudi Framework v32r1 (f65d50dc)

Namespaces | Classes | Functions
Gaudi Namespace Reference

Header file for std:chrono::duration-based Counters. More...

## Namespaces
| Accumulators
| Efficient counter implementations for Gaudi.
| CommonGaudiConfigurables
| Concurrency
| Configuration
| CounterSummary
| cpp17
| details
| Details
| Functional
| Guards
| Guards.h GaudiKernel/Guards.h Collection of very simple classes which allows to execution of some functions within the given well-defined and exception-safe context.
| Histos
| collection of simple utilities to deal with histograms
| Hive
| iid_cast_details
| Interfaces
| Main
| meta
| Parsers
| PluginService
| See Gaudi::PluginService.
| ReturnCode
| ApplicationMgr return code definitions.
| StateMachine
| tagged_bool_ns
| Timers
| Units
| Utils

## Classes
class | _ConfigurablesModule
class | Algorithm
| Base class from which all concrete algorithm classes should be derived. More...
class | Application
| Gaudi application entry point. More...
class | Axis
| An IAxis represents a binned histogram axis. More...
class | BootSvcLocator
| A dual-stage boostrap mechanism is used to ensure an orderly startup of the ApplicationMgr. More...
class | c_opt_t
struct | ContainerSection
class | DataHandle
struct | fullMatch_t
class | Generic1D
| Common AIDA implementation stuff for histograms and profiles using ROOT implementations. More...
class | Generic2D
| Common AIDA implementation stuff for histograms and profiles using ROOT implementations. More...
class | Generic3D
| Common AIDA implementation stuff for histograms and profiles using ROOT implementations. More...
class | Histo1DDef
| Simple helper class for description of 1D-histogram The class is targeted to act as the primary "histogram property", but clearly have significantly wider application range. More...
class | Histogram1D
| AIDA implementation for 1 D histograms using ROOT THD1. More...
class | Histogram2D
| AIDA implementation for 2 D histograms using ROOT THD2. More...
class | Histogram3D
| AIDA implementation for 3 D histograms using ROOT THD2. More...
class | HistogramBase
| Common base class for all histograms Use is solely functional to minimize dynamic_casts inside HistogramSvc. More...
class | IDataConnection
| ABC describing basic data connection. More...
class | IFileCatalog
| File catalog interface. More...
class | IFileCatalogMgr
| File catalog manager. More...
class | IIODataManager
struct | interface_list
struct | interface_list_append
struct | interface_list_append< interface_list< Is... >, I >
struct | interface_list_cat
struct | interface_list_cat< interface_list< I... > >
struct | interface_list_cat< interface_list< I1... >, interface_list< I2... > >
struct | interface_list_cat< interface_list< I1... >, interface_list< I2... >, Others... >
struct | InterfaceId
| Class to handle automatically the versioning of the interfaces when they are inheriting from other interfaces. More...
class | IODataManager
class | ISignalMonitor
| Interface for the service that monitors the occurrences of system signals. More...
struct | majorMatch_t
class | MetaDataSvc
class | MultiFileCatalog
| This class constitutes the core of the XML based FileCatalog API for using POOL within Gaudi. More...
class | NamedRange_
class | ParticlePropertySvc
| This service provides access to particle properties. More...
class | PoolTool
class | Profile1D
| AIDA implementation for 1 D profiles using ROOT TProfile. More...
class | Profile2D
| AIDA implementation for 2 D profiles using ROOT TProfile2D. More...
class | Property
| Implementation of property with value of concrete type. More...
class | Property< TYPE(&)[N], VERIFIER, HANDLERS >
class | Property< TYPE[N], VERIFIER, HANDLERS >
class | Range_
| Useful class for representation of "sequence" of the objects through the range of valid iterators. More...
struct | RangeBase_
| helper class to simplify the dealing with ranges in Python More...
class | RootAddress
| Description: More...
class | RootCnvSvc
| Description: More...
class | RootConnectionSetup
class | RootConverter
| Description: Definition of the ROOT data converter. More...
class | RootDatabaseCnv
| Statistics file converter class definition. More...
class | RootDatabaseMerger
class | RootDataConnection
| Concrete implementation of the IDataConnection interface to access ROOT files. More...
class | RootDirectoryCnv
| Description: NTuple directory converter class definition Definition of the converter to manage the directories in an database representing N-Tuples. More...
struct | RootEventExtractor
class | RootEvtSelector
| Concrete event selector implementation to access ROOT files. More...
class | RootEvtSelectorContext
| ROOT specific event selector context. More...
class | RootNTupleCnv
| NTuple converter class definition for NTuples writted/read using ROOT. More...
class | RootNTupleDescriptor
| Description: More...
struct | RootObjectRefs
| Persistent reference object containing all leafs and links corresponding to a Gaudi DataObject. More...
class | RootPerfMonSvc
| Description: More...
struct | RootRef
| Persistent reference object. More...
class | RootStatCnv
| Description: Base class converter for N-tuples and related classes. More...
class | RootTool
| Description: More...
class | Sequence
class | SerialTaskQueue
| Class for a generic serial queue of tasks (modeled on the Intel Threading Building Blocks Design Pattern "Local Serializer"). More...
class | StatEntity
| backward compatible StatEntity class. More...
class | StringKey
| The helper class to represent the efficient "key" for access. More...
class | SysProcStat
class | Time
| Based on seal::Time. More...
class | TimeSpan
| Based on seal::TimeSpan. More...
class | XMLFileCatalog
| This class constitutes the core of the XML based FileCatalog API for POOL. More...

## Functions
template<class Q , class T >
T * | getRepresentation (const Q &hist)
std::pair< DataObject *, AIDA::IHistogram1D * > | createH1D (const AIDA::IHistogram1D &hist)
| Copy constructor. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | createH1D (const std::string &title, int nBins=10, double lowerEdge=0., double upperEdge=1.)
| Creator for 1D histogram with fixed bins. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | createH1D (const std::string &title, const Edges &e)
| Creator for 1D histogram with variable bins. More...
std::pair< DataObject *, AIDA::IHistogram2D * > | createH2D (const AIDA::IHistogram2D &hist)
| Copy constructor. More...
std::pair< DataObject *, AIDA::IHistogram2D * > | createH2D (TH2D *rep)
| "Adopt" constructor More...
std::pair< DataObject *, AIDA::IHistogram2D * > | createH2D (const std::string &title, int binsX, double iminX, double imaxX, int binsY, double iminY, double imaxY)
| Creator for 2 D histograms with fixed bins. More...
std::pair< DataObject *, AIDA::IHistogram2D * > | createH2D (const std::string &title, const Edges &eX, const Edges &eY)
| Creator for 2 D histograms with variable bins. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | slice1DX (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D slice from 2D histogram. More...
std::pair< DataObject *, AIDA::IProfile1D * > | profile1DX (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D profile in X from 2D histogram. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | project1DX (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D projection in X from 2D histogram. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | slice1DY (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D slice from 2D histogram. More...
std::pair< DataObject *, AIDA::IProfile1D * > | profile1DY (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D profile in Y from 2D histogram. More...
std::pair< DataObject *, AIDA::IHistogram1D * > | project1DY (const std::string &name, const AIDA::IHistogram2D &h, int firstbin, int lastbin)
| Create 1D projection in Y from 2D histogram. More...
std::pair< DataObject *, AIDA::IHistogram3D * > | createH3D (const AIDA::IHistogram3D &hist)
| Copy constructor. More...
std::pair< DataObject *, AIDA::IHistogram3D * > | createH3D (const std::string &title, int nBinsX, double xlow, double xup, int nBinsY, double ylow, double yup, int nBinsZ, double zlow, double zup)
| Create 3D histogram with fixed bins. More...
std::pair< DataObject *, AIDA::IHistogram3D * > | createH3D (const std::string &title, const Edges &eX, const Edges &eY, const Edges &eZ)
| Create 3D histogram with variable bins. More...
std::pair< DataObject *, AIDA::IProfile1D * > | createProf1D (const AIDA::IProfile1D &hist)
| Copy constructor. More...
std::pair< DataObject *, AIDA::IProfile1D * > | createProf1D (const std::string &title, int nBins, double xlow, double xup, double ylow, double yup, const std::string &opt="")
| Creator of 1D profile with fixed bins. More...
std::pair< DataObject *, AIDA::IProfile1D * > | createProf1D (const std::string &title, const Edges &e, double ylow, double yup, const std::string &opt="")
| Creator of 1D profile with variable bins. More...
std::pair< DataObject *, AIDA::IProfile2D * > | createProf2D (const AIDA::IProfile2D &hist)
| Copy constructor. More...
std::pair< DataObject *, AIDA::IProfile2D * > | createProf2D (const std::string &title, int binsX, double iminX, double imaxX, int binsY, double iminY, double imaxY, double lowerValue, double upperValue)
| Creator for 2 D profile with fixed bins. More...
std::pair< DataObject *, AIDA::IProfile2D * > | createProf2D (const std::string &title, const Edges &eX, const Edges &eY, double lowerValue, double upperValue)
| Creator for 2 D profile with variable bins. More...
StatusCode | setAppReturnCode (SmartIF< IProperty > &appmgr, int value, bool force=false)
| Set the application return code. More...
int | getAppReturnCode (const SmartIF< IProperty > &appmgr)
| Get the application (current) return code. More...
GAUDI_API IAppMgrUI * | createApplicationMgrEx (const std::string &dllname, const std::string &factname)
GAUDI_API IAppMgrUI * | createApplicationMgr (const std::string &dllname, const std::string &factname)
GAUDI_API IAppMgrUI * | createApplicationMgr (const std::string &dllname)
GAUDI_API IAppMgrUI * | createApplicationMgr ()
GAUDI_API IInterface * | createInstance (const std::string &name, const std::string &factname, const std::string &ddlname)
GAUDI_API ISvcLocator * | svcLocator ()
GAUDI_API ISvcLocator * | setInstance (ISvcLocator *newInstance)
| Set new instance of service locator. More...
GAUDI_API IAppMgrUI * | setInstance (IAppMgrUI *newInstance)
| Set new instance of service locator. More...
template<typename... lambda_ts>
auto | overload (lambda_ts &&... lambdas)
GAUDI_API void | pushCurrentDataObject (DataObject **pobjAddr)
GAUDI_API void | popCurrentDataObject ()
GAUDI_API DataObject * | getCurrentDataObject ()
template<typename... Is>
std::vector< std::string > | getInterfaceNames (Gaudi::interface_list< Is... >)
template<typename... Is, typename P >
void * | iid_cast (const InterfaceID &tid, Gaudi::interface_list< Is... >, P *ptr)
template<typename TARGET >
TARGET * | Cast (IInterface *i)
| Cast a IInterface pointer to an IInterface specialization (TARGET). More...
template<typename TARGET >
const TARGET * | Cast (const IInterface *i)
| Cast a IInterface pointer to an IInterface specialization (TARGET). More...
template<class CONTAINER >
NamedRange_< CONTAINER > | range (const CONTAINER &cnt, std::string name)
| simple function to create the named range from arbitrary container More...
template<class T , class TP , class V , class H >
bool | operator== (const T &v, const Property< TP, V, H > &p)
| delegate (value == property) to property operator== More...
template<class T , class TP , class V , class H >
bool | operator!= (const T &v, const Property< TP, V, H > &p)
| delegate (value != property) to property operator!= More...
template<class T , class TP , class V , class H >
decltype(auto) | operator+ (const T &v, const Property< TP, V, H > &p)
| implemantation of (value + property) More...
template<class CONTAINER >
Range_< CONTAINER > | range (const CONTAINER &cnt)
| simple function to create the range from the arbitrary container More...
GAUDI_API void | Sleep (int sec)
| Simple sleep function. More...
GAUDI_API void | NanoSleep (long long nsec)
| Small variation on the sleep function for nanoseconds sleep. More...
template<unsigned int N>
bool | operator== (const Gaudi::StringKey &key1, const char(&key2)[N])
| equality operator with C-arrays More...
template<unsigned int N>
bool | operator!= (const Gaudi::StringKey &key1, const char(&key2)[N])
| non-equality operator with C-arrays More...
bool | operator== (const std::string &key1, const Gaudi::StringKey &key2)
| "right" form of equality operator More...
template<unsigned int N>
bool | operator== (const char(&key1)[N], const Gaudi::StringKey &key2)
| "right" form of equality operator More...
bool | operator!= (const std::string &key1, const Gaudi::StringKey &key2)
| "right" form of non-equality operator More...
template<unsigned int N>
bool | operator!= (const char(&key1)[N], const Gaudi::StringKey &key2)
| "right" form of non-equality operator More...
std::size_t | hash_value (const Gaudi::StringKey &key)
| hash-function: heeded for boost::hash More...
std::ostream & | operator<< (std::ostream &o, const Gaudi::StringKey &key)
| printout of the object reply on the native printout for the string More...
std::ostream & | operator<< (std::ostream &out, const Gaudi::Time &time)
| Output operator. More...
std::ostream & | operator<< (std::ostream &out, const Gaudi::TimeSpan &time)
| Output operator. More...
bool | operator< (const Gaudi::Histo1DDef &left, const Gaudi::Histo1DDef &right)
bool | operator== (const Gaudi::Histo1DDef &left, const Gaudi::Histo1DDef &right)
bool | operator!= (const Gaudi::Histo1DDef &left, const Gaudi::Histo1DDef &right)
std::ostream & | operator<< (std::ostream &o, const Gaudi::Histo1DDef &histo)
std::string | createGuidAsString ()
| Helper function creating file identifier using the UUID mechanism. More...
int | extractEvt (const char *input, const char *output, long num_evt)
| Function to extract single event and write it to an output file. More...

## Detailed Description

Header file for std:chrono::duration-based Counters.

Create a hash with a large avalanche effect from 32 or 64 bit integers or a string.

rebuild "the linear container" from the map

General Gaudi namepace.

General Gaudi namespace.

Helper functions to set/get the application return code.

Include this header file (instead of GaudiKernel/Counters.h) if you want to use std::chrono::duration-based Counters. It includes support for the required arithmetic and stream operations.

Author
  Marco Clemencic
  Juan PALACIOS

Date
  2005-11-21

Author
  Juan PALACIOS

Date
  2005-11-23

Author
  Marco Clemencic marco.nosp@m..cle.nosp@m.menci.nosp@m.c@ce.nosp@m.rn.ch
  Marco Clemencic marco.nosp@m..cle.nosp@m.menci.nosp@m.c@ce.nosp@m.rn.ch See Gaudi::PluginService

note: the constants below are not arbitrary, but are picked carefully such that the bit shuffling has a large 'avalanche' effect... Code by Brett Mulvey (old link: http://bretm.home.comcast.net/~bretm/hash/)

note: as a result, you might call this a quasi-random (not to be confused with psuedo-random!) number generator, in that it generates an output which satisfies a requirement on the uniformity of its output distribution. (and not on the predictability of the next number in the sequence, based on knowledge of the preceding numbers)

note: another way to look at this is is as an (approximation of an) evaporating black hole: whatever you dump in to it, you get something uniformly distributed back ;-)

## Function Documentation

## ◆ Cast() [1/2]

template<typename TARGET >

TARGET* Gaudi::Cast | ( | IInterface * | i | ) |

Cast a IInterface pointer to an IInterface specialization (TARGET).

Definition at line 319 of file IInterface.h.

319 {
320 return reinterpret_cast<TARGET*>( i->i_cast( TARGET::interfaceID() ) );
321 }
IInterface::i_cast
virtual void * i_cast(const InterfaceID &) const =0
main cast function

## ◆ Cast() [2/2]

template<typename TARGET >

const TARGET* Gaudi::Cast | ( | const IInterface * | i | ) |

Cast a IInterface pointer to an IInterface specialization (TARGET).

const version

Definition at line 325 of file IInterface.h.

325 {
326 return reinterpret_cast<const TARGET*>( i->i_cast( TARGET::interfaceID() ) );
327 }
IInterface::i_cast
virtual void * i_cast(const InterfaceID &) const =0
main cast function

## ◆ createApplicationMgr() [1/3]

GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr | ( | const std::string & | dllname,
|  | const std::string & | factname
| ) |  |

## ◆ createApplicationMgr() [2/3]

GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr | ( | const std::string & | dllname | ) |

## ◆ createApplicationMgr() [3/3]

GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr | ( |  | ) |

Definition at line 228 of file Bootstrap.cpp.

228 { return Gaudi::createApplicationMgr(); }
Gaudi::createApplicationMgr
GAUDI_API IAppMgrUI * createApplicationMgr(const std::string &dllname, const std::string &factname)

## ◆ createApplicationMgrEx()

GAUDI_API IAppMgrUI* Gaudi::createApplicationMgrEx | ( | const std::string & | dllname,
|  | const std::string & | factname
| ) |  |

## ◆ createGuidAsString()

std::string Gaudi::createGuidAsString | ( |  | ) |

Helper function creating file identifier using the UUID mechanism.

Create file identifier using UUID mechanism.

## ◆ createH1D() [1/3]

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::createH1D | ( | const AIDA::IHistogram1D & | hist | ) |

Copy constructor.

## ◆ createH1D() [2/3]

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::createH1D | ( | const std::string & | title,
|  | int | nBins = `10`,
|  | double | lowerEdge = `0.`,
|  | double | upperEdge = `1.`
| ) |  |

Creator for 1D histogram with fixed bins.

## ◆ createH1D() [3/3]

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::createH1D | ( | const std::string & | title,
|  | const Edges & | e
| ) |  |

Creator for 1D histogram with variable bins.

## ◆ createH2D() [1/4]

std::pair<DataObject*, AIDA::IHistogram2D*> Gaudi::createH2D | ( | const AIDA::IHistogram2D & | hist | ) |

Copy constructor.

## ◆ createH2D() [2/4]

std::pair<DataObject*, AIDA::IHistogram2D*> Gaudi::createH2D | ( | TH2D * | rep | ) |

"Adopt" constructor

## ◆ createH2D() [3/4]

std::pair<DataObject*, AIDA::IHistogram2D*> Gaudi::createH2D | ( | const std::string & | title,
|  | int | binsX,
|  | double | iminX,
|  | double | imaxX,
|  | int | binsY,
|  | double | iminY,
|  | double | imaxY
| ) |  |

Creator for 2 D histograms with fixed bins.

## ◆ createH2D() [4/4]

std::pair<DataObject*, AIDA::IHistogram2D*> Gaudi::createH2D | ( | const std::string & | title,
|  | const Edges & | eX,
|  | const Edges & | eY
| ) |  |

Creator for 2 D histograms with variable bins.

## ◆ createH3D() [1/3]

std::pair<DataObject*, AIDA::IHistogram3D*> Gaudi::createH3D | ( | const AIDA::IHistogram3D & | hist | ) |

Copy constructor.

## ◆ createH3D() [2/3]

std::pair<DataObject*, AIDA::IHistogram3D*> Gaudi::createH3D | ( | const std::string & | title,
|  | int | nBinsX,
|  | double | xlow,
|  | double | xup,
|  | int | nBinsY,
|  | double | ylow,
|  | double | yup,
|  | int | nBinsZ,
|  | double | zlow,
|  | double | zup
| ) |  |

Create 3D histogram with fixed bins.

## ◆ createH3D() [3/3]

std::pair<DataObject*, AIDA::IHistogram3D*> Gaudi::createH3D | ( | const std::string & | title,
|  | const Edges & | eX,
|  | const Edges & | eY,
|  | const Edges & | eZ
| ) |  |

Create 3D histogram with variable bins.

## ◆ createInstance()

GAUDI_API IInterface* Gaudi::createInstance | ( | const std::string & | name,
|  | const std::string & | factname,
|  | const std::string & | ddlname
| ) |  |

## ◆ createProf1D() [1/3]

std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::createProf1D | ( | const AIDA::IProfile1D & | hist | ) |

Copy constructor.

## ◆ createProf1D() [2/3]

std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::createProf1D | ( | const std::string & | title,
|  | int | nBins,
|  | double | xlow,
|  | double | xup,
|  | double | ylow,
|  | double | yup,
|  | const std::string & | opt = `""`
| ) |  |

Creator of 1D profile with fixed bins.

## ◆ createProf1D() [3/3]

std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::createProf1D | ( | const std::string & | title,
|  | const Edges & | e,
|  | double | ylow,
|  | double | yup,
|  | const std::string & | opt = `""`
| ) |  |

Creator of 1D profile with variable bins.

## ◆ createProf2D() [1/3]

std::pair<DataObject*, AIDA::IProfile2D*> Gaudi::createProf2D | ( | const AIDA::IProfile2D & | hist | ) |

Copy constructor.

## ◆ createProf2D() [2/3]

std::pair<DataObject*, AIDA::IProfile2D*> Gaudi::createProf2D | ( | const std::string & | title,
|  | int | binsX,
|  | double | iminX,
|  | double | imaxX,
|  | int | binsY,
|  | double | iminY,
|  | double | imaxY,
|  | double | lowerValue,
|  | double | upperValue
| ) |  |

Creator for 2 D profile with fixed bins.

## ◆ createProf2D() [3/3]

std::pair<DataObject*, AIDA::IProfile2D*> Gaudi::createProf2D | ( | const std::string & | title,
|  | const Edges & | eX,
|  | const Edges & | eY,
|  | double | lowerValue,
|  | double | upperValue
| ) |  |

Creator for 2 D profile with variable bins.

## ◆ extractEvt()

int Gaudi::extractEvt | ( | const char * | input,
|  | const char * | output,
|  | long | num_evt
| ) |  |

Function to extract single event and write it to an output file.

Definition at line 366 of file extractEvt.C.

366 {
367 RootEventExtractor e( input, output, "RECREATE" );
368 if ( e.select( num_evt ) == EXTRACT_SUCCESS ) {
369 if ( e.extract() == EXTRACT_SUCCESS ) { return EXTRACT_SUCCESS; }
370 }
371 return EXTRACT_ERROR;
372 }
gaudirun.output
output
Definition: gaudirun.py:484
Gaudi::RootEventExtractor
Definition: extractEvt.C:116

## ◆ getAppReturnCode()

int Gaudi::getAppReturnCode | ( | const SmartIF< IProperty > & | appmgr | ) |
| inline

Get the application (current) return code.

Returns
  the return code or 0 if it was not possible to get it

Definition at line 69 of file AppReturnCode.h.

69 {
70 if ( appmgr ) {
71 Gaudi::Property<int> returnCode( "ReturnCode", 0 );
72 if ( appmgr->getProperty( &returnCode ).isSuccess() ) return returnCode.value();
73 }
74 return 0;
75 }
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:352
IProperty::getProperty
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267

## ◆ getCurrentDataObject()

GAUDI_API DataObject* Gaudi::getCurrentDataObject | ( |  | ) |

## ◆ getInterfaceNames()

template<typename... Is>

std::vector<std::string> Gaudi::getInterfaceNames | ( | Gaudi::interface_list< Is... > |  | ) |

Definition at line 180 of file IInterface.h.

180 {
181 return {Is::name()...};
182 }
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41

## ◆ getRepresentation()

template<class Q , class T >

T* Gaudi::getRepresentation | ( | const Q & | hist | ) |

Definition at line 8 of file HistogramUtility.h.

8 {
9 auto p = dynamic_cast<const HistogramBase*>( &hist );
10 return p ? dynamic_cast<T*>( p->representation() ) : nullptr;
11 }

## ◆ hash_value()

std::size_t Gaudi::hash_value | ( | const Gaudi::StringKey & | key | ) |
| inline

hash-function: heeded for boost::hash

Attention
  NEVER use the actual hash value for anything stored in files, as it is not guaranteed that the hashing scheme will remain the same. The only reason for this function is Python and transparent usage of this object for hashmap-like containers

See also
  Gaudi::Hash

Returns
  the actual hash value

Author
  Vanya BELYAEV Iavn..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 201 of file StringKey.h.

201 { return key.__hash__(); }
Gaudi::StringKey::__hash__
std::size_t __hash__() const
the actual access to the hash
Definition: StringKey.h:114

## ◆ iid_cast()

template<typename... Is, typename P >

void* Gaudi::iid_cast | ( | const InterfaceID & | tid,
|  | Gaudi::interface_list< Is... > | ,
|  | P * | ptr
| ) |  |
| inline

Definition at line 185 of file IInterface.h.

185 {
186 constexpr auto iid_cast_ = iid_cast_details::iid_cast_t<Is...>{};
187 return iid_cast_( tid, ptr );
188 }

## ◆ NanoSleep()

GAUDI_API void Gaudi::NanoSleep | ( | long long | nsec | ) |

Small variation on the sleep function for nanoseconds sleep.

Author
  Marco Clemencic

Definition at line 9 of file Sleep.cpp.

9 { std::this_thread::sleep_for( std::chrono::nanoseconds( nsec ) ); }
std::chrono::nanoseconds
std::this_thread::sleep_for
T sleep_for(T... args)

## ◆ operator!=() [1/5]

bool Gaudi::operator!= | ( | const Gaudi::Histo1DDef & | left,
|  | const Gaudi::Histo1DDef & | right
| ) |  |

Definition at line 72 of file HistoDef.cpp.

72 { return !( left == right ); }
std::left
T left(T... args)

## ◆ operator!=() [2/5]

template<unsigned int N>

bool Gaudi::operator!= | ( | const Gaudi::StringKey & | key1,
|  | const char(&) | key2[N]
| ) |  |
| inline

non-equality operator with C-arrays

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 157 of file StringKey.h.

157 {
158 return !( key1 == key2 );
159 }

## ◆ operator!=() [3/5]

bool Gaudi::operator!= | ( | const std::string & | key1,
|  | const Gaudi::StringKey & | key2
| ) |  |
| inline

"right" form of non-equality operator

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 180 of file StringKey.h.

180 { return key2 != key1; }

## ◆ operator!=() [4/5]

template<unsigned int N>

bool Gaudi::operator!= | ( | const char(&) | key1[N],
|  | const Gaudi::StringKey & | key2
| ) |  |
| inline

"right" form of non-equality operator

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 187 of file StringKey.h.

187 {
188 return key2 != key1;
189 }

## ◆ operator!=() [5/5]

template<class T , class TP , class V , class H >

bool Gaudi::operator!= | ( | const T & | v,
|  | const Property< TP, V, H > & | p
| ) |  |

delegate (value != property) to property operator!=

Definition at line 702 of file Property.h.

702 {
703 return p != v;
704 }

## ◆ operator+()

template<class T , class TP , class V , class H >

decltype( auto ) Gaudi::operator+ | ( | const T & | v,
|  | const Property< TP, V, H > & | p
| ) |  |

implemantation of (value + property)

Definition at line 708 of file Property.h.

708 {
709 return v + p.value();
710 }

## ◆ operator<()

bool Gaudi::operator< | ( | const Gaudi::Histo1DDef & | left,
|  | const Gaudi::Histo1DDef & | right
| ) |  |

Definition at line 49 of file HistoDef.cpp.

49 {
50 return std::tie( left.m_title, left.m_low, left.m_high, left.m_bins ) <
51 std::tie( right.m_title, right.m_low, right.m_high, right.m_bins );
52 }
std::tie
T tie(T... args)
std::left
T left(T... args)

## ◆ operator<<() [1/4]

std::ostream& Gaudi::operator<< | ( | std::ostream & | o,
|  | const Gaudi::Histo1DDef & | histo
| ) |  |

Definition at line 76 of file HistoDef.cpp.

76 { return histo.fillStream( o ); }
Gaudi::Histo1DDef::fillStream
std::ostream & fillStream(std::ostream &o) const
printout of the histogram definition
Definition: HistoDef.cpp:42

## ◆ operator<<() [2/4]

std::ostream& Gaudi::operator<< | ( | std::ostream & | out,
|  | const Gaudi::Time & | time
| ) |  |
| inline

Output operator.

Definition at line 154 of file Time.icpp.

154 {
155 return out << Gaudi::TimeSpan( time ).seconds() << '.' << time.nanoformat();
156 }
plotSpeedupsPyRoot.time
def time
Definition: plotSpeedupsPyRoot.py:152
Gaudi::TimeSpan::seconds
ValueType seconds() const
Get the number of complete seconds in the span.
Definition: Time.icpp:102
Gaudi::TimeSpan
Based on seal::TimeSpan.
Definition: Time.h:52

## ◆ operator<<() [3/4]

std::ostream& Gaudi::operator<< | ( | std::ostream & | out,
|  | const Gaudi::TimeSpan & | time
| ) |  |
| inline

Output operator.

Definition at line 159 of file Time.icpp.

159 {
160 return out << time.seconds() << '.' << Gaudi::Time( time ).nanoformat();
161 }
plotSpeedupsPyRoot.time
def time
Definition: plotSpeedupsPyRoot.py:152
Gaudi::Time
Based on seal::Time.
Definition: Time.h:231
Gaudi::Time::nanoformat
std::string nanoformat(size_t minwidth=1, size_t maxwidth=9) const
Format the nanosecond fractional part of the time as a string.
Definition: Time.cpp:292

## ◆ operator<<() [4/4]

std::ostream& Gaudi::operator<< | ( | std::ostream & | o,
|  | const Gaudi::StringKey & | key
| ) |  |
| inline

printout of the object reply on the native printout for the string

Author
  Vanya BELYAEV Iavn..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 235 of file StringKey.h.

235 { return o << key.str(); }
Gaudi::StringKey::str
const std::string & str() const
the actual string
Definition: StringKey.h:45

## ◆ operator==() [1/5]

bool Gaudi::operator== | ( | const Gaudi::Histo1DDef & | left,
|  | const Gaudi::Histo1DDef & | right
| ) |  |

Definition at line 61 of file HistoDef.cpp.

61 {
62 return std::tie( left.m_title, left.m_low, left.m_high, left.m_bins ) ==
63 std::tie( right.m_title, right.m_low, right.m_high, right.m_bins );
64 }
std::tie
T tie(T... args)
std::left
T left(T... args)

## ◆ operator==() [2/5]

template<unsigned int N>

bool Gaudi::operator== | ( | const Gaudi::StringKey & | key1,
|  | const char(&) | key2[N]
| ) |  |
| inline

equality operator with C-arrays

Author
  Vanya BELYAEV Iavn..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 148 of file StringKey.h.

148 {
149 return key1.str().size() == N && std::equal( key2, key2 + N, key1.str().begin() );
150 }
Gaudi::StringKey::str
const std::string & str() const
the actual string
Definition: StringKey.h:45
IOTest.N
int N
Definition: IOTest.py:99
std::string::size
T size(T... args)
std::string::begin
T begin(T... args)
std::equal
T equal(T... args)

## ◆ operator==() [3/5]

bool Gaudi::operator== | ( | const std::string & | key1,
|  | const Gaudi::StringKey & | key2
| ) |  |
| inline

"right" form of equality operator

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 165 of file StringKey.h.

165 { return key2 == key1; }

## ◆ operator==() [4/5]

template<unsigned int N>

bool Gaudi::operator== | ( | const char(&) | key1[N],
|  | const Gaudi::StringKey & | key2
| ) |  |
| inline

"right" form of equality operator

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2009-10-07

Definition at line 172 of file StringKey.h.

172 {
173 return key2 == key1;
174 }

## ◆ operator==() [5/5]

template<class T , class TP , class V , class H >

bool Gaudi::operator== | ( | const T & | v,
|  | const Property< TP, V, H > & | p
| ) |  |

delegate (value == property) to property operator==

Definition at line 696 of file Property.h.

696 {
697 return p == v;
698 }

## ◆ overload()

template<typename... lambda_ts>

auto Gaudi::overload | ( | lambda_ts &&... | lambdas | ) |

Definition at line 28 of file compose.h.

28 {
29 return details::overloaded_t{std::forward<lambda_ts>( lambdas )...};
30 }
Gaudi::details::overloaded_t
overloaded_t(lambda_ts...) -> overloaded_t< lambda_ts... >

## ◆ popCurrentDataObject()

GAUDI_API void Gaudi::popCurrentDataObject | ( |  | ) |

Definition at line 38 of file RootIOHandler.cpp.

38 {
39 Gaudi::popCurrentDataObject();
40 resetLastLink();
41 }
Gaudi::popCurrentDataObject
GAUDI_API void popCurrentDataObject()
Definition: RootIOHandler.cpp:38
GaudiRoot::resetLastLink
void resetLastLink()
Definition: RootIOHandler.cpp:30

## ◆ profile1DX()

std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::profile1DX | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D profile in X from 2D histogram.

## ◆ profile1DY()

std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::profile1DY | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D profile in Y from 2D histogram.

## ◆ project1DX()

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::project1DX | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D projection in X from 2D histogram.

## ◆ project1DY()

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::project1DY | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D projection in Y from 2D histogram.

## ◆ pushCurrentDataObject()

GAUDI_API void Gaudi::pushCurrentDataObject | ( | DataObject ** | pobjAddr | ) |

Definition at line 34 of file RootIOHandler.cpp.

34 {
35 Gaudi::pushCurrentDataObject( pobjAddr );
36 resetLastLink();
37 }
Gaudi::pushCurrentDataObject
GAUDI_API void pushCurrentDataObject(DataObject **pobjAddr)
Definition: RootIOHandler.cpp:34
GaudiRoot::resetLastLink
void resetLastLink()
Definition: RootIOHandler.cpp:30

## ◆ range() [1/2]

template<class CONTAINER >

NamedRange_<CONTAINER> Gaudi::range | ( | const CONTAINER & | cnt,
|  | std::string | name
| ) |  |
| inline

simple function to create the named range from arbitrary container

const CONTAINER& cnt = ... ;
auto r = range ( cnt , "some name") ;

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@n.nosp@m.ikhe.nosp@m.f.nl

Date
  2007-11-29

Definition at line 118 of file NamedRange.h.

118 {
119 return NamedRange_<CONTAINER>( cnt.begin(), cnt.end(), std::move( name ) );
120 }
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
std::move
T move(T... args)

## ◆ range() [2/2]

template<class CONTAINER >

Range_<CONTAINER> Gaudi::range | ( | const CONTAINER & | cnt | ) |
| inline

simple function to create the range from the arbitrary container

const CONTAINER& cnt = ... ;
Range_<CONTAINER> r = range ( cnt ) ;

The range could be created over ALL container types which supports at least the bidirectional iterators.

The minimum requirements from the container type:

- support the concept of "CONTAINER::value_type"
- support the concept of "CONTAINER::const_iterator"
- support the concept of "CONTAINER::const_reference"
- support the concept of "CONTAINER::const_reverse_iterator"
- the iterator should be ok for "std::distance" and "std::advance"
- support for "const_iterator CONTAINER::begin () const"
- support for "const_iterator CONTAINER::end () const"
- support for "const_reverse_iterator CONTAINER::rbegin () const"
- support for "const_reverse_iterator CONTAINER::rend () const"

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yre.e.nosp@m.du

Date
  2007-11-29

Definition at line 276 of file Range.h.

276 {
277 return Range_<CONTAINER>( cnt.begin(), cnt.end() );
278 }

## ◆ setAppReturnCode()

StatusCode Gaudi::setAppReturnCode | ( | SmartIF< IProperty > & | appmgr,
|  | int | value,
|  | bool | force = `false`
| ) |  |
| inline

Set the application return code.

By default the return code of the application is modified only if the original value was 0 (i.e. no error). In this way we keep the first cause of error.

Parameters

  appmgr | IProperty interface of the ApplicationMgr
  value | value to assign to the return code
  force | if set to true, the return code is set even if it was already set

Returns
  SUCCESS if it was possible to set the return code or the return code was already set

Definition at line 49 of file AppReturnCode.h.

49 {
50 if ( appmgr ) {
51 Gaudi::Property<int> returnCode( "ReturnCode", 0 );
52 if ( appmgr->getProperty( &returnCode ).isSuccess() ) {
53 if ( returnCode.value() == 0 || force ) {
54 returnCode.setValue( value );
55 return appmgr->setProperty( returnCode );
56 }
57 // Consider is a success if we do already have an error code.
58 return StatusCode::SUCCESS;
59 }
60 }
61 return StatusCode::FAILURE;
62 }
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:352
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IProperty::setProperty
virtual StatusCode setProperty(const Gaudi::Details::PropertyBase &p)=0
Set the property by property.
IProperty::getProperty
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ setInstance() [1/2]

GAUDI_API ISvcLocator* Gaudi::setInstance | ( | ISvcLocator * | newInstance | ) |

Set new instance of service locator.

Parameters

  newInstance | Current instance of service locator.

Returns
  Previous instance of service locator object.

## ◆ setInstance() [2/2]

GAUDI_API IAppMgrUI* Gaudi::setInstance | ( | IAppMgrUI * | newInstance | ) |

Set new instance of service locator.

Parameters

  newInstance | Current instance of service locator.

Returns
  Previous instance of service locator object.

## ◆ Sleep()

GAUDI_API void Gaudi::Sleep | ( | int | sec | ) |

Simple sleep function.

Author
  Marco Clemencic

Definition at line 7 of file Sleep.cpp.

7 { std::this_thread::sleep_for( std::chrono::seconds( sec ) ); }
std::chrono::seconds
std::this_thread::sleep_for
T sleep_for(T... args)

## ◆ slice1DX()

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::slice1DX | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D slice from 2D histogram.

## ◆ slice1DY()

std::pair<DataObject*, AIDA::IHistogram1D*> Gaudi::slice1DY | ( | const std::string & | name,
|  | const AIDA::IHistogram2D & | h,
|  | int | firstbin,
|  | int | lastbin
| ) |  |

Create 1D slice from 2D histogram.

## ◆ svcLocator()

GAUDI_API ISvcLocator* Gaudi::svcLocator | ( |  | ) |