1 #ifndef JetMETCorrections_FFTJetObjects_AbsFFTJetScaleCalculator_h
2 #define JetMETCorrections_FFTJetObjects_AbsFFTJetScaleCalculator_h
9 template <
class Jet,
class Adjustable>
21 inline double scale(
const Jet&
jet,
const Adjustable& current)
const {
22 const unsigned dim =
buffer_.size();
23 double*
buf = dim ? &
buffer_[0] :
static_cast<double*
>(
nullptr);
24 this->
map(jet, current, buf, dim);
29 virtual void map(
const Jet&
jet,
const Adjustable& current,
double*
buf,
unsigned dim)
const = 0;
31 std::shared_ptr<npstat::AbsMultivariateFunctor>
functor;
35 #endif // JetMETCorrections_FFTJetObjects_AbsFFTJetScaleCalculator_h
Adjustable adjustable_type
std::shared_ptr< npstat::AbsMultivariateFunctor > functor
double scale(const Jet &jet, const Adjustable ¤t) const
std::vector< double > buffer_
virtual ~AbsFFTJetScaleCalculator()
virtual void map(const Jet &jet, const Adjustable ¤t, double *buf, unsigned dim) const =0
AbsFFTJetScaleCalculator(std::shared_ptr< npstat::AbsMultivariateFunctor > f)
AbsFFTJetScaleCalculator()=delete
Interface definition for multidimensional functors.