5#ifndef AthenaMonitoringKernel_HistogramFiller_HistogramFiller1D_h
6#define AthenaMonitoringKernel_HistogramFiller_HistogramFiller1D_h
15#include "GaudiKernel/MsgStream.h"
31 const size_t maskSize = vars.
cut->
size();
33 if (maskSize == 0 || (maskSize == 1 && !vars.
cut->
get(0))) {
return 0; }
34 if (
ATH_UNLIKELY(maskSize > 1 && maskSize != vars[0]->size())) {
36 log << MSG::ERROR <<
"CutMask does not match the size of plotted variable: "
37 << maskSize <<
" " << vars[0]->
size() <<
endmsg;
42 auto cutMaskAccessor = [&](
size_t i) {
return static_cast<bool>(vars.
cut->
get(i)); };
45 auto weightAccessor = [&](
size_t i){
return vars.
weight->
get(i); };
49 log << MSG::ERROR <<
"Weight does not match the size of plotted variable: "
HistogramFiller1D(const HistogramDef &definition, std::shared_ptr< IHistogramProvider > provider)
virtual unsigned fill(const HistogramFiller::VariablesPack &vars) const override
Method that actually fills the ROOT object.
HistogramFiller(const HistogramDef &histDef, std::shared_ptr< IHistogramProvider > histogramProvider)
Default constructor.
virtual unsigned fill(const VariablesPack &) const =0
Method that actually fills the ROOT object.
virtual double get(size_t) const =0
virtual size_t size() const =0
gives size of vector representation
singleton-like access to IMessageSvc via open function and helper
IMessageSvc * getMessageSvc(bool quiet=false)
auto noWeight
no weight for filling
auto noCut
no cut for filling
Generic monitoring tool for athena components.
the internal class used to keep parsed Filler properties
helper class to pass variables to fillers
const Monitored::IMonitoredVariable * cut
pointer to cut mask variable, typically absent
size_t size() const
number of variables in the pack ( not counting the weight and mask )
const Monitored::IMonitoredVariable * weight
pointer to weight variable, typically absent