ATLAS Offline Software
Loading...
Searching...
No Matches
ITrackSeedingTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONRECTOOLINTERFACESR4_ITRACKSEEDINGTOOL_H
5#define MUONRECTOOLINTERFACESR4_ITRACKSEEDINGTOOL_H
6
7#include "GaudiKernel/IAlgTool.h"
8#include "GaudiKernel/EventContext.h"
9
10// Must be included before any header that pulls in <Eigen/Core> (e.g. Acts
11// below): it arms EIGEN_MATRIXBASE_PLUGIN/EIGEN_TRANSFORM_PLUGIN, which add
12// the Amg::Vector3D methods (mag(), unit(), perp(), ...) used throughout
13// this interface and its implementations. Eigen headers are include-guarded,
14// so if something else includes plain Eigen first, those methods silently
15// never exist for the rest of the translation unit.
17
18#include "Acts/EventData/BoundTrackParameters.hpp"
19
21
22#include <span>
23
24namespace MuonR4 {
25 class MsTrackSeed;
26}
27
28namespace MuonR4 {
41 class ITrackSeedingTool : virtual public IAlgTool {
42 public:
44 virtual ~ITrackSeedingTool() = default;
52 virtual StatusCode findTrackSeeds(const EventContext& ctx,
53 std::vector<MsTrackSeed>& outSeeds) const = 0;
54
55 virtual Acts::Result<Acts::BoundTrackParameters>
56 estimateStartParameters(const EventContext& ctx,
57 const MsTrackSeed& seed) const = 0;
58
59 using PosMomPair_t = std::pair<Amg::Vector3D, Amg::Vector3D>;
60
61 virtual double estimateQtimesP(const EventContext& ctx,
62 const Amg::Vector3D& planeNorm,
63 std::span<const PosMomPair_t> circlePoints) const = 0;
64
65
66 };
67}
68#endif
Tool interface to construct TrackSeeds from the MuonSegmentContainer.
std::pair< Amg::Vector3D, Amg::Vector3D > PosMomPair_t
virtual StatusCode findTrackSeeds(const EventContext &ctx, std::vector< MsTrackSeed > &outSeeds) const =0
Retrieves the segment container from StoreGate and constructs TrackSeeds from them.
virtual ~ITrackSeedingTool()=default
Default destructor.
virtual double estimateQtimesP(const EventContext &ctx, const Amg::Vector3D &planeNorm, std::span< const PosMomPair_t > circlePoints) const =0
DeclareInterfaceID(MuonR4::ITrackSeedingTool, 1, 0)
Declare the interface.
virtual Acts::Result< Acts::BoundTrackParameters > estimateStartParameters(const EventContext &ctx, const MsTrackSeed &seed) const =0
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.