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::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 FFTJetPileupProcessor (const edm::ParameterSet &)
 
 ~FFTJetPileupProcessor () override
 
- Public Member Functions inherited from fftjetcms::FFTJetInterface
 ~FFTJetInterface () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void beginJob () override
 
void endJob () override
 
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
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void buildKernelConvolver (const edm::ParameterSet &)
 
 FFTJetPileupProcessor ()=delete
 
 FFTJetPileupProcessor (const FFTJetPileupProcessor &)=delete
 
void loadFlatteningFactors (const edm::EventSetup &iSetup)
 
void mixExtraGrid ()
 
FFTJetPileupProcessoroperator= (const FFTJetPileupProcessor &)=delete
 

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
 
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::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- 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 52 of file FFTJetPileupProcessor.cc.

Constructor & Destructor Documentation

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

Definition at line 123 of file FFTJetPileupProcessor.cc.

References buildKernelConvolver(), fftjetcms::FFTJetInterface::checkConfig(), convolvedFlow, fftjetcms::FFTJetInterface::energyFlow, etaFlatteningFactors, Exception, fftjetcms::fftjet_Grid2d_parser(), filterScales, 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::unique_ptr<fftjet::Grid2d<fftjetcms::Real>>(new 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 =
165  std::unique_ptr<fftjet::EquidistantInLogSpace>(new fftjet::EquidistantInLogSpace(minScale, maxScale, nScales));
166 
167  percentileData.resize(nScales * nPercentiles);
168 
169  produces<reco::DiscretizedEnergyFlow>(outputLabel);
170  produces<std::pair<double, double>>(outputLabel);
171 }
T getParameter(std::string const &) const
std::vector< std::string > externalGridFiles
void checkConfig(const Ptr &ptr, const char *message)
std::unique_ptr< fftjet::Grid2d< Real > > fftjet_Grid2d_parser(const edm::ParameterSet &ps)
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::~FFTJetPileupProcessor ( )
override

Definition at line 200 of file FFTJetPileupProcessor.cc.

200 {}
FFTJetPileupProcessor::FFTJetPileupProcessor ( )
privatedelete
FFTJetPileupProcessor::FFTJetPileupProcessor ( const FFTJetPileupProcessor )
privatedelete

Member Function Documentation

void FFTJetPileupProcessor::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 322 of file FFTJetPileupProcessor.cc.

322 {}
void FFTJetPileupProcessor::buildKernelConvolver ( const edm::ParameterSet ps)
private

Definition at line 173 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().

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

Reimplemented from edm::EDProducer.

Definition at line 325 of file FFTJetPileupProcessor.cc.

325 {}
void FFTJetPileupProcessor::loadFlatteningFactors ( const edm::EventSetup iSetup)
private

Definition at line 327 of file FFTJetPileupProcessor.cc.

References DEFINE_FWK_MODULE, fftjetcms::FFTJetInterface::energyFlow, PVValHelper::eta, etaFlatteningFactors, f, flatteningTableCategory, flatteningTableName, flatteningTableRecord, h, LEDCalibrationChannels::ieta, StaticFFTJetRcdMapper< Mapper >::instance(), HLT_2018_cff::nEta, and mitigatedMETSequence_cff::U.

Referenced by produce().

327  {
330  std::shared_ptr<npstat::StorableMultivariateFunctor> f = (*h)[flatteningTableCategory][flatteningTableName];
331 
332  // Fill out the table of flattening factors as a function of eta
333  const unsigned nEta = energyFlow->nEta();
334  etaFlatteningFactors.clear();
335  etaFlatteningFactors.reserve(nEta);
336  for (unsigned ieta = 0; ieta < nEta; ++ieta) {
337  const double eta = energyFlow->etaBinCenter(ieta);
338  etaFlatteningFactors.push_back((*f)(&eta, 1U));
339  }
340 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
double f[11][100]
std::vector< double > etaFlatteningFactors
static const Mapper & instance()
void FFTJetPileupProcessor::mixExtraGrid ( )
private

Definition at line 268 of file FFTJetPileupProcessor.cc.

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

Referenced by produce().

268  {
269  const unsigned nFiles = externalGridFiles.size();
270  if (currentFileNum > nFiles) {
271  // This is the first time this function is called
272  currentFileNum = 0;
273  gridStream.open(externalGridFiles[currentFileNum].c_str(), std::ios_base::in | std::ios_base::binary);
274  if (!gridStream.is_open())
275  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
276  " failed to open external grid file "
277  << externalGridFiles[currentFileNum] << std::endl;
278  }
279 
280  const fftjet::Grid2d<float>* g = nullptr;
281  const unsigned maxFail = 100U;
282  unsigned nEnergyRejected = 0;
283 
284  while (!g) {
286 
287  // If we can't read the grid, we need to switch to another file
288  for (unsigned ntries = 0; ntries < nFiles && g == nullptr; ++ntries) {
289  gridStream.close();
290  currentFileNum = (currentFileNum + 1U) % nFiles;
291  gridStream.open(externalGridFiles[currentFileNum].c_str(), std::ios_base::in | std::ios_base::binary);
292  if (!gridStream.is_open())
293  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
294  " failed to open external grid file "
295  << externalGridFiles[currentFileNum] << std::endl;
297  }
298 
299  if (g)
300  if (g->sum() > externalGridMaxEnergy) {
301  delete g;
302  g = nullptr;
303  if (++nEnergyRejected >= maxFail)
304  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
305  " too many grids in a row ("
306  << nEnergyRejected << ") failed the maximum energy cut" << std::endl;
307  }
308  }
309 
310  if (g) {
311  add_Grid2d_data(energyFlow.get(), *g);
312  delete g;
313  } else {
314  // Too bad, no useful file found
315  throw cms::Exception("FFTJetBadConfig") << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
316  " no valid grid records found"
317  << std::endl;
318  }
319 }
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)
FFTJetPileupProcessor& FFTJetPileupProcessor::operator= ( const FFTJetPileupProcessor )
privatedelete
void FFTJetPileupProcessor::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 203 of file FFTJetPileupProcessor.cc.

References convolvedFlow, convolver, convolverMaxBin, convolverMinBin, fftjetcms::FFTJetInterface::discretizeEnergyFlow(), fftjetcms::FFTJetInterface::energyFlow, etaFlatteningFactors, externalGridFiles, filterScales, g, loadFlatteningFactors(), loadFlatteningFactorsFromDB, fftjetcms::FFTJetInterface::loadInputCollection(), mixExtraGrid(), nPercentiles, fftjetcommon_cfi::nScales, fftjetcms::FFTJetInterface::outputLabel, percentileData, pileupEtaPhiArea, edm::Event::put(), data-class-funcs::q, and mitigatedMETSequence_cff::U.

203  {
204  loadInputCollection(iEvent);
206 
207  // Determine the average Et density for this event.
208  // Needs to be done here, before mixing in another grid.
209  const fftjet::Grid2d<Real>& g(*energyFlow);
210  const double densityBeforeMixing = g.sum() / pileupEtaPhiArea;
211 
212  // Mix an extra grid (if requested)
213  double densityAfterMixing = -1.0;
214  if (!externalGridFiles.empty()) {
215  mixExtraGrid();
216  densityAfterMixing = g.sum() / pileupEtaPhiArea;
217  }
218 
219  // Various useful variables
220  const unsigned nScales = filterScales->size();
221  const double* scales = &(*filterScales)[0];
222  Real* convData = const_cast<Real*>(convolvedFlow->data());
223  Real* sortData = convData + convolverMinBin * convolvedFlow->nPhi();
224  const unsigned dataLen = convolverMaxBin ? (convolverMaxBin - convolverMinBin) * convolvedFlow->nPhi()
225  : convolvedFlow->nEta() * convolvedFlow->nPhi();
226 
227  // Load flattenning factors from DB (if requested)
229  loadFlatteningFactors(iSetup);
230 
231  // Go over all scales and perform the convolutions
232  convolver->setEventData(g.data(), g.nEta(), g.nPhi());
233  for (unsigned iscale = 0; iscale < nScales; ++iscale) {
234  // Perform the convolution
235  convolver->convolveWithKernel(scales[iscale], convData, convolvedFlow->nEta(), convolvedFlow->nPhi());
236 
237  // Apply the flattening factors
238  if (!etaFlatteningFactors.empty())
240 
241  // Sort the convolved data
242  std::sort(sortData, sortData + dataLen);
243 
244  // Determine the percentile points
245  for (unsigned iper = 0; iper < nPercentiles; ++iper) {
246  // Map percentile 0 into point number 0,
247  // 1 into point number dataLen-1
248  const double q = (iper + 0.5) / nPercentiles;
249  const double dindex = q * (dataLen - 1U);
250  const unsigned ilow = static_cast<unsigned>(std::floor(dindex));
251  const double percentile =
252  fftjet::lin_interpolate_1d(ilow, ilow + 1U, sortData[ilow], sortData[ilow + 1U], dindex);
253 
254  // Store the calculated percentile
255  percentileData[iscale * nPercentiles + iper] = percentile;
256  }
257  }
258 
259  // Convert percentile data into a more convenient storable object
260  // and put it into the event record
261  iEvent.put(std::make_unique<reco::DiscretizedEnergyFlow>(
262  &percentileData[0], "FFTJetPileupProcessor", -0.5, nScales - 0.5, 0.0, nScales, nPercentiles),
263  outputLabel);
264 
265  iEvent.put(std::make_unique<std::pair<double, double>>(densityBeforeMixing, densityAfterMixing), outputLabel);
266 }
std::unique_ptr< fftjet::AbsConvolverBase< Real > > convolver
std::vector< std::string > externalGridFiles
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
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
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

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

Definition at line 82 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

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

Definition at line 79 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::convolverMaxBin
private

Definition at line 96 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::convolverMinBin
private

Definition at line 95 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::currentFileNum
private

Definition at line 105 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 73 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

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

Definition at line 89 of file FFTJetPileupProcessor.cc.

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

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

Definition at line 102 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid(), and produce().

double FFTJetPileupProcessor::externalGridMaxEnergy
private

Definition at line 104 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 85 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

std::string FFTJetPileupProcessor::flatteningTableCategory
private

Definition at line 116 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::string FFTJetPileupProcessor::flatteningTableName
private

Definition at line 115 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::string FFTJetPileupProcessor::flatteningTableRecord
private

Definition at line 114 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::ifstream FFTJetPileupProcessor::gridStream
private

Definition at line 103 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 76 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

bool FFTJetPileupProcessor::loadFlatteningFactorsFromDB
private

Definition at line 117 of file FFTJetPileupProcessor.cc.

Referenced by produce().

unsigned FFTJetPileupProcessor::nPercentiles
private

Definition at line 92 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

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

Definition at line 108 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

double FFTJetPileupProcessor::pileupEtaPhiArea
private

Definition at line 99 of file FFTJetPileupProcessor.cc.

Referenced by produce().