CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
FFTJetPileupProcessor Class Reference

#include <RecoJets/FFTJetProducers/plugins/FFTJetPileupProcessor.cc>

Inheritance diagram for FFTJetPileupProcessor:
fftjetcms::FFTJetInterface edm::stream::EDProducer<>

Public Member Functions

 FFTJetPileupProcessor (const edm::ParameterSet &)
 
 FFTJetPileupProcessor ()=delete
 
 FFTJetPileupProcessor (const FFTJetPileupProcessor &)=delete
 
FFTJetPileupProcessoroperator= (const FFTJetPileupProcessor &)=delete
 
 ~FFTJetPileupProcessor () override
 
- Public Member Functions inherited from fftjetcms::FFTJetInterface
 FFTJetInterface ()=delete
 
 FFTJetInterface (const FFTJetInterface &)=delete
 
FFTJetInterfaceoperator= (const FFTJetInterface &)=delete
 
 ~FFTJetInterface () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from fftjetcms::FFTJetInterface
template<class Ptr >
void checkConfig (const Ptr &ptr, const char *message)
 
void discretizeEnergyFlow ()
 
 FFTJetInterface (const edm::ParameterSet &)
 
double getEventScale () const
 
void loadInputCollection (const edm::Event &)
 
bool storeInSinglePrecision () const
 
const reco::Particle::PointvertexUsed () const
 

Private Member Functions

void buildKernelConvolver (const edm::ParameterSet &)
 
void loadFlatteningFactors (const edm::EventSetup &iSetup)
 
void mixExtraGrid ()
 

Private Attributes

std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > convolvedFlow
 
std::unique_ptr< fftjet::AbsConvolverBase< Real > > convolver
 
unsigned convolverMaxBin
 
unsigned convolverMinBin
 
unsigned currentFileNum
 
std::unique_ptr< MyFFTEngineengine
 
FFTJetLookupTableSequenceLoader esLoader
 
std::vector< double > etaFlatteningFactors
 
std::vector< std::string > externalGridFiles
 
double externalGridMaxEnergy
 
std::unique_ptr< fftjet::EquidistantInLogSpace > filterScales
 
std::string flatteningTableCategory
 
std::string flatteningTableName
 
std::string flatteningTableRecord
 
std::ifstream gridStream
 
std::unique_ptr< fftjet::AbsFrequencyKernel > kernel2d
 
bool loadFlatteningFactorsFromDB
 
unsigned nPercentiles
 
std::vector< double > percentileData
 
double pileupEtaPhiArea
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Attributes inherited from fftjetcms::FFTJetInterface
const AnomalousTower anomalous
 
std::vector< unsigned > candidateIndex
 
const bool doPVCorrection
 
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
 
const std::vector< double > etaDependentMagnutideFactors
 
std::vector< fftjetcms::VectorLikeeventData
 
edm::Handle< reco::CandidateViewinputCollection
 
const edm::InputTag inputLabel
 
const JetType jetType
 
const std::string outputLabel
 
const edm::InputTag srcPVs
 

Detailed Description

Description: Runs FFTJet multiscale pileup filtering code and saves the results

Implementation: [Notes on implementation]

Definition at line 53 of file FFTJetPileupProcessor.cc.

Constructor & Destructor Documentation

◆ FFTJetPileupProcessor() [1/3]

FFTJetPileupProcessor::FFTJetPileupProcessor ( const edm::ParameterSet ps)
explicit

Definition at line 123 of file FFTJetPileupProcessor.cc.

References DefaultFFTJetRcdMapper< DataType >::acquireToken(), buildKernelConvolver(), fftjetcms::FFTJetInterface::checkConfig(), convolvedFlow, fftjetcms::FFTJetInterface::energyFlow, esLoader, etaFlatteningFactors, Exception, fftjetcms::fftjet_Grid2d_parser(), filterScales, flatteningTableRecord, edm::ParameterSet::getParameter(), fftjetcommon_cfi::maxScale, fftjetcommon_cfi::minScale, nPercentiles, fftjetcommon_cfi::nScales, fftjetcms::FFTJetInterface::outputLabel, percentileData, and mitigatedMETSequence_cff::U.

