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

Public Member Functions

 HistogramSvc (const std::string &name, ISvcLocator *svc)
 Statndard Constructor. More...
 
 ~HistogramSvc () override
 Destructor. More...
 
std::pair< std::string, std::stringi_splitPath (const std::string &full)
 Split full path into its components. More...
 
StatusCode connectInput (const std::string &ident)
 Connect input histogram file to the service. More...
 
template<class T >
T * i_book (DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
 
AIDA::IHistogram2D * i_project (const std::string &nameAndTitle, const AIDA::IHistogram3D &h, const std::string &dir)
 Helper for 2D projections. More...
 
StatusCode initialize () override
 Initialise the service. More...
 
StatusCode reinitialize () override
 Initialise the service. More...
 
StatusCode finalize () override
 finalize the service More...
 
AIDA::IHistogramFactory * histogramFactory () override
 Retrieve the AIDA HistogramFactory interface. More...
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt)
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IHistogram1D * book (const std::string &par, int hID, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram1D * book (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IHistogram1D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IHistogram1D * book (const std::string &full, const std::string &title, Edges e) override
 
AIDA::IHistogram1D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e) override
 
AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e)
 
AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e) override
 
virtual AIDA::IProfile1D * bookProf (const std::string &full, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::string &par, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges e, double upper, double lower)
 
virtual AIDA::IProfile1D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges e, double upper, double lower)
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 Book histogram and register it with the histogram data store. More...
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * book (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram2D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IHistogram2D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IHistogram2D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IHistogram2D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y) override
 
AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y)
 
AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y) override
 
virtual AIDA::IProfile2D * bookProf (const std::string &full, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::string &par, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, double upper, double lower)
 
virtual AIDA::IProfile2D * bookProf (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, double upper, double lower)
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * book (const std::string &full, const std::string &title, Edges x, Edges y, Edges z) override
 Book histogram and register it with the histogram data store. More...
 
