410 const bool useRegionLayers = regionLayerTag.
label() !=
"";
411 if(useRegionLayers) {
412 if(regionTag.
label() !=
"") {
413 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.";
415 if(layersTag.label() !=
"") {
416 throw cms::Exception(
"Configuration") <<
"With non-empty trackingRegionsSeedingLayers, please set also seedingLayers to empty value to reduce confusion, because the parameter is not used";
419 if(regionTag.
label() ==
"" && regionLayerTag.
label() ==
"") {
420 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.";
426 if(produceSeedingHitSets && produceIntermediateHitDoublets) {
427 if(useRegionLayers)
throw cms::Exception(
"Configuration") <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now also 'produceIntermediateHitDoublets is active";
428 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
430 else if(produceSeedingHitSets) {
431 if(useRegionLayers) {
432 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersTogether>>(iConfig, regionLayerTag, consumesCollector());
435 impl_ = std::make_unique<::Impl<::ImplSeedingHitSets, ::DoNothing, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
438 else if(produceIntermediateHitDoublets) {
439 if(useRegionLayers)
throw cms::Exception(
"Configuration") <<
"Mode 'trackingRegionsSeedingLayers' makes sense only with 'produceSeedingHitsSets', now 'produceIntermediateHitDoublets is active instead";
440 impl_ = std::make_unique<::Impl<::DoNothing, ::ImplIntermediateHitDoublets, ::RegionsLayersSeparate>>(iConfig, layersTag, regionTag, consumesCollector());
443 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";
446 if(clusterCheckTag.label() !=
"")
449 impl_->produces(*
this);
T getParameter(std::string const &) const
std::unique_ptr<::ImplBase > impl_
edm::EDGetTokenT< bool > clusterCheckToken_
produceIntermediateHitDoublets