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
51 
52 // forward declarations
53 
54 namespace edm {
55  class ModuleProcessName;
56  class ProductResolverIndexHelper;
57  class ConsumesCollector;
58  template <Transition Tr>
60  template <Transition Tr>
62  template <BranchType B>
64  template <typename T>
66 
67  namespace eventsetup {
69  }
70 
72  public:
74  virtual ~EDConsumerBase() noexcept(false);
75 
76  // disallow copying
77  EDConsumerBase(EDConsumerBase const&) = delete;
78  EDConsumerBase const& operator=(EDConsumerBase const&) = delete;
79 
80  // allow moving
81  EDConsumerBase(EDConsumerBase&&) = default;
83 
84  // ---------- const member functions ---------------------
87 
88  void itemsToGet(BranchType, std::vector<ProductResolverIndexAndSkipBit>&) const;
89  void itemsMayGet(BranchType, std::vector<ProductResolverIndexAndSkipBit>&) const;
90 
91  std::vector<ProductResolverIndexAndSkipBit> const& itemsToGetFrom(BranchType iType) const {
92  return itemsToGetFromBranch_[iType];
93  }
94 
97 
99  bool registeredToConsumeMany(TypeID const&, BranchType) const;
100  // ---------- static member functions --------------------
101 
102  // ---------- member functions ---------------------------
103  void updateLookup(BranchType iBranchType, ProductResolverIndexHelper const&, bool iPrefetchMayGet);
105  void selectInputProcessBlocks(ProductRegistry const& productRegistry,
106  ProcessBlockHelperBase const& processBlockHelperBase) {
107  doSelectInputProcessBlocks(productRegistry, processBlockHelperBase);
108  }
109 
111  void labelsForToken(EDGetToken iToken, Labels& oLabels) const;
112 
113  void modulesWhoseProductsAreConsumed(std::array<std::vector<ModuleDescription const*>*, NumBranchTypes>& modulesAll,
114  std::vector<ModuleProcessName>& modulesInPreviousProcesses,
115  ProductRegistry const& preg,
116  std::map<std::string, ModuleDescription const*> const& labelsToDesc,
117  std::string const& processName) const;
118 
121 
122  std::vector<ConsumesInfo> consumesInfo() const;
123 
126  auto const& v = esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
127  if (v.empty()) {
128  return nullptr;
129  }
130  return &(esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)].front());
131  }
132  return nullptr;
133  }
134 
135  std::vector<ESProxyIndex> const& esGetTokenIndicesVector(edm::Transition iTrans) const {
137  return esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
138  }
139 
140  std::vector<ESRecordIndex> const& esGetTokenRecordIndicesVector(edm::Transition iTrans) const {
142  return esRecordsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
143  }
144 
145  protected:
146  friend class ConsumesCollector;
147  template <Transition Tr>
149  template <Transition Tr>
151  template <BranchType B>
152  friend class EDConsumerBaseAdaptor;
153  template <typename T>
154  friend class WillGetIfMatch;
157 
158  template <typename ProductType, BranchType B = InEvent>
160  TypeToGet tid = TypeToGet::make<ProductType>();
162  }
163 
164  template <BranchType B = InEvent>
166  return EDConsumerBaseAdaptor<B>(this, std::move(tag));
167  }
168 
170  return EDGetToken{recordConsumes(InEvent, id, checkIfEmpty(tag), true)};
171  }
172 
173  template <BranchType B>
175  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), true)};
176  }
177 
178  template <typename ProductType, BranchType B = InEvent>
180  TypeToGet tid = TypeToGet::make<ProductType>();
182  }
183 
184  EDGetToken mayConsume(const TypeToGet& id, edm::InputTag const& tag) { return mayConsume<InEvent>(id, tag); }
185 
186  template <BranchType B>
188  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), false)};
189  }
190 
191  template <typename ProductType, BranchType B = InEvent>
192  void consumesMany() {
193  TypeToGet tid = TypeToGet::make<ProductType>();
194  consumesMany<B>(tid);
195  }
196 
197  void consumesMany(const TypeToGet& id) { consumesMany<InEvent>(id); }
198 
199  template <BranchType B>
200  void consumesMany(const TypeToGet& id) {
201  recordConsumes(B, id, edm::InputTag{}, true);
202  }
203 
204  // For consuming event-setup products
205  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
206  auto esConsumes() {
207  return esConsumes<ESProduct, ESRecord, Tr>(ESInputTag{});
208  }
209 
210  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
211  auto esConsumes(ESInputTag const& tag) {
212  auto index = recordESConsumes(Tr,
214  std::conditional_t<std::is_same_v<ESRecord, edm::DefaultRecord>,
216  ESRecord>>(),
217  eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
218  tag);
219  return ESGetToken<ESProduct, ESRecord>{static_cast<unsigned int>(Tr), index, labelFor(index)};
220  }
221 
222  template <Transition Tr = Transition::Event>
223  [[nodiscard]] constexpr auto esConsumes() noexcept {
224  return EDConsumerBaseESAdaptor<Tr>(this);
225  }
226 
227  template <Transition Tr = Transition::Event>
228  [[nodiscard]] auto esConsumes(ESInputTag tag) noexcept {
230  }
231 
233  template <Transition Tr = Transition::Event>
235  return ESGetTokenGeneric(static_cast<unsigned int>(Tr),
236  recordESConsumes(Tr, iRecord, iKey.type(), ESInputTag("", iKey.name().value())),
237  iRecord.type());
238  }
239 
240  private:
242  unsigned int recordConsumes(BranchType iBranch, TypeToGet const& iType, edm::InputTag const& iTag, bool iAlwaysGets);
246  edm::ESInputTag const& iTag);
247 
248  const char* labelFor(ESTokenIndex) const;
249 
250  void throwTypeMismatch(edm::TypeID const&, EDGetToken) const;
252  void throwBadToken(edm::TypeID const& iType, EDGetToken iToken) const;
253  void throwConsumesCallAfterFrozen(TypeToGet const&, InputTag const&) const;
256  edm::ESInputTag const&) const;
257  void throwESConsumesInProcessBlock() const;
258 
260 
262 
263  // ---------- member data --------------------------------
264 
266  TokenLookupInfo(edm::TypeID const& iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
267  : m_type(iID), m_index(iIndex, skipCurrentProcess), m_branchType(iBranch) {}
271  };
272 
273  struct LabelPlacement {
274  LabelPlacement(unsigned int iStartOfModuleLabel,
275  unsigned short iDeltaToProductInstance,
276  unsigned short iDeltaToProcessName)
277  : m_startOfModuleLabel(iStartOfModuleLabel),
278  m_deltaToProductInstance(iDeltaToProductInstance),
279  m_deltaToProcessName(iDeltaToProcessName) {}
280  unsigned int m_startOfModuleLabel;
281  unsigned short m_deltaToProductInstance;
282  unsigned short m_deltaToProcessName;
283  };
284 
285  //define the purpose of each 'column' in m_tokenInfo
288 
289  //m_tokenStartOfLabels holds the entries into this container
290  // for each of the 3 labels needed to id the data
291  std::vector<char> m_tokenLabels;
292 
293  std::array<std::vector<ProductResolverIndexAndSkipBit>, edm::NumBranchTypes> itemsToGetFromBranch_;
294 
299  };
300 
301  // TODO We would like to be able to access m_esTokenInfo from the
302  // index in the token, but this is currently not possible. One idea
303  // for this is to order the entries in m_esToken so that all the ones
304  // for transition 0 come first, then the ones for for transition 1
305  // and so on for all the transitions. Within a transition, the
306  // entries would be in the same order in m_esTokenInfo and
307  // esItemsToGetFromTransition_. This is something for future
308  // development and might require a change to SoATuple to support
309  // inserts in the middle of the data structure.
312  std::array<std::vector<ESProxyIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
314  std::array<std::vector<ESRecordIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
316  bool frozen_;
318  };
319 
320  template <Transition TR>
322  public:
323  template <typename TYPE, typename REC>
325  return m_consumer->template esConsumes<TYPE, REC, TR>();
326  }
327 
328  private:
329  //only EDConsumerBase is allowed to make an instance of this class
330  friend class EDConsumerBase;
332 
334  };
335 
336  template <Transition TR>
338  public:
339  template <typename TYPE, typename REC>
341  return m_consumer->template esConsumes<TYPE, REC, TR>(m_tag);
342  }
343 
344  private:
345  //only EDConsumerBase is allowed to make an instance of this class
346  friend class EDConsumerBase;
348  : m_consumer(iBase), m_tag(std::move(iTag)) {}
349 
352  };
353 
354  template <BranchType B>
355  class EDConsumerBaseAdaptor {
356  public:
357  template <typename TYPE>
359  return m_consumer->template consumes<TYPE, B>(m_tag);
360  }
361 
362  private:
363  //only EDConsumerBase is allowed to make an instance of this class
364  friend class EDConsumerBase;
366  : m_consumer(iBase), m_tag(std::move(iTag)) {}
367 
370  };
371 
372 } // namespace edm
373 
374 #endif
edm::EDConsumerBase::throwESConsumesCallAfterFrozen
void throwESConsumesCallAfterFrozen(eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &) const
Definition: EDConsumerBase.cc:403
TypeToGet.h
ProvenanceFwd.h
edm::ESTokenIndex
Definition: ESIndices.h:55
edm::SoATuple
Definition: SoATuple.h:108
edm::ProductResolverIndex
unsigned int ProductResolverIndex
Definition: ProductResolverIndex.h:8
edm::EDConsumerBase::consumesMany
void consumesMany(const TypeToGet &id)
Definition: EDConsumerBase.h:197
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:315
edm::EDConsumerBase::registeredToConsumeMany
bool registeredToConsumeMany(TypeID const &, BranchType) const
Definition: EDConsumerBase.cc:359
edm::EDConsumerBase::Labels
ProductLabels Labels
Definition: EDConsumerBase.h:110
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag tag) noexcept
Definition: EDConsumerBase.h:228
edm::EDConsumerBase::recordConsumes
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
Definition: EDConsumerBase.cc:61
SoATuple.h
edm::EDConsumerBase::ESTokenLookupInfo
Definition: EDConsumerBase.h:295
edm::EDConsumerBaseWithTagESAdaptor::EDConsumerBaseWithTagESAdaptor
EDConsumerBaseWithTagESAdaptor(EDConsumerBase *iBase, ESInputTag iTag) noexcept
Definition: EDConsumerBase.h:347
edm::ProductResolverIndexAndSkipBit
Definition: ProductResolverIndexAndSkipBit.h:28
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm::EDConsumerBase::operator=
EDConsumerBase const & operator=(EDConsumerBase const &)=delete
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::EDConsumerBaseESAdaptor
Definition: EDConsumerBase.h:59
edm::WillGetIfMatch
Definition: EDConsumerBase.h:65
ProductResolverIndex.h
edm::EDConsumerBase::checkIfEmpty
edm::InputTag const & checkIfEmpty(edm::InputTag const &tag)
Definition: EDConsumerBase.cc:54
edm::EDConsumerBase::m_esTokenInfo
edm::SoATuple< ESTokenLookupInfo, ESProxyIndex > m_esTokenInfo
Definition: EDConsumerBase.h:311
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:47
edm::eventsetup::DataKey
Definition: DataKey.h:29
edm::EDConsumerBase::esGetTokenIndicesVector
std::vector< ESProxyIndex > const & esGetTokenIndicesVector(edm::Transition iTrans) const
Definition: EDConsumerBase.h:135
mps_check.array
array
Definition: mps_check.py:216
edm::EDConsumerBase::TokenLookupInfo::TokenLookupInfo
TokenLookupInfo(edm::TypeID const &iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
Definition: EDConsumerBase.h:266
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:306
edm::EDConsumerBase::itemsToGetFrom
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom(BranchType iType) const
Definition: EDConsumerBase.h:91
ESGetToken.h
ESIndices.h
edm::EDConsumerBase::throwConsumesCallAfterFrozen
void throwConsumesCallAfterFrozen(TypeToGet const &, InputTag const &) const
Definition: EDConsumerBase.cc:396
edm::eventsetup::EventSetupRecordKey
Definition: EventSetupRecordKey.h:30
edm::EDConsumerBase::registeredToConsume
bool registeredToConsume(ProductResolverIndex, bool, BranchType) const
Definition: EDConsumerBase.cc:347
edm::EDConsumerBase::ESTokenLookupInfo::m_startOfComponentName
unsigned int m_startOfComponentName
Definition: EDConsumerBase.h:298
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::EDConsumerBaseESAdaptor::EDConsumerBaseESAdaptor
EDConsumerBaseESAdaptor(EDConsumerBase *iBase)
Definition: EDConsumerBase.h:331
edm::ESProxyIndex
Definition: ESIndices.h:30
edm::NumBranchTypes
Definition: BranchType.h:11
edm::EDConsumerBase::m_tokenLabels
std::vector< char > m_tokenLabels
Definition: EDConsumerBase.h:291
edm::EDConsumerBase::consumesInfo
std::vector< ConsumesInfo > consumesInfo() const
Definition: EDConsumerBase.cc:622
edm::EDConsumerBaseWithTagESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:350
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::EDConsumerBase::kESProxyIndex
Definition: EDConsumerBase.h:310
edm::EDConsumerBase::uncheckedIndexFrom
ProductResolverIndexAndSkipBit uncheckedIndexFrom(EDGetToken) const
Definition: EDConsumerBase.cc:270
edm::EDConsumerBase
Definition: EDConsumerBase.h:71
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:140
edm::EDConsumerBase::mayConsume
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
Definition: EDConsumerBase.h:179
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:369
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:274
edm::InEvent
Definition: BranchType.h:11
Transition.h
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag const &tag)
Definition: EDConsumerBase.h:211
edm::EDConsumerBase::TokenLookupInfo
Definition: EDConsumerBase.h:265
edm::eventsetup::EventSetupRecordKey::makeKey
static EventSetupRecordKey makeKey()
Definition: EventSetupRecordKey.h:49
edm::EDConsumerBase::throwESConsumesInProcessBlock
void throwESConsumesInProcessBlock() const
Definition: EDConsumerBase.cc:413
EDGetToken.h
edm::EDConsumerBase::esConsumes
constexpr auto esConsumes() noexcept
Definition: EDConsumerBase.h:223
edm::EDConsumerBase::TokenLookupInfo::m_branchType
BranchType m_branchType
Definition: EDConsumerBase.h:270
edm::EDConsumerBase::modulesWhoseProductsAreConsumed
void modulesWhoseProductsAreConsumed(std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
Definition: EDConsumerBase.cc:477
edm::EDConsumerBase::m_tokenInfo
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
Definition: EDConsumerBase.h:287
edm::EDConsumerBase::esConsumes
ESGetTokenGeneric esConsumes(eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
Used with EventSetupRecord::doGet.
Definition: EDConsumerBase.h:234
edm::EDConsumerBase::kAlwaysGets
Definition: EDConsumerBase.h:286
edm::ProcessBlockHelperBase
Definition: ProcessBlockHelperBase.h:18
edm::Transition
Transition
Definition: Transition.h:12
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
edm::EDConsumerBase::consumesMany
void consumesMany()
Definition: EDConsumerBase.h:192
edm::EDConsumerBase::selectInputProcessBlocks
void selectInputProcessBlocks(ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
Definition: EDConsumerBase.h:105
edm::EDConsumerBase::kESLookupInfo
Definition: EDConsumerBase.h:310
edm::EDConsumerBase::ESTokenLookupInfo::m_key
eventsetup::DataKey m_key
Definition: EDConsumerBase.h:297
edm::EDConsumerBase::ESTokenLookupInfo::m_record
eventsetup::EventSetupRecordKey m_record
Definition: EDConsumerBase.h:296
DataKey.h
edm::eventsetup::heterocontainer::HCTypeTag
Definition: HCTypeTag.h:38
ESRecordsToProxyIndices
edm::EDConsumerBase::LabelPlacement::m_deltaToProcessName
unsigned short m_deltaToProcessName
Definition: EDConsumerBase.h:282
edm::EDConsumerBase::throwBadToken
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
Definition: EDConsumerBase.cc:383
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:112
edm::EDConsumerBase::~EDConsumerBase
virtual ~EDConsumerBase() noexcept(false)
Definition: EDConsumerBase.cc:42
edm::EDConsumerBase::EDConsumerBase
EDConsumerBase()
Definition: EDConsumerBase.cc:39
BranchType.h
edm::EDConsumerBase::consumesMany
void consumesMany(const TypeToGet &id)
Definition: EDConsumerBase.h:200
edm::EDConsumerBase::itemsToGetFromBranch_
std::array< std::vector< ProductResolverIndexAndSkipBit >, edm::NumBranchTypes > itemsToGetFromBranch_
Definition: EDConsumerBase.h:293
edm::EDConsumerBase::consumes
EDConsumerBaseAdaptor< B > consumes(edm::InputTag tag) noexcept
Definition: EDConsumerBase.h:165
edm::EDConsumerBase::containsCurrentProcessAlias_
bool containsCurrentProcessAlias_
Definition: EDConsumerBase.h:317
edm::EDGetToken
Definition: EDGetToken.h:35
edm::ESGetToken
Definition: EventSetup.h:48
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::EDConsumerBaseAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:368
edm::EDConsumerBaseWithTagESAdaptor::m_tag
const ESInputTag m_tag
Definition: EDConsumerBase.h:351
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:338
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:324
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:365
edm::EDConsumerBase::frozen_
bool frozen_
Definition: EDConsumerBase.h:316
edm::EDConsumerBase::esGetTokenIndices
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
Definition: EDConsumerBase.h:124
edm::EDConsumerBaseAdaptor::consumes
EDGetTokenT< TYPE > consumes()
Definition: EDConsumerBase.h:358
edm::EDConsumerBase::LabelPlacement::m_deltaToProductInstance
unsigned short m_deltaToProductInstance
Definition: EDConsumerBase.h:281
edm::EDConsumerBase::labelFor
const char * labelFor(ESTokenIndex) const
Definition: EDConsumerBase.cc:660
edm::EDConsumerBase::TokenLookupInfo::m_type
edm::TypeID m_type
Definition: EDConsumerBase.h:268
edm::EDConsumerBase::doSelectInputProcessBlocks
virtual void doSelectInputProcessBlocks(ProductRegistry const &, ProcessBlockHelperBase const &)
Definition: EDConsumerBase.cc:419
edm::EDConsumerBase::throwBranchMismatch
void throwBranchMismatch(BranchType, EDGetToken) const
Definition: EDConsumerBase.cc:376
edm::EDConsumerBase::LabelPlacement::LabelPlacement
LabelPlacement(unsigned int iStartOfModuleLabel, unsigned short iDeltaToProductInstance, unsigned short iDeltaToProcessName)
Definition: EDConsumerBase.h:274
edm::EDConsumerBase::kLabels
Definition: EDConsumerBase.h:286
edm::EDConsumerBase::esItemsToGetFromTransition_
std::array< std::vector< ESProxyIndex >, static_cast< unsigned int >edm::Transition::NumberOfEventSetupTransitions)> esItemsToGetFromTransition_
Definition: EDConsumerBase.h:313
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:184
edm::EDConsumerBaseAdaptor
Definition: EDConsumerBase.h:63
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:206
edm::EDConsumerBase::TokenLookupInfo::m_index
ProductResolverIndexAndSkipBit m_index
Definition: EDConsumerBase.h:269
edm::EDConsumerBase::kKind
Definition: EDConsumerBase.h:286
edm::EDConsumerBase::LabelPlacement
Definition: EDConsumerBase.h:273
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:159
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:187
edm::EDConsumerBase::recordESConsumes
ESTokenIndex recordESConsumes(Transition, eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &iTag)
Definition: EDConsumerBase.cc:213
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:169
edm::EDConsumerBase::throwTypeMismatch
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
Definition: EDConsumerBase.cc:370
edm::EDConsumerBaseESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:333
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:174
edm::EDConsumerBase::indexFrom
ProductResolverIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
Definition: EDConsumerBase.cc:251
ProductLabels.h
edm::EDConsumerBaseWithTagESAdaptor
Definition: EDConsumerBase.h:61
edm::EDConsumerBaseWithTagESAdaptor::consumes
ESGetToken< TYPE, REC > consumes()
Definition: EDConsumerBase.h:340
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:576
edm::EDConsumerBase::kLookupInfo
Definition: EDConsumerBase.h:286
edm::EDConsumerBase::registerLateConsumes
virtual void registerLateConsumes(eventsetup::ESRecordsToProxyIndices const &)
Definition: EDConsumerBase.h:241
edm::EDConsumerBase::LabelPlacement::m_startOfModuleLabel
unsigned int m_startOfModuleLabel
Definition: EDConsumerBase.h:280
FWCoreCommonFwd.h
edm::Transition::NumberOfEventSetupTransitions