The Gaudi Framework  v30r3 (a5ef0a68)
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
using Factory = Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)>
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces... >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 

Public Member Functions

 HistogramSvc (const std::string &name, ISvcLocator *svc)
 Statndard Constructor. More...
 
 ~HistogramSvc () override
 Destructor. More...
 
std::pair< std::string, std::stringi_splitPath (const std::string &full)
 Split full path into its components. More...
 
StatusCode connectInput (const std::string &ident)
 Connect input histogram file to the service. More...
 
template<class T >
T * i_book (DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
 
AIDA::IHistogram2D * i_project (const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
 Helper for 2D projections. More...
 
StatusCode initialize () override
 Initialise the service. More...
 
StatusCode reinitialize () override
 Initialise the service. More...
 
StatusCode finalize () override
 finalize the service More...
 
AIDA::IHistogramFactory * histogramFactory () override
 Retrieve the AIDA HistogramFactory interface. More...
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 Book histogram and register it with the histogram data store. More...
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, Edges x, Edges y, Edges z) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, Edges z)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
StatusCode registerObject (const std::string &parent, const std::string &rel, Base *obj) override
 
StatusCode registerObject (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...
 
- 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 (boost::string_ref fullPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (DataObject *parentObj, boost::string_ref objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (IRegistry *parentObj, boost::string_ref objectPath, IOpaqueAddress *pAddress) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode unregisterAddress (boost::string_ref fullPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode unregisterAddress (DataObject *pParent, boost::string_ref objPath) override
 IDataManagerSvc: Unregister object address from the data store. More...
 
StatusCode unregisterAddress (IRegistry *pParent, boost::string_ref 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 (boost::string_ref 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 (boost::string_ref 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 (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 (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 (boost::string_ref fullPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (boost::string_ref parentPath, boost::string_ref objPath, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (boost::string_ref parentPath, int item, DataObject *pObject) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parentObj, boost::string_ref 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 (boost::string_ref fullPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (boost::string_ref parentPath, boost::string_ref objectPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (boost::string_ref 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, boost::string_ref 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, boost::string_ref path, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (boost::string_ref fullPath, DataObject *&pObject) override
 Retrieve object identified by its full path from the data store. More...
 
StatusCode retrieveObject (boost::string_ref parentPath, boost::string_ref objPath, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (boost::string_ref parentPath, int item, DataObject *&pObject) override
 Retrieve object from data store. More...
 
StatusCode retrieveObject (DataObject *parentObj, boost::string_ref 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 (boost::string_ref fullPath, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (boost::string_ref parentPath, boost::string_ref objPath, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode findObject (boost::string_ref parentPath, int item, DataObject *&pObject) override
 Find object in the data store. More...
 
StatusCode findObject (DataObject *parentObj, boost::string_ref 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, boost::string_ref objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (boost::string_ref fromPath, boost::string_ref objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (DataObject *from, boost::string_ref objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (boost::string_ref fullPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode unlinkObject (IRegistry *from, boost::string_ref objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (boost::string_ref fromPath, boost::string_ref objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (DataObject *fromObj, boost::string_ref objPath) override
 Remove a link to another object. More...
 
StatusCode unlinkObject (boost::string_ref fullPath) override
 Remove a link to another object. More...
 
StatusCode updateObject (IRegistry *pDirectory) override
 Update object identified by its directory entry. More...
 
StatusCode updateObject (boost::string_ref updatePath) override
 Update object. More...
 
StatusCode updateObject (DataObject *toUpdate) override
 Update object. More...
 
StatusCode updateObject (boost::string_ref parentPath, boost::string_ref updatePath) override
 Update object. More...
 
StatusCode updateObject (DataObject *pParent, boost::string_ref 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...
 
- 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
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const 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
 
- Public Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
MSG::Level outputLevel () const
 Backward compatibility function for getting the output level. More...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
const 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...
 

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, boost::string_ref path, DataSvcHelpers::RegistryEntry *&pEntry)
 Retrieve registry entry from store. More...
 
DataObjecthandleDataFault (IRegistry *pReg, boost::string_ref 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 > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
- Protected Attributes inherited from DataSvc
SmartIF< 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 378 of file HistogramSvc.cpp.

378  : base_class( nam, svc )
379 {
380  // Properties can be declared here
381  m_rootName = "/stat";
382  m_rootCLID = CLID_DataObject;
383  m_defs1D.declareUpdateHandler( &HistogramSvc::update1Ddefs, this );
384 }
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:199
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:165
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: DataSvc.cpp:112

Member Function Documentation

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

Definition at line 1528 of file HistogramSvc.cpp.

1530 {
1531  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, 1. );
1532 }
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 1556 of file HistogramSvc.cpp.

1558 {
1559  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, 1. );
1560 }
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 1584 of file HistogramSvc.cpp.

1586 {
1587  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, 1. );
1588 }
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 531 of file HistogramSvc.cpp.

532 {
533  return book( par, std::to_string( hID ), title, e );
534 }
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 537 of file HistogramSvc.cpp.

538 {
539  return book( pPar, std::to_string( hID ), title, e );
540 }
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 543 of file HistogramSvc.cpp.

545 {
546  return book( createPath( par ), rel, title, e );
547 }
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 550 of file HistogramSvc.cpp.

552 {
553  return book( loc.first, loc.second, title, e );
554 }
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 557 of file HistogramSvc.cpp.

558 {
559  return book( i_splitPath( full ), title, e );
560 }
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 563 of file HistogramSvc.cpp.

564 {
565  return i_book( pPar, rel, title, Gaudi::createH1D( title, e ) );
566 }
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 649 of file HistogramSvc.cpp.

651 {
652  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
653 }
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 656 of file HistogramSvc.cpp.

658 {
659  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
660 }
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 663 of file HistogramSvc.cpp.

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

672 {
673  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
674 }
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 677 of file HistogramSvc.cpp.

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

686 {
687  return i_book( pPar, rel, title, Gaudi::createH2D( title, nx, lowx, upx, ny, lowy, upy ) );
688 }
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 779 of file HistogramSvc.cpp.

780 {
781  return book( i_splitPath( full ), title, x, y );
782 }
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 785 of file HistogramSvc.cpp.

787 {
788  return book( createPath( par ), rel, title, x, y );
789 }
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 792 of file HistogramSvc.cpp.

793 {
794  return book( par, std::to_string( hID ), title, x, y );
795 }
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 798 of file HistogramSvc.cpp.

800 {
801  return book( loc.first, loc.second, title, x, y );
802 }
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 805 of file HistogramSvc.cpp.

806 {
807  return book( pPar, std::to_string( hID ), title, x, y );
808 }
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 811 of file HistogramSvc.cpp.

813 {
814  return i_book( pPar, rel, title, Gaudi::createH2D( title, x, y ) );
815 }
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 899 of file HistogramSvc.cpp.

901 {
902  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
903 }
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 906 of file HistogramSvc.cpp.

909 {
910  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
911 }
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 914 of file HistogramSvc.cpp.

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

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

931 {
932  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
933 }
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 936 of file HistogramSvc.cpp.

939 {
940  return i_book( pPar, rel, title, Gaudi::createH3D( title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz ) );
941 }
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 944 of file HistogramSvc.cpp.

945 {
946  return book( i_splitPath( full ), title, x, y, z );
947 }
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 950 of file HistogramSvc.cpp.

952 {
953  return book( createPath( par ), rel, title, x, y, z );
954 }
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 957 of file HistogramSvc.cpp.

959 {
960  return book( par, std::to_string( hID ), title, x, y, z );
961 }
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 964 of file HistogramSvc.cpp.

965 {
966  return book( pPar, std::to_string( hID ), title, x, y, z );
967 }
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 970 of file HistogramSvc.cpp.

972 {
973  return book( loc.first, loc.second, title, x, y, z );
974 }
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 977 of file HistogramSvc.cpp.

979 {
980  return i_book( pPar, rel, title, Gaudi::createH3D( title, x, y, z ) );
981 }
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 569 of file HistogramSvc.cpp.

570 {
571  return bookProf( i_splitPath( full ), title, e );
572 }
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 575 of file HistogramSvc.cpp.

577 {
578  return bookProf( createPath( par ), rel, title, e );
579 }
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 582 of file HistogramSvc.cpp.

583 {
584  return bookProf( par, std::to_string( hID ), title, e );
585 }
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 588 of file HistogramSvc.cpp.

589 {
590  return bookProf( pPar, std::to_string( hID ), title, e );
591 }
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 594 of file HistogramSvc.cpp.

596 {
597  return bookProf( loc.first, loc.second, title, e );
598 }
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 601 of file HistogramSvc.cpp.

602 {
603  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, 0, 0 ) );
604 }
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 607 of file HistogramSvc.cpp.

609 {
610  return bookProf( i_splitPath( full ), title, e, upper, lower );
611 }
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 614 of file HistogramSvc.cpp.

616 {
617  return bookProf( createPath( par ), rel, title, e, upper, lower );
618 }
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 621 of file HistogramSvc.cpp.

623 {
624  return bookProf( par, std::to_string( hID ), title, e, upper, lower );
625 }
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 628 of file HistogramSvc.cpp.

630 {
631  return bookProf( pPar, std::to_string( hID ), title, e, upper, lower );
632 }
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 635 of file HistogramSvc.cpp.

637 {
638  return bookProf( loc.first, loc.second, title, e, upper, lower );
639 }
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 642 of file HistogramSvc.cpp.

644 {
645  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, upper, lower ) );
646 }
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 691 of file HistogramSvc.cpp.

693 {
694  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
695 }
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 698 of file HistogramSvc.cpp.

701 {
702  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
703 }
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 706 of file HistogramSvc.cpp.

709 {
710  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
711 }
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 714 of file HistogramSvc.cpp.

717 {
718  return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
719 }
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 722 of file HistogramSvc.cpp.

724 {
725  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy, upper, lower );
726 }
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 729 of file HistogramSvc.cpp.

732 {
733  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, upper, lower ) );
734 }
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 737 of file HistogramSvc.cpp.

739 {
740  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
741 }
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 744 of file HistogramSvc.cpp.

746 {
747  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
748 }
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 751 of file HistogramSvc.cpp.

753 {
754  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
755 }
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 758 of file HistogramSvc.cpp.

760 {
761  return bookProf( par, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
762 }
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 765 of file HistogramSvc.cpp.

767 {
768  return bookProf( pPar, std::to_string( hID ), title, nx, lowx, upx, ny, lowy, upy );
769 }
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 772 of file HistogramSvc.cpp.

774 {
775  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, 0, 0 ) );
776 }
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 818 of file HistogramSvc.cpp.

819 {
820  return bookProf( i_splitPath( full ), title, x, y );
821 }
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 824 of file HistogramSvc.cpp.

826 {
827  return bookProf( createPath( par ), rel, title, x, y );
828 }
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 831 of file HistogramSvc.cpp.

832 {
833  return bookProf( par, std::to_string( hID ), title, x, y );
834 }
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 837 of file HistogramSvc.cpp.

838 {
839  return bookProf( pPar, std::to_string( hID ), title, x, y );
840 }
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 843 of file HistogramSvc.cpp.

845 {
846  return bookProf( loc.first, loc.second, title, x, y );
847 }
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 850 of file HistogramSvc.cpp.

852 {
853  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, 0, 0 ) );
854 }
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 857 of file HistogramSvc.cpp.

859 {
860  return bookProf( i_splitPath( full ), title, x, y, upper, lower );
861 }
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 864 of file HistogramSvc.cpp.

866 {
867  return bookProf( createPath( par ), rel, title, x, y, upper, lower );
868 }
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 871 of file HistogramSvc.cpp.

873 {
874  return bookProf( par, std::to_string( hID ), title, x, y, upper, lower );
875 }
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 878 of file HistogramSvc.cpp.

880 {
881  return bookProf( pPar, std::to_string( hID ), title, x, y, upper, lower );
882 }
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 885 of file HistogramSvc.cpp.

887 {
888  return bookProf( loc.first, loc.second, title, x, y, upper, lower );
889 }
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 892 of file HistogramSvc.cpp.

894 {
895  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, upper, lower ) );
896 }
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.value(), 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 }
StatusCode registerAddress(boost::string_ref fullPath, IOpaqueAddress *pAddress) override
IDataManagerSvc: Register object address with the data store.
Definition: DataSvc.cpp:242
Parse attribute strings allowing iteration over the various attributes.
constexpr static const auto FAILURE
Definition: StatusCode.h:88
const long HBOOK_StorageType
Definition: ClassID.h:56
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Definition: StatusCode.h:287
unsigned long release() override
release reference to object
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:57
Generic Transient Address.
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:51
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:30
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 1657 of file HistogramSvc.cpp.

1658 {
1659  return createCopy( i_splitPath( full ), h );
1660 }
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 1663 of file HistogramSvc.cpp.

1665 {
1666  return createCopy( createPath( par ), rel, h );
1667 }
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 1670 of file HistogramSvc.cpp.

1672 {
1673  return createCopy( loc.first, loc.second, h );
1674 }
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 1677 of file HistogramSvc.cpp.

1678 {
1679  return i_book( pPar, rel, h.title(), Gaudi::createH1D( h ) );
1680 }
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 1712 of file HistogramSvc.cpp.

1713 {
1714  return createCopy( i_splitPath( full ), h );
1715 }
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 1718 of file HistogramSvc.cpp.

1720 {
1721  return createCopy( createPath( par ), rel, h );
1722 }
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 1725 of file HistogramSvc.cpp.

1727 {
1728  return createCopy( loc.first, loc.second, h );
1729 }
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 1732 of file HistogramSvc.cpp.

1733 {
1734  return i_book( pPar, rel, h.title(), Gaudi::createH2D( h ) );
1735 }
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 1768 of file HistogramSvc.cpp.

1769 {
1770  return createCopy( i_splitPath( full ), h );
1771 }
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 1774 of file HistogramSvc.cpp.

1776 {
1777  return createCopy( createPath( par ), rel, h );
1778 }
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 1781 of file HistogramSvc.cpp.

1783 {
1784  return createCopy( loc.first, loc.second, h );
1785 }
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 1788 of file HistogramSvc.cpp.

1789 {
1790  return i_book( pPar, rel, h.title(), Gaudi::createH3D( h ) );
1791 }
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 1835 of file HistogramSvc.cpp.

1836 {
1837  return createCopy( i_splitPath( full ), h );
1838 }
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 1841 of file HistogramSvc.cpp.

1842 {
1843  return createCopy( createPath( par ), rel, h );
1844 }
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 1847 of file HistogramSvc.cpp.

1848 {
1849  return createCopy( loc.first, loc.second, h );
1850 }
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 1853 of file HistogramSvc.cpp.

1854 {
1855  return i_book( pPar, rel, h.title(), Gaudi::createProf1D( h ) );
1856 }
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 1919 of file HistogramSvc.cpp.

1920 {
1921  return createCopy( i_splitPath( full ), h );
1922 }
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 1925 of file HistogramSvc.cpp.

1926 {
1927  return createCopy( createPath( par ), rel, h );
1928 }
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 1931 of file HistogramSvc.cpp.

1932 {
1933  return createCopy( loc.first, loc.second, h );
1934 }
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 1937 of file HistogramSvc.cpp.

1938 {
1939  return i_book( pPar, rel, h.title(), Gaudi::createProf2D( h ) );
1940 }
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  auto directory = std::make_unique<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
Definition: StatusCode.h:287
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:51
StatusCode registerObject(boost::string_ref fullPath, DataObject *pObject) override
Register object with the data store.
Definition: DataSvc.cpp:343
StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject) override
Retrieve object from data store.
Definition: DataSvc.cpp:737
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
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 1630 of file HistogramSvc.cpp.

1632 {
1633  return book( name, tit, nx, lowx, upx );
1634 }
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 1637 of file HistogramSvc.cpp.

1639 {
1640  return book( name, tit, nx, lowx, upx );
1641 }
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 1644 of file HistogramSvc.cpp.

1646 {
1647  return book( name, title, x );
1648 }
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 1651 of file HistogramSvc.cpp.

1652 {
1653  return book( nameAndTitle, nameAndTitle, nx, lowx, upx );
1654 }
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 1683 of file HistogramSvc.cpp.

1685 {
1686  return book( name, tit, nx, lowx, upx, ny, lowy, upy );
1687 }
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 1690 of file HistogramSvc.cpp.

1693 {
1694  return book( name, tit, nx, lowx, upx, ny, lowy, upy );
1695 }
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 1698 of file HistogramSvc.cpp.

1700 {
1701  return book( name, title, x, y );
1702 }
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 1705 of file HistogramSvc.cpp.

1707 {
1708  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1709 }
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 1738 of file HistogramSvc.cpp.

1741 {
1742  return book( name, tit, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1743 }
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 1746 of file HistogramSvc.cpp.

1749 {
1750  return book( name, tit, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1751 }
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 1754 of file HistogramSvc.cpp.

1756 {
1757  return book( name, title, x, y, z );
1758 }
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 1761 of file HistogramSvc.cpp.

1763 {
1764  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1765 }
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
Definition: StatusCode.h:287
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:51
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:30
StatusCode findObject(boost::string_ref fullPath, DataObject *&pObject) override
Find object identified by its full path in the data store.
Definition: DataSvc.cpp:795
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 1794 of file HistogramSvc.cpp.

1796 {
1797  return bookProf( name, tit, nx, lowx, upx, opt );
1798 }
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 1801 of file HistogramSvc.cpp.

1803 {
1804  return bookProf( name, tit, nx, lowx, upx, upper, lower, opt );
1805 }
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 1808 of file HistogramSvc.cpp.

1810 {
1811  return bookProf( name, title, x );
1812 }
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 1815 of file HistogramSvc.cpp.

1817 {
1818  return bookProf( name, title, x, upper, lower );
1819 }
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 1822 of file HistogramSvc.cpp.

1823 {
1824  return bookProf( nametit, nametit, nx, lowx, upx, "s" );
1825 }
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 1828 of file HistogramSvc.cpp.

1830 {
1831  return bookProf( nametit, nametit, nx, lowx, upx, upper, lower, "s" );
1832 }
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 1859 of file HistogramSvc.cpp.

1861 {
1862  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy );
1863 }
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 1866 of file HistogramSvc.cpp.

1869 {
1870  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy );
1871 }
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 1874 of file HistogramSvc.cpp.

1876 {
1877  return bookProf( name, title, x, y );
1878 }
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 1881 of file HistogramSvc.cpp.

1883 {
1884  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1885 }
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 1888 of file HistogramSvc.cpp.

1891 {
1892  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy, upper, lower );
1893 }
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 1896 of file HistogramSvc.cpp.

1899 {
1900  return bookProf( name, tit, nx, lowx, upx, ny, lowy, upy, upper, lower );
1901 }
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 1904 of file HistogramSvc.cpp.

1907 {
1908  return bookProf( name, title, x, y, upper, lower );
1909 }
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 1912 of file HistogramSvc.cpp.

1914 {
1915  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, upper, lower );
1916 }
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 346 of file HistogramSvc.cpp.

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

Definition at line 1549 of file HistogramSvc.cpp.

1551 {
1552  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1553 }
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 1577 of file HistogramSvc.cpp.

1579 {
1580  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1581 }
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 1605 of file HistogramSvc.cpp.

1607 {
1608  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Divide );
1609 }
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 396 of file HistogramSvc.cpp.

397 {
398  if ( !m_mods1D.empty() ) {
399  if ( msgLevel( MSG::DEBUG ) ) debug() << " Substituted histograms #" << m_mods1D.size() << " : " << endmsg;
400  for ( const auto& ih : m_mods1D ) {
401  if ( msgLevel( MSG::DEBUG ) ) debug() << " Path='" << ih << "'";
402  auto im = m_defs1D.find( ih );
403  if ( m_defs1D.end() != im ) {
404  debug() << " " << im->second;
405  }
406  }
407  m_mods1D.clear();
408  }
409  return DataSvc::finalize();
410 }
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:1123
T size(T...args)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
StatusCode HistogramSvc::findObject ( IRegistry pReg,
const std::string path,
AIDA::IProfile1D *&  obj 
)
override

Definition at line 1270 of file HistogramSvc.cpp.

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

Definition at line 1275 of file HistogramSvc.cpp.

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

Definition at line 1280 of file HistogramSvc.cpp.

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

Definition at line 1285 of file HistogramSvc.cpp.

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

Definition at line 1290 of file HistogramSvc.cpp.

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

Definition at line 1295 of file HistogramSvc.cpp.

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

Definition at line 1300 of file HistogramSvc.cpp.

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

Definition at line 1306 of file HistogramSvc.cpp.

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

Definition at line 1312 of file HistogramSvc.cpp.

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

Definition at line 1318 of file HistogramSvc.cpp.

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

Definition at line 1324 of file HistogramSvc.cpp.

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

Definition at line 1330 of file HistogramSvc.cpp.

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

Definition at line 1336 of file HistogramSvc.cpp.

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

Definition at line 1342 of file HistogramSvc.cpp.

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

Definition at line 1348 of file HistogramSvc.cpp.

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

Definition at line 1354 of file HistogramSvc.cpp.

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

Definition at line 1360 of file HistogramSvc.cpp.

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

Definition at line 1366 of file HistogramSvc.cpp.

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

Definition at line 1372 of file HistogramSvc.cpp.

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

Definition at line 1378 of file HistogramSvc.cpp.

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

Definition at line 1384 of file HistogramSvc.cpp.

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

Definition at line 1390 of file HistogramSvc.cpp.

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

Definition at line 1396 of file HistogramSvc.cpp.

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

Definition at line 1402 of file HistogramSvc.cpp.

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

Definition at line 1408 of file HistogramSvc.cpp.

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

Definition at line 1414 of file HistogramSvc.cpp.

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

Definition at line 1420 of file HistogramSvc.cpp.

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

Definition at line 1426 of file HistogramSvc.cpp.

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

Definition at line 1432 of file HistogramSvc.cpp.

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

Definition at line 1438 of file HistogramSvc.cpp.

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

Definition at line 1444 of file HistogramSvc.cpp.

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

Definition at line 1450 of file HistogramSvc.cpp.

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

Definition at line 1456 of file HistogramSvc.cpp.

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

Definition at line 1462 of file HistogramSvc.cpp.

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

Definition at line 1468 of file HistogramSvc.cpp.

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

Definition at line 1474 of file HistogramSvc.cpp.

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

Definition at line 1480 of file HistogramSvc.cpp.

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

Definition at line 1486 of file HistogramSvc.cpp.

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

Definition at line 1492 of file HistogramSvc.cpp.

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

Definition at line 1498 of file HistogramSvc.cpp.

1499 {
1500  return Helper( this ).find( detail::cast( par ), item, obj );
1501 }
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  }
constexpr static const auto FAILURE
Definition: StatusCode.h:88
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:332
bool isSuccess() const
Definition: StatusCode.h:287
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
Definition: StatusCode.h:287
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() ) {
275  auto rootObj = std::make_unique<DataObject>();
276  status = setRoot( "/stat", rootObj.get() );
277  if ( status.isFailure() ) {
278  error() << "Unable to set hstogram data store root." << endmsg;
279  return status;
280  }
281  rootObj.release();
282  auto svc = service<IConversionSvc>( "HistogramPersistencySvc", true );
283  if ( !svc ) {
284  error() << "Could not find HistogramPersistencySvc." << endmsg;
285  return StatusCode::FAILURE;
286  }
287  setDataLoader( svc.get() ).ignore();
288  // Connect all input streams (if any)
289  for ( auto& j : m_input ) {
290  status = connectInput( j );
291  if ( !status.isSuccess() ) return status;
292  }
293  }
294  if ( !m_defs1D.empty() ) {
295  info() << " Predefined 1D-Histograms: " << endmsg;
296  for ( const auto& ih : m_defs1D ) {
297  info() << " Path='" << ih.first << "'"
298  << " Description " << ih.second << endmsg;
299  }
300  }
301  return status;
302 }
constexpr static const auto FAILURE
Definition: StatusCode.h:88
Gaudi::Property< Histo1DMap > m_defs1D
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Definition: StatusCode.h:287
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:150
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:199
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:51
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:1086
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 1542 of file HistogramSvc.cpp.

1544 {
1545  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Multiply );
1546 }
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 1570 of file HistogramSvc.cpp.

1572 {
1573  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Multiply );
1574 }
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 1598 of file HistogramSvc.cpp.

