The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
HistogramSvc Class Reference

HistogramSvc class definition. More...

#include </builds/gaudi/Gaudi/GaudiCommonSvc/include/GaudiCommonSvc/HistogramSvc.h>

Inheritance diagram for HistogramSvc:
Collaboration diagram for HistogramSvc:

Classes

struct  Helper
 

Public Types

using Edges = std::vector<double>
 
using DBaseEntries = std::vector<std::string>
 
typedef std::map< std::string, Gaudi::Histo1DDefHisto1DMap
 
- Public Types inherited from extends< DataSvc, IHistogramSvc >
using base_class
 Typedef to this class.
 
using extend_interfaces_base
 Typedef to the base of this class.
 
- Public Types inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
using base_class
 Typedef to this class.
 
using extend_interfaces_base
 Typedef to the base of this class.
 
- Public Types inherited from Service
using Factory = Gaudi::PluginService::Factory<IService*( const std::string&, ISvcLocator* )>
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using PropertyHolderImpl
 Typedef used to refer to this class from derived classes, as in.
 
- Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using base_class
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids
 take union of the ext_iids of all Interfaces...
 

Public Member Functions

 HistogramSvc (const std::string &name, ISvcLocator *svc)
 Statndard Constructor.
 
 ~HistogramSvc () override
 Destructor.
 
std::pair< std::string, std::string > i_splitPath (const std::string &full)
 Split full path into its components.
 
StatusCode connectInput (const std::string &ident)
 Connect input histogram file to the service.
 
template<class T>
T * i_book (DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
 
AIDA::IHistogram2D * i_project (const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
 Helper for 2D projections.
 
StatusCode initialize () override
 Initialise the service.
 
StatusCode reinitialize () override
 Initialise the service.
 
StatusCode finalize () override
 finalize the service
 
AIDA::IHistogramFactory * histogramFactory () override
 Retrieve the AIDA HistogramFactory interface.
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 Book histogram and register it with the histogram data store.
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store.
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 Book histogram and register it with the histogram data store.
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store.
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, Edges x, Edges y, Edges z) override
 Book histogram and register it with the histogram data store.
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, Edges z)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
StatusCode registerObject (const std::string &parent, const std::string &rel, Base *obj) override
 
StatusCode registerObject (Base *pPar, const std::string &rel, Base *obj) override
 
StatusCode registerObject (const std::string &full, Base *obj) override
 
StatusCode registerObject (DataObject *pPar, const std::string &rel, Base *obj) override
 
StatusCode unregisterObject (Base *obj) override
 
StatusCode unregisterObject (Base *obj, const std::string &objectPath) override
 
StatusCode unregisterObject (Base *obj, int item) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
AIDA::IHistogram1D * projectionX (const std::string &name, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram1D * projectionY (const std::string &name, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram1D * sliceX (const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
 
AIDA::IHistogram1D * sliceY (const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
 
AIDA::IHistogram1D * sliceX (const std::string &name, const AIDA::IHistogram2D &h, int indexY1, int indexY2) override
 
AIDA::IHistogram1D * sliceY (const std::string &name, const AIDA::IHistogram2D &h, int indexX1, int indexX2) override
 
bool destroy (IBaseHistogram *hist) override
 
AIDA::IHistogram1D * add (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * divide (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram2D * add (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * divide (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram3D * add (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * divide (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram2D * projectionXY (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * projectionXZ (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * projectionYZ (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * sliceXY (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram2D * sliceXZ (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram2D * sliceYZ (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, const std::string &) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, const Edges &x, const std::string &) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &nameAndTitle, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * createCopy (const std::string &full, const AIDA::IHistogram1D &h) override
 
AIDA::IHistogram1D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram1D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram1D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, const std::string &) override
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const std::string &) override
 
AIDA::IHistogram2D * createHistogram2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * createCopy (const std::string &full, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram2D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram2D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram2D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz, const std::string &) override
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const Edges &z, const std::string &) override
 
AIDA::IHistogram3D * createHistogram3D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * createCopy (const std::string &full, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram3D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram3D &h)
 
AIDA::IHistogram3D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram3D &h)
 
AIDA::IHistogram3D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram3D &h)
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, const Edges &x, const std::string &) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, const Edges &x, double upper, double lower, const std::string &) override
 
AIDA::IProfile1D * createProfile1D (const std::string &nametit, int nx, double lowx, double upx) override
 
AIDA::IProfile1D * createProfile1D (const std::string &nametit, int nx, double lowx, double upx, double upper, double lower) override
 
AIDA::IProfile1D * createCopy (const std::string &full, const AIDA::IProfile1D &h) override
 
AIDA::IProfile1D * createCopy (const std::string &par, const std::string &rel, const AIDA::IProfile1D &h)
 
AIDA::IProfile1D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IProfile1D &h)
 
AIDA::IProfile1D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IProfile1D &h)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, double upper, double lower, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower) override
 
AIDA::IProfile2D * createCopy (const std::string &full, const AIDA::IProfile2D &h) override
 
AIDA::IProfile2D * createCopy (const std::string &par, const std::string &rel, const AIDA::IProfile2D &h)
 
AIDA::IProfile2D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IProfile2D &h)
 
AIDA::IProfile2D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IProfile2D &h)
 
AIDA::ICloud1D * createCloud1D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud1D * createCloud1D (const std::string &) override
 
AIDA::ICloud1D * createCopy (const std::string &, const AIDA::ICloud1D &) override
 
AIDA::ICloud2D * createCloud2D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud2D * createCloud2D (const std::string &) override
 
AIDA::ICloud2D * createCopy (const std::string &, const AIDA::ICloud2D &) override
 
AIDA::ICloud3D * createCloud3D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud3D * createCloud3D (const std::string &) override
 
AIDA::ICloud3D * createCopy (const std::string &, const AIDA::ICloud3D &) override
 
std::ostream & print (Base *h, std::ostream &s=std::cout) const override
 Print (ASCII) the 1D histogram into the output stream.
 
std::ostream & write (Base *h, std::ostream &s=std::cout) const override
 Write (ASCII) the 1D histogram table into the output stream.
 
int write (Base *h, const char *file_name) const override
 Write (ASCII) the 1D histogram table into a file.
 
DataObjectcreatePath (const std::string &newPath) override
 Create all directories in a given full path.
 
DataObjectcreateDirectory (const std::string &parentDir, const std::string &subDir) override
 Create a sub-directory in a directory.
 
StatusCode registerObject (std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
 Register object with the data store.
 
StatusCode registerObject (DataObject *parentObj, std::string_view objPath, DataObject *pObject) override
 Register object with the data store.
 
virtual StatusCode findObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Avoids a compiler warning about hidden functions.
 
virtual StatusCode findObject (std::string_view fullPath, DataObject *&pObject)=0
 Avoids a compiler warning about hidden functions.
 
StatusCode findObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Avoids a compiler warning about hidden functions.
 
StatusCode findObject (std::string_view parentPath, int item, DataObject *&pObject)
 Avoids a compiler warning about hidden functions.
 
StatusCode findObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Avoids a compiler warning about hidden functions.
 
StatusCode findObject (DataObject *parentObj, int item, DataObject *&pObject)
 Avoids a compiler warning about hidden functions.
 
StatusCode registerObject (std::string_view fullPath, DataObject *pObject)
 Register object with the data store.
 
StatusCode registerObject (std::string_view parentPath, int item, DataObject *pObject)
 Register object with the data store.
 
StatusCode registerObject (DataObject *parentObj, int item, DataObject *pObject)
 Register object with the data store.
 
virtual StatusCode retrieveObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Retrieve object identified by its directory entry.
 
StatusCode retrieveObject (std::string_view fullPath, DataObject *&pObject)
 Retrieve object identified by its full path from the data store.
 
StatusCode retrieveObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (std::string_view parentPath, int item, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (DataObject *parentObj, int item, DataObject *&pObject)
 Retrieve object from data store.
 
virtual StatusCode unregisterObject (std::string_view fullPath)=0
 Unregister object from the data store.
 
StatusCode unregisterObject (std::string_view parentPath, std::string_view objPath)
 Unregister object from the data store.
 
StatusCode unregisterObject (std::string_view parentPath, int item)
 Unregister object from the data store.
 
virtual StatusCode unregisterObject (DataObject *pObject)=0
 Unregister object from the data store.
 
virtual StatusCode unregisterObject (DataObject *pParent, std::string_view objPath)=0
 Unregister object from the data store.
 
StatusCode unregisterObject (DataObject *pParent, int item)
 Unregister object from the data store.
 
- Public Member Functions inherited from extends< DataSvc, IHistogramSvc >
void const * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast.
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface.
 
std::vector< std::string > getInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames.
 
- Public Member Functions inherited from DataSvc
CLID rootCLID () const override
 IDataManagerSvc: Accessor for root event CLID.
 
const std::string & rootName () const override
 IDataManagerSvc: Accessor for root event name.
 
StatusCode registerAddress (std::string_view fullPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store.
 
StatusCode registerAddress (IRegistry *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store.
 
StatusCode unregisterAddress (std::string_view fullPath) override
 IDataManagerSvc: Unregister object address from the data store.
 
StatusCode unregisterAddress (IRegistry *pParent, std::string_view objPath) override
 IDataManagerSvc: Unregister object address from the data store.
 
StatusCode objectLeaves (const DataObject *pObject, std::vector< IRegistry * > &refLeaves) override
 IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object.
 
StatusCode objectLeaves (const IRegistry *pRegistry, std::vector< IRegistry * > &refLeaves) override
 IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object.
 
StatusCode objectParent (const DataObject *pObject, IRegistry *&refpParent) override
 IDataManagerSvc: Explore the object store: retrieve the object's parent.
 
StatusCode objectParent (const IRegistry *pRegistry, IRegistry *&refpParent) override
 IDataManagerSvc: Explore the object store: retrieve the object's parent.
 
StatusCode clearSubTree (std::string_view sub_tree_path) override
 IDataManagerSvc: Remove all data objects below the sub tree identified by its full path name.
 
StatusCode clearSubTree (DataObject *pObject) override
 IDataManagerSvc: Remove all data objects below the sub tree identified by the object.
 
StatusCode clearStore () override
 IDataManagerSvc: Remove all data objects in the data store.
 
StatusCode traverseSubTree (std::string_view sub_tree_path, IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects below the sub tree identified by its full path name.
 
StatusCode traverseSubTree (DataObject *pObject, IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects below the sub tree.
 
StatusCode traverseTree (IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects in the data store.
 
StatusCode setRoot (std::string root_name, DataObject *pRootObj) override
 Initialize data store for new event by giving new event path and root object.
 
virtual StatusCode i_setRoot (std::string root_name, DataObject *pRootObj)
 Initialize data store for new event by giving new event path and root object.
 
StatusCode setRoot (std::string root_path, IOpaqueAddress *pRootAddr) override
 Initialize data store for new event by giving new event path and address of root object.
 
virtual StatusCode i_setRoot (std::string root_path, IOpaqueAddress *pRootAddr)
 Initialize data store for new event by giving new event path and address of root object.
 
StatusCode setDataLoader (IConversionSvc *svc, IDataProviderSvc *dpsvc=nullptr) override
 IDataManagerSvc: IDataManagerSvc: Pass a default data loader to the service and optionally a data provider.
 
StatusCode addPreLoadItem (const DataStoreItem &item) override
 Add an item to the preload list.
 
StatusCode removePreLoadItem (const DataStoreItem &item) override
 Remove an item from the preload list.
 
StatusCode resetPreLoad () override
 Clear the preload list.
 
virtual StatusCode preLoad (int depth, int load_depth, DataObject *pObject)
 Execute one level of preloading and recursively load until the final level is reached.
 
StatusCode preLoad () override
 load all preload items of the list
 
StatusCode registerObject (std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
 Register object with the data store.
 
StatusCode registerObject (DataObject *parentObj, std::string_view objPath, DataObject *pObject) override
 Register object with the data store.
 
StatusCode unregisterObject (std::string_view fullPath) override
 Unregister object from the data store.
 
StatusCode unregisterObject (DataObject *pObject) override
 Unregister object from the data store.
 
StatusCode unregisterObject (DataObject *pObject, std::string_view objectPath) override
 Unregister object from the data store.
 
StatusCode retrieveObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject) override
 Retrieve object from data store.
 
StatusCode findObject (std::string_view fullPath, DataObject *&pObject) override
 Find object identified by its full path in the data store.
 
StatusCode findObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject) override
 Find object identified by its full path in the data store.
 
StatusCode linkObject (IRegistry *from, std::string_view objPath, DataObject *to) override
 Add a link to another object.
 
StatusCode linkObject (std::string_view fullPath, DataObject *to) override
 Add a link to another object.
 
StatusCode unlinkObject (IRegistry *from, std::string_view objPath) override
 Remove a link to another object.
 
StatusCode unlinkObject (DataObject *fromObj, std::string_view objPath) override
 Remove a link to another object.
 
StatusCode unlinkObject (std::string_view fullPath) override
 Remove a link to another object.
 
StatusCode updateObject (IRegistry *pDirectory) override
 Update object identified by its directory entry.
 
StatusCode updateObject (DataObject *toUpdate) override
 Update object.
 
StatusCode initialize () override
 Service initialization.
 
StatusCode reinitialize () override
 Service initialization.
 
StatusCode finalize () override
 Service initialization.
 
 DataSvc (const DataSvc &)=delete
 copy constructor disabled
 
DataSvcoperator= (const DataSvc &)=delete
 Fake assignment operator (never implemented).
 
StatusCode registerAddress (DataObject *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress)
 Register object address with the data store.
 
StatusCode unregisterAddress (DataObject *pParent, std::string_view objPath)
 Unregister object address from the data store.
 
StatusCode registerObject (std::string_view fullPath, DataObject *pObject)
 Register object with the data store.
 
StatusCode registerObject (std::string_view parentPath, int item, DataObject *pObject)
 Register object with the data store.
 
StatusCode registerObject (DataObject *parentObj, int item, DataObject *pObject)
 Register object with the data store.
 
StatusCode retrieveObject (std::string_view fullPath, DataObject *&pObject)
 Retrieve object identified by its full path from the data store.
 
StatusCode retrieveObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (std::string_view parentPath, int item, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode retrieveObject (DataObject *parentObj, int item, DataObject *&pObject)
 Retrieve object from data store.
 
StatusCode findObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Find object identified by its parent object and the path to the object relative to the parent.
 
StatusCode findObject (std::string_view parentPath, int item, DataObject *&pObject)
 Find object identified by its parent object and an integer identifier in the data store.
 
StatusCode findObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Find object identified by its parent object and the path to the object relative to the parent.
 
StatusCode findObject (DataObject *parentObj, int item, DataObject *&pObject)
 Find object identified by its parent object and an integer identifier in the data store.
 
StatusCode linkObject (std::string_view fromPath, std::string_view objPath, DataObject *toObj)
 Add a link to another object.
 
StatusCode linkObject (DataObject *fromObj, std::string_view objPath, DataObject *toObj)
 Add a link to another object.
 
StatusCode unlinkObject (std::string_view fromPath, std::string_view objPath)
 Remove a link to another object.
 
- Public Member Functions inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
void const * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast.
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface.
 
std::vector< std::string > getInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames.
 
- Public Member Functions inherited from Service
const std::string & name () const override
 Retrieve name of the service.
 
StatusCode configure () override
 
StatusCode initialize () override
 
StatusCode start () override
 
StatusCode stop () override
 
StatusCode finalize () override
 
StatusCode terminate () override
 
Gaudi::StateMachine::State FSMState () const override
 
Gaudi::StateMachine::State targetFSMState () const override
 
StatusCode reinitialize () override
 
StatusCode restart () override
 
StatusCode sysInitialize () override
 Initialize Service.
 
StatusCode sysStart () override
 Initialize Service.
 
StatusCode sysStop () override
 Initialize Service.
 
StatusCode sysFinalize () override
 Finalize Service.
 
StatusCode sysReinitialize () override
 Re-initialize the Service.
 
StatusCode sysRestart () override
 Re-initialize the Service.
 
 Service (std::string name, ISvcLocator *svcloc)
 Standard Constructor.
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator.
 
template<typename IFace = IService>
SmartIF< IFace > service (const std::string &name, bool createIf=true) const
 
template<class T>
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
 
template<class T>
StatusCode declareTool (ToolHandle< T > &handle, bool createIf=true)
 
template<class T>
StatusCode declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true)
 Declare used tool.
 
template<class T>
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
 
template<class T>
void addToolsArray (ToolHandleArray< T > &hndlArr)
 
const std::vector< IAlgTool * > & tools () const
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked.
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property.
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals.
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string.
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value
 
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property.
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property.
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation.
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property.
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property.
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals.
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string.
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name.
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream)
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor.
 
const SmartIF< IMessageSvc > & msgSvc () const
 The standard message service.
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream.
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts.
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS)
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL)
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING)
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO)
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG)
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE)
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO)
 

