5#ifndef AthenaMonitoringKernel_HistogramFiller_HistogramFiller2DProfile_h
6#define AthenaMonitoringKernel_HistogramFiller_HistogramFiller2DProfile_h
9#include "boost/range/combine.hpp"
24 if ( vars.
size() != 3) {
29 const size_t maskSize = vars.
cut->
size();
31 if (maskSize == 0 || (maskSize == 1 && !vars.
cut->
get(0))) {
return 0; }
35 auto cutMaskAccessor = [&](
size_t i) {
return static_cast<bool>(vars.
cut->
get(i)); };
39 auto weightAccessor = [&](
size_t i){
return vars.
weight->
get(i); };
40 const size_t size0 = vars[0]->
size();
41 const size_t size1 = vars[1]->
size();
42 const size_t size2 = vars[2]->
size();
45 sizeWeight > 1 && size0 != sizeWeight)) {
47 log << MSG::ERROR <<
"Weight does not match the size of plotted variable: "
virtual unsigned fill(const HistogramFiller::VariablesPack &vars) const override
Method that actually fills the ROOT object.
HistogramFiller2DProfile(const HistogramDef &definition, std::shared_ptr< IHistogramProvider > provider)
Mixin class for rebinning of histogram axis.
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
IMessageSvc * getMessageSvc(bool quiet=false)
auto noWeight
no weight for filling
auto noCut
no cut for filling
Generic monitoring tool for athena components.
HistogramFillerRebinableAxis< HistogramFiller2DProfile, Axis::X > HistogramFiller2DProfileRebinable
TProfile2D filler with rebinable x-axis.
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