The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Gaudi Namespace Reference

Helper functions to set/get the application return code. More...

Namespaces

 Accumulators
 Efficient counter implementations for Gaudi.
 
 CommonGaudiConfigurables
 
 Concurrency
 
 Configuration
 
 CounterSummary
 
 cpp17
 
 detail
 
 detail2
 
 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
 
 Main
 
 meta
 
 Parsers
 
 PluginService
 See Gaudi::PluginService.
 
 ReturnCode
 ApplicationMgr return code definitions.
 
 StateMachine
 
 tagged_bool_ns
 
 Units
 
 Utils
 

Classes

class  _ConfigurablesModule
 
class  Algorithm
 Base class from which all concrete algorithm classes should be derived. 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  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  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...
 
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  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...
 
template<class F , class Tuple >
decltype(auto) constexpr apply (F &&f, Tuple &&t) noexcept(noexcept( detail::apply_impl(std::forward< F >(f), std::forward< Tuple >(t), std::make_index_sequence< std::tuple_size< std::remove_reference_t< Tuple >>::value >{})))
 
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 IAppMgrUIcreateApplicationMgrEx (const std::string &dllname, const std::string &factname)
 
GAUDI_API IAppMgrUIcreateApplicationMgr (const std::string &dllname, const std::string &factname)
 
GAUDI_API IAppMgrUIcreateApplicationMgr (const std::string &dllname)
 
GAUDI_API IAppMgrUIcreateApplicationMgr ()
 
GAUDI_API IInterfacecreateInstance (const std::string &name, const std::string &factname, const std::string &ddlname)
 
GAUDI_API ISvcLocatorsvcLocator ()
 
GAUDI_API ISvcLocatorsetInstance (ISvcLocator *newInstance)
 Set new instance of service locator. More...
 
GAUDI_API IAppMgrUIsetInstance (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 DataObjectgetCurrentDataObject ()
 
template<typename... Is>
std::vector< std::stringgetInterfaceNames (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 F , class... ArgTypes>
auto invoke (F &&f, ArgTypes &&...args) noexcept(noexcept(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))) -> decltype(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))
 
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::ostreamoperator<< (std::ostream &o, const Gaudi::StringKey &key)
 printout of the object reply on the native printout for the string More...
 
std::ostreamoperator<< (std::ostream &out, const Gaudi::Time &time)
 Output operator. More...
 
std::ostreamoperator<< (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::ostreamoperator<< (std::ostream &o, const Gaudi::Histo1DDef &histo)
 
std::string createGuidAsString ()
 Helper function creating file identifier using the UUID mechanism. More...
 

Detailed Description

Helper functions to set/get the application return code.

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.

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

template<class F , class Tuple >
decltype( auto ) constexpr Gaudi::apply ( F &&  f,
Tuple &&  t 
)
noexcept

Definition at line 27 of file apply.h.

29  {} ) ) ) {
30  return detail::apply_impl( std::forward<F>( f ), std::forward<Tuple>( t ),
31  std::make_index_sequence<std::tuple_size<std::remove_reference_t<Tuple>>::value>{} );
32  }
decltype(auto) constexpr apply_impl(F &&f, Tuple &&t, std::index_sequence< I... >) noexcept( noexcept(Gaudi::invoke(std::forward< F >(f), std::get< I >(std::forward< Tuple >(t))...)))
Definition: apply.h:15
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  }
virtual void * i_cast(const InterfaceID &) const =0
main cast function
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  }
virtual void * i_cast(const InterfaceID &) const =0
main cast function
GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr ( const std::string dllname,
const std::string factname 
)
GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr ( const std::string dllname)
GAUDI_API IAppMgrUI* Gaudi::createApplicationMgr ( )

Definition at line 228 of file Bootstrap.cpp.

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

Helper function creating file identifier using the UUID mechanism.

Create file identifier using UUID mechanism.

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

Copy constructor.

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.

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

Creator for 1D histogram with variable bins.

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

Copy constructor.

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

"Adopt" constructor

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.

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.

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

Copy constructor.

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.

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.

GAUDI_API IInterface* Gaudi::createInstance ( const std::string name,
const std::string factname,
const std::string ddlname 
)
std::pair<DataObject*, AIDA::IProfile1D*> Gaudi::createProf1D ( const AIDA::IProfile1D &  hist)

Copy constructor.

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.

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.

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

Copy constructor.

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.

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.

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  }
Implementation of property with value of concrete type.
Definition: Property.h:352
bool isSuccess() const
Definition: StatusCode.h:267
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
GAUDI_API DataObject* Gaudi::getCurrentDataObject ( )
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  }
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  }
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__(); }
std::size_t __hash__() const
the actual access to the hash
Definition: StringKey.h:114
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  }
template<class F , class... ArgTypes>
auto Gaudi::invoke ( F &&  f,
ArgTypes &&...  args 
) -> decltype( detail2::INVOKE( std::forward<F>( f ), std::forward<ArgTypes>( args )... ) )
noexcept

