ATLAS Offline Software
HistogramDefinitionSvc.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 // HistogramDefinitionSvc.h
7 //
8 // Created by sroe on 07/07/2015.
9 //
10 
11 #ifndef HistogramDefinitionSvc_h
12 #define HistogramDefinitionSvc_h
13 
16 #include <map>
18 #include <memory>
19 template <class TYPE> class SvcFactory;
20 
21 class IReadHistoDef;
22 class ISvcLocator;
23 class StatusCode;
24 class InterfaceID;
25 
26 
29 public:
30  HistogramDefinitionSvc(const std::string &name, ISvcLocator * svc);
32  //@name Service methods, reimplemented
34  virtual StatusCode initialize();
35  virtual StatusCode finalize();
36  //interfaceID() implementation is in the baseclass
37  virtual StatusCode queryInterface(const InterfaceID & riid, void** ppvInterface );
39  SingleHistogramDefinition definition(const std::string &name, const std::string & dirName="") const final;
40  std::string histoType(const std::string &name, const std::string & dirName="") const final;
41  std::string title(const std::string &name, const std::string &dirName="") const final;
42  unsigned int nBinsX(const std::string &name, const std::string &dirName="") const final;
43  unsigned int nBinsY(const std::string &name, const std::string &dirName="") const final;
44  unsigned int nBinsZ(const std::string &name, const std::string &dirName="") const final;
45  IHistogramDefinitionSvc::axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const final;
46  IHistogramDefinitionSvc::axesLimits_t yLimits(const std::string &name, const std::string &dirName="") const final;
47  IHistogramDefinitionSvc::axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const final;
48  std::string xTitle(const std::string &name, const std::string &dirName="") const final;
49  std::string yTitle(const std::string &name, const std::string &dirName="") const final;
50  std::string zTitle(const std::string &name, const std::string &dirName="") const final;
51 
52 private:
53  StringProperty m_source;
54  StringProperty m_formatString;
56  std::map<std::string, SingleHistogramDefinition> m_histoDefMap;
57  std::unique_ptr<IReadHistoDef> m_reader;
58  bool sourceExists();
59  bool formatOk();
60 
61 };
62 #endif /* defined(HistogramDefinitionSvc_h) */
HistogramDefinitionSvc::title
std::string title(const std::string &name, const std::string &dirName="") const final
Return Histogram title by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:108
IHistogramDefinitionSvc::axesLimits_t
std::pair< float, float > axesLimits_t
typedef for axes limits, (lower bound, upper bound)
Definition: IHistogramDefinitionSvc.h:29
SingleHistogramDefinition.h
HistogramDefinitionSvc::xLimits
IHistogramDefinitionSvc::axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const final
Return x axes (lo,hi) by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:152
HistogramDefinitionSvc::formatOk
bool formatOk()
Definition: HistogramDefinitionSvc.cxx:221
SvcFactory
Definition: AthCnvSvc.h:28
IReadHistoDef
Definition: IReadHistoDef.h:16
HistogramDefinitionSvc::zTitle
std::string zTitle(const std::string &name, const std::string &dirName="") const final
Return z-axis title by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:206
HistogramDefinitionSvc::finalize
virtual StatusCode finalize()
Definition: HistogramDefinitionSvc.cxx:80
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
HistogramDefinitionSvc::m_histoDefMap
std::map< std::string, SingleHistogramDefinition > m_histoDefMap
Definition: HistogramDefinitionSvc.h:56
HistogramDefinitionSvc::yTitle
std::string yTitle(const std::string &name, const std::string &dirName="") const final
Return y-axis title by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:196
HistogramDefinitionSvc::HistogramDefinitionSvc
HistogramDefinitionSvc(const std::string &name, ISvcLocator *svc)
Definition: HistogramDefinitionSvc.cxx:25
HistogramDefinitionSvc::initialize
virtual StatusCode initialize()
Definition: HistogramDefinitionSvc.cxx:34
HistogramDefinitionSvc::nBinsY
unsigned int nBinsY(const std::string &name, const std::string &dirName="") const final
Return number of y bins by histogram identifier (and directory name, if supplied); default returns 0 ...
Definition: HistogramDefinitionSvc.cxx:130
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HistogramDefinitionSvc::zLimits
IHistogramDefinitionSvc::axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const final
Return z axes (lo,hi) by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:174
AthService
Definition: AthService.h:32
HistogramDefinitionSvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
Definition: HistogramDefinitionSvc.cxx:226
IHistogramDefinitionSvc::Formats
Formats
Format of the data source holding the histogram definition.
Definition: IHistogramDefinitionSvc.h:25
HistogramDefinitionSvc::m_format
IHistogramDefinitionSvc::Formats m_format
Definition: HistogramDefinitionSvc.h:55
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
HistogramDefinitionSvc
Definition: HistogramDefinitionSvc.h:27
SingleHistogramDefinition
Almost-a-struct for holding the single histogram definition.
Definition: SingleHistogramDefinition.h:17
HistogramDefinitionSvc::nBinsZ
unsigned int nBinsZ(const std::string &name, const std::string &dirName="") const final
Return number of z bins by histogram identifier (and directory name, if supplied); default returns 0 ...
Definition: HistogramDefinitionSvc.cxx:141
HistogramDefinitionSvc::nBinsX
unsigned int nBinsX(const std::string &name, const std::string &dirName="") const final
Return number of x bins by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:119
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
HistogramDefinitionSvc::~HistogramDefinitionSvc
virtual ~HistogramDefinitionSvc()
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
HistogramDefinitionSvc::m_formatString
StringProperty m_formatString
Definition: HistogramDefinitionSvc.h:54
HistogramDefinitionSvc::sourceExists
bool sourceExists()
Definition: HistogramDefinitionSvc.cxx:216
IHistogramDefinitionSvc.h
HistogramDefinitionSvc::histoType
std::string histoType(const std::string &name, const std::string &dirName="") const final
Return Histogram type (TH1, TH2 etc) by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:97
HistogramDefinitionSvc::definition
SingleHistogramDefinition definition(const std::string &name, const std::string &dirName="") const final
Return a histogram definition, retrieved by histogram identifier (and directory name,...
Definition: HistogramDefinitionSvc.cxx:86
AthService.h
HistogramDefinitionSvc::m_source
StringProperty m_source
Definition: HistogramDefinitionSvc.h:53
HistogramDefinitionSvc::xTitle
std::string xTitle(const std::string &name, const std::string &dirName="") const final
Return x-axis title by histogram identifier (and directory name, if supplied)
Definition: HistogramDefinitionSvc.cxx:185
HistogramDefinitionSvc::yLimits
IHistogramDefinitionSvc::axesLimits_t yLimits(const std::string &name, const std::string &dirName="") const final
Return y axes (lo,hi) by histogram identifier (and directory name, if supplied). Default returns (nan...
Definition: HistogramDefinitionSvc.cxx:163
IHistogramDefinitionSvc
Interface class to get the histogram definition for a named histogram in a given directory.
Definition: IHistogramDefinitionSvc.h:20
HistogramDefinitionSvc::m_reader
std::unique_ptr< IReadHistoDef > m_reader
Definition: HistogramDefinitionSvc.h:57