8 #define int_param(varname) m_##varname(ps.getParameter<int>(#varname)) 10 #define check_param(varname) \ 11 if ((m_##varname) >= 0) { \ 12 if ((m_##varname) >= nFactors) \ 13 throw cms::Exception("FFTJetBadConfig") \ 14 << "In FFTGenericScaleCalculator constructor: " \ 15 << "out of range mapping for variable \"" << #varname << "\"" << std::endl; \ 16 mask[(m_##varname)] = 1; \ 20 static inline double delPhi(
const double phi1,
const double phi2) {
21 double dphi = phi1 - phi2;
24 else if (dphi < -
M_PI)
30 : m_factors(ps.getParameter<
std::vector<double> >(
"factors")),
31 m_minLog(ps.getUntrackedParameter<double>(
"minLog", -800.0)),
104 std::vector<int> mask(nFactors, 0);
181 <<
"In FFTGenericScaleCalculator constructor: " 182 <<
"incompatible number of scaling factors: expected " << dim <<
", got " << nFactors << std::endl;
183 for (
int i = 0;
i < nFactors; ++
i)
185 throw cms::Exception(
"FFTJetBadConfig") <<
"In FFTGenericScaleCalculator constructor: " 186 <<
"variable number " <<
i <<
" is not mapped" << std::endl;
193 const unsigned dim)
const {
197 <<
"In FFTGenericScaleCalculator::mapFFTJet: " 198 <<
"incompatible table dimensionality: expected " <<
m_factors.size() <<
", got " << dim << std::endl;
207 buf[
m_eta] = current.eta();
210 buf[
m_phi] = current.phi();
213 buf[
m_pt] = current.pt();
219 buf[
m_mass] = current.M();
231 const double m = current.M();
239 const double m = current.M();
349 const double deta = preclus.
eta() - current.eta();
350 const double dphi =
delPhi(preclus.
phi(), current.phi());
381 buf[
m_HessianS4] = fabs(h[0] * h[2] - h[1] * h[1]) *
pow(scale, 4);
387 buf[
m_HessianS6] = fabs(h[0] * h[2] - h[1] * h[1]) *
pow(scale, 6);
478 throw cms::Exception(
"FFTJetBadConfig") <<
"In FFTGenericScaleCalculator::mapFFTJet: " 479 <<
"this configuration is valid for particle flow jets only" << std::endl;
483 for (
unsigned i = 0;
i < dim; ++
i)
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
int photonMultiplicity() const
photonMultiplicity
int m_chargedEmEnergyFraction
float constituentEtaPhiSpread() const
int m_logAveConstituentPt
Real f_convergenceDistance() const
int m_neutralHadronEnergyFraction
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
Base class for all types of Jets.
float HFEMEnergyFraction() const
HFEMEnergyFraction.
int m_electronMultiplicity
int m_chargedHadronMultiplicity
int chargedMultiplicity() const
chargedMultiplicity
float photonEnergyFraction() const
photonEnergyFraction
int m_chargedMuEnergyFraction
Jets made from PFObjects.
int m_chargedHadronEnergyFraction
Real f_membershipFactor() const
int m_HFHadronEnergyFraction
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
static double delPhi(const double phi1, const double phi2)
float neutralEmEnergyFraction() const
neutralEmEnergyFraction
FFTGenericScaleCalculator(const edm::ParameterSet &ps)
Real nearestNeighborDistance() const
std::vector< double > m_factors
int m_neutralMultiplicity
int m_chargedMultiplicity
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
Real clusterSeparation() const
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
int m_electronEnergyFraction
int m_photonEnergyFraction
int m_HFHadronMultiplicity
int neutralMultiplicity() const
neutralMultiplicity
const PattRecoPeak< Real > & f_precluster() const
int m_convergenceDistance
float chargedEmEnergyFraction() const
chargedEmEnergyFraction
int m_neutralEmEnergyFraction
float HFHadronEnergyFraction() const
HFHadronEnergyFraction.
float electronEnergyFraction() const
electronEnergyFraction
#define int_param(varname)
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
int m_constituentEtaPhiSpread
int muonMultiplicity() const
muonMultiplicity
int HFEMMultiplicity() const
HFEMMultiplicity.
float constituentPtDistribution() const
virtual int nConstituents() const
of constituents
Real clusterRadius() const
Real f_etaPhiCorr() const
#define check_param(varname)
int m_constituentPtDistribution
float chargedMuEnergyFraction() const
chargedMuEnergyFraction
const math::XYZTLorentzVector & f_pileup() const
int m_neutralHadronMultiplicity
double f_safeLog(const double x) const
float muonEnergyFraction() const
muonEnergyFraction
void mapFFTJet(const reco::Jet &jet, const reco::FFTJet< float > &fftJet, const math::XYZTLorentzVector ¤t, double *buf, unsigned dim) const override
Real f_recoScaleRatio() const
int HFHadronMultiplicity() const
HFHadronMultiplicity.
int m_nearestNeighborDistance
void hessian(double hessianArray[3]) const
Power< A, B >::type pow(const A &a, const B &b)
int electronMultiplicity() const
electronMultiplicity