85 clusterizer_ = std::make_unique<MTDThresholdClusterizer>(conf);
87 throw cms::Exception(
"MTDClusterProducer") <<
"[MTDClusterProducer]:" 89 <<
"Possible choices:\n" 90 <<
" MTDThresholdClusterizer";
103 descriptions.
add(
"mtdClusterProducer", desc);
126 auto outputBarrel = std::make_unique<FTLClusterCollection>();
127 auto outputEndcap = std::make_unique<FTLClusterCollection>();
129 run(*inputBarrel, *outputBarrel);
130 run(*inputEndcap, *outputEndcap);
139 template <
typename T>
142 throw cms::Exception(
"MTDClusterProducer") <<
" at least one clusterizer is not ready -- can't run!";
148 <<
" MTDClusters for " << input.size() <<
" Hits.";
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::unique_ptr< MTDClusterizerBase > clusterizer_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::Event &e, const edm::EventSetup &c) override
The "Event" entrypoint: gets called by framework for every event.
const edm::EDGetTokenT< FTLRecHitCollection > btlHits_
const edm::EDGetTokenT< FTLRecHitCollection > etlHits_
static std::string const input
MTDClusterProducer(const edm::ParameterSet &conf)
Constructor: set the ParameterSet and defer all thinking to setupClusterizer().
static void fillDescriptions(edm::ParameterSetDescription &desc)
#define DEFINE_FWK_MODULE(type)
const MTDTopology * topo_
EDProducer to cluster FTLRecHits into FTLClusters.
void run(const T &input, FTLClusterCollection &output)
Iterate over DetUnits, and invoke the PixelClusterizer on each.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const std::string clusterMode_
const std::string ftlbInstance_
~MTDClusterProducer() override=default
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const std::string ftleInstance_
T const * product() const
const MTDGeometry * geom_