5 #ifndef AthenaMonitoringKernel_HistogramFiller_HistogramFiller2DProfile_h
6 #define AthenaMonitoringKernel_HistogramFiller_HistogramFiller2DProfile_h
8 #include "TProfile2D.h"
9 #include "boost/range/combine.hpp"
24 if ( vars.
size() != 3) {
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: "
52 if (not vars.
cut)
return HistogramFiller::fill<TProfile2D>(weightAccessor,
detail::noCut, *vars[0], *vars[1], *vars[2]);
53 else return HistogramFiller::fill<TProfile2D>(weightAccessor, cutMaskAccessor, *vars[0], *vars[1], *vars[2]);
57 else return HistogramFiller::fill<TProfile2D>(
detail::noWeight, cutMaskAccessor, *vars[0], *vars[1], *vars[2]);