ATLAS Offline Software
IHistogramDefinitionSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //
6 // IHistogramDefinitionSvc.h
7 //
8 // Created by sroe on 07/07/2015.
9 //
10 
11 #ifndef IHistogramDefinitionSvc_h
12 #define IHistogramDefinitionSvc_h
13 #include <limits>
14 #include <string>
15 #include <utility>
16 #include "GaudiKernel/IInterface.h"
17 
20 class IHistogramDefinitionSvc:virtual public IInterface{
21 public:
23  static const InterfaceID & interfaceID();
29  typedef std::pair<float, float> axesLimits_t ;
31  virtual SingleHistogramDefinition definition(const std::string &name, const std::string & dirName="") const =0;
33  virtual std::string histoType(const std::string &name, const std::string &dirName="") const = 0;
35  virtual std::string title(const std::string &name, const std::string &dirName="") const =0;
37  virtual unsigned int nBinsX(const std::string &name, const std::string &dirName="") const = 0;
39  virtual unsigned int nBinsY(const std::string &/*name*/, const std::string &/*dirName*/="") const { return 0; }
41  virtual unsigned int nBinsZ(const std::string &/*name*/, const std::string &/*dirName*/="") const { return 0; }
43  virtual axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const = 0;
45  virtual axesLimits_t yLimits(const std::string & /*name*/, const std::string &/*dirName*/="") const {return std::make_pair(std::numeric_limits<float>::quiet_NaN(),std::numeric_limits<float>::quiet_NaN());}
47  virtual axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const = 0;
49  virtual std::string xTitle(const std::string &name, const std::string &dirName="") const = 0;
51  virtual std::string yTitle(const std::string &name, const std::string &dirName="") const = 0;
53  virtual std::string zTitle(const std::string &name, const std::string &dirName="") const = 0;
54  //virtual bool initialise()=0;
55 
56 };
57 inline const InterfaceID & IHistogramDefinitionSvc::interfaceID(){
58  static const InterfaceID IID("IHistogramDefinitionSvc",1,0);
59  return IID;
60 }
61 
62 #endif
IHistogramDefinitionSvc::axesLimits_t
std::pair< float, float > axesLimits_t
typedef for axes limits, (lower bound, upper bound)
Definition: IHistogramDefinitionSvc.h:29
IHistogramDefinitionSvc::~IHistogramDefinitionSvc
virtual ~IHistogramDefinitionSvc()
Virtual destructor does nothing.
Definition: IHistogramDefinitionSvc.h:27
IHistogramDefinitionSvc::yTitle
virtual std::string yTitle(const std::string &name, const std::string &dirName="") const =0
Return y-axis title by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::NFORMATS
@ NFORMATS
Definition: IHistogramDefinitionSvc.h:25
IHistogramDefinitionSvc::TEXT_XML
@ TEXT_XML
Definition: IHistogramDefinitionSvc.h:25
IHistogramDefinitionSvc::nBinsZ
virtual unsigned int nBinsZ(const std::string &, const std::string &="") const
Return number of z bins by histogram identifier (and directory name, if supplied); default returns 0 ...
Definition: IHistogramDefinitionSvc.h:41
IHistogramDefinitionSvc::histoType
virtual std::string histoType(const std::string &name, const std::string &dirName="") const =0
Return Histogram type (TH1, TH2 etc) by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::title
virtual std::string title(const std::string &name, const std::string &dirName="") const =0
Return Histogram title by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::xTitle
virtual std::string xTitle(const std::string &name, const std::string &dirName="") const =0
Return x-axis title by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::zLimits
virtual axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const =0
Return z axes (lo,hi) by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::xLimits
virtual axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const =0
Return x axes (lo,hi) by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::Formats
Formats
Format of the data source holding the histogram definition.
Definition: IHistogramDefinitionSvc.h:25
IHistogramDefinitionSvc::definition
virtual SingleHistogramDefinition definition(const std::string &name, const std::string &dirName="") const =0
Return a histogram definition, retrieved by histogram identifier (and directory name,...
IHistogramDefinitionSvc::nBinsX
virtual unsigned int nBinsX(const std::string &name, const std::string &dirName="") const =0
Return number of x bins by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::zTitle
virtual std::string zTitle(const std::string &name, const std::string &dirName="") const =0
Return z-axis title by histogram identifier (and directory name, if supplied)
IHistogramDefinitionSvc::yLimits
virtual axesLimits_t yLimits(const std::string &, const std::string &="") const
Return y axes (lo,hi) by histogram identifier (and directory name, if supplied). Default returns (nan...
Definition: IHistogramDefinitionSvc.h:45
IHistogramDefinitionSvc::TEXT_PLAIN
@ TEXT_PLAIN
Definition: IHistogramDefinitionSvc.h:25
SingleHistogramDefinition
Almost-a-struct for holding the single histogram definition.
Definition: SingleHistogramDefinition.h:17
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
IHistogramDefinitionSvc::UNKNOWN
@ UNKNOWN
Definition: IHistogramDefinitionSvc.h:25
IHistogramDefinitionSvc::interfaceID
static const InterfaceID & interfaceID()
reimplemented from IInterface
Definition: IHistogramDefinitionSvc.h:57
IHistogramDefinitionSvc::nBinsY
virtual unsigned int nBinsY(const std::string &, const std::string &="") const
Return number of y bins by histogram identifier (and directory name, if supplied); default returns 0 ...
Definition: IHistogramDefinitionSvc.h:39
IHistogramDefinitionSvc
Interface class to get the histogram definition for a named histogram in a given directory.
Definition: IHistogramDefinitionSvc.h:20