diff --git a/FWCore/Framework/interface/EDConsumerBase.h b/FWCore/Framework/interface/EDConsumerBase.h index 315b570f1a9f8..cb36a70bc0de1 100644 --- a/FWCore/Framework/interface/EDConsumerBase.h +++ b/FWCore/Framework/interface/EDConsumerBase.h @@ -25,6 +25,7 @@ #include #include #include +#include // user include files #include "DataFormats/Provenance/interface/BranchType.h" @@ -196,14 +197,15 @@ namespace edm { template auto esConsumes(ESInputTag const& tag) { - auto index = recordESConsumes(Tr, - eventsetup::EventSetupRecordKey::makeKey< - std::conditional_t, - eventsetup::default_record_t>, - ESRecord>>(), - eventsetup::heterocontainer::HCTypeTag::make(), - tag); - return ESGetToken{static_cast(Tr), index, labelFor(index)}; + auto [index, productLabel] = + recordESConsumes(Tr, + eventsetup::EventSetupRecordKey::makeKey< + std::conditional_t, + eventsetup::default_record_t>, + ESRecord>>(), + eventsetup::heterocontainer::HCTypeTag::make(), + tag); + return ESGetToken{static_cast(Tr), index, productLabel}; } template @@ -219,9 +221,8 @@ namespace edm { ///Used with EventSetupRecord::doGet template ESGetTokenGeneric esConsumes(eventsetup::EventSetupRecordKey const& iRecord, eventsetup::DataKey const& iKey) { - return ESGetTokenGeneric(static_cast(Tr), - recordESConsumes(Tr, iRecord, iKey.type(), ESInputTag("", iKey.name().value())), - iRecord.type()); + auto [index, productLabel] = recordESConsumes(Tr, iRecord, iKey.type(), ESInputTag("", iKey.name().value())); + return ESGetTokenGeneric(static_cast(Tr), index, iRecord.type()); } //used for FinalPath @@ -231,12 +232,10 @@ namespace edm { virtual void extendUpdateLookup(BranchType iBranchType, ProductResolverIndexHelper const&); virtual void registerLateConsumes(eventsetup::ESRecordsToProductResolverIndices const&) {} unsigned int recordConsumes(BranchType iBranch, TypeToGet const& iType, edm::InputTag const& iTag, bool iAlwaysGets); - ESTokenIndex recordESConsumes(Transition, - eventsetup::EventSetupRecordKey const&, - eventsetup::heterocontainer::HCTypeTag const&, - edm::ESInputTag const& iTag); - - const char* labelFor(ESTokenIndex) const; + std::tuple recordESConsumes(Transition, + eventsetup::EventSetupRecordKey const&, + eventsetup::heterocontainer::HCTypeTag const&, + edm::ESInputTag const& iTag); void throwTypeMismatch(edm::TypeID const&, EDGetToken) const; void throwBranchMismatch(BranchType, EDGetToken) const; diff --git a/FWCore/Framework/interface/EventSetupRecord.h b/FWCore/Framework/interface/EventSetupRecord.h index c823365cabd15..ef0f091532961 100644 --- a/FWCore/Framework/interface/EventSetupRecord.h +++ b/FWCore/Framework/interface/EventSetupRecord.h @@ -206,9 +206,9 @@ namespace edm { template