432 const bool useRegionLayers = !regionLayerTag.
label().empty();
433 if (useRegionLayers) {
434 if (!regionTag.
label().empty()) {
436 <<
"HitPairEDProducer requires either trackingRegions or trackingRegionsSeedingLayers to be set, now both "
437 "are set to non-empty value. Set the unneeded parameter to empty value.";
439 if (!layersTag.label().empty()) {
441 <<
"With non-empty trackingRegionsSeedingLayers, please set also seedingLayers to empty value to reduce "
442 "confusion, because the parameter is not used";
445 if (regionTag.
label().empty() && regionLayerTag.
label().empty()) {
447 <<
"HitPairEDProducer requires either trackingRegions or trackingRegionsSeedingLayers to be set, now both are "
448 "set to empty value. Set the needed parameter to a non-empty value.";
454 if (produceSeedingHitSets && produceIntermediateHitDoublets) {
457 <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now also "
458 "'produceIntermediateHitDoublets is active";
459 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(
460 iConfig, consumesCollector(), layersTag, regionTag);
461 }
else if (produceSeedingHitSets) {
462 if (useRegionLayers) {
463 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersTogether>>(
464 iConfig, consumesCollector(), regionLayerTag);
466 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersSeparate>>(
467 iConfig, consumesCollector(), layersTag, regionTag);
469 }
else if (produceIntermediateHitDoublets) {
472 <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now "
473 "'produceIntermediateHitDoublets is active instead";
474 impl_ = std::make_unique<::Impl<::DoNothing, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(
475 iConfig, consumesCollector(), layersTag, regionTag);
478 <<
"HitPairEDProducer requires either produceIntermediateHitDoublets or produceSeedingHitSets to be True. If "
479 "neither are needed, just remove this module from your sequence/path as it doesn't do anything useful";
482 if (!clusterCheckTag.label().empty())
485 impl_->produces(producesCollector());
std::unique_ptr<::ImplBase > impl_
tuple produceIntermediateHitDoublets
edm::EDGetTokenT< bool > clusterCheckToken_
tuple produceSeedingHitSets
T getParameter(std::string const &) const