Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // Generic variable mapper for FFTJet jet corrections
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   // Variables from the "current" Lorentz vector
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   // Variables from fftJet
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   // Variables from the precluster
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   // Variables from reco::Jet
0089   int m_nConstituents;
0090   int m_aveConstituentPt;
0091   int m_logAveConstituentPt;
0092   int m_constituentPtDistribution;
0093   int m_constituentEtaPhiSpread;
0094 
0095   // Variables from reco::PFJet
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  // JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h