1 #ifndef DataFormats_Common_RefItemGet_h
2 #define DataFormats_Common_RefItemGet_h
17 template <
typename C,
typename T,
typename F,
typename K>
inline
20 T const* item = finder(*container, key);
24 template<
typename C,
typename T,
typename F,
typename KEY>
32 if(
nullptr == prodGetter) {
46 item = func(*prod, key);
47 product.setProductPtr(item);
52 template<
typename C,
typename T,
typename F>
60 if(getter ==
nullptr) {
70 item = func(*prod, key);
71 product.setProductPtr(item);
74 unsigned int thinnedKey =
key;
75 prod =
edm::template getThinnedProduct<C>(product, thinnedKey, getter);
77 item = func(*prod, thinnedKey);
78 product.setProductPtr(item);
84 template <
typename C,
typename T,
typename F,
typename KEY>
91 template<
typename C,
typename KEY>
98 template<
typename C >
108 if(getter !=
nullptr) {
117 template <
typename C,
typename KEY>
bool isThinnedAvailable(RefCore const &product, KEY const &iKey)
T const * getRefPtr(RefCore const &product, KEY const &iKey)
void setProductPtr(void const *prodPtr) const
bool isThinnedAvailable(unsigned int thinnedKey, EDProductGetter const *prodGetter) const
static bool isThinnedAvailable_(RefCore const &product, KEY const &key)
static T const * getRefPtr_(RefCore const &product, unsigned int key)
void findRefItem(RefCore const &refCore, C const *container, K const &key)
void const * productPtr() const
string key
FastSim: produces sample of signal events, overlayed with premixed minbias events.
static T const * getRefPtr_(RefCore const &product, KEY const &key)
EDProductGetter const * productGetter() const
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
static bool isThinnedAvailable_(RefCore const &ref, unsigned int key)