The Gaudi Framework  master (594c33fa)
HistogramSvc Class Reference

#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 = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- Public Types inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces... >
 Typedef to the base of this class. More...
 
- 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 = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 

Public Member Functions

 HistogramSvc (const std::string &name, ISvcLocator *svc)
 Statndard Constructor. More...
 
 ~HistogramSvc () override
 Destructor. More...
 
std::pair< std::string, std::stringi_splitPath (const std::string &full)
 Split full path into its components. More...
 
StatusCode connectInput (const std::string &ident)
 Connect input histogram file to the service. More...
 
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. More...
 
StatusCode initialize () override
 Initialise the service. More...
 
StatusCode reinitialize () override
 Initialise the service. More...
 
StatusCode finalize () override
 finalize the service More...
 
AIDA::IHistogramFactory * histogramFactory () override
 Retrieve the AIDA HistogramFactory interface. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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::ostreamprint (Base *h, std::ostream &s=std::cout) const override
 Print (ASCII) the 1D histogram into the output stream. More...
 
std::ostreamwrite (Base *h, std::ostream &s=std::cout) const override
 Write (ASCII) the 1D histogram table into the output stream. More...
 
int write (Base *h, const char *file_name) const override
 Write (ASCII) the 1D histogram table into a file. More...
 
DataObjectcreatePath (const std::string &newPath) override
 Create all directories in a given full path. More...
 
DataObjectcreateDirectory (const std::string &parentDir, const std::string &subDir) override
 Create a sub-directory in a directory. More...
 
StatusCode registerObject (std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, std::string_view objPath, DataObject *pObject) override
 Register object with the data store. More...
 
virtual StatusCode findObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Avoids a compiler warning about hidden functions. More...
 
virtual StatusCode findObject (std::string_view fullPath, DataObject *&pObject)=0
 Avoids a compiler warning about hidden functions. More...
 
StatusCode findObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Avoids a compiler warning about hidden functions. More...
 
StatusCode findObject (std::string_view parentPath, int item, DataObject *&pObject)
 Avoids a compiler warning about hidden functions. More...
 
StatusCode findObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Avoids a compiler warning about hidden functions. More...
 
StatusCode findObject (DataObject *parentObj, int item, DataObject *&pObject)
 Avoids a compiler warning about hidden functions. More...
 
