CMS 3D CMS Logo

EDConsumerBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_EDConsumerBase_h
2 #define FWCore_Framework_EDConsumerBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : EDConsumerBase
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Tue, 02 Apr 2013 21:35:53 GMT
19 //
20 
21 // system include files
22 #include <map>
23 #include <string>
24 #include <vector>
25 #include <array>
26 #include <cassert>
27 
28 // user include files
49 
50 // forward declarations
51 
52 namespace edm {
53  class ModuleDescription;
54  class ProductResolverIndexHelper;
55  class ProductRegistry;
56  class ConsumesCollector;
57  template <Transition Tr>
59  template <Transition Tr>
61  template <BranchType B>
63  template <typename T>
65 
66  namespace eventsetup {
68  }
69 
71  public:
73  virtual ~EDConsumerBase() noexcept(false);
74 
75  // disallow copying
76  EDConsumerBase(EDConsumerBase const&) = delete;
77  EDConsumerBase const& operator=(EDConsumerBase const&) = delete;
78 
79  // allow moving
80  EDConsumerBase(EDConsumerBase&&) = default;
82 
83  // ---------- const member functions ---------------------
86 
87  void itemsToGet(BranchType, std::vector<ProductResolverIndexAndSkipBit>&) const;
88  void itemsMayGet(BranchType, std::vector<ProductResolverIndexAndSkipBit>&) const;
89 
90  std::vector<ProductResolverIndexAndSkipBit> const& itemsToGetFrom(BranchType iType) const {
91  return itemsToGetFromBranch_[iType];
92  }
93 
96 
98  bool registeredToConsumeMany(TypeID const&, BranchType) const;
99  // ---------- static member functions --------------------
100 
101  // ---------- member functions ---------------------------
102  void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const&, bool iPrefetchMayGet);
104 
106  void labelsForToken(EDGetToken iToken, Labels& oLabels) const;
107 
108  void modulesWhoseProductsAreConsumed(std::vector<ModuleDescription const*>& modules,
109  ProductRegistry const& preg,
110  std::map<std::string, ModuleDescription const*> const& labelsToDesc,
111  std::string const& processName) const;
112 
115 
116  std::vector<ConsumesInfo> consumesInfo() const;
117 
120  auto const& v = esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
121  if (v.empty()) {
122  return nullptr;
123  }
124  return &(esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)].front());
125  }
126  return nullptr;
127  }
128 
129  std::vector<ESProxyIndex> const& esGetTokenIndicesVector(edm::Transition iTrans) const {
131  return esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
132  }
133 
134  std::vector<ESRecordIndex> const& esGetTokenRecordIndicesVector(edm::Transition iTrans) const {
136  return esRecordsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
137  }
138 
139  protected:
140  friend class ConsumesCollector;
141  template <Transition Tr>
143  template <Transition Tr>
145  template <BranchType B>
146  friend class EDConsumerBaseAdaptor;
147  template <typename T>
148  friend class WillGetIfMatch;
151 
152  template <typename ProductType, BranchType B = InEvent>
154  TypeToGet tid = TypeToGet::make<ProductType>();
156  }
157 
158  template <BranchType B = InEvent>
160  return EDConsumerBaseAdaptor<B>(this, std::move(tag));
161  }
162 
164  return EDGetToken{recordConsumes(InEvent, id, checkIfEmpty(tag), true)};
165  }
166 
167  template <BranchType B>
169  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), true)};
170  }
171 
172  template <typename ProductType, BranchType B = InEvent>
174  TypeToGet tid = TypeToGet::make<ProductType>();
176  }
177 
178  EDGetToken mayConsume(const TypeToGet& id, edm::InputTag const& tag) { return mayConsume<InEvent>(id, tag); }
179 
180  template <BranchType B>
182  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), false)};
183  }
184 
185  template <typename ProductType, BranchType B = InEvent>
186  void consumesMany() {
187  TypeToGet tid = TypeToGet::make<ProductType>();
188  consumesMany<B>(tid);
189  }
190 
191  void consumesMany(const TypeToGet& id) { consumesMany<InEvent>(id); }
192 
193  template <BranchType B>
194  void consumesMany(const TypeToGet& id) {
195  recordConsumes(B, id, edm::InputTag{}, true);
196  }
197 
198  // For consuming event-setup products
199  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
200  auto esConsumes() {
201  return esConsumes<ESProduct, ESRecord, Tr>(ESInputTag{});
202  }
203 
204  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
205  auto esConsumes(ESInputTag const& tag) {
206  auto index = recordESConsumes(Tr,
208  std::conditional_t<std::is_same_v<ESRecord, edm::DefaultRecord>,
210  ESRecord>>(),
211  eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
212  tag);
213  return ESGetToken<ESProduct, ESRecord>{static_cast<unsigned int>(Tr), index, labelFor(index)};
214  }
215 
216  template <Transition Tr = Transition::Event>
217  [[nodiscard]] constexpr auto esConsumes() noexcept {
218  return EDConsumerBaseESAdaptor<Tr>(this);
219  }
220 
221  template <Transition Tr = Transition::Event>
222  [[nodiscard]] auto esConsumes(ESInputTag tag) noexcept {
224  }
225 
227  template <Transition Tr = Transition::Event>
229  return ESGetTokenGeneric(static_cast<unsigned int>(Tr),
230  recordESConsumes(Tr, iRecord, iKey.type(), ESInputTag("", iKey.name().value())),
231  iRecord.type());
232  }
233 
234  private:
236  unsigned int recordConsumes(BranchType iBranch, TypeToGet const& iType, edm::InputTag const& iTag, bool iAlwaysGets);
240  edm::ESInputTag const& iTag);
241 
242  const char* labelFor(ESTokenIndex) const;
243 
244  void throwTypeMismatch(edm::TypeID const&, EDGetToken) const;
246  void throwBadToken(edm::TypeID const& iType, EDGetToken iToken) const;
247  void throwConsumesCallAfterFrozen(TypeToGet const&, InputTag const&) const;
250  edm::ESInputTag const&) const;
251  void throwESConsumesInProcessBlock() const;
252 
254  // ---------- member data --------------------------------
255 
257  TokenLookupInfo(edm::TypeID const& iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
258  : m_type(iID), m_index(iIndex, skipCurrentProcess), m_branchType(iBranch) {}
262  };
263 
264  struct LabelPlacement {
265  LabelPlacement(unsigned int iStartOfModuleLabel,
266  unsigned short iDeltaToProductInstance,
267  unsigned short iDeltaToProcessName)
268  : m_startOfModuleLabel(iStartOfModuleLabel),
269  m_deltaToProductInstance(iDeltaToProductInstance),
270  m_deltaToProcessName(iDeltaToProcessName) {}
271  unsigned int m_startOfModuleLabel;
272  unsigned short m_deltaToProductInstance;
273  unsigned short m_deltaToProcessName;
274  };
275 
276  //define the purpose of each 'column' in m_tokenInfo
279 
280  //m_tokenStartOfLabels holds the entries into this container
281  // for each of the 3 labels needed to id the data
282  std::vector<char> m_tokenLabels;
283 
284  std::array<std::vector<ProductResolverIndexAndSkipBit>, edm::NumBranchTypes> itemsToGetFromBranch_;
285 
290  };
291 
292  // TODO We would like to be able to access m_esTokenInfo from the
293  // index in the token, but this is currently not possible. One idea
294  // for this is to order the entries in m_esToken so that all the ones
295  // for transition 0 come first, then the ones for for transition 1
296  // and so on for all the transitions. Within a transition, the
297  // entries would be in the same order in m_esTokenInfo and
298  // esItemsToGetFromTransition_. This is something for future
299  // development and might require a change to SoATuple to support
300  // inserts in the middle of the data structure.
303  std::array<std::vector<ESProxyIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
305  std::array<std::vector<ESRecordIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
307  bool frozen_;
309  };
310 
311  template <Transition TR>
313  public:
314  template <typename TYPE, typename REC>
316  return m_consumer->template esConsumes<TYPE, REC, TR>();
317  }
318 
319  private:
320  //only EDConsumerBase is allowed to make an instance of this class
321  friend class EDConsumerBase;
323 
325  };
326 
327  template <Transition TR>
329  public:
330  template <typename TYPE, typename REC>
332  return m_consumer->template esConsumes<TYPE, REC, TR>(m_tag);
333  }
334 
335  private:
336  //only EDConsumerBase is allowed to make an instance of this class
337  friend class EDConsumerBase;
339  : m_consumer(iBase), m_tag(std::move(iTag)) {}
340 
343  };
344 
345  template <BranchType B>
346  class EDConsumerBaseAdaptor {
347  public:
348  template <typename TYPE>
350  return m_consumer->template consumes<TYPE, B>(m_tag);
351  }
352 
353  private:
354  //only EDConsumerBase is allowed to make an instance of this class
355  friend class EDConsumerBase;
357  : m_consumer(iBase), m_tag(std::move(iTag)) {}
358 
361  };
362 
363 } // namespace edm
364 
365 #endif
edm::EDConsumerBase::throwESConsumesCallAfterFrozen
void throwESConsumesCallAfterFrozen(eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &) const
Definition: EDConsumerBase.cc:402
TypeToGet.h
edm::ESTokenIndex
Definition: ESIndices.h:55
edm::SoATuple
Definition: SoATuple.h:108
edm::EDConsumerBase::modulesWhoseProductsAreConsumed
void modulesWhoseProductsAreConsumed(std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
Definition: EDConsumerBase.cc:470
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
edm::EDConsumerBase::consumesMany
void consumesMany(const TypeToGet &id)
Definition: EDConsumerBase.h:191
edm::ESInputTag
Definition: ESInputTag.h:87
edm::eventsetup::ESRecordsToProxyIndices
Definition: ESRecordsToProxyIndices.h:35
edm::EDConsumerBase::esRecordsToGetFromTransition_
std::array< std::vector< ESRecordIndex >, static_cast< unsigned int >edm::Transition::NumberOfEventSetupTransitions)> esRecordsToGetFromTransition_
Definition: EDConsumerBase.h:306
edm::EDConsumerBase::registeredToConsumeMany
bool registeredToConsumeMany(TypeID const &, BranchType) const
Definition: EDConsumerBase.cc:358
edm::EDConsumerBase::Labels
ProductLabels Labels
Definition: EDConsumerBase.h:105
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag tag) noexcept
Definition: EDConsumerBase.h:222
edm::EDConsumerBase::recordConsumes
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
Definition: EDConsumerBase.cc:60
SoATuple.h
edm::EDConsumerBase::ESTokenLookupInfo
Definition: EDConsumerBase.h:286
edm::EDConsumerBaseWithTagESAdaptor::EDConsumerBaseWithTagESAdaptor
EDConsumerBaseWithTagESAdaptor(EDConsumerBase *iBase, ESInputTag iTag) noexcept
Definition: EDConsumerBase.h:338
modules
Definition: ZHLTMatchFilter.cc:17
edm::ProductResolverIndexAndSkipBit
Definition: ProductResolverIndexAndSkipBit.h:28
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm::EDConsumerBase::kAlwaysGets
Definition: EDConsumerBase.h:277
edm::EDConsumerBase::operator=
EDConsumerBase const & operator=(EDConsumerBase const &)=delete
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::EDConsumerBaseESAdaptor
Definition: EDConsumerBase.h:58
edm::EDConsumerBase::kESProxyIndex
Definition: EDConsumerBase.h:301
edm::WillGetIfMatch
Definition: EDConsumerBase.h:64
ProductResolverIndex.h
edm::EDConsumerBase::checkIfEmpty
edm::InputTag const & checkIfEmpty(edm::InputTag const &tag)
Definition: EDConsumerBase.cc:53
edm::EDConsumerBase::m_esTokenInfo
edm::SoATuple< ESTokenLookupInfo, ESProxyIndex > m_esTokenInfo
Definition: EDConsumerBase.h:302
cms::cuda::assert
assert(be >=bs)
TypeID.h
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:46
edm::eventsetup::DataKey
Definition: DataKey.h:29
edm::EDConsumerBase::esGetTokenIndicesVector
std::vector< ESProxyIndex > const & esGetTokenIndicesVector(edm::Transition iTrans) const
Definition: EDConsumerBase.h:129
edm::EDConsumerBase::TokenLookupInfo::TokenLookupInfo
TokenLookupInfo(edm::TypeID const &iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
Definition: EDConsumerBase.h:257
edm::ProductResolverIndexHelper
Definition: ProductResolverIndexHelper.h:89
findQualityFiles.v
v
Definition: findQualityFiles.py:179
edm::EDConsumerBase::itemsMayGet
void itemsMayGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
Definition: EDConsumerBase.cc:305
edm::EDConsumerBase::itemsToGetFrom
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType iType) const
Definition: EDConsumerBase.h:90
ESGetToken.h
ESIndices.h
edm::EDConsumerBase::throwConsumesCallAfterFrozen
void throwConsumesCallAfterFrozen(TypeToGet const &, InputTag const &) const
Definition: EDConsumerBase.cc:395
edm::eventsetup::EventSetupRecordKey
Definition: EventSetupRecordKey.h:30
edm::EDConsumerBase::registeredToConsume
bool registeredToConsume(ProductResolverIndex, bool, BranchType) const
Definition: EDConsumerBase.cc:346
edm::EDConsumerBase::ESTokenLookupInfo::m_startOfComponentName
unsigned int m_startOfComponentName
Definition: EDConsumerBase.h:289
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::EDConsumerBaseESAdaptor::EDConsumerBaseESAdaptor
EDConsumerBaseESAdaptor(EDConsumerBase *iBase)
Definition: EDConsumerBase.h:322
edm::ESProxyIndex
Definition: ESIndices.h:30
edm::NumBranchTypes
Definition: BranchType.h:11
edm::EDConsumerBase::m_tokenLabels
std::vector< char > m_tokenLabels
Definition: EDConsumerBase.h:282
edm::EDConsumerBase::consumesInfo
std::vector< ConsumesInfo > consumesInfo() const
Definition: EDConsumerBase.cc:584
edm::EDConsumerBaseWithTagESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:341
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::EDConsumerBase::uncheckedIndexFrom
ProductResolverIndexAndSkipBit uncheckedIndexFrom(EDGetToken) const
Definition: EDConsumerBase.cc:269
edm::EDConsumerBase
Definition: EDConsumerBase.h:70
edm::EDConsumerBase::kKind
Definition: EDConsumerBase.h:277
edm::ESHandleAdapter
Definition: data_default_record_trait.h:72
edm::ESGetTokenGeneric
Definition: ESGetTokenGeneric.h:30
edm::eventsetup::DataKey::name
const NameTag & name() const
Definition: DataKey.h:53
edm::EDConsumerBase::esGetTokenRecordIndicesVector
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector(edm::Transition iTrans) const
Definition: EDConsumerBase.h:134
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
edm::EDConsumerBase::mayConsume
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
Definition: EDConsumerBase.h:173
edm::eventsetup::default_record_t
typename default_record< T >::RecordT default_record_t
Definition: data_default_record_trait.h:68
ProductResolverIndexAndSkipBit.h
edm::EDConsumerBaseAdaptor::m_tag
const edm::InputTag m_tag
Definition: EDConsumerBase.h:360
edm::eventsetup::SimpleStringTag::value
const char * value() const
Definition: DataKeyTags.h:39
edm::EDConsumerBase::itemsToGet
void itemsToGet(BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
Definition: EDConsumerBase.cc:273
edm::InEvent
Definition: BranchType.h:11
Transition.h
edm::EDConsumerBase::kLabels
Definition: EDConsumerBase.h:277
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag const &tag)
Definition: EDConsumerBase.h:205
edm::EDConsumerBase::TokenLookupInfo
Definition: EDConsumerBase.h:256
edm::eventsetup::EventSetupRecordKey::makeKey
static EventSetupRecordKey makeKey()
Definition: EventSetupRecordKey.h:49
edm::EDConsumerBase::throwESConsumesInProcessBlock
void throwESConsumesInProcessBlock() const
Definition: EDConsumerBase.cc:412
EDGetToken.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::EDConsumerBase::esConsumes
constexpr auto esConsumes() noexcept
Definition: EDConsumerBase.h:217
edm::EDConsumerBase::TokenLookupInfo::m_branchType
BranchType m_branchType
Definition: EDConsumerBase.h:261
edm::EDConsumerBase::m_tokenInfo
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
Definition: EDConsumerBase.h:278
edm::EDConsumerBase::esConsumes
ESGetTokenGeneric esConsumes(eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
Used with EventSetupRecord::doGet.
Definition: EDConsumerBase.h:228
edm::Transition
Transition
Definition: Transition.h:12
edm::EDConsumerBase::consumesMany
void consumesMany()
Definition: EDConsumerBase.h:186
edm::EDConsumerBase::ESTokenLookupInfo::m_key
eventsetup::DataKey m_key
Definition: EDConsumerBase.h:288
edm::EDConsumerBase::ESTokenLookupInfo::m_record
eventsetup::EventSetupRecordKey m_record
Definition: EDConsumerBase.h:287
DataKey.h
edm::eventsetup::heterocontainer::HCTypeTag
Definition: HCTypeTag.h:38
ESRecordsToProxyIndices
edm::EDConsumerBase::LabelPlacement::m_deltaToProcessName
unsigned short m_deltaToProcessName
Definition: EDConsumerBase.h:273
edm::EDConsumerBase::throwBadToken
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
Definition: EDConsumerBase.cc:382
edm::eventsetup::EventSetupRecordKey::type
const TypeTag & type() const
Definition: EventSetupRecordKey.h:40
edm::EDConsumerBase::updateLookup
void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
Definition: EDConsumerBase.cc:111
edm::EDConsumerBase::~EDConsumerBase
virtual ~EDConsumerBase() noexcept(false)
Definition: EDConsumerBase.cc:41
edm::EDConsumerBase::EDConsumerBase
EDConsumerBase()
Definition: EDConsumerBase.cc:38
BranchType.h
edm::EDConsumerBase::consumesMany
void consumesMany(const TypeToGet &id)
Definition: EDConsumerBase.h:194
edm::EDConsumerBase::itemsToGetFromBranch_
std::array< std::vector< ProductResolverIndexAndSkipBit >, edm::NumBranchTypes > itemsToGetFromBranch_
Definition: EDConsumerBase.h:284
edm::EDConsumerBase::kLookupInfo
Definition: EDConsumerBase.h:277
edm::EDConsumerBase::consumes
EDConsumerBaseAdaptor< B > consumes(edm::InputTag tag) noexcept
Definition: EDConsumerBase.h:159
edm::EDConsumerBase::containsCurrentProcessAlias_
bool containsCurrentProcessAlias_
Definition: EDConsumerBase.h:308
edm::EDConsumerBase::kESLookupInfo
Definition: EDConsumerBase.h:301
edm::EDGetToken
Definition: EDGetToken.h:35
edm::ESGetToken
Definition: EventSetup.h:48
edm::EDConsumerBaseAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:359
edm::EDConsumerBaseWithTagESAdaptor::m_tag
const ESInputTag m_tag
Definition: EDConsumerBase.h:342
InputTag.h
SimL1EmulatorRepack_CalouGT_cff.processName
processName
Definition: SimL1EmulatorRepack_CalouGT_cff.py:17
edm::EDConsumerBase::labelsForToken
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
Definition: EDConsumerBase.cc:337
ESGetTokenGeneric.h
TtFullHadDaughter::B
static const std::string B
Definition: TtFullHadronicEvent.h:9
data_default_record_trait.h
edm::EDConsumerBaseESAdaptor::consumes
ESGetToken< TYPE, REC > consumes()
Definition: EDConsumerBase.h:315
ESInputTag.h
edm::TypeID
Definition: TypeID.h:22
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::EDConsumerBaseAdaptor::EDConsumerBaseAdaptor
EDConsumerBaseAdaptor(EDConsumerBase *iBase, edm::InputTag iTag) noexcept
Definition: EDConsumerBase.h:356
edm::EDConsumerBase::frozen_
bool frozen_
Definition: EDConsumerBase.h:307
edm::EDConsumerBase::esGetTokenIndices
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
Definition: EDConsumerBase.h:118
edm::EDConsumerBaseAdaptor::consumes
EDGetTokenT< TYPE > consumes()
Definition: EDConsumerBase.h:349
edm::EDConsumerBase::LabelPlacement::m_deltaToProductInstance
unsigned short m_deltaToProductInstance
Definition: EDConsumerBase.h:272
edm::EDConsumerBase::labelFor
const char * labelFor(ESTokenIndex) const
Definition: EDConsumerBase.cc:622
edm::EDConsumerBase::TokenLookupInfo::m_type
edm::TypeID m_type
Definition: EDConsumerBase.h:259
edm::EDConsumerBase::throwBranchMismatch
void throwBranchMismatch(BranchType, EDGetToken) const
Definition: EDConsumerBase.cc:375
edm::EDConsumerBase::LabelPlacement::LabelPlacement
LabelPlacement(unsigned int iStartOfModuleLabel, unsigned short iDeltaToProductInstance, unsigned short iDeltaToProcessName)
Definition: EDConsumerBase.h:265
edm::EDConsumerBase::esItemsToGetFromTransition_
std::array< std::vector< ESProxyIndex >, static_cast< unsigned int >edm::Transition::NumberOfEventSetupTransitions)> esItemsToGetFromTransition_
Definition: EDConsumerBase.h:304
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:178
edm::EDConsumerBaseAdaptor
Definition: EDConsumerBase.h:62
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:200
edm::EDConsumerBase::TokenLookupInfo::m_index
ProductResolverIndexAndSkipBit m_index
Definition: EDConsumerBase.h:260
edm::EDConsumerBase::LabelPlacement
Definition: EDConsumerBase.h:264
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:153
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:181
edm::EDConsumerBase::recordESConsumes
ESTokenIndex recordESConsumes(Transition, eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &iTag)
Definition: EDConsumerBase.cc:212
EventSetupRecordKey.h
edm::TypeToGet
Definition: TypeToGet.h:32
ConsumesInfo.h
edm::EDConsumerBase::consumes
EDGetToken consumes(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:163
edm::EDConsumerBase::throwTypeMismatch
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
Definition: EDConsumerBase.cc:369
edm::EDConsumerBaseESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:324
ProductKindOfType.h
edm::InputTag
Definition: InputTag.h:15
edm::eventsetup::DataKey::type
const TypeTag & type() const
Definition: DataKey.h:52
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
edm::EDConsumerBase::consumes
EDGetToken consumes(TypeToGet const &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:168
edm::EDConsumerBase::indexFrom
ProductResolverIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
Definition: EDConsumerBase.cc:250
ProductLabels.h
edm::EDConsumerBaseWithTagESAdaptor
Definition: EDConsumerBase.h:60
edm::EDConsumerBaseWithTagESAdaptor::consumes
ESGetToken< TYPE, REC > consumes()
Definition: EDConsumerBase.h:331
edm::ProductLabels
Definition: ProductLabels.h:4
HCTypeTag.h
edm::EDConsumerBase::convertCurrentProcessAlias
void convertCurrentProcessAlias(std::string const &processName)
Convert "@currentProcess" in InputTag process names to the actual current process name.
Definition: EDConsumerBase.cc:538
edm::EDConsumerBase::registerLateConsumes
virtual void registerLateConsumes(eventsetup::ESRecordsToProxyIndices const &)
Definition: EDConsumerBase.h:235
edm::EDConsumerBase::LabelPlacement::m_startOfModuleLabel
unsigned int m_startOfModuleLabel
Definition: EDConsumerBase.h:271
edm::Transition::NumberOfEventSetupTransitions