19 for(
const auto& quad: quadruplets) {
20 seedingHitSetsFiller.
emplace_back(quad[0], quad[1], quad[2], quad[3]);
25 template <
typename T_Generator>
43 template <
typename T_Generator>
48 produces<RegionsSeedingHitSets>();
51 template <
typename T_Generator>
56 T_Generator::fillDescriptions(desc);
58 auto label = T_Generator::fillDescriptionsLabel() +
std::string(
"EDProducer");
62 template <
typename T_Generator>
66 const auto& regionDoublets = *hdoublets;
70 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.";
74 if(regionDoublets.empty()) {
81 LogDebug(
"CAHitNtupletEDProducer") <<
"Creating ntuplets for " << regionDoublets.regionSize() <<
" regions, and " << regionDoublets.layerPairsSize() <<
" layer pairs";
82 std::vector<typename T_Generator::ResultType> ntuplets;
83 ntuplets.resize(regionDoublets.regionSize());
84 for(
auto& ntuplet : ntuplets) ntuplet.reserve(
localRA_.
upper());
86 generator_.hitNtuplets(regionDoublets, ntuplets, iSetup, seedingLayerHits);
88 for(
const auto& regionLayerPairs: regionDoublets) {
92 fillNtuplets(seedingHitSetsFiller, ntuplets[index]);
93 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)
virtual 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_
~CAHitNtupletEDProducerT()=default
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_
void update(unsigned int q)