StatusCode registerObject (std::string_view fullPath, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode registerObject (std::string_view parentPath, std::string_view objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
StatusCode registerObject (std::string_view parentPath, int item, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode registerObject (DataObject *parentObj, std::string_view objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, int item, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode retrieveObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Retrieve object identified by its directory entry. More...
 
StatusCode retrieveObject (std::string_view fullPath, DataObject *&pObject)
 Retrieve object identified by its full path from the data store. More...
 
StatusCode retrieveObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (std::string_view parentPath, int item, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, int item, DataObject *&pObject)
 Retrieve object from data store. More...
 
virtual StatusCode unregisterObject (std::string_view fullPath)=0
 Unregister object from the data store. More...
 
StatusCode unregisterObject (std::string_view parentPath, std::string_view objPath)
 Unregister object from the data store. More...
 
StatusCode unregisterObject (std::string_view parentPath, int item)
 Unregister object from the data store. More...
 
virtual StatusCode unregisterObject (DataObject *pObject)=0
 Unregister object from the data store. More...
 
virtual StatusCode unregisterObject (DataObject *pParent, std::string_view objPath)=0
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pParent, int item)
 Unregister object from the data store. More...
 
- Public Member Functions inherited from extends< DataSvc, IHistogramSvc >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from DataSvc
CLID rootCLID () const override
 IDataManagerSvc: Accessor for root event CLID. More...
 
const std::stringrootName () const override
 IDataManagerSvc: Accessor for root event name. More...
 
StatusCode registerAddress (std::string_view fullPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (IRegistry *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode unregisterAddress (std::string_view fullPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode unregisterAddress (IRegistry *pParent, std::string_view objPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode objectLeaves (const DataObject *pObject, std::vector< IRegistry * > &refLeaves) override
 IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object. More...
 
StatusCode objectLeaves (const IRegistry *pRegistry, std::vector< IRegistry * > &refLeaves) override
 IDataManagerSvc: Explore the object store: retrieve all leaves attached to the object. More...
 
StatusCode objectParent (const DataObject *pObject, IRegistry *&refpParent) override
 IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
 
StatusCode objectParent (const IRegistry *pRegistry, IRegistry *&refpParent) override
 IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
 
StatusCode clearSubTree (std::string_view sub_tree_path) override
 IDataManagerSvc: Remove all data objects below the sub tree identified by its full path name. More...
 
StatusCode clearSubTree (DataObject *pObject) override
 IDataManagerSvc: Remove all data objects below the sub tree identified by the object. More...
 
StatusCode clearStore () override
 IDataManagerSvc: Remove all data objects in the data store. More...
 
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. More...
 
StatusCode traverseSubTree (DataObject *pObject, IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
 
StatusCode traverseTree (IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
 
StatusCode setRoot (std::string root_name, DataObject *pRootObj) override
 Initialize data store for new event by giving new event path and root object. More...
 
virtual StatusCode i_setRoot (std::string root_name, DataObject *pRootObj)
 Initialize data store for new event by giving new event path and root object. More...
 
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. More...
 
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. More...
 
StatusCode setDataLoader (IConversionSvc *svc, IDataProviderSvc *dpsvc=nullptr) override
 IDataManagerSvc: IDataManagerSvc: Pass a default data loader to the service and optionally a data provider. More...
 
StatusCode addPreLoadItem (const DataStoreItem &item) override
 Add an item to the preload list. More...
 
StatusCode removePreLoadItem (const DataStoreItem &item) override
 Remove an item from the preload list. More...
 
StatusCode resetPreLoad () override
 Clear the preload list. More...
 
virtual StatusCode preLoad (int depth, int load_depth, DataObject *pObject)
 Execute one level of preloading and recursively load until the final level is reached. More...
 
StatusCode preLoad () override
 load all preload items of the list More...
 
StatusCode registerObject (std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, std::string_view objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode unregisterObject (std::string_view fullPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject, std::string_view objectPath) override
 Unregister object from the data store. More...
 
StatusCode retrieveObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode findObject (std::string_view fullPath, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode linkObject (IRegistry *from, std::string_view objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (std::string_view fullPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode unlinkObject (IRegistry *from, std::string_view objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (DataObject *fromObj, std::string_view objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (std::string_view fullPath) override
 Remove a link to another object. More...
 
StatusCode updateObject (IRegistry *pDirectory) override
 Update object identified by its directory entry. More...
 
StatusCode updateObject (DataObject *toUpdate) override
 Update object. More...
 
StatusCode initialize () override
 Service initialization. More...
 
StatusCode reinitialize () override
 Service initialization. More...
 
StatusCode finalize () override
 Service initialization. More...
 
 DataSvc (const DataSvc &)=delete
 copy constructor disabled More...
 
DataSvcoperator= (const DataSvc &)=delete
 Fake assignment operator (never implemented). More...
 
virtual StatusCode registerAddress (std::string_view fullPath, IOpaqueAddress *pAddress)=0
 Register object address with the data store. More...
 
StatusCode registerAddress (DataObject *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress)
 Register object address with the data store. More...
 
virtual StatusCode registerAddress (IRegistry *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress)=0
 Register object address with the data store. More...
 
virtual StatusCode unregisterAddress (std::string_view fullPath)=0
 Unregister object address from the data store. More...
 
StatusCode unregisterAddress (DataObject *pParent, std::string_view objPath)
 Unregister object address from the data store. More...
 
virtual StatusCode unregisterAddress (IRegistry *pParent, std::string_view objPath)=0
 Unregister object address from the data store. More...
 
StatusCode registerObject (std::string_view fullPath, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode registerObject (std::string_view parentPath, std::string_view objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
StatusCode registerObject (std::string_view parentPath, int item, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode registerObject (DataObject *parentObj, std::string_view objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, int item, DataObject *pObject)
 Register object with the data store. More...
 
virtual StatusCode retrieveObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Retrieve object identified by its directory entry. More...
 
StatusCode retrieveObject (std::string_view fullPath, DataObject *&pObject)
 Retrieve object identified by its full path from the data store. More...
 
StatusCode retrieveObject (std::string_view parentPath, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (std::string_view parentPath, int item, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, std::string_view objectPath, DataObject *&pObject)
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, int item, DataObject *&pObject)
 Retrieve object from data store. More...
 
virtual StatusCode findObject (IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
 Find object identified by its directory entry. More...
 
virtual StatusCode findObject (std::string_view fullPath, DataObject *&pObject)=0
 Find object identified by its full path in the data store. More...
 
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. More...
 
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. More...
 
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. More...
 
StatusCode findObject (DataObject *parentObj, int item, DataObject *&pObject)
 Find object identified by its parent object and an integer identifier in the data store. More...
 
virtual StatusCode linkObject (IRegistry *from, std::string_view objPath, DataObject *toObj)=0
 Add a link to another object. More...
 
StatusCode linkObject (std::string_view fromPath, std::string_view objPath, DataObject *toObj)
 Add a link to another object. More...
 
StatusCode linkObject (DataObject *fromObj, std::string_view objPath, DataObject *toObj)
 Add a link to another object. More...
 
virtual StatusCode linkObject (std::string_view fullPath, DataObject *toObj)=0
 Add a link to another object. More...
 
virtual StatusCode unlinkObject (IRegistry *from, std::string_view objPath)=0
 Remove a link to another object. More...
 
StatusCode unlinkObject (std::string_view fromPath, std::string_view objPath)
 Remove a link to another object. More...
 
virtual StatusCode unlinkObject (DataObject *fromObj, std::string_view objPath)=0
 Remove a link to another object. More...
 
virtual StatusCode unlinkObject (std::string_view fullPath)=0
 Remove a link to another object. More...
 
- Public Member Functions inherited from extends< Service, IDataProviderSvc, IDataManagerSvc >
void * i_cast (const InterfaceID &tid) const override
 Implementation of IInterface::i_cast. More...
 
StatusCode queryInterface (const InterfaceID &ti, void **pp) override
 Implementation of IInterface::queryInterface. More...
 
std::vector< std::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from Service
const std::stringname () const override
 Retrieve name of the service
More...
 
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
More...
 
StatusCode sysStart () override
 Initialize Service
More...
 
StatusCode sysStop () override
 Initialize Service
More...
 
StatusCode sysFinalize () override
 Finalize Service
More...
 
StatusCode sysReinitialize () override
 Re-initialize the Service. More...
 
StatusCode sysRestart () override
 Re-initialize the Service. More...
 
 Service (std::string name, ISvcLocator *svcloc)
 Standard Constructor
More...
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator
More...
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<typename IFace = IService>
SmartIF< IFace > service (const std::string &name, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist. More...
 
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, std::string toolTypeAndName, bool createIf=true)
 Declare used tool. More...
 
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. More...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
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. More...
 
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. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
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) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

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 More...
 
std::string buildHistoPath (DataObject const *pPar, std::string const &rel)
 extracts the path of an histogram from the related DataObject More...
 

Private Attributes

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

Additional Inherited Members

- Protected Member Functions inherited from DataSvc
bool checkRoot ()
 Check if root path is valid. More...
 
virtual IConversionSvcgetDataLoader (IRegistry *pReg)
 Retrieve customizable data loader according to registry entry to be retrieved. More...
 
virtual DataObjectcreateDefaultObject () const
 Create default objects in case forced creation of leaves is requested. More...
 
virtual StatusCode loadObject (IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation. More...
 
virtual StatusCode loadObject (IConversionSvc *pLoader, IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation. More...
 
StatusCode retrieveEntry (DataSvcHelpers::RegistryEntry *pNode, std::string_view path, DataSvcHelpers::RegistryEntry *&pEntry)
 Retrieve registry entry from store. More...
 
DataObjecthandleDataFault (IRegistry *pReg, std::string_view path="")
 Invoke data fault handling if enabled. More...
 
- Protected Member Functions inherited from Service
std::vector< IAlgTool * > & tools ()
 
 ~Service () override
 Standard Destructor
More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
- Protected Attributes inherited from DataSvc
SmartIF< IIncidentSvcm_incidentSvc = nullptr
 Pointer to incident service. More...
 
Gaudi::Property< CLIDm_rootCLID { this, "RootCLID", 110 , "CLID of root entry" }
 
Gaudi::Property< std::stringm_rootName { this, "RootName", "/Event", "name of root entry" }
 
std::unique_ptr< DataSvcHelpers::RegistryEntrym_root
 Pointer to root entry. More...
 
- Protected Attributes inherited from Service
Gaudi::StateMachine::State m_state = Gaudi::StateMachine::OFFLINE
 Service state
More...
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::OFFLINE
 Service state
More...
 
Gaudi::Property< int > m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" }
 flag indicating whether ToolHandle tools have been added to m_tools More...
 
Gaudi::Property< bool > m_auditInit { this, "AuditServices", false, "[[deprecated]] unused" }
 
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
More...
 

Detailed Description

HistogramSvc class definition

Definition at line 61 of file HistogramSvc.h.

Member Typedef Documentation

◆ Base

typedef AIDA::IBaseHistogram HistogramSvc::Base
protected

Definition at line 69 of file HistogramSvc.h.

◆ DBaseEntries

◆ Edges

Definition at line 145 of file HistogramSvc.h.

◆ H3D

typedef AIDA::IHistogram3D HistogramSvc::H3D
protected

Definition at line 67 of file HistogramSvc.h.

◆ Histo1DMap

◆ P2D

typedef AIDA::IProfile2D HistogramSvc::P2D
protected

Definition at line 68 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 344 of file HistogramSvc.cpp.

344  : base_class( nam, svc ) {
345  m_rootName = "/stat";
346  m_rootCLID = CLID_DataObject;
347 }

◆ ~HistogramSvc()

HistogramSvc::~HistogramSvc ( )
override

Destructor.

Definition at line 187 of file HistogramSvc.cpp.

187  {
188  setDataLoader( nullptr ).ignore();
189  clearStore().ignore();
190 }

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 1323 of file HistogramSvc.cpp.

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

◆ add() [2/3]

AIDA::IHistogram2D * HistogramSvc::add ( 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 }

◆ add() [3/3]

AIDA::IHistogram3D * HistogramSvc::add ( 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 }

◆ 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 499 of file HistogramSvc.cpp.

500  {
501  return book( loc.first, loc.second, title, e );
502 }

◆ 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 720 of file HistogramSvc.cpp.

721  {
722  return book( loc.first, loc.second, title, x, y );
723 }

◆ 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 873 of file HistogramSvc.cpp.

874  {
875  return book( loc.first, loc.second, title, x, y, z );
876 }

◆ 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 604 of file HistogramSvc.cpp.

605  {
606  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
607 }

◆ 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 834 of file HistogramSvc.cpp.

836  {
837  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
838 }

◆ book() [7/36]

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

Definition at line 505 of file HistogramSvc.cpp.

505  {
506  return book( i_splitPath( full ), title, e );
507 }

◆ 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 704 of file HistogramSvc.cpp.

704  {
705  return book( i_splitPath( full ), title, x, y );
706 }

◆ 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 850 of file HistogramSvc.cpp.

850  {
851  return book( i_splitPath( full ), title, x, y, z );
852 }

◆ 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 586 of file HistogramSvc.cpp.

587  {
588  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
589 }

◆ 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 809 of file HistogramSvc.cpp.

810  {
811  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
812 }

◆ 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 493 of file HistogramSvc.cpp.

494  {
495  return book( createPath( par ), rel, title, e );
496 }

◆ 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 709 of file HistogramSvc.cpp.

710  {
711  return book( createPath( par ), rel, title, x, y );
712 }

◆ 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 855 of file HistogramSvc.cpp.

856  {
857  return book( createPath( par ), rel, title, x, y, z );
858 }

◆ 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 592 of file HistogramSvc.cpp.

593  {
594  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
595 }

◆ 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 815 of file HistogramSvc.cpp.

817  {
818  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
819 }

◆ 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 483 of file HistogramSvc.cpp.

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

◆ 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 715 of file HistogramSvc.cpp.

715  {
716  return book( par, std::to_string( hID ), title, x, y );
717 }

◆ 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 861 of file HistogramSvc.cpp.

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

◆ 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 598 of file HistogramSvc.cpp.

599  {
600  return book( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
601 }

◆ 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 822 of file HistogramSvc.cpp.

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

◆ book() [25/36]

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

Definition at line 510 of file HistogramSvc.cpp.

510  {
511  return i_book( pPar, rel, title, Gaudi::createH1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e ) );
512 }

◆ 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 731 of file HistogramSvc.cpp.

732  {
733  return i_book( pPar, rel, title, Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y ) );
734 }

◆ 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 879 of file HistogramSvc.cpp.

880  {
881  return i_book( pPar, rel, title, Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, z ) );
882 }

◆ 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 616 of file HistogramSvc.cpp.

617  {
618  return i_book(
619  pPar, rel, title,
620  Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy ) );
621 }

◆ 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 841 of file HistogramSvc.cpp.

843  {
844  return i_book( pPar, rel, title,
845  Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy,
846  nz, lowz, upz ) );
847 }

◆ book() [31/36]

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

Definition at line 488 of file HistogramSvc.cpp.

488  {
489  return book( pPar, std::to_string( hID ), title, e );
490 }

◆ book() [32/36]

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

Definition at line 726 of file HistogramSvc.cpp.

726  {
727  return book( pPar, std::to_string( hID ), title, x, y );
728 }

◆ 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 867 of file HistogramSvc.cpp.

868  {
869  return book( pPar, std::to_string( hID ), title, x, y, z );
870 }

◆ 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 610 of file HistogramSvc.cpp.

611  {
612  return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
613 }

◆ 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 828 of file HistogramSvc.cpp.

829  {
830  return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
831 }

◆ 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 536 of file HistogramSvc.cpp.

537  {
538  return bookProf( loc.first, loc.second, title, e );
539 }

◆ 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 573 of file HistogramSvc.cpp.

574  {
575  return bookProf( loc.first, loc.second, title, e, upper, lower );
576 }

◆ 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 759 of file HistogramSvc.cpp.

760  {
761  return bookProf( loc.first, loc.second, title, x, y );
762 }

◆ 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 796 of file HistogramSvc.cpp.

797  {
798  return bookProf( loc.first, loc.second, title, x, y, upper, lower );
799 }

◆ 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 678 of file HistogramSvc.cpp.

679  {
680  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
681 }

◆ 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 637 of file HistogramSvc.cpp.

639  {
640  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
641 }

◆ 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 515 of file HistogramSvc.cpp.

515  {
516  return bookProf( i_splitPath( full ), title, e );
517 }

◆ 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 549 of file HistogramSvc.cpp.

550  {
551  return bookProf( i_splitPath( full ), title, e, upper, lower );
552 }

◆ 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 737 of file HistogramSvc.cpp.

737  {
738  return bookProf( i_splitPath( full ), title, x, y );
739 }

◆ 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 772 of file HistogramSvc.cpp.

773  {
774  return bookProf( i_splitPath( full ), title, x, y, upper, lower );
775 }

◆ 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 666 of file HistogramSvc.cpp.

667  {
668  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
669 }

◆ 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 624 of file HistogramSvc.cpp.

625  {
626  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
627 }

◆ 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 520 of file HistogramSvc.cpp.

521  {
522  return bookProf( createPath( par ), rel, title, e );
523 }

◆ 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 555 of file HistogramSvc.cpp.

556  {
557  return bookProf( createPath( par ), rel, title, e, upper, lower );
558 }

◆ 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 742 of file HistogramSvc.cpp.

743  {
744  return bookProf( createPath( par ), rel, title, x, y );
745 }

◆ 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 778 of file HistogramSvc.cpp.

779  {
780  return bookProf( createPath( par ), rel, title, x, y, upper, lower );
781 }

◆ 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 672 of file HistogramSvc.cpp.

673  {
674  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
675 }

◆ 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 630 of file HistogramSvc.cpp.

632  {
633  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
634 }

◆ bookProf() [25/48]

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

Definition at line 526 of file HistogramSvc.cpp.

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

◆ 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 561 of file HistogramSvc.cpp.

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

◆ 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 748 of file HistogramSvc.cpp.

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

◆ 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 784 of file HistogramSvc.cpp.

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

◆ 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 684 of file HistogramSvc.cpp.

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

◆ 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 644 of file HistogramSvc.cpp.

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

◆ bookProf() [33/48]

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

Definition at line 542 of file HistogramSvc.cpp.

543  {
544  return i_book( pPar, rel, title,
545  Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e, 0, 0 ) );
546 }

◆ 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 579 of file HistogramSvc.cpp.

580  {
581  return i_book( pPar, rel, title,
582  Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), title, e, upper, lower ) );
583 }

◆ 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 765 of file HistogramSvc.cpp.

766  {
767  return i_book( pPar, rel, title,
768  Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, 0, 0 ) );
769 }

◆ 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 802 of file HistogramSvc.cpp.

803  {
804  return i_book( pPar, rel, title,
805  Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, x, y, upper, lower ) );
806 }

◆ 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 696 of file HistogramSvc.cpp.

697  {
698  return i_book(
699  pPar, rel, title,
700  Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy, upy, 0, 0 ) );
701 }

◆ 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 657 of file HistogramSvc.cpp.

659  {
660  return i_book( pPar, rel, title,
661  Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), title, nx, lowx, upx, ny, lowy,
662  upy, upper, lower ) );
663 }

◆ bookProf() [41/48]

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

Definition at line 531 of file HistogramSvc.cpp.

531  {
532  return bookProf( pPar, std::to_string( hID ), title, e );
533 }

◆ 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 567 of file HistogramSvc.cpp.

568  {
569  return bookProf( pPar, std::to_string( hID ), title, e, upper, lower );
570 }

◆ bookProf() [43/48]

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

Definition at line 754 of file HistogramSvc.cpp.

754  {
755  return bookProf( pPar, std::to_string( hID ), title, x, y );
756 }

◆ 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 790 of file HistogramSvc.cpp.

791  {
792  return bookProf( pPar, std::to_string( hID ), title, x, y, upper, lower );
793 }

◆ 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 690 of file HistogramSvc.cpp.

691  {
692  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
693 }

◆ 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 651 of file HistogramSvc.cpp.

652  {
653  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
654 }

◆ 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 355 of file HistogramSvc.cpp.

355  {
356  std::string const& path = pPar->registry()->identifier();
357  std::string const& root = rootName();
358  return path.substr( root.size() ) + '/' + rel;
359 }

◆ connectInput()

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

Connect input histogram file to the service.

Parameters
ident[IN] Input specification

Definition at line 193 of file HistogramSvc.cpp.

193  {
194  using Parser = Gaudi::Utils::AttribStringParser;
195  DataObject* pO = nullptr;
196  StatusCode status = this->findObject( m_rootName.value(), pO );
197  if ( status.isSuccess() ) {
198  string::size_type loc = ident.find( " " );
199  string filename, auth, svc = "", typ = "";
200  string logname = ident.substr( 0, loc );
201  for ( auto attrib : Parser( ident.substr( loc + 1 ) ) ) {
202  switch ( ::toupper( attrib.tag[0] ) ) {
203  case 'F': // FILE='<file name>'
204  case 'D': // DATAFILE='<file name>'
205  filename = std::move( attrib.value );
206  break;
207  case 'T': // TYP='<HBOOK,ROOT,OBJY,...>'
208  typ = std::move( attrib.value );
209  break;
210  default:
211  break;
212  }
213  }
214  if ( typ.length() > 0 ) {
215  // Now add the registry entry to the store
216  string entryname = m_rootName;
217  entryname += '/';
218  entryname += logname;
219  GenericAddress* pA = nullptr;
220  switch ( ::toupper( typ[0] ) ) {
221  case 'H':
222  pA = new GenericAddress( HBOOK_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
223  break;
224  case 'R':
225  pA = new GenericAddress( ROOT_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
226  break;
227  }
228  if ( pA ) {
229  status = registerAddress( pO, logname, pA );
230  if ( status.isSuccess() ) {
231  info() << "Added stream file:" << filename << " as " << logname << endmsg;
232  return status;
233  }
234  pA->release();
235  }
236  }
237  }
238  error() << "Cannot add " << ident << " invalid filename!" << endmsg;
239  return StatusCode::FAILURE;
240 }

◆ createCloud1D() [1/2]

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

Definition at line 1008 of file HistogramSvc.h.

1008  {
1009  not_implemented();
1010  return nullptr;
1011  }

◆ createCloud1D() [2/2]

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

Definition at line 1003 of file HistogramSvc.h.

1003  {
1004  not_implemented();
1005  return nullptr;
1006  }

◆ createCloud2D() [1/2]

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

Definition at line 1023 of file HistogramSvc.h.

1023  {
1024  not_implemented();
1025  return nullptr;
1026  }

◆ createCloud2D() [2/2]

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

Definition at line 1018 of file HistogramSvc.h.

1018  {
1019  not_implemented();
1020  return nullptr;
1021  }

◆ createCloud3D() [1/2]

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

Definition at line 1038 of file HistogramSvc.h.

1038  {
1039  not_implemented();
1040  return nullptr;
1041  }

◆ createCloud3D() [2/2]

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

Definition at line 1033 of file HistogramSvc.h.

1033  {
1034  not_implemented();
1035  return nullptr;
1036  }

◆ createCopy() [1/23]

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

Definition at line 1445 of file HistogramSvc.cpp.

1446  {
1447  return createCopy( loc.first, loc.second, h );
1448 }

◆ createCopy() [2/23]

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

Definition at line 1492 of file HistogramSvc.cpp.

1493  {
1494  return createCopy( loc.first, loc.second, h );
1495 }

◆ createCopy() [3/23]

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

Definition at line 1541 of file HistogramSvc.cpp.

1542  {
1543  return createCopy( loc.first, loc.second, h );
1544 }

◆ createCopy() [4/23]

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

Definition at line 1598 of file HistogramSvc.cpp.

1599  {
1600  return createCopy( loc.first, loc.second, h );
1601 }

◆ createCopy() [5/23]

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

Definition at line 1672 of file HistogramSvc.cpp.

1673  {
1674  return createCopy( loc.first, loc.second, h );
1675 }

◆ createCopy() [6/23]

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

Definition at line 1013 of file HistogramSvc.h.

1013  {
1014  not_implemented();
1015  return nullptr;
1016  }

◆ createCopy() [7/23]

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

Definition at line 1028 of file HistogramSvc.h.

1028  {
1029  not_implemented();
1030  return nullptr;
1031  }

◆ createCopy() [8/23]

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

Definition at line 1043 of file HistogramSvc.h.

1043  {
1044  not_implemented();
1045  return nullptr;
1046  }

◆ createCopy() [9/23]

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

Definition at line 1434 of file HistogramSvc.cpp.

1434  {
1435  return createCopy( i_splitPath( full ), h );
1436 }

◆ createCopy() [10/23]

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

Definition at line 1481 of file HistogramSvc.cpp.

1481  {
1482  return createCopy( i_splitPath( full ), h );
1483 }

◆ createCopy() [11/23]

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

Definition at line 1530 of file HistogramSvc.cpp.

1530  {
1531  return createCopy( i_splitPath( full ), h );
1532 }

◆ createCopy() [12/23]

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

Definition at line 1587 of file HistogramSvc.cpp.

1587  {
1588  return createCopy( i_splitPath( full ), h );
1589 }

◆ createCopy() [13/23]

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

Definition at line 1661 of file HistogramSvc.cpp.

1661  {
1662  return createCopy( i_splitPath( full ), h );
1663 }

◆ createCopy() [14/23]

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

Definition at line 1439 of file HistogramSvc.cpp.

1440  {
1441  return createCopy( createPath( par ), rel, h );
1442 }

◆ createCopy() [15/23]

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

Definition at line 1486 of file HistogramSvc.cpp.

1487  {
1488  return createCopy( createPath( par ), rel, h );
1489 }

◆ createCopy() [16/23]

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

Definition at line 1535 of file HistogramSvc.cpp.

1536  {
1537  return createCopy( createPath( par ), rel, h );
1538 }

◆ createCopy() [17/23]

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

Definition at line 1592 of file HistogramSvc.cpp.

1593  {
1594  return createCopy( createPath( par ), rel, h );
1595 }

◆ createCopy() [18/23]

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

Definition at line 1666 of file HistogramSvc.cpp.

1667  {
1668  return createCopy( createPath( par ), rel, h );
1669 }

◆ createCopy() [19/23]

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

Definition at line 1451 of file HistogramSvc.cpp.

1451  {
1452  return i_book( pPar, rel, h.title(), Gaudi::createH1D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1453 }

◆ createCopy() [20/23]

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

Definition at line 1498 of file HistogramSvc.cpp.

1498  {
1499  return i_book( pPar, rel, h.title(), Gaudi::createH2D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1500 }

◆ createCopy() [21/23]

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

Definition at line 1547 of file HistogramSvc.cpp.

1547  {
1548  return i_book( pPar, rel, h.title(), Gaudi::createH3D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1549 }

◆ createCopy() [22/23]

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

Definition at line 1604 of file HistogramSvc.cpp.

1604  {
1605  return i_book( pPar, rel, h.title(), Gaudi::createProf1D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1606 }

◆ createCopy() [23/23]

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

Definition at line 1678 of file HistogramSvc.cpp.

1678  {
1679  return i_book( pPar, rel, h.title(), Gaudi::createProf2D( serviceLocator(), buildHistoPath( pPar, rel ), h ) );
1680 }

◆ 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 168 of file HistogramSvc.cpp.

168  {
169  auto directory = std::make_unique<DataObject>();
170  if ( directory ) {
171  DataObject* pnode;
172  StatusCode status = retrieveObject( parentDir, pnode );
173  if ( !status.isSuccess() ) {
174  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
175  return nullptr;
176  }
177  status = DataSvc::registerObject( pnode, subDir, directory.get() );
178  if ( !status.isSuccess() ) {
179  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
180  return nullptr;
181  }
182  }
183  return directory.release();
184 }

◆ 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 1422 of file HistogramSvc.cpp.

1423  {
1424  return book( name, title, x );
1425 }

◆ createHistogram1D() [2/4]

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

Definition at line 1410 of file HistogramSvc.cpp.

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

◆ 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 1416 of file HistogramSvc.cpp.

1417  {
1418  return book( name, title, nx, lowx, upx );
1419 }

◆ createHistogram1D() [4/4]

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

Definition at line 1428 of file HistogramSvc.cpp.

1429  {
1430  return book( nameAndTitle, nameAndTitle, nx, lowx, upx );
1431 }

◆ 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 1469 of file HistogramSvc.cpp.

1470  {
1471  return book( name, title, x, y );
1472 }

◆ 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 1456 of file HistogramSvc.cpp.

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

◆ 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 1462 of file HistogramSvc.cpp.

1464  {
1465  return book( name, title, nx, lowx, upx, ny, lowy, upy );
1466 }

◆ 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 1475 of file HistogramSvc.cpp.

1476  {
1477  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1478 }

◆ 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 1517 of file HistogramSvc.cpp.

1518  {
1519  return book( name, title, x, y, z );
1520 }

◆ 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 1503 of file HistogramSvc.cpp.

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

◆ 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 1510 of file HistogramSvc.cpp.

1512  {
1513  return book( name, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1514 }

◆ 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 1523 of file HistogramSvc.cpp.

1525  {
1526  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1527 }

◆ createPath()

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

Create all directories in a given full path.

Definition at line 143 of file HistogramSvc.cpp.

143  {
144  string tmpPath = newPath;
145  if ( tmpPath[0] != SEPARATOR ) {
146  tmpPath.insert( tmpPath.begin(), SEPARATOR );
147  tmpPath.insert( tmpPath.begin(), m_rootName.begin(), m_rootName.end() );
148  }
149  // Remove trailing "/" from newPath if it exists
150  if ( tmpPath.rfind( SEPARATOR ) == tmpPath.length() - 1 ) { tmpPath.erase( tmpPath.rfind( SEPARATOR ), 1 ); }
151  DataObject* pObject = nullptr;
152  StatusCode sc = findObject( tmpPath, pObject );
153  if ( sc.isSuccess() ) { return pObject; }
154  int sep = tmpPath.rfind( SEPARATOR );
155  string rest( tmpPath, sep + 1, tmpPath.length() - sep );
156  string subPath( tmpPath, 0, sep );
157  if ( 0 != sep ) {
158  createPath( subPath );
159  } else {
160  error() << "Unable to create the histogram path" << endmsg;
161  return nullptr;
162  }
163  pObject = createDirectory( subPath, rest );
164  return pObject;
165 }

◆ 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 1564 of file HistogramSvc.cpp.

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

◆ 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 1570 of file HistogramSvc.cpp.

1571  {
1572  return bookProf( name, title, x, upper, lower );
1573 }

◆ 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 1552 of file HistogramSvc.cpp.

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

◆ 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 1558 of file HistogramSvc.cpp.

1559  {
1560  return bookProf( name, title, nx, lowx, upx, upper, lower, opt );
1561 }

◆ createProfile1D() [5/6]

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

Definition at line 1576 of file HistogramSvc.cpp.

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

◆ 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 1581 of file HistogramSvc.cpp.

1582  {
1583  return bookProf( nametit, nametit, nx, lowx, upx, upper, lower, "s" );
1584 }

◆ 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 1622 of file HistogramSvc.cpp.

1623  {
1624  return bookProf( name, title, x, y );
1625 }

◆ 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 1648 of file HistogramSvc.cpp.

1650  {
1651  return bookProf( name, title, x, y, upper, lower );
1652 }

◆ 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 1609 of file HistogramSvc.cpp.

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

◆ 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 1615 of file HistogramSvc.cpp.

1617  {
1618  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy );
1619 }

◆ 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 1634 of file HistogramSvc.cpp.

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

◆ 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 1641 of file HistogramSvc.cpp.

1643  {
1644  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
1645 }

◆ 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 1628 of file HistogramSvc.cpp.

1629  {
1630  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1631 }

◆ 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 1655 of file HistogramSvc.cpp.

1656  {
1657  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, upper, lower );
1658 }

◆ destroy()

bool HistogramSvc::destroy ( IBaseHistogram *  hist)
override

Definition at line 312 of file HistogramSvc.cpp.

312  {
313  StatusCode sc = unregisterObject( dynamic_cast<IHistogram*>( hist ) );
314  if ( !sc.isSuccess() ) return false;
315  delete hist;
316  return true;
317 }

◆ divide() [1/3]

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

Definition at line 1341 of file HistogramSvc.cpp.

1342  {
1343  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1344 }

◆ divide() [2/3]

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

Definition at line 1365 of file HistogramSvc.cpp.

1366  {
1367  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1368 }

◆ divide() [3/3]

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

Definition at line 1389 of file HistogramSvc.cpp.

1390  {
1391  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Divide );
1392 }

◆ finalize()

StatusCode HistogramSvc::finalize ( )
override

finalize the service

Definition at line 364 of file HistogramSvc.cpp.

364  {
365  if ( !m_mods1D.empty() ) {
366  if ( msgLevel( MSG::DEBUG ) ) debug() << " Substituted histograms #" << m_mods1D.size() << " : " << endmsg;
367  for ( const auto& ih : m_mods1D ) {
368  if ( msgLevel( MSG::DEBUG ) ) debug() << " Path='" << ih << "'";
369  auto im = m_defs1D.find( ih );
370  if ( m_defs1D.end() != im ) { debug() << " " << im->second; }
371  }
372  m_mods1D.clear();
373  }
374  return DataSvc::finalize();
375 }

◆ findObject() [1/46]

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

Definition at line 1288 of file HistogramSvc.cpp.

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

◆ findObject() [2/46]

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

Definition at line 1293 of file HistogramSvc.cpp.

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

◆ findObject() [3/46]

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

Definition at line 1298 of file HistogramSvc.cpp.

1298  {
1299  return Helper( this ).find( ::detail::cast( par ), item, obj );
1300 }

◆ findObject() [4/46]

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

Definition at line 1278 of file HistogramSvc.cpp.

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

◆ findObject() [5/46]

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

Definition at line 1283 of file HistogramSvc.cpp.

1283  {
1284  return Helper( this ).find( ::detail::cast( par ), item, obj );
1285 }

◆ findObject() [6/46]

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

Definition at line 1263 of file HistogramSvc.cpp.

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

◆ findObject() [7/46]

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

Definition at line 1268 of file HistogramSvc.cpp.

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

◆ findObject() [8/46]

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

Definition at line 1273 of file HistogramSvc.cpp.

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

◆ findObject() [9/46]

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

Definition at line 1253 of file HistogramSvc.cpp.

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

◆ findObject() [10/46]

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

Definition at line 1258 of file HistogramSvc.cpp.

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

◆ findObject() [11/46]

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

Definition at line 1138 of file HistogramSvc.cpp.

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

◆ findObject() [12/46]

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

Definition at line 1143 of file HistogramSvc.cpp.

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

◆ findObject() [13/46]

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

Definition at line 1148 of file HistogramSvc.cpp.

1148  {
1149  return Helper( this ).find( full, obj );
1150 }

◆ findObject() [14/46]

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

Definition at line 1129 of file HistogramSvc.cpp.

1129  {
1130  return Helper( this ).find( full, obj );
1131 }

◆ findObject() [15/46]

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

Definition at line 1133 of file HistogramSvc.cpp.

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

◆ findObject() [16/46]

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

Definition at line 1163 of file HistogramSvc.cpp.

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

◆ findObject() [17/46]

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

Definition at line 1168 of file HistogramSvc.cpp.

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

◆ findObject() [18/46]

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

Definition at line 1173 of file HistogramSvc.cpp.

1173  {
1174  return Helper( this ).find( par, rel, obj );
1175 }

◆ findObject() [19/46]

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

Definition at line 1153 of file HistogramSvc.cpp.

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

◆ findObject() [20/46]

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

Definition at line 1158 of file HistogramSvc.cpp.

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

◆ findObject() [21/46]

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

Definition at line 1188 of file HistogramSvc.cpp.

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

◆ findObject() [22/46]

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

Definition at line 1193 of file HistogramSvc.cpp.

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

◆ findObject() [23/46]

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

Definition at line 1198 of file HistogramSvc.cpp.

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

◆ findObject() [24/46]

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

Definition at line 1178 of file HistogramSvc.cpp.

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

◆ findObject() [25/46]

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

Definition at line 1183 of file HistogramSvc.cpp.

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

◆ findObject() [26/46]

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

Definition at line 1238 of file HistogramSvc.cpp.

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

◆ findObject() [27/46]

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

Definition at line 1243 of file HistogramSvc.cpp.

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

◆ findObject() [28/46]

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

Definition at line 1248 of file HistogramSvc.cpp.

1248  {
1249  return Helper( this ).find( par, item, obj );
1250 }

◆ findObject() [29/46]

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

Definition at line 1228 of file HistogramSvc.cpp.

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

◆ findObject() [30/46]

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

Definition at line 1233 of file HistogramSvc.cpp.

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

◆ findObject() [31/46]

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

Definition at line 1213 of file HistogramSvc.cpp.

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

◆ findObject() [32/46]

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

Definition at line 1218 of file HistogramSvc.cpp.

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

◆ findObject() [33/46]

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

Definition at line 1223 of file HistogramSvc.cpp.

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

◆ findObject() [34/46]

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

Definition at line 1203 of file HistogramSvc.cpp.

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

◆ findObject() [35/46]

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

Definition at line 1208 of file HistogramSvc.cpp.

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

◆ findObject() [36/46]

StatusCode IDataProviderSvc::findObject
inline

Avoids a compiler warning about hidden functions.

Definition at line 373 of file IDataProviderSvc.h.

373  {
374  return findObject( parentObj, itemToPath( item ), pObject );
375  }

◆ findObject() [37/46]

StatusCode IDataProviderSvc::findObject
inline

Avoids a compiler warning about hidden functions.

Definition at line 361 of file IDataProviderSvc.h.

361  {
362  return findObject( parentObj ? parentObj->registry() : nullptr, objectPath, pObject );
363  }

◆ findObject() [38/46]

virtual StatusCode IDataProviderSvc::findObject

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 1117 of file HistogramSvc.cpp.

1117  {
1118  return Helper( this ).find( pReg, path, obj );
1119 }

◆ findObject() [40/46]

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

Definition at line 1121 of file HistogramSvc.cpp.

1121  {
1122  return Helper( this ).find( pReg, path, obj );
1123 }

◆ findObject() [41/46]

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

Definition at line 1125 of file HistogramSvc.cpp.

1125  {
1126  return Helper( this ).find( pReg, path, obj );
1127 }

◆ findObject() [42/46]

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

Definition at line 1109 of file HistogramSvc.cpp.

1109  {
1110  return Helper( this ).find( pReg, path, obj );
1111 }

◆ findObject() [43/46]

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

Definition at line 1113 of file HistogramSvc.cpp.

1113  {
1114  return Helper( this ).find( pReg, path, obj );
1115 }

◆ findObject() [44/46]

virtual StatusCode IDataProviderSvc::findObject

Avoids a compiler warning about hidden functions.

◆ findObject() [45/46]

StatusCode IDataProviderSvc::findObject
inline

Avoids a compiler warning about hidden functions.

Definition at line 348 of file IDataProviderSvc.h.

348  {
349  return findObject( parentPath, itemToPath( item ), pObject );
350  }

◆ findObject() [46/46]

StatusCode IDataProviderSvc::findObject
inline

Avoids a compiler warning about hidden functions.

Definition at line 334 of file IDataProviderSvc.h.

334  {
335  DataObject* parent = nullptr;
336  StatusCode status = findObject( parentPath, parent );
337  return status.isSuccess() ? findObject( parent, objectPath, pObject ) : status;
338  }

◆ histogramFactory()

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

Retrieve the AIDA HistogramFactory interface.

Definition at line 190 of file HistogramSvc.h.

190 { 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 170 of file HistogramSvc.h.

171  {
172  if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
173  delete o.first;
174  throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
176  }

◆ 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 91 of file HistogramSvc.cpp.

91  {
92  TH3D* h3d = Gaudi::getRepresentation<IHistogram3D, TH3D>( h );
93  if ( h3d ) {
94  TH2D* h2d = dynamic_cast<TH2D*>( h3d->Project3D( dir.c_str() ) );
95  if ( h2d ) {
97  if ( r.second && registerObject( nameAndTitle, r.second ).isSuccess() ) { return r.second; }
98  }
99  }
100  return nullptr;
101 }

◆ 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 130 of file HistogramSvc.cpp.

130  {
131  string tmp = full;
132  if ( tmp[0] != SEPARATOR ) {
133  tmp.insert( tmp.begin(), SEPARATOR );
134  tmp.insert( tmp.begin(), m_rootName.begin(), m_rootName.end() );
135  }
136  // Remove trailing "/" from newPath if it exists
137  if ( tmp.rfind( SEPARATOR ) == tmp.length() - 1 ) { tmp.erase( tmp.length() - 1, 1 ); }
138  int sep = tmp.rfind( SEPARATOR );
139  return { tmp.substr( 0, sep ), tmp.substr( sep ) };
140 }

◆ initialize()

StatusCode HistogramSvc::initialize ( )
override

Initialise the service.

Definition at line 243 of file HistogramSvc.cpp.

243  {
244  StatusCode status = DataSvc::initialize();
245  // Set root object
246  if ( status.isSuccess() ) {
247  auto rootObj = std::make_unique<DataObject>();
248  status = setRoot( "/stat", rootObj.get() );
249  if ( status.isFailure() ) {
250  error() << "Unable to set hstogram data store root." << endmsg;
251  return status;
252  }
253  rootObj.release();
254  auto svc = service<IConversionSvc>( "HistogramPersistencySvc", true );
255  if ( !svc ) {
256  error() << "Could not find HistogramPersistencySvc." << endmsg;
257  return StatusCode::FAILURE;
258  }
259  setDataLoader( svc.get() ).ignore();
260  // Connect all input streams (if any)
261  for ( auto& j : m_input ) {
262  status = connectInput( j );
263  if ( !status.isSuccess() ) return status;
264  }
265  }
266  if ( !m_defs1D.empty() ) {
267  info() << " Predefined 1D-Histograms: " << endmsg;
268  for ( const auto& ih : m_defs1D ) {
269  info() << " Path='" << ih.first << "'"
270  << " Description " << ih.second << endmsg;
271  }
272  }
273  return status;
274 }

◆ multiply() [1/3]

AIDA::IHistogram1D * HistogramSvc::multiply ( 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::Multiply );
1338 }

◆ multiply() [2/3]

AIDA::IHistogram2D * HistogramSvc::multiply ( 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::Multiply );
1362 }

◆ multiply() [3/3]

AIDA::IHistogram3D * HistogramSvc::multiply ( 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::Multiply );
1386 }

◆ not_implemented()

void HistogramSvc::not_implemented ( ) const
inlineprivate

Definition at line 64 of file HistogramSvc.h.

64 { 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 106 of file HistogramSvc.cpp.

106  {
107  Gaudi::HistogramBase* b = dynamic_cast<Gaudi::HistogramBase*>( h );
108  if ( b ) return b->print( s );
109  error() << "Unknown histogram type: Cannot cast to Gaudi::HistogramBase." << endmsg;
110  return s;
111 }

◆ projectionX()

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

Definition at line 1303 of file HistogramSvc.cpp.

1303  {
1304  return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1305 }

◆ projectionXY()

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

Definition at line 1395 of file HistogramSvc.cpp.

1395  {
1396  return i_project( nameAndTitle, h, "xy" );
1397 }

◆ projectionXZ()

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

Definition at line 1400 of file HistogramSvc.cpp.

1400  {
1401  return i_project( nameAndTitle, h, "xz" );
1402 }

◆ projectionY()

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

Definition at line 1308 of file HistogramSvc.cpp.

1308  {
1309  return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1310 }

◆ projectionYZ()

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

Definition at line 1405 of file HistogramSvc.cpp.

1405  {
1406  return i_project( nameAndTitle, h, "yz" );
1407 }

◆ registerObject() [1/11]

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

Definition at line 890 of file HistogramSvc.cpp.

890  {
891  return registerObject( ::detail::cast( pPar ), rel, obj );
892 }

◆ registerObject() [2/11]

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

◆ registerObject() [3/11]

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

Definition at line 885 of file HistogramSvc.cpp.

885  {
886  return registerObject( createPath( parent ), rel, obj );
887 }

◆ registerObject() [4/11]

StatusCode IDataProviderSvc::registerObject
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 117 of file IDataProviderSvc.h.

117  {
118  return registerObject( parentObj, itemToPath( item ), pObject );
119  }

◆ registerObject() [5/11]

virtual StatusCode IDataProviderSvc::registerObject

Register object with the data store.

Connect the object identified by its pointer to the parent object and the relative path of the object with respect to the parent.

Parameters
parentObjPointer to parent object.
objectPathPath of the object relative to the parent node
pObjectPointer to the object to be connected.
Returns
Status code indicating success or failure.

◆ registerObject() [6/11]

StatusCode DataSvc::registerObject
override

Register object with the data store.

Definition at line 196 of file DataSvc.cpp.

314  {
315  if ( !checkRoot() ) return Status::INVALID_ROOT;
316 
317  if ( !parentObj ) {
318  if ( !objPath.empty() ) {
319  if ( objPath.front() != SEPARATOR ) { return registerObject( m_rootName.value(), objPath, pObject ); }
320  auto sep = find( objPath, SEPARATOR, 1 );
321  if ( sep != std::string_view::npos ) {
322  return registerObject( objPath.substr( 0, sep ), objPath.substr( sep ), pObject );
323  }
324  }
325  return Status::INVALID_OBJ_PATH;
326  }
327  RegEntry* node_entry = CAST_REGENTRY( RegEntry*, parentObj->registry() );
328  if ( node_entry ) {
329  StatusCode status = Status::INVALID_PARENT;
330  auto sep = find( objPath, SEPARATOR, 1 );
331  if ( sep != std::string_view::npos ) {
332  auto p_path = objPath.substr( 0, sep );
333  auto o_path = objPath.substr( sep );
334  RegEntry* par_entry = node_entry->findLeaf( p_path );
335  // Create default object leafs if the
336  // intermediate nodes are not present
337  if ( !par_entry && m_forceLeaves ) {
338  DataObject* pLeaf = createDefaultObject();
339  StatusCode sc = registerObject( parentObj, p_path, pLeaf );
340  if ( !sc.isSuccess() ) delete pLeaf;
341  par_entry = node_entry->findLeaf( p_path );
342  } else if ( par_entry && !par_entry->object() ) {
343  status = i_retrieveEntry( node_entry, p_path, par_entry );
344  if ( !status.isSuccess() && !par_entry->address() && m_forceLeaves ) {
345  DataObject* pLeaf = createDefaultObject();
346  StatusCode sc = registerObject( parentObj, p_path, pLeaf );
347  if ( !sc.isSuccess() ) delete pLeaf;
348  par_entry = node_entry->findLeaf( p_path );
349  }
350  }
351  node_entry = par_entry;
352  if ( node_entry ) {
353  DataObject* obj = node_entry->object();
354  if ( obj ) status = registerObject( obj, o_path, pObject );
355  }
356  } else {
357  RegEntry* leaf = node_entry->findLeaf( objPath );
358  if ( !leaf ) {
359  status = node_entry->add( to_string( objPath ), pObject );
360  } else {
361  DataObject* obj = leaf->object();
362  if ( !obj ) {
363  if ( !pObject ) {
364  error() << "registerObject: trying to register null DataObject" << endmsg;
365  return StatusCode::FAILURE;
366  }
367  pObject->setRegistry( leaf );
368  leaf->setAddress( nullptr );
369  leaf->setObject( pObject );
370  status = StatusCode::SUCCESS;
371  } else {
372  status = Status::DOUBL_OBJ_PATH;
373  }
374  }
375  }
376  return status;
377  }
378  return Status::INVALID_PARENT;
379 }

◆ registerObject() [7/11]

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

◆ registerObject() [8/11]

StatusCode IDataProviderSvc::registerObject
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 72 of file IDataProviderSvc.h.

72  {
73  return registerObject( nullptr, fullPath, pObject );
74  }

◆ registerObject() [9/11]

StatusCode IDataProviderSvc::registerObject
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 95 of file IDataProviderSvc.h.

95  {
96  return registerObject( parentPath, itemToPath( item ), pObject );
97  }

◆ registerObject() [10/11]

virtual StatusCode IDataProviderSvc::registerObject

Register object with the data store.

Connect the object identified by the path to the parent object and the path of the object itself relative to the specified parent.

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

◆ registerObject() [11/11]

StatusCode DataSvc::registerObject
override

Register object with the data store.

Definition at line 193 of file DataSvc.cpp.

302  {
303  DataObject* pO = nullptr;
304  StatusCode status = retrieveObject( parentPath, pO );
305  if ( !status.isSuccess() && m_forceLeaves ) {
306  pO = createDefaultObject();
307  status = registerObject( parentPath, pO );
308  if ( !status.isSuccess() ) pO->release();
309  }
310  return status.isSuccess() ? registerObject( pO, objPath, pObject ) : status;
311 }

◆ reinitialize()

StatusCode HistogramSvc::reinitialize ( )
override

Initialise the service.

Definition at line 277 of file HistogramSvc.cpp.

277 { return StatusCode::SUCCESS; }

◆ retrieveObject() [1/46]

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

Definition at line 1094 of file HistogramSvc.cpp.

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

◆ retrieveObject() [2/46]

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

Definition at line 1099 of file HistogramSvc.cpp.

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

◆ retrieveObject() [3/46]

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

Definition at line 1104 of file HistogramSvc.cpp.

1104  {
1105  return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1106 }

◆ retrieveObject() [4/46]

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

Definition at line 1084 of file HistogramSvc.cpp.

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

◆ retrieveObject() [5/46]

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

Definition at line 1089 of file HistogramSvc.cpp.

1089  {
1090  return Helper( this ).retrieve( ::detail::cast( par ), item, obj );
1091 }

◆ retrieveObject() [6/46]

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

Definition at line 1069 of file HistogramSvc.cpp.

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

◆ retrieveObject() [7/46]

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

Definition at line 1074 of file HistogramSvc.cpp.

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

◆ retrieveObject() [8/46]

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

Definition at line 1079 of file HistogramSvc.cpp.

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

◆ retrieveObject() [9/46]

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

Definition at line 1059 of file HistogramSvc.cpp.

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

◆ retrieveObject() [10/46]

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

Definition at line 1064 of file HistogramSvc.cpp.

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

◆ retrieveObject() [11/46]

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

Definition at line 943 of file HistogramSvc.cpp.

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

◆ retrieveObject() [12/46]

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

Definition at line 948 of file HistogramSvc.cpp.

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

◆ retrieveObject() [13/46]

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

Definition at line 953 of file HistogramSvc.cpp.

953  {
954  return Helper( this ).retrieve( full, obj );
955 }

◆ retrieveObject() [14/46]

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

Definition at line 933 of file HistogramSvc.cpp.

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

◆ retrieveObject() [15/46]

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

Definition at line 938 of file HistogramSvc.cpp.

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

◆ retrieveObject() [16/46]

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

Definition at line 970 of file HistogramSvc.cpp.

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

◆ retrieveObject() [17/46]

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

Definition at line 975 of file HistogramSvc.cpp.

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

◆ retrieveObject() [18/46]

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

Definition at line 980 of file HistogramSvc.cpp.

980  {
981  return Helper( this ).retrieve( parent, rel, obj );
982 }

◆ retrieveObject() [19/46]

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

Definition at line 958 of file HistogramSvc.cpp.

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

◆ retrieveObject() [20/46]

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

Definition at line 965 of file HistogramSvc.cpp.

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

◆ retrieveObject() [21/46]

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

Definition at line 995 of file HistogramSvc.cpp.

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

◆ retrieveObject() [22/46]

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

Definition at line 1000 of file HistogramSvc.cpp.

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

◆ retrieveObject() [23/46]

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

Definition at line 1005 of file HistogramSvc.cpp.

1005  {
1006  return Helper( this ).retrieve( parent, item, obj );
1007 }

◆ retrieveObject() [24/46]

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

Definition at line 985 of file HistogramSvc.cpp.

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

◆ retrieveObject() [25/46]

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

Definition at line 990 of file HistogramSvc.cpp.

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

◆ retrieveObject() [26/46]

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

Definition at line 1019 of file HistogramSvc.cpp.

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

◆ retrieveObject() [27/46]

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

Definition at line 1024 of file HistogramSvc.cpp.

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

◆ retrieveObject() [28/46]

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

Definition at line 1029 of file HistogramSvc.cpp.

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

◆ retrieveObject() [29/46]

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

Definition at line 1009 of file HistogramSvc.cpp.

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

◆ retrieveObject() [30/46]

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

Definition at line 1014 of file HistogramSvc.cpp.

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

◆ retrieveObject() [31/46]

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

Definition at line 1044 of file HistogramSvc.cpp.

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

◆ retrieveObject() [32/46]

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

Definition at line 1049 of file HistogramSvc.cpp.

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

◆ retrieveObject() [33/46]

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

Definition at line 1054 of file HistogramSvc.cpp.

1054  {
1055  return Helper( this ).retrieve( par, item, obj );
1056 }

◆ retrieveObject() [34/46]

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

Definition at line 1034 of file HistogramSvc.cpp.

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

◆ retrieveObject() [35/46]

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

Definition at line 1039 of file HistogramSvc.cpp.

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

◆ retrieveObject() [36/46]

StatusCode IDataProviderSvc::retrieveObject
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 301 of file IDataProviderSvc.h.

301  {
302  return retrieveObject( parentObj, itemToPath( item ), pObject );
303  }

◆ retrieveObject() [37/46]

StatusCode IDataProviderSvc::retrieveObject
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 287 of file IDataProviderSvc.h.

287  {
288  return retrieveObject( parentObj ? parentObj->registry() : nullptr, objectPath, pObject );
289  }

◆ retrieveObject() [38/46]

virtual StatusCode IDataProviderSvc::retrieveObject

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 908 of file HistogramSvc.cpp.

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

◆ retrieveObject() [40/46]

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

Definition at line 918 of file HistogramSvc.cpp.

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

◆ retrieveObject() [41/46]

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

Definition at line 928 of file HistogramSvc.cpp.

928  {
929  return Helper( this ).retrieve( pReg, path, obj );
930 }

◆ retrieveObject() [42/46]

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

Definition at line 913 of file HistogramSvc.cpp.

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

◆ retrieveObject() [43/46]

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

Definition at line 923 of file HistogramSvc.cpp.

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

◆ retrieveObject() [44/46]

StatusCode IDataProviderSvc::retrieveObject
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 243 of file IDataProviderSvc.h.

243  {
244  return retrieveObject( static_cast<IRegistry*>( nullptr ), fullPath, pObject );
245  }

◆ retrieveObject() [45/46]

StatusCode IDataProviderSvc::retrieveObject
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 273 of file IDataProviderSvc.h.

273  {
274  return retrieveObject( parentPath, itemToPath( item ), pObject );
275  }

◆ retrieveObject() [46/46]

StatusCode IDataProviderSvc::retrieveObject
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 257 of file IDataProviderSvc.h.

257  {
258  DataObject* parent = nullptr;
259  StatusCode status = retrieveObject( parentPath, parent );
260  return status.isSuccess() ? retrieveObject( parent, objectPath, pObject ) : status;
261  }

◆ sliceX() [1/2]

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

Definition at line 1313 of file HistogramSvc.cpp.

1313  {
1314  return sliceX( name, h, indexY, indexY );
1315 }

◆ 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 866 of file HistogramSvc.h.

867  {
868  not_implemented();
869  return nullptr;
870  }

◆ sliceXZ()

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

Definition at line 872 of file HistogramSvc.h.

873  {
874  not_implemented();
875  return nullptr;
876  }

◆ sliceY() [1/2]

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

Definition at line 1318 of file HistogramSvc.cpp.

1318  {
1319  return sliceY( name, h, indexX, indexX );
1320 }

◆ 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 878 of file HistogramSvc.h.

879  {
880  not_implemented();
881  return nullptr;
882  }

◆ subtract() [1/3]

AIDA::IHistogram1D * HistogramSvc::subtract ( 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::Add, -1. );
1332 }

◆ subtract() [2/3]

AIDA::IHistogram2D * HistogramSvc::subtract ( 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::Add, -1. );
1356 }

◆ subtract() [3/3]

AIDA::IHistogram3D * HistogramSvc::subtract ( 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::Add, -1. );
1380 }

◆ unregisterObject() [1/9]

StatusCode HistogramSvc::unregisterObject ( Base obj)
override

Definition at line 895 of file HistogramSvc.cpp.

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

◆ unregisterObject() [2/9]

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

Definition at line 898 of file HistogramSvc.cpp.

898  {
899  return unregisterObject( ::detail::cast( obj ), objectPath );
900 }

◆ unregisterObject() [3/9]

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

Definition at line 903 of file HistogramSvc.cpp.

903  {
904  return unregisterObject( ::detail::cast( obj ), item );
905 }

◆ unregisterObject() [4/9]

virtual StatusCode IDataProviderSvc::unregisterObject

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
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 219 of file IDataProviderSvc.h.

219  {
220  return unregisterObject( pParent, itemToPath( item ) );
221  }

◆ unregisterObject() [6/9]

virtual StatusCode IDataProviderSvc::unregisterObject

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

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
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 170 of file IDataProviderSvc.h.

170  {
171  return unregisterObject( parentPath, itemToPath( item ) );
172  }

◆ unregisterObject() [9/9]

StatusCode IDataProviderSvc::unregisterObject
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 150 of file IDataProviderSvc.h.

150  {
151  DataObject* pO = nullptr;
152  StatusCode status = findObject( parentPath, pO );
153  return status.isSuccess() ? unregisterObject( pO, objPath ) : status;
154  }

◆ update1Ddefs()

void HistogramSvc::update1Ddefs ( )
private

handler to be invoked for updating property m_defs1D

Definition at line 350 of file HistogramSvc.cpp.

350  {
351  // check and remove the leading '/stat/'
352  removeLeading( m_defs1D.value(), "/stat/" );
353 }

◆ 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" }

Definition at line 1082 of file HistogramSvc.h.

◆ m_input

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

Definition at line 1081 of file HistogramSvc.h.

◆ m_mods1D

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

Definition at line 1086 of file HistogramSvc.h.


The documentation for this class was generated from the following files:
MSG::DEBUG
@ DEBUG
Definition: IMessageSvc.h:25
toupper
void toupper(std::string &s)
Definition: ExceptionSvc.cpp:36
DataSvcHelpers::RegistryEntry::setAddress
void setAddress(IOpaqueAddress *pAddress) override
Set/Update Opaque address.
Definition: RegistryEntry.cpp:119
std::string
STL class.
std::move
T move(T... args)
DataSvcHelpers::RegistryEntry::findLeaf
RegistryEntry * findLeaf(std::string_view path) const
Find identified leaf in this registry node.
Definition: RegistryEntry.h:103
GaudiAlg.HistoUtils.path
path
Definition: HistoUtils.py:960
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:314
std::pair
HistogramSvc::book
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.
Gaudi::Accumulators::atomicity::full
@ full
gaudirun.s
string s
Definition: gaudirun.py:346
std::find
T find(T... args)
std::set::size
T size(T... args)
HistogramSvc::m_mods1D
std::set< std::string > m_mods1D
Definition: HistogramSvc.h:1086
CAST_REGENTRY
#define CAST_REGENTRY(x, y)
Definition: DataSvc.cpp:72
DataObject::release
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:56
DataSvc::setDataLoader
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:186
GaudiException
Definition: GaudiException.h:31
HBOOK_StorageType
const long HBOOK_StorageType
Definition: ClassID.h:66
HistogramSvc::retrieveObject
StatusCode retrieveObject(IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
Definition: HistogramSvc.cpp:908
gaudiComponentHelp.root
root
Definition: gaudiComponentHelp.py:42
DataSvc::i_retrieveEntry
StatusCode i_retrieveEntry(DataSvcHelpers::RegistryEntry *parentObj, std::string_view path, DataSvcHelpers::RegistryEntry *&pEntry)
Definition: DataSvc.cpp:541
HistogramSvc::m_defs1D
Gaudi::Property< Histo1DMap > m_defs1D
Definition: HistogramSvc.h:1082
IRegistry
Definition: IRegistry.h:32
HistogramSvc::Helper::act
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:313
HistogramSvc::sliceX
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
Definition: HistogramSvc.cpp:1313
HistogramSvc::Base
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:69
CommonMessaging< implements< IService, IProperty, IStateful > >::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:148
extends< DataSvc, IHistogramSvc >::base_class
extends base_class
Typedef to this class.
Definition: extends.h:24
HistogramSvc::sliceY
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
Definition: HistogramSvc.cpp:1318
DataSvc::clearStore
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: DataSvc.cpp:111
std::set::clear
T clear(T... args)
Gaudi::HistogramBase
Definition: HistogramBase.h:32
compareOutputFiles.par
par
Definition: compareOutputFiles.py:477
HistogramSvc::i_book
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:170
GenericAddress
Definition: GenericAddress.h:30
DataSvcHelpers::RegistryEntry::address
IOpaqueAddress * address() const override
Retrieve opaque storage address.
Definition: RegistryEntry.h:133
DataSvc::createDefaultObject
virtual DataObject * createDefaultObject() const
Create default objects in case forced creation of leaves is requested.
Definition: DataSvc.cpp:870
DataSvcHelpers::RegistryEntry::object
DataObject * object() const override
Retrive object behind the link.
Definition: RegistryEntry.h:131
Service::name
const std::string & name() const override
Retrieve name of the service
Definition: Service.cpp:332
StatusCode
Definition: StatusCode.h:65
HistogramSvc::connectInput
StatusCode connectInput(const std::string &ident)
Connect input histogram file to the service.
Definition: HistogramSvc.cpp:193
HistogramSvc::bookProf
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.
ProduceConsume.j
j
Definition: ProduceConsume.py:101
DataSvc::m_rootName
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:62
HistogramSvc::unregisterObject
StatusCode unregisterObject(Base *obj) override
Definition: HistogramSvc.cpp:895
DataSvcHelpers::RegistryEntry::setObject
void setObject(DataObject *obj)
Set/Update object address.
Definition: RegistryEntry.cpp:129
std::string::c_str
T c_str(T... args)
AlgSequencer.h
h
Definition: AlgSequencer.py:31
Gaudi::Property::value
const ValueType & value() const
Definition: Property.h:239
std::to_string
T to_string(T... args)
Gaudi::createH3D
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram3D &hist)
Copy constructor.
DataSvc::rootName
const std::string & rootName() const override
IDataManagerSvc: Accessor for root event name.
Definition: DataSvc.cpp:867
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:203
ROOT_StorageType
const long ROOT_StorageType
Definition: ClassID.h:62
Gaudi::createProf1D
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IProfile1D &hist)
Copy constructor.
Gaudi::HistogramBase::print
virtual std::ostream & print(std::ostream &s) const =0
Print histogram to output stream.
StatusCode::ignore
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Definition: StatusCode.h:139
SEPARATOR
constexpr char SEPARATOR
Definition: RegistryEntry.cpp:50
HistogramSvc::buildHistoPath
std::string buildHistoPath(DataObject const *pPar, std::string const &rel)
extracts the path of an histogram from the related DataObject
Definition: HistogramSvc.cpp:355
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:129
DataSvc::checkRoot
bool checkRoot()
Check if root path is valid.
Definition: DataSvc.h:264
HistogramSvc::findObject
StatusCode findObject(IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
Definition: HistogramSvc.cpp:1109
DataSvc::m_forceLeaves
Gaudi::Property< bool > m_forceLeaves
Definition: DataSvc.h:65
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
HistogramSvc::createPath
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
Definition: HistogramSvc.cpp:143
DataSvcHelpers::RegistryEntry
Definition: RegistryEntry.h:46
GenericAddress::release
unsigned long release() override
release reference to object
Definition: GenericAddress.h:71
HistogramSvc::i_splitPath
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
Definition: HistogramSvc.cpp:130
std::string::insert
T insert(T... args)
HistogramSvc::i_project
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.
Definition: HistogramSvc.cpp:91
DataSvc::setRoot
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:141
DataSvcHelpers::RegistryEntry::add
StatusCode add(std::string name, DataObject *pObject, bool is_soft=false)
Add entry to data store.
Definition: RegistryEntry.cpp:198
DataObject
Definition: DataObject.h:36
DataSvc::registerObject
StatusCode registerObject(std::string_view parentPath, std::string_view objPath, DataObject *pObject) override
Register object with the data store.
Definition: DataSvc.cpp:302
std::set::empty
T empty(T... args)
HistogramSvc::m_input
Gaudi::Property< DBaseEntries > m_input
Definition: HistogramSvc.h:1081
GaudiConfig2.semantics.ident
ident
Definition: semantics.py:198
DataSvc::initialize
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:821
HistogramSvc::not_implemented
void not_implemented() const
Definition: HistogramSvc.h:64
HistogramSvc::update1Ddefs
void update1Ddefs()
handler to be invoked for updating property m_defs1D
Definition: HistogramSvc.cpp:350
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
Gaudi::createH1D
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram1D &hist)
Copy constructor.
HistogramSvc::registerObject
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
Definition: HistogramSvc.cpp:885
DataSvc::m_rootCLID
Gaudi::Property< CLID > m_rootCLID
Definition: DataSvc.h:61
graphanalysis.filename
filename
Definition: graphanalysis.py:130
Gaudi::Utils::AttribStringParser
Parse attribute strings allowing iteration over the various attributes.
Definition: AttribStringParser.h:40
Gaudi::createH2D
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IHistogram2D &hist)
Copy constructor.
Gaudi::createProf2D
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(ISvcLocator *svcLocator, const std::string &path, const AIDA::IProfile2D &hist)
Copy constructor.
HistogramSvc::createDirectory
DataObject * createDirectory(const std::string &parentDir, const std::string &subDir) override
Create a sub-directory in a directory.
Definition: HistogramSvc.cpp:168
DataSvc::registerAddress
StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress) override
IDataManagerSvc: Register object address with the data store.
Definition: DataSvc.cpp:224
GaudiPartProp.Service.Helper
Helper
Definition: Service.py:39
HistogramSvc::createCopy
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
Definition: HistogramSvc.cpp:1434
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator
Definition: Service.cpp:335
DataSvc::finalize
StatusCode finalize() override
Service initialization.
Definition: DataSvc.cpp:854