AIDA::IHistogram3D * book (const std::string &par, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (const std::string &par, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
AIDA::IHistogram3D * book (DataObject *pPar, int hID, const std::string &title, Edges x, Edges y, Edges z) override
 
virtual AIDA::IHistogram3D * book (const std::pair< std::string, std::string > &loc, const std::string &title, Edges x, Edges y, Edges z)
 
AIDA::IHistogram3D * book (DataObject *pPar, const std::string &rel, const std::string &title, Edges x, Edges y, Edges z) override
 
StatusCode registerObject (const std::string &parent, const std::string &rel, Base *obj) override
 
StatusCode registerObject (Base *pPar, const std::string &rel, Base *obj) override
 
StatusCode registerObject (const std::string &full, Base *obj) override
 
StatusCode registerObject (DataObject *pPar, const std::string &rel, Base *obj) override
 
StatusCode unregisterObject (Base *obj) override
 
StatusCode unregisterObject (Base *obj, const std::string &objectPath) override
 
StatusCode unregisterObject (Base *obj, int item) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &full, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, const std::string &rel, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (const std::string &parent, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (DataObject *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (Base *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode retrieveObject (Base *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (IRegistry *pReg, const std::string &path, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &full, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &par, const std::string &rel, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (const std::string &par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (DataObject *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (DataObject *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (Base *par, int item, AIDA::IHistogram3D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IProfile1D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IProfile2D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram1D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram2D *&obj) override
 
StatusCode findObject (Base *par, const std::string &item, AIDA::IHistogram3D *&obj) override
 
AIDA::IHistogram1D * projectionX (const std::string &name, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram1D * projectionY (const std::string &name, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram1D * sliceX (const std::string &name, const AIDA::IHistogram2D &h, int indexY) override
 
AIDA::IHistogram1D * sliceY (const std::string &name, const AIDA::IHistogram2D &h, int indexX) override
 
AIDA::IHistogram1D * sliceX (const std::string &name, const AIDA::IHistogram2D &h, int indexY1, int indexY2) override
 
AIDA::IHistogram1D * sliceY (const std::string &name, const AIDA::IHistogram2D &h, int indexX1, int indexX2) override
 
bool destroy (IBaseHistogram *hist) override
 
AIDA::IHistogram1D * add (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram1D * divide (const std::string &nameAndTitle, const AIDA::IHistogram1D &a, const AIDA::IHistogram1D &b) override
 
AIDA::IHistogram2D * add (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram2D * divide (const std::string &nameAndTitle, const AIDA::IHistogram2D &a, const AIDA::IHistogram2D &b) override
 
AIDA::IHistogram3D * add (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * subtract (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * multiply (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram3D * divide (const std::string &nameAndTitle, const AIDA::IHistogram3D &a, const AIDA::IHistogram3D &b) override
 
AIDA::IHistogram2D * projectionXY (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * projectionXZ (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * projectionYZ (const std::string &nameAndTitle, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram2D * sliceXY (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram2D * sliceXZ (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram2D * sliceYZ (const std::string &, const AIDA::IHistogram3D &, int, int) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, int nx, double lowx, double upx)
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, const std::string &) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &name, const std::string &title, const Edges &x, const std::string &) override
 
AIDA::IHistogram1D * createHistogram1D (const std::string &nameAndTitle, int nx, double lowx, double upx) override
 
AIDA::IHistogram1D * createCopy (const std::string &full, const AIDA::IHistogram1D &h) override
 
AIDA::IHistogram1D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram1D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram1D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram1D &h)
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, const std::string &) override
 
AIDA::IHistogram2D * createHistogram2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const std::string &) override
 
AIDA::IHistogram2D * createHistogram2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IHistogram2D * createCopy (const std::string &full, const AIDA::IHistogram2D &h) override
 
AIDA::IHistogram2D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram2D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram2D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram2D &h)
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz)
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz, const std::string &) override
 
AIDA::IHistogram3D * createHistogram3D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const Edges &z, const std::string &) override
 
AIDA::IHistogram3D * createHistogram3D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy, int nz, double lowz, double upz) override
 
AIDA::IHistogram3D * createCopy (const std::string &full, const AIDA::IHistogram3D &h) override
 
AIDA::IHistogram3D * createCopy (const std::string &par, const std::string &rel, const AIDA::IHistogram3D &h)
 
AIDA::IHistogram3D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IHistogram3D &h)
 
AIDA::IHistogram3D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IHistogram3D &h)
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, int nx, double lowx, double upx, double upper, double lower, const std::string &opt) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, const Edges &x, const std::string &) override
 
AIDA::IProfile1D * createProfile1D (const std::string &name, const std::string &title, const Edges &x, double upper, double lower, const std::string &) override
 
AIDA::IProfile1D * createProfile1D (const std::string &nametit, int nx, double lowx, double upx) override
 
AIDA::IProfile1D * createProfile1D (const std::string &nametit, int nx, double lowx, double upx, double upper, double lower) override
 
AIDA::IProfile1D * createCopy (const std::string &full, const AIDA::IProfile1D &h) override
 
AIDA::IProfile1D * createCopy (const std::string &par, const std::string &rel, const AIDA::IProfile1D &h)
 
AIDA::IProfile1D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IProfile1D &h)
 
AIDA::IProfile1D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IProfile1D &h)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower)
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &name, const std::string &title, const Edges &x, const Edges &y, double upper, double lower, const std::string &) override
 
AIDA::IProfile2D * createProfile2D (const std::string &nameAndTitle, int nx, double lowx, double upx, int ny, double lowy, double upy, double upper, double lower) override
 
AIDA::IProfile2D * createCopy (const std::string &full, const AIDA::IProfile2D &h) override
 
AIDA::IProfile2D * createCopy (const std::string &par, const std::string &rel, const AIDA::IProfile2D &h)
 
AIDA::IProfile2D * createCopy (const std::pair< std::string, std::string > &loc, const AIDA::IProfile2D &h)
 
AIDA::IProfile2D * createCopy (DataObject *pPar, const std::string &rel, const AIDA::IProfile2D &h)
 
AIDA::ICloud1D * createCloud1D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud1D * createCloud1D (const std::string &) override
 
AIDA::ICloud1D * createCopy (const std::string &, const AIDA::ICloud1D &) override
 
AIDA::ICloud2D * createCloud2D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud2D * createCloud2D (const std::string &) override
 
AIDA::ICloud2D * createCopy (const std::string &, const AIDA::ICloud2D &) override
 
AIDA::ICloud3D * createCloud3D (const std::string &, const std::string &, int, const std::string &) override
 
AIDA::ICloud3D * createCloud3D (const std::string &) override
 
AIDA::ICloud3D * createCopy (const std::string &, const AIDA::ICloud3D &) override
 
std::ostreamprint (Base *h, std::ostream &s=std::cout) const override
 Print (ASCII) the 1D histogram into the output stream. More...
 
std::ostreamwrite (Base *h, std::ostream &s=std::cout) const override
 Write (ASCII) the 1D histogram table into the output stream. More...
 
int write (Base *h, const char *file_name) const override
 Write (ASCII) the 1D histogram table into a file. More...
 
DataObjectcreatePath (const std::string &newPath) override
 Create all directories in a given full path. More...
 
DataObjectcreateDirectory (const std::string &parentDir, const std::string &subDir) override
 Create a sub-directory in a directory. More...
 
- 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 (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 (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 removePreLoadItem (const DataStoreItem &item) override
 Remove an item from the preload list. More...
 
StatusCode resetPreLoad () override
 Clear the preload list. More...
 
virtual StatusCode preLoad (int depth, int load_depth, DataObject *pObject)
 Execute one level of preloading and recursively load until the final level is reached. More...
 
StatusCode preLoad () override
 load all preload items of the list More...
 
StatusCode registerObject (boost::string_ref parentPath, boost::string_ref objPath, 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 unregisterObject (boost::string_ref fullPath) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObject, boost::string_ref objectPath) 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 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 linkObject (IRegistry *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 (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 (DataObject *toUpdate) override
 Update object. More...
 
StatusCode initialize () override
 Service initialization. More...
 
StatusCode reinitialize () override
 Service initialization. More...
 
StatusCode finalize () override
 Service initialization. More...
 
 DataSvc (const DataSvc &)=delete
 copy constructor disabled More...
 
DataSvcoperator= (const DataSvc &)=delete
 Fake assignment operator (never implemented). More...
 
- 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
 
void update1Ddefs ()
 handler to be invoked for updating property m_defs1D More...
 

Private Attributes

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

Additional Inherited Members

- Protected Member Functions inherited from DataSvc
bool checkRoot ()
 Check if root path is valid. More...
 
virtual IConversionSvcgetDataLoader (IRegistry *pReg)
 Retrieve customizable data loader according to registry entry to be retrieved. More...
 
virtual DataObjectcreateDefaultObject () const
 Create default objects in case forced creation of leaves is requested. More...
 
virtual StatusCode loadObject (IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation. More...
 
virtual StatusCode loadObject (IConversionSvc *pLoader, IRegistry *pNode)
 Invoke Persistency service to create transient object from its persistent representation. More...
 
StatusCode retrieveEntry (DataSvcHelpers::RegistryEntry *pNode, 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< IIncidentSvcm_incidentSvc = nullptr
 Pointer to incident service. More...
 
Gaudi::Property< CLIDm_rootCLID {this, "RootCLID", 110 , "CLID of root entry"}
 
Gaudi::Property< std::stringm_rootName {this, "RootName", "/Event", "name of root entry"}
 
std::unique_ptr< DataSvcHelpers::RegistryEntrym_root
 Pointer to root entry. More...
 
- Protected Attributes inherited from Service
Gaudi::StateMachine::State m_state = Gaudi::StateMachine::OFFLINE
 Service state. More...
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::OFFLINE
 Service state. More...
 
Gaudi::Property< int > m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
 
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 51 of file HistogramSvc.h.

Member Typedef Documentation

typedef AIDA::IBaseHistogram HistogramSvc::Base
protected

Definition at line 59 of file HistogramSvc.h.

Definition at line 135 of file HistogramSvc.h.

typedef AIDA::IHistogram3D HistogramSvc::H3D
protected

Definition at line 57 of file HistogramSvc.h.

typedef AIDA::IProfile2D HistogramSvc::P2D
protected

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

328  : base_class( nam, svc ) {
329  m_rootName = "/stat";
330  m_rootCLID = CLID_DataObject;
331 }
Gaudi::Property< CLID > m_rootCLID
Definition: DataSvc.h:51
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:52
extends base_class
Typedef to this class.
Definition: extends.h:14
HistogramSvc::~HistogramSvc ( )
override

Destructor.

Definition at line 177 of file HistogramSvc.cpp.

177  {
178  setDataLoader( nullptr ).ignore();
179  clearStore().ignore();
180 }
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:179
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: DataSvc.cpp:103

Member Function Documentation

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

Definition at line 1285 of file HistogramSvc.cpp.

1286  {
1287  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, 1. );
1288 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1309 of file HistogramSvc.cpp.

1310  {
1311  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, 1. );
1312 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1333 of file HistogramSvc.cpp.

1334  {
1335  return Helper::act( createCopy( nameAndTitle, a ), b, &TH3D::Add, 1. );
1336 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 457 of file HistogramSvc.cpp.

457  {
458  return book( par, std::to_string( hID ), title, e );
459 }
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 462 of file HistogramSvc.cpp.

462  {
463  return book( pPar, std::to_string( hID ), title, e );
464 }
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 467 of file HistogramSvc.cpp.

468  {
469  return book( createPath( par ), rel, title, e );
470 }
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 473 of file HistogramSvc.cpp.

474  {
475  return book( loc.first, loc.second, title, e );
476 }
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 479 of file HistogramSvc.cpp.

479  {
480  return book( i_splitPath( full ), title, e );
481 }
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 484 of file HistogramSvc.cpp.

484  {
485  return i_book( pPar, rel, title, Gaudi::createH1D( title, e ) );
486 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 558 of file HistogramSvc.cpp.

559  {
560  return book( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
561 }
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 564 of file HistogramSvc.cpp.

565  {
566  return book( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
567 }
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 570 of file HistogramSvc.cpp.

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

577  {
578  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
579 }
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 582 of file HistogramSvc.cpp.

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

589  {
590  return i_book( pPar, rel, title, Gaudi::createH2D( title, nx, lowx, upx, ny, lowy, upy ) );
591 }
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:160
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 670 of file HistogramSvc.cpp.

670  {
671  return book( i_splitPath( full ), title, x, y );
672 }
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 675 of file HistogramSvc.cpp.

676  {
677  return book( createPath( par ), rel, title, x, y );
678 }
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 681 of file HistogramSvc.cpp.

681  {
682  return book( par, std::to_string( hID ), title, x, y );
683 }
AIDA::IHistogram1D * book(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx) override
Book histogram and register it with the histogram data store.
T to_string(T...args)
AIDA::IHistogram2D * HistogramSvc::book ( const std::pair< std::string, std::string > &  loc,
const std::string title,
Edges  x,
Edges  y 
)
virtual

Definition at line 686 of file HistogramSvc.cpp.

687  {
688  return book( loc.first, loc.second, title, x, y );
689 }
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 692 of file HistogramSvc.cpp.

692  {
693  return book( pPar, std::to_string( hID ), title, x, y );
694 }
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 697 of file HistogramSvc.cpp.

698  {
699  return i_book( pPar, rel, title, Gaudi::createH2D( title, x, y ) );
700 }
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:160
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 773 of file HistogramSvc.cpp.

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

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

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

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

800  {
801  return book( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
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::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 805 of file HistogramSvc.cpp.

807  {
808  return i_book( pPar, rel, title, Gaudi::createH3D( title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz ) );
809 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 812 of file HistogramSvc.cpp.

812  {
813  return book( i_splitPath( full ), title, x, y, z );
814 }
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 817 of file HistogramSvc.cpp.

818  {
819  return book( createPath( par ), rel, title, x, y, z );
820 }
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 823 of file HistogramSvc.cpp.

824  {
825  return book( par, std::to_string( hID ), title, x, y, z );
826 }
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 829 of file HistogramSvc.cpp.

830  {
831  return book( pPar, std::to_string( hID ), title, x, y, z );
832 }
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 835 of file HistogramSvc.cpp.

836  {
837  return book( loc.first, loc.second, title, x, y, z );
838 }
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 841 of file HistogramSvc.cpp.

842  {
843  return i_book( pPar, rel, title, Gaudi::createH3D( title, x, y, z ) );
844 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 489 of file HistogramSvc.cpp.

489  {
490  return bookProf( i_splitPath( full ), title, e );
491 }
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 494 of file HistogramSvc.cpp.

495  {
496  return bookProf( createPath( par ), rel, title, e );
497 }
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 500 of file HistogramSvc.cpp.

500  {
501  return bookProf( par, std::to_string( hID ), title, e );
502 }
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 505 of file HistogramSvc.cpp.

505  {
506  return bookProf( pPar, std::to_string( hID ), title, e );
507 }
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 510 of file HistogramSvc.cpp.

511  {
512  return bookProf( loc.first, loc.second, title, e );
513 }
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 516 of file HistogramSvc.cpp.

517  {
518  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, 0, 0 ) );
519 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 522 of file HistogramSvc.cpp.

523  {
524  return bookProf( i_splitPath( full ), title, e, upper, lower );
525 }
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 528 of file HistogramSvc.cpp.

529  {
530  return bookProf( createPath( par ), rel, title, e, upper, lower );
531 }
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 534 of file HistogramSvc.cpp.

535  {
536  return bookProf( par, std::to_string( hID ), title, e, upper, lower );
537 }
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 540 of file HistogramSvc.cpp.

541  {
542  return bookProf( pPar, std::to_string( hID ), title, e, upper, lower );
543 }
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 546 of file HistogramSvc.cpp.

547  {
548  return bookProf( loc.first, loc.second, title, e, upper, lower );
549 }
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 552 of file HistogramSvc.cpp.

553  {
554  return i_book( pPar, rel, title, Gaudi::createProf1D( title, e, upper, lower ) );
555 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 594 of file HistogramSvc.cpp.

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

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

609  {
610  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy, 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.
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 614 of file HistogramSvc.cpp.

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

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

629  {
630  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, upper, lower ) );
631 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 634 of file HistogramSvc.cpp.

635  {
636  return bookProf( i_splitPath( full ), title, nx, lowx, upx, ny, lowy, upy );
637 }
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 640 of file HistogramSvc.cpp.

641  {
642  return bookProf( createPath( par ), rel, title, nx, lowx, upx, ny, lowy, upy );
643 }
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 646 of file HistogramSvc.cpp.

647  {
648  return bookProf( loc.first, loc.second, title, nx, lowx, upx, ny, lowy, upy );
649 }
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 652 of file HistogramSvc.cpp.

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

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

665  {
666  return i_book( pPar, rel, title, Gaudi::createProf2D( title, nx, lowx, upx, ny, lowy, upy, 0, 0 ) );
667 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 703 of file HistogramSvc.cpp.

703  {
704  return bookProf( i_splitPath( full ), title, x, y );
705 }
AIDA::IProfile1D * bookProf(const std::string &par, const std::string &rel, const std::string &title, int nx, double lowx, double upx, const std::string &opt) override
Book histogram and register it with the histogram data store.
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 708 of file HistogramSvc.cpp.

709  {
710  return bookProf( createPath( par ), rel, title, x, y );
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.
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 714 of file HistogramSvc.cpp.

715  {
716  return bookProf( par, std::to_string( hID ), title, x, y );
717 }
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 720 of file HistogramSvc.cpp.

720  {
721  return bookProf( pPar, std::to_string( hID ), title, x, y );
722 }
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 725 of file HistogramSvc.cpp.

726  {
727  return bookProf( loc.first, loc.second, title, x, y );
728 }
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 731 of file HistogramSvc.cpp.

732  {
733  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, 0, 0 ) );
734 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 737 of file HistogramSvc.cpp.

738  {
739  return bookProf( i_splitPath( full ), title, x, y, upper, lower );
740 }
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 743 of file HistogramSvc.cpp.

744  {
745  return bookProf( createPath( par ), rel, title, x, y, upper, lower );
746 }
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 749 of file HistogramSvc.cpp.

750  {
751  return bookProf( par, std::to_string( hID ), title, x, y, upper, lower );
752 }
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 755 of file HistogramSvc.cpp.

756  {
757  return bookProf( pPar, std::to_string( hID ), title, x, y, upper, lower );
758 }
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 761 of file HistogramSvc.cpp.

762  {
763  return bookProf( loc.first, loc.second, title, x, y, upper, lower );
764 }
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 767 of file HistogramSvc.cpp.

768  {
769  return i_book( pPar, rel, title, Gaudi::createProf2D( title, x, y, upper, lower ) );
770 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 183 of file HistogramSvc.cpp.

183  {
184  using Parser = Gaudi::Utils::AttribStringParser;
185  DataObject* pO = nullptr;
186  StatusCode status = this->findObject( m_rootName.value(), pO );
187  if ( status.isSuccess() ) {
188  string::size_type loc = ident.find( " " );
189  string filename, auth, svc = "", typ = "";
190  string logname = ident.substr( 0, loc );
191  for ( auto attrib : Parser( ident.substr( loc + 1 ) ) ) {
192  switch ( ::toupper( attrib.tag[0] ) ) {
193  case 'F': // FILE='<file name>'
194  case 'D': // DATAFILE='<file name>'
195  filename = std::move( attrib.value );
196  break;
197  case 'T': // TYP='<HBOOK,ROOT,OBJY,...>'
198  typ = std::move( attrib.value );
199  break;
200  default:
201  break;
202  }
203  }
204  if ( typ.length() > 0 ) {
205  // Now add the registry entry to the store
206  string entryname = m_rootName;
207  entryname += '/';
208  entryname += logname;
209  GenericAddress* pA = nullptr;
210  switch ( ::toupper( typ[0] ) ) {
211  case 'H':
212  pA = new GenericAddress( HBOOK_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
213  break;
214  case 'R':
215  pA = new GenericAddress( ROOT_StorageType, CLID_StatisticsFile, filename, entryname, 0, 'O' );
216  break;
217  }
218  if ( pA ) {
219  status = registerAddress( pO, logname, pA );
220  if ( status.isSuccess() ) {
221  info() << "Added stream file:" << filename << " as " << logname << endmsg;
222  return status;
223  }
224  pA->release();
225  }
226  }
227  }
228  error() << "Cannot add " << ident << " invalid filename!" << endmsg;
229  return StatusCode::FAILURE;
230 }
StatusCode registerAddress(boost::string_ref fullPath, IOpaqueAddress *pAddress) override
IDataManagerSvc: Register object address with the data store.
Definition: DataSvc.cpp:217
Parse attribute strings allowing iteration over the various attributes.
const long HBOOK_StorageType
Definition: ClassID.h:56
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Definition: StatusCode.h:267
unsigned long release() override
release reference to object
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:52
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:50
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)
constexpr static const auto FAILURE
Definition: StatusCode.h:86
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:192
AIDA::ICloud1D* HistogramSvc::createCloud1D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 993 of file HistogramSvc.h.

993  {
994  not_implemented();
995  return nullptr;
996  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud1D* HistogramSvc::createCloud1D ( const std::string )
inlineoverride

Definition at line 998 of file HistogramSvc.h.

998  {
999  not_implemented();
1000  return nullptr;
1001  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud2D* HistogramSvc::createCloud2D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 1008 of file HistogramSvc.h.

1008  {
1009  not_implemented();
1010  return nullptr;
1011  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud2D* HistogramSvc::createCloud2D ( const std::string )
inlineoverride

Definition at line 1013 of file HistogramSvc.h.

1013  {
1014  not_implemented();
1015  return nullptr;
1016  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud3D* HistogramSvc::createCloud3D ( const std::string ,
const std::string ,
int  ,
const std::string  
)
inlineoverride

Definition at line 1023 of file HistogramSvc.h.

1023  {
1024  not_implemented();
1025  return nullptr;
1026  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud3D* HistogramSvc::createCloud3D ( const std::string )
inlineoverride

Definition at line 1028 of file HistogramSvc.h.

1028  {
1029  not_implemented();
1030  return nullptr;
1031  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::IHistogram1D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IHistogram1D &  h 
)
override

Definition at line 1396 of file HistogramSvc.cpp.

1396  {
1397  return createCopy( i_splitPath( full ), h );
1398 }
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 1401 of file HistogramSvc.cpp.

1402  {
1403  return createCopy( createPath( par ), rel, h );
1404 }
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 1407 of file HistogramSvc.cpp.

1408  {
1409  return createCopy( loc.first, loc.second, h );
1410 }
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 1413 of file HistogramSvc.cpp.

1413  {
1414  return i_book( pPar, rel, h.title(), Gaudi::createH1D( h ) );
1415 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 1443 of file HistogramSvc.cpp.

1443  {
1444  return createCopy( i_splitPath( full ), h );
1445 }
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 1448 of file HistogramSvc.cpp.

1449  {
1450  return createCopy( createPath( par ), rel, h );
1451 }
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 1454 of file HistogramSvc.cpp.

1455  {
1456  return createCopy( loc.first, loc.second, h );
1457 }
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 1460 of file HistogramSvc.cpp.

1460  {
1461  return i_book( pPar, rel, h.title(), Gaudi::createH2D( h ) );
1462 }
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:160
AIDA::IHistogram3D * HistogramSvc::createCopy ( const std::string full,
const AIDA::IHistogram3D &  h 
)
override

Definition at line 1492 of file HistogramSvc.cpp.

1492  {
1493  return createCopy( i_splitPath( full ), h );
1494 }
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 1497 of file HistogramSvc.cpp.

1498  {
1499  return createCopy( createPath( par ), rel, h );
1500 }
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 1503 of file HistogramSvc.cpp.

1504  {
1505  return createCopy( loc.first, loc.second, h );
1506 }
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 1509 of file HistogramSvc.cpp.

1509  {
1510  return i_book( pPar, rel, h.title(), Gaudi::createH3D( h ) );
1511 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 1549 of file HistogramSvc.cpp.

1549  {
1550  return createCopy( i_splitPath( full ), h );
1551 }
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 1554 of file HistogramSvc.cpp.

1555  {
1556  return createCopy( createPath( par ), rel, h );
1557 }
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 1560 of file HistogramSvc.cpp.

1561  {
1562  return createCopy( loc.first, loc.second, h );
1563 }
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 1566 of file HistogramSvc.cpp.

1566  {
1567  return i_book( pPar, rel, h.title(), Gaudi::createProf1D( h ) );
1568 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 1623 of file HistogramSvc.cpp.

1623  {
1624  return createCopy( i_splitPath( full ), h );
1625 }
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 1628 of file HistogramSvc.cpp.

1629  {
1630  return createCopy( createPath( par ), rel, h );
1631 }
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 1634 of file HistogramSvc.cpp.

1635  {
1636  return createCopy( loc.first, loc.second, h );
1637 }
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 1640 of file HistogramSvc.cpp.

1640  {
1641  return i_book( pPar, rel, h.title(), Gaudi::createProf2D( h ) );
1642 }
T * i_book(DataObject *pPar, const std::string &rel, const std::string &title, const std::pair< DataObject *, T * > &o)
Definition: HistogramSvc.h:160
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 1003 of file HistogramSvc.h.

1003  {
1004  not_implemented();
1005  return nullptr;
1006  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud2D* HistogramSvc::createCopy ( const std::string ,
const AIDA::ICloud2D &   
)
inlineoverride

Definition at line 1018 of file HistogramSvc.h.

1018  {
1019  not_implemented();
1020  return nullptr;
1021  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::ICloud3D* HistogramSvc::createCopy ( const std::string ,
const AIDA::ICloud3D &   
)
inlineoverride

Definition at line 1033 of file HistogramSvc.h.

1033  {
1034  not_implemented();
1035  return nullptr;
1036  }
void not_implemented() const
Definition: HistogramSvc.h:54
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 158 of file HistogramSvc.cpp.

158  {
159  auto directory = std::make_unique<DataObject>();
160  if ( directory ) {
161  DataObject* pnode;
162  StatusCode status = retrieveObject( parentDir, pnode );
163  if ( !status.isSuccess() ) {
164  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
165  return nullptr;
166  }
167  status = DataSvc::registerObject( pnode, subDir, directory.get() );
168  if ( !status.isSuccess() ) {
169  error() << "Unable to create the histogram directory: " << parentDir << "/" << subDir << endmsg;
170  return nullptr;
171  }
172  }
173  return directory.release();
174 }
bool isSuccess() const
Definition: StatusCode.h:267
StatusCode retrieveObject(IRegistry *pReg, const std::string &path, AIDA::IHistogram1D *&obj) override
StatusCode registerObject(boost::string_ref parentPath, boost::string_ref objPath, DataObject *pObject) override
Register object with the data store.
Definition: DataSvc.cpp:295
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
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:192
AIDA::IHistogram1D * HistogramSvc::createHistogram1D ( const std::string name,
const std::string title,
int  nx,
double  lowx,
double  upx 
)

Definition at line 1372 of file HistogramSvc.cpp.

1373  {
1374  return book( name, title, nx, lowx, upx );
1375 }
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,
int  nx,
double  lowx,
double  upx,
const std::string  
)
override

Definition at line 1378 of file HistogramSvc.cpp.

1379  {
1380  return book( name, title, nx, lowx, upx );
1381 }
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 1384 of file HistogramSvc.cpp.

1385  {
1386  return book( name, title, x );
1387 }
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 1390 of file HistogramSvc.cpp.

1391  {
1392  return book( nameAndTitle, nameAndTitle, nx, lowx, upx );
1393 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)

Definition at line 1418 of file HistogramSvc.cpp.

1419  {
1420  return book( name, title, nx, lowx, upx, ny, lowy, upy );
1421 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
const std::string  
)
override

Definition at line 1424 of file HistogramSvc.cpp.

1426  {
1427  return book( name, title, nx, lowx, upx, ny, lowy, upy );
1428 }
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 1431 of file HistogramSvc.cpp.

1432  {
1433  return book( name, title, x, y );
1434 }
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 1437 of file HistogramSvc.cpp.

1438  {
1439  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1440 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
int  nz,
double  lowz,
double  upz 
)

Definition at line 1465 of file HistogramSvc.cpp.

1467  {
1468  return book( name, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1469 }
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,
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 1472 of file HistogramSvc.cpp.

1474  {
1475  return book( name, title, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1476 }
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 1479 of file HistogramSvc.cpp.

1480  {
1481  return book( name, title, x, y, z );
1482 }
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 1485 of file HistogramSvc.cpp.

1487  {
1488  return book( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, nz, lowz, upz );
1489 }
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 133 of file HistogramSvc.cpp.

133  {
134  string tmpPath = newPath;
135  if ( tmpPath[0] != SEPARATOR ) {
136  tmpPath.insert( tmpPath.begin(), SEPARATOR );
137  tmpPath.insert( tmpPath.begin(), m_rootName.begin(), m_rootName.end() );
138  }
139  // Remove trailing "/" from newPath if it exists
140  if ( tmpPath.rfind( SEPARATOR ) == tmpPath.length() - 1 ) { tmpPath.erase( tmpPath.rfind( SEPARATOR ), 1 ); }
141  DataObject* pObject = nullptr;
142  StatusCode sc = findObject( tmpPath, pObject );
143  if ( sc.isSuccess() ) { return pObject; }
144  int sep = tmpPath.rfind( SEPARATOR );
145  string rest( tmpPath, sep + 1, tmpPath.length() - sep );
146  string subPath( tmpPath, 0, sep );
147  if ( 0 != sep ) {
148  createPath( subPath );
149  } else {
150  error() << "Unable to create the histogram path" << endmsg;
151  return nullptr;
152  }
153  pObject = createDirectory( subPath, rest );
154  return pObject;
155 }
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:267
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:52
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataObject * createPath(const std::string &newPath) override
Create all directories in a given full path.
T insert(T...args)
StatusCode findObject(IRegistry *pReg, const std::string &path, AIDA::IProfile1D *&obj) override
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:192
AIDA::IProfile1D * HistogramSvc::createProfile1D ( const std::string name,
const std::string title,
int  nx,
double  lowx,
double  upx,
const std::string opt 
)
override

Definition at line 1514 of file HistogramSvc.cpp.

1515  {
1516  return bookProf( name, title, nx, lowx, upx, opt );
1517 }
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,
int  nx,
double  lowx,
double  upx,
double  upper,
double  lower,
const std::string opt 
)
override

Definition at line 1520 of file HistogramSvc.cpp.

1521  {
1522  return bookProf( name, title, nx, lowx, upx, upper, lower, opt );
1523 }
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 1526 of file HistogramSvc.cpp.

1527  {
1528  return bookProf( name, title, x );
1529 }
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 1532 of file HistogramSvc.cpp.

1533  {
1534  return bookProf( name, title, x, upper, lower );
1535 }
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 1538 of file HistogramSvc.cpp.

1538  {
1539  return bookProf( nametit, nametit, nx, lowx, upx, "s" );
1540 }
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 1543 of file HistogramSvc.cpp.

1544  {
1545  return bookProf( nametit, nametit, nx, lowx, upx, upper, lower, "s" );
1546 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy 
)

Definition at line 1571 of file HistogramSvc.cpp.

1572  {
1573  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy );
1574 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
const std::string  
)
override

Definition at line 1577 of file HistogramSvc.cpp.

1579  {
1580  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy );
1581 }
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 1584 of file HistogramSvc.cpp.

1585  {
1586  return bookProf( name, title, x, y );
1587 }
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 1590 of file HistogramSvc.cpp.

1591  {
1592  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy );
1593 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
double  upper,
double  lower 
)

Definition at line 1596 of file HistogramSvc.cpp.

1598  {
1599  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
1600 }
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,
int  nx,
double  lowx,
double  upx,
int  ny,
double  lowy,
double  upy,
double  upper,
double  lower,
const std::string  
)
override

Definition at line 1603 of file HistogramSvc.cpp.

1605  {
1606  return bookProf( name, title, nx, lowx, upx, ny, lowy, upy, upper, lower );
1607 }
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 1610 of file HistogramSvc.cpp.

1612  {
1613  return bookProf( name, title, x, y, upper, lower );
1614 }
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 1617 of file HistogramSvc.cpp.

1618  {
1619  return bookProf( nameAndTitle, nameAndTitle, nx, lowx, upx, ny, lowy, upy, upper, lower );
1620 }
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 302 of file HistogramSvc.cpp.

302  {
303  StatusCode sc = unregisterObject( dynamic_cast<IHistogram*>( hist ) );
304  if ( !sc.isSuccess() ) return false;
305  delete hist;
306  return true;
307 }
bool isSuccess() const
Definition: StatusCode.h:267
StatusCode unregisterObject(Base *obj) override
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
AIDA::IHistogram1D * HistogramSvc::divide ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1303 of file HistogramSvc.cpp.

1304  {
1305  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Divide );
1306 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1327 of file HistogramSvc.cpp.

1328  {
1329  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Divide );
1330 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1351 of file HistogramSvc.cpp.

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

finalize the service

Definition at line 342 of file HistogramSvc.cpp.

342  {
343  if ( !m_mods1D.empty() ) {
344  if ( msgLevel( MSG::DEBUG ) ) debug() << " Substituted histograms #" << m_mods1D.size() << " : " << endmsg;
345  for ( const auto& ih : m_mods1D ) {
346  if ( msgLevel( MSG::DEBUG ) ) debug() << " Path='" << ih << "'";
347  auto im = m_defs1D.find( ih );
348  if ( m_defs1D.end() != im ) { debug() << " " << im->second; }
349  }
350  m_mods1D.clear();
351  }
352  return DataSvc::finalize();
353 }
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:171
StatusCode finalize() override
Service initialization.
Definition: DataSvc.cpp:847
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:192
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 1071 of file HistogramSvc.cpp.

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

Definition at line 1075 of file HistogramSvc.cpp.

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

Definition at line 1079 of file HistogramSvc.cpp.

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

Definition at line 1083 of file HistogramSvc.cpp.

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

Definition at line 1087 of file HistogramSvc.cpp.

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

Definition at line 1091 of file HistogramSvc.cpp.

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

Definition at line 1095 of file HistogramSvc.cpp.

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

Definition at line 1100 of file HistogramSvc.cpp.

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

Definition at line 1105 of file HistogramSvc.cpp.

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

Definition at line 1110 of file HistogramSvc.cpp.

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

Definition at line 1115 of file HistogramSvc.cpp.

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

Definition at line 1120 of file HistogramSvc.cpp.

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

Definition at line 1125 of file HistogramSvc.cpp.

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

Definition at line 1130 of file HistogramSvc.cpp.

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

Definition at line 1135 of file HistogramSvc.cpp.

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

Definition at line 1140 of file HistogramSvc.cpp.

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

Definition at line 1145 of file HistogramSvc.cpp.

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

Definition at line 1150 of file HistogramSvc.cpp.

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

Definition at line 1155 of file HistogramSvc.cpp.

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

Definition at line 1160 of file HistogramSvc.cpp.

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

Definition at line 1165 of file HistogramSvc.cpp.

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

Definition at line 1170 of file HistogramSvc.cpp.

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

Definition at line 1175 of file HistogramSvc.cpp.

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

Definition at line 1180 of file HistogramSvc.cpp.

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

Definition at line 1185 of file HistogramSvc.cpp.

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

Definition at line 1190 of file HistogramSvc.cpp.

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

Definition at line 1195 of file HistogramSvc.cpp.

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

Definition at line 1200 of file HistogramSvc.cpp.

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

Definition at line 1205 of file HistogramSvc.cpp.

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

Definition at line 1210 of file HistogramSvc.cpp.

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

Definition at line 1215 of file HistogramSvc.cpp.

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

Definition at line 1220 of file HistogramSvc.cpp.

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

Definition at line 1225 of file HistogramSvc.cpp.

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

Definition at line 1230 of file HistogramSvc.cpp.

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

Definition at line 1235 of file HistogramSvc.cpp.

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

Definition at line 1240 of file HistogramSvc.cpp.

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

Definition at line 1245 of file HistogramSvc.cpp.

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

Definition at line 1250 of file HistogramSvc.cpp.

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

Definition at line 1255 of file HistogramSvc.cpp.

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

Definition at line 1260 of file HistogramSvc.cpp.

1260  {
1261  return Helper( this ).find( ::detail::cast( par ), item, obj );
1262 }
AIDA::IHistogramFactory* HistogramSvc::histogramFactory ( )
inlineoverride

Retrieve the AIDA HistogramFactory interface.

Definition at line 180 of file HistogramSvc.h.

180 { 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 160 of file HistogramSvc.h.

161  {
162  if ( o.first && registerObject( pPar, rel, (Base*)o.second ).isSuccess() ) return o.second;
163  delete o.first;
164  throw GaudiException( "Cannot book " + System::typeinfoName( typeid( T ) ) + " " + title, "HistogramSvc",
166  }
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:309
bool isSuccess() const
Definition: StatusCode.h:267
AIDA::IBaseHistogram Base
Definition: HistogramSvc.h:59
constexpr static const auto FAILURE
Definition: StatusCode.h:86
AIDA::IHistogram2D * HistogramSvc::i_project ( const std::string nameAndTitle,
const AIDA::IHistogram3D &  h,
const std::string dir 
)

Helper for 2D projections.

Definition at line 81 of file HistogramSvc.cpp.

81  {
82  TH3D* h3d = Gaudi::getRepresentation<IHistogram3D, TH3D>( h );
83  if ( h3d ) {
84  TH2D* h2d = dynamic_cast<TH2D*>( h3d->Project3D( dir.c_str() ) );
85  if ( h2d ) {
87  if ( r.second && registerObject( nameAndTitle, r.second ).isSuccess() ) { return r.second; }
88  }
89  }
90  return nullptr;
91 }
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:267
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 120 of file HistogramSvc.cpp.

120  {
121  string tmp = full;
122  if ( tmp[0] != SEPARATOR ) {
123  tmp.insert( tmp.begin(), SEPARATOR );
124  tmp.insert( tmp.begin(), m_rootName.begin(), m_rootName.end() );
125  }
126  // Remove trailing "/" from newPath if it exists
127  if ( tmp.rfind( SEPARATOR ) == tmp.length() - 1 ) { tmp.erase( tmp.length() - 1, 1 ); }
128  int sep = tmp.rfind( SEPARATOR );
129  return {tmp.substr( 0, sep ), tmp.substr( sep )};
130 }
constexpr char SEPARATOR
Gaudi::Property< std::string > m_rootName
Definition: DataSvc.h:52
T insert(T...args)
StatusCode HistogramSvc::initialize ( )
override

Initialise the service.

Definition at line 233 of file HistogramSvc.cpp.

233  {
234  StatusCode status = DataSvc::initialize();
235  // Set root object
236  if ( status.isSuccess() ) {
237  auto rootObj = std::make_unique<DataObject>();
238  status = setRoot( "/stat", rootObj.get() );
239  if ( status.isFailure() ) {
240  error() << "Unable to set hstogram data store root." << endmsg;
241  return status;
242  }
243  rootObj.release();
244  auto svc = service<IConversionSvc>( "HistogramPersistencySvc", true );
245  if ( !svc ) {
246  error() << "Could not find HistogramPersistencySvc." << endmsg;
247  return StatusCode::FAILURE;
248  }
249  setDataLoader( svc.get() ).ignore();
250  // Connect all input streams (if any)
251  for ( auto& j : m_input ) {
252  status = connectInput( j );
253  if ( !status.isSuccess() ) return status;
254  }
255  }
256  if ( !m_defs1D.empty() ) {
257  info() << " Predefined 1D-Histograms: " << endmsg;
258  for ( const auto& ih : m_defs1D ) {
259  info() << " Path='" << ih.first << "'"
260  << " Description " << ih.second << endmsg;
261  }
262  }
263  return status;
264 }
Gaudi::Property< Histo1DMap > m_defs1D
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
bool isSuccess() const
Definition: StatusCode.h:267
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:134
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:179
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:50
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:814
constexpr static const auto FAILURE
Definition: StatusCode.h:86
Gaudi::Property< DBaseEntries > m_input
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
AIDA::IHistogram1D * HistogramSvc::multiply ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1297 of file HistogramSvc.cpp.

1298  {
1299  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Multiply );
1300 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1321 of file HistogramSvc.cpp.

1322  {
1323  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Multiply );
1324 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1345 of file HistogramSvc.cpp.

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

Definition at line 54 of file HistogramSvc.h.

54 { 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:192
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 96 of file HistogramSvc.cpp.

96  {
97  Gaudi::HistogramBase* b = dynamic_cast<Gaudi::HistogramBase*>( h );
98  if ( b ) return b->print( s );
99  error() << "Unknown histogram type: Cannot cast to Gaudi::HistogramBase." << endmsg;
100  return s;
101 }
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:22
string s
Definition: gaudirun.py:312
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
AIDA::IHistogram1D * HistogramSvc::projectionX ( const std::string name,
const AIDA::IHistogram2D &  h 
)
override

Definition at line 1265 of file HistogramSvc.cpp.

1265  {
1266  return sliceX( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1267 }
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 1357 of file HistogramSvc.cpp.

1357  {
1358  return i_project( nameAndTitle, h, "xy" );
1359 }
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 1362 of file HistogramSvc.cpp.

1362  {
1363  return i_project( nameAndTitle, h, "xz" );
1364 }
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 1270 of file HistogramSvc.cpp.

1270  {
1271  return sliceY( name, h, IAxis::UNDERFLOW_BIN, IAxis::OVERFLOW_BIN );
1272 }
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 1367 of file HistogramSvc.cpp.

1367  {
1368  return i_project( nameAndTitle, h, "yz" );
1369 }
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 847 of file HistogramSvc.cpp.

847  {
848  return registerObject( createPath( parent ), rel, obj );
849 }
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 ( Base pPar,
const std::string rel,
Base obj 
)
override

Definition at line 852 of file HistogramSvc.cpp.

852  {
853  return registerObject( ::detail::cast( pPar ), rel, obj );
854 }
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 267 of file HistogramSvc.cpp.

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

Definition at line 870 of file HistogramSvc.cpp.

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

Definition at line 875 of file HistogramSvc.cpp.

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

Definition at line 880 of file HistogramSvc.cpp.

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

Definition at line 885 of file HistogramSvc.cpp.

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

Definition at line 890 of file HistogramSvc.cpp.

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

Definition at line 895 of file HistogramSvc.cpp.

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

Definition at line 900 of file HistogramSvc.cpp.

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

Definition at line 905 of file HistogramSvc.cpp.

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

Definition at line 910 of file HistogramSvc.cpp.

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

Definition at line 915 of file HistogramSvc.cpp.

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

Definition at line 920 of file HistogramSvc.cpp.

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

Definition at line 927 of file HistogramSvc.cpp.

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

Definition at line 932 of file HistogramSvc.cpp.

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

Definition at line 937 of file HistogramSvc.cpp.

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

Definition at line 942 of file HistogramSvc.cpp.

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

Definition at line 947 of file HistogramSvc.cpp.

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

Definition at line 952 of file HistogramSvc.cpp.

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

Definition at line 957 of file HistogramSvc.cpp.

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

Definition at line 962 of file HistogramSvc.cpp.

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

Definition at line 967 of file HistogramSvc.cpp.

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

Definition at line 971 of file HistogramSvc.cpp.

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

Definition at line 976 of file HistogramSvc.cpp.

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

Definition at line 981 of file HistogramSvc.cpp.

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

Definition at line 986 of file HistogramSvc.cpp.

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

Definition at line 991 of file HistogramSvc.cpp.

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

Definition at line 996 of file HistogramSvc.cpp.

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

Definition at line 1001 of file HistogramSvc.cpp.

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

Definition at line 1006 of file HistogramSvc.cpp.

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

Definition at line 1011 of file HistogramSvc.cpp.

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

Definition at line 1016 of file HistogramSvc.cpp.

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

Definition at line 1021 of file HistogramSvc.cpp.

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

Definition at line 1026 of file HistogramSvc.cpp.

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

Definition at line 1031 of file HistogramSvc.cpp.

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

Definition at line 1036 of file HistogramSvc.cpp.

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

Definition at line 1041 of file HistogramSvc.cpp.

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

Definition at line 1046 of file HistogramSvc.cpp.

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

Definition at line 1051 of file HistogramSvc.cpp.

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

Definition at line 1056 of file HistogramSvc.cpp.

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

Definition at line 1061 of file HistogramSvc.cpp.

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

Definition at line 1066 of file HistogramSvc.cpp.

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

Definition at line 1275 of file HistogramSvc.cpp.

1275  {
1276  return sliceX( name, h, indexY, indexY );
1277 }
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 856 of file HistogramSvc.h.

857  {
858  not_implemented();
859  return nullptr;
860  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::IHistogram2D* HistogramSvc::sliceXZ ( const std::string ,
const AIDA::IHistogram3D &  ,
int  ,
int   
)
inlineoverride

Definition at line 862 of file HistogramSvc.h.

863  {
864  not_implemented();
865  return nullptr;
866  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::IHistogram1D * HistogramSvc::sliceY ( const std::string name,
const AIDA::IHistogram2D &  h,
int  indexX 
)
override

Definition at line 1280 of file HistogramSvc.cpp.

1280  {
1281  return sliceY( name, h, indexX, indexX );
1282 }
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 868 of file HistogramSvc.h.

869  {
870  not_implemented();
871  return nullptr;
872  }
void not_implemented() const
Definition: HistogramSvc.h:54
AIDA::IHistogram1D * HistogramSvc::subtract ( const std::string nameAndTitle,
const AIDA::IHistogram1D &  a,
const AIDA::IHistogram1D &  b 
)
override

Definition at line 1291 of file HistogramSvc.cpp.

1292  {
1293  return Helper::act( createCopy( nameAndTitle, a ), b, &TH1::Add, -1. );
1294 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1315 of file HistogramSvc.cpp.

1316  {
1317  return Helper::act( createCopy( nameAndTitle, a ), b, &TH2D::Add, -1. );
1318 }
static R * act(R *res, const S &b, void(T1::*pmf)(const T2 *, Double_t), Double_t scale)
Definition: HistogramSvc.h:93
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 1339 of file HistogramSvc.cpp.

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

Definition at line 857 of file HistogramSvc.cpp.

857 { return unregisterObject( ::detail::cast( obj ) ); }
StatusCode unregisterObject(Base *obj) override
StatusCode HistogramSvc::unregisterObject ( Base obj,
const std::string objectPath 
)
override

Definition at line 860 of file HistogramSvc.cpp.

860  {
861  return unregisterObject( ::detail::cast( obj ), objectPath );
862 }
StatusCode unregisterObject(Base *obj) override
StatusCode HistogramSvc::unregisterObject ( Base obj,
int  item 
)
override

Definition at line 865 of file HistogramSvc.cpp.

865  {
866  return unregisterObject( ::detail::cast( obj ), item );
867 }
StatusCode unregisterObject(Base *obj) override
void HistogramSvc::update1Ddefs ( )
private

handler to be invoked for updating property m_defs1D

Definition at line 334 of file HistogramSvc.cpp.

334  {
335  // check and remove the leading '/stat/'
336  removeLeading( m_defs1D.value(), "/stat/" );
337 }
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
private
Initial value:
{
this, "Predefined1DHistos", {}, &HistogramSvc::update1Ddefs, "histograms with predefined parameters"}

Definition at line 1069 of file HistogramSvc.h.

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

Definition at line 1068 of file HistogramSvc.h.

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

Definition at line 1073 of file HistogramSvc.h.


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