|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef AthenaMonitoringKernel_HistogramFiller_LumiblockHistogramProvider_h
6 #define AthenaMonitoringKernel_HistogramFiller_LumiblockHistogramProvider_h
35 std::shared_ptr<HistogramFactory> factory,
59 if (
it!=
m_hists.end() &&
it->second.second!=
nullptr) {
60 return it->second.second;
68 const unsigned lumiPage =
lumiBlock/historyDepth;
71 auto minLumiBlock = [=](
unsigned lumiPage) {
return lumiPage * historyDepth; };
72 auto maxLumiBlock = [=](
unsigned lumiPage) {
return (lumiPage+1) * historyDepth - 1; };
77 if (historyDepth > 1) {
82 m_hists.emplace(maxLumiBlock(lumiPage), std::make_pair(std::move(def),
hist));
86 const unsigned maxLB =
it->first;
117 std::map<unsigned, std::pair<HistogramDef, TNamed*>>
m_hists;
const HistogramDef m_histDef
Interface of the source of ROOT objects for HistogramFillers.
std::mutex m_mutex
! mutex for the map
Implementation of IHistogramProvider for lumi block based histograms.
std::map< unsigned, std::pair< HistogramDef, TNamed * > > m_hists
Map storing upper end of lumi page (or lumiblock if depth==1) with the corresponding histogram defini...
Represents error occurred during accessing histograms objects.
the internal class used to keep parsed Filler properties
static const unsigned s_deregDelay
Number of lumiblocks before histogram gets deregistered/deleted.
TNamed * histogram() override
Getter of ROOT object.
std::string path
booking path
Generic monitoring tool for athena components.
std::string alias
unique alias for THistSvc
std::string to_string(const DetectorType &type)
GenericMonitoringTool *const m_gmTool
LumiblockHistogramProvider(GenericMonitoringTool *const gmTool, std::shared_ptr< HistogramFactory > factory, const HistogramDef &histDef)
Constructor.
std::shared_ptr< HistogramFactory > m_factory
int kLBNHistoryDepth
length of lb history