423 const bool useRegionLayers = !regionLayerTag.
label().empty();
424 if(useRegionLayers) {
425 if(!regionTag.
label().empty()) {
426 throw cms::Exception(
"Configuration") <<
"HitPairEDProducer requires either trackingRegions or trackingRegionsSeedingLayers to be set, now both are set to non-empty value. Set the unneeded parameter to empty value.";
428 if(!layersTag.label().empty()) {
429 throw cms::Exception(
"Configuration") <<
"With non-empty trackingRegionsSeedingLayers, please set also seedingLayers to empty value to reduce confusion, because the parameter is not used";
432 if(regionTag.
label().empty() && regionLayerTag.
label().empty()) {
433 throw cms::Exception(
"Configuration") <<
"HitPairEDProducer requires either trackingRegions or trackingRegionsSeedingLayers to be set, now both are set to empty value. Set the needed parameter to a non-empty value.";
439 if(produceSeedingHitSets && produceIntermediateHitDoublets) {
440 if(useRegionLayers)
throw cms::Exception(
"Configuration") <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now also 'produceIntermediateHitDoublets is active";
441 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
443 else if(produceSeedingHitSets) {
444 if(useRegionLayers) {
445 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersTogether>>(iConfig, regionLayerTag, consumesCollector());
448 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
451 else if(produceIntermediateHitDoublets) {
452 if(useRegionLayers)
throw cms::Exception(
"Configuration") <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now 'produceIntermediateHitDoublets is active instead";
453 impl_ = std::make_unique<::Impl<::DoNothing, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
456 throw cms::Exception(
"Configuration") <<
"HitPairEDProducer requires either produceIntermediateHitDoublets or produceSeedingHitSets to be True. If neither are needed, just remove this module from your sequence/path as it doesn't do anything useful";
459 if(!clusterCheckTag.label().empty())
462 impl_->produces(*
this);
T getParameter(std::string const &) const
std::unique_ptr<::ImplBase > impl_
edm::EDGetTokenT< bool > clusterCheckToken_
produceIntermediateHitDoublets