The Gaudi Framework  v29r0 (ff2e7097)
HistogramSvc Class Reference

HistogramSvc class definition. More...

#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 DataSvc
typedef std::vector< DataStoreItemLoadItems
 Define set of load items. 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
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > Factory
 
- 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 (const std::string &parent, int item, Base *obj) override
 
StatusCode registerObject (Base *pPar, const std::string &rel, Base *obj) override
 
StatusCode registerObject (DataObject *pPar, int item, Base *obj) override
 
StatusCode registerObject (Base *pPar, int item, 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 &tit, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &tit, 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 &tit, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &tit, 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 &tit, 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 &tit, 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 &tit, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &tit, 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 &tit, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &tit, 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 &tit, 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 &tit, 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...
 
void update1Ddefs (Gaudi::Details::PropertyBase &)
 handler to be invoked for updating property m_defs1D 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...
 
 ~extends () override=default
 Virtual destructor. 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 (const std::string &fullPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (DataObject *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (IRegistry *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode unregisterAddress (const std::string &fullPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode unregisterAddress (DataObject *pParent, const std::string &objPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode unregisterAddress (IRegistry *pParent, const std::string &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 (const std::string &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 (const std::string &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 addPreLoadItem (const std::string &itemPath) override
 Add an item to the preload list. More...
 
StatusCode removePreLoadItem (const DataStoreItem &item) override
 Remove an item from the preload list. More...
 
StatusCode removePreLoadItem (const std::string &itemPath) override
 Add an item to 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 (const std::string &fullPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (const std::string &parentPath, const std::string &objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (const std::string &parentPath, int item, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, const std::string &objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, int item, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode unregisterObject (const std::string &fullPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (const std::string &parentPath, const std::string &objectPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (const std::string &parentPath, int item) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject, const std::string &objectPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject, int item) override
 Unregister object from the data store. More...
 
StatusCode retrieveObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (const std::string &fullPath, DataObject *&pObject) override
 Retrieve object identified by its full path from the data store. More...
 
StatusCode retrieveObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (const std::string &parentPath, int item, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, int item, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode findObject (const std::string &fullPath, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (const std::string &parentPath, const std::string &objPath, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode findObject (const std::string &parentPath, int item, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode findObject (DataObject *parentObj, const std::string &objPath, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode findObject (DataObject *parentObj, int item, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode linkObject (IRegistry *from, const std::string &objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (const std::string &fromPath, const std::string &objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (DataObject *from, const std::string &objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (const std::string &fullPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode unlinkObject (IRegistry *from, const std::string &objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (const std::string &fromPath, const std::string &objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (DataObject *fromObj, const std::string &objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (const std::string &fullPath) override
 Remove a link to another object. More...
 
StatusCode updateObject (IRegistry *pDirectory) override
 Update object identified by its directory entry. More...
 
StatusCode updateObject (const std::string &updatePath) override
 Update object. More...
 
StatusCode updateObject (DataObject *toUpdate) override
 Update object. More...
 
StatusCode updateObject (const std::string &parentPath, const std::string &updatePath) override
 Update object. More...
 
StatusCode updateObject (DataObject *pParent, const std::string &updatePath) override
 Update object. More...
 
StatusCode initialize () override
 Service initialization. More...
 
StatusCode reinitialize () override
 Service initialization. More...
 
StatusCode finalize () override
 Service initialization. More...
 
 ~DataSvc () override
 Standard Destructor. 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...
 
 ~extends () override=default
 Virtual destructor. 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...
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job. 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 >
StatusCode declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
 Declare used tool. More...
 
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
 
 ~PropertyHolder () override=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, TYPE &value, const std::string &doc="none") const
 
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 Gaudi::Details::PropertyBase &p) override
 set the property form another property More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 set the property from name and the value More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (const std::string &name) const override
 get the property by name More...
 
StatusCode getProperty (const std::string &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 (const std::string &name) const override
 Return true if we have a property with the given name. More...
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
 Specializations for various GaudiHandles. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream More...
 
MSG::Level outputLevel () const __attribute__((deprecated))
 Backward compatibility function for getting the output level. More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
- Public Member Functions inherited from extend_interfaces< Interfaces... >
 ~extend_interfaces () override=default
 Virtual destructor. More...
 

Protected Types

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

Private Member Functions

void not_implemented () const
 

Private Attributes

Gaudi::Property< DBaseEntriesm_input {this, "Input", {}, "input streams"}
 
Gaudi::Property< Histo1DMapm_defs1D {this, "Predefined1DHistos", {}, "histograms with predefined parameters"}
 
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, const std::string &path, DataSvcHelpers::RegistryEntry *&pEntry)
 Retrieve registry entry from store. More...
 
DataObjecthandleDataFault (IRegistry *pReg, const std::string &path="")
 Invoke data fault handling if enabled. More...
 
- Protected Member Functions inherited from Service
 ~Service () override
 Standard Destructor. More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
Gaudi::Details::PropertyBaseproperty (const std::string &name) const
 
- Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
- Protected Attributes inherited from DataSvc
SmartIF< IConversionSvcm_dataLoader = nullptr
 Pointer to data loader service. More...
 
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"}
 
Gaudi::Property< bool > m_forceLeaves {this, "ForceLeaves", false, "force creation of default leaves on registerObject"}
 
Gaudi::Property< std::vector< std::string > > m_inhibitPathes {this, "InhibitPathes", {}, "inhibited leaves"}
 
Gaudi::Property< bool > m_enableFaultHdlr
 
Gaudi::Property< std::stringm_faultName {this, "DataFaultName", "DataFault", "Name of the data fault incident"}
 
Gaudi::Property< bool > m_enableAccessHdlr
 
Gaudi::Property< std::stringm_accessName {this, "DataAccessName", "DataAccess", "Name of the data access incident"}
 
LoadItems m_preLoads
 Items to be pre-loaded. More...
 
DataSvcHelpers::RegistryEntrym_root = nullptr
 Pointer to root entry. More...
 
DataSvcHelpers::InhibitMap * m_inhibitMap = nullptr
 Map with object paths to be inhibited from loading. 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"}
 
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()"}
 
SmartIF< IAuditorSvcm_pAuditorSvc
 Auditor Service. More...
 

Detailed Description

HistogramSvc class definition.

Definition at line 56 of file HistogramSvc.h.

Member Typedef Documentation

typedef AIDA::IBaseHistogram HistogramSvc::Base
protected

Definition at line 65 of file HistogramSvc.h.

Definition at line 149 of file HistogramSvc.h.

typedef AIDA::IHistogram3D HistogramSvc::H3D
protected

Definition at line 63 of file HistogramSvc.h.

typedef AIDA::IProfile2D HistogramSvc::P2D
protected

Definition at line 64 of file HistogramSvc.h.

Constructor & Destructor Documentation

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

Statndard Constructor.

Parameters
nameservice name
pointerto service locator interface

Definition at line 380 of file HistogramSvc.cpp.

380  : base_class( nam, svc )
381 {
382  // Properties can be declared here
383  m_rootName = "/stat";
384  m_rootCLID = CLID_DataObject;
385  m_defs1D.declareUpdateHandler( &HistogramSvc::update1Ddefs, this );
386 }
Gaudi::Property< CLID > m_rootCLID
Definition: DataSvc.h:56
Gaudi::Property< Histo1DMap > m_defs1D
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:57
extends base_class
Typedef to this class.
Definition: extends.h:15
void update1Ddefs(Gaudi::Details::PropertyBase &)
handler to be invoked for updating property m_defs1D
HistogramSvc::~HistogramSvc ( )
override

Destructor.

Definition at line 212 of file HistogramSvc.cpp.

213 {
214  setDataLoader( nullptr ).ignore();
215  clearStore().ignore();
216 }
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:205
void ignore() const
Definition: StatusCode.h:109
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: DataSvc.cpp:115

Member Function Documentation

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

Definition at line 1530 of file HistogramSvc.cpp.

1532 {
1533  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, 1. );
1534 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::add ( const std::string nameAndTitle,
const AIDA::IHistogram2D &  a,
const AIDA::IHistogram2D &  b 
)
override

Definition at line 1558 of file HistogramSvc.cpp.

1560 {
1561  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, 1. );
1562 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::add ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  a,
const AIDA::IHistogram3D &  b 
)
override

Definition at line 1586 of file HistogramSvc.cpp.

1588 {
1589  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, 1. );
1590 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
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
AIDA::IHistogram1D* HistogramSvc::book ( const std::string par,
int  hID,
const std::string title,
int  nx,
double  lowx,
double  upx 
)
override
AIDA::IHistogram1D* HistogramSvc::book ( DataObject pPar,
int  hID,
const std::string title,
int  nx,
double  lowx,
double  upx 
)
override
AIDA::IHistogram1D* HistogramSvc::book ( DataObject pPar,
const std::string rel,
const std::string title,
int  nx,
double  lowx,
double  upx 
)
override
virtual AIDA::IHistogram1D* HistogramSvc::book ( const std::pair< std::string, std::string > &  loc,
const std::string title,
int  nx,
double  lowx,
double  upx 
)
virtual
AIDA::IHistogram1D* HistogramSvc::book ( const std::string full,
const std::string title,
int  nx,
double  lowx,
double  upx 
)
override
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 533 of file HistogramSvc.cpp.

534 {
535  return book( par, std::to_string( hID ), title, e );
536 }
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.
T to_string(T...args)
AIDA::IHistogram1D * HistogramSvc::book ( DataObject pPar,
int  hID,
const std::string title,
Edges  e 
)
override

Definition at line 539 of file HistogramSvc.cpp.

540 {
541  return book( pPar, std::to_string( hID ), title, e );
542 }
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.
T to_string(T...args)
AIDA::IHistogram1D * HistogramSvc::book ( const std::string par,
const std::string rel,
const std::string title,
Edges  e 
)
override

Definition at line 545 of file HistogramSvc.cpp.

547 {
548  return book( createPath( par ), rel, title, e );
549 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * HistogramSvc::book ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  e 
)
virtual

Definition at line 552 of file HistogramSvc.cpp.

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

Definition at line 559 of file HistogramSvc.cpp.

560 {
561  return book( i_splitPath( full ), title, e );
562 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * HistogramSvc::book ( DataObject pPar,
const std::string rel,
const std::string title,
Edges  e 
)
override

Definition at line 565 of file HistogramSvc.cpp.

566 {
567  return i_book( pPar, rel, title, Gaudi::createH1D( title, e ) );
568 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(const AIDA::IHistogram1D &hist)
Copy constructor.
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 651 of file HistogramSvc.cpp.

653 {
654  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
655 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 658 of file HistogramSvc.cpp.

660 {
661  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
662 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
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 665 of file HistogramSvc.cpp.

667 {
668  return book( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
669 }
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.
T to_string(T...args)
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 672 of file HistogramSvc.cpp.

674 {
675  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
676 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::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 679 of file HistogramSvc.cpp.

681 {
682  return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
683 }
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.
T to_string(T...args)
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 686 of file HistogramSvc.cpp.

688 {
689  return i_book( pPar, rel, title, Gaudi::createH2D( title, nx, lowx, upx, ny, lowy, upy ) );
690 }
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
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 781 of file HistogramSvc.cpp.

782 {
783  return book( i_splitPath( full ), title, x, y );
784 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram2D * HistogramSvc::book ( const std::string par,
const std::string rel,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 787 of file HistogramSvc.cpp.

789 {
790  return book( createPath( par ), rel, title, x, y );
791 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram2D * HistogramSvc::book ( const std::string par,
int  hID,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 794 of file HistogramSvc.cpp.

795 {
796  return book( par, std::to_string( hID ), title, x, y );
797 }
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.
T to_string(T...args)
AIDA::IHistogram2D * HistogramSvc::book ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  x,
Edges  y 
)
virtual

Definition at line 800 of file HistogramSvc.cpp.

802 {
803  return book( loc.first, loc.second, title, x, y );
804 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram2D * HistogramSvc::book ( DataObject pPar,
int  hID,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 807 of file HistogramSvc.cpp.

808 {
809  return book( pPar, std::to_string( hID ), title, x, y );
810 }
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.
T to_string(T...args)
AIDA::IHistogram2D * HistogramSvc::book ( DataObject pPar,
const std::string rel,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 813 of file HistogramSvc.cpp.

815 {
816  return i_book( pPar, rel, title, Gaudi::createH2D( title, x, y ) );
817 }
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
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 901 of file HistogramSvc.cpp.

903 {
904  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
905 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 908 of file HistogramSvc.cpp.

911 {
912  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
913 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
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 916 of file HistogramSvc.cpp.

918 {
919  return book( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
920 }
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.
T to_string(T...args)
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 923 of file HistogramSvc.cpp.

925 {
926  return book( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
927 }
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.
T to_string(T...args)
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 930 of file HistogramSvc.cpp.

933 {
934  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
935 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::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 938 of file HistogramSvc.cpp.

941 {
942  return i_book( pPar, rel, title, Gaudi::createH3D( title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz ) );
943 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(const AIDA::IHistogram3D &hist)
Copy constructor.
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 946 of file HistogramSvc.cpp.

947 {
948  return book( i_splitPath( full ), title, x, y, z );
949 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 952 of file HistogramSvc.cpp.

954 {
955  return book( createPath( par ), rel, title, x, y, z );
956 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram3D * HistogramSvc::book ( const std::string par,
int  hID,
const std::string title,
Edges  x,
Edges  y,
Edges  z 
)
override

Definition at line 959 of file HistogramSvc.cpp.

961 {
962  return book( par, std::to_string( hID ), title, x, y, z );
963 }
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.
T to_string(T...args)
AIDA::IHistogram3D * HistogramSvc::book ( DataObject pPar,
int  hID,
const std::string title,
Edges  x,
Edges  y,
Edges  z 
)
override

Definition at line 966 of file HistogramSvc.cpp.

967 {
968  return book( pPar, std::to_string( hID ), title, x, y, z );
969 }
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.
T to_string(T...args)
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 972 of file HistogramSvc.cpp.

974 {
975  return book( loc.first, loc.second, title, x, y, z );
976 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram3D * HistogramSvc::book ( DataObject pPar,
const std::string rel,
const std::string title,
Edges  x,
Edges  y,
Edges  z 
)
override

Definition at line 979 of file HistogramSvc.cpp.

981 {
982  return i_book( pPar, rel, title, Gaudi::createH3D( title, x, y, z ) );
983 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(const AIDA::IHistogram3D &hist)
Copy constructor.
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
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
AIDA::IProfile1D* HistogramSvc::bookProf ( DataObject pPar,
int  hID,
const std::string title,
int  nx,
double  lowx,
double  upx,
const std::string opt 
)
override
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
AIDA::IProfile1D* HistogramSvc::bookProf ( const std::string full,
const std::string title,
int  nx,
double  lowx,
double  upx,
const std::string opt 
)
override
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
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
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
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
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
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
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
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 571 of file HistogramSvc.cpp.

572 {
573  return bookProf( i_splitPath( full ), title, e );
574 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string par,
const std::string rel,
const std::string title,
Edges  e 
)
override

Definition at line 577 of file HistogramSvc.cpp.

579 {
580  return bookProf( createPath( par ), rel, title, e );
581 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string par,
int  hID,
const std::string title,
Edges  e 
)
override

Definition at line 584 of file HistogramSvc.cpp.

585 {
586  return bookProf( par, std::to_string( hID ), title, e );
587 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject pPar,
int  hID,
const std::string title,
Edges  e 
)
override

Definition at line 590 of file HistogramSvc.cpp.

591 {
592  return bookProf( pPar, std::to_string( hID ), title, e );
593 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  e 
)
virtual

Definition at line 596 of file HistogramSvc.cpp.

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

Definition at line 603 of file HistogramSvc.cpp.

604 {
605  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, 0, 0 ) );
606 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(const AIDA::IProfile1D &hist)
Copy constructor.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string full,
const std::string title,
Edges  e,
double  upper,
double  lower 
)
virtual

Definition at line 609 of file HistogramSvc.cpp.

611 {
612  return bookProf( i_splitPath( full ), title, e, upper, lower );
613 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 616 of file HistogramSvc.cpp.

618 {
619  return bookProf( createPath( par ), rel, title, e, upper, lower );
620 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::string par,
int  hID,
const std::string title,
Edges  e,
double  upper,
double  lower 
)
virtual

Definition at line 623 of file HistogramSvc.cpp.

625 {
626  return bookProf( par, std::to_string( hID ), title, e, upper, lower );
627 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject pPar,
int  hID,
const std::string title,
Edges  e,
double  upper,
double  lower 
)
virtual

Definition at line 630 of file HistogramSvc.cpp.

632 {
633  return bookProf( pPar, std::to_string( hID ), title, e, upper, lower );
634 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  e,
double  upper,
double  lower 
)
virtual

Definition at line 637 of file HistogramSvc.cpp.

639 {
640  return bookProf( loc.first, loc.second, title, e, upper, lower );
641 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::bookProf ( DataObject pPar,
const std::string rel,
const std::string title,
Edges  e,
double  upper,
double  lower 
)
virtual

Definition at line 644 of file HistogramSvc.cpp.

646 {
647  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, upper, lower ) );
648 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(const AIDA::IProfile1D &hist)
Copy constructor.
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 693 of file HistogramSvc.cpp.

695 {
696  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
697 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 700 of file HistogramSvc.cpp.

703 {
704  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
705 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
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 708 of file HistogramSvc.cpp.

711 {
712  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
713 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 716 of file HistogramSvc.cpp.

719 {
720  return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
721 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 724 of file HistogramSvc.cpp.

726 {
727  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
728 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 731 of file HistogramSvc.cpp.

734 {
735  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, upper, lower ) );
736 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
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 739 of file HistogramSvc.cpp.

741 {
742  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
743 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 746 of file HistogramSvc.cpp.

748 {
749  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
750 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
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 753 of file HistogramSvc.cpp.

755 {
756  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
757 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 760 of file HistogramSvc.cpp.

762 {
763  return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
764 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 767 of file HistogramSvc.cpp.

769 {
770  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
771 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 774 of file HistogramSvc.cpp.

776 {
777  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, 0, 0 ) );
778 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
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 820 of file HistogramSvc.cpp.

821 {
822  return bookProf( i_splitPath( full ), title, x, y );
823 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string par,
const std::string rel,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 826 of file HistogramSvc.cpp.

828 {
829  return bookProf( createPath( par ), rel, title, x, y );
830 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string par,
int  hID,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 833 of file HistogramSvc.cpp.

834 {
835  return bookProf( par, std::to_string( hID ), title, x, y );
836 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject pPar,
int  hID,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 839 of file HistogramSvc.cpp.

840 {
841  return bookProf( pPar, std::to_string( hID ), title, x, y );
842 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::bookProf ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  x,
Edges  y 
)
virtual

Definition at line 845 of file HistogramSvc.cpp.

847 {
848  return bookProf( loc.first, loc.second, title, x, y );
849 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject pPar,
const std::string rel,
const std::string title,
Edges  x,
Edges  y 
)
override

Definition at line 852 of file HistogramSvc.cpp.

854 {
855  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, 0, 0 ) );
856 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
AIDA::IProfile2D * HistogramSvc::bookProf ( const std::string full,
const std::string title,
Edges  x,
Edges  y,
double  upper,
double  lower 
)
virtual

Definition at line 859 of file HistogramSvc.cpp.

861 {
862  return bookProf( i_splitPath( full ), title, x, y, upper, lower );
863 }
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.
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
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 866 of file HistogramSvc.cpp.

868 {
869  return bookProf( createPath( par ), rel, title, x, y, upper, lower );
870 }
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.
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
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 873 of file HistogramSvc.cpp.

875 {
876  return bookProf( par, std::to_string( hID ), title, x, y, upper, lower );
877 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::bookProf ( DataObject pPar,
int  hID,
const std::string title,
Edges  x,
Edges  y,
double  upper,
double  lower 
)
virtual

Definition at line 880 of file HistogramSvc.cpp.

882 {
883  return bookProf( pPar, std::to_string( hID ), title, x, y, upper, lower );
884 }
T to_string(T...args)
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 887 of file HistogramSvc.cpp.

889 {
890  return bookProf( loc.first, loc.second, title, x, y, upper, lower );
891 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 894 of file HistogramSvc.cpp.

896 {
897  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, upper, lower ) );
898 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
StatusCode HistogramSvc::connectInput ( const std::string ident)

Connect input histogram file to the service.

Parameters
ident[IN] Input specification

Definition at line 219 of file HistogramSvc.cpp.

220 {
221  using Parser = Gaudi::Utils::AttribStringParser;
222  DataObject* pO = nullptr;
223  StatusCode status = this->findObject( m_rootName, pO );
224  if ( status.isSuccess() ) {
225  string::size_type loc = ident.find( " " );
226  string filename, auth, svc = "", typ = "";
227  string logname = ident.substr( 0, loc );
228  for ( auto attrib : Parser( ident.substr( loc + 1 ) ) ) {
229  switch (::toupper( attrib.tag[0] ) ) {
230  case 'F': // FILE='<file name>'
231  case 'D': // DATAFILE='<file name>'
232  filename = std::move( attrib.value );
233  break;
234  case 'T': // TYP='<HBOOK,ROOT,OBJY,...>'
235  typ = std::move( attrib.value );
236  break;
237  default:
238  break;
239  }
240  }
241  if ( typ.length() > 0 ) {
242  // Now add the registry entry to the store
243  string entryname = m_rootName;
244  entryname += '/';
245  entryname += logname;
246  GenericAddress* pA = nullptr;
247  switch (::toupper( typ[0] ) ) {
248  case 'H':
249  pA = new GenericAddress( HBOOK_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
250  break;
251  case 'R':
252  pA = new GenericAddress( ROOT_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
253  break;
254  }
255  if ( pA ) {
256  status = registerAddress( pO, logname, pA );
257  if ( status.isSuccess() ) {
258  info() << "Added stream file:" << filename << " as " << logname << endmsg;
259  return status;
260  }
261  pA->release();
262  }
263  }
264  }
265  error() << "Cannot add " << ident << " invalid filename!" << endmsg;
266  return StatusCode::FAILURE;
267 }
Parse attribute strings allowing iteration over the various attributes.
const long HBOOK_StorageType
Definition: ClassID.h:56
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
unsigned long release() override
release reference to object
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:57
Generic Transient Address.
StatusCode registerAddress(const std::string &fullPath, IOpaqueAddress *pAddress) override
IDataManagerSvc: Register object address with the data store.
Definition: DataSvc.cpp:248
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
const long ROOT_StorageType
Definition: ClassID.h:52
T move(T...args)
StatusCode findObject(IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
T find(T...args)
T substr(T...args)
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29
void toupper(std::string &s)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AIDA::ICloud1D* HistogramSvc::createCloud1D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 1016 of file HistogramSvc.h.

1017  {
1018  not_implemented();
1019  return nullptr;
1020  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud1D* HistogramSvc::createCloud1D ( const std::string )
inlineoverride

Definition at line 1022 of file HistogramSvc.h.

1023  {
1024  not_implemented();
1025  return nullptr;
1026  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud2D* HistogramSvc::createCloud2D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 1034 of file HistogramSvc.h.

1035  {
1036  not_implemented();
1037  return nullptr;
1038  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud2D* HistogramSvc::createCloud2D ( const std::string )
inlineoverride

Definition at line 1040 of file HistogramSvc.h.

1041  {
1042  not_implemented();
1043  return nullptr;
1044  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud3D* HistogramSvc::createCloud3D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 1052 of file HistogramSvc.h.

1053  {
1054  not_implemented();
1055  return nullptr;
1056  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud3D* HistogramSvc::createCloud3D ( const std::string )
inlineoverride

Definition at line 1058 of file HistogramSvc.h.

1059  {
1060  not_implemented();
1061  return nullptr;
1062  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IHistogram1D &  h 
)
override

Definition at line 1659 of file HistogramSvc.cpp.

1660 {
1661  return createCopy( i_splitPath( full ), h );
1662 }
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::string par,
const std::string rel,
const AIDA::IHistogram1D &  h 
)

Definition at line 1665 of file HistogramSvc.cpp.

1667 {
1668  return createCopy( createPath( par ), rel, h );
1669 }
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > &  loc,
const AIDA::IHistogram1D &  h 
)

Definition at line 1672 of file HistogramSvc.cpp.

1674 {
1675  return createCopy( loc.first, loc.second, h );
1676 }
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram1D * HistogramSvc::createCopy ( DataObject pPar,
const std::string rel,
const AIDA::IHistogram1D &  h 
)

Definition at line 1679 of file HistogramSvc.cpp.

1680 {
1681  return i_book( pPar, rel, h.title(), Gaudi::createH1D( h ) );
1682 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IHistogram1D * > createH1D(const AIDA::IHistogram1D &hist)
Copy constructor.
AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IHistogram2D &  h 
)
override

Definition at line 1714 of file HistogramSvc.cpp.

1715 {
1716  return createCopy( i_splitPath( full ), h );
1717 }
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::string par,
const std::string rel,
const AIDA::IHistogram2D &  h 
)

Definition at line 1720 of file HistogramSvc.cpp.

1722 {
1723  return createCopy( createPath( par ), rel, h );
1724 }
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > &  loc,
const AIDA::IHistogram2D &  h 
)

Definition at line 1727 of file HistogramSvc.cpp.

1729 {
1730  return createCopy( loc.first, loc.second, h );
1731 }
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::createCopy ( DataObject pPar,
const std::string rel,
const AIDA::IHistogram2D &  h 
)

Definition at line 1734 of file HistogramSvc.cpp.

1735 {
1736  return i_book( pPar, rel, h.title(), Gaudi::createH2D( h ) );
1737 }
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IHistogram3D &  h 
)
override

Definition at line 1770 of file HistogramSvc.cpp.

1771 {
1772  return createCopy( i_splitPath( full ), h );
1773 }
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::string par,
const std::string rel,
const AIDA::IHistogram3D &  h 
)

Definition at line 1776 of file HistogramSvc.cpp.

1778 {
1779  return createCopy( createPath( par ), rel, h );
1780 }
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > &  loc,
const AIDA::IHistogram3D &  h 
)

Definition at line 1783 of file HistogramSvc.cpp.

1785 {
1786  return createCopy( loc.first, loc.second, h );
1787 }
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::createCopy ( DataObject pPar,
const std::string rel,
const AIDA::IHistogram3D &  h 
)

Definition at line 1790 of file HistogramSvc.cpp.

1791 {
1792  return i_book( pPar, rel, h.title(), Gaudi::createH3D( h ) );
1793 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IHistogram3D * > createH3D(const AIDA::IHistogram3D &hist)
Copy constructor.
AIDA::IProfile1D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IProfile1D &  h 
)
override

Definition at line 1837 of file HistogramSvc.cpp.

1838 {
1839  return createCopy( i_splitPath( full ), h );
1840 }
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile1D * HistogramSvc::createCopy ( const std::string par,
const std::string rel,
const AIDA::IProfile1D &  h 
)

Definition at line 1843 of file HistogramSvc.cpp.

1844 {
1845  return createCopy( createPath( par ), rel, h );
1846 }
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile1D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > &  loc,
const AIDA::IProfile1D &  h 
)

Definition at line 1849 of file HistogramSvc.cpp.

1850 {
1851  return createCopy( loc.first, loc.second, h );
1852 }
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile1D * HistogramSvc::createCopy ( DataObject pPar,
const std::string rel,
const AIDA::IProfile1D &  h 
)

Definition at line 1855 of file HistogramSvc.cpp.

1856 {
1857  return i_book( pPar, rel, h.title(), Gaudi::createProf1D( h ) );
1858 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile1D * > createProf1D(const AIDA::IProfile1D &hist)
Copy constructor.
AIDA::IProfile2D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IProfile2D &  h 
)
override

Definition at line 1921 of file HistogramSvc.cpp.

1922 {
1923  return createCopy( i_splitPath( full ), h );
1924 }
std::pair< std::string, std::string > i_splitPath(const std::string &full)
Split full path into its components.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile2D * HistogramSvc::createCopy ( const std::string par,
const std::string rel,
const AIDA::IProfile2D &  h 
)

Definition at line 1927 of file HistogramSvc.cpp.

1928 {
1929  return createCopy( createPath( par ), rel, h );
1930 }
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile2D * HistogramSvc::createCopy ( const std::pair< std::string, std::string > &  loc,
const AIDA::IProfile2D &  h 
)

Definition at line 1933 of file HistogramSvc.cpp.

1934 {
1935  return createCopy( loc.first, loc.second, h );
1936 }
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IProfile2D * HistogramSvc::createCopy ( DataObject pPar,
const std::string rel,
const AIDA::IProfile2D &  h 
)

Definition at line 1939 of file HistogramSvc.cpp.

1940 {
1941  return i_book( pPar, rel, h.title(), Gaudi::createProf2D( h ) );
1942 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:174
std::pair< DataObject *, AIDA::IProfile2D * > createProf2D(const AIDA::IProfile2D &hist)
Copy constructor.
AIDA::ICloud1D* HistogramSvc::createCopy ( const std::string ,
const AIDA::ICloud1D &   
)
inlineoverride

Definition at line 1028 of file HistogramSvc.h.

1029  {
1030  not_implemented();
1031  return nullptr;
1032  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud2D* HistogramSvc::createCopy ( const std::string ,
const AIDA::ICloud2D &   
)
inlineoverride

Definition at line 1046 of file HistogramSvc.h.

1047  {
1048  not_implemented();
1049  return nullptr;
1050  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::ICloud3D* HistogramSvc::createCopy ( const std::string ,
const AIDA::ICloud3D &   
)
inlineoverride

Definition at line 1064 of file HistogramSvc.h.

1065  {
1066  not_implemented();
1067  return nullptr;
1068  }
void not_implemented() const
Definition: HistogramSvc.h:60
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 191 of file HistogramSvc.cpp.

192 {
193  std::unique_ptr<DataObject> directory{new DataObject()};
194  if ( directory ) {
195  DataObject* pnode;
196  StatusCode status = DataSvc::retrieveObject( parentDir, pnode );
197  if ( status.isSuccess() ) {
198  status = DataSvc::registerObject( pnode, subDir, directory.get() );
199  if ( !status.isSuccess() ) {
200  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
201  return nullptr;
202  }
203  } else {
204  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
205  return nullptr;
206  }
207  }
208  return directory.release();
209 }
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
StatusCode registerObject(const std::string &fullPath, DataObject *pObject) override
Register object with the data store.
Definition: DataSvc.cpp:353
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject) override
Retrieve object from data store.
Definition: DataSvc.cpp:751
STL class.
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx 
)

Definition at line 1632 of file HistogramSvc.cpp.

1634 {
1635  return book( name, tit, nx, lowx, upx );
1636 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
const std::string  
)
override

Definition at line 1639 of file HistogramSvc.cpp.

1641 {
1642  return book( name, tit, nx, lowx, upx );
1643 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string name,
const std::string title,
const Edges x,
const std::string  
)
override

Definition at line 1646 of file HistogramSvc.cpp.

1648 {
1649  return book( name, title, x );
1650 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string nameAndTitle,
int  nx,
double  lowx,
double  upx 
)
override

Definition at line 1653 of file HistogramSvc.cpp.

1654 {
1655  return book( nameAndTitle, nameAndTitle, nx, lowx, upx );
1656 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)

Definition at line 1685 of file HistogramSvc.cpp.

1687 {
1688  return book( name, tit, nx, lowx, upx, ny, lowy, upy );
1689 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
const std::string  
)
override

Definition at line 1692 of file HistogramSvc.cpp.

1695 {
1696  return book( name, tit, nx, lowx, upx, ny, lowy, upy );
1697 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string name,
const std::string title,
const Edges x,
const Edges y,
const std::string  
)
override

Definition at line 1700 of file HistogramSvc.cpp.

1702 {
1703  return book( name, title, x, y );
1704 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram2D * HistogramSvc::createHistogram2D ( const std::string nameAndTitle,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)
override

Definition at line 1707 of file HistogramSvc.cpp.

1709 {
1710  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1711 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
int  nz,
double  lowz,
double  upz 
)

Definition at line 1740 of file HistogramSvc.cpp.

1743 {
1744  return book( name, tit, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1745 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::IHistogram3D * HistogramSvc::createHistogram3D ( const std::string name,
const std::string tit,
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 1748 of file HistogramSvc.cpp.

1751 {
1752  return book( name, tit, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1753 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::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 1756 of file HistogramSvc.cpp.

1758 {
1759  return book( name, title, x, y, z );
1760 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
AIDA::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 1763 of file HistogramSvc.cpp.

1765 {
1766  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1767 }
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.
DataObject * HistogramSvc::createPath ( const std::string newPath)
override

Create all directories in a given full path.

Definition at line 161 of file HistogramSvc.cpp.

162 {
163  string tmpPath = newPath;
164  if ( tmpPath[0] != SEPARATOR ) {
165  tmpPath.insert( tmpPath.begin(), SEPARATOR );
166  tmpPath.insert( tmpPath.begin(), m_rootName.begin(), m_rootName.end() );
167  }
168  // Remove trailing "/" from newPath if it exists
169  if ( tmpPath.rfind( SEPARATOR ) == tmpPath.length() - 1 ) {
170  tmpPath.erase( tmpPath.rfind( SEPARATOR ), 1 );
171  }
172  DataObject* pObject = nullptr;
173  StatusCode sc = DataSvc::findObject( tmpPath, pObject );
174  if ( sc.isSuccess() ) {
175  return pObject;
176  }
177  int sep = tmpPath.rfind( SEPARATOR );
178  string rest( tmpPath, sep + 1, tmpPath.length() - sep );
179  string subPath( tmpPath, 0, sep );
180  if ( 0 != sep ) {
181  createPath( subPath );
182  } else {
183  error() << "Unable to create the histogram path" << endmsg;
184  return nullptr;
185  }
186  pObject = createDirectory( subPath, rest );
187  return pObject;
188 }
constexpr char SEPARATOR
DataObject * createDirectory(const std::string &parentDir, const std::string &subDir) override
Create a sub-directory in a directory.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:57
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
StatusCode findObject(const std::string &fullPath, DataObject *&pObject) override
Find object identified by its full path in the data store.
Definition: DataSvc.cpp:809
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
T insert(T...args)
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
const std::string opt 
)
override

Definition at line 1796 of file HistogramSvc.cpp.

1798 {
1799  return bookProf( name, tit, nx, lowx, upx, opt );
1800 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
double  upper,
double  lower,
const std::string opt 
)
override

Definition at line 1803 of file HistogramSvc.cpp.

1805 {
1806  return bookProf( name, tit, nx, lowx, upx, upper, lower, opt );
1807 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string name,
const std::string title,
const Edges x,
const std::string  
)
override

Definition at line 1810 of file HistogramSvc.cpp.

1812 {
1813  return bookProf( name, title, x );
1814 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string name,
const std::string title,
const Edges x,
double  upper,
double  lower,
const std::string  
)
override

Definition at line 1817 of file HistogramSvc.cpp.

1819 {
1820  return bookProf( name, title, x, upper, lower );
1821 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string nametit,
int  nx,
double  lowx,
double  upx 
)
override

Definition at line 1824 of file HistogramSvc.cpp.

1825 {
1826  return bookProf( nametit, nametit, nx, lowx, upx, "s" );
1827 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string nametit,
int  nx,
double  lowx,
double  upx,
double  upper,
double  lower 
)
override

Definition at line 1830 of file HistogramSvc.cpp.

1832 {
1833  return bookProf( nametit, nametit, nx, lowx, upx, upper, lower, "s" );
1834 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)

Definition at line 1861 of file HistogramSvc.cpp.

1863 {
1864  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy );
1865 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
const std::string  
)
override

Definition at line 1868 of file HistogramSvc.cpp.

1871 {
1872  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy );
1873 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string name,
const std::string title,
const Edges x,
const Edges y,
const std::string  
)
override

Definition at line 1876 of file HistogramSvc.cpp.

1878 {
1879  return bookProf( name, title, x, y );
1880 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string nameAndTitle,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)
override

Definition at line 1883 of file HistogramSvc.cpp.

1885 {
1886  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1887 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
double  upper,
double  lower 
)

Definition at line 1890 of file HistogramSvc.cpp.

1893 {
1894  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy, upper, lower );
1895 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::IProfile2D * HistogramSvc::createProfile2D ( const std::string name,
const std::string tit,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
double  upper,
double  lower,
const std::string  
)
override

Definition at line 1898 of file HistogramSvc.cpp.

1901 {
1902  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy, upper, lower );
1903 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 1906 of file HistogramSvc.cpp.

1909 {
1910  return bookProf( name, title, x, y, upper, lower );
1911 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
AIDA::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 1914 of file HistogramSvc.cpp.

1916 {
1917  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, upper, lower );
1918 }
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.
bool HistogramSvc::destroy ( IBaseHistogram *  hist)
override

Definition at line 348 of file HistogramSvc.cpp.

349 {
350  StatusCode sc = unregisterObject( dynamic_cast<IHistogram*>( hist ) );
351  if ( !sc.isSuccess() ) return false;
352  delete hist;
353  return true;
354 }
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
StatusCode unregisterObject(Base *obj) override
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
AIDA::IHistogram1D * HistogramSvc::divide ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1551 of file HistogramSvc.cpp.

1553 {
1554  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1555 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::divide ( const std::string nameAndTitle,
const AIDA::IHistogram2D &  a,
const AIDA::IHistogram2D &  b 
)
override

Definition at line 1579 of file HistogramSvc.cpp.

1581 {
1582  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1583 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::divide ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  a,
const AIDA::IHistogram3D &  b 
)
override

Definition at line 1607 of file HistogramSvc.cpp.

1609 {
1610  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Divide );
1611 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
StatusCode HistogramSvc::finalize ( )
override

finalize the service

Definition at line 398 of file HistogramSvc.cpp.

399 {
400  if ( !m_mods1D.empty() ) {
401  if ( msgLevel( MSG::DEBUG ) ) debug() << " Substituted histograms #" << m_mods1D.size() << " : " << endmsg;
402  for ( const auto& ih : m_mods1D ) {
403  if ( msgLevel( MSG::DEBUG ) ) debug() << " Path='" << ih << "'";
404  auto im = m_defs1D.find( ih );
405  if ( m_defs1D.end() != im ) {
406  debug() << " " << im->second;
407  }
408  }
409  m_mods1D.clear();
410  }
411  return DataSvc::finalize();
412 }
Gaudi::Property< Histo1DMap > m_defs1D
T empty(T...args)
std::set< std::string > m_mods1D
void clear(STATE_TYPE _i=std::ios_base::failbit)
Definition: MsgStream.h:187
StatusCode finalize() override
Service initialization.
Definition: DataSvc.cpp:1156
T size(T...args)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1272 of file HistogramSvc.cpp.

1273 {
1274  return Helper( this ).find( pReg, path, obj );
1275 }
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1277 of file HistogramSvc.cpp.

1278 {
1279  return Helper( this ).find( pReg, path, obj );
1280 }
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1282 of file HistogramSvc.cpp.

1283 {
1284  return Helper( this ).find( pReg, path, obj );
1285 }
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1287 of file HistogramSvc.cpp.

1288 {
1289  return Helper( this ).find( pReg, path, obj );
1290 }
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1292 of file HistogramSvc.cpp.

1293 {
1294  return Helper( this ).find( pReg, path, obj );
1295 }
StatusCode HistogramSvc::findObject ( const std::string full,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1297 of file HistogramSvc.cpp.

1298 {
1299  return Helper( this ).find( full, obj );
1300 }
StatusCode HistogramSvc::findObject ( const std::string full,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1302 of file HistogramSvc.cpp.

1303 {
1304  return Helper( this ).find( full, obj );
1305 }
StatusCode HistogramSvc::findObject ( const std::string full,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1308 of file HistogramSvc.cpp.

1309 {
1310  return Helper( this ).find( full, obj );
1311 }
StatusCode HistogramSvc::findObject ( const std::string full,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1314 of file HistogramSvc.cpp.

1315 {
1316  return Helper( this ).find( full, obj );
1317 }
StatusCode HistogramSvc::findObject ( const std::string full,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1320 of file HistogramSvc.cpp.

1321 {
1322  return Helper( this ).find( full, obj );
1323 }
StatusCode HistogramSvc::findObject ( const std::string par,
const std::string rel,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1326 of file HistogramSvc.cpp.

1327 {
1328  return Helper( this ).find( par, rel, obj );
1329 }
StatusCode HistogramSvc::findObject ( const std::string par,
const std::string rel,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1332 of file HistogramSvc.cpp.

1333 {
1334  return Helper( this ).find( par, rel, obj );
1335 }
StatusCode HistogramSvc::findObject ( const std::string par,
const std::string rel,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1338 of file HistogramSvc.cpp.

1339 {
1340  return Helper( this ).find( par, rel, obj );
1341 }
StatusCode HistogramSvc::findObject ( const std::string par,
const std::string rel,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1344 of file HistogramSvc.cpp.

1345 {
1346  return Helper( this ).find( par, rel, obj );
1347 }
StatusCode HistogramSvc::findObject ( const std::string par,
const std::string rel,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1350 of file HistogramSvc.cpp.

1351 {
1352  return Helper( this ).find( par, rel, obj );
1353 }
StatusCode HistogramSvc::findObject ( const std::string par,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1356 of file HistogramSvc.cpp.

1357 {
1358  return Helper( this ).find( par, item, obj );
1359 }
StatusCode HistogramSvc::findObject ( const std::string par,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1362 of file HistogramSvc.cpp.

1363 {
1364  return Helper( this ).find( par, item, obj );
1365 }
StatusCode HistogramSvc::findObject ( const std::string par,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1368 of file HistogramSvc.cpp.

1369 {
1370  return Helper( this ).find( par, item, obj );
1371 }
StatusCode HistogramSvc::findObject ( const std::string par,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1374 of file HistogramSvc.cpp.

1375 {
1376  return Helper( this ).find( par, item, obj );
1377 }
StatusCode HistogramSvc::findObject ( const std::string par,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1380 of file HistogramSvc.cpp.

1381 {
1382  return Helper( this ).find( par, item, obj );
1383 }
StatusCode HistogramSvc::findObject ( DataObject par,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1386 of file HistogramSvc.cpp.

1387 {
1388  return Helper( this ).find( par, item, obj );
1389 }
StatusCode HistogramSvc::findObject ( DataObject par,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1392 of file HistogramSvc.cpp.

1393 {
1394  return Helper( this ).find( par, item, obj );
1395 }
StatusCode HistogramSvc::findObject ( DataObject par,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1398 of file HistogramSvc.cpp.

1399 {
1400  return Helper( this ).find( par, item, obj );
1401 }
StatusCode HistogramSvc::findObject ( DataObject par,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1404 of file HistogramSvc.cpp.

1405 {
1406  return Helper( this ).find( par, item, obj );
1407 }
StatusCode HistogramSvc::findObject ( DataObject par,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1410 of file HistogramSvc.cpp.

1411 {
1412  return Helper( this ).find( par, item, obj );
1413 }
StatusCode HistogramSvc::findObject ( DataObject par,
const std::string item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1416 of file HistogramSvc.cpp.

1417 {
1418  return Helper( this ).find( par, item, obj );
1419 }
StatusCode HistogramSvc::findObject ( DataObject par,
const std::string item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1422 of file HistogramSvc.cpp.

1423 {
1424  return Helper( this ).find( par, item, obj );
1425 }
StatusCode HistogramSvc::findObject ( DataObject par,
const std::string item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1428 of file HistogramSvc.cpp.

1429 {
1430  return Helper( this ).find( par, item, obj );
1431 }
StatusCode HistogramSvc::findObject ( DataObject par,
const std::string item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1434 of file HistogramSvc.cpp.

1435 {
1436  return Helper( this ).find( par, item, obj );
1437 }
StatusCode HistogramSvc::findObject ( DataObject par,
const std::string item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1440 of file HistogramSvc.cpp.

1441 {
1442  return Helper( this ).find( par, item, obj );
1443 }
StatusCode HistogramSvc::findObject ( Base par,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1446 of file HistogramSvc.cpp.

1447 {
1448  return Helper( this ).find( detail::cast( par ), item, obj );
1449 }
StatusCode HistogramSvc::findObject ( Base par,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1452 of file HistogramSvc.cpp.

1453 {
1454  return Helper( this ).find( detail::cast( par ), item, obj );
1455 }
StatusCode HistogramSvc::findObject ( Base par,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1458 of file HistogramSvc.cpp.

1459 {
1460  return Helper( this ).find( detail::cast( par ), item, obj );
1461 }
StatusCode HistogramSvc::findObject ( Base par,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1464 of file HistogramSvc.cpp.

1465 {
1466  return Helper( this ).find( detail::cast( par ), item, obj );
1467 }
StatusCode HistogramSvc::findObject ( Base par,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1470 of file HistogramSvc.cpp.

1471 {
1472  return Helper( this ).find( detail::cast( par ), item, obj );
1473 }
StatusCode HistogramSvc::findObject ( Base par,
const std::string item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1476 of file HistogramSvc.cpp.

1477 {
1478  return Helper( this ).find( detail::cast( par ), item, obj );
1479 }
StatusCode HistogramSvc::findObject ( Base par,
const std::string item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1482 of file HistogramSvc.cpp.

1483 {
1484  return Helper( this ).find( detail::cast( par ), item, obj );
1485 }
StatusCode HistogramSvc::findObject ( Base par,
const std::string item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1488 of file HistogramSvc.cpp.

1489 {
1490  return Helper( this ).find( detail::cast( par ), item, obj );
1491 }
StatusCode HistogramSvc::findObject ( Base par,
const std::string item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1494 of file HistogramSvc.cpp.

1495 {
1496  return Helper( this ).find( detail::cast( par ), item, obj );
1497 }
StatusCode HistogramSvc::findObject ( Base par,
const std::string item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1500 of file HistogramSvc.cpp.

1501 {
1502  return Helper( this ).find( detail::cast( par ), item, obj );
1503 }
AIDA::IHistogramFactory* HistogramSvc::histogramFactory ( )
inlineoverride

Retrieve the AIDA HistogramFactory interface.

Definition at line 195 of file HistogramSvc.h.

195 { return this; }
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 174 of file HistogramSvc.h.

176  {
177  if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
178  delete o.first;
179  throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
181  }
Define general base for Gaudi exception.
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:329
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:65
AIDA::IHistogram2D * HistogramSvc::i_project ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  h,
const std::string dir 
)

Helper for 2D projections.

Definition at line 100 of file HistogramSvc.cpp.

101 {
102  TH3D* h3d = Gaudi::getRepresentation<IHistogram3D, TH3D>( h );
103  if ( h3d ) {
104  TH2D* h2d = dynamic_cast<TH2D*>( h3d->Project3D( dir.c_str() ) );
105  if ( h2d ) {
107  if ( r.second && registerObject( nameAndTitle, r.second ).isSuccess() ) {
108  return r.second;
109  }
110  }
111  }
112  return nullptr;
113 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
std::pair< DataObject *, AIDA::IHistogram2D * > createH2D(const AIDA::IHistogram2D &hist)
Copy constructor.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
T c_str(T...args)
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 145 of file HistogramSvc.cpp.

146 {
147  string tmp = full;
148  if ( tmp[0] != SEPARATOR ) {
149  tmp.insert( tmp.begin(), SEPARATOR );
150  tmp.insert( tmp.begin(), m_rootName.begin(), m_rootName.end() );
151  }
152  // Remove trailing "/" from newPath if it exists
153  if ( tmp.rfind( SEPARATOR ) == tmp.length() - 1 ) {
154  tmp.erase( tmp.rfind( SEPARATOR ), 1 );
155  }
156  int sep = tmp.rfind( SEPARATOR );
157  return {tmp.substr( 0, sep ), tmp.substr( sep )};
158 }
constexpr char SEPARATOR
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:57
T insert(T...args)
StatusCode HistogramSvc::initialize ( )
override

Initialise the service.

Definition at line 270 of file HistogramSvc.cpp.

271 {
272  StatusCode status = DataSvc::initialize();
273  // Set root object
274  if ( status.isSuccess() ) {
276  status = setRoot( "/stat", rootObj.get() );
277  if ( status.isSuccess() ) {
278  rootObj.release();
279  } else {
280  error() << "Unable to set hstogram data store root." << endmsg;
281  return status;
282  }
283  auto svc = service<IConversionSvc>( "HistogramPersistencySvc", true );
284  if ( svc ) {
285  setDataLoader( svc.get() ).ignore();
286  } else {
287  error() << "Could not find HistogramPersistencySvc." << endmsg;
288  return StatusCode::FAILURE;
289  }
290  // Connect all input streams (if any)
291  for ( auto& j : m_input ) {
292  status = connectInput( j );
293  if ( !status.isSuccess() ) return status;
294  }
295  }
296  if ( !m_defs1D.empty() ) {
297  info() << " Predefined 1D-Histograms: " << endmsg;
298  for ( const auto& ih : m_defs1D ) {
299  info() << " Path='" << ih.first << "'"
300  << " Description " << ih.second << endmsg;
301  }
302  }
303  return status;
304 }
Gaudi::Property< Histo1DMap > m_defs1D
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
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:156
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:205
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode connectInput(const std::string &ident)
Connect input histogram file to the service.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
STL class.
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:1119
Gaudi::Property< DBaseEntries > m_input
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AIDA::IHistogram1D * HistogramSvc::multiply ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1544 of file HistogramSvc.cpp.

1546 {
1547  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Multiply );
1548 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::multiply ( const std::string nameAndTitle,
const AIDA::IHistogram2D &  a,
const AIDA::IHistogram2D &  b 
)
override

Definition at line 1572 of file HistogramSvc.cpp.

1574 {
1575  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Multiply );
1576 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::multiply ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  a,
const AIDA::IHistogram3D &  b 
)
override

Definition at line 1600 of file HistogramSvc.cpp.

1602 {
1603  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Multiply );
1604 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
void HistogramSvc::not_implemented ( ) const
inlineprivate

Definition at line 60 of file HistogramSvc.h.

60 { error() << "Sorry, not yet implemented..." << endmsg; }
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
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 118 of file HistogramSvc.cpp.

119 {
120  Gaudi::HistogramBase* b = dynamic_cast<Gaudi::HistogramBase*>( h );
121  if ( b ) return b->print( s );
122  error() << "Unknown histogram type: Cannot cast to Gaudi::HistogramBase." << endmsg;
123  return s;
124 }
virtual std::ostream & print(std::ostream &s) const =0
Print histogram to output stream.
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Common base class for all histograms Use is solely functional to minimize dynamic_casts inside Histog...
Definition: HistogramBase.h:23
string s
Definition: gaudirun.py:253
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
AIDA::IHistogram1D * HistogramSvc::projectionX ( const std::string name,
const AIDA::IHistogram2D &  h 
)
override

Definition at line 1506 of file HistogramSvc.cpp.

1507 {
1508  return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1509 }
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
AIDA::IHistogram2D * HistogramSvc::projectionXY ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  h 
)
override

Definition at line 1614 of file HistogramSvc.cpp.

1615 {
1616  return i_project( nameAndTitle, h, "xy" );
1617 }
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.
AIDA::IHistogram2D * HistogramSvc::projectionXZ ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  h 
)
override

Definition at line 1620 of file HistogramSvc.cpp.

1621 {
1622  return i_project( nameAndTitle, h, "xz" );
1623 }
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.
AIDA::IHistogram1D * HistogramSvc::projectionY ( const std::string name,
const AIDA::IHistogram2D &  h 
)
override

Definition at line 1512 of file HistogramSvc.cpp.

1513 {
1514  return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1515 }
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
AIDA::IHistogram2D * HistogramSvc::projectionYZ ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  h 
)
override

Definition at line 1626 of file HistogramSvc.cpp.

1627 {
1628  return i_project( nameAndTitle, h, "yz" );
1629 }
AIDA::IHistogram2D * i_project(const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
Helper for 2D projections.
StatusCode HistogramSvc::registerObject ( const std::string parent,
const std::string rel,
Base obj 
)
override

Definition at line 986 of file HistogramSvc.cpp.

987 {
988  return registerObject( createPath( parent ), rel, obj );
989 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
StatusCode HistogramSvc::registerObject ( const std::string parent,
int  item,
Base obj 
)
override

Definition at line 992 of file HistogramSvc.cpp.

993 {
994  return registerObject( parent, std::to_string( item ), obj );
995 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
T to_string(T...args)
StatusCode HistogramSvc::registerObject ( Base pPar,
const std::string rel,
Base obj 
)
override

Definition at line 998 of file HistogramSvc.cpp.

999 {
1000  return registerObject( detail::cast( pPar ), rel, obj );
1001 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
StatusCode HistogramSvc::registerObject ( DataObject pPar,
int  item,
Base obj 
)
override

Definition at line 1004 of file HistogramSvc.cpp.

1005 {
1006  return registerObject( pPar, std::to_string( item ), obj );
1007 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
T to_string(T...args)
StatusCode HistogramSvc::registerObject ( Base pPar,
int  item,
Base obj 
)
override

Definition at line 1010 of file HistogramSvc.cpp.

1011 {
1012  return registerObject( detail::cast( pPar ), item, obj );
1013 }
StatusCode registerObject(const std::string &parent, const std::string &rel, Base *obj) override
StatusCode HistogramSvc::registerObject ( const std::string full,
Base obj 
)
override
StatusCode HistogramSvc::registerObject ( DataObject pPar,
const std::string rel,
Base obj 
)
override
StatusCode HistogramSvc::reinitialize ( )
override

Initialise the service.

Definition at line 307 of file HistogramSvc.cpp.

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

Definition at line 1031 of file HistogramSvc.cpp.

1032 {
1033  return Helper( this ).retrieve( pReg, path, obj );
1034 }
StatusCode HistogramSvc::retrieveObject ( IRegistry pReg,
const std::string path,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1037 of file HistogramSvc.cpp.

1038 {
1039  return Helper( this ).retrieve( pReg, path, obj );
1040 }
StatusCode HistogramSvc::retrieveObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1043 of file HistogramSvc.cpp.

1044 {
1045  return Helper( this ).retrieve( pReg, path, obj );
1046 }
StatusCode HistogramSvc::retrieveObject ( IRegistry pReg,
const std::string path,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1049 of file HistogramSvc.cpp.

1050 {
1051  return Helper( this ).retrieve( pReg, path, obj );
1052 }
StatusCode HistogramSvc::retrieveObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1055 of file HistogramSvc.cpp.

1056 {
1057  return Helper( this ).retrieve( pReg, path, obj );
1058 }
StatusCode HistogramSvc::retrieveObject ( const std::string full,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1061 of file HistogramSvc.cpp.

1062 {
1063  return Helper( this ).retrieve( full, obj );
1064 }
StatusCode HistogramSvc::retrieveObject ( const std::string full,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1067 of file HistogramSvc.cpp.

1068 {
1069  return Helper( this ).retrieve( full, obj );
1070 }
StatusCode HistogramSvc::retrieveObject ( const std::string full,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1073 of file HistogramSvc.cpp.

1074 {
1075  return Helper( this ).retrieve( full, obj );
1076 }
StatusCode HistogramSvc::retrieveObject ( const std::string full,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1079 of file HistogramSvc.cpp.

1080 {
1081  return Helper( this ).retrieve( full, obj );
1082 }
StatusCode HistogramSvc::retrieveObject ( const std::string full,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1085 of file HistogramSvc.cpp.

1086 {
1087  return Helper( this ).retrieve( full, obj );
1088 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
const std::string rel,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1091 of file HistogramSvc.cpp.

1094 {
1095  return Helper( this ).retrieve( parent, rel, obj );
1096 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
const std::string rel,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1099 of file HistogramSvc.cpp.

1100 {
1101  return Helper( this ).retrieve( parent, rel, obj );
1102 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
const std::string rel,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1105 of file HistogramSvc.cpp.

1106 {
1107  return Helper( this ).retrieve( parent, rel, obj );
1108 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
const std::string rel,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1111 of file HistogramSvc.cpp.

1112 {
1113  return Helper( this ).retrieve( parent, rel, obj );
1114 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
const std::string rel,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1117 of file HistogramSvc.cpp.

1118 {
1119  return Helper( this ).retrieve( parent, rel, obj );
1120 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1123 of file HistogramSvc.cpp.

1124 {
1125  return Helper( this ).retrieve( parent, item, obj );
1126 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1129 of file HistogramSvc.cpp.

1130 {
1131  return Helper( this ).retrieve( parent, item, obj );
1132 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1135 of file HistogramSvc.cpp.

1136 {
1137  return Helper( this ).retrieve( parent, item, obj );
1138 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1141 of file HistogramSvc.cpp.

1142 {
1143  return Helper( this ).retrieve( parent, item, obj );
1144 }
StatusCode HistogramSvc::retrieveObject ( const std::string parent,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1147 of file HistogramSvc.cpp.

1148 {
1149  return Helper( this ).retrieve( parent, item, obj );
1150 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
const std::string item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1152 of file HistogramSvc.cpp.

1153 {
1154  return Helper( this ).retrieve( par, item, obj );
1155 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
const std::string item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1158 of file HistogramSvc.cpp.

1159 {
1160  return Helper( this ).retrieve( par, item, obj );
1161 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
const std::string item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1164 of file HistogramSvc.cpp.

1165 {
1166  return Helper( this ).retrieve( par, item, obj );
1167 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
const std::string item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1170 of file HistogramSvc.cpp.

1171 {
1172  return Helper( this ).retrieve( par, item, obj );
1173 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
const std::string item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1176 of file HistogramSvc.cpp.

1177 {
1178  return Helper( this ).retrieve( par, item, obj );
1179 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1182 of file HistogramSvc.cpp.

1183 {
1184  return Helper( this ).retrieve( par, item, obj );
1185 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1188 of file HistogramSvc.cpp.

1189 {
1190  return Helper( this ).retrieve( par, item, obj );
1191 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1194 of file HistogramSvc.cpp.

1195 {
1196  return Helper( this ).retrieve( par, item, obj );
1197 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1200 of file HistogramSvc.cpp.

1201 {
1202  return Helper( this ).retrieve( par, item, obj );
1203 }
StatusCode HistogramSvc::retrieveObject ( DataObject par,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1206 of file HistogramSvc.cpp.

1207 {
1208  return Helper( this ).retrieve( par, item, obj );
1209 }
StatusCode HistogramSvc::retrieveObject ( Base par,
int  item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1212 of file HistogramSvc.cpp.

1213 {
1214  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1215 }
StatusCode HistogramSvc::retrieveObject ( Base par,
int  item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1218 of file HistogramSvc.cpp.

1219 {
1220  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1221 }
StatusCode HistogramSvc::retrieveObject ( Base par,
int  item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1224 of file HistogramSvc.cpp.

1225 {
1226  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1227 }
StatusCode HistogramSvc::retrieveObject ( Base par,
int  item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1230 of file HistogramSvc.cpp.

1231 {
1232  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1233 }
StatusCode HistogramSvc::retrieveObject ( Base par,
int  item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1236 of file HistogramSvc.cpp.

1237 {
1238  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1239 }
StatusCode HistogramSvc::retrieveObject ( Base par,
const std::string item,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1242 of file HistogramSvc.cpp.

1243 {
1244  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1245 }
StatusCode HistogramSvc::retrieveObject ( Base par,
const std::string item,
AIDA::IProfile2D *&  obj 
)
override

Definition at line 1248 of file HistogramSvc.cpp.

1249 {
1250  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1251 }
StatusCode HistogramSvc::retrieveObject ( Base par,
const std::string item,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1254 of file HistogramSvc.cpp.

1255 {
1256  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1257 }
StatusCode HistogramSvc::retrieveObject ( Base par,
const std::string item,
AIDA::IHistogram2D *&  obj 
)
override

Definition at line 1260 of file HistogramSvc.cpp.

1261 {
1262  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1263 }
StatusCode HistogramSvc::retrieveObject ( Base par,
const std::string item,
AIDA::IHistogram3D *&  obj 
)
override

Definition at line 1266 of file HistogramSvc.cpp.

1267 {
1268  return Helper( this ).retrieve( detail::cast( par ), item, obj );
1269 }
AIDA::IHistogram1D * HistogramSvc::sliceX ( const std::string name,
const AIDA::IHistogram2D &  h,
int  indexY 
)
override

Definition at line 1518 of file HistogramSvc.cpp.

1519 {
1520  return sliceX( name, h, indexY, indexY );
1521 }
AIDA::IHistogram1D * sliceX(const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
AIDA::IHistogram1D* HistogramSvc::sliceX ( const std::string name,
const AIDA::IHistogram2D &  h,
int  indexY1,
int  indexY2 
)
override
AIDA::IHistogram2D* HistogramSvc::sliceXY ( const std::string ,
const AIDA::IHistogram3D &  ,
int  ,
int   
)
inlineoverride

Definition at line 876 of file HistogramSvc.h.

878  {
879  not_implemented();
880  return nullptr;
881  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::IHistogram2D* HistogramSvc::sliceXZ ( const std::string ,
const AIDA::IHistogram3D &  ,
int  ,
int   
)
inlineoverride

Definition at line 883 of file HistogramSvc.h.

885  {
886  not_implemented();
887  return nullptr;
888  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::IHistogram1D * HistogramSvc::sliceY ( const std::string name,
const AIDA::IHistogram2D &  h,
int  indexX 
)
override

Definition at line 1524 of file HistogramSvc.cpp.

1525 {
1526  return sliceY( name, h, indexX, indexX );
1527 }
AIDA::IHistogram1D * sliceY(const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
AIDA::IHistogram1D* HistogramSvc::sliceY ( const std::string name,
const AIDA::IHistogram2D &  h,
int  indexX1,
int  indexX2 
)
override
AIDA::IHistogram2D* HistogramSvc::sliceYZ ( const std::string ,
const AIDA::IHistogram3D &  ,
int  ,
int   
)
inlineoverride

Definition at line 890 of file HistogramSvc.h.

892  {
893  not_implemented();
894  return nullptr;
895  }
void not_implemented() const
Definition: HistogramSvc.h:60
AIDA::IHistogram1D * HistogramSvc::subtract ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1537 of file HistogramSvc.cpp.

1539 {
1540  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, -1. );
1541 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram2D * HistogramSvc::subtract ( const std::string nameAndTitle,
const AIDA::IHistogram2D &  a,
const AIDA::IHistogram2D &  b 
)
override

Definition at line 1565 of file HistogramSvc.cpp.

1567 {
1568  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, -1. );
1569 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
AIDA::IHistogram3D * HistogramSvc::subtract ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  a,
const AIDA::IHistogram3D &  b 
)
override

Definition at line 1593 of file HistogramSvc.cpp.

1595 {
1596  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, -1. );
1597 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:103
AIDA::IHistogram1D * createCopy(const std::string &full, const AIDA::IHistogram1D &h) override
StatusCode HistogramSvc::unregisterObject ( Base obj)
override

Definition at line 1016 of file HistogramSvc.cpp.

1016 { return DataSvc::unregisterObject( detail::cast( obj ) ); }
StatusCode unregisterObject(const std::string &fullPath) override
Unregister object from the data store.
Definition: DataSvc.cpp:459
StatusCode HistogramSvc::unregisterObject ( Base obj,
const std::string objectPath 
)
override

Definition at line 1019 of file HistogramSvc.cpp.

1020 {
1021  return DataSvc::unregisterObject( detail::cast( obj ), objectPath );
1022 }
StatusCode unregisterObject(const std::string &fullPath) override
Unregister object from the data store.
Definition: DataSvc.cpp:459
StatusCode HistogramSvc::unregisterObject ( Base obj,
int  item 
)
override

Definition at line 1025 of file HistogramSvc.cpp.

1026 {
1027  return DataSvc::unregisterObject( detail::cast( obj ), item );
1028 }
StatusCode unregisterObject(const std::string &fullPath) override
Unregister object from the data store.
Definition: DataSvc.cpp:459
void HistogramSvc::update1Ddefs ( Gaudi::Details::PropertyBase )

handler to be invoked for updating property m_defs1D

Definition at line 389 of file HistogramSvc.cpp.

390 {
391  // check and remove the leading '/stat/'
392  removeLeading( m_defs1D.value(), "/stat/" );
393 }
Gaudi::Property< Histo1DMap > m_defs1D
std::ostream& HistogramSvc::write ( Base h,
std::ostream s = std::cout 
) const
override

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

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

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

Member Data Documentation

Gaudi::Property<Histo1DMap> HistogramSvc::m_defs1D {this, "Predefined1DHistos", {}, "histograms with predefined parameters"}
private

Definition at line 1101 of file HistogramSvc.h.

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

Definition at line 1100 of file HistogramSvc.h.

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

Definition at line 1104 of file HistogramSvc.h.


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