/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
JetMETCorrections/FFTJetObjects/interface/L2AbsScaleCalculator.h
47 строк
2 KB
Cms Build
Clang-Format
31 май 2019, 18:05
31 май 2019, 18:05
29b5de2
Код
Авторство
О чём код?
#ifndef JetMETCorrections_FFTJetObjects_L2AbsScaleCalculator_h #define JetMETCorrections_FFTJetObjects_L2AbsScaleCalculator_h #include <cmath> #include <cassert> #include "JetMETCorrections/FFTJetObjects/interface/AbsFFTSpecificScaleCalculator.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/Exception.h" class L2AbsScaleCalculator : public AbsFFTSpecificScaleCalculator { public: inline explicit L2AbsScaleCalculator(const edm::ParameterSet& ps) : m_radiusFactor(ps.getParameter<double>("radiusFactor")), m_zeroPtLog(ps.getParameter<double>("zeroPtLog")), m_takePtLog(ps.getParameter<bool>("takePtLog")) {} inline ~L2AbsScaleCalculator() override {} inline void mapFFTJet(const reco::Jet& /* jet */, const reco::FFTJet<float>& fftJet, const math::XYZTLorentzVector& current, double* buf, const unsigned dim) const override { if (dim != 2) throw cms::Exception("FFTJetBadConfig") << "In L2AbsScaleCalculator::mapFFTJet: " << "invalid table dimensionality: " << dim << std::endl; assert(buf); const double radius = fftJet.f_recoScale(); const double pt = current.pt(); buf[0] = radius * m_radiusFactor; if (m_takePtLog) { if (pt > 0.0) buf[1] = log(pt); else buf[1] = m_zeroPtLog; } else buf[1] = pt; } private: double m_radiusFactor; double m_zeroPtLog; bool m_takePtLog; }; #endif // JetMETCorrections_FFTJetObjects_L2AbsScaleCalculator_h