124  : FFTJetInterface(ps),
125  etaFlatteningFactors(ps.getParameter<std::vector<double>>("etaFlatteningFactors")),
126  nPercentiles(ps.getParameter<unsigned>("nPercentiles")),
127  convolverMinBin(ps.getParameter<unsigned>("convolverMinBin")),
128  convolverMaxBin(ps.getParameter<unsigned>("convolverMaxBin")),
129  pileupEtaPhiArea(ps.getParameter<double>("pileupEtaPhiArea")),
130  externalGridFiles(ps.getParameter<std::vector<std::string>>("externalGridFiles")),
131  externalGridMaxEnergy(ps.getParameter<double>("externalGridMaxEnergy")),
133  flatteningTableRecord(ps.getParameter<std::string>("flatteningTableRecord")),
134  flatteningTableName(ps.getParameter<std::string>("flatteningTableName")),
135  flatteningTableCategory(ps.getParameter<std::string>("flatteningTableCategory")),
136  loadFlatteningFactorsFromDB(ps.getParameter<bool>("loadFlatteningFactorsFromDB")) {
137  // Build the discretization grid
139  checkConfig(energyFlow, "invalid discretization grid");
140 
141  // Copy of the grid which will be used for convolutions
142  convolvedFlow = std::make_unique<fftjet::Grid2d<fftjetcms::Real>>(*energyFlow);
143 
144  // Make sure the size of flattening factors is appropriate
145  if (!etaFlatteningFactors.empty()) {
146  if (etaFlatteningFactors.size() != convolvedFlow->nEta())
147  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor constructor:"
148  " number of elements in the \"etaFlatteningFactors\""
149  " vector is inconsistent with the discretization grid binning"
150  << std::endl;
151  }
152 
153  // Build the FFT engine(s), pattern recognition kernel(s),
154  // and the kernel convolver
156 
157  // Build the set of pattern recognition scales
158  const unsigned nScales = ps.getParameter<unsigned>("nScales");
159  const double minScale = ps.getParameter<double>("minScale");
160  const double maxScale = ps.getParameter<double>("maxScale");
161  if (minScale <= 0.0 || maxScale < minScale || nScales == 0U)
162  throw cms::Exception("FFTJetBadConfig") << "invalid filter scales" << std::endl;
163 
164  filterScales = std::make_unique<fftjet::EquidistantInLogSpace>(minScale, maxScale, nScales);
165 
167 
168  produces<reco::DiscretizedEnergyFlow>(outputLabel);
169  produces<std::pair<double, double>>(outputLabel);
170 
171  esLoader.acquireToken(flatteningTableRecord, consumesCollector());
172 }
std::vector< std::string > externalGridFiles
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
void checkConfig(const Ptr &ptr, const char *message)
std::unique_ptr< fftjet::Grid2d< Real > > fftjet_Grid2d_parser(const edm::ParameterSet &ps)
void acquireToken(const std::string &record, edm::ConsumesCollector iC)
FFTJetLookupTableSequenceLoader esLoader
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > convolvedFlow
std::vector< double > percentileData
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
std::unique_ptr< fftjet::EquidistantInLogSpace > filterScales
void buildKernelConvolver(const edm::ParameterSet &)
std::vector< double > etaFlatteningFactors
const std::string outputLabel

◆ FFTJetPileupProcessor() [2/3]

FFTJetPileupProcessor::FFTJetPileupProcessor ( )
delete

◆ FFTJetPileupProcessor() [3/3]

FFTJetPileupProcessor::FFTJetPileupProcessor ( const FFTJetPileupProcessor )
delete

◆ ~FFTJetPileupProcessor()

FFTJetPileupProcessor::~FFTJetPileupProcessor ( )
override

Definition at line 201 of file FFTJetPileupProcessor.cc.

201 {}

Member Function Documentation

◆ buildKernelConvolver()

void FFTJetPileupProcessor::buildKernelConvolver ( const edm::ParameterSet ps)
private

Definition at line 174 of file FFTJetPileupProcessor.cc.

References convolver, convolverMaxBin, convolverMinBin, fftjetcms::FFTJetInterface::energyFlow, engine, Exception, edm::ParameterSet::getParameter(), kernel2d, fftjeteflowsmoother_cfi::kernelEtaScale, fftjeteflowsmoother_cfi::kernelPhiScale, and M_PI.

Referenced by FFTJetPileupProcessor().

