18 for(
const auto& quad: quadruplets) {
19 seedingHitSetsFiller.
emplace_back(quad[0], quad[1], quad[2], quad[3]);
24 template <
typename T_Generator>
42 template <
typename T_Generator>
47 produces<RegionsSeedingHitSets>();
50 template <
typename T_Generator>
55 T_Generator::fillDescriptions(desc);
57 auto label = T_Generator::fillDescriptionsLabel() +
std::string(
"EDProducer");
61 template <
typename T_Generator>
65 const auto& regionDoublets = *hdoublets;
69 throw cms::Exception(
"LogicError") <<
"CAHitNtupletEDProducer expects SeedingLayerSetsHits::numberOfLayersInSet() to be >= " <<
T_Generator::minLayers <<
", got " << seedingLayerHits.
numberOfLayersInSet() <<
". This is likely caused by a configuration error of this module, HitPairEDProducer, or SeedingLayersEDProducer.";
73 if(regionDoublets.empty()) {
80 LogDebug(
"CAHitNtupletEDProducer") <<
"Creating ntuplets for " << regionDoublets.regionSize() <<
" regions, and " << regionDoublets.layerPairsSize() <<
" layer pairs";
81 std::vector<OrderedHitSeeds> ntuplets;
82 ntuplets.resize(regionDoublets.regionSize());
83 for(
auto& ntuplet : ntuplets) ntuplet.reserve(
localRA_.
upper());
85 generator_.hitNtuplets(regionDoublets, ntuplets, iSetup, seedingLayerHits);
87 for(
const auto& regionLayerPairs: regionDoublets) {
91 fillNtuplets(seedingHitSetsFiller, ntuplets[index]);
92 ntuplets[
index].clear();
unsigned short numberOfLayersInSet() const
Get number of layers in each SeedingLayerSets.
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
CAHitNtupletEDProducerT(const edm::ParameterSet &iConfig)
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::EDGetTokenT< IntermediateHitDoublets > doubletToken_
Helper class enforcing correct way of filling the doublets of a region.
void emplace_back(Args &&...args)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::RunningAverage localRA_
~CAHitNtupletEDProducerT() override=default
void update(unsigned int q)