1600 {
1601  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Multiply );
1602 }
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 1504 of file HistogramSvc.cpp.

1505 {
1506  return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1507 }
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 1612 of file HistogramSvc.cpp.

1613 {
1614  return i_project( nameAndTitle, h, "xy" );
1615 }
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 1618 of file HistogramSvc.cpp.

1619 {
1620  return i_project( nameAndTitle, h, "xz" );
1621 }
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 1510 of file HistogramSvc.cpp.

1511 {
1512  return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1513 }
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 1624 of file HistogramSvc.cpp.

1625 {
1626  return i_project( nameAndTitle, h, "yz" );
1627 }
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 984 of file HistogramSvc.cpp.

985 {
986  return registerObject( createPath( parent ), rel, obj );
987 }
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 990 of file HistogramSvc.cpp.

991 {
992  return registerObject( parent, std::to_string( item ), obj );
993 }
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 996 of file HistogramSvc.cpp.

997 {
998  return registerObject( detail::cast( pPar ), rel, obj );
999 }
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 1002 of file HistogramSvc.cpp.

1003 {
1004  return registerObject( pPar, std::to_string( item ), obj );
1005 }
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 1008 of file HistogramSvc.cpp.

1009 {
1010  return registerObject( detail::cast( pPar ), item, obj );
1011 }
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 305 of file HistogramSvc.cpp.

