1 #ifndef RecoJets_FFTJetAlgorithms_ScaleCalculators_h
2 #define RecoJets_FFTJetAlgorithms_ScaleCalculators_h
7 #include "fftjet/SimpleFunctors.hh"
8 #include "fftjet/RecombinedJet.hh"
9 #include "fftjet/LinearInterpolator2d.hh"
10 #include "fftjet/JetMagnitudeMapper2d.hh"
16 template <
typename Arg1>
20 inline double operator()(
const Arg1&)
const override {
return c_; }
56 const fftjet::Functor1<double, T>*
func_;
65 const fftjet::Functor1<double, T>*
f2,
66 const bool takeOwnership =
false)
80 const fftjet::Functor1<double, double>*
f1_;
81 const fftjet::Functor1<double, T>*
f2_;
90 const fftjet::Functor1<double, T>*
f2,
91 const bool takeOwnership =
false)
105 const fftjet::Functor1<double, T>*
f1_;
106 const fftjet::Functor1<double, T>*
f2_;
126 const fftjet::Functor1<double, double>*
f1_;
133 inline PeakEtaDependent(
const fftjet::Functor1<double, double>*
f1,
const bool takeOwnership =
false)
141 inline double operator()(
const fftjet::Peak&
r)
const override {
return (*
f1_)(
r.eta()); }
145 const fftjet::Functor1<double, double>*
f1_;
152 const bool takeOwnership,
153 const fftjet::JetMagnitudeMapper2d<fftjet::Peak>* jmmp,
166 const double scale =
r.scale();
167 const double magnitude =
r.magnitude();
169 const double partonpt = (*jmmp_)(
pt,
r);
175 const fftjet::LinearInterpolator2d*
f1_;
177 const fftjet::JetMagnitudeMapper2d<fftjet::Peak>*
jmmp_;
183 class JetEtaDependent :
public fftjet::Functor1<double, fftjet::RecombinedJet<VectorLike> > {
185 inline JetEtaDependent(
const fftjet::Functor1<double, double>*
f1,
const bool takeOwnership =
false)
193 inline double operator()(
const fftjet::RecombinedJet<VectorLike>&
r)
const override {
194 return (*
f1_)(
r.vec().eta());
199 const fftjet::Functor1<double, double>*
f1_;
231 #endif // RecoJets_FFTJetAlgorithms_ScaleCalculators_h