CMS 3D CMS Logo

FFTGenericScaleCalculator.h
Go to the documentation of this file.
1 #ifndef JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
2 #define JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
3 
4 //
5 // Generic variable mapper for FFTJet jet corrections
6 //
7 #include <cmath>
8 #include <vector>
9 
12 
14 public:
16 
17  inline ~FFTGenericScaleCalculator() override {}
18 
19  void mapFFTJet(const reco::Jet& jet,
20  const reco::FFTJet<float>& fftJet,
21  const math::XYZTLorentzVector& current,
22  double* buf,
23  unsigned dim) const override;
24 
25 private:
26  inline double f_safeLog(const double x) const {
27  if (x > 0.0)
28  return log(x);
29  else
30  return m_minLog;
31  }
32 
33  std::vector<double> m_factors;
34  double m_minLog;
35 
36  // Variables from the "current" Lorentz vector
37  int m_eta;
38  int m_phi;
39  int m_pt;
40  int m_logPt;
41  int m_mass;
42  int m_logMass;
43  int m_energy;
45  int m_gamma;
47 
48  // Variables from fftJet
49  int m_pileup;
50  int m_ncells;
51  int m_etSum;
62 
63  // Variables from the precluster
66  int m_magS1;
68  int m_magS2;
75  int m_scale;
87 
88  // Variables from reco::Jet
94 
95  // Variables from reco::PFJet
116 };
117 
118 #endif // JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
Base class for all types of Jets.
Definition: Jet.h:20
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
FFTGenericScaleCalculator(const edm::ParameterSet &ps)
double f_safeLog(const double x) const
void mapFFTJet(const reco::Jet &jet, const reco::FFTJet< float > &fftJet, const math::XYZTLorentzVector &current, double *buf, unsigned dim) const override