12#ifndef EFLOWTRACKCLUSTERLINK_H_
13#define EFLOWTRACKCLUSTERLINK_H_
16#include <unordered_map>
21#include "GaudiKernel/ToolHandle.h"
22#include "GaudiKernel/EventContext.h"
23#include "GaudiKernel/ThreadLocalContext.h"
46 const EventContext& ctx = Gaudi::Hive::currentContext());
59 using key_t = std::pair<eflowRecTrack*, eflowRecCluster*>;
64 return std::hash<eflowRecTrack*>()(k.first) ^
65 std::hash<eflowRecCluster*>()(k.second);
71 std::unordered_map<key_t, std::unique_ptr<eflowTrackClusterLink>,
Hasher >
m_map;
72 EventContext::ContextEvt_t
m_evt =
static_cast<EventContext::ContextEvt_t
>(-1);
This class extends the information about a xAOD::CaloCluster.
This class extends the information about a xAOD::Track.
Stores pointers to an eflowRecTrack and an eflowRecCluster.
std::pair< eflowRecTrack *, eflowRecCluster * > key_t
eflowRecTrack * getTrack()
eflowRecCluster * getCluster()
const std::vector< double > & getClusterIntegral() const
eflowRecCluster * m_cluster
const eflowRecCluster * getCluster() const
std::vector< double > m_clusterIntegral
static eflowTrackClusterLink * getInstance(eflowRecTrack *track, eflowRecCluster *cluster, const EventContext &ctx=Gaudi::Hive::currentContext())
void setClusterIntegral(const std::vector< double > &clusterIntegral)
const eflowRecTrack * getTrack() const
eflowTrackClusterLink(eflowRecTrack *track, eflowRecCluster *cluster)
virtual ~eflowTrackClusterLink()
Workaround x86 precision issues for FP inequality comparisons.
std::unordered_map< key_t, std::unique_ptr< eflowTrackClusterLink >, Hasher > m_map
EventContext::ContextEvt_t m_evt
size_t operator()(const key_t &k) const