8 #define int_param(varname) m_ ## varname (ps.getParameter< int >( #varname )) 10 #define check_param(varname) if ((m_ ## varname) >= 0) {\ 11 if ((m_ ## varname) >= nFactors)\ 12 throw cms::Exception("FFTJetBadConfig")\ 13 << "In FFTGenericScaleCalculator constructor: "\ 14 << "out of range mapping for variable \""\ 15 << #varname << "\"" << std::endl;\ 16 mask[(m_ ## varname)] = 1;\ 21 static inline double delPhi(
const double phi1,
const double phi2)
23 double dphi = phi1 - phi2;
26 else if (dphi < -
M_PI)
33 : m_factors(ps.getParameter<
std::vector<double> >(
"factors")),
34 m_minLog(ps.getUntrackedParameter<double>(
"minLog", -800.0)),
108 std::vector<int>
mask(nFactors, 0);
185 <<
"In FFTGenericScaleCalculator constructor: " 186 <<
"incompatible number of scaling factors: expected " 187 << dim <<
", got " << nFactors << std::endl;
188 for (
int i=0;
i<nFactors; ++
i)
191 <<
"In FFTGenericScaleCalculator constructor: " 192 <<
"variable number " <<
i <<
" is not mapped" << std::endl;
198 double* buf,
const unsigned dim)
const 203 <<
"In FFTGenericScaleCalculator::mapFFTJet: " 204 <<
"incompatible table dimensionality: expected " 205 <<
m_factors.size() <<
", got " << dim << std::endl;
214 buf[
m_eta] = current.eta();
217 buf[
m_phi] = current.phi();
220 buf[
m_pt] = current.pt();
226 buf[
m_mass] = current.M();
239 const double m = current.M();
248 const double m = current.M();
361 const double deta = preclus.
eta() - current.eta();
362 const double dphi =
delPhi(preclus.
phi(), current.phi());
514 <<
"In FFTGenericScaleCalculator::mapFFTJet: " 515 <<
"this configuration is valid for particle flow jets only" 520 for (
unsigned i=0;
i<dim; ++
i)
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
#define check_param(varname)
int muonMultiplicity() const
muonMultiplicity
int HFEMMultiplicity() const
HFEMMultiplicity.
float constituentPtDistribution() const
virtual int nConstituents() const
of constituents
Real clusterRadius() const
Real f_etaPhiCorr() const
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