28 #ifndef RecoJets_FFTJetProducers_FFTJetProducer_h
29 #define RecoJets_FFTJetProducers_FFTJetProducer_h
34 #include "fftjet/AbsRecombinationAlg.hh"
35 #include "fftjet/AbsVectorRecombinationAlg.hh"
36 #include "fftjet/SparseClusteringTree.hh"
62 typedef fftjet::RecombinedJet<fftjetcms::VectorLike>
RecoFFTJet;
63 typedef fftjet::SparseClusteringTree<fftjet::Peak,long>
SparseTree;
102 const fftjet::Functor1<bool,fftjet::Peak>&
peakSelector,
113 virtual std::auto_ptr<fftjet::Functor1<bool,fftjet::Peak> >
117 virtual std::auto_ptr<fftjet::ScaleSpaceKernel>
121 virtual std::auto_ptr<fftjetcms::AbsBgFunctor>
125 virtual std::auto_ptr<fftjet::Functor1<double,fftjet::Peak> >
129 virtual std::auto_ptr<fftjet::Functor1<double,fftjet::Peak> >
133 virtual std::auto_ptr<fftjet::Functor1<double,fftjet::Peak> >
137 virtual std::auto_ptr<fftjet::Functor1<double,RecoFFTJet> >
140 virtual std::auto_ptr<fftjet::Functor1<double,RecoFFTJet> >
143 virtual std::auto_ptr<fftjet::Functor1<double,RecoFFTJet> >
148 virtual std::auto_ptr<fftjet::Functor2<double,RecoFFTJet,RecoFFTJet> >
152 virtual std::auto_ptr<fftjetcms::AbsPileupCalculator>
159 const fftjet::Functor1<bool,fftjet::Peak>& peakSelect,
160 std::vector<SparseTree::NodeId>*
nodes);
162 typedef fftjet::AbsVectorRecombinationAlg<
164 typedef fftjet::AbsRecombinationAlg<
182 std::auto_ptr<fftjet::Grid2d<fftjetcms::Real> >& flow);
186 std::vector<RecoFFTJet>& thisIterResult);
190 unsigned nPreclustersFound);
192 template <
typename Jet>
195 template <
typename Jet>
203 std::auto_ptr<fftjet::Grid2d<fftjetcms::Real> >& density);
313 std::auto_ptr<fftjet::Functor1<double,fftjet::Peak> >
326 std::auto_ptr<fftjet::Functor2<double,RecoFFTJet,RecoFFTJet> >
330 std::vector<SparseTree::NodeId>
nodes;
361 std::vector<fftjetcms::VectorLike>
pileup;
377 #endif // RecoJets_FFTJetProducers_FFTJetProducer_h
std::vector< std::vector< reco::CandidatePtr > > constituents
virtual ~FFTJetProducer()
std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > pileupEnergyFlow
std::auto_ptr< RecoAlg > recoAlg
std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > memberFactorCalcPeak
unsigned iterationsPerformed
const bool useGriddedAlgorithm
std::vector< fftjetcms::VectorLike > pileup
static Resolution parse_resolution(const std::string &name)
const bool resumConstituents
void selectTreeNodes(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelect, std::vector< SparseTree::NodeId > *nodes)
const double gridScanMaxEta
void saveResults(edm::Event &iEvent, const edm::EventSetup &, unsigned nPreclustersFound)
virtual std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleRatioCalcPeak(const edm::ParameterSet &)
std::auto_ptr< GridAlg > gridAlg
std::auto_ptr< fftjetcms::AbsPileupCalculator > pileupDensityCalc
virtual void assignMembershipFunctions(std::vector< fftjet::Peak > *preclusters)
virtual std::auto_ptr< fftjet::Functor1< bool, fftjet::Peak > > parse_peakSelector(const edm::ParameterSet &)
virtual std::auto_ptr< fftjetcms::AbsPileupCalculator > parse_pileupDensityCalc(const edm::ParameterSet &ps)
const std::string recombinationAlgorithm
virtual std::auto_ptr< fftjetcms::AbsBgFunctor > parse_bgMembershipFunction(const edm::ParameterSet &)
const bool subtractPileupAs4Vec
const double unlikelyBgWeight
void makeProduces(const std::string &alias, const std::string &tag)
const bool subtractPileup
const unsigned nJetsRequiredToConverge
std::vector< double > doubleBuf
std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleCalcPeak
std::vector< fftjet::AbsKernel2d * > memFcns2dVec
std::vector< RecoFFTJet > recoJets
const double recombinationDataCutoff
std::vector< unsigned > occupancy
const double minStableScale
const double maxStableScale
std::vector< fftjet::Peak > preclusters
void determineVectorConstituents()
virtual std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_memberFactorCalcPeak(const edm::ParameterSet &)
void loadSparseTreeData(const edm::Event &)
std::auto_ptr< fftjetcms::AbsBgFunctor > bgMembershipFunction
const bool reuseExistingGrid
const unsigned nClustersRequested
virtual void produce(edm::Event &, const edm::EventSetup &)
fftjet::AbsVectorRecombinationAlg< fftjetcms::VectorLike, fftjetcms::BgData > RecoAlg
std::auto_ptr< std::vector< double > > iniScales
math::XYZTLorentzVector VectorLike
std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > memberFactorCalcJet
virtual std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleCalcJet(const edm::ParameterSet &)
static void setJetStatusBit(RecoFFTJet *jet, int mask, bool value)
std::vector< RecoFFTJet > iterJets
fftjet::SparseClusteringTree< fftjet::Peak, long > SparseTree
std::vector< unsigned > cellCountsVec
virtual void determinePileupDensity(const edm::Event &iEvent, const edm::InputTag &label, std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > &density)
std::vector< double > thresholds
virtual std::auto_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > parse_jetDistanceCalc(const edm::ParameterSet &)
unsigned iterateJetReconstruction()
fftjet::AbsRecombinationAlg< fftjetcms::Real, fftjetcms::VectorLike, fftjetcms::BgData > GridAlg
const bool calculatePileup
const bool assignConstituents
bool checkConvergence(const std::vector< RecoFFTJet > &previousIterResult, std::vector< RecoFFTJet > &thisIterResult)
A grid filled with discretized energy flow.
const edm::InputTag treeLabel
virtual void selectPreclusters(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelector, std::vector< fftjet::Peak > *preclusters)
FFTJetProducer & operator=(const FFTJetProducer &)
const edm::ParameterSet myConfiguration
fftjet::RecombinedJet< fftjetcms::VectorLike > RecoFFTJet
const double stabilityAlpha
std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleRatioCalcPeak
virtual std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_memberFactorCalcJet(const edm::ParameterSet &)
virtual std::auto_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleCalcPeak(const edm::ParameterSet &)
std::vector< SparseTree::NodeId > nodes
void determineGriddedConstituents()
const double convergenceDistance
void writeJets(edm::Event &iEvent, const edm::EventSetup &)
virtual std::auto_ptr< fftjet::ScaleSpaceKernel > parse_jetMembershipFunction(const edm::ParameterSet &)
virtual std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleRatioCalcJet(const edm::ParameterSet &)
std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleRatioCalcJet
const edm::InputTag pileupLabel
static bool loadEnergyFlow(const edm::Event &iEvent, const edm::InputTag &label, std::auto_ptr< fftjet::Grid2d< fftjetcms::Real > > &flow)
fftjetcms::VectorLike unclustered
std::auto_ptr< fftjet::Functor1< bool, fftjet::Peak > > peakSelector
std::vector< fftjet::Peak > iterPreclusters
std::auto_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > jetDistanceCalc
std::auto_ptr< fftjet::ScaleSpaceKernel > jetMembershipFunction
void removeFakePreclusters()
const unsigned maxIterations
std::auto_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleCalcJet
void prepareRecombinationScales()