Description: Runs FFTJet pattern recognition stage and saves the results
Implementation: [Notes on implementation]
Definition at line 64 of file FFTJetPatRecoProducer.cc.
Definition at line 149 of file FFTJetPatRecoProducer.cc.
References buildKernelConvolver(), buildPeakFinder(), fftjetcms::FFTJetInterface::checkConfig(), clusteringTree, convolver, callgraph::cs, distanceCalc, fftjetcms::FFTJetInterface::energyFlow, Exception, fftjetpatrecoproducer_cfi::externalGridFile, externalGridStream, fftjetcms::fftjet_ClusteringTreeSparsifier_parser(), fftjetcms::fftjet_DistanceCalculator_parser(), fftjetcms::fftjet_Grid2d_parser(), fftjetcms::fftjet_PeakSelector_parser(), fftjetcms::fftjet_ScaleSet_parser(), fftjetcms::FFTJetInterface::getEventScale(), edm::ParameterSet::getParameter(), mps_fire::i, makeClusteringTree, fftjetpatrecoproducer_cfi::maxAdaptiveScales, fftjetpatrecoproducer_cfi::minAdaptiveRatioLog, MillePedeFileConverter_cfg::out, fftjetcms::FFTJetInterface::outputLabel, peakSelector, sequencer, sparsifier, fftjetpatrecoproducer_cfi::SparsifierConfiguration, storeDiscretizationGrid, storeGridsExternally, fftjetcms::FFTJetInterface::storeInSinglePrecision(), AlCaHLTBitMon_QueryRunRegistry::string, and fftjetdijetfilter_cfi::TreeDistanceCalculator.
161 produces<reco::PattRecoTree<float, reco::PattRecoPeak<float> > >(
outputLabel);
163 produces<reco::PattRecoTree<double, reco::PattRecoPeak<double> > >(
outputLabel);
166 produces<reco::DiscretizedEnergyFlow>(
outputLabel);
175 <<
"FFTJetPatRecoProducer failed to open file " <<
externalGridFile << std::endl;
180 <<
"FFTJetPatRecoProducer is not configured to produce anything" << std::endl;
198 std::unique_ptr<std::vector<double> > iniScales =
206 throw cms::Exception(
"FFTJetBadConfig") <<
"bad adaptive ratio logarithm limit" << std::endl;
212 const unsigned nscales = iniScales->size();
213 for (
unsigned i = 0;
i < nscales; ++
i)
214 if (
cs >= (*iniScales)[
i])
215 throw cms::Exception(
"FFTJetBadConfig") <<
"incompatible scale for complete event" << std::endl;
std::unique_ptr< Sparsifier > sparsifier
T getParameter(std::string const &) const
std::ofstream externalGridStream
double getEventScale() const
void buildKernelConvolver(const edm::ParameterSet &)
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::AbsDistanceCalculator< fftjet::Peak > > distanceCalc
const bool storeDiscretizationGrid
T getUntrackedParameter(std::string const &, T const &) const
std::unique_ptr< Sequencer > sequencer
std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > peakSelector
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
ClusteringTree * clusteringTree
std::unique_ptr< fftjet::AbsDistanceCalculator< fftjet::Peak > > fftjet_DistanceCalculator_parser(const edm::ParameterSet &ps)
const double completeEventDataCutoff
const bool makeClusteringTree
bool storeInSinglePrecision() const
std::unique_ptr< fftjet::AbsConvolverBase< Real > > convolver
fftjet::PeakFinder buildPeakFinder(const edm::ParameterSet &)
std::unique_ptr< fftjet::Functor1< bool, fftjet::Peak > > fftjet_PeakSelector_parser(const edm::ParameterSet &ps)
const bool verifyDataConversion
bool storeGridsExternally
std::unique_ptr< fftjet::ClusteringTreeSparsifier< fftjet::Peak, long > > fftjet_ClusteringTreeSparsifier_parser(const edm::ParameterSet &ps)
fftjet::ProximityClusteringTree< fftjet::Peak, long > ClusteringTree
fftjet::Grid2d< float > * extGrid
std::unique_ptr< std::vector< double > > fftjet_ScaleSet_parser(const edm::ParameterSet &ps)
const std::string outputLabel
Definition at line 370 of file FFTJetPatRecoProducer.cc.
References cms::cuda::assert(), RPCNoise_example::check, clusteringTree, completeEventDataCutoff, fftjetcms::convert_Grid2d_to_float(), fftjetcms::copy_Grid2d_data(), fftjetcms::FFTJetInterface::discretizeEnergyFlow(), fftjetcms::FFTJetInterface::energyFlow, Exception, externalGridStream, extGrid, fftjetcommon_cfi::flow, g, fftjetcms::FFTJetInterface::getEventScale(), iEvent, fftjetcms::FFTJetInterface::loadInputCollection(), makeClusteringTree, eostools::move(), fftjetcms::FFTJetInterface::outputLabel, sequencer, sparseTree, sparsifier, sparsify, storeDiscretizationGrid, storeGridsExternally, fftjetcms::FFTJetInterface::storeInSinglePrecision(), and verifyDataConversion.
388 buildSparseProduct<float>(
iEvent);
390 buildSparseProduct<double>(
iEvent);
393 buildDenseProduct<float>(
iEvent);
395 buildDenseProduct<double>(
iEvent);
402 auto flow = std::make_unique<reco::DiscretizedEnergyFlow>(
403 g.data(),
g.title(),
g.etaMin(),
g.etaMax(),
g.phiBin0Edge(),
g.nEta(),
g.nPhi());
406 fftjet::Grid2d<Real>
check(
422 <<
"Failed to write grid data into an external file" << std::endl;
fftjet::Grid2d< float > * convert_Grid2d_to_float(const fftjet::Grid2d< Numeric > &grid)
std::unique_ptr< Sparsifier > sparsifier
std::ofstream externalGridStream
double getEventScale() const
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
const bool storeDiscretizationGrid
std::unique_ptr< Sequencer > sequencer
std::unique_ptr< fftjet::Grid2d< fftjetcms::Real > > energyFlow
ClusteringTree * clusteringTree
const double completeEventDataCutoff
const bool makeClusteringTree
bool storeInSinglePrecision() const
void copy_Grid2d_data(fftjet::Grid2d< F2 > *to, const fftjet::Grid2d< F1 > &from)
void discretizeEnergyFlow()
const bool verifyDataConversion
bool storeGridsExternally
fftjet::Grid2d< float > * extGrid
const std::string outputLabel