ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaMonitoringKernel
src
HistogramFiller
CumulativeHistogramFiller1D.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef AthenaMonitoringKernel_HistogramFiller_CumulativeHistogramFiller1D_h
6
#define AthenaMonitoringKernel_HistogramFiller_CumulativeHistogramFiller1D_h
7
8
#include "
HistogramFiller1D.h
"
9
10
namespace
Monitored
{
14
class
CumulativeHistogramFiller1D
:
public
HistogramFiller1D
{
15
public
:
16
CumulativeHistogramFiller1D
(
const
HistogramDef
& definition, std::shared_ptr<IHistogramProvider> provider)
17
:
HistogramFiller1D
(definition,
std
::move(provider)) {}
18
19
20
21
virtual
unsigned
fill
(
const
HistogramFiller::VariablesPack
& vars )
const override
{
22
if
( vars.
size
() != 1) {
23
return
0;
24
}
25
26
const
size_t
varVecSize = vars[0]->
size
();
27
28
if
(vars.
cut
) {
29
const
size_t
maskSize = vars.
cut
->
size
();
30
// Abort if no cut entries or first (and only) entry is false
31
if
(maskSize == 0 || (maskSize == 1 && !vars.
cut
->
get
(0))) {
return
0; }
32
if
(
ATH_UNLIKELY
(maskSize > 1 && maskSize != varVecSize)) {
33
MsgStream log(
Athena::getMessageSvc
(),
"CumulativeHistogramFiller1D"
);
34
log << MSG::ERROR <<
"CutMask does not match the size of plotted variable: "
35
<< maskSize <<
" "
<< varVecSize <<
endmsg
;
36
}
37
}
38
39
unsigned
i{0};
40
auto
histogram
= this->
histogram<TH1>
();
41
for
(; i < varVecSize; i++) {
42
if
(vars.
cut
&& !vars.
cut
->
get
(i)) {
continue
; }
43
const
unsigned
bin
=
histogram
->FindBin(vars[0]->
get
(i));
44
45
for
(
unsigned
j =
bin
; j > 0; --j) {
46
histogram
->AddBinContent(j);
47
}
48
}
49
50
return
i;
51
}
52
};
53
}
54
55
#endif
/* AthenaMonitoringKernel_HistogramFiller_CumulativeHistogramFiller1D_h */
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
ATH_UNLIKELY
#define ATH_UNLIKELY(x)
Definition
AthUnlikelyMacros.h:17
HistogramFiller1D.h
Monitored::CumulativeHistogramFiller1D::CumulativeHistogramFiller1D
CumulativeHistogramFiller1D(const HistogramDef &definition, std::shared_ptr< IHistogramProvider > provider)
Definition
CumulativeHistogramFiller1D.h:16
Monitored::CumulativeHistogramFiller1D::fill
virtual unsigned fill(const HistogramFiller::VariablesPack &vars) const override
Method that actually fills the ROOT object.
Definition
CumulativeHistogramFiller1D.h:21
Monitored::HistogramFiller1D::HistogramFiller1D
HistogramFiller1D(const HistogramDef &definition, std::shared_ptr< IHistogramProvider > provider)
Definition
HistogramFiller1D.h:24
Monitored::HistogramFiller::histogram
H * histogram() const
Definition
HistogramFiller.h:153
Monitored::IMonitoredVariable::get
virtual double get(size_t) const =0
Monitored::IMonitoredVariable::size
virtual size_t size() const =0
gives size of vector representation
bin
Definition
BinsDiffFromStripMedian.h:43
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition
hcg.cxx:132
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition
getMessageSvc.cxx:20
Monitored
Generic monitoring tool for athena components.
Definition
GenericMonitoringTool.h:28
std
STL namespace.
Monitored::HistogramDef
the internal class used to keep parsed Filler properties
Definition
HistogramDef.h:15
Monitored::HistogramFiller::VariablesPack
helper class to pass variables to fillers
Definition
HistogramFiller.h:72
Monitored::HistogramFiller::VariablesPack::cut
const Monitored::IMonitoredVariable * cut
pointer to cut mask variable, typically absent
Definition
HistogramFiller.h:113
Monitored::HistogramFiller::VariablesPack::size
size_t size() const
number of variables in the pack ( not counting the weight and mask )
Definition
HistogramFiller.h:87
Generated on
for ATLAS Offline Software by
1.17.0