5#ifndef TRKVERTEXSEEDFINDERTOOLS_ZScanSeedFinder_H
6#define TRKVERTEXSEEDFINDERTOOLS_ZScanSeedFinder_H
9#include "GaudiKernel/ToolHandle.h"
21#include <unordered_map>
59 virtual StatusCode
finalize()
override;
70 findSeed (
const std::vector<const Trk::Track*> & vectorTrk,
124 "key for EventInfo retrieval"
129 "Trk::FsmwMode1dFinder" };
134 "Trk::TrackToVertexIPEstimator"
148 typedef std::pair<Trk::Perigee, Amg::Vector2D>
key_t;
156 std::hash<double>()(p.first.parameters()[
Trk::d0]) ^
157 std::hash<double>()(p.first.parameters()[
Trk::z0]) ^
158 std::hash<double>()(p.first.parameters()[
Trk::phi]) ^
159 std::hash<double>()(p.first.parameters()[
Trk::theta]) ^
160 std::hash<double>()(p.first.parameters()[
Trk::qOverP]) ^
161 std::hash<double>()(p.second.x()) ^
162 std::hash<double>()(p.second.y());
170 const AmgVector(5)& lparams = left.first.parameters();
171 const AmgVector(5)& rparams = right.first.parameters();
178 left.second.x() == right.second.x() &&
179 left.second.y() == right.second.y();
185 typedef std::unordered_map< key_t, value_t, hash_perigee, pred_perigee>
189 EventContext::ContextEvt_t
m_evt = -1;
Maintain a set of objects, one per slot.
Define macros for attributes used to control the static checker.
Maintain a set of objects, one per slot.
virtual Amg::Vector3D findSeed(const std::vector< const Trk::Track * > &vectorTrk, const xAOD::Vertex *constraint=0) const =0
Finds a linearization point out of a vector of tracks and returns it as an Amg::Vector3D object.
This class is a simplest representation of a vertex candidate.
std::vector< Trk::DoubleAndWeight > getPositionsCached(const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex *constraint) const
virtual StatusCode finalize() override
virtual StatusCode initialize() override
std::pair< double, double > estimateWeight(const Trk::Perigee &iTrk, const xAOD::Vertex *constraint) const
Estimate z-position and weight for one track.
std::vector< Trk::DoubleAndWeight > getPositionsUncached(const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex *constraint) const
SG::SlotSpecificObj< Cache > m_cache ATLAS_THREAD_SAFE
virtual std::vector< Amg::Vector3D > findMultiSeeds(const std::vector< const Trk::Track * > &vectorTrk, const xAOD::Vertex *constraint=0) const override final
Finds full vector of linearization points from a vector of tracks and returns it as an Amg::Vector3D ...
ToolHandle< IMode1dFinder > m_mode1dfinder
ZScanSeedFinder(const std::string &t, const std::string &n, const IInterface *p)
ToolHandle< ITrackToVertexIPEstimator > m_IPEstimator
virtual Amg::Vector3D findSeed(const std::vector< const Trk::Track * > &vectorTrk, const xAOD::Vertex *constraint=0) const override final
Finds a linearization point out of a vector of tracks and returns it as an Amg::Vector3D object.
virtual ~ZScanSeedFinder()
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
std::pair< double, double > DoubleAndWeight
ParametersBase< TrackParametersDim, Charged > TrackParameters
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Vertex_v1 Vertex
Define the latest version of the vertex class.
size_t operator()(const key_t &p) const
bool operator()(const key_t &left, const key_t &right) const
std::unordered_map< key_t, value_t, hash_perigee, pred_perigee > WeightMap_t
std::pair< double, double > value_t
EventContext::ContextEvt_t m_evt
std::pair< Trk::Perigee, Amg::Vector2D > key_t