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