ATLAS Offline Software
Loading...
Searching...
No Matches
CrossDistancesSeedFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKVERTEXSEEDFINDERTOOLS_CROSSDISTANCESSEEDFINDER_H
6#define TRKVERTEXSEEDFINDERTOOLS_CROSSDISTANCESSEEDFINDER_H
7
10#include "GaudiKernel/ToolHandle.h"
11
14
15namespace Trk
16{
17 class Track;
18
19 // @author N. Giacinto Piacquadio (Albert-Ludwigs-Universitaet Freiburg - Germany)
20 //
21 // @ATLAS software
22 //
23 // This class implements a seed finder for the vertexing algorithm
24 // which is based on the mean points of the distances between all tracks
25 // (taken two by two). There's actually no selection on the tracks.
26 //
27 //
28 // A very similar point finder was implemented for the first time by Waltenberger
29 // in CMS. I suggest his PhD thesis (2005) as a reference for the different concepts
30 // of point finders.
31 //
32 // ---------------------------------------
33 // Changes:
34 //
35 // David Shope <david.richard.shope@cern.ch> (2016-04-19)
36 //
37 // EDM Migration to xAOD - from Trk::VxCandidate to xAOD::Vertex,
38 // from Trk::RecVertex to xAOD::Vertex,
39 // from Trk::Vertex to Amg::Vector3D
40
41
42 class CrossDistancesSeedFinder final: public extends<AthAlgTool, IVertexSeedFinder>
43 {
44 public:
45 // Standard Gaudi constructor.
46 CrossDistancesSeedFinder (const std::string& t,
47 const std::string& n,
48 const IInterface* p);
49
50
52
53 virtual StatusCode initialize() override;
54
55
57
63 virtual Amg::Vector3D
64 findSeed (const std::vector<const Trk::Track*> & vectorTrk,
65 const xAOD::Vertex * constraint=0) const override final;
66
67
73 virtual Amg::Vector3D
74 findSeed (const std::vector<const Trk::TrackParameters*> & perigeeList,
75 const xAOD::Vertex * constraint=0) const override final;
76
77
83 virtual std::vector<Amg::Vector3D>
85 const xAOD::Vertex * constraint=0) const override final;
86
87
94 virtual std::vector<Amg::Vector3D>
96 const xAOD::Vertex * constraint=0) const override final;
97
98
99 private:
100
108
109 ToolHandle<IMode3dFinder> m_mode3dfinder{ this,
110 "Mode3dFinder",
111 "Trk::Mode3dTo1dFinder" };
112 ToolHandle<ITrkDistanceFinder> m_distancefinder{
113 this,
114 "TrkDistanceFinder",
115 "Trk::SeedNewtonTrkDistanceFinder"
116 };
117 };
118}
119#endif
Eigen::Matrix< double, 3, 1 > Vector3D
ToolHandle< ITrkDistanceFinder > m_distancefinder
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 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< IMode3dFinder > m_mode3dfinder
CrossDistancesSeedFinder(const std::string &t, const std::string &n, const IInterface *p)
virtual StatusCode initialize() override
Interface class for the algotool which calculates the mode of a threedimensional distribution.
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.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
STL namespace.
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.
#define private