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;
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());
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)
Real clusterSeparation() const
int m_chargedEmEnergyFraction
Real f_etaPhiCorr() const
float chargedEmEnergyFraction() const
chargedEmEnergyFraction
double f_safeLog(const double x) const
int m_logAveConstituentPt
int chargedMultiplicity() const
chargedMultiplicity
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
float electronEnergyFraction() const
electronEnergyFraction
int m_neutralHadronEnergyFraction
Base class for all types of Jets.
int HFHadronMultiplicity() const
HFHadronMultiplicity.
int m_electronMultiplicity
float HFHadronEnergyFraction() const
HFHadronEnergyFraction.
int neutralMultiplicity() const
neutralMultiplicity
int m_chargedHadronMultiplicity
Real f_membershipFactor() const
int photonMultiplicity() const
photonMultiplicity
int m_chargedMuEnergyFraction
Jets made from PFObjects.
int m_chargedHadronEnergyFraction
int m_HFHadronEnergyFraction
Real nearestNeighborDistance() const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
static double delPhi(const double phi1, const double phi2)
Real clusterRadius() const
FFTGenericScaleCalculator(const edm::ParameterSet &ps)
Real f_convergenceDistance() const
std::vector< double > m_factors
int m_neutralMultiplicity
float photonEnergyFraction() const
photonEnergyFraction
const PattRecoPeak< Real > & f_precluster() const
int m_chargedMultiplicity
int HFEMMultiplicity() const
HFEMMultiplicity.
void mapFFTJet(const reco::Jet &jet, const reco::FFTJet< float > &fftJet, const math::XYZTLorentzVector ¤t, double *buf, unsigned dim) const override
int electronMultiplicity() const
electronMultiplicity
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
int m_electronEnergyFraction
int m_photonEnergyFraction
int m_HFHadronMultiplicity
int muonMultiplicity() const
muonMultiplicity
float neutralEmEnergyFraction() const
neutralEmEnergyFraction
int m_convergenceDistance
const math::XYZTLorentzVector & f_pileup() const
float muonEnergyFraction() const
muonEnergyFraction
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
float HFEMEnergyFraction() const
HFEMEnergyFraction.
int m_neutralEmEnergyFraction
#define int_param(varname)
int m_constituentEtaPhiSpread
#define check_param(varname)
void hessian(double hessianArray[3]) const
int m_constituentPtDistribution
Real f_recoScaleRatio() const
int m_neutralHadronMultiplicity
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
int m_nearestNeighborDistance
Power< A, B >::type pow(const A &a, const B &b)
float chargedMuEnergyFraction() const
chargedMuEnergyFraction