2525#include < vector>
2626#include < array>
2727#include < cassert>
28+ #include < tuple>
2829
2930// user include files
3031#include " DataFormats/Provenance/interface/BranchType.h"
@@ -196,14 +197,15 @@ namespace edm {
196197
197198 template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
198199 auto esConsumes (ESInputTag const & tag) {
199- auto index = recordESConsumes (Tr,
200- eventsetup::EventSetupRecordKey::makeKey<
201- std::conditional_t <std::is_same_v<ESRecord, edm::DefaultRecord>,
202- eventsetup::default_record_t <ESHandleAdapter<ESProduct>>,
203- ESRecord>>(),
204- eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
205- tag);
206- return ESGetToken<ESProduct, ESRecord>{static_cast <unsigned int >(Tr), index, labelFor (index)};
200+ auto [index, productLabel] =
201+ recordESConsumes (Tr,
202+ eventsetup::EventSetupRecordKey::makeKey<
203+ std::conditional_t <std::is_same_v<ESRecord, edm::DefaultRecord>,
204+ eventsetup::default_record_t <ESHandleAdapter<ESProduct>>,
205+ ESRecord>>(),
206+ eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
207+ tag);
208+ return ESGetToken<ESProduct, ESRecord>{static_cast <unsigned int >(Tr), index, productLabel};
207209 }
208210
209211 template <Transition Tr = Transition::Event>
@@ -219,9 +221,8 @@ namespace edm {
219221 // /Used with EventSetupRecord::doGet
220222 template <Transition Tr = Transition::Event>
221223 ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const & iRecord, eventsetup::DataKey const & iKey) {
222- return ESGetTokenGeneric (static_cast <unsigned int >(Tr),
223- recordESConsumes (Tr, iRecord, iKey.type (), ESInputTag (" " , iKey.name ().value ())),
224- iRecord.type ());
224+ auto [index, productLabel] = recordESConsumes (Tr, iRecord, iKey.type (), ESInputTag (" " , iKey.name ().value ()));
225+ return ESGetTokenGeneric (static_cast <unsigned int >(Tr), index, iRecord.type ());
225226 }
226227
227228 // used for FinalPath
@@ -231,12 +232,10 @@ namespace edm {
231232 virtual void extendUpdateLookup (BranchType iBranchType, ProductResolverIndexHelper const &);
232233 virtual void registerLateConsumes (eventsetup::ESRecordsToProductResolverIndices const &) {}
233234 unsigned int recordConsumes (BranchType iBranch, TypeToGet const & iType, edm::InputTag const & iTag, bool iAlwaysGets);
234- ESTokenIndex recordESConsumes (Transition,
235- eventsetup::EventSetupRecordKey const &,
236- eventsetup::heterocontainer::HCTypeTag const &,
237- edm::ESInputTag const & iTag);
238-
239- const char * labelFor (ESTokenIndex) const ;
235+ std::tuple<ESTokenIndex, char const *> recordESConsumes (Transition,
236+ eventsetup::EventSetupRecordKey const &,
237+ eventsetup::heterocontainer::HCTypeTag const &,
238+ edm::ESInputTag const & iTag);
240239
241240 void throwTypeMismatch (edm::TypeID const &, EDGetToken) const ;
242241 void throwBranchMismatch (BranchType, EDGetToken) const ;
0 commit comments