File indexing completed on 2024-04-06 12:25:22
0001 #include <cmath>
0002
0003 #include "RecoJets/FFTJetAlgorithms/interface/EtaAndPtDependentPeakSelector.h"
0004
0005 namespace fftjetcms {
0006 EtaAndPtDependentPeakSelector::EtaAndPtDependentPeakSelector(std::istream& in)
0007 : ip_(fftjet::LinearInterpolator2d::read(in)) {}
0008
0009 EtaAndPtDependentPeakSelector::~EtaAndPtDependentPeakSelector() { delete ip_; }
0010
0011 bool EtaAndPtDependentPeakSelector::operator()(const fftjet::Peak& peak) const {
0012 const double lookup = (*ip_)(peak.eta(), log(peak.scale()));
0013 return peak.magnitude() > exp(lookup);
0014 }
0015
0016 EtaAndPtLookupPeakSelector::EtaAndPtLookupPeakSelector(
0017 unsigned nx, double xmin, double xmax, unsigned ny, double ymin, double ymax, const std::vector<double>& data)
0018 : lookupTable_(nx, xmin, xmax, ny, ymin, ymax, data) {}
0019
0020 bool EtaAndPtLookupPeakSelector::operator()(const fftjet::Peak& peak) const {
0021 const double lookup = lookupTable_.closest(peak.eta(), log(peak.scale()));
0022 return peak.magnitude() > exp(lookup);
0023 }
0024 }