The Gaudi Framework  v30r3 (a5ef0a68)
EventContextHash.h
Go to the documentation of this file.
1 #ifndef __EVENT_CONTEXT_HASH_H
2 #define __EVENT_CONTEXT_HASH_H
14 {
15 public:
16  size_t hash( const EventContext& ctx ) const
17  {
18  size_t en = ctx.evt();
19  size_t es = ctx.slot();
20  return en ^ ( es + ( en << 6 ) + ( en >> 2 ) );
21  }
22  bool equal( const EventContext& a, const EventContext& b ) const { return hash( a ) == hash( b ); }
23 
24  std::size_t operator()( const EventContext& ctx ) const { return hash( ctx ); }
25  bool operator()( const EventContext& ctx, const EventContext& ctxb ) const { return equal( ctx, ctxb ); }
26 };
27 
28 #endif
bool equal(const EventContext &a, const EventContext &b) const
ContextID_t slot() const
Definition: EventContext.h:40
This class represents an entry point to all the event specific data.
Definition: EventContext.h:24
ContextEvt_t evt() const
Definition: EventContext.h:39
bool operator()(const EventContext &ctx, const EventContext &ctxb) const
size_t hash(const EventContext &ctx) const
hash from EventContext so EvenContexts can be used as keys in unordered maps.
std::size_t operator()(const EventContext &ctx) const