1 #ifndef JetMETCorrections_FFTJetObjects_FFTJetCorrector_h 2 #define JetMETCorrections_FFTJetObjects_FFTJetCorrector_h 11 template<
class Jet,
class Adjustable>
21 const std::vector<std::shared_ptr<const AbsScaler> >& scalers,
27 const Adjustable&
in, Adjustable*
out)
const 36 const unsigned nAdj =
scalers_.size();
40 double staticBuffer[kStaticBufferSize];
41 std::vector<double> dynamicBuffer;
42 double* buf =
nullptr;
43 if(nAdj<=kStaticBufferSize) {
44 buf = &(staticBuffer[0]);
46 dynamicBuffer.resize(nAdj);
47 buf = &(dynamicBuffer[0]);
49 for (
unsigned i=0;
i<nAdj; ++
i)
51 adjuster_->adjust(jet, in, buf, nAdj, out);
60 std::vector<std::shared_ptr<const AbsScaler> >
scalers_;
65 #endif // JetMETCorrections_FFTJetObjects_FFTJetCorrector_h
std::shared_ptr< const AbsAdjuster > adjuster_
void correct(const Jet &jet, const bool isMC, const Adjustable &in, Adjustable *out) const
std::vector< std::shared_ptr< const AbsScaler > > scalers_
FFTJetCorrector(std::shared_ptr< const AbsAdjuster > adjuster, const std::vector< std::shared_ptr< const AbsScaler > > &scalers, const unsigned i_level, const FFTJetCorrectorApp a)
AbsFFTJetAdjuster< jet_type, adjustable_type > AbsAdjuster
Adjustable adjustable_type
AbsFFTJetScaleCalculator< jet_type, adjustable_type > AbsScaler
FFTJetCorrectorApp app() const