|
|
Go to the documentation of this file.
27 #ifndef RecoJets_FFTJetProducers_FFTJetProducer_h
28 #define RecoJets_FFTJetProducers_FFTJetProducer_h
33 #include "fftjet/AbsRecombinationAlg.hh"
34 #include "fftjet/AbsVectorRecombinationAlg.hh"
35 #include "fftjet/SparseClusteringTree.hh"
38 #include "fftjet/VectorRecombinationAlgFactory.hh"
39 #include "fftjet/RecombinationAlgFactory.hh"
79 typedef fftjet::RecombinedJet<fftjetcms::VectorLike>
RecoFFTJet;
80 typedef fftjet::SparseClusteringTree<fftjet::Peak, long>
SparseTree;
118 const fftjet::Functor1<bool, fftjet::Peak>&
peakSelector,
125 const fftjet::Functor1<bool, fftjet::Peak>&
peakSelector,
172 const fftjet::Functor1<bool, fftjet::Peak>& peakSelect,
173 std::vector<SparseTree::NodeId>*
nodes);
176 typedef fftjet::AbsVectorRecombinationAlg<fftjetcms::VectorLike, fftjetcms::BgData>
RecoAlg;
177 typedef fftjet::AbsRecombinationAlg<fftjetcms::Real, fftjetcms::VectorLike, fftjetcms::BgData>
GridAlg;
180 template <
class Real>
190 bool checkConvergence(
const std::vector<RecoFFTJet>& previousIterResult, std::vector<RecoFFTJet>& thisIterResult);
195 template <
typename Jet>
198 template <
typename Jet>
350 std::vector<SparseTree::NodeId>
nodes;
381 std::vector<fftjetcms::VectorLike>
pileup;
403 #endif // RecoJets_FFTJetProducers_FFTJetProducer_h
virtual void selectPreclusters(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelector, std::vector< fftjet::Peak > *preclusters)
const bool useGriddedAlgorithm
std::vector< double > doubleBuf
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > pileupEnergyFlow
fftjet::AbsVectorRecombinationAlg< fftjetcms::VectorLike, fftjetcms::BgData > RecoAlg
const bool assignConstituents
virtual std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > parse_peakSelector(const edm::ParameterSet &)
std::unique_ptr< RecoAlg > recoAlg
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleRatioCalcJet(const edm::ParameterSet &)
const double recombinationDataCutoff
const edm::ParameterSet myConfiguration
std::vector< RecoFFTJet > recoJets
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleRatioCalcPeak(const edm::ParameterSet &)
std::string pileupTableCategory
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleRatioCalcPeak
fftjet::RecombinedJet< fftjetcms::VectorLike > RecoFFTJet
math::XYZTLorentzVector VectorLike
void loadSparseTreeData(const edm::Event &)
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_recoScaleCalcPeak(const edm::ParameterSet &)
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleRatioCalcJet
const double convergenceDistance
const edm::InputTag treeLabel
void selectTreeNodes(const SparseTree &tree, const fftjet::Functor1< bool, fftjet::Peak > &peakSelect, std::vector< SparseTree::NodeId > *nodes)
const std::string recombinationAlgorithm
virtual std::unique_ptr< fftjetcms::AbsBgFunctor > parse_bgMembershipFunction(const edm::ParameterSet &)
~FFTJetProducer() override
void prepareRecombinationScales()
void produce(edm::Event &, const edm::EventSetup &) override
std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > peakSelector
virtual void genJetPreclusters(const SparseTree &tree, edm::Event &, const edm::EventSetup &, const fftjet::Functor1< bool, fftjet::Peak > &peakSelector, std::vector< fftjet::Peak > *preclusters)
edm::EDGetTokenT< reco::FFTJetPileupSummary > input_pusummary_token_
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > recoScaleCalcPeak
std::unique_ptr< std::vector< double > > iniScales
const double maxStableScale
const unsigned nJetsRequiredToConverge
std::unique_ptr< fftjet::ScaleSpaceKernel > jetMembershipFunction
fftjet::AbsRecombinationAlg< fftjetcms::Real, fftjetcms::VectorLike, fftjetcms::BgData > GridAlg
fftjetcms::VectorLike unclustered
std::vector< double > thresholds
std::vector< fftjetcms::VectorLike > pileup
virtual std::unique_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > parse_jetDistanceCalc(const edm::ParameterSet &)
const bool subtractPileupAs4Vec
std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > memberFactorCalcPeak
virtual void determinePileupDensityFromDB(const edm::Event &iEvent, const edm::EventSetup &iSetup, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &density)
unsigned iterateJetReconstruction()
unsigned iterationsPerformed
static Resolution parse_resolution(const std::string &name)
const bool resumConstituents
const edm::InputTag pileupLabel
const double stabilityAlpha
void writeJets(edm::Event &iEvent, const edm::EventSetup &)
std::vector< unsigned > occupancy
const edm::InputTag genJetsLabel
std::unique_ptr< fftjet::Functor2< double, RecoFFTJet, RecoFFTJet > > jetDistanceCalc
const double gridScanMaxEta
A grid filled with discretized energy flow.
const bool reuseExistingGrid
fftjet::SparseClusteringTree< fftjet::Peak, long > SparseTree
void makeProduces(const std::string &alias, const std::string &tag)
edm::EDGetTokenT< std::vector< reco::FFTAnyJet< reco::GenJet > > > input_genjet_token_
virtual void determinePileupDensityFromConfig(const edm::Event &iEvent, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &density)
const double unlikelyBgWeight
static void setJetStatusBit(RecoFFTJet *jet, int mask, bool value)
const bool subtractPileup
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > recoScaleCalcJet
std::vector< std::vector< reco::CandidatePtr > > constituents
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > memberFactorCalcJet
void removeFakePreclusters()
bool checkConvergence(const std::vector< RecoFFTJet > &previousIterResult, std::vector< RecoFFTJet > &thisIterResult)
edm::EDGetTokenT< reco::DiscretizedEnergyFlow > input_energyflow_token_
std::vector< RecoFFTJet > iterJets
virtual std::unique_ptr< fftjet::Functor1< double, fftjet::Peak > > parse_memberFactorCalcPeak(const edm::ParameterSet &)
std::unique_ptr< fftjetcms::AbsBgFunctor > bgMembershipFunction
std::vector< unsigned > cellCountsVec
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_memberFactorCalcJet(const edm::ParameterSet &)
std::unique_ptr< GridAlg > gridAlg
bool loadEnergyFlow(const edm::Event &iEvent, std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > &flow)
const unsigned maxInitialPreclusters
std::string pileupTableName
const unsigned nClustersRequested
const bool calculatePileup
virtual std::unique_ptr< fftjet::ScaleSpaceKernel > parse_jetMembershipFunction(const edm::ParameterSet &)
edm::EDGetTokenT< reco::PattRecoTree< fftjetcms::Real, reco::PattRecoPeak< fftjetcms::Real > > > input_recotree_token_
virtual std::unique_ptr< fftjetcms::AbsPileupCalculator > parse_pileupDensityCalc(const edm::ParameterSet &ps)
std::vector< fftjet::AbsKernel2d * > memFcns2dVec
std::vector< fftjet::Peak > iterPreclusters
void determineVectorConstituents()
const double minStableScale
std::string pileupTableRecord
void saveResults(edm::Event &iEvent, const edm::EventSetup &, unsigned nPreclustersFound)
const unsigned maxIterations
FFTJetProducer & operator=(const FFTJetProducer &)=delete
std::vector< fftjet::Peak > preclusters
std::unique_ptr< fftjetcms::AbsPileupCalculator > pileupDensityCalc
virtual void assignMembershipFunctions(std::vector< fftjet::Peak > *preclusters)
virtual std::unique_ptr< fftjet::Functor1< double, RecoFFTJet > > parse_recoScaleCalcJet(const edm::ParameterSet &)
std::vector< SparseTree::NodeId > nodes
void determineGriddedConstituents()