305 { return StatusCode::SUCCESS; }
constexpr static const auto SUCCESS
Definition: StatusCode.h:87
StatusCode HistogramSvc::retrieveObject ( IRegistry pReg,
const std::string path,
AIDA::IHistogram1D *&  obj 
)
override

Definition at line 1029 of file HistogramSvc.cpp.

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

Definition at line 1035 of file HistogramSvc.cpp.

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

Definition at line 1041 of file HistogramSvc.cpp.

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

Definition at line 1047 of file HistogramSvc.cpp.

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

Definition at line 1053 of file HistogramSvc.cpp.

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

Definition at line 1059 of file HistogramSvc.cpp.

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

Definition at line 1065 of file HistogramSvc.cpp.

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

Definition at line 1071 of file HistogramSvc.cpp.

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

Definition at line 1077 of file HistogramSvc.cpp.

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

Definition at line 1083 of file HistogramSvc.cpp.

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

Definition at line 1089 of file HistogramSvc.cpp.

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

Definition at line 1097 of file HistogramSvc.cpp.

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

Definition at line 1103 of file HistogramSvc.cpp.

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

Definition at line 1109 of file HistogramSvc.cpp.

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

Definition at line 1115 of file HistogramSvc.cpp.

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

Definition at line 1121 of file HistogramSvc.cpp.

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

