ATLAS Offline Software
Loading...
Searching...
No Matches
IVertexCascadeFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 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//
14#include <memory>
15#include <vector>
16#include <span>
17
18class EventContext;
19
20namespace Trk{
21 class Vertex;
22 class IVKalState;
23 class VxCascadeInfo;
24
25 typedef int VertexID;
26
27//------------------------------------------------------------------------
28 static const InterfaceID IID_IVertexCascadeFitter("IVertexCascadeFitter", 1, 0);
29
30 class IVertexCascadeFitter : virtual public IAlgTool {
31 public:
32 static const InterfaceID& interfaceID() { return IID_IVertexCascadeFitter;}
33//---------------------------------------------------------------------------
34//Interface itself
35
36 /*
37 * Context aware method
38 */
39 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
40
41 /*
42 * For non-migrated clients whcih should always use the context aware method
43 */
44 virtual std::unique_ptr<IVKalState> makeState() const
45 {
46 return makeState(Gaudi::Hive::currentContext());
47 }
48
49 virtual VertexID startVertex(const std::vector<const xAOD::TrackParticle*> & list,
50 std::span<const double> particleMass,
51 IVKalState& istate,
52 double massConstraint = 0.) const = 0;
53
54 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
55 std::span<const double> particleMass,
56 IVKalState& istate,
57 double massConstraint = 0.) const = 0;
58
59 virtual VertexID nextVertex(const std::vector<const xAOD::TrackParticle*> & list,
60 std::span<const double> particleMass,
61 const std::vector<VertexID> &precedingVertices,
62 IVKalState& istate,
63 double massConstraint = 0.) const = 0;
64
66 const Vertex * primVertex = 0, bool FirstDecayAtPV = false ) const = 0;
67
68 virtual StatusCode addMassConstraint(VertexID Vertex,
69 const std::vector<const xAOD::TrackParticle*> & tracksInConstraint,
70 const std::vector<VertexID> &verticesInConstraint,
71 IVKalState& istate,
72 double massConstraint ) const = 0;
73
74 };
75
76} //end of namespace
77
78#endif
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)