Definition at line 82 of file invoke.h.

85  {
86  return detail2::INVOKE( std::forward<F>( f ), std::forward<ArgTypes>( args )... );
87  }
auto INVOKE(F &&f, Args &&...args) noexcept(noexcept(std::forward< F >(f)(std::forward< Args >(args)...))) -> std::enable_if_t<!std::is_member_pointer< std::decay_t< F >>::value, decltype(std::forward< F >(f)(std::forward< Args >(args)...))>
Definition: invoke.h:74
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.

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

Definition at line 72 of file HistoDef.cpp.

72 { return !( left == right ); }
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  }
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; }
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  }
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 701 of file Property.h.

701  {
702  return p != v;
703  }
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 707 of file Property.h.

707  {
708  return v + p.value();
709  }
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  }
T tie(T...args)
double m_high
High Edge.
Definition: HistoDef.h:101
std::string m_title
Histogram title.
Definition: HistoDef.h:97
int m_bins
Number of bins.
Definition: HistoDef.h:103
double m_low
Low Edge.
Definition: HistoDef.h:99
std::ostream& Gaudi::operator<< ( std::ostream o,
const Gaudi::Histo1DDef histo 
)

Definition at line 76 of file HistoDef.cpp.

76 { return histo.fillStream( o ); }
std::ostream & fillStream(std::ostream &o) const
printout of the histogram definition
Definition: HistoDef.cpp:42
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  }
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
ValueType seconds() const
Get the number of complete seconds in the span.
Definition: Time.icpp:102
Based on seal::TimeSpan.
Definition: Time.h:52
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  }
Based on seal::Time.
Definition: Time.h:231
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
ValueType seconds() const
Get the number of complete seconds in the span.
Definition: Time.icpp:102
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(); }
const std::string & str() const
the actual string
Definition: StringKey.h:45
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  }
T tie(T...args)
double m_high
High Edge.
Definition: HistoDef.h:101
std::string m_title
Histogram title.
Definition: HistoDef.h:97
int m_bins
Number of bins.
Definition: HistoDef.h:103
double m_low
Low Edge.
Definition: HistoDef.h:99
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  }
int N
Definition: IOTest.py:99
T size(T...args)
T begin(T...args)
T equal(T...args)
const std::string & str() const
the actual string
Definition: StringKey.h:45
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; }
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  }
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 695 of file Property.h.

695  {
696  return p == v;
697  }
template<typename... lambda_ts>
auto Gaudi::overload ( lambda_ts &&...  lambdas)

Definition at line 58 of file compose.h.

58  {
59 #if __cplusplus > 201402L
60  return details::overloaded_t{std::forward<lambda_ts>( lambdas )...};
61 #else
62  return details::overloaded_t<std::decay_t<lambda_ts>...>{std::forward<lambda_ts>( lambdas )...};
63 #endif
64  }
GAUDI_API void Gaudi::popCurrentDataObject ( )

Definition at line 38 of file RootIOHandler.cpp.

38  {
40  resetLastLink();
41  }
GAUDI_API void popCurrentDataObject()
void resetLastLink()
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.

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.

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.

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.

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

Definition at line 34 of file RootIOHandler.cpp.

34  {
35  Gaudi::pushCurrentDataObject( pobjAddr );
36  resetLastLink();
37  }
GAUDI_API void pushCurrentDataObject(DataObject **pobjAddr)
void resetLastLink()
template<class CONTAINER >
NamedRange_<CONTAINER> Gaudi::range ( const CONTAINER &  cnt,
std::string  name 
)
inline

simple function to create the named range from arbitrary container

1 const CONTAINER& cnt = ... ;
2 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  }
T move(T...args)
template<class CONTAINER >
Range_<CONTAINER> Gaudi::range ( const CONTAINER &  cnt)
inline

simple function to create the range from the arbitrary container

1 const CONTAINER& cnt = ... ;
2 
3 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  }
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
appmgrIProperty interface of the ApplicationMgr
valuevalue to assign to the return code
forceif 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  }
Implementation of property with value of concrete type.
Definition: Property.h:352
bool isSuccess() const
Definition: StatusCode.h:267
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
virtual StatusCode setProperty(const Gaudi::Details::PropertyBase &p)=0
Set the property by property.
constexpr static const auto FAILURE
Definition: StatusCode.h:86
GAUDI_API ISvcLocator* Gaudi::setInstance ( ISvcLocator newInstance)

Set new instance of service locator.

Parameters
newInstanceCurrent instance of service locator.
Returns
Previous instance of service locator object.
GAUDI_API IAppMgrUI* Gaudi::setInstance ( IAppMgrUI newInstance)

Set new instance of service locator.

Parameters
newInstanceCurrent instance of service locator.
Returns
Previous instance of service locator object.
GAUDI_API void Gaudi::Sleep ( int  sec)

Simple sleep function.

Author
Marco Clemencic

Definition at line 7 of file Sleep.cpp.

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.

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.

GAUDI_API ISvcLocator* Gaudi::svcLocator ( )