CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/JetMETCorrections/FFTJetObjects/interface/FFTGenericScaleCalculator.h

Go to the documentation of this file.
00001 #ifndef JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
00002 #define JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h
00003 
00004 //
00005 // Generic variable mapper for FFTJet jet corrections
00006 //
00007 #include <cmath>
00008 #include <vector>
00009 
00010 #include "JetMETCorrections/FFTJetObjects/interface/AbsFFTSpecificScaleCalculator.h"
00011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00012 
00013 class FFTGenericScaleCalculator : public AbsFFTSpecificScaleCalculator
00014 {
00015 public:
00016     FFTGenericScaleCalculator(const edm::ParameterSet& ps);
00017 
00018     inline virtual ~FFTGenericScaleCalculator() {}
00019 
00020     virtual void mapFFTJet(const reco::Jet& jet,
00021                            const reco::FFTJet<float>& fftJet,
00022                            const math::XYZTLorentzVector& current,
00023                            double* buf, unsigned dim) const;
00024 private:
00025     inline double f_safeLog(const double x) const
00026     {
00027         if (x > 0.0)
00028             return log(x);
00029         else
00030             return m_minLog;
00031     }
00032 
00033     std::vector<double> m_factors;
00034     double m_minLog;
00035 
00036     // Variables from the "current" Lorentz vector
00037     int m_eta;
00038     int m_phi;
00039     int m_pt;
00040     int m_logPt;
00041     int m_mass;
00042     int m_logMass;
00043     int m_energy;
00044     int m_logEnergy;
00045     int m_gamma;
00046     int m_logGamma;
00047 
00048     // Variables from fftJet
00049     int m_pileup;
00050     int m_ncells;
00051     int m_etSum;
00052     int m_etaWidth;
00053     int m_phiWidth;
00054     int m_averageWidth;
00055     int m_widthRatio;
00056     int m_etaPhiCorr;
00057     int m_fuzziness;
00058     int m_convergenceDistance;
00059     int m_recoScale;
00060     int m_recoScaleRatio;
00061     int m_membershipFactor;
00062 
00063     // Variables from the precluster
00064     int m_magnitude;
00065     int m_logMagnitude;
00066     int m_magS1;
00067     int m_LogMagS1;
00068     int m_magS2;
00069     int m_LogMagS2;
00070     int m_driftSpeed;
00071     int m_magSpeed;
00072     int m_lifetime;
00073     int m_scale;
00074     int m_logScale;
00075     int m_nearestNeighborDistance;
00076     int m_clusterRadius;
00077     int m_clusterSeparation;
00078     int m_dRFromJet;
00079     int m_LaplacianS1;
00080     int m_LaplacianS2;
00081     int m_LaplacianS3;
00082     int m_HessianS2;
00083     int m_HessianS4;
00084     int m_HessianS6;
00085 
00086     // Variables from reco::Jet
00087     int m_nConstituents;
00088     int m_aveConstituentPt;
00089     int m_logAveConstituentPt;
00090     int m_constituentPtDistribution;
00091     int m_constituentEtaPhiSpread;
00092 
00093     // Variables from reco::PFJet
00094     int m_chargedHadronEnergyFraction;
00095     int m_neutralHadronEnergyFraction;
00096     int m_photonEnergyFraction;
00097     int m_electronEnergyFraction;
00098     int m_muonEnergyFraction;
00099     int m_HFHadronEnergyFraction;
00100     int m_HFEMEnergyFraction;
00101     int m_chargedHadronMultiplicity;
00102     int m_neutralHadronMultiplicity;
00103     int m_photonMultiplicity;
00104     int m_electronMultiplicity;
00105     int m_muonMultiplicity;
00106     int m_HFHadronMultiplicity;
00107     int m_HFEMMultiplicity;
00108     int m_chargedEmEnergyFraction;
00109     int m_chargedMuEnergyFraction;
00110     int m_neutralEmEnergyFraction;
00111     int m_EmEnergyFraction;
00112     int m_chargedMultiplicity;
00113     int m_neutralMultiplicity;
00114 };
00115 
00116 #endif // JetMETCorrections_FFTJetObjects_FFTGenericScaleCalculator_h