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
11#include "GaudiKernel/IAlgTool.h"
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 class IVertexCascadeFitter : virtual public IAlgTool {
29 public:
31
32 /*
33 * Context aware method
34 */
35 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
36
37 virtual VertexID startVertex(const std::vector<const xAOD::TrackParticle*> & list,
38 std::span<const double> particleMass,
39 IVKalState& istate,
40 double massConstraint = 0.) const = 0;
41
42 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
43 std::span<const double> particleMass,
44 IVKalState& istate,
45 double massConstraint = 0.) const = 0;
46
47 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
48 std::span<const double> particleMass,
49 const std::vector<VertexID> &precedingVertices,
50 IVKalState& istate,
51 double massConstraint = 0.) const = 0;
52
54 const Vertex * primVertex = 0, bool FirstDecayAtPV = false ) const = 0;
55
56 virtual StatusCode addMassConstraint(VertexID Vertex,
57 const std::vector<const xAOD::TrackParticle*> & tracksInConstraint,
58 const std::vector<VertexID> &verticesInConstraint,
59 IVKalState& istate,
60 double massConstraint ) const = 0;
61
62 };
63
64} //end of namespace
65
66#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
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
DeclareInterfaceID(IVertexCascadeFitter, 1, 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.