CMS 3D CMS Logo

FFTJetProducer.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: RecoJets/FFTJetProducers
4 // Class: FFTJetProducer
5 //
21 //
22 // Original Author: Igor Volobouev
23 // Created: Sun Jun 20 14:32:36 CDT 2010
24 //
25 //
26 
27 #ifndef RecoJets_FFTJetProducers_FFTJetProducer_h
28 #define RecoJets_FFTJetProducers_FFTJetProducer_h
29 
30 #include <memory>
31 
32 // FFTJet headers
33 #include "fftjet/AbsRecombinationAlg.hh"
34 #include "fftjet/AbsVectorRecombinationAlg.hh"
35 #include "fftjet/SparseClusteringTree.hh"
36 
37 // Additional FFTJet headers
38 #include "fftjet/VectorRecombinationAlgFactory.hh"
39 #include "fftjet/RecombinationAlgFactory.hh"
40 
49 
55 
57 
58 // framework include files
62 
64 
65 // local FFTJet-related definitions
69 
70 namespace fftjetcms {
72 }
73 
74 //
75 // class declaration
76 //
78 public:
79  typedef fftjet::RecombinedJet<fftjetcms::VectorLike> RecoFFTJet;
80  typedef fftjet::SparseClusteringTree<fftjet::Peak, long> SparseTree;
81 
82  // Masks for the status bits. Do not add anything
83  // here -- higher bits (starting with 0x1000) will be
84  // used to indicate jet correction levels applied.
85  enum StatusBits {
86  RESOLUTION = 0xff,
91  };
92 
94 
95  explicit FFTJetProducer(const edm::ParameterSet&);
96  // Explicitly disable other ways to construct this object
97  FFTJetProducer() = delete;
98  FFTJetProducer(const FFTJetProducer&) = delete;
99  FFTJetProducer& operator=(const FFTJetProducer&) = delete;
100 
101  ~FFTJetProducer() override;
102 
103  // Parser for the resolution enum
105 
106 protected:
107  // Functions which should be overriden from the base
108  void beginJob() override;
109  void produce(edm::Event&, const edm::EventSetup&) override;
110  void endJob() override;
111 
112  // The following functions can be overriden by derived classes
113  // in order to adjust jet reconstruction algorithm behavior.
114 
115  // Override the following method in order to implement
116  // your own precluster selection strategy
117  virtual void selectPreclusters(const SparseTree& tree,
118  const fftjet::Functor1<bool, fftjet::Peak>& peakSelector,
119  std::vector<fftjet::Peak>* preclusters);
120 
121  // Precluster maker from GenJets (useful in calibration)
122  virtual void genJetPreclusters(const SparseTree& tree,
123  edm::Event&,
124  const edm::EventSetup&,
125  const fftjet::Functor1<bool, fftjet::Peak>& peakSelector,
126  std::vector<fftjet::Peak>* preclusters);
127 
128  // Override the following method (which by default does not do
129  // anything) in order to implement your own process-dependent
130  // assignment of membership functions to preclusters. This method
131  // will be called once per event, just before the main algorithm.
132  virtual void assignMembershipFunctions(std::vector<fftjet::Peak>* preclusters);
133 
134  // Parser for the peak selector
135  virtual std::unique_ptr<fftjet::Functor1<bool, fftjet::Peak> > parse_peakSelector(const edm::ParameterSet&);
136 
137  // Parser for the default jet membership function
138  virtual std::unique_ptr<fftjet::ScaleSpaceKernel> parse_jetMembershipFunction(const edm::ParameterSet&);
139 
140  // Parser for the background membership function
141  virtual std::unique_ptr<fftjetcms::AbsBgFunctor> parse_bgMembershipFunction(const edm::ParameterSet&);
142 
143  // Calculator for the recombination scale
144  virtual std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > parse_recoScaleCalcPeak(const edm::ParameterSet&);
145 
146  // Calculator for the recombination scale ratio
147  virtual std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > parse_recoScaleRatioCalcPeak(
148  const edm::ParameterSet&);
149 
150  // Calculator for the membership function factor
151  virtual std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > parse_memberFactorCalcPeak(const edm::ParameterSet&);
152 
153  // Similar calculators for the iterative algorithm
154  virtual std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > parse_recoScaleCalcJet(const edm::ParameterSet&);
155 
156  virtual std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > parse_recoScaleRatioCalcJet(const edm::ParameterSet&);
157 
158  virtual std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > parse_memberFactorCalcJet(const edm::ParameterSet&);
159 
160  // Calculator of the distance between jets which is used to make
161  // the decision about convergence of the iterative algorithm
162  virtual std::unique_ptr<fftjet::Functor2<double, RecoFFTJet, RecoFFTJet> > parse_jetDistanceCalc(
163  const edm::ParameterSet&);
164 
165  // Pile-up density calculator
166  virtual std::unique_ptr<fftjetcms::AbsPileupCalculator> parse_pileupDensityCalc(const edm::ParameterSet& ps);
167 
168  // The following function performs most of the precluster selection
169  // work in this module. You might want to reuse it if only a slight
170  // modification of the "selectPreclusters" method is desired.
171  void selectTreeNodes(const SparseTree& tree,
172  const fftjet::Functor1<bool, fftjet::Peak>& peakSelect,
173  std::vector<SparseTree::NodeId>* nodes);
174 
175 private:
176  typedef fftjet::AbsVectorRecombinationAlg<fftjetcms::VectorLike, fftjetcms::BgData> RecoAlg;
177  typedef fftjet::AbsRecombinationAlg<fftjetcms::Real, fftjetcms::VectorLike, fftjetcms::BgData> GridAlg;
178 
179  // Useful local utilities
180  template <class Real>
181  void loadSparseTreeData(const edm::Event&);
182 
183  void removeFakePreclusters();
184 
185  // The following methods do most of the work.
186  // The following function tells us if the grid was rebuilt.
187  bool loadEnergyFlow(const edm::Event& iEvent, std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> >& flow);
188  void buildGridAlg();
190  bool checkConvergence(const std::vector<RecoFFTJet>& previousIterResult, std::vector<RecoFFTJet>& thisIterResult);
193  void saveResults(edm::Event& iEvent, const edm::EventSetup&, unsigned nPreclustersFound);
194 
195  template <typename Jet>
197 
198  template <typename Jet>
199  void makeProduces(const std::string& alias, const std::string& tag);
200 
201  // The following function scans the pile-up density
202  // and fills the pile-up grid. Can be overriden if
203  // necessary.
205  std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> >& density);
206 
207  // Similar function for getting pile-up shape from the database
208  virtual void determinePileupDensityFromDB(const edm::Event& iEvent,
209  const edm::EventSetup& iSetup,
210  std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> >& density);
211 
212  // The following function builds the pile-up estimate
213  // for each jet
214  void determinePileup();
215 
216  // The following function returns the number of iterations
217  // performed. If this number equals to or less than "maxIterations"
218  // then the iterations have converged. If the number larger than
219  // "maxIterations" then the iterations failed to converge (note,
220  // however, that only "maxIterations" iterations would still be
221  // performed).
222  unsigned iterateJetReconstruction();
223 
224  // A function to set jet status bits
225  static void setJetStatusBit(RecoFFTJet* jet, int mask, bool value);
226 
227  //
228  // ----------member data ---------------------------
229  //
230 
231  // Local copy of the module configuration
233 
234  // Label for the tree produced by FFTJetPatRecoProducer
236 
237  // Are we going to use energy flow discretization grid as input
238  // to jet reconstruction?
240 
241  // Are we going to rebuild the energy flow discretization grid
242  // or to reuse the grid made by FFTJetPatRecoProducer?
243  const bool reuseExistingGrid;
244 
245  // Are we iterating?
246  const unsigned maxIterations;
247 
248  // Parameters which affect iteration convergence
249  const unsigned nJetsRequiredToConverge;
250  const double convergenceDistance;
251 
252  // Are we building assignments of collection members to jets?
253  const bool assignConstituents;
254 
255  // Are we resumming the constituents to determine jet 4-vectors?
256  // This might make sense if FFTJet is used in the crisp, gridded
257  // mode to determine jet areas, and vector recombination is desired.
258  const bool resumConstituents;
259 
260  // Are we going to subtract the pile-up? Note that
261  // pile-up subtraction does not modify eta and phi moments.
262  const bool calculatePileup;
263  const bool subtractPileup;
265 
266  // Label for the pile-up energy flow. Must be specified
267  // if the pile-up is subtracted.
269 
270  // Scale for the peak selection (if the scale is fixed)
271  const double fixedScale;
272 
273  // Minimum and maximum scale for searching stable configurations
274  const double minStableScale;
275  const double maxStableScale;
276 
277  // Stability "alpha"
278  const double stabilityAlpha;
279 
280  // Not sure at this point how to treat noise... For now, this is
281  // just a single configurable number...
282  const double noiseLevel;
283 
284  // Number of clusters requested (if the scale is adaptive)
285  const unsigned nClustersRequested;
286 
287  // Maximum eta for the grid-based algorithm
288  const double gridScanMaxEta;
289 
290  // Parameters related to the recombination algorithm
292  const bool isCrisp;
293  const double unlikelyBgWeight;
295 
296  // Label for the genJets used as seeds for jets
298 
299  // Maximum number of preclusters to use as jet seeds.
300  // This does not take into account the preclusters
301  // for which the value of the membership factor is 0.
302  const unsigned maxInitialPreclusters;
303 
304  // Resolution. The corresponding parameter value
305  // should be one of "fixed", "maximallyStable",
306  // "globallyAdaptive", "locallyAdaptive", or "fromGenJets".
308 
309  // Parameters related to the pileup shape stored
310  // in the database
315 
316  // Scales used
317  std::unique_ptr<std::vector<double> > iniScales;
318 
319  // The sparse clustering tree
321 
322  // Peak selector for the peaks already in the tree
323  std::unique_ptr<fftjet::Functor1<bool, fftjet::Peak> > peakSelector;
324 
325  // Recombination algorithms and related quantities
326  std::unique_ptr<RecoAlg> recoAlg;
327  std::unique_ptr<GridAlg> gridAlg;
328  std::unique_ptr<fftjet::ScaleSpaceKernel> jetMembershipFunction;
329  std::unique_ptr<fftjetcms::AbsBgFunctor> bgMembershipFunction;
330 
331  // Calculator for the recombination scale
332  std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > recoScaleCalcPeak;
333 
334  // Calculator for the recombination scale ratio
335  std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > recoScaleRatioCalcPeak;
336 
337  // Calculator for the membership function factor
338  std::unique_ptr<fftjet::Functor1<double, fftjet::Peak> > memberFactorCalcPeak;
339 
340  // Similar calculators for the iterative algorithm
341  std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > recoScaleCalcJet;
342  std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > recoScaleRatioCalcJet;
343  std::unique_ptr<fftjet::Functor1<double, RecoFFTJet> > memberFactorCalcJet;
344 
345  // Calculator for the jet distance used to estimate convergence
346  // of the iterative algorithm
347  std::unique_ptr<fftjet::Functor2<double, RecoFFTJet, RecoFFTJet> > jetDistanceCalc;
348 
349  // Vector of selected tree nodes
350  std::vector<SparseTree::NodeId> nodes;
351 
352  // Vector of selected preclusters
353  std::vector<fftjet::Peak> preclusters;
354 
355  // Vector of reconstructed jets (we will refill it in every event)
356  std::vector<RecoFFTJet> recoJets;
357 
358  // Cluster occupancy calculated as a function of level number
359  std::vector<unsigned> occupancy;
360 
361  // The thresholds obtained by the LOCALLY_ADAPTIVE method
362  std::vector<double> thresholds;
363 
364  // Minimum, maximum and used level calculated by some algorithms
366 
367  // Unclustered/unused energy produced during recombination
369  double unused;
370 
371  // Quantities defined below are used in the iterative mode only
372  std::vector<fftjet::Peak> iterPreclusters;
373  std::vector<RecoFFTJet> iterJets;
375 
376  // Vectors of constituents
377  std::vector<std::vector<reco::CandidatePtr> > constituents;
378 
379  // Vector of pile-up. We will subtract it from the
380  // 4-vectors of reconstructed jets.
381  std::vector<fftjetcms::VectorLike> pileup;
382 
383  // The pile-up transverse energy density discretization grid.
384  // Note that this is _density_, not energy. To get energy,
385  // multiply by cell area.
386  std::unique_ptr<fftjet::Grid2d<fftjetcms::Real> > pileupEnergyFlow;
387 
388  // The functor that calculates the pile-up density
389  std::unique_ptr<fftjetcms::AbsPileupCalculator> pileupDensityCalc;
390 
391  // Memory buffers related to pile-up subtraction
392  std::vector<fftjet::AbsKernel2d*> memFcns2dVec;
393  std::vector<double> doubleBuf;
394  std::vector<unsigned> cellCountsVec;
395 
396  // Tokens for data access
401 };
402 
403 #endif // RecoJets_FFTJetProducers_FFTJetProducer_h
FFTJetProducer::maxLevel
unsigned maxLevel
Definition: FFTJetProducer.h:365
FFTJetProducer::selectPreclusters
virtual void selectPreclusters(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelector, std::vector< fftjet::Peak > *preclusters)
Definition: FFTJetProducer.cc:227
FFTJetProducer::isCrisp
const bool isCrisp
Definition: FFTJetProducer.h:292
FFTJetProducer::useGriddedAlgorithm
const bool useGriddedAlgorithm
Definition: FFTJetProducer.h:239
FFTJetProducer::doubleBuf
std::vector< double > doubleBuf
Definition: FFTJetProducer.h:393
FFTJetProducer::pileupEnergyFlow
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > pileupEnergyFlow
Definition: FFTJetProducer.h:386
FFTJetProducer::loadPileupFromDB
bool loadPileupFromDB
Definition: FFTJetProducer.h:314
FFTJetProducer::RecoAlg
fftjet::AbsVectorRecombinationAlg< fftjetcms::VectorLike, fftjetcms::BgData > RecoAlg
Definition: FFTJetProducer.h:176
FFTJetProducer::FIXED
Definition: FFTJetProducer.h:93
FFTJetProducer::assignConstituents
const bool assignConstituents
Definition: FFTJetProducer.h:253
fftjetcms
Definition: AbsPileupCalculator.h:15
FFTJetProducer::parse_peakSelector
virtual std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > parse_peakSelector(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:740
FFTJetProducer::recoAlg
std::unique_ptr< RecoAlg > recoAlg
Definition: FFTJetProducer.h:326
FFTJetProducer::parse_recoScaleRatioCalcJet
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleRatioCalcJet(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:782
FFTJetProducer::StatusBits
StatusBits
Definition: FFTJetProducer.h:85
FFTJetProducer::recombinationDataCutoff
const double recombinationDataCutoff
Definition: FFTJetProducer.h:294
edm::EDGetTokenT
Definition: EDGetToken.h:33
FFTJetProducer::RESOLUTION
Definition: FFTJetProducer.h:86
FFTJetProducer::endJob
void endJob() override
Definition: FFTJetProducer.cc:1099
adjustForPileup.h
FFTJetProducer::myConfiguration
const edm::ParameterSet myConfiguration
Definition: FFTJetProducer.h:232
FFTJetProducer::recoJets
std::vector< RecoFFTJet > recoJets
Definition: FFTJetProducer.h:356
tree
Definition: tree.py:1
FFTJetProducer::parse_recoScaleRatioCalcPeak
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleRatioCalcPeak(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:766
FFTJetProducer::pileupTableCategory
std::string pileupTableCategory
Definition: FFTJetProducer.h:313
FFTJetProducer::recoScaleRatioCalcPeak
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleRatioCalcPeak
Definition: FFTJetProducer.h:335
fftjetTypedefs.h
FFTJetProducer::usedLevel
unsigned usedLevel
Definition: FFTJetProducer.h:365
FFTJetProducer::RecoFFTJet
fftjet::RecombinedJet< fftjetcms::VectorLike > RecoFFTJet
Definition: FFTJetProducer.h:79
fftjetcms::VectorLike
math::XYZTLorentzVector VectorLike
Definition: fftjetTypedefs.h:26
clusteringTreeConverters.h
FFTJPTJetCollection.h
FFTJetProducer::loadSparseTreeData
void loadSparseTreeData(const edm::Event &)
Definition: FFTJetProducer.cc:187
FFTJetProducer::GLOBALLY_ADAPTIVE
Definition: FFTJetProducer.h:93
FFTJetProducer::parse_recoScaleCalcPeak
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleCalcPeak(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:755
FFTJetProducer::recoScaleRatioCalcJet
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleRatioCalcJet
Definition: FFTJetProducer.h:342
FFTJetProducer::LOCALLY_ADAPTIVE
Definition: FFTJetProducer.h:93
FFTJetProducer::Resolution
Resolution
Definition: FFTJetProducer.h:93
jetConverters.h
FFTJetProducer::convergenceDistance
const double convergenceDistance
Definition: FFTJetProducer.h:250
FFTJetProducer::PILEUP_SUBTRACTED_PT
Definition: FFTJetProducer.h:90
FFTJetProducer::treeLabel
const edm::InputTag treeLabel
Definition: FFTJetProducer.h:235
FFTJetProducerSummary.h
FFTJetProducer::selectTreeNodes
void selectTreeNodes(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelect, std::vector< SparseTree::NodeId > *nodes)
Definition: FFTJetProducer.cc:249
FFTJetInterface.h
FFTGenJetCollection.h
FFTJetProducer::recombinationAlgorithm
const std::string recombinationAlgorithm
Definition: FFTJetProducer.h:291
CandidateFwd.h
FFTJetProducer::parse_bgMembershipFunction
virtual std::unique_ptr< fftjetcms::AbsBgFunctor > parse_bgMembershipFunction(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:750
FFTJetProducer::~FFTJetProducer
~FFTJetProducer() override
Definition: FFTJetProducer.cc:181
matchOneToOne.h
FFTJetProducer::minLevel
unsigned minLevel
Definition: FFTJetProducer.h:365
fftjetcms::FFTJetInterface
Definition: FFTJetInterface.h:52
FFTJetProducer::prepareRecombinationScales
void prepareRecombinationScales()
Definition: FFTJetProducer.cc:329
FFTJetProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: FFTJetProducer.cc:638
FFTJetProducer::peakSelector
std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > peakSelector
Definition: FFTJetProducer.h:323
FFTJetProducer
Definition: FFTJetProducer.h:77
FFTJetProducer::PILEUP_CALCULATED
Definition: FFTJetProducer.h:88
FFTJetProducer::genJetPreclusters
virtual void genJetPreclusters(const SparseTree &tree, edm::Event &, const edm::EventSetup &, const fftjet::Functor1< bool, fftjet::Peak > &peakSelector, std::vector< fftjet::Peak > *preclusters)
Definition: FFTJetProducer.cc:202
FFTBasicJetCollection.h
FFTJetProducer::beginJob
void beginJob() override
Definition: FFTJetProducer.cc:800
FFTJetProducer::input_pusummary_token_
edm::EDGetTokenT< reco::FFTJetPileupSummary > input_pusummary_token_
Definition: FFTJetProducer.h:400
FFTJetProducer::recoScaleCalcPeak
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleCalcPeak
Definition: FFTJetProducer.h:332
FFTJetProducer::iniScales
std::unique_ptr< std::vector< double > > iniScales
Definition: FFTJetProducer.h:317
FFTJetProducer::maxStableScale
const double maxStableScale
Definition: FFTJetProducer.h:275
FFTJetProducer::nJetsRequiredToConverge
const unsigned nJetsRequiredToConverge
Definition: FFTJetProducer.h:249
FFTJetProducer::jetMembershipFunction
std::unique_ptr< fftjet::ScaleSpaceKernel > jetMembershipFunction
Definition: FFTJetProducer.h:328
FFTJetProducer::GridAlg
fftjet::AbsRecombinationAlg< fftjetcms::Real, fftjetcms::VectorLike, fftjetcms::BgData > GridAlg
Definition: FFTJetProducer.h:177
FFTJetProducer::unclustered
fftjetcms::VectorLike unclustered
Definition: FFTJetProducer.h:368
FFTJetProducer::buildGridAlg
void buildGridAlg()
Definition: FFTJetProducer.cc:345
FFTJetProducer::MAXIMALLY_STABLE
Definition: FFTJetProducer.h:93
FFTJetProducer::thresholds
std::vector< double > thresholds
Definition: FFTJetProducer.h:362
edm::ParameterSet
Definition: ParameterSet.h:47
FFTJetProducer::pileup
std::vector< fftjetcms::VectorLike > pileup
Definition: FFTJetProducer.h:381
FFTJetProducer::parse_jetDistanceCalc
virtual std::unique_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > parse_jetDistanceCalc(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:793
FFTJetProducer::subtractPileupAs4Vec
const bool subtractPileupAs4Vec
Definition: FFTJetProducer.h:264
Event.h
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
FFTJetProducer::FROM_GENJETS
Definition: FFTJetProducer.h:93
FFTJetProducer::memberFactorCalcPeak
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > memberFactorCalcPeak
Definition: FFTJetProducer.h:338
FFTJetProducer::determinePileupDensityFromDB
virtual void determinePileupDensityFromDB(const edm::Event &iEvent, const edm::EventSetup &iSetup, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &density)
Definition: FFTJetProducer.cc:948
FFTJetProducer::iterateJetReconstruction
unsigned iterateJetReconstruction()
Definition: FFTJetProducer.cc:409
JetToPeakDistance.h
FFTJetProducer::iterationsPerformed
unsigned iterationsPerformed
Definition: FFTJetProducer.h:374
FFTJetProducer::parse_resolution
static Resolution parse_resolution(const std::string &name)
Definition: FFTJetProducer.cc:91
FFTJetProducer::resumConstituents
const bool resumConstituents
Definition: FFTJetProducer.h:258
iEvent
int iEvent
Definition: GenABIO.cc:224
FFTJetProducer::pileupLabel
const edm::InputTag pileupLabel
Definition: FFTJetProducer.h:268
FFTJetProducer::stabilityAlpha
const double stabilityAlpha
Definition: FFTJetProducer.h:278
value
Definition: value.py:1
FFTTrackJetCollection.h
FFTJetProducer::writeJets
void writeJets(edm::Event &iEvent, const edm::EventSetup &)
Definition: FFTJetProducer.cc:517
FFTJetProducer::occupancy
std::vector< unsigned > occupancy
Definition: FFTJetProducer.h:359
FFTJetProducer::genJetsLabel
const edm::InputTag genJetsLabel
Definition: FFTJetProducer.h:297
FFTJetProducer::jetDistanceCalc
std::unique_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > jetDistanceCalc
Definition: FFTJetProducer.h:347
FFTJetProducer::gridScanMaxEta
const double gridScanMaxEta
Definition: FFTJetProducer.h:288
edm::EventSetup
Definition: EventSetup.h:58
FFTJetProducer::CONSTITUENTS_RESUMMED
Definition: FFTJetProducer.h:87
DiscretizedEnergyFlow
A grid filled with discretized energy flow.
FFTJetProducer::reuseExistingGrid
const bool reuseExistingGrid
Definition: FFTJetProducer.h:243
FFTJetProducer::SparseTree
fftjet::SparseClusteringTree< fftjet::Peak, long > SparseTree
Definition: FFTJetProducer.h:80
FFTJetProducer::makeProduces
void makeProduces(const std::string &alias, const std::string &tag)
Definition: FFTJetProducer.cc:107
FFTJetProducer::input_genjet_token_
edm::EDGetTokenT< std::vector< reco::FFTAnyJet< reco::GenJet > > > input_genjet_token_
Definition: FFTJetProducer.h:398
FFTJetProducer::unused
double unused
Definition: FFTJetProducer.h:369
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FFTJetProducer::determinePileupDensityFromConfig
virtual void determinePileupDensityFromConfig(const edm::Event &iEvent, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &density)
Definition: FFTJetProducer.cc:919
FFTJetProducer::unlikelyBgWeight
const double unlikelyBgWeight
Definition: FFTJetProducer.h:293
FFTJetProducer::setJetStatusBit
static void setJetStatusBit(RecoFFTJet *jet, int mask, bool value)
Definition: FFTJetProducer.cc:910
FFTJetProducer::subtractPileup
const bool subtractPileup
Definition: FFTJetProducer.h:263
FFTJetProducer::PILEUP_SUBTRACTED_4VEC
Definition: FFTJetProducer.h:89
FFTJetProducer::recoScaleCalcJet
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleCalcJet
Definition: FFTJetProducer.h:341
FFTJetProducer::constituents
std::vector< std::vector< reco::CandidatePtr > > constituents
Definition: FFTJetProducer.h:377
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
fftjetcommon_cfi.flow
flow
Definition: fftjetcommon_cfi.py:191
FFTJetProducer::memberFactorCalcJet
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > memberFactorCalcJet
Definition: FFTJetProducer.h:343
FFTJetProducer::removeFakePreclusters
void removeFakePreclusters()
Definition: FFTJetProducer.cc:887
FFTJetProducer::checkConvergence
bool checkConvergence(const std::vector< RecoFFTJet > &previousIterResult, std::vector< RecoFFTJet > &thisIterResult)
Definition: FFTJetProducer.cc:387
FFTJetProducer::input_energyflow_token_
edm::EDGetTokenT< reco::DiscretizedEnergyFlow > input_energyflow_token_
Definition: FFTJetProducer.h:399
Frameworkfwd.h
metsig::jet
Definition: SignAlgoResolutions.h:47
FFTJetProducer::iterJets
std::vector< RecoFFTJet > iterJets
Definition: FFTJetProducer.h:373
FFTJetProducer::parse_memberFactorCalcPeak
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_memberFactorCalcPeak(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:772
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:128
FFTJetProducer::bgMembershipFunction
std::unique_ptr< fftjetcms::AbsBgFunctor > bgMembershipFunction
Definition: FFTJetProducer.h:329
FFTJetProducer::cellCountsVec
std::vector< unsigned > cellCountsVec
Definition: FFTJetProducer.h:394
FFTJetParameterParser.h
FFTJetProducer::parse_memberFactorCalcJet
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_memberFactorCalcJet(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:787
FFTJetProducer::gridAlg
std::unique_ptr< GridAlg > gridAlg
Definition: FFTJetProducer.h:327
FFTJetProducer::loadEnergyFlow
bool loadEnergyFlow(const edm::Event &iEvent, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &flow)
Definition: FFTJetProducer.cc:368
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
FFTPFJetCollection.h
FFTJetProducer::maxInitialPreclusters
const unsigned maxInitialPreclusters
Definition: FFTJetProducer.h:302
FFTJetProducer::sparseTree
SparseTree sparseTree
Definition: FFTJetProducer.h:320
FFTJetProducer::pileupTableName
std::string pileupTableName
Definition: FFTJetProducer.h:312
FFTJetProducer::nClustersRequested
const unsigned nClustersRequested
Definition: FFTJetProducer.h:285
FFTJetProducer::fixedScale
const double fixedScale
Definition: FFTJetProducer.h:271
FFTJetProducer::calculatePileup
const bool calculatePileup
Definition: FFTJetProducer.h:262
DiscretizedEnergyFlow.h
FFTJetProducer::resolution
Resolution resolution
Definition: FFTJetProducer.h:307
FFTJetProducer::parse_jetMembershipFunction
virtual std::unique_ptr< fftjet::ScaleSpaceKernel > parse_jetMembershipFunction(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:745
FFTJetProducer::input_recotree_token_
edm::EDGetTokenT< reco::PattRecoTree< fftjetcms::Real, reco::PattRecoPeak< fftjetcms::Real > > > input_recotree_token_
Definition: FFTJetProducer.h:397
FFTJetProducer::parse_pileupDensityCalc
virtual std::unique_ptr< fftjetcms::AbsPileupCalculator > parse_pileupDensityCalc(const edm::ParameterSet &ps)
Definition: FFTJetProducer.cc:761
FFTCaloJetCollection.h
ParameterSet.h
FFTJetProducer::memFcns2dVec
std::vector< fftjet::AbsKernel2d * > memFcns2dVec
Definition: FFTJetProducer.h:392
FFTJetProducer::iterPreclusters
std::vector< fftjet::Peak > iterPreclusters
Definition: FFTJetProducer.h:372
FFTJetProducer::determineVectorConstituents
void determineVectorConstituents()
Definition: FFTJetProducer.cc:496
FFTJetProducer::minStableScale
const double minStableScale
Definition: FFTJetProducer.h:274
FFTJetProducer::pileupTableRecord
std::string pileupTableRecord
Definition: FFTJetProducer.h:311
edm::Event
Definition: Event.h:73
AbsPileupCalculator.h
FFTJetProducer::saveResults
void saveResults(edm::Event &iEvent, const edm::EventSetup &, unsigned nPreclustersFound)
Definition: FFTJetProducer.cc:602
FFTJetProducer::maxIterations
const unsigned maxIterations
Definition: FFTJetProducer.h:246
FFTJetProducer::operator=
FFTJetProducer & operator=(const FFTJetProducer &)=delete
FFTJetProducer::preclusters
std::vector< fftjet::Peak > preclusters
Definition: FFTJetProducer.h:353
FFTJetProducer::determinePileup
void determinePileup()
Definition: FFTJetProducer.cc:988
edm::InputTag
Definition: InputTag.h:15
FFTJetProducer::noiseLevel
const double noiseLevel
Definition: FFTJetProducer.h:282
FFTJetProducer::pileupDensityCalc
std::unique_ptr< fftjetcms::AbsPileupCalculator > pileupDensityCalc
Definition: FFTJetProducer.h:389
FFTJetProducer::assignMembershipFunctions
virtual void assignMembershipFunctions(std::vector< fftjet::Peak > *preclusters)
Definition: FFTJetProducer.cc:797
FFTJetProducer::parse_recoScaleCalcJet
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleCalcJet(const edm::ParameterSet &)
Definition: FFTJetProducer.cc:777
FFTJetProducer::nodes
std::vector< SparseTree::NodeId > nodes
Definition: FFTJetProducer.h:350
FFTJetProducer::determineGriddedConstituents
void determineGriddedConstituents()
Definition: FFTJetProducer.cc:476
fastSimProducer_cff.density
density
Definition: fastSimProducer_cff.py:61
FFTJetProducer::FFTJetProducer
FFTJetProducer()=delete