17 for (
const auto& quad : quadruplets) {
19 seedingHitSetsFiller.
emplace_back(quad[0], quad[1], quad[2]);
21 seedingHitSetsFiller.
emplace_back(quad[0], quad[1], quad[2], quad[3]);
26 template <
typename T_Generator>
44 template <
typename T_Generator>
47 generator_(iConfig, consumesCollector()) {
48 produces<RegionsSeedingHitSets>();
51 template <
typename T_Generator>
58 auto label = T_Generator::fillDescriptionsLabel() +
std::string(
"EDProducer");
62 template <
typename T_Generator>
66 const auto& regionDoublets = *hdoublets;
71 <<
"CAHitNtupletEDProducer expects SeedingLayerSetsHits::numberOfLayersInSet() to be >= "
73 <<
". This is likely caused by a configuration error of this module, HitPairEDProducer, or "
74 "SeedingLayersEDProducer.";
78 if (regionDoublets.empty()) {
82 seedingHitSets->reserve(regionDoublets.regionSize(), localRA_.upper());
83 generator_.initEvent(iEvent, iSetup);
85 LogDebug(
"CAHitNtupletEDProducer") <<
"Creating ntuplets for " << regionDoublets.regionSize() <<
" regions, and "
86 << regionDoublets.layerPairsSize() <<
" layer pairs";
87 std::vector<OrderedHitSeeds> ntuplets;
88 ntuplets.resize(regionDoublets.regionSize());
90 ntuplet.reserve(localRA_.upper());
92 generator_.hitNtuplets(regionDoublets, ntuplets, seedingLayerHits);
94 for (
const auto& regionLayerPairs : regionDoublets) {
98 fillNtuplets(seedingHitSetsFiller, ntuplets[index]);
99 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
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)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::RunningAverage localRA_
~CAHitNtupletEDProducerT() override=default