Protected Types

typedef AIDA::IHistogram3D H3D
 
typedef AIDA::IProfile2D P2D
 
typedef AIDA::IBaseHistogram Base
 

Private Member Functions

void not_implemented () const
 
void update1Ddefs ()
 handler to be invoked for updating property m_defs1D
 
std::string buildHistoPath (DataObject const *pPar, std::string const &rel)
 extracts the path of an histogram from the related DataObject
 

Private Attributes

Gaudi::Property< DBaseEntriesm_input { this, "Input", {}, "input streams" }
 
Gaudi::Property< Histo1DMapm_defs1D
 
std::set< std::string > m_mods1D
 

Additional Inherited Members

- Protected Member Functions inherited from DataSvc
bool checkRoot ()
 Check if root path is valid.
 
virtual IConversionSvcgetDataLoader (IRegistry *pReg)
 Retrieve customizable data loader according to registry entry to be retrieved.
 
virtual DataObjectcreateDefaultObject () const
 Create default objects in case forced creation of leaves is requested.
 
virtual StatusCode loadObject (IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation.
 
virtual StatusCode loadObject (IConversionSvc *pLoader, IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation.
 
StatusCode retrieveEntry (DataSvcHelpers::RegistryEntry *pNode, std::string_view path, DataSvcHelpers::RegistryEntry *&pEntry)
 Retrieve registry entry from store.
 
DataObjecthandleDataFault (IRegistry *pReg, std::string_view path="")
 Invoke data fault handling if enabled.
 
- Protected Member Functions inherited from Service
std::vector< IAlgTool * > & tools ()
 
 ~Service () override
 
int outputLevel () const
 get the Service's output level
 
- Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level setUpMessaging () const
 Set up local caches.
 
MSG::Level resetMessaging ()
 Reinitialize internal states.
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream.
 
- Protected Attributes inherited from DataSvc
SmartIF< IIncidentSvcm_incidentSvc = nullptr
 Pointer to incident service.
 
Gaudi::Property< CLIDm_rootCLID { this, "RootCLID", 110 , "CLID of root entry" }
 
Gaudi::Property< std::string > m_rootName { this, "RootName", "/Event", "name of root entry" }
 
std::unique_ptr< DataSvcHelpers::RegistryEntrym_root
 Pointer to root entry.
 
- Protected Attributes inherited from Service
Gaudi::StateMachine::State m_state = Gaudi::StateMachine::OFFLINE
 Service state.
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::OFFLINE
 Service state.
 
Gaudi::Property< int > m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" }
 flag indicating whether ToolHandle tools have been added to m_tools
 
Gaudi::Property< bool > m_auditorInitialize { this, "AuditInitialize", false, "trigger auditor on initialize()" }
 
Gaudi::Property< bool > m_auditorStart { this, "AuditStart", false, "trigger auditor on start()" }
 
Gaudi::Property< bool > m_auditorStop { this, "AuditStop", false, "trigger auditor on stop()" }
 
Gaudi::Property< bool > m_auditorFinalize { this, "AuditFinalize", false, "trigger auditor on finalize()" }
 
Gaudi::Property< bool > m_auditorReinitialize { this, "AuditReinitialize", false, "trigger auditor on reinitialize()" }
 
Gaudi::Property< bool > m_auditorRestart { this, "AuditRestart", false, "trigger auditor on restart()" }
 
Gaudi::Property< bool > m_autoRetrieveTools
 
Gaudi::Property< bool > m_checkToolDeps
 
SmartIF< IAuditorSvcm_pAuditorSvc
 Auditor Service.
 

Detailed Description

HistogramSvc class definition.

Definition at line 60 of file HistogramSvc.h.

Member Typedef Documentation

◆ Base

typedef AIDA::IBaseHistogram HistogramSvc::Base
protected

Definition at line 68 of file HistogramSvc.h.

◆ DBaseEntries

using HistogramSvc::DBaseEntries = std::vector<std::string>

Definition at line 145 of file HistogramSvc.h.

◆ Edges

using HistogramSvc::Edges = std::vector<double>

Definition at line 144 of file HistogramSvc.h.

◆ H3D

typedef AIDA::IHistogram3D HistogramSvc::H3D
protected

Definition at line 66 of file HistogramSvc.h.

◆ Histo1DMap

typedef std::map<std::string, Gaudi::Histo1DDef> HistogramSvc::Histo1DMap

Definition at line 1071 of file HistogramSvc.h.

◆ P2D

typedef AIDA::IProfile2D HistogramSvc::P2D
protected

Definition at line 67 of file HistogramSvc.h.

Constructor & Destructor Documentation

◆ HistogramSvc()

HistogramSvc::HistogramSvc ( const std::string & name,
ISvcLocator * svc )

Statndard Constructor.

Parameters
nameservice name
pointerto service locator interface

Definition at line 338 of file HistogramSvc.cpp.

338 : base_class( nam, svc ) {
339 m_rootName = "/stat";
340 m_rootCLID = CLID_DataObject;
341}
Gaudi::Property< std::string > m_rootName
Definition DataSvc.h:53
Gaudi::Property< CLID > m_rootCLID
Definition DataSvc.h:52

◆ ~HistogramSvc()

HistogramSvc::~HistogramSvc ( )
override

Destructor.

Definition at line 181 of file HistogramSvc.cpp.

181 {
182 setDataLoader( nullptr ).ignore();
183 clearStore().ignore();
184}
StatusCode setDataLoader(IConversionSvc *svc, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: IDataManagerSvc: Pass a default data loader to the service and optionally a data pro...
Definition DataSvc.cpp:160
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition DataSvc.cpp:85
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Definition StatusCode.h:139

Member Function Documentation

◆ add() [1/3]

AIDA::IHistogram1D * HistogramSvc::add ( const std::string & nameAndTitle,
const AIDA::IHistogram1D & a,
const AIDA::IHistogram1D & b )
override

Definition at line 1317 of file HistogramSvc.cpp.

1318 {
1319 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, 1. );
1320}
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)

◆ add() [2/3]

AIDA::IHistogram2D * HistogramSvc::add ( const std::string & nameAndTitle,
const AIDA::IHistogram2D & a,
const AIDA::IHistogram2D & b )
override

Definition at line 1341 of file HistogramSvc.cpp.

1342 {
1343 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, 1. );
1344}

◆ add() [3/3]

AIDA::IHistogram3D * HistogramSvc::add ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & a,
const AIDA::IHistogram3D & b )
override

Definition at line 1365 of file HistogramSvc.cpp.

1366 {
1367 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, 1. );
1368}

◆ book() [1/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges e )
virtual

Definition at line 493 of file HistogramSvc.cpp.

494 {
495 return book( loc.first, loc.second, title, e );
496}
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.

◆ book() [2/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges x,
Edges y )
virtual

Definition at line 714 of file HistogramSvc.cpp.

715 {
716 return book( loc.first, loc.second, title, x, y );
717}

◆ book() [3/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges x,
Edges y,
Edges z )
virtual

Definition at line 867 of file HistogramSvc.cpp.

868 {
869 return book( loc.first, loc.second, title, x, y, z );
870}

◆ book() [4/36]

virtual AIDA::IHistogram1D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx )
virtual

