The Gaudi Framework  master (181af51f)
Loading...
Searching...
No Matches
EventContextHash.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11#pragma once
21
23public:
24 size_t hash( const EventContext& ctx ) const {
25 size_t en = ctx.evt();
26 size_t es = ctx.slot();
27 return en ^ ( es + ( en << 6 ) + ( en >> 2 ) );
28 }
29 bool equal( const EventContext& a, const EventContext& b ) const { return hash( a ) == hash( b ); }
30
31 std::size_t operator()( const EventContext& ctx ) const { return hash( ctx ); }
32 bool operator()( const EventContext& ctx, const EventContext& ctxb ) const { return equal( ctx, ctxb ); }
33};
hash from EventContext so EvenContexts can be used as keys in unordered maps.
bool equal(const EventContext &a, const EventContext &b) const
size_t hash(const EventContext &ctx) const
bool operator()(const EventContext &ctx, const EventContext &ctxb) const
std::size_t operator()(const EventContext &ctx) const
This class represents an entry point to all the event specific data.