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 ModuleProcessName;
55  class ProductResolverIndexHelper;
56  class ProductRegistry;
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 
107  void labelsForToken(EDGetToken iToken, Labels& oLabels) const;
108 
109  void modulesWhoseProductsAreConsumed(std::array<std::vector<ModuleDescription const*>*, NumBranchTypes>& modulesAll,
110  std::vector<ModuleProcessName>& modulesInPreviousProcesses,
111  ProductRegistry const& preg,
112  std::map<std::string, ModuleDescription const*> const& labelsToDesc,
113  std::string const& processName) const;
114 
117 
118  std::vector<ConsumesInfo> consumesInfo() const;
119 
122  auto const& v = esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
123  if (v.empty()) {
124  return nullptr;
125  }
126  return &(esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)].front());
127  }
128  return nullptr;
129  }
130 
131  std::vector<ESProxyIndex> const& esGetTokenIndicesVector(edm::Transition iTrans) const {
133  return esItemsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
134  }
135 
136  std::vector<ESRecordIndex> const& esGetTokenRecordIndicesVector(edm::Transition iTrans) const {
138  return esRecordsToGetFromTransition_[static_cast<unsigned int>(iTrans)];
139  }
140 
141  protected:
142  friend class ConsumesCollector;
143  template <Transition Tr>
145  template <Transition Tr>
147  template <BranchType B>
148  friend class EDConsumerBaseAdaptor;
149  template <typename T>
150  friend class WillGetIfMatch;
153 
154  template <typename ProductType, BranchType B = InEvent>
156  TypeToGet tid = TypeToGet::make<ProductType>();
158  }
159 
160  template <BranchType B = InEvent>
162  return EDConsumerBaseAdaptor<B>(this, std::move(tag));
163  }
164 
166  return EDGetToken{recordConsumes(InEvent, id, checkIfEmpty(tag), true)};
167  }
168 
169  template <BranchType B>
171  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), true)};
172  }
173 
174  template <typename ProductType, BranchType B = InEvent>
176  TypeToGet tid = TypeToGet::make<ProductType>();
178  }
179 
180  EDGetToken mayConsume(const TypeToGet& id, edm::InputTag const& tag) { return mayConsume<InEvent>(id, tag); }
181 
182  template <BranchType B>
184  return EDGetToken{recordConsumes(B, id, checkIfEmpty(tag), false)};
185  }
186 
187  template <typename ProductType, BranchType B = InEvent>
188  void consumesMany() {
189  TypeToGet tid = TypeToGet::make<ProductType>();
190  consumesMany<B>(tid);
191  }
192 
193  void consumesMany(const TypeToGet& id) { consumesMany<InEvent>(id); }
194 
195  template <BranchType B>
196  void consumesMany(const TypeToGet& id) {
197  recordConsumes(B, id, edm::InputTag{}, true);
198  }
199 
200  // For consuming event-setup products
201  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
202  auto esConsumes() {
203  return esConsumes<ESProduct, ESRecord, Tr>(ESInputTag{});
204  }
205 
206  template <typename ESProduct, typename ESRecord, Transition Tr = Transition::Event>
207  auto esConsumes(ESInputTag const& tag) {
208  auto index = recordESConsumes(Tr,
210  std::conditional_t<std::is_same_v<ESRecord, edm::DefaultRecord>,
212  ESRecord>>(),
213  eventsetup::heterocontainer::HCTypeTag::make<ESProduct>(),
214  tag);
215  return ESGetToken<ESProduct, ESRecord>{static_cast<unsigned int>(Tr), index, labelFor(index)};
216  }
217 
218  template <Transition Tr = Transition::Event>
219  [[nodiscard]] constexpr auto esConsumes() noexcept {
220  return EDConsumerBaseESAdaptor<Tr>(this);
221  }
222 
223  template <Transition Tr = Transition::Event>
224  [[nodiscard]] auto esConsumes(ESInputTag tag) noexcept {
226  }
227 
229  template <Transition Tr = Transition::Event>
231  return ESGetTokenGeneric(static_cast<unsigned int>(Tr),
232  recordESConsumes(Tr, iRecord, iKey.type(), ESInputTag("", iKey.name().value())),
233  iRecord.type());
234  }
235 
236  private:
238  unsigned int recordConsumes(BranchType iBranch, TypeToGet const& iType, edm::InputTag const& iTag, bool iAlwaysGets);
242  edm::ESInputTag const& iTag);
243 
244  const char* labelFor(ESTokenIndex) const;
245 
246  void throwTypeMismatch(edm::TypeID const&, EDGetToken) const;
248  void throwBadToken(edm::TypeID const& iType, EDGetToken iToken) const;
249  void throwConsumesCallAfterFrozen(TypeToGet const&, InputTag const&) const;
252  edm::ESInputTag const&) const;
253  void throwESConsumesInProcessBlock() const;
254 
256  // ---------- member data --------------------------------
257 
259  TokenLookupInfo(edm::TypeID const& iID, ProductResolverIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
260  : m_type(iID), m_index(iIndex, skipCurrentProcess), m_branchType(iBranch) {}
264  };
265 
266  struct LabelPlacement {
267  LabelPlacement(unsigned int iStartOfModuleLabel,
268  unsigned short iDeltaToProductInstance,
269  unsigned short iDeltaToProcessName)
270  : m_startOfModuleLabel(iStartOfModuleLabel),
271  m_deltaToProductInstance(iDeltaToProductInstance),
272  m_deltaToProcessName(iDeltaToProcessName) {}
273  unsigned int m_startOfModuleLabel;
274  unsigned short m_deltaToProductInstance;
275  unsigned short m_deltaToProcessName;
276  };
277 
278  //define the purpose of each 'column' in m_tokenInfo
281 
282  //m_tokenStartOfLabels holds the entries into this container
283  // for each of the 3 labels needed to id the data
284  std::vector<char> m_tokenLabels;
285 
286  std::array<std::vector<ProductResolverIndexAndSkipBit>, edm::NumBranchTypes> itemsToGetFromBranch_;
287 
292  };
293 
294  // TODO We would like to be able to access m_esTokenInfo from the
295  // index in the token, but this is currently not possible. One idea
296  // for this is to order the entries in m_esToken so that all the ones
297  // for transition 0 come first, then the ones for for transition 1
298  // and so on for all the transitions. Within a transition, the
299  // entries would be in the same order in m_esTokenInfo and
300  // esItemsToGetFromTransition_. This is something for future
301  // development and might require a change to SoATuple to support
302  // inserts in the middle of the data structure.
305  std::array<std::vector<ESProxyIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
307  std::array<std::vector<ESRecordIndex>, static_cast<unsigned int>(edm::Transition::NumberOfEventSetupTransitions)>
309  bool frozen_;
311  };
312 
313  template <Transition TR>
315  public:
316  template <typename TYPE, typename REC>
318  return m_consumer->template esConsumes<TYPE, REC, TR>();
319  }
320 
321  private:
322  //only EDConsumerBase is allowed to make an instance of this class
323  friend class EDConsumerBase;
325 
327  };
328 
329  template <Transition TR>
331  public:
332  template <typename TYPE, typename REC>
334  return m_consumer->template esConsumes<TYPE, REC, TR>(m_tag);
335  }
336 
337  private:
338  //only EDConsumerBase is allowed to make an instance of this class
339  friend class EDConsumerBase;
341  : m_consumer(iBase), m_tag(std::move(iTag)) {}
342 
345  };
346 
347  template <BranchType B>
348  class EDConsumerBaseAdaptor {
349  public:
350  template <typename TYPE>
352  return m_consumer->template consumes<TYPE, B>(m_tag);
353  }
354 
355  private:
356  //only EDConsumerBase is allowed to make an instance of this class
357  friend class EDConsumerBase;
359  : m_consumer(iBase), m_tag(std::move(iTag)) {}
360 
363  };
364 
365 } // namespace edm
366 
367 #endif
edm::EDConsumerBase::throwESConsumesCallAfterFrozen
void throwESConsumesCallAfterFrozen(eventsetup::EventSetupRecordKey const &, eventsetup::heterocontainer::HCTypeTag const &, edm::ESInputTag const &) const
Definition: EDConsumerBase.cc:403
TypeToGet.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:193
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:308
edm::EDConsumerBase::registeredToConsumeMany
bool registeredToConsumeMany(TypeID const &, BranchType) const
Definition: EDConsumerBase.cc:359
edm::EDConsumerBase::Labels
ProductLabels Labels
Definition: EDConsumerBase.h:106
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag tag) noexcept
Definition: EDConsumerBase.h:224
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:288
edm::EDConsumerBaseWithTagESAdaptor::EDConsumerBaseWithTagESAdaptor
EDConsumerBaseWithTagESAdaptor(EDConsumerBase *iBase, ESInputTag iTag) noexcept
Definition: EDConsumerBase.h:340
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:304
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:131
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:259
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:291
edm::BranchType
BranchType
Definition: BranchType.h:11
edm::EDConsumerBaseESAdaptor::EDConsumerBaseESAdaptor
EDConsumerBaseESAdaptor(EDConsumerBase *iBase)
Definition: EDConsumerBase.h:324
edm::ESProxyIndex
Definition: ESIndices.h:30
edm::NumBranchTypes
Definition: BranchType.h:11
edm::EDConsumerBase::m_tokenLabels
std::vector< char > m_tokenLabels
Definition: EDConsumerBase.h:284
edm::EDConsumerBase::consumesInfo
std::vector< ConsumesInfo > consumesInfo() const
Definition: EDConsumerBase.cc:616
edm::EDConsumerBaseWithTagESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:343
edm::ProductRegistry
Definition: ProductRegistry.h:37
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:136
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
edm::EDConsumerBase::kESProxyIndex
Definition: EDConsumerBase.h:303
edm::EDConsumerBase::kESLookupInfo
Definition: EDConsumerBase.h:303
edm::EDConsumerBase::kLabels
Definition: EDConsumerBase.h:279
edm::EDConsumerBase::mayConsume
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
Definition: EDConsumerBase.h:175
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:362
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::EDConsumerBase::kKind
Definition: EDConsumerBase.h:279
edm::InEvent
Definition: BranchType.h:11
Transition.h
edm::EDConsumerBase::esConsumes
auto esConsumes(ESInputTag const &tag)
Definition: EDConsumerBase.h:207
edm::EDConsumerBase::TokenLookupInfo
Definition: EDConsumerBase.h:258
edm::eventsetup::EventSetupRecordKey::makeKey
static EventSetupRecordKey makeKey()
Definition: EventSetupRecordKey.h:49
edm::EDConsumerBase::throwESConsumesInProcessBlock
void throwESConsumesInProcessBlock() const
Definition: EDConsumerBase.cc:413
EDGetToken.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::EDConsumerBase::esConsumes
constexpr auto esConsumes() noexcept
Definition: EDConsumerBase.h:219
edm::EDConsumerBase::TokenLookupInfo::m_branchType
BranchType m_branchType
Definition: EDConsumerBase.h:263
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:471
edm::EDConsumerBase::m_tokenInfo
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
Definition: EDConsumerBase.h:280
edm::EDConsumerBase::esConsumes
ESGetTokenGeneric esConsumes(eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
Used with EventSetupRecord::doGet.
Definition: EDConsumerBase.h:230
edm::Transition
Transition
Definition: Transition.h:12
edm::EDConsumerBase::kLookupInfo
Definition: EDConsumerBase.h:279
edm::EDConsumerBase::consumesMany
void consumesMany()
Definition: EDConsumerBase.h:188
edm::EDConsumerBase::ESTokenLookupInfo::m_key
eventsetup::DataKey m_key
Definition: EDConsumerBase.h:290
edm::EDConsumerBase::ESTokenLookupInfo::m_record
eventsetup::EventSetupRecordKey m_record
Definition: EDConsumerBase.h:289
DataKey.h
edm::eventsetup::heterocontainer::HCTypeTag
Definition: HCTypeTag.h:38
ESRecordsToProxyIndices
edm::EDConsumerBase::LabelPlacement::m_deltaToProcessName
unsigned short m_deltaToProcessName
Definition: EDConsumerBase.h:275
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:196
edm::EDConsumerBase::itemsToGetFromBranch_
std::array< std::vector< ProductResolverIndexAndSkipBit >, edm::NumBranchTypes > itemsToGetFromBranch_
Definition: EDConsumerBase.h:286
edm::EDConsumerBase::consumes
EDConsumerBaseAdaptor< B > consumes(edm::InputTag tag) noexcept
Definition: EDConsumerBase.h:161
edm::EDConsumerBase::containsCurrentProcessAlias_
bool containsCurrentProcessAlias_
Definition: EDConsumerBase.h:310
edm::EDGetToken
Definition: EDGetToken.h:35
edm::ESGetToken
Definition: EventSetup.h:48
edm::EDConsumerBaseAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:361
edm::EDConsumerBaseWithTagESAdaptor::m_tag
const ESInputTag m_tag
Definition: EDConsumerBase.h:344
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:317
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:358
edm::EDConsumerBase::frozen_
bool frozen_
Definition: EDConsumerBase.h:309
edm::EDConsumerBase::esGetTokenIndices
ESProxyIndex const * esGetTokenIndices(edm::Transition iTrans) const
Definition: EDConsumerBase.h:120
edm::EDConsumerBaseAdaptor::consumes
EDGetTokenT< TYPE > consumes()
Definition: EDConsumerBase.h:351
edm::EDConsumerBase::LabelPlacement::m_deltaToProductInstance
unsigned short m_deltaToProductInstance
Definition: EDConsumerBase.h:274
edm::EDConsumerBase::kAlwaysGets
Definition: EDConsumerBase.h:279
edm::EDConsumerBase::labelFor
const char * labelFor(ESTokenIndex) const
Definition: EDConsumerBase.cc:654
edm::EDConsumerBase::TokenLookupInfo::m_type
edm::TypeID m_type
Definition: EDConsumerBase.h:261
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:267
edm::EDConsumerBase::esItemsToGetFromTransition_
std::array< std::vector< ESProxyIndex >, static_cast< unsigned int >edm::Transition::NumberOfEventSetupTransitions)> esItemsToGetFromTransition_
Definition: EDConsumerBase.h:306
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:180
edm::EDConsumerBaseAdaptor
Definition: EDConsumerBase.h:63
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:202
edm::EDConsumerBase::TokenLookupInfo::m_index
ProductResolverIndexAndSkipBit m_index
Definition: EDConsumerBase.h:262
edm::EDConsumerBase::LabelPlacement
Definition: EDConsumerBase.h:266
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:155
edm::EDConsumerBase::mayConsume
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
Definition: EDConsumerBase.h:183
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:165
edm::EDConsumerBase::throwTypeMismatch
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
Definition: EDConsumerBase.cc:370
edm::EDConsumerBaseESAdaptor::m_consumer
EDConsumerBase * m_consumer
Definition: EDConsumerBase.h:326
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:170
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:333
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:570
edm::EDConsumerBase::registerLateConsumes
virtual void registerLateConsumes(eventsetup::ESRecordsToProxyIndices const &)
Definition: EDConsumerBase.h:237
edm::EDConsumerBase::LabelPlacement::m_startOfModuleLabel
unsigned int m_startOfModuleLabel
Definition: EDConsumerBase.h:273
edm::Transition::NumberOfEventSetupTransitions