|
ATLAS Offline Software
|
Go to the documentation of this file.
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) {
30 if (cutMaskValuePair.first == 0) {
return 0; }
31 auto cutMaskAccessor = cutMaskValuePair.second;
35 auto weightAccessor = [&](
size_t i){
return vars.
weight->
get(
i); };
36 const size_t size0 = vars.
var[0]->size();
37 const size_t size1 = vars.
var[1]->size();
38 const size_t size2 = vars.
var[2]->size();
41 sizeWeight > 1 && size0 != sizeWeight)) {
43 log << MSG::ERROR <<
"Weight does not match the size of plotted variable: "
48 if (not vars.
cut)
return HistogramFiller::fill<TProfile2D>(weightAccessor,
detail::noCut, *vars.
var[0], *vars.
var[1], *vars.
var[2]);
49 else return HistogramFiller::fill<TProfile2D>(weightAccessor, cutMaskAccessor, *vars.
var[0], *vars.
var[1], *vars.
var[2]);
53 else return HistogramFiller::fill<TProfile2D>(
detail::noWeight, cutMaskAccessor, *vars.
var[0], *vars.
var[1], *vars.
var[2]);
virtual unsigned fill(const HistogramFiller::VariablesPack &vars) const override
Method that actually fills the ROOT object.
virtual size_t size() const =0
gives size of vector representation
const Monitored::IMonitoredVariable * cut
pointer to cut mask variable, typically absent
Filler for profile 2D histogram.
HistogramFiller2DProfile(const HistogramDef &definition, std::shared_ptr< IHistogramProvider > provider)
the internal class used to keep parsed Filler properties
IMessageSvc * getMessageSvc(bool quiet=false)
Mixin class for rebinning of histogram axis.
const Monitored::IMonitoredVariable * weight
pointer to weight variable, typically absent
helper class to pass variables to fillers
auto noCut
no cut for filling
virtual double get(size_t) const =0
Generic monitoring tool for athena components.
size_t size() const
number of variables in the pack ( not counting the weight and mask )
Base class for all histogram fillers.
auto noWeight
no weight for filling
std::vector< const Monitored::IMonitoredVariable * > var
storage for variables, default size of 4, serves all histograming uses
HistogramFillerRebinableAxis< HistogramFiller2DProfile, Axis::X > HistogramFiller2DProfileRebinable
TProfile2D filler with rebinable x-axis.
std::pair< size_t, std::function< bool(size_t)> > getCutMaskFunc(const Monitored::IMonitoredVariable *mask) const