CMS 3D CMS Logo

EtaAndPtDependentPeakSelector.h
Go to the documentation of this file.
1 #ifndef RecoJets_FFTJetAlgorithm_EtaAndPtDependentPeakSelector_h
2 #define RecoJets_FFTJetAlgorithm_EtaAndPtDependentPeakSelector_h
3 
4 #include "fftjet/Peak.hh"
5 #include "fftjet/SimpleFunctors.hh"
6 #include "fftjet/LinearInterpolator2d.hh"
7 
9 
10 namespace fftjetcms {
11  //
12  // Interpolation is linear in eta, log(scale), and log(magnitude).
13  // It is assumed that the first variable in the table is eta and
14  // the second is log(scale). It is assumed that the table value
15  // is log(magnitude).
16  //
17  class EtaAndPtDependentPeakSelector : public fftjet::Functor1<bool, fftjet::Peak> {
18  public:
19  explicit EtaAndPtDependentPeakSelector(std::istream& in);
24 
25  bool operator()(const fftjet::Peak& peak) const override;
26  inline bool isValid() const { return ip_; }
27 
28  private:
29  fftjet::LinearInterpolator2d* ip_;
30  };
31 
32  // Similar class which does not perform linear interpolation but
33  // simply looks up in a histogram-like table
34  class EtaAndPtLookupPeakSelector : public fftjet::Functor1<bool, fftjet::Peak> {
35  public:
37  unsigned nx, double xmin, double xmax, unsigned ny, double ymin, double ymax, const std::vector<double>& data);
38 
39  bool operator()(const fftjet::Peak& peak) const override;
40 
41  private:
43  };
44 } // namespace fftjetcms
45 
46 #endif // RecoJets_FFTJetAlgorithm_EtaAndPtDependentPeakSelector_h
EtaAndPtDependentPeakSelector & operator=(const EtaAndPtDependentPeakSelector &)=delete
EtaAndPtLookupPeakSelector(unsigned nx, double xmin, double xmax, unsigned ny, double ymin, double ymax, const std::vector< double > &data)
bool operator()(const fftjet::Peak &peak) const override
bool operator()(const fftjet::Peak &peak) const override
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79