◆ book() [5/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
virtual

Definition at line 598 of file HistogramSvc.cpp.

599 {
600 return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
601}

◆ book() [6/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
virtual

Definition at line 828 of file HistogramSvc.cpp.

830 {
831 return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
832}

◆ book() [7/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & full,
const std::string & title,
Edges e )
override

Definition at line 499 of file HistogramSvc.cpp.

499 {
500 return book( i_splitPath( full ), title, e );
501}
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.

◆ book() [8/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & full,
const std::string & title,
Edges x,
Edges y )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
x/yBin edges for variable binned histogram in X/Y.

Definition at line 698 of file HistogramSvc.cpp.

698 {
699 return book( i_splitPath( full ), title, x, y );
700}

◆ book() [9/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & full,
const std::string & title,
Edges x,
Edges y,
Edges z )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
binsX/Y/ZNumber of bins on the axis X/Y/Z
lowX/Y/ZLower histogram edge on the axis X/Y/Z
highX/Y/ZUpper histogram edge on the axis X/Y/Z

Definition at line 844 of file HistogramSvc.cpp.

844 {
845 return book( i_splitPath( full ), title, x, y, z );
846}

◆ book() [10/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx )
override

◆ book() [11/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
nxNumber of bins on the X-axis
lxLower histogram edge on the X-axis
uxUpper histogram edge on the X-axis
nyNumber of bins on the Y-axis
lyLower histogram edge on the Y-axis
uyUpper histogram edge on the Y-axis

Definition at line 580 of file HistogramSvc.cpp.

581 {
582 return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
583}

◆ book() [12/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
n{x,y,z}Number of bins on the axis X/Y/Z
l{x,y,z}Lower histogram edge on the axis X/Y/Z
u{x,y,z}Upper histogram edge on the axis X/Y/Z

Definition at line 803 of file HistogramSvc.cpp.

804 {
805 return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
806}

◆ book() [13/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges e )
override

Definition at line 487 of file HistogramSvc.cpp.

488 {
489 return book( createPath( par ), rel, title, e );
490}
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.

◆ book() [14/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 703 of file HistogramSvc.cpp.

704 {
705 return book( createPath( par ), rel, title, x, y );
706}

◆ book() [15/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges x,
Edges y,
Edges z )
override

Definition at line 849 of file HistogramSvc.cpp.

850 {
851 return book( createPath( par ), rel, title, x, y, z );
852}

◆ book() [16/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the fullpath) has to be an integer number otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
nxNumber of bins on the axis X/Y
lxLower histogram edge on the axis X/Y
uxUpper histogram edge on the axis X/Y

◆ book() [17/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 586 of file HistogramSvc.cpp.

587 {
588 return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
589}

◆ book() [18/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Definition at line 809 of file HistogramSvc.cpp.

811 {
812 return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
813}

◆ book() [19/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
Edges e )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the fullpath) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
eBin edges for variable binned histogram.

Definition at line 477 of file HistogramSvc.cpp.

477 {
478 return book( par, std::to_string( hID ), title, e );
479}

◆ book() [20/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 709 of file HistogramSvc.cpp.

709 {
710 return book( par, std::to_string( hID ), title, x, y );
711}

◆ book() [21/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
Edges x,
Edges y,
Edges z )
override

Definition at line 855 of file HistogramSvc.cpp.

856 {
857 return book( par, std::to_string( hID ), title, x, y, z );
858}

◆ book() [22/36]

AIDA::IHistogram1D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx )
override

◆ book() [23/36]

AIDA::IHistogram2D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 592 of file HistogramSvc.cpp.

593 {
594 return book( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
595}

◆ book() [24/36]

AIDA::IHistogram3D * HistogramSvc::book ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Definition at line 816 of file HistogramSvc.cpp.

817 {
818 return book( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
819}

◆ book() [25/36]

AIDA::IHistogram1D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges e )
override

Definition at line 504 of file HistogramSvc.cpp.

504 {
505 return i_book( pPar, rel, title, Gaudi::createH1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e ) );
506}
std::string buildHistoPath(DataObject const *pPar, std::string const &rel)
extracts the path of an histogram from the related DataObject
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition Service.cpp:336
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram1D &hist)
Copy constructor.

◆ book() [26/36]

AIDA::IHistogram2D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 725 of file HistogramSvc.cpp.

726 {
727 return i_book( pPar, rel, title, Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y ) );
728}
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram2D &hist)
Copy constructor.

◆ book() [27/36]

AIDA::IHistogram3D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges x,
Edges y,
Edges z )
override

Definition at line 873 of file HistogramSvc.cpp.

874 {
875 return i_book( pPar, rel, title, Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, z ) );
876}
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram3D &hist)
Copy constructor.

◆ book() [28/36]

AIDA::IHistogram1D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx )
override

◆ book() [29/36]

AIDA::IHistogram2D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 610 of file HistogramSvc.cpp.

611 {
612 return i_book(
613 pPar, rel, title,
614 Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy ) );
615}

◆ book() [30/36]

AIDA::IHistogram3D * HistogramSvc::book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Definition at line 835 of file HistogramSvc.cpp.

837 {
838 return i_book( pPar, rel, title,
839 Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy,
840 nz, lowz, upz ) );
841}

◆ book() [31/36]

AIDA::IHistogram1D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
Edges e )
override

Definition at line 482 of file HistogramSvc.cpp.

482 {
483 return book( pPar, std::to_string( hID ), title, e );
484}

◆ book() [32/36]

AIDA::IHistogram2D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 720 of file HistogramSvc.cpp.

720 {
721 return book( pPar, std::to_string( hID ), title, x, y );
722}

◆ book() [33/36]

AIDA::IHistogram3D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
Edges x,
Edges y,
Edges z )
override

Definition at line 861 of file HistogramSvc.cpp.

862 {
863 return book( pPar, std::to_string( hID ), title, x, y, z );
864}

◆ book() [34/36]

AIDA::IHistogram1D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx )
override

◆ book() [35/36]

AIDA::IHistogram2D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 604 of file HistogramSvc.cpp.

605 {
606 return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
607}

◆ book() [36/36]

AIDA::IHistogram3D * HistogramSvc::book ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Definition at line 822 of file HistogramSvc.cpp.

823 {
824 return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
825}

◆ bookProf() [1/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges e )
virtual

Definition at line 530 of file HistogramSvc.cpp.

531 {
532 return bookProf( loc.first, loc.second, title, e );
533}
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.

