ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaMonitoringKernel
src
HistogramFiller
HistogramFillerFactory.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#include "
StaticHistogramProvider.h
"
7
#include "
LumiblockHistogramProvider.h
"
8
#include "
OfflineHistogramProvider.h
"
9
#include "
LiveHistogramProvider.h
"
10
11
#include "
HistogramFiller1D.h
"
12
#include "
HistogramFillerEfficiency.h
"
13
#include "
CumulativeHistogramFiller1D.h
"
14
#include "
HistogramFillerRebinable.h
"
15
#include "
VecHistogramFiller1D.h
"
16
#include "
HistogramFillerProfile.h
"
17
#include "
HistogramFiller2D.h
"
18
#include "
HistogramFiller2DProfile.h
"
19
#include "
HistogramFillerTree.h
"
20
21
#include "
HistogramFillerFactory.h
"
22
23
using namespace
Monitored
;
24
25
HistogramFiller
*
HistogramFillerFactory::create
(
const
HistogramDef
& def) {
26
std::shared_ptr<IHistogramProvider> histogramProvider =
createHistogramProvider
(def);
27
28
if
(def.
type
.starts_with(
"TH1"
)) {
29
if
(def.
kCumulative
) {
30
return
new
CumulativeHistogramFiller1D
(def, std::move(histogramProvider));
31
}
else
if
(def.
kAddBinsDynamically
|| def.
kRebinAxes
) {
32
return
new
HistogramFillerRebinable1D
(def, std::move(histogramProvider));
33
}
else
if
(def.
kVec
|| def.
kVecUO
) {
34
return
new
VecHistogramFiller1D
(def, std::move(histogramProvider));
35
}
else
{
36
return
new
HistogramFiller1D
(def, std::move(histogramProvider));
37
}
38
}
else
if
(def.
type
.starts_with(
"TH2"
)) {
39
if
(def.
kAddBinsDynamically
|| def.
kRebinAxes
) {
40
return
new
HistogramFillerRebinable2D
(def, std::move(histogramProvider));
41
}
else
{
42
return
new
HistogramFiller2D
(def, std::move(histogramProvider));
43
}
44
}
else
if
(def.
type
==
"TProfile"
) {
45
if
(def.
kAddBinsDynamically
|| def.
kRebinAxes
) {
46
return
new
HistogramFillerProfileRebinable
(def, std::move(histogramProvider));
47
}
else
{
48
return
new
HistogramFillerProfile
(def, std::move(histogramProvider));
49
}
50
}
else
if
(def.
type
==
"TProfile2D"
) {
51
if
(def.
kAddBinsDynamically
|| def.
kRebinAxes
) {
52
return
new
HistogramFiller2DProfileRebinable
(def, std::move(histogramProvider));
53
}
else
{
54
return
new
HistogramFiller2DProfile
(def, std::move(histogramProvider));
55
}
56
}
else
if
(def.
type
==
"TEfficiency"
) {
57
return
new
HistogramFillerEfficiency
(def, std::move(histogramProvider));
58
}
else
if
(def.
type
==
"TTree"
) {
59
return
new
HistogramFillerTree
(def, std::move(histogramProvider));
60
}
61
62
return
nullptr
;
63
}
64
65
std::shared_ptr<IHistogramProvider>
HistogramFillerFactory::createHistogramProvider
(
const
HistogramDef
& def) {
66
std::shared_ptr<IHistogramProvider> result;
67
68
if
(def.
runmode
==
HistogramDef::RunMode::Offline
) {
69
result.reset(
new
OfflineHistogramProvider
(
m_gmTool
,
m_factory
, def));
70
}
else
if
(def.
kLBNHistoryDepth
) {
71
result.reset(
new
LumiblockHistogramProvider
(
m_gmTool
,
m_factory
, def));
72
}
else
if
(def.
kLive
) {
73
result.reset(
new
LiveHistogramProvider
(
m_gmTool
,
m_factory
, def));
74
}
else
{
75
result.reset(
new
StaticHistogramProvider
(
m_factory
, def));
76
}
77
78
return
result;
79
}
CumulativeHistogramFiller1D.h
HistogramFiller1D.h
HistogramFiller2DProfile.h
HistogramFiller2D.h
HistogramFillerEfficiency.h
HistogramFillerFactory.h
HistogramFillerProfile.h
HistogramFillerRebinable.h
HistogramFillerTree.h
LiveHistogramProvider.h
LumiblockHistogramProvider.h
OfflineHistogramProvider.h
StaticHistogramProvider.h
VecHistogramFiller1D.h
Monitored::CumulativeHistogramFiller1D
Filler for 1D histograms filled in cummulative mode.
Definition
CumulativeHistogramFiller1D.h:14
Monitored::HistogramFiller1D
Filler for plain 1D histograms.
Definition
HistogramFiller1D.h:22
Monitored::HistogramFiller2DProfile
Filler for profile 2D histogram.
Definition
HistogramFiller2DProfile.h:16
Monitored::HistogramFillerEfficiency
Filler for TEfficiency graphs.
Definition
HistogramFillerEfficiency.h:17
Monitored::HistogramFillerFactory::createHistogramProvider
std::shared_ptr< IHistogramProvider > createHistogramProvider(const HistogramDef &def)
Definition
HistogramFillerFactory.cxx:65
Monitored::HistogramFillerFactory::m_gmTool
GenericMonitoringTool * m_gmTool
Definition
HistogramFillerFactory.h:51
Monitored::HistogramFillerFactory::m_factory
std::shared_ptr< HistogramFactory > m_factory
Definition
HistogramFillerFactory.h:52
Monitored::HistogramFillerFactory::create
HistogramFiller * create(const HistogramDef &def)
Creates HistogramFiller instance for given definition.
Definition
HistogramFillerFactory.cxx:25
Monitored::HistogramFillerTree
Filler for TTrees.
Definition
HistogramFillerTree.h:22
Monitored::HistogramFiller
Base class for all histogram fillers.
Definition
HistogramFiller.h:44
Monitored::LiveHistogramProvider
Provides latest-N-lumiblock histograms to be filled.
Definition
LiveHistogramProvider.h:24
Monitored::LumiblockHistogramProvider
Implementation of IHistogramProvider for lumi block based histograms.
Definition
LumiblockHistogramProvider.h:25
Monitored::OfflineHistogramProvider
Implementation of IHistogramProvider for offline histograms.
Definition
OfflineHistogramProvider.h:29
Monitored::StaticHistogramProvider
Default implementation of IHistogramProvider interface.
Definition
StaticHistogramProvider.h:23
Monitored::VecHistogramFiller1D
Definition
VecHistogramFiller1D.h:11
Monitored
Generic monitoring tool for athena components.
Definition
GenericMonitoringTool.h:28
Monitored::HistogramFillerRebinable2D
HistogramFillerRebinableAxis< HistogramFillerRebinable2DX, Axis::Y > HistogramFillerRebinable2D
Rebinable 2D histogram (both axes).
Definition
HistogramFillerRebinable.h:87
Monitored::HistogramFiller2DProfileRebinable
HistogramFillerRebinableAxis< HistogramFiller2DProfile, Axis::X > HistogramFiller2DProfileRebinable
TProfile2D filler with rebinable x-axis.
Definition
HistogramFiller2DProfile.h:61
Monitored::HistogramFillerRebinable1D
HistogramFillerRebinableAxis< HistogramFiller1D, Axis::X > HistogramFillerRebinable1D
Rebinable 1D histogram.
Definition
HistogramFillerRebinable.h:81
Monitored::HistogramFillerProfile
HistogramFiller2DGeneric< TProfile > HistogramFillerProfile
TProfile filler.
Definition
HistogramFillerProfile.h:17
Monitored::HistogramFillerProfileRebinable
HistogramFillerRebinableAxis< HistogramFillerProfile, Axis::X > HistogramFillerProfileRebinable
TProfile filler with rebinable x-axis.
Definition
HistogramFillerProfile.h:19
Monitored::HistogramFiller2D
HistogramFiller2DGeneric< TH2 > HistogramFiller2D
Definition
HistogramFiller2D.h:81
Monitored::HistogramDef
the internal class used to keep parsed Filler properties
Definition
HistogramDef.h:15
Monitored::HistogramDef::RunMode::Offline
@ Offline
monitoring data offline
Definition
HistogramDef.h:29
Monitored::HistogramDef::kLBNHistoryDepth
int kLBNHistoryDepth
length of lb history
Definition
HistogramDef.h:44
Monitored::HistogramDef::type
std::string type
class name
Definition
HistogramDef.h:18
Monitored::HistogramDef::kVec
bool kVec
add content to each bin from each element of a vector
Definition
HistogramDef.h:48
Monitored::HistogramDef::kCumulative
bool kCumulative
fill bin of monitored object's value, and every bin below it
Definition
HistogramDef.h:50
Monitored::HistogramDef::kRebinAxes
bool kRebinAxes
increase the axis range without adding new bins
Definition
HistogramDef.h:46
Monitored::HistogramDef::kLive
int kLive
fill only the last N lumiblocks in y_vs_lb plots
Definition
HistogramDef.h:51
Monitored::HistogramDef::kAddBinsDynamically
bool kAddBinsDynamically
add new bins outside the existing range
Definition
HistogramDef.h:45
Monitored::HistogramDef::runmode
RunMode runmode
online or offline
Definition
HistogramDef.h:40
Monitored::HistogramDef::kVecUO
bool kVecUO
add content to each bin from vector, including overflow/underflow
Definition
HistogramDef.h:49
Generated on
for ATLAS Offline Software by
1.17.0