1 #ifndef DataFormats_Provenance_ProductResolverIndexHelper_h 2 #define DataFormats_Provenance_ProductResolverIndexHelper_h 65 #include <unordered_map> 71 namespace productholderindexhelper {
120 char const* moduleLabel,
122 char const*
process =
nullptr)
const;
124 using ModulesToIndiciesMap =std::unordered_multimap<std::string,std::tuple<TypeID const*, const char*, ProductResolverIndex>>;
130 unsigned int startInIndexAndNames,
131 unsigned int numberOfMatches);
135 bool isFullyResolved(
unsigned int i)
const;
136 char const* moduleLabel(
unsigned int i)
const;
151 char const* moduleLabel,
152 char const* instance)
const;
157 TypeID const& typeID)
const;
183 char const* moduleLabel,
184 char const* instance,
186 TypeID const& containedTypeID,
187 std::vector<TypeWithDict>* baseTypesOfContainedType);
191 char const* moduleLabel,
192 char const* instance,
200 std::vector<std::string>
const& lookupProcessNames()
const;
205 unsigned int begin()
const {
return begin_; }
206 unsigned int end()
const {
return end_; }
215 index_(index), startInBigNamesContainer_(start), startInProcessNames_(startProcess) { }
227 std::vector<Range>
const&
ranges()
const {
return ranges_; }
228 std::vector<IndexAndNames>
const&
indexAndNames()
const {
return indexAndNames_; }
229 std::vector<char>
const&
processNames()
const {
return processNames_; }
234 unsigned int indexToIndexAndNames(
KindOfType kindOfType,
236 char const* moduleLabel,
237 char const* instance,
242 unsigned int indexToType(
KindOfType kindOfType,
TypeID const& typeID)
const;
246 unsigned int processIndex(
char const* process)
const;
251 void sanityCheck()
const;
256 void print(std::ostream& os)
const;
bool operator<(DetSet< T > const &x, DetSet< T > const &y)
std::string const & process() const
TypeID getContainedType(TypeID const &typeID)
ProductResolverIndex nextIndexValue() const
void setIndex(ProductResolverIndex v)
std::vector< TypeID > sortedTypeIDs_
unsigned int startInBigNamesContainer_
unsigned int ProductResolverIndex
std::vector< TypeID > const & sortedTypeIDs() const
ProductResolverIndex index_
TypeID getContainedTypeFromWrapper(TypeID const &wrappedtypeID, std::string const &className)
static PFTauRenderPlugin instance
std::vector< char > processNames_
ProductResolverIndex index_
std::unordered_multimap< std::string, std::tuple< TypeID const *, const char *, ProductResolverIndex >> ModulesToIndiciesMap
std::vector< Range > const & ranges() const
unsigned int startInProcessNames() const
unsigned int startInBigNamesContainer() const
S & print(S &os, JobReport::InputFile const &f)
unsigned int startInIndexAndNames_
KindOfType kindOfType() const
TypeID const & typeID() const
Range(unsigned int begin, unsigned int end)
edm::propagate_const< std::unique_ptr< std::set< std::string > > > processItems_
ProductResolverIndex index() const
unsigned int startInProcessNames_
std::string const & moduleLabel() const
std::vector< IndexAndNames > const & indexAndNames() const
unsigned int numberOfMatches() const
std::vector< Range > ranges_
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
ProductResolverIndex index() const
ProductResolverIndex nextIndexValue_
std::vector< IndexAndNames > indexAndNames_
std::vector< std::string > lookupProcessNames_
unsigned int numberOfMatches_
ProductResolverIndexHelper const * productResolverIndexHelper_
unsigned int begin() const
std::vector< char > const & processNames() const
unsigned int beginElements_
IndexAndNames(ProductResolverIndex index, unsigned int start, unsigned int startProcess)
std::string const & instance() const
edm::propagate_const< std::unique_ptr< std::set< Item > > > items_
std::string className(const T &t)
unsigned int beginElements() const
std::vector< char > bigNamesContainer_