| The Gaudi Framework v32r1 (f65d50dc)

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