Definition at line 1127 of file HistogramSvc.cpp.

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

Definition at line 1133 of file HistogramSvc.cpp.

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

Definition at line 1139 of file HistogramSvc.cpp.

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

Definition at line 1145 of file HistogramSvc.cpp.

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

Definition at line 1150 of file HistogramSvc.cpp.

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

Definition at line 1156 of file HistogramSvc.cpp.

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

Definition at line 1162 of file HistogramSvc.cpp.

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

Definition at line 1168 of file HistogramSvc.cpp.

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

Definition at line 1174 of file HistogramSvc.cpp.

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

Definition at line 1180 of file HistogramSvc.cpp.

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

Definition at line 1186 of file HistogramSvc.cpp.

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

Definition at line 1192 of file HistogramSvc.cpp.

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

Definition at line 1198 of file HistogramSvc.cpp.

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

Definition at line 1204 of file HistogramSvc.cpp.

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

Definition at line 1210 of file HistogramSvc.cpp.

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

Definition at line 1216 of file HistogramSvc.cpp.

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

Definition at line 1222 of file HistogramSvc.cpp.

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

Definition at line 1228 of file HistogramSvc.cpp.

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

Definition at line 1234 of file HistogramSvc.cpp.

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

Definition at line 1240 of file HistogramSvc.cpp.

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