◆ bookProf() [2/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 567 of file HistogramSvc.cpp.

568 {
569 return bookProf( loc.first, loc.second, title, e, upper, lower );
570}

◆ bookProf() [3/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges x,
Edges y )
virtual

Definition at line 753 of file HistogramSvc.cpp.

754 {
755 return bookProf( loc.first, loc.second, title, x, y );
756}

◆ bookProf() [4/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 790 of file HistogramSvc.cpp.

791 {
792 return bookProf( loc.first, loc.second, title, x, y, upper, lower );
793}

◆ bookProf() [5/48]

virtual AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
virtual

◆ bookProf() [6/48]

virtual AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
virtual

◆ bookProf() [7/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
virtual

Definition at line 672 of file HistogramSvc.cpp.

673 {
674 return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
675}

◆ bookProf() [8/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > & loc,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Definition at line 631 of file HistogramSvc.cpp.

633 {
634 return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
635}

◆ bookProf() [9/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
Edges e )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
eBin edges for variable binned histogram.

Definition at line 509 of file HistogramSvc.cpp.

509 {
510 return bookProf( i_splitPath( full ), title, e );
511}

◆ bookProf() [10/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 543 of file HistogramSvc.cpp.

544 {
545 return bookProf( i_splitPath( full ), title, e, upper, lower );
546}

◆ bookProf() [11/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
Edges x,
Edges y )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
x/yBin edges for variable binned histogram in X/Y.

Definition at line 731 of file HistogramSvc.cpp.

731 {
732 return bookProf( i_splitPath( full ), title, x, y );
733}

◆ bookProf() [12/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 766 of file HistogramSvc.cpp.

767 {
768 return bookProf( i_splitPath( full ), title, x, y, upper, lower );
769}

◆ bookProf() [13/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

◆ bookProf() [14/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

◆ bookProf() [15/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 660 of file HistogramSvc.cpp.

661 {
662 return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
663}

◆ bookProf() [16/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & full,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the full) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
nxNumber of bins on the X-axis
lxLower histogram edge on the X-axis
uxUpper histogram edge on the X-axis
nyNumber of bins on the Y-axis
lyLower histogram edge on the Y-axis
uyUpper histogram edge on the Y-axis

Definition at line 618 of file HistogramSvc.cpp.

619 {
620 return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
621}

◆ bookProf() [17/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges e )
override

Definition at line 514 of file HistogramSvc.cpp.

515 {
516 return bookProf( createPath( par ), rel, title, e );
517}

◆ bookProf() [18/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 549 of file HistogramSvc.cpp.

550 {
551 return bookProf( createPath( par ), rel, title, e, upper, lower );
552}

◆ bookProf() [19/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 736 of file HistogramSvc.cpp.

737 {
738 return bookProf( createPath( par ), rel, title, x, y );
739}

◆ bookProf() [20/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 772 of file HistogramSvc.cpp.

773 {
774 return bookProf( createPath( par ), rel, title, x, y, upper, lower );
775}

◆ bookProf() [21/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

Book histogram and register it with the histogram data store.

Parameters
fullFull path to the node of the object. The basename (last part of the fullpath) has to be an integer number (otherwise conversion to HBOOK is not possible)
parPath to parent node of the object, the directory the histogram will be stored in.
pParPointer to parent node
relHistogram identifier (std::string), the relative path to the object with respect to the parent node
hIDHistogram identifier (int) of the histogram
titleTitle property of the histogram
nxNumber of bins on the axis X/Y
lxLower histogram edge on the axis X/Y
uxUpper histogram edge on the axis X/Y

◆ bookProf() [22/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

◆ bookProf() [23/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 666 of file HistogramSvc.cpp.

667 {
668 return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
669}

◆ bookProf() [24/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Definition at line 624 of file HistogramSvc.cpp.

626 {
627 return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
628}

◆ bookProf() [25/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
Edges e )
override

Definition at line 520 of file HistogramSvc.cpp.

520 {
521 return bookProf( par, std::to_string( hID ), title, e );
522}

◆ bookProf() [26/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 555 of file HistogramSvc.cpp.

556 {
557 return bookProf( par, std::to_string( hID ), title, e, upper, lower );
558}

◆ bookProf() [27/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 742 of file HistogramSvc.cpp.

743 {
744 return bookProf( par, std::to_string( hID ), title, x, y );
745}

◆ bookProf() [28/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 778 of file HistogramSvc.cpp.

779 {
780 return bookProf( par, std::to_string( hID ), title, x, y, upper, lower );
781}

◆ bookProf() [29/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

◆ bookProf() [30/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

◆ bookProf() [31/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 678 of file HistogramSvc.cpp.

679 {
680 return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
681}

◆ bookProf() [32/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string & par,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Definition at line 638 of file HistogramSvc.cpp.

640 {
641 return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
642}

◆ bookProf() [33/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges e )
override

Definition at line 536 of file HistogramSvc.cpp.

537 {
538 return i_book( pPar, rel, title,
539 Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e, 0, 0 ) );
540}
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IProfile1D &hist)
Copy constructor.

◆ bookProf() [34/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 573 of file HistogramSvc.cpp.

574 {
575 return i_book( pPar, rel, title,
576 Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e, upper, lower ) );
577}

◆ bookProf() [35/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 759 of file HistogramSvc.cpp.

760 {
761 return i_book( pPar, rel, title,
762 Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, 0, 0 ) );
763}
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IProfile2D &hist)
Copy constructor.

◆ bookProf() [36/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 796 of file HistogramSvc.cpp.

797 {
798 return i_book( pPar, rel, title,
799 Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, upper, lower ) );
800}

◆ bookProf() [37/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

◆ bookProf() [38/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

◆ bookProf() [39/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 690 of file HistogramSvc.cpp.

691 {
692 return i_book(
693 pPar, rel, title,
694 Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy, 0, 0 ) );
695}

◆ bookProf() [40/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
const std::string & rel,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Definition at line 651 of file HistogramSvc.cpp.

653 {
654 return i_book( pPar, rel, title,
655 Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy,
656 upy, upper, lower ) );
657}

◆ bookProf() [41/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
Edges e )
override

Definition at line 525 of file HistogramSvc.cpp.

525 {
526 return bookProf( pPar, std::to_string( hID ), title, e );
527}

◆ bookProf() [42/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
Edges e,
double upper,
double lower )
virtual

Definition at line 561 of file HistogramSvc.cpp.

562 {
563 return bookProf( pPar, std::to_string( hID ), title, e, upper, lower );
564}

◆ bookProf() [43/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
Edges x,
Edges y )
override

Definition at line 748 of file HistogramSvc.cpp.

748 {
749 return bookProf( pPar, std::to_string( hID ), title, x, y );
750}

◆ bookProf() [44/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
Edges x,
Edges y,
double upper,
double lower )
virtual

Definition at line 784 of file HistogramSvc.cpp.

785 {
786 return bookProf( pPar, std::to_string( hID ), title, x, y, upper, lower );
787}

◆ bookProf() [45/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

◆ bookProf() [46/48]

AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

◆ bookProf() [47/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 684 of file HistogramSvc.cpp.

685 {
686 return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
687}

◆ bookProf() [48/48]

AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject * pPar,
int hID,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
virtual

Definition at line 645 of file HistogramSvc.cpp.

646 {
647 return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
648}

◆ buildHistoPath()

std::string HistogramSvc::buildHistoPath ( DataObject const * pPar,
std::string const & rel )
private

extracts the path of an histogram from the related DataObject

Definition at line 349 of file HistogramSvc.cpp.

349 {
350 std::string const& path = pPar->registry()->identifier();
351 std::string const& root = rootName();
352 return path.substr( root.size() ) + '/' + rel;
353}
const std::string & rootName() const override
IDataManagerSvc: Accessor for root event name.
Definition DataSvc.cpp:841
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram

◆ connectInput()

StatusCode HistogramSvc::connectInput ( const std::string & ident)

Connect input histogram file to the service.

Parameters
ident[IN] Input specification

Definition at line 187 of file HistogramSvc.cpp.

187 {
188 using Parser = Gaudi::Utils::AttribStringParser;
189 DataObject* pO = nullptr;
190 StatusCode status = this->findObject( m_rootName.value(), pO );
191 if ( status.isSuccess() ) {
192 string::size_type loc = ident.find( " " );
193 string filename, auth, svc = "", typ = "";
194 string logname = ident.substr( 0, loc );
195 for ( auto attrib : Parser( ident.substr( loc + 1 ) ) ) {
196 switch ( ::toupper( attrib.tag[0] ) ) {
197 case 'F': // FILE='<file name>'
198 case 'D': // DATAFILE='<file name>'
199 filename = std::move( attrib.value );
200 break;
201 case 'T': // TYP='<HBOOK,ROOT,OBJY,...>'
202 typ = std::move( attrib.value );
203 break;
204 default:
205 break;
206 }
207 }
208 if ( typ.length() > 0 ) {
209 // Now add the registry entry to the store
210 string entryname = m_rootName;
211 entryname += '/';
212 entryname += logname;
213 GenericAddress* pA = nullptr;
214 switch ( ::toupper( typ[0] ) ) {
215 case 'H':
216 pA = new GenericAddress( HBOOK_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
217 break;
218 case 'R':
219 pA = new GenericAddress( ROOT_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
220 break;
221 }
222 if ( pA ) {
223 status = registerAddress( pO, logname, pA );
224 if ( status.isSuccess() ) {
225 info() << "Added stream file:" << filename << " as " << logname << endmsg;
226 return status;
227 }
228 pA->release();
229 }
230 }
231 }
232 error() << "Cannot add " << ident << " invalid filename!" << endmsg;
233 return StatusCode::FAILURE;
234}
const long HBOOK_StorageType
Definition ClassID.h:64
const long ROOT_StorageType
Definition ClassID.h:60
void toupper(std::string &s)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition MsgStream.h:198
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress) override
IDataManagerSvc: Register object address with the data store.
Definition DataSvc.cpp:198
unsigned long release() override
release reference to object
StatusCode findObject(IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
bool isSuccess() const
Definition StatusCode.h:314
constexpr static const auto FAILURE
Definition StatusCode.h:100

◆ createCloud1D() [1/2]

AIDA::ICloud1D * HistogramSvc::createCloud1D ( const std::string & )
inlineoverride

Definition at line 1007 of file HistogramSvc.h.

1007 {
1009 return nullptr;
1010 }
void not_implemented() const

◆ createCloud1D() [2/2]

AIDA::ICloud1D * HistogramSvc::createCloud1D ( const std::string & ,
const std::string & ,
int ,
const std::string &  )
inlineoverride

Definition at line 1002 of file HistogramSvc.h.

1002 {
1004 return nullptr;
1005 }

◆ createCloud2D() [1/2]

AIDA::ICloud2D * HistogramSvc::createCloud2D ( const std::string & )
inlineoverride

Definition at line 1022 of file HistogramSvc.h.

1022 {
1024 return nullptr;
1025 }

◆ createCloud2D() [2/2]

AIDA::ICloud2D * HistogramSvc::createCloud2D ( const std::string & ,
const std::string & ,
int ,
const std::string &  )
inlineoverride

Definition at line 1017 of file HistogramSvc.h.

1017 {
1019 return nullptr;
1020 }

◆ createCloud3D() [1/2]

AIDA::ICloud3D * HistogramSvc::createCloud3D ( const std::string & )
inlineoverride

Definition at line 1037 of file HistogramSvc.h.

1037 {
1039 return nullptr;
1040 }

◆ createCloud3D() [2/2]

AIDA::ICloud3D * HistogramSvc::createCloud3D ( const std::string & ,
const std::string & ,
int ,
const std::string &  )
inlineoverride

Definition at line 1032 of file HistogramSvc.h.

1032 {
1034 return nullptr;
1035 }

◆ createCopy() [1/23]

AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > & loc,
const AIDA::IHistogram1D & h )

Definition at line 1439 of file HistogramSvc.cpp.

1440 {
1441 return createCopy( loc.first, loc.second, h );
1442}

◆ createCopy() [2/23]

AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > & loc,
const AIDA::IHistogram2D & h )

Definition at line 1486 of file HistogramSvc.cpp.

1487 {
1488 return createCopy( loc.first, loc.second, h );
1489}

◆ createCopy() [3/23]

AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > & loc,
const AIDA::IHistogram3D & h )

Definition at line 1535 of file HistogramSvc.cpp.

1536 {
1537 return createCopy( loc.first, loc.second, h );
1538}

◆ createCopy() [4/23]

AIDA::IProfile1D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > & loc,
const AIDA::IProfile1D & h )

Definition at line 1592 of file HistogramSvc.cpp.

1593 {
1594 return createCopy( loc.first, loc.second, h );
1595}

◆ createCopy() [5/23]

AIDA::IProfile2D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > & loc,
const AIDA::IProfile2D & h )

Definition at line 1666 of file HistogramSvc.cpp.

1667 {
1668 return createCopy( loc.first, loc.second, h );
1669}

◆ createCopy() [6/23]

AIDA::ICloud1D * HistogramSvc::createCopy ( const std::string & ,
const AIDA::ICloud1D &  )
inlineoverride

Definition at line 1012 of file HistogramSvc.h.

1012 {
1014 return nullptr;
1015 }

◆ createCopy() [7/23]

AIDA::ICloud2D * HistogramSvc::createCopy ( const std::string & ,
const AIDA::ICloud2D &  )
inlineoverride

Definition at line 1027 of file HistogramSvc.h.

1027 {
1029 return nullptr;
1030 }

◆ createCopy() [8/23]

AIDA::ICloud3D * HistogramSvc::createCopy ( const std::string & ,
const AIDA::ICloud3D &  )
inlineoverride

Definition at line 1042 of file HistogramSvc.h.

1042 {
1044 return nullptr;
1045 }

◆ createCopy() [9/23]

AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::string & full,
const AIDA::IHistogram1D & h )
override

Definition at line 1428 of file HistogramSvc.cpp.

1428 {
1429 return createCopy( i_splitPath( full ), h );
1430}

◆ createCopy() [10/23]

AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::string & full,
const AIDA::IHistogram2D & h )
override

Definition at line 1475 of file HistogramSvc.cpp.

1475 {
1476 return createCopy( i_splitPath( full ), h );
1477}

◆ createCopy() [11/23]

AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::string & full,
const AIDA::IHistogram3D & h )
override

Definition at line 1524 of file HistogramSvc.cpp.

1524 {
1525 return createCopy( i_splitPath( full ), h );
1526}

◆ createCopy() [12/23]

AIDA::IProfile1D * HistogramSvc::createCopy ( const std::string & full,
const AIDA::IProfile1D & h )
override

Definition at line 1581 of file HistogramSvc.cpp.

1581 {
1582 return createCopy( i_splitPath( full ), h );
1583}

◆ createCopy() [13/23]

AIDA::IProfile2D * HistogramSvc::createCopy ( const std::string & full,
const AIDA::IProfile2D & h )
override

Definition at line 1655 of file HistogramSvc.cpp.

1655 {
1656 return createCopy( i_splitPath( full ), h );
1657}

◆ createCopy() [14/23]

AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::string & par,
const std::string & rel,
const AIDA::IHistogram1D & h )

Definition at line 1433 of file HistogramSvc.cpp.

1434 {
1435 return createCopy( createPath( par ), rel, h );
1436}

◆ createCopy() [15/23]

AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::string & par,
const std::string & rel,
const AIDA::IHistogram2D & h )

Definition at line 1480 of file HistogramSvc.cpp.

1481 {
1482 return createCopy( createPath( par ), rel, h );
1483}

◆ createCopy() [16/23]

AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::string & par,
const std::string & rel,
const AIDA::IHistogram3D & h )

Definition at line 1529 of file HistogramSvc.cpp.

1530 {
1531 return createCopy( createPath( par ), rel, h );
1532}

◆ createCopy() [17/23]

AIDA::IProfile1D * HistogramSvc::createCopy ( const std::string & par,
const std::string & rel,
const AIDA::IProfile1D & h )

Definition at line 1586 of file HistogramSvc.cpp.

1587 {
1588 return createCopy( createPath( par ), rel, h );
1589}

◆ createCopy() [18/23]

AIDA::IProfile2D * HistogramSvc::createCopy ( const std::string & par,
const std::string & rel,
const AIDA::IProfile2D & h )

Definition at line 1660 of file HistogramSvc.cpp.

1661 {
1662 return createCopy( createPath( par ), rel, h );
1663}

◆ createCopy() [19/23]

AIDA::IHistogram1D * HistogramSvc::createCopy ( DataObject * pPar,
const std::string & rel,
const AIDA::IHistogram1D & h )

Definition at line 1445 of file HistogramSvc.cpp.

1445 {
1446 return i_book( pPar, rel, h.title(), Gaudi::createH1D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1447}

◆ createCopy() [20/23]

AIDA::IHistogram2D * HistogramSvc::createCopy ( DataObject * pPar,
const std::string & rel,
const AIDA::IHistogram2D & h )

Definition at line 1492 of file HistogramSvc.cpp.

1492 {
1493 return i_book( pPar, rel, h.title(), Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1494}

◆ createCopy() [21/23]

AIDA::IHistogram3D * HistogramSvc::createCopy ( DataObject * pPar,
const std::string & rel,
const AIDA::IHistogram3D & h )

Definition at line 1541 of file HistogramSvc.cpp.

1541 {
1542 return i_book( pPar, rel, h.title(), Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1543}

◆ createCopy() [22/23]

AIDA::IProfile1D * HistogramSvc::createCopy ( DataObject * pPar,
const std::string & rel,
const AIDA::IProfile1D & h )

Definition at line 1598 of file HistogramSvc.cpp.

1598 {
1599 return i_book( pPar, rel, h.title(), Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1600}

◆ createCopy() [23/23]

AIDA::IProfile2D * HistogramSvc::createCopy ( DataObject * pPar,
const std::string & rel,
const AIDA::IProfile2D & h )

Definition at line 1672 of file HistogramSvc.cpp.

1672 {
1673 return i_book( pPar, rel, h.title(), Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1674}

◆ createDirectory()

DataObject * HistogramSvc::createDirectory ( const std::string & parentDir,
const std::string & subDir )
override

Create a sub-directory in a directory.

Parameters
parentDirname of the parent directory
subDirto identify the histogram object in the store

Definition at line 162 of file HistogramSvc.cpp.

162 {
163 auto directory = std::make_unique<DataObject>();
164 if ( directory ) {
165 DataObject* pnode;
166 StatusCode status = retrieveObject( parentDir, pnode );
167 if ( !status.isSuccess() ) {
168 error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
169 return nullptr;
170 }
171 status = DataSvc::registerObject( pnode, subDir, directory.get() );
172 if ( !status.isSuccess() ) {
173 error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
174 return nullptr;
175 }
176 }
177 return directory.release();
178}
StatusCode registerObject(std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
Register object with the data store.
Definition DataSvc.cpp:276
StatusCode retrieveObject(IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override

◆ createHistogram1D() [1/4]

AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string & name,
const std::string & title,
const Edges & x,
const std::string &  )
override

Definition at line 1416 of file HistogramSvc.cpp.

1417 {
1418 return book( name, title, x );
1419}
const std::string & name() const override
Retrieve name of the service.
Definition Service.cpp:333

◆ createHistogram1D() [2/4]

AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx )

Definition at line 1404 of file HistogramSvc.cpp.

1405 {
1406 return book( name, title, nx, lowx, upx );
1407}

◆ createHistogram1D() [3/4]

AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string &  )
override

Definition at line 1410 of file HistogramSvc.cpp.

1411 {
1412 return book( name, title, nx, lowx, upx );
1413}

◆ createHistogram1D() [4/4]

AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string & nameAndTitle,
int nx,
double lowx,
double upx )
override

Definition at line 1422 of file HistogramSvc.cpp.

1423 {
1424 return book( nameAndTitle, nameAndTitle, nx, lowx, upx );
1425}

◆ createHistogram2D() [1/4]

AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string & name,
const std::string & title,
const Edges & x,
const Edges & y,
const std::string &  )
override

Definition at line 1463 of file HistogramSvc.cpp.

1464 {
1465 return book( name, title, x, y );
1466}

◆ createHistogram2D() [2/4]

AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )

Definition at line 1450 of file HistogramSvc.cpp.

1451 {
1452 return book( name, title, nx, lowx, upx, ny, lowy, upy );
1453}

◆ createHistogram2D() [3/4]

AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
const std::string &  )
override

Definition at line 1456 of file HistogramSvc.cpp.

1458 {
1459 return book( name, title, nx, lowx, upx, ny, lowy, upy );
1460}

◆ createHistogram2D() [4/4]

AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string & nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 1469 of file HistogramSvc.cpp.

1470 {
1471 return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1472}

◆ createHistogram3D() [1/4]

AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string & name,
const std::string & title,
const Edges & x,
const Edges & y,
const Edges & z,
const std::string &  )
override

Definition at line 1511 of file HistogramSvc.cpp.

1512 {
1513 return book( name, title, x, y, z );
1514}

◆ createHistogram3D() [2/4]

AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )

Definition at line 1497 of file HistogramSvc.cpp.

1499 {
1500 return book( name, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1501}

◆ createHistogram3D() [3/4]

AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz,
const std::string &  )
override

Definition at line 1504 of file HistogramSvc.cpp.

1506 {
1507 return book( name, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1508}

◆ createHistogram3D() [4/4]

AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string & nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
int nz,
double lowz,
double upz )
override

Definition at line 1517 of file HistogramSvc.cpp.

1519 {
1520 return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1521}

◆ createPath()

DataObject * HistogramSvc::createPath ( const std::string & newPath)
override

Create all directories in a given full path.

Definition at line 137 of file HistogramSvc.cpp.

137 {
138 string tmpPath = newPath;
139 if ( tmpPath[0] != SEPARATOR ) {
140 tmpPath.insert( tmpPath.begin(), SEPARATOR );
141 tmpPath.insert( tmpPath.begin(), m_rootName.begin(), m_rootName.end() );
142 }
143 // Remove trailing "/" from newPath if it exists
144 if ( tmpPath.rfind( SEPARATOR ) == tmpPath.length() - 1 ) { tmpPath.erase( tmpPath.rfind( SEPARATOR ), 1 ); }
145 DataObject* pObject = nullptr;
146 StatusCode sc = findObject( tmpPath, pObject );
147 if ( sc.isSuccess() ) { return pObject; }
148 int sep = tmpPath.rfind( SEPARATOR );
149 string rest( tmpPath, sep + 1, tmpPath.length() - sep );
150 string subPath( tmpPath, 0, sep );
151 if ( 0 != sep ) {
152 createPath( subPath );
153 } else {
154 error() << "Unable to create the histogram path" << endmsg;
155 return nullptr;
156 }
157 pObject = createDirectory( subPath, rest );
158 return pObject;
159}
DataObject * createDirectory(const std::string &parentDir, const std::string &subDir) override
Create a sub-directory in a directory.

◆ createProfile1D() [1/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & name,
const std::string & title,
const Edges & x,
const std::string &  )
override

Definition at line 1558 of file HistogramSvc.cpp.

1559 {
1560 return bookProf( name, title, x );
1561}

◆ createProfile1D() [2/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & name,
const std::string & title,
const Edges & x,
double upper,
double lower,
const std::string &  )
override

Definition at line 1564 of file HistogramSvc.cpp.

1565 {
1566 return bookProf( name, title, x, upper, lower );
1567}

◆ createProfile1D() [3/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
const std::string & opt )
override

Definition at line 1546 of file HistogramSvc.cpp.

1547 {
1548 return bookProf( name, title, nx, lowx, upx, opt );
1549}

◆ createProfile1D() [4/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
double upper,
double lower,
const std::string & opt )
override

Definition at line 1552 of file HistogramSvc.cpp.

1553 {
1554 return bookProf( name, title, nx, lowx, upx, upper, lower, opt );
1555}

◆ createProfile1D() [5/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & nametit,
int nx,
double lowx,
double upx )
override

Definition at line 1570 of file HistogramSvc.cpp.

1570 {
1571 return bookProf( nametit, nametit, nx, lowx, upx, "s" );
1572}

◆ createProfile1D() [6/6]

AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string & nametit,
int nx,
double lowx,
double upx,
double upper,
double lower )
override

Definition at line 1575 of file HistogramSvc.cpp.

1576 {
1577 return bookProf( nametit, nametit, nx, lowx, upx, upper, lower, "s" );
1578}

◆ createProfile2D() [1/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
const Edges & x,
const Edges & y,
const std::string &  )
override

Definition at line 1616 of file HistogramSvc.cpp.

1617 {
1618 return bookProf( name, title, x, y );
1619}

◆ createProfile2D() [2/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
const Edges & x,
const Edges & y,
double upper,
double lower,
const std::string &  )
override

Definition at line 1642 of file HistogramSvc.cpp.

1644 {
1645 return bookProf( name, title, x, y, upper, lower );
1646}

◆ createProfile2D() [3/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )

Definition at line 1603 of file HistogramSvc.cpp.

1604 {
1605 return bookProf( name, title, nx, lowx, upx, ny, lowy, upy );
1606}

◆ createProfile2D() [4/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
const std::string &  )
override

Definition at line 1609 of file HistogramSvc.cpp.

1611 {
1612 return bookProf( name, title, nx, lowx, upx, ny, lowy, upy );
1613}

◆ createProfile2D() [5/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )

Definition at line 1628 of file HistogramSvc.cpp.

1630 {
1631 return bookProf( name, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
1632}

◆ createProfile2D() [6/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & name,
const std::string & title,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower,
const std::string &  )
override

Definition at line 1635 of file HistogramSvc.cpp.

1637 {
1638 return bookProf( name, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
1639}

◆ createProfile2D() [7/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy )
override

Definition at line 1622 of file HistogramSvc.cpp.

1623 {
1624 return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1625}

◆ createProfile2D() [8/8]

AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string & nameAndTitle,
int nx,
double lowx,
double upx,
int ny,
double lowy,
double upy,
double upper,
double lower )
override

Definition at line 1649 of file HistogramSvc.cpp.

1650 {
1651 return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, upper, lower );
1652}

◆ destroy()

bool HistogramSvc::destroy ( IBaseHistogram * hist)
override

Definition at line 306 of file HistogramSvc.cpp.

306 {
307 StatusCode sc = unregisterObject( dynamic_cast<IHistogram*>( hist ) );
308 if ( !sc.isSuccess() ) return false;
309 delete hist;
310 return true;
311}
StatusCode unregisterObject(Base *obj) override

◆ divide() [1/3]

AIDA::IHistogram1D * HistogramSvc::divide ( const std::string & nameAndTitle,
const AIDA::IHistogram1D & a,
const AIDA::IHistogram1D & b )
override

Definition at line 1335 of file HistogramSvc.cpp.

1336 {
1337 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1338}

◆ divide() [2/3]

AIDA::IHistogram2D * HistogramSvc::divide ( const std::string & nameAndTitle,
const AIDA::IHistogram2D & a,
const AIDA::IHistogram2D & b )
override

Definition at line 1359 of file HistogramSvc.cpp.

1360 {
1361 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1362}

◆ divide() [3/3]

AIDA::IHistogram3D * HistogramSvc::divide ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & a,
const AIDA::IHistogram3D & b )
override

Definition at line 1383 of file HistogramSvc.cpp.

1384 {
1385 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Divide );
1386}

◆ finalize()

StatusCode HistogramSvc::finalize ( )
override

finalize the service

Definition at line 358 of file HistogramSvc.cpp.

358 {
359 if ( !m_mods1D.empty() ) {
360 if ( msgLevel( MSG::DEBUG ) ) debug() << " Substituted histograms #" << m_mods1D.size() << " : " << endmsg;
361 for ( const auto& ih : m_mods1D ) {
362 if ( msgLevel( MSG::DEBUG ) ) debug() << " Path='" << ih << "'";
363 auto im = m_defs1D.find( ih );
364 if ( m_defs1D.end() != im ) { debug() << " " << im->second; }
365 }
366 m_mods1D.clear();
367 }
368 return DataSvc::finalize();
369}
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
StatusCode finalize() override
Service initialization.
Definition DataSvc.cpp:828
std::set< std::string > m_mods1D
Gaudi::Property< Histo1DMap > m_defs1D
@ DEBUG
Definition IMessageSvc.h:22

◆ findObject() [1/46]

StatusCode HistogramSvc::findObject ( Base * par,
const std::string & item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1282 of file HistogramSvc.cpp.

1282 {
1283 return Helper( this ).find( ::detail::cast( par ), item, obj );
1284}
StatusCode find(A1 a1, A3 *&a3)

◆ findObject() [2/46]

StatusCode HistogramSvc::findObject ( Base * par,
const std::string & item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1287 of file HistogramSvc.cpp.

1287 {
1288 return Helper( this ).find( ::detail::cast( par ), item, obj );
1289}

◆ findObject() [3/46]

StatusCode HistogramSvc::findObject ( Base * par,
const std::string & item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1292 of file HistogramSvc.cpp.

1292 {
1293 return Helper( this ).find( ::detail::cast( par ), item, obj );
1294}

◆ findObject() [4/46]

StatusCode HistogramSvc::findObject ( Base * par,
const std::string & item,
AIDA::IProfile1D *& obj )
override

Definition at line 1272 of file HistogramSvc.cpp.

1272 {
1273 return Helper( this ).find( ::detail::cast( par ), item, obj );
1274}

◆ findObject() [5/46]

StatusCode HistogramSvc::findObject ( Base * par,
const std::string & item,
AIDA::IProfile2D *& obj )
override

Definition at line 1277 of file HistogramSvc.cpp.

1277 {
1278 return Helper( this ).find( ::detail::cast( par ), item, obj );
1279}

◆ findObject() [6/46]

StatusCode HistogramSvc::findObject ( Base * par,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1257 of file HistogramSvc.cpp.

1257 {
1258 return Helper( this ).find( ::detail::cast( par ), item, obj );
1259}

◆ findObject() [7/46]

StatusCode HistogramSvc::findObject ( Base * par,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1262 of file HistogramSvc.cpp.

1262 {
1263 return Helper( this ).find( ::detail::cast( par ), item, obj );
1264}

◆ findObject() [8/46]

StatusCode HistogramSvc::findObject ( Base * par,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1267 of file HistogramSvc.cpp.

1267 {
1268 return Helper( this ).find( ::detail::cast( par ), item, obj );
1269}

◆ findObject() [9/46]

StatusCode HistogramSvc::findObject ( Base * par,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 1247 of file HistogramSvc.cpp.

1247 {
1248 return Helper( this ).find( ::detail::cast( par ), item, obj );
1249}

◆ findObject() [10/46]

StatusCode HistogramSvc::findObject ( Base * par,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 1252 of file HistogramSvc.cpp.

1252 {
1253 return Helper( this ).find( ::detail::cast( par ), item, obj );
1254}

◆ findObject() [11/46]

StatusCode HistogramSvc::findObject ( const std::string & full,
AIDA::IHistogram1D *& obj )
override

Definition at line 1132 of file HistogramSvc.cpp.

1132 {
1133 return Helper( this ).find( full, obj );
1134}

◆ findObject() [12/46]

StatusCode HistogramSvc::findObject ( const std::string & full,
AIDA::IHistogram2D *& obj )
override

Definition at line 1137 of file HistogramSvc.cpp.

1137 {
1138 return Helper( this ).find( full, obj );
1139}

◆ findObject() [13/46]

StatusCode HistogramSvc::findObject ( const std::string & full,
AIDA::IHistogram3D *& obj )
override

Definition at line 1142 of file HistogramSvc.cpp.

1142 {
1143 return Helper( this ).find( full, obj );
1144}

◆ findObject() [14/46]

StatusCode HistogramSvc::findObject ( const std::string & full,
AIDA::IProfile1D *& obj )
override

Definition at line 1123 of file HistogramSvc.cpp.

1123 {
1124 return Helper( this ).find( full, obj );
1125}

◆ findObject() [15/46]

StatusCode HistogramSvc::findObject ( const std::string & full,
AIDA::IProfile2D *& obj )
override

Definition at line 1127 of file HistogramSvc.cpp.

1127 {
1128 return Helper( this ).find( full, obj );
1129}

◆ findObject() [16/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
const std::string & rel,
AIDA::IHistogram1D *& obj )
override

Definition at line 1157 of file HistogramSvc.cpp.

1157 {
1158 return Helper( this ).find( par, rel, obj );
1159}

◆ findObject() [17/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
const std::string & rel,
AIDA::IHistogram2D *& obj )
override

Definition at line 1162 of file HistogramSvc.cpp.

1162 {
1163 return Helper( this ).find( par, rel, obj );
1164}

◆ findObject() [18/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
const std::string & rel,
AIDA::IHistogram3D *& obj )
override

Definition at line 1167 of file HistogramSvc.cpp.

1167 {
1168 return Helper( this ).find( par, rel, obj );
1169}

◆ findObject() [19/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
const std::string & rel,
AIDA::IProfile1D *& obj )
override

Definition at line 1147 of file HistogramSvc.cpp.

1147 {
1148 return Helper( this ).find( par, rel, obj );
1149}

◆ findObject() [20/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
const std::string & rel,
AIDA::IProfile2D *& obj )
override

Definition at line 1152 of file HistogramSvc.cpp.

1152 {
1153 return Helper( this ).find( par, rel, obj );
1154}

◆ findObject() [21/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1182 of file HistogramSvc.cpp.

1182 {
1183 return Helper( this ).find( par, item, obj );
1184}

◆ findObject() [22/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1187 of file HistogramSvc.cpp.

1187 {
1188 return Helper( this ).find( par, item, obj );
1189}

◆ findObject() [23/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1192 of file HistogramSvc.cpp.

1192 {
1193 return Helper( this ).find( par, item, obj );
1194}

◆ findObject() [24/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 1172 of file HistogramSvc.cpp.

1172 {
1173 return Helper( this ).find( par, item, obj );
1174}

◆ findObject() [25/46]

StatusCode HistogramSvc::findObject ( const std::string & par,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 1177 of file HistogramSvc.cpp.

1177 {
1178 return Helper( this ).find( par, item, obj );
1179}

◆ findObject() [26/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1232 of file HistogramSvc.cpp.

1232 {
1233 return Helper( this ).find( par, item, obj );
1234}

◆ findObject() [27/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1237 of file HistogramSvc.cpp.

1237 {
1238 return Helper( this ).find( par, item, obj );
1239}

◆ findObject() [28/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1242 of file HistogramSvc.cpp.

1242 {
1243 return Helper( this ).find( par, item, obj );
1244}

◆ findObject() [29/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
const std::string & item,
AIDA::IProfile1D *& obj )
override

Definition at line 1222 of file HistogramSvc.cpp.

1222 {
1223 return Helper( this ).find( par, item, obj );
1224}

◆ findObject() [30/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
const std::string & item,
AIDA::IProfile2D *& obj )
override

Definition at line 1227 of file HistogramSvc.cpp.

1227 {
1228 return Helper( this ).find( par, item, obj );
1229}

◆ findObject() [31/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1207 of file HistogramSvc.cpp.

1207 {
1208 return Helper( this ).find( par, item, obj );
1209}

◆ findObject() [32/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1212 of file HistogramSvc.cpp.

1212 {
1213 return Helper( this ).find( par, item, obj );
1214}

◆ findObject() [33/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1217 of file HistogramSvc.cpp.

1217 {
1218 return Helper( this ).find( par, item, obj );
1219}

◆ findObject() [34/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 1197 of file HistogramSvc.cpp.

1197 {
1198 return Helper( this ).find( par, item, obj );
1199}

◆ findObject() [35/46]

StatusCode HistogramSvc::findObject ( DataObject * par,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 1202 of file HistogramSvc.cpp.

1202 {
1203 return Helper( this ).find( par, item, obj );
1204}

◆ findObject() [36/46]

StatusCode IDataProviderSvc::findObject ( DataObject * parentObj,
int item,
DataObject *& pObject )
inline

Avoids a compiler warning about hidden functions.

Definition at line 368 of file IDataProviderSvc.h.

368 {
369 return findObject( parentObj, itemToPath( item ), pObject );
370 }

◆ findObject() [37/46]

StatusCode IDataProviderSvc::findObject ( DataObject * parentObj,
std::string_view objectPath,
DataObject *& pObject )
inline

Avoids a compiler warning about hidden functions.

Definition at line 356 of file IDataProviderSvc.h.

356 {
357 return findObject( parentObj ? parentObj->registry() : nullptr, objectPath, pObject );
358 }
IRegistry * registry() const
Get pointer to Registry.
Definition DataObject.h:79

◆ findObject() [38/46]

virtual StatusCode IDataProviderSvc::findObject ( IRegistry * pDirectory,
std::string_view path,
DataObject *& pObject )

Avoids a compiler warning about hidden functions.

◆ findObject() [39/46]

StatusCode HistogramSvc::findObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram1D *& obj )
override

Definition at line 1111 of file HistogramSvc.cpp.

1111 {
1112 return Helper( this ).find( pReg, path, obj );
1113}

◆ findObject() [40/46]

StatusCode HistogramSvc::findObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram2D *& obj )
override

Definition at line 1115 of file HistogramSvc.cpp.

1115 {
1116 return Helper( this ).find( pReg, path, obj );
1117}

◆ findObject() [41/46]

StatusCode HistogramSvc::findObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram3D *& obj )
override

Definition at line 1119 of file HistogramSvc.cpp.

1119 {
1120 return Helper( this ).find( pReg, path, obj );
1121}

◆ findObject() [42/46]

StatusCode HistogramSvc::findObject ( IRegistry * pReg,
const std::string & path,
AIDA::IProfile1D *& obj )
override

Definition at line 1103 of file HistogramSvc.cpp.

1103 {
1104 return Helper( this ).find( pReg, path, obj );
1105}

◆ findObject() [43/46]

StatusCode HistogramSvc::findObject ( IRegistry * pReg,
const std::string & path,
AIDA::IProfile2D *& obj )
override

Definition at line 1107 of file HistogramSvc.cpp.

1107 {
1108 return Helper( this ).find( pReg, path, obj );
1109}

◆ findObject() [44/46]

virtual StatusCode IDataProviderSvc::findObject ( std::string_view fullPath,
DataObject *& pObject )

Avoids a compiler warning about hidden functions.

◆ findObject() [45/46]

StatusCode IDataProviderSvc::findObject ( std::string_view parentPath,
int item,
DataObject *& pObject )
inline

Avoids a compiler warning about hidden functions.

Definition at line 343 of file IDataProviderSvc.h.

343 {
344 return findObject( parentPath, itemToPath( item ), pObject );
345 }

◆ findObject() [46/46]

StatusCode IDataProviderSvc::findObject ( std::string_view parentPath,
std::string_view objectPath,
DataObject *& pObject )
inline

Avoids a compiler warning about hidden functions.

Definition at line 329 of file IDataProviderSvc.h.

329 {
330 DataObject* parent = nullptr;
331 StatusCode status = findObject( parentPath, parent );
332 return status.isSuccess() ? findObject( parent, objectPath, pObject ) : status;
333 }

◆ histogramFactory()

AIDA::IHistogramFactory * HistogramSvc::histogramFactory ( )
inlineoverride

Retrieve the AIDA HistogramFactory interface.

Definition at line 189 of file HistogramSvc.h.

189{ return this; }

◆ i_book()

template<class T>
T * HistogramSvc::i_book ( DataObject * pPar,
const std::string & rel,
const std::string & title,
const std::pair< DataObject *, T * > & o )
inline

Definition at line 169 of file HistogramSvc.h.

170 {
171 if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
172 delete o.first;
173 throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
175 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
AIDA::IBaseHistogram Base
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition System.cpp:260

◆ i_project()

AIDA::IHistogram2D * HistogramSvc::i_project ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & h,
const std::string & dir )

Helper for 2D projections.

Definition at line 85 of file HistogramSvc.cpp.

85 {
87 if ( h3d ) {
88 TH2D* h2d = dynamic_cast<TH2D*>( h3d->Project3D( dir.c_str() ) );
89 if ( h2d ) {
90 std::pair<DataObject*, AIDA::IHistogram2D*> r = Gaudi::createH2D( serviceLocator(), nameAndTitle, h2d );
91 if ( r.second && registerObject( nameAndTitle, r.second ).isSuccess() ) { return r.second; }
92 }
93 }
94 return nullptr;
95}
T * getRepresentation(const Q &hist)

◆ i_splitPath()

std::pair< string, string > HistogramSvc::i_splitPath ( const std::string & full)

Split full path into its components.

Parameters
fullFull path of the object
dirResulting directory path
objResulting object path

Definition at line 124 of file HistogramSvc.cpp.

124 {
125 string tmp = full;
126 if ( tmp[0] != SEPARATOR ) {
127 tmp.insert( tmp.begin(), SEPARATOR );
128 tmp.insert( tmp.begin(), m_rootName.begin(), m_rootName.end() );
129 }
130 // Remove trailing "/" from newPath if it exists
131 if ( tmp.rfind( SEPARATOR ) == tmp.length() - 1 ) { tmp.erase( tmp.length() - 1, 1 ); }
132 int sep = tmp.rfind( SEPARATOR );
133 return { tmp.substr( 0, sep ), tmp.substr( sep + 1 ) };
134}

◆ initialize()

StatusCode HistogramSvc::initialize ( )
override

Initialise the service.

Definition at line 237 of file HistogramSvc.cpp.

237 {
238 StatusCode status = DataSvc::initialize();
239 // Set root object
240 if ( status.isSuccess() ) {
241 auto rootObj = std::make_unique<DataObject>();
242 status = setRoot( "/stat", rootObj.get() );
243 if ( status.isFailure() ) {
244 error() << "Unable to set hstogram data store root." << endmsg;
245 return status;
246 }
247 rootObj.release();
248 auto svc = service<IConversionSvc>( "HistogramPersistencySvc", true );
249 if ( !svc ) {
250 error() << "Could not find HistogramPersistencySvc." << endmsg;
251 return StatusCode::FAILURE;
252 }
253 setDataLoader( svc.get() ).ignore();
254 // Connect all input streams (if any)
255 for ( auto& j : m_input ) {
256 status = connectInput( j );
257 if ( !status.isSuccess() ) return status;
258 }
259 }
260 if ( !m_defs1D.empty() ) {
261 info() << " Predefined 1D-Histograms: " << endmsg;
262 for ( const auto& ih : m_defs1D ) {
263 info() << " Path='" << ih.first << "'"
264 << " Description " << ih.second << endmsg;
265 }
266 }
267 return status;
268}
StatusCode setRoot(std::string root_name, DataObject *pRootObj) override
Initialize data store for new event by giving new event path and root object.
Definition DataSvc.cpp:115
StatusCode initialize() override
Service initialization.
Definition DataSvc.cpp:795
StatusCode connectInput(const std::string &ident)
Connect input histogram file to the service.
Gaudi::Property< DBaseEntries > m_input
SmartIF< IFace > service(const std::string &name, bool createIf=true) const
Definition Service.h:79
bool isFailure() const
Definition StatusCode.h:129

◆ multiply() [1/3]

AIDA::IHistogram1D * HistogramSvc::multiply ( const std::string & nameAndTitle,
const AIDA::IHistogram1D & a,
const AIDA::IHistogram1D & b )
override

Definition at line 1329 of file HistogramSvc.cpp.

1330 {
1331 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Multiply );
1332}

◆ multiply() [2/3]

AIDA::IHistogram2D * HistogramSvc::multiply ( const std::string & nameAndTitle,
const AIDA::IHistogram2D & a,
const AIDA::IHistogram2D & b )
override

Definition at line 1353 of file HistogramSvc.cpp.

1354 {
1355 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Multiply );
1356}

◆ multiply() [3/3]

AIDA::IHistogram3D * HistogramSvc::multiply ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & a,
const AIDA::IHistogram3D & b )
override

Definition at line 1377 of file HistogramSvc.cpp.

1378 {
1379 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Multiply );
1380}

◆ not_implemented()

void HistogramSvc::not_implemented ( ) const
inlineprivate

Definition at line 63 of file HistogramSvc.h.

63{ error() << "Sorry, not yet implemented..." << endmsg; }

◆ print()

std::ostream & HistogramSvc::print ( Base * h,
std::ostream & s = std::cout ) const
override

Print (ASCII) the 1D histogram into the output stream.

Definition at line 100 of file HistogramSvc.cpp.

100 {
101 Gaudi::HistogramBase* b = dynamic_cast<Gaudi::HistogramBase*>( h );
102 if ( b ) return b->print( s );
103 error() << "Unknown histogram type: Cannot cast to Gaudi::HistogramBase." << endmsg;
104 return s;
105}
virtual std::ostream & print(std::ostream &s) const =0
Print histogram to output stream.

◆ projectionX()

AIDA::IHistogram1D * HistogramSvc::projectionX ( const std::string & name,
const AIDA::IHistogram2D & h )
override

Definition at line 1297 of file HistogramSvc.cpp.

1297 {
1298 return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1299}
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY) override

◆ projectionXY()

AIDA::IHistogram2D * HistogramSvc::projectionXY ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & h )
override

Definition at line 1389 of file HistogramSvc.cpp.

1389 {
1390 return i_project( nameAndTitle, h, "xy" );
1391}
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.

◆ projectionXZ()

AIDA::IHistogram2D * HistogramSvc::projectionXZ ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & h )
override

Definition at line 1394 of file HistogramSvc.cpp.

1394 {
1395 return i_project( nameAndTitle, h, "xz" );
1396}

◆ projectionY()

AIDA::IHistogram1D * HistogramSvc::projectionY ( const std::string & name,
const AIDA::IHistogram2D & h )
override

Definition at line 1302 of file HistogramSvc.cpp.

1302 {
1303 return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1304}
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX) override

◆ projectionYZ()

AIDA::IHistogram2D * HistogramSvc::projectionYZ ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & h )
override

Definition at line 1399 of file HistogramSvc.cpp.

1399 {
1400 return i_project( nameAndTitle, h, "yz" );
1401}

◆ registerObject() [1/9]

StatusCode HistogramSvc::registerObject ( Base * pPar,
const std::string & rel,
Base * obj )
override

Definition at line 884 of file HistogramSvc.cpp.

884 {
885 return registerObject( ::detail::cast( pPar ), rel, obj );
886}

◆ registerObject() [2/9]

StatusCode HistogramSvc::registerObject ( const std::string & full,
Base * obj )
override

◆ registerObject() [3/9]

StatusCode HistogramSvc::registerObject ( const std::string & parent,
const std::string & rel,
Base * obj )
override

Definition at line 879 of file HistogramSvc.cpp.

879 {
880 return registerObject( createPath( parent ), rel, obj );
881}

◆ registerObject() [4/9]

StatusCode IDataProviderSvc::registerObject ( DataObject * parentObj,
int item,
DataObject * pObject )
inline

Register object with the data store.

Connect the object identified by its pointer to the node object identified by its pointer.

Parameters
parentObjPointer to parent object.
itemitem number of the object linked to the parent
pObjectPointer to the object to be connected.
Returns
Status code indicating success or failure.

Definition at line 112 of file IDataProviderSvc.h.

112 {
113 return registerObject( parentObj, itemToPath( item ), pObject );
114 }

◆ registerObject() [5/9]

StatusCode DataSvc::registerObject ( DataObject * parentObj,
std::string_view objPath,
DataObject * pObject )
override

Register object with the data store.

Definition at line 187 of file DataSvc.cpp.

288 {
289 if ( !checkRoot() ) return Status::INVALID_ROOT;
290
291 if ( !parentObj ) {
292 if ( !objPath.empty() ) {
293 if ( objPath.front() != SEPARATOR ) { return registerObject( m_rootName.value(), objPath, pObject ); }
294 auto sep = find( objPath, SEPARATOR, 1 );
295 if ( sep != std::string_view::npos ) {
296 return registerObject( objPath.substr( 0, sep ), objPath.substr( sep ), pObject );
297 }
298 }
299 return Status::INVALID_OBJ_PATH;
300 }
301 RegEntry* node_entry = CAST_REGENTRY( RegEntry*, parentObj->registry() );
302 if ( node_entry ) {
303 StatusCode status = Status::INVALID_PARENT;
304 auto sep = find( objPath, SEPARATOR, 1 );
305 if ( sep != std::string_view::npos ) {
306 auto p_path = objPath.substr( 0, sep );
307 auto o_path = objPath.substr( sep );
308 RegEntry* par_entry = node_entry->findLeaf( p_path );
309 // Create default object leafs if the
310 // intermediate nodes are not present
311 if ( !par_entry && m_forceLeaves ) {
313 StatusCode sc = registerObject( parentObj, p_path, pLeaf );
314 if ( !sc.isSuccess() ) delete pLeaf;
315 par_entry = node_entry->findLeaf( p_path );
316 } else if ( par_entry && !par_entry->object() ) {
317 status = i_retrieveEntry( node_entry, p_path, par_entry );
318 if ( !status.isSuccess() && !par_entry->address() && m_forceLeaves ) {
320 StatusCode sc = registerObject( parentObj, p_path, pLeaf );
321 if ( !sc.isSuccess() ) delete pLeaf;
322 par_entry = node_entry->findLeaf( p_path );
323 }
324 }
325 node_entry = par_entry;
326 if ( node_entry ) {
327 DataObject* obj = node_entry->object();
328 if ( obj ) status = registerObject( obj, o_path, pObject );
329 }
330 } else {
331 RegEntry* leaf = node_entry->findLeaf( objPath );
332 if ( !leaf ) {
333 status = node_entry->add( to_string( objPath ), pObject );
334 } else {
335 DataObject* obj = leaf->object();
336 if ( !obj ) {
337 if ( !pObject ) {
338 error() << "registerObject: trying to register null DataObject" << endmsg;
339 return StatusCode::FAILURE;
340 }
341 pObject->setRegistry( leaf );
342 leaf->setAddress( nullptr );
343 leaf->setObject( pObject );
344 status = StatusCode::SUCCESS;
345 } else {
346 status = Status::DOUBL_OBJ_PATH;
347 }
348 }
349 }
350 return status;
351 }
352 return Status::INVALID_PARENT;
353}
DataSvcHelpers::RegistryEntry RegEntry
Definition DataSvc.cpp:48
#define CAST_REGENTRY(x, y)
Definition DataSvc.cpp:46
void setRegistry(IRegistry *pRegistry)
Set pointer to Registry.
Definition DataObject.h:77
void setObject(DataObject *obj)
Set/Update object address.
void setAddress(IOpaqueAddress *pAddress) override
Set/Update Opaque address.
RegistryEntry * findLeaf(std::string_view path) const
Find identified leaf in this registry node.
DataObject * object() const override
Retrive object behind the link.
IOpaqueAddress * address() const override
Retrieve opaque storage address.
StatusCode add(std::string name, DataObject *pObject, bool is_soft=false)
Add entry to data store.
virtual DataObject * createDefaultObject() const
Create default objects in case forced creation of leaves is requested.
Definition DataSvc.cpp:844
bool checkRoot()
Check if root path is valid.
Definition DataSvc.h:255
Gaudi::Property< bool > m_forceLeaves
Definition DataSvc.h:56
StatusCode i_retrieveEntry(DataSvcHelpers::RegistryEntry *parentObj, std::string_view path, DataSvcHelpers::RegistryEntry *&pEntry)
Definition DataSvc.cpp:515
constexpr static const auto SUCCESS
Definition StatusCode.h:99

◆ registerObject() [6/9]

StatusCode HistogramSvc::registerObject ( DataObject * pPar,
const std::string & rel,
Base * obj )
override

◆ registerObject() [7/9]

StatusCode IDataProviderSvc::registerObject ( std::string_view fullPath,
DataObject * pObject )
inline

Register object with the data store.

Connect the object identified by its pointer to the node object identified by its path.

Parameters
fullPathPath to parent node of the object.
pObjectPointer to the object to be registered.
Returns
Status code indicating success or failure.

Definition at line 67 of file IDataProviderSvc.h.

67 {
68 return registerObject( nullptr, fullPath, pObject );
69 }

◆ registerObject() [8/9]

StatusCode IDataProviderSvc::registerObject ( std::string_view parentPath,
int item,
DataObject * pObject )
inline

Register object with the data store.

Connect the object identified by its pointer to the parent object and an integer identifier.

Parameters
parentPathPath to parent node of the object.
itemitem number of the object linked to the parent
pObjectPointer to the object to be registered.
Returns
Status code indicating success or failure.

Definition at line 90 of file IDataProviderSvc.h.

90 {
91 return registerObject( parentPath, itemToPath( item ), pObject );
92 }

◆ registerObject() [9/9]

StatusCode DataSvc::registerObject ( std::string_view parentPath,
std::string_view objPath,
DataObject * pObject )
override

Register object with the data store.

Definition at line 184 of file DataSvc.cpp.

276 {
277 DataObject* pO = nullptr;
278 StatusCode status = retrieveObject( parentPath, pO );
279 if ( !status.isSuccess() && m_forceLeaves ) {
280 pO = createDefaultObject();
281 status = registerObject( parentPath, pO );
282 if ( !status.isSuccess() ) pO->release();
283 }
284 return status.isSuccess() ? registerObject( pO, objPath, pObject ) : status;
285}
virtual unsigned long release()
release reference to object

◆ reinitialize()

StatusCode HistogramSvc::reinitialize ( )
override

Initialise the service.

Definition at line 271 of file HistogramSvc.cpp.

271{ return StatusCode::SUCCESS; }

◆ retrieveObject() [1/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
const std::string & item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1088 of file HistogramSvc.cpp.

1088 {
1089 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1090}
StatusCode retrieve(A1 a1, A3 *&a3)

◆ retrieveObject() [2/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
const std::string & item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1093 of file HistogramSvc.cpp.

1093 {
1094 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1095}

◆ retrieveObject() [3/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
const std::string & item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1098 of file HistogramSvc.cpp.

1098 {
1099 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1100}

◆ retrieveObject() [4/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
const std::string & item,
AIDA::IProfile1D *& obj )
override

Definition at line 1078 of file HistogramSvc.cpp.

1078 {
1079 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1080}

◆ retrieveObject() [5/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
const std::string & item,
AIDA::IProfile2D *& obj )
override

Definition at line 1083 of file HistogramSvc.cpp.

1083 {
1084 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1085}

◆ retrieveObject() [6/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1063 of file HistogramSvc.cpp.

1063 {
1064 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1065}

◆ retrieveObject() [7/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1068 of file HistogramSvc.cpp.

1068 {
1069 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1070}

◆ retrieveObject() [8/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1073 of file HistogramSvc.cpp.

1073 {
1074 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1075}

◆ retrieveObject() [9/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 1053 of file HistogramSvc.cpp.

1053 {
1054 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1055}

◆ retrieveObject() [10/46]

StatusCode HistogramSvc::retrieveObject ( Base * par,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 1058 of file HistogramSvc.cpp.

1058 {
1059 return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1060}

◆ retrieveObject() [11/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & full,
AIDA::IHistogram1D *& obj )
override

Definition at line 937 of file HistogramSvc.cpp.

937 {
938 return Helper( this ).retrieve( full, obj );
939}

◆ retrieveObject() [12/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & full,
AIDA::IHistogram2D *& obj )
override

Definition at line 942 of file HistogramSvc.cpp.

942 {
943 return Helper( this ).retrieve( full, obj );
944}

◆ retrieveObject() [13/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & full,
AIDA::IHistogram3D *& obj )
override

Definition at line 947 of file HistogramSvc.cpp.

947 {
948 return Helper( this ).retrieve( full, obj );
949}

◆ retrieveObject() [14/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & full,
AIDA::IProfile1D *& obj )
override

Definition at line 927 of file HistogramSvc.cpp.

927 {
928 return Helper( this ).retrieve( full, obj );
929}

◆ retrieveObject() [15/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & full,
AIDA::IProfile2D *& obj )
override

Definition at line 932 of file HistogramSvc.cpp.

932 {
933 return Helper( this ).retrieve( full, obj );
934}

◆ retrieveObject() [16/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
const std::string & rel,
AIDA::IHistogram1D *& obj )
override

Definition at line 964 of file HistogramSvc.cpp.

964 {
965 return Helper( this ).retrieve( parent, rel, obj );
966}

◆ retrieveObject() [17/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
const std::string & rel,
AIDA::IHistogram2D *& obj )
override

Definition at line 969 of file HistogramSvc.cpp.

969 {
970 return Helper( this ).retrieve( parent, rel, obj );
971}

◆ retrieveObject() [18/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
const std::string & rel,
AIDA::IHistogram3D *& obj )
override

Definition at line 974 of file HistogramSvc.cpp.

974 {
975 return Helper( this ).retrieve( parent, rel, obj );
976}

◆ retrieveObject() [19/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
const std::string & rel,
AIDA::IProfile1D *& obj )
override

Definition at line 952 of file HistogramSvc.cpp.

954 {
955 return Helper( this ).retrieve( parent, rel, obj );
956}

◆ retrieveObject() [20/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
const std::string & rel,
AIDA::IProfile2D *& obj )
override

Definition at line 959 of file HistogramSvc.cpp.

959 {
960 return Helper( this ).retrieve( parent, rel, obj );
961}

◆ retrieveObject() [21/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 989 of file HistogramSvc.cpp.

989 {
990 return Helper( this ).retrieve( parent, item, obj );
991}

◆ retrieveObject() [22/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 994 of file HistogramSvc.cpp.

994 {
995 return Helper( this ).retrieve( parent, item, obj );
996}

◆ retrieveObject() [23/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 999 of file HistogramSvc.cpp.

999 {
1000 return Helper( this ).retrieve( parent, item, obj );
1001}

◆ retrieveObject() [24/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 979 of file HistogramSvc.cpp.

979 {
980 return Helper( this ).retrieve( parent, item, obj );
981}

◆ retrieveObject() [25/46]

StatusCode HistogramSvc::retrieveObject ( const std::string & parent,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 984 of file HistogramSvc.cpp.

984 {
985 return Helper( this ).retrieve( parent, item, obj );
986}

◆ retrieveObject() [26/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1013 of file HistogramSvc.cpp.

1013 {
1014 return Helper( this ).retrieve( par, item, obj );
1015}

◆ retrieveObject() [27/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1018 of file HistogramSvc.cpp.

1018 {
1019 return Helper( this ).retrieve( par, item, obj );
1020}

◆ retrieveObject() [28/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
const std::string & item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1023 of file HistogramSvc.cpp.

1023 {
1024 return Helper( this ).retrieve( par, item, obj );
1025}

◆ retrieveObject() [29/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
const std::string & item,
AIDA::IProfile1D *& obj )
override

Definition at line 1003 of file HistogramSvc.cpp.

1003 {
1004 return Helper( this ).retrieve( par, item, obj );
1005}

◆ retrieveObject() [30/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
const std::string & item,
AIDA::IProfile2D *& obj )
override

Definition at line 1008 of file HistogramSvc.cpp.

1008 {
1009 return Helper( this ).retrieve( par, item, obj );
1010}

◆ retrieveObject() [31/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
int item,
AIDA::IHistogram1D *& obj )
override

Definition at line 1038 of file HistogramSvc.cpp.

1038 {
1039 return Helper( this ).retrieve( par, item, obj );
1040}

◆ retrieveObject() [32/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
int item,
AIDA::IHistogram2D *& obj )
override

Definition at line 1043 of file HistogramSvc.cpp.

1043 {
1044 return Helper( this ).retrieve( par, item, obj );
1045}

◆ retrieveObject() [33/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
int item,
AIDA::IHistogram3D *& obj )
override

Definition at line 1048 of file HistogramSvc.cpp.

1048 {
1049 return Helper( this ).retrieve( par, item, obj );
1050}

◆ retrieveObject() [34/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
int item,
AIDA::IProfile1D *& obj )
override

Definition at line 1028 of file HistogramSvc.cpp.

1028 {
1029 return Helper( this ).retrieve( par, item, obj );
1030}

◆ retrieveObject() [35/46]

StatusCode HistogramSvc::retrieveObject ( DataObject * par,
int item,
AIDA::IProfile2D *& obj )
override

Definition at line 1033 of file HistogramSvc.cpp.

1033 {
1034 return Helper( this ).retrieve( par, item, obj );
1035}

◆ retrieveObject() [36/46]

StatusCode IDataProviderSvc::retrieveObject ( DataObject * parentObj,
int item,
DataObject *& pObject )
inline

Retrieve object from data store.

The object to be retrieved is identified by the pointer to the parent object and an integer identifier. In case the object is not present it will be loaded and converted if possible.

Parameters
parentObjPointer to parent node of the object.
itemItem identifier.
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

Definition at line 296 of file IDataProviderSvc.h.

296 {
297 return retrieveObject( parentObj, itemToPath( item ), pObject );
298 }

◆ retrieveObject() [37/46]

StatusCode IDataProviderSvc::retrieveObject ( DataObject * parentObj,
std::string_view objectPath,
DataObject *& pObject )
inline

Retrieve object from data store.

The object to be retrieved is identified by the pointer to the parent object and the relative path with respect to the node. In case the object is not present it will be loaded and converted if possible.

Parameters
parentObjPointer to parent node of the object.
objectPathPath of the object relative to the parent.
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

Definition at line 282 of file IDataProviderSvc.h.

282 {
283 return retrieveObject( parentObj ? parentObj->registry() : nullptr, objectPath, pObject );
284 }

◆ retrieveObject() [38/46]

virtual StatusCode IDataProviderSvc::retrieveObject ( IRegistry * pDirectory,
std::string_view path,
DataObject *& pObject )

Retrieve object identified by its directory entry.

The result will be returned in the second argument. In case the object is not present it will be loaded and converted if possible. ** FASTEST ACCESS TO THE DATA STORE **

Parameters
pDirectoryPointer to the object.
pathString with relative path to directory. Ideally ""!
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

◆ retrieveObject() [39/46]

StatusCode HistogramSvc::retrieveObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram1D *& obj )
override

Definition at line 902 of file HistogramSvc.cpp.

902 {
903 return Helper( this ).retrieve( pReg, path, obj );
904}

◆ retrieveObject() [40/46]

StatusCode HistogramSvc::retrieveObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram2D *& obj )
override

Definition at line 912 of file HistogramSvc.cpp.

912 {
913 return Helper( this ).retrieve( pReg, path, obj );
914}

◆ retrieveObject() [41/46]

StatusCode HistogramSvc::retrieveObject ( IRegistry * pReg,
const std::string & path,
AIDA::IHistogram3D *& obj )
override

Definition at line 922 of file HistogramSvc.cpp.

922 {
923 return Helper( this ).retrieve( pReg, path, obj );
924}

◆ retrieveObject() [42/46]

StatusCode HistogramSvc::retrieveObject ( IRegistry * pReg,
const std::string & path,
AIDA::IProfile1D *& obj )
override

Definition at line 907 of file HistogramSvc.cpp.

907 {
908 return Helper( this ).retrieve( pReg, path, obj );
909}

◆ retrieveObject() [43/46]

StatusCode HistogramSvc::retrieveObject ( IRegistry * pReg,
const std::string & path,
AIDA::IProfile2D *& obj )
override

Definition at line 917 of file HistogramSvc.cpp.

917 {
918 return Helper( this ).retrieve( pReg, path, obj );
919}

◆ retrieveObject() [44/46]

StatusCode IDataProviderSvc::retrieveObject ( std::string_view fullPath,
DataObject *& pObject )
inline

Retrieve object identified by its full path from the data store.

The result will be returned in the second argument. In case the object is not present it will be loaded and converted if possible.

Parameters
fullPathPath name of the object.
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

Definition at line 238 of file IDataProviderSvc.h.

238 {
239 return retrieveObject( static_cast<IRegistry*>( nullptr ), fullPath, pObject );
240 }

◆ retrieveObject() [45/46]

StatusCode IDataProviderSvc::retrieveObject ( std::string_view parentPath,
int item,
DataObject *& pObject )
inline

Retrieve object from data store.

The object to be retrieved is identified by the path to the parent object and an integer identifier. In case the object is not present it will be loaded and converted if possible.

Parameters
parentPathPath to parent node of the object.
itemItem identifier.
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

Definition at line 268 of file IDataProviderSvc.h.

268 {
269 return retrieveObject( parentPath, itemToPath( item ), pObject );
270 }

◆ retrieveObject() [46/46]

StatusCode IDataProviderSvc::retrieveObject ( std::string_view parentPath,
std::string_view objectPath,
DataObject *& pObject )
inline

Retrieve object from data store.

The object to be retrieved is identified by the path of the parent object and the relative path with respect to the node. In case the object is not present it will be loaded and converted if possible.

Parameters
parentPathPath to parent node of the object.
objectPathPath of the object relative to the parent.
pObjectReference to the pointer of the object to be returned.
Returns
Status code indicating success or failure.

Definition at line 252 of file IDataProviderSvc.h.

252 {
253 DataObject* parent = nullptr;
254 StatusCode status = retrieveObject( parentPath, parent );
255 return status.isSuccess() ? retrieveObject( parent, objectPath, pObject ) : status;
256 }

◆ sliceX() [1/2]

AIDA::IHistogram1D * HistogramSvc::sliceX ( const std::string & name,
const AIDA::IHistogram2D & h,
int indexY )
override

Definition at line 1307 of file HistogramSvc.cpp.

1307 {
1308 return sliceX( name, h, indexY, indexY );
1309}

◆ sliceX() [2/2]

AIDA::IHistogram1D * HistogramSvc::sliceX ( const std::string & name,
const AIDA::IHistogram2D & h,
int indexY1,
int indexY2 )
override

◆ sliceXY()

AIDA::IHistogram2D * HistogramSvc::sliceXY ( const std::string & ,
const AIDA::IHistogram3D & ,
int ,
int  )
inlineoverride

Definition at line 865 of file HistogramSvc.h.

866 {
868 return nullptr;
869 }

◆ sliceXZ()

AIDA::IHistogram2D * HistogramSvc::sliceXZ ( const std::string & ,
const AIDA::IHistogram3D & ,
int ,
int  )
inlineoverride

Definition at line 871 of file HistogramSvc.h.

872 {
874 return nullptr;
875 }

◆ sliceY() [1/2]

AIDA::IHistogram1D * HistogramSvc::sliceY ( const std::string & name,
const AIDA::IHistogram2D & h,
int indexX )
override

Definition at line 1312 of file HistogramSvc.cpp.

1312 {
1313 return sliceY( name, h, indexX, indexX );
1314}

◆ sliceY() [2/2]

AIDA::IHistogram1D * HistogramSvc::sliceY ( const std::string & name,
const AIDA::IHistogram2D & h,
int indexX1,
int indexX2 )
override

◆ sliceYZ()

AIDA::IHistogram2D * HistogramSvc::sliceYZ ( const std::string & ,
const AIDA::IHistogram3D & ,
int ,
int  )
inlineoverride

Definition at line 877 of file HistogramSvc.h.

878 {
880 return nullptr;
881 }

◆ subtract() [1/3]

AIDA::IHistogram1D * HistogramSvc::subtract ( const std::string & nameAndTitle,
const AIDA::IHistogram1D & a,
const AIDA::IHistogram1D & b )
override

Definition at line 1323 of file HistogramSvc.cpp.

1324 {
1325 return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, -1. );
1326}

◆ subtract() [2/3]

AIDA::IHistogram2D * HistogramSvc::subtract ( const std::string & nameAndTitle,
const AIDA::IHistogram2D & a,
const AIDA::IHistogram2D & b )
override

Definition at line 1347 of file HistogramSvc.cpp.

1348 {
1349 return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, -1. );
1350}

◆ subtract() [3/3]

AIDA::IHistogram3D * HistogramSvc::subtract ( const std::string & nameAndTitle,
const AIDA::IHistogram3D & a,
const AIDA::IHistogram3D & b )
override

Definition at line 1371 of file HistogramSvc.cpp.

1372 {
1373 return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, -1. );
1374}

◆ unregisterObject() [1/9]

StatusCode HistogramSvc::unregisterObject ( Base * obj)
override

Definition at line 889 of file HistogramSvc.cpp.

889{ return unregisterObject( ::detail::cast( obj ) ); }

◆ unregisterObject() [2/9]

StatusCode HistogramSvc::unregisterObject ( Base * obj,
const std::string & objectPath )
override

Definition at line 892 of file HistogramSvc.cpp.

892 {
893 return unregisterObject( ::detail::cast( obj ), objectPath );
894}

◆ unregisterObject() [3/9]

StatusCode HistogramSvc::unregisterObject ( Base * obj,
int item )
override

Definition at line 897 of file HistogramSvc.cpp.

897 {
898 return unregisterObject( ::detail::cast( obj ), item );
899}

◆ unregisterObject() [4/9]

virtual StatusCode IDataProviderSvc::unregisterObject ( DataObject * pObject)

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by its pointer. The object must previously have been registered with the data store.

Parameters
pObjectPointer to the object.
Returns
Status code indicating success or failure.

◆ unregisterObject() [5/9]

StatusCode IDataProviderSvc::unregisterObject ( DataObject * pParent,
int item )
inline

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by parent object and an integer identifier of the object itself.

Parameters
pParentPointer to parent object.
itemInteger identifier of the object item.
Returns
Status code indicating success or failure.

Definition at line 214 of file IDataProviderSvc.h.

214 {
215 return unregisterObject( pParent, itemToPath( item ) );
216 }

◆ unregisterObject() [6/9]

virtual StatusCode IDataProviderSvc::unregisterObject ( DataObject * pParent,
std::string_view objPath )

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by parent object and the path of the object relative to the parent.

Parameters
pParentPointer to parent object.
objPathPath name of the object relative to the parent.
Returns
Status code indicating success or failure.

◆ unregisterObject() [7/9]

virtual StatusCode IDataProviderSvc::unregisterObject ( std::string_view fullPath)

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by full path name.

Parameters
fullPathPath name of the object.
Returns
Status code indicating success or failure.

◆ unregisterObject() [8/9]

StatusCode IDataProviderSvc::unregisterObject ( std::string_view parentPath,
int item )
inline

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by parent path name and an integer identifier of the object itself.

Parameters
parentPathPath name of the parent object.
itemInteger identifier of the object item.
Returns
Status code indicating success or failure.

Definition at line 165 of file IDataProviderSvc.h.

165 {
166 return unregisterObject( parentPath, itemToPath( item ) );
167 }

◆ unregisterObject() [9/9]

StatusCode IDataProviderSvc::unregisterObject ( std::string_view parentPath,
std::string_view objPath )
inline

Unregister object from the data store.

On registration the client gives up ownership of the object and may no longer delete the object. unregistering the object is the opposite: ownership is claimed back by the user. But note:

  • All depending objects will be deleted, ie. all leaves "below" the entry in question; NOT the object itself, the object itself must be destroyed by the user.

The object is identified by parent path name and the path of the object relative to the parent.

Parameters
parentPathPath name of the parent object.
objPathPath name of the object relative to the parent.
Returns
Status code indicating success or failure.

Definition at line 145 of file IDataProviderSvc.h.

145 {
146 DataObject* pO = nullptr;
147 StatusCode status = findObject( parentPath, pO );
148 return status.isSuccess() ? unregisterObject( pO, objPath ) : status;
149 }

◆ update1Ddefs()

void HistogramSvc::update1Ddefs ( )
private

handler to be invoked for updating property m_defs1D

Definition at line 344 of file HistogramSvc.cpp.

344 {
345 // check and remove the leading '/stat/'
346 removeLeading( m_defs1D.value(), "/stat/" );
347}

◆ write() [1/2]

int HistogramSvc::write ( Base * h,
const char * file_name ) const
override

Write (ASCII) the 1D histogram table into a file.

◆ write() [2/2]

std::ostream & HistogramSvc::write ( Base * h,
std::ostream & s = std::cout ) const
override

Write (ASCII) the 1D histogram table into the output stream.

Member Data Documentation

◆ m_defs1D

Gaudi::Property<Histo1DMap> HistogramSvc::m_defs1D
private
Initial value:
{
this, "Predefined1DHistos", {}, &HistogramSvc::update1Ddefs, "histograms with predefined parameters" }
void update1Ddefs()
handler to be invoked for updating property m_defs1D

Definition at line 1081 of file HistogramSvc.h.

1081 {
1082 this, "Predefined1DHistos", {}, &HistogramSvc::update1Ddefs, "histograms with predefined parameters" };

◆ m_input

Gaudi::Property<DBaseEntries> HistogramSvc::m_input { this, "Input", {}, "input streams" }
private

Definition at line 1080 of file HistogramSvc.h.

1080{ this, "Input", {}, "input streams" };

◆ m_mods1D

std::set<std::string> HistogramSvc::m_mods1D
private

Definition at line 1085 of file HistogramSvc.h.


The documentation for this class was generated from the following files: