83 const size_t labelSize = iTag.
label().size();
84 const size_t productInstanceSize = iTag.
instance().size();
86 unsigned short delta1 = labelSize+1;
87 unsigned short delta2 = labelSize+2+productInstanceSize;
93 const size_t additionalSize =
95 labelSize+productInstanceSize+3 :
96 labelSize+productInstanceSize+iTag.
process().size()+3;
110 if (!skipCurrentProcess) {
130 itInfo != itEnd; ++itInfo,++itKind,++itLabels) {
131 if(itInfo->m_branchType == iBranchType) {
132 const unsigned int labelStart = itLabels->m_startOfModuleLabel;
137 moduleLabel+itLabels->m_deltaToProductInstance,
138 moduleLabel+itLabels->m_deltaToProcessName),
139 itInfo->m_index.skipCurrentProcess());
149 if(
info.m_branchType == iBranchType &&
160 for(
unsigned int j=0;
j!=matches.numberOfMatches();++
j) {
162 if(matches.isFullyResolved(
j)) {
163 auto index =matches.index(
j);
205 unsigned int count=0;
210 it != itEnd; ++it,++itAlwaysGet) {
211 if(iBranch==it->m_branchType) {
220 oIndices.reserve(oIndices.size()+
count);
225 it != itEnd; ++it,++itAlwaysGet) {
226 if(iBranch==it->m_branchType) {
229 oIndices.push_back(it->m_index);
241 unsigned int count=0;
246 it != itEnd; ++it,++itAlwaysGet) {
247 if(iBranch==it->m_branchType) {
249 if(not *itAlwaysGet) {
256 oIndices.reserve(oIndices.size()+
count);
261 it != itEnd; ++it,++itAlwaysGet) {
262 if(iBranch==it->m_branchType) {
264 if(not *itAlwaysGet) {
265 oIndices.push_back(it->m_index);
290 if(it->m_index.productHolderIndex() == iIndex and
291 it->m_index.skipCurrentProcess() == skipCurrentProcess and
292 it->m_branchType == iBranch) {
315 it->m_type == iType and
316 it->m_branchType == iBranch) {
335 throw cms::Exception(
"TypeMismatch")<<
"A get using a EDGetToken used the C++ type '"<<iType.
className()<<
"' but the consumes call was for type '"<<
m_tokenInfo.get<
kLookupInfo>(iToken.
index()).m_type.className()<<
"'.\n Please modify either the consumes or get call so the types match.";
346 throw cms::Exception(
"BadToken")<<
"A get using a EDGetToken with the C++ type '"<<iType.
className()<<
"' was made using an uninitialized token.\n Please check that the variable is being initialized from a 'consumes' call.";
348 throw cms::Exception(
"BadToken")<<
"A get using a EDGetToken with the C++ type '"<<iType.
className()<<
"' was made using a token with a value "<<iToken.
index()<<
" which is beyond the range used by this module.\n Please check that the variable is being initialized from a 'consumes' call from this module.\n You can not share EDGetToken values between modules.";
353 throw cms::Exception(
"LogicError") <<
"A module declared it consumes a product after its constructor.\n"
354 <<
"This must be done in the contructor\n"
355 <<
"The product type was: " << typeToGet.
type() <<
"\n"
356 <<
"and " << inputTag <<
"\n";
Matches relatedIndexes(KindOfType kindOfType, TypeID const &typeID, char const *moduleLabel, char const *instance) const
tuple start
Check for commandline option errors.
void updateLookup(BranchType iBranchType, ProductHolderIndexHelper const &)
ProductHolderIndex index(KindOfType kindOfType, TypeID const &typeID, char const *moduleLabel, char const *instance, char const *process=0) const
void itemsToGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void itemsMayGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
ProductHolderIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
const char * productInstance
unsigned int ProductHolderIndex
void throwConsumesCallAfterFrozen(TypeToGet const &, InputTag const &) const
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
void throwBranchMismatch(BranchType, EDGetToken) const
bool isUninitialized() const
std::vector< char > m_tokenLabels
bool registeredToConsumeMany(TypeID const &, BranchType) const
virtual ~EDConsumerBase()
std::string const & BranchTypeToString(BranchType const &branchType)
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
bool registeredToConsume(ProductHolderIndex, bool, BranchType) const
TypeID const & type() const
std::vector< ProductHolderIndexAndSkipBit > itemsToGetFromEvent_
std::string const & className() const
unsigned int index() const