ATLAS Offline Software
Loading...
Searching...
No Matches
HistogramDefinitionSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 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
20class IReadHistoDef;
21class ISvcLocator;
22class StatusCode;
23class InterfaceID;
24
25
26class HistogramDefinitionSvc : public extends<AthService, IHistogramDefinitionSvc> {
27public:
28 HistogramDefinitionSvc(const std::string &name, ISvcLocator * svc);
30 //@name Service methods, reimplemented
32 virtual StatusCode initialize();
33 virtual StatusCode finalize();
35 SingleHistogramDefinition definition(const std::string &name, const std::string & dirName="") const final;
36 std::string histoType(const std::string &name, const std::string & dirName="") const final;
37 std::string title(const std::string &name, const std::string &dirName="") const final;
38 unsigned int nBinsX(const std::string &name, const std::string &dirName="") const final;
39 unsigned int nBinsY(const std::string &name, const std::string &dirName="") const final;
40 unsigned int nBinsZ(const std::string &name, const std::string &dirName="") const final;
41 IHistogramDefinitionSvc::axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const final;
42 IHistogramDefinitionSvc::axesLimits_t yLimits(const std::string &name, const std::string &dirName="") const final;
43 IHistogramDefinitionSvc::axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const final;
44 std::string xTitle(const std::string &name, const std::string &dirName="") const final;
45 std::string yTitle(const std::string &name, const std::string &dirName="") const final;
46 std::string zTitle(const std::string &name, const std::string &dirName="") const final;
47
49 StringProperty m_source{this, "DefinitionSource"};
50 StringProperty m_formatString{this, "DefinitionFormat", "text/plain"};
52 std::map<std::string, SingleHistogramDefinition> m_histoDefMap;
53 std::unique_ptr<IReadHistoDef> m_reader;
54 bool sourceExists();
55 bool formatOk();
56
57};
58#endif /* defined(HistogramDefinitionSvc_h) */
IHistogramDefinitionSvc::axesLimits_t yLimits(const std::string &name, const std::string &dirName="") const final
unsigned int nBinsZ(const std::string &name, const std::string &dirName="") const final
unsigned int nBinsX(const std::string &name, const std::string &dirName="") const final
SingleHistogramDefinition definition(const std::string &name, const std::string &dirName="") const final
std::string histoType(const std::string &name, const std::string &dirName="") const final
HistogramDefinitionSvc(const std::string &name, ISvcLocator *svc)
std::unique_ptr< IReadHistoDef > m_reader
std::string xTitle(const std::string &name, const std::string &dirName="") const final
std::string yTitle(const std::string &name, const std::string &dirName="") const final
virtual StatusCode initialize()
IHistogramDefinitionSvc::Formats m_format
virtual ~HistogramDefinitionSvc()
std::string title(const std::string &name, const std::string &dirName="") const final
unsigned int nBinsY(const std::string &name, const std::string &dirName="") const final
std::map< std::string, SingleHistogramDefinition > m_histoDefMap
IHistogramDefinitionSvc::axesLimits_t xLimits(const std::string &name, const std::string &dirName="") const final
std::string zTitle(const std::string &name, const std::string &dirName="") const final
IHistogramDefinitionSvc::axesLimits_t zLimits(const std::string &name, const std::string &dirName="") const final
Interface class to get the histogram definition for a named histogram in a given directory.
Formats
Format of the data source holding the histogram definition.
Almost-a-struct for holding the single histogram definition.
STL namespace.
#define private