ATLAS Offline Software
Loading...
Searching...
No Matches
IVertexCascadeFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5// IVertexCascadeFitter.h -
6//---------------------------------------------------------------
7#ifndef TRKVKALVRTFITTER_IVERTEXCASCADEFITTER_H
8#define TRKVKALVRTFITTER_IVERTEXCASCADEFITTER_H
9
10// Gaudi includes
12//
15#include <memory>
16#include <vector>
17#include <span>
18
19class EventContext;
20
21namespace Trk{
22 class Vertex;
23 class IVKalState;
24 class VxCascadeInfo;
25
26 typedef int VertexID;
27
28//------------------------------------------------------------------------
29 static const InterfaceID IID_IVertexCascadeFitter("IVertexCascadeFitter", 1, 0);
30
31 class IVertexCascadeFitter : virtual public IAlgTool {
32 public:
33 static const InterfaceID& interfaceID() { return IID_IVertexCascadeFitter;}
34//---------------------------------------------------------------------------
35//Interface itself
36
37 /*
38 * Context aware method
39 */
40 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
41
42 /*
43 * For non-migrated clients whcih should always use the context aware method
44 */
45 virtual std::unique_ptr<IVKalState> makeState() const
46 {
47 return makeState(Gaudi::Hive::currentContext());
48 }
49
50 virtual VertexID startVertex(const std::vector<const xAOD::TrackParticle*> & list,
51 std::span<const double> particleMass,
52 IVKalState& istate,
53 double massConstraint = 0.) const = 0;
54
55 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
56 std::span<const double> particleMass,
57 IVKalState& istate,
58 double massConstraint = 0.) const = 0;
59
60 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
61 std::span<const double> particleMass,
62 const std::vector<VertexID> &precedingVertices,
63 IVKalState& istate,
64 double massConstraint = 0.) const = 0;
65
67 const Vertex * primVertex = 0, bool FirstDecayAtPV = false ) const = 0;
68
69 virtual StatusCode addMassConstraint(VertexID Vertex,
70 const std::vector<const xAOD::TrackParticle*> & tracksInConstraint,
71 const std::vector<VertexID> &verticesInConstraint,
72 IVKalState& istate,
73 double massConstraint ) const = 0;
74
75 };
76
77} //end of namespace
78
79#endif
Base class for VKal state object.
virtual std::unique_ptr< IVKalState > makeState(const EventContext &ctx) const =0
virtual VertexID nextVertex(const std::vector< const xAOD::TrackParticle * > &list, std::span< const double > particleMass, IVKalState &istate, double massConstraint=0.) const =0
virtual VertexID nextVertex(const std::vector< const xAOD::TrackParticle * > &list, std::span< const double > particleMass, const std::vector< VertexID > &precedingVertices, IVKalState &istate, double massConstraint=0.) const =0
static const InterfaceID & interfaceID()
virtual std::unique_ptr< IVKalState > makeState() const
virtual VxCascadeInfo * fitCascade(IVKalState &istate, const Vertex *primVertex=0, bool FirstDecayAtPV=false) const =0
virtual VertexID startVertex(const std::vector< const xAOD::TrackParticle * > &list, std::span< const double > particleMass, IVKalState &istate, double massConstraint=0.) const =0
virtual StatusCode addMassConstraint(VertexID Vertex, const std::vector< const xAOD::TrackParticle * > &tracksInConstraint, const std::vector< VertexID > &verticesInConstraint, IVKalState &istate, double massConstraint) const =0
This class is a simplest representation of a vertex candidate.
Ensure that the ATLAS eigen extensions are properly loaded.
static const InterfaceID IID_IVertexCascadeFitter("IVertexCascadeFitter", 1, 0)