174  {
175  // Get the eta and phi scales for the kernel(s)
176  double kernelEtaScale = ps.getParameter<double>("kernelEtaScale");
177  const double kernelPhiScale = ps.getParameter<double>("kernelPhiScale");
178  if (kernelEtaScale <= 0.0 || kernelPhiScale <= 0.0)
179  throw cms::Exception("FFTJetBadConfig") << "invalid kernel scales" << std::endl;
180 
183  throw cms::Exception("FFTJetBadConfig") << "invalid convolver bin range" << std::endl;
184 
185  // FFT assumes that the grid extent in eta is 2*Pi. Adjust the
186  // kernel scale in eta to compensate.
187  kernelEtaScale *= (2.0 * M_PI / (energyFlow->etaMax() - energyFlow->etaMin()));
188 
189  // Build the FFT engine
190  engine = std::make_unique<MyFFTEngine>(energyFlow->nEta(), energyFlow->nPhi());
191 
192  // 2d kernel
193  kernel2d = std::unique_ptr<fftjet::AbsFrequencyKernel>(
194  new fftjet::DiscreteGauss2d(kernelEtaScale, kernelPhiScale, energyFlow->nEta(), energyFlow->nPhi()));
195 
196  // 2d convolver
197  convolver = std::unique_ptr<fftjet::AbsConvolverBase<Real>>(new fftjet::FrequencyKernelConvolver<Real, Complex>(
199 }
std::unique_ptr< fftjet::AbsConvolverBase< Real > > convolver
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
std::unique_ptr< MyFFTEngine > engine
#define M_PI
std::unique_ptr< fftjet::AbsFrequencyKernel > kernel2d

◆ loadFlatteningFactors()

void FFTJetPileupProcessor::loadFlatteningFactors ( const edm::EventSetup iSetup)
private

Definition at line 322 of file FFTJetPileupProcessor.cc.

References fftjetcms::FFTJetInterface::energyFlow, esLoader, PVValHelper::eta, etaFlatteningFactors, f, flatteningTableCategory, flatteningTableName, flatteningTableRecord, h, LEDCalibrationChannels::ieta, DefaultFFTJetRcdMapper< DataType >::load(), HLT_2022v15_cff::nEta, and mitigatedMETSequence_cff::U.

Referenced by produce().

322  {
324  std::shared_ptr<npstat::StorableMultivariateFunctor> f = (*h)[flatteningTableCategory][flatteningTableName];
325 
326  // Fill out the table of flattening factors as a function of eta
327  const unsigned nEta = energyFlow->nEta();
328  etaFlatteningFactors.clear();
329  etaFlatteningFactors.reserve(nEta);
330  for (unsigned ieta = 0; ieta < nEta; ++ieta) {
331  const double eta = energyFlow->etaBinCenter(ieta);
332  etaFlatteningFactors.push_back((*f)(&eta, 1U));
333  }
334 }
edm::ESHandle< DataType > load(const std::string &record, const edm::EventSetup &iSetup) const
FFTJetLookupTableSequenceLoader esLoader
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
double f[11][100]
std::vector< double > etaFlatteningFactors
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4

◆ mixExtraGrid()

void FFTJetPileupProcessor::mixExtraGrid ( )
private

Definition at line 269 of file FFTJetPileupProcessor.cc.

References fftjetcms::add_Grid2d_data(), currentFileNum, fftjetcms::FFTJetInterface::energyFlow, Exception, externalGridFiles, externalGridMaxEnergy, g, gridStream, recoMuon::in, mkLumiAveragedPlots::nFiles, mergeAndRegister::ntries, fileinputsource_cfi::read, and mitigatedMETSequence_cff::U.

Referenced by produce().

269  {
270  const unsigned nFiles = externalGridFiles.size();
271  if (currentFileNum > nFiles) {
272  // This is the first time this function is called
273  currentFileNum = 0;
274  gridStream.open(externalGridFiles[currentFileNum].c_str(), std::ios_base::in | std::ios_base::binary);
275  if (!gridStream.is_open())
276  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
277  " failed to open external grid file "
278  << externalGridFiles[currentFileNum] << std::endl;
279  }
280 
281  const fftjet::Grid2d<float>* g = nullptr;
282  const unsigned maxFail = 100U;
283  unsigned nEnergyRejected = 0;
284 
285  while (!g) {
287 
288  // If we can't read the grid, we need to switch to another file
289  for (unsigned ntries = 0; ntries < nFiles && g == nullptr; ++ntries) {
290  gridStream.close();
292  gridStream.open(externalGridFiles[currentFileNum].c_str(), std::ios_base::in | std::ios_base::binary);
293  if (!gridStream.is_open())
294  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
295  " failed to open external grid file "
296  << externalGridFiles[currentFileNum] << std::endl;
298  }
299 
300  if (g)
301  if (g->sum() > externalGridMaxEnergy) {
302  delete g;
303  g = nullptr;
304  if (++nEnergyRejected >= maxFail)
305  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
306  " too many grids in a row ("
307  << nEnergyRejected << ") failed the maximum energy cut" << std::endl;
308  }
309  }
310 
311  if (g) {
312  add_Grid2d_data(energyFlow.get(), *g);
313  delete g;
314  } else {
315  // Too bad, no useful file found
316  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
317  " no valid grid records found"
318  << std::endl;
319  }
320 }
std::vector< std::string > externalGridFiles
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
void add_Grid2d_data(fftjet::Grid2d< F2 > *to, const fftjet::Grid2d< F1 > &from)

◆ operator=()

FFTJetPileupProcessor& FFTJetPileupProcessor::operator= ( const FFTJetPileupProcessor )
delete

◆ produce()

void FFTJetPileupProcessor::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 204 of file FFTJetPileupProcessor.cc.

References convolvedFlow, convolver, convolverMaxBin, convolverMinBin, fftjetcms::FFTJetInterface::discretizeEnergyFlow(), fftjetcms::FFTJetInterface::energyFlow, etaFlatteningFactors, externalGridFiles, filterScales, g, iEvent, loadFlatteningFactors(), loadFlatteningFactorsFromDB, fftjetcms::FFTJetInterface::loadInputCollection(), mixExtraGrid(), nPercentiles, fftjetcommon_cfi::nScales, fftjetcms::FFTJetInterface::outputLabel, percentileData, pileupEtaPhiArea, submitPVResolutionJobs::q, jetUpdater_cfi::sort, and mitigatedMETSequence_cff::U.

204  {
207 
208  // Determine the average Et density for this event.
209  // Needs to be done here, before mixing in another grid.
210  const fftjet::Grid2d<Real>& g(*energyFlow);
211  const double densityBeforeMixing = g.sum() / pileupEtaPhiArea;
212 
213  // Mix an extra grid (if requested)
214  double densityAfterMixing = -1.0;
215  if (!externalGridFiles.empty()) {
216  mixExtraGrid();
217  densityAfterMixing = g.sum() / pileupEtaPhiArea;
218  }
219 
220  // Various useful variables
221  const unsigned nScales = filterScales->size();
222  const double* scales = &(*filterScales)[0];
223  Real* convData = const_cast<Real*>(convolvedFlow->data());
224  Real* sortData = convData + convolverMinBin * convolvedFlow->nPhi();
225  const unsigned dataLen = convolverMaxBin ? (convolverMaxBin - convolverMinBin) * convolvedFlow->nPhi()
226  : convolvedFlow->nEta() * convolvedFlow->nPhi();
227 
228  // Load flattenning factors from DB (if requested)
230  loadFlatteningFactors(iSetup);
231 
232  // Go over all scales and perform the convolutions
233  convolver->setEventData(g.data(), g.nEta(), g.nPhi());
234  for (unsigned iscale = 0; iscale < nScales; ++iscale) {
235  // Perform the convolution
236  convolver->convolveWithKernel(scales[iscale], convData, convolvedFlow->nEta(), convolvedFlow->nPhi());
237 
238  // Apply the flattening factors
239  if (!etaFlatteningFactors.empty())
241 
242  // Sort the convolved data
243  std::sort(sortData, sortData + dataLen);
244 
245  // Determine the percentile points
246  for (unsigned iper = 0; iper < nPercentiles; ++iper) {
247  // Map percentile 0 into point number 0,
248  // 1 into point number dataLen-1
249  const double q = (iper + 0.5) / nPercentiles;
250  const double dindex = q * (dataLen - 1U);
251  const unsigned ilow = static_cast<unsigned>(std::floor(dindex));
252  const double percentile =
253  fftjet::lin_interpolate_1d(ilow, ilow + 1U, sortData[ilow], sortData[ilow + 1U], dindex);
254 
255  // Store the calculated percentile
256  percentileData[iscale * nPercentiles + iper] = percentile;
257  }
258  }
259 
260  // Convert percentile data into a more convenient storable object
261  // and put it into the event record
262  iEvent.put(std::make_unique<reco::DiscretizedEnergyFlow>(
263  &percentileData[0], "FFTJetPileupProcessor", -0.5, nScales - 0.5, 0.0, nScales, nPercentiles),
264  outputLabel);
265 
266  iEvent.put(std::make_unique<std::pair<double, double>>(densityBeforeMixing, densityAfterMixing), outputLabel);
267 }
std::unique_ptr< fftjet::AbsConvolverBase< Real > > convolver
std::vector< std::string > externalGridFiles
void loadInputCollection(const edm::Event &)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > convolvedFlow
int iEvent
Definition: GenABIO.cc:224
std::vector< double > percentileData
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
std::unique_ptr< fftjet::EquidistantInLogSpace > filterScales
std::vector< double > etaFlatteningFactors
void loadFlatteningFactors(const edm::EventSetup &iSetup)
double Real
const std::string outputLabel

Member Data Documentation

◆ convolvedFlow

std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> > FFTJetPileupProcessor::convolvedFlow
private

Definition at line 80 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

◆ convolver

std::unique_ptr<fftjet::AbsConvolverBase<Real> > FFTJetPileupProcessor::convolver
private

Definition at line 77 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

◆ convolverMaxBin

unsigned FFTJetPileupProcessor::convolverMaxBin
private

Definition at line 94 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

◆ convolverMinBin

unsigned FFTJetPileupProcessor::convolverMinBin
private

Definition at line 93 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

◆ currentFileNum

unsigned FFTJetPileupProcessor::currentFileNum
private

Definition at line 103 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

◆ engine

std::unique_ptr<MyFFTEngine> FFTJetPileupProcessor::engine
private

Definition at line 71 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

◆ esLoader

FFTJetLookupTableSequenceLoader FFTJetPileupProcessor::esLoader
private

Definition at line 117 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and loadFlatteningFactors().

◆ etaFlatteningFactors

std::vector<double> FFTJetPileupProcessor::etaFlatteningFactors
private

Definition at line 87 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), loadFlatteningFactors(), and produce().

◆ externalGridFiles

std::vector<std::string> FFTJetPileupProcessor::externalGridFiles
private

Definition at line 100 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid(), and produce().

◆ externalGridMaxEnergy

double FFTJetPileupProcessor::externalGridMaxEnergy
private

Definition at line 102 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

◆ filterScales

std::unique_ptr<fftjet::EquidistantInLogSpace> FFTJetPileupProcessor::filterScales
private

Definition at line 83 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

◆ flatteningTableCategory

std::string FFTJetPileupProcessor::flatteningTableCategory
private

Definition at line 114 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

◆ flatteningTableName

std::string FFTJetPileupProcessor::flatteningTableName
private

Definition at line 113 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

◆ flatteningTableRecord

std::string FFTJetPileupProcessor::flatteningTableRecord
private

Definition at line 112 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and loadFlatteningFactors().

◆ gridStream

std::ifstream FFTJetPileupProcessor::gridStream
private

Definition at line 101 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

◆ kernel2d

std::unique_ptr<fftjet::AbsFrequencyKernel> FFTJetPileupProcessor::kernel2d
private

Definition at line 74 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

◆ loadFlatteningFactorsFromDB

bool FFTJetPileupProcessor::loadFlatteningFactorsFromDB
private

Definition at line 115 of file FFTJetPileupProcessor.cc.

Referenced by produce().

◆ nPercentiles

unsigned FFTJetPileupProcessor::nPercentiles
private

Definition at line 90 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

◆ percentileData

std::vector<double> FFTJetPileupProcessor::percentileData
private

Definition at line 106 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

◆ pileupEtaPhiArea

double FFTJetPileupProcessor::pileupEtaPhiArea
private

Definition at line 97 of file FFTJetPileupProcessor.cc.

Referenced by produce().