Definition at line 1246 of file HistogramSvc.cpp.

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

Definition at line 1252 of file HistogramSvc.cpp.

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

Definition at line 1258 of file HistogramSvc.cpp.

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

Definition at line 1264 of file HistogramSvc.cpp.

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

Definition at line 1516 of file HistogramSvc.cpp.

1517 {
1518  return sliceX( name, h, indexY, indexY );
1519 }
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 1522 of file HistogramSvc.cpp.

1523 {
1524  return sliceY( name, h, indexX, indexX );
1525 }
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 1535 of file HistogramSvc.cpp.

1537 {
1538  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, -1. );
1539 }
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 1563 of file HistogramSvc.cpp.

1565 {
1566  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, -1. );
1567 }
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 1591 of file HistogramSvc.cpp.

1593 {
1594  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, -1. );
1595 }
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 1014 of file HistogramSvc.cpp.

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

Definition at line 1017 of file HistogramSvc.cpp.

1018 {
1019  return DataSvc::unregisterObject( detail::cast( obj ), objectPath );
1020 }
StatusCode unregisterObject(boost::string_ref fullPath) override
Unregister object from the data store.
Definition: DataSvc.cpp:445
StatusCode HistogramSvc::unregisterObject ( Base obj,
int  item 
)
override

Definition at line 1023 of file HistogramSvc.cpp.

1024 {
1025  return DataSvc::unregisterObject( detail::cast( obj ), item );
1026 }
StatusCode unregisterObject(boost::string_ref fullPath) override
Unregister object from the data store.
Definition: DataSvc.cpp:445
void HistogramSvc::update1Ddefs ( Gaudi::Details::PropertyBase )

handler to be invoked for updating property m_defs1D

Definition at line 387 of file HistogramSvc.cpp.

388 {
389  // check and remove the leading '/stat/'
390  removeLeading( m_defs1D.value(), "/stat/" );
391 }
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: