CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 ()
 
- Public Member Functions inherited from fftjetcms::FFTJetInterface
virtual ~FFTJetInterface ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- 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 ()
 
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, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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 & 
itemsToGetFromEvent () 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
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
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::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 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 ()
 
 FFTJetPileupProcessor (const FFTJetPileupProcessor &)
 
void loadFlatteningFactors (const edm::EventSetup &iSetup)
 
void mixExtraGrid ()
 
FFTJetPileupProcessoroperator= (const FFTJetPileupProcessor &)
 

Private Attributes

std::auto_ptr< fftjet::Grid2d
< fftjetcms::Real > > 
convolvedFlow
 
std::auto_ptr
< fftjet::AbsConvolverBase
< Real > > 
convolver
 
unsigned convolverMaxBin
 
unsigned convolverMinBin
 
unsigned currentFileNum
 
std::auto_ptr< MyFFTEngineengine
 
std::vector< double > etaFlatteningFactors
 
std::vector< std::string > externalGridFiles
 
double externalGridMaxEnergy
 
std::auto_ptr
< fftjet::EquidistantInLogSpace > 
filterScales
 
std::string flatteningTableCategory
 
std::string flatteningTableName
 
std::string flatteningTableRecord
 
std::ifstream gridStream
 
std::auto_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
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)
 
- Protected Attributes inherited from fftjetcms::FFTJetInterface
const AnomalousTower anomalous
 
std::vector< unsigned > candidateIndex
 
const bool doPVCorrection
 
std::auto_ptr< fftjet::Grid2d
< fftjetcms::Real > > 
energyFlow
 
const std::vector< double > etaDependentMagnutideFactors
 
std::vector
< fftjetcms::VectorLike
eventData
 
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::FFTJetPileupProcessor ( const edm::ParameterSet ps)
explicit

Definition at line 125 of file FFTJetPileupProcessor.cc.

References buildKernelConvolver(), fftjetcms::FFTJetInterface::checkConfig(), convolvedFlow, fftjetcms::FFTJetInterface::energyFlow, etaFlatteningFactors, Exception, fftjetcms::fftjet_Grid2d_parser(), filterScales, edm::ParameterSet::getParameter(), nPercentiles, fftjetcms::FFTJetInterface::outputLabel, and percentileData.

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

Definition at line 220 of file FFTJetPileupProcessor.cc.

221 {
222 }
FFTJetPileupProcessor::FFTJetPileupProcessor ( )
private
FFTJetPileupProcessor::FFTJetPileupProcessor ( const FFTJetPileupProcessor )
private

Member Function Documentation

void FFTJetPileupProcessor::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 369 of file FFTJetPileupProcessor.cc.

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

Definition at line 183 of file FFTJetPileupProcessor.cc.

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

Referenced by FFTJetPileupProcessor().

184 {
185  // Get the eta and phi scales for the kernel(s)
186  double kernelEtaScale = ps.getParameter<double>("kernelEtaScale");
187  const double kernelPhiScale = ps.getParameter<double>("kernelPhiScale");
188  if (kernelEtaScale <= 0.0 || kernelPhiScale <= 0.0)
189  throw cms::Exception("FFTJetBadConfig")
190  << "invalid kernel scales" << std::endl;
191 
194  convolverMaxBin > energyFlow->nEta())
195  throw cms::Exception("FFTJetBadConfig")
196  << "invalid convolver bin range" << std::endl;
197 
198  // FFT assumes that the grid extent in eta is 2*Pi. Adjust the
199  // kernel scale in eta to compensate.
200  kernelEtaScale *= (2.0*M_PI/(energyFlow->etaMax() - energyFlow->etaMin()));
201 
202  // Build the FFT engine
203  engine = std::auto_ptr<MyFFTEngine>(
204  new MyFFTEngine(energyFlow->nEta(), energyFlow->nPhi()));
205 
206  // 2d kernel
207  kernel2d = std::auto_ptr<fftjet::AbsFrequencyKernel>(
208  new fftjet::DiscreteGauss2d(
209  kernelEtaScale, kernelPhiScale,
210  energyFlow->nEta(), energyFlow->nPhi()));
211 
212  // 2d convolver
213  convolver = std::auto_ptr<fftjet::AbsConvolverBase<Real> >(
214  new fftjet::FrequencyKernelConvolver<Real,Complex>(
215  engine.get(), kernel2d.get(),
217 }
T getParameter(std::string const &) const
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
std::auto_ptr< fftjet::AbsConvolverBase< Real > > convolver
std::auto_ptr< fftjet::AbsFrequencyKernel > kernel2d
#define M_PI
std::auto_ptr< MyFFTEngine > engine
fftjet::FFTWDoubleEngine MyFFTEngine
void FFTJetPileupProcessor::endJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 375 of file FFTJetPileupProcessor.cc.

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

Definition at line 380 of file FFTJetPileupProcessor.cc.

References fftjetcms::FFTJetInterface::energyFlow, eta, etaFlatteningFactors, f, flatteningTableCategory, flatteningTableName, flatteningTableRecord, h, StaticFFTJetRcdMapper< Mapper >::instance(), and HLT_FULL_cff::nEta.

Referenced by produce().

381 {
384  iSetup, flatteningTableRecord, h);
385  boost::shared_ptr<npstat::StorableMultivariateFunctor> f =
387 
388  // Fill out the table of flattening factors as a function of eta
389  const unsigned nEta = energyFlow->nEta();
390  etaFlatteningFactors.clear();
391  etaFlatteningFactors.reserve(nEta);
392  for (unsigned ieta=0; ieta<nEta; ++ieta)
393  {
394  const double eta = energyFlow->etaBinCenter(ieta);
395  etaFlatteningFactors.push_back((*f)(&eta, 1U));
396  }
397 }
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
double f[11][100]
std::vector< double > etaFlatteningFactors
static const Mapper & instance()
void FFTJetPileupProcessor::mixExtraGrid ( )
private

Definition at line 301 of file FFTJetPileupProcessor.cc.

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

Referenced by produce().

302 {
303  const unsigned nFiles = externalGridFiles.size();
304  if (currentFileNum > nFiles)
305  {
306  // This is the first time this function is called
307  currentFileNum = 0;
309  std::ios_base::in | std::ios_base::binary);
310  if (!gridStream.is_open())
311  throw cms::Exception("FFTJetBadConfig")
312  << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
313  " failed to open external grid file "
314  << externalGridFiles[currentFileNum] << std::endl;
315  }
316 
317  const fftjet::Grid2d<float>* g = 0;
318  const unsigned maxFail = 100U;
319  unsigned nEnergyRejected = 0;
320 
321  while(!g)
322  {
324 
325  // If we can't read the grid, we need to switch to another file
326  for (unsigned ntries=0; ntries<nFiles && g == 0; ++ntries)
327  {
328  gridStream.close();
329  currentFileNum = (currentFileNum + 1U) % nFiles;
331  std::ios_base::in | std::ios_base::binary);
332  if (!gridStream.is_open())
333  throw cms::Exception("FFTJetBadConfig")
334  << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
335  " failed to open external grid file "
336  << externalGridFiles[currentFileNum] << std::endl;
338  }
339 
340  if (g)
341  if (g->sum() > externalGridMaxEnergy)
342  {
343  delete g;
344  g = 0;
345  if (++nEnergyRejected >= maxFail)
346  throw cms::Exception("FFTJetBadConfig")
347  << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
348  " too many grids in a row (" << nEnergyRejected
349  << ") failed the maximum energy cut" << std::endl;
350  }
351  }
352 
353  if (g)
354  {
355  add_Grid2d_data(energyFlow.get(), *g);
356  delete g;
357  }
358  else
359  {
360  // Too bad, no useful file found
361  throw cms::Exception("FFTJetBadConfig")
362  << "ERROR in FFTJetPileupProcessor::mixExtraGrid():"
363  " no valid grid records found" << std::endl;
364  }
365 }
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
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
tuple nFiles
Definition: cmsBatch.py:306
void add_Grid2d_data(fftjet::Grid2d< F2 > *to, const fftjet::Grid2d< F1 > &from)
FFTJetPileupProcessor& FFTJetPileupProcessor::operator= ( const FFTJetPileupProcessor )
private
void FFTJetPileupProcessor::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements edm::EDProducer.

Definition at line 226 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, fftjetcms::FFTJetInterface::outputLabel, percentileData, pileupEtaPhiArea, edm::Event::put(), and lumiQueryAPI::q.

228 {
229  loadInputCollection(iEvent);
231 
232  // Determine the average Et density for this event.
233  // Needs to be done here, before mixing in another grid.
234  const fftjet::Grid2d<Real>& g(*energyFlow);
235  const double densityBeforeMixing = g.sum()/pileupEtaPhiArea;
236 
237  // Mix an extra grid (if requested)
238  double densityAfterMixing = -1.0;
239  if (!externalGridFiles.empty())
240  {
241  mixExtraGrid();
242  densityAfterMixing = g.sum()/pileupEtaPhiArea;
243  }
244 
245  // Various useful variables
246  const unsigned nScales = filterScales->size();
247  const double* scales = &(*filterScales)[0];
248  Real* convData = const_cast<Real*>(convolvedFlow->data());
249  Real* sortData = convData + convolverMinBin*convolvedFlow->nPhi();
250  const unsigned dataLen = convolverMaxBin ?
252  convolvedFlow->nEta()*convolvedFlow->nPhi();
253 
254  // Load flattenning factors from DB (if requested)
256  loadFlatteningFactors(iSetup);
257 
258  // Go over all scales and perform the convolutions
259  convolver->setEventData(g.data(), g.nEta(), g.nPhi());
260  for (unsigned iscale=0; iscale<nScales; ++iscale)
261  {
262  // Perform the convolution
263  convolver->convolveWithKernel(
264  scales[iscale], convData,
265  convolvedFlow->nEta(), convolvedFlow->nPhi());
266 
267  // Apply the flattening factors
268  if (!etaFlatteningFactors.empty())
269  convolvedFlow->scaleData(&etaFlatteningFactors[0],
270  etaFlatteningFactors.size());
271 
272  // Sort the convolved data
273  std::sort(sortData, sortData+dataLen);
274 
275  // Determine the percentile points
276  for (unsigned iper=0; iper<nPercentiles; ++iper)
277  {
278  // Map percentile 0 into point number 0,
279  // 1 into point number dataLen-1
280  const double q = (iper + 0.5)/nPercentiles;
281  const double dindex = q*(dataLen-1U);
282  const unsigned ilow = static_cast<unsigned>(std::floor(dindex));
283  const double percentile = fftjet::lin_interpolate_1d(
284  ilow, ilow+1U, sortData[ilow], sortData[ilow+1U], dindex);
285 
286  // Store the calculated percentile
287  percentileData[iscale*nPercentiles + iper] = percentile;
288  }
289  }
290 
291  // Convert percentile data into a more convenient storable object
292  // and put it into the event record
293  iEvent.put(std::make_unique<reco::DiscretizedEnergyFlow>(
294  &percentileData[0], "FFTJetPileupProcessor",
295  -0.5, nScales-0.5, 0.0, nScales, nPercentiles), outputLabel);
296 
297  iEvent.put(std::make_unique<std::pair<double,double>>(densityBeforeMixing, densityAfterMixing), outputLabel);
298 }
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
std::vector< std::string > externalGridFiles
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
std::auto_ptr< fftjet::EquidistantInLogSpace > filterScales
std::auto_ptr< fftjet::AbsConvolverBase< Real > > convolver
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::vector< double > percentileData
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > convolvedFlow
std::vector< double > etaFlatteningFactors
void loadFlatteningFactors(const edm::EventSetup &iSetup)
double Real
const std::string outputLabel

Member Data Documentation

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

Definition at line 84 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

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

Definition at line 81 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::convolverMaxBin
private

Definition at line 98 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::convolverMinBin
private

Definition at line 97 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver(), and produce().

unsigned FFTJetPileupProcessor::currentFileNum
private

Definition at line 107 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 75 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

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

Definition at line 91 of file FFTJetPileupProcessor.cc.

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

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

Definition at line 104 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid(), and produce().

double FFTJetPileupProcessor::externalGridMaxEnergy
private

Definition at line 106 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 87 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

std::string FFTJetPileupProcessor::flatteningTableCategory
private

Definition at line 118 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::string FFTJetPileupProcessor::flatteningTableName
private

Definition at line 117 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::string FFTJetPileupProcessor::flatteningTableRecord
private

Definition at line 116 of file FFTJetPileupProcessor.cc.

Referenced by loadFlatteningFactors().

std::ifstream FFTJetPileupProcessor::gridStream
private

Definition at line 105 of file FFTJetPileupProcessor.cc.

Referenced by mixExtraGrid().

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

Definition at line 78 of file FFTJetPileupProcessor.cc.

Referenced by buildKernelConvolver().

bool FFTJetPileupProcessor::loadFlatteningFactorsFromDB
private

Definition at line 119 of file FFTJetPileupProcessor.cc.

Referenced by produce().

unsigned FFTJetPileupProcessor::nPercentiles
private

Definition at line 94 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

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

Definition at line 110 of file FFTJetPileupProcessor.cc.

Referenced by FFTJetPileupProcessor(), and produce().

double FFTJetPileupProcessor::pileupEtaPhiArea
private

Definition at line 101 of file FFTJetPileupProcessor.cc.

Referenced by produce().