File indexing completed on 2024-04-06 12:19:17
0001 #ifndef JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
0002 #define JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
0003
0004
0005
0006
0007 #include <cmath>
0008 #include <vector>
0009
0010 #include "JetMETCorrections/FFTJetObjects/interface/AbsFFTSpecificScaleCalculator.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012
0013 class FFTGenericScaleCalculator : public AbsFFTSpecificScaleCalculator {
0014 public:
0015 FFTGenericScaleCalculator(const edm::ParameterSet& ps);
0016
0017 inline ~FFTGenericScaleCalculator() override {}
0018
0019 void mapFFTJet(const reco::Jet& jet,
0020 const reco::FFTJet<float>& fftJet,
0021 const math::XYZTLorentzVector& current,
0022 double* buf,
0023 unsigned dim) const override;
0024
0025 private:
0026 inline double f_safeLog(const double x) const {
0027 if (x > 0.0)
0028 return log(x);
0029 else
0030 return m_minLog;
0031 }
0032
0033 std::vector<double> m_factors;
0034 double m_minLog;
0035
0036
0037 int m_eta;
0038 int m_phi;
0039 int m_pt;
0040 int m_logPt;
0041 int m_mass;
0042 int m_logMass;
0043 int m_energy;
0044 int m_logEnergy;
0045 int m_gamma;
0046 int m_logGamma;
0047
0048
0049 int m_pileup;
0050 int m_ncells;
0051 int m_etSum;
0052 int m_etaWidth;
0053 int m_phiWidth;
0054 int m_averageWidth;
0055 int m_widthRatio;
0056 int m_etaPhiCorr;
0057 int m_fuzziness;
0058 int m_convergenceDistance;
0059 int m_recoScale;
0060 int m_recoScaleRatio;
0061 int m_membershipFactor;
0062
0063
0064 int m_magnitude;
0065 int m_logMagnitude;
0066 int m_magS1;
0067 int m_LogMagS1;
0068 int m_magS2;
0069 int m_LogMagS2;
0070 int m_driftSpeed;
0071 int m_magSpeed;
0072 int m_lifetime;
0073 int m_splitTime;
0074 int m_mergeTime;
0075 int m_scale;
0076 int m_logScale;
0077 int m_nearestNeighborDistance;
0078 int m_clusterRadius;
0079 int m_clusterSeparation;
0080 int m_dRFromJet;
0081 int m_LaplacianS1;
0082 int m_LaplacianS2;
0083 int m_LaplacianS3;
0084 int m_HessianS2;
0085 int m_HessianS4;
0086 int m_HessianS6;
0087
0088
0089 int m_nConstituents;
0090 int m_aveConstituentPt;
0091 int m_logAveConstituentPt;
0092 int m_constituentPtDistribution;
0093 int m_constituentEtaPhiSpread;
0094
0095
0096 int m_chargedHadronEnergyFraction;
0097 int m_neutralHadronEnergyFraction;
0098 int m_photonEnergyFraction;
0099 int m_electronEnergyFraction;
0100 int m_muonEnergyFraction;
0101 int m_HFHadronEnergyFraction;
0102 int m_HFEMEnergyFraction;
0103 int m_chargedHadronMultiplicity;
0104 int m_neutralHadronMultiplicity;
0105 int m_photonMultiplicity;
0106 int m_electronMultiplicity;
0107 int m_muonMultiplicity;
0108 int m_HFHadronMultiplicity;
0109 int m_HFEMMultiplicity;
0110 int m_chargedEmEnergyFraction;
0111 int m_chargedMuEnergyFraction;
0112 int m_neutralEmEnergyFraction;
0113 int m_EmEnergyFraction;
0114 int m_chargedMultiplicity;
0115 int m_neutralMultiplicity;
0116 };
0117
0118 #endif