ATLAS Offline Software
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 
18 class EventContext;
19 
20 namespace 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 
65  virtual VxCascadeInfo * fitCascade(IVKalState& istate,
66  const Vertex * primVertex = 0, bool FirstDecayAtPV = false ) const = 0;
67 
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
Trk::IVertexCascadeFitter::addMassConstraint
virtual StatusCode addMassConstraint(VertexID Vertex, const std::vector< const xAOD::TrackParticle * > &tracksInConstraint, const std::vector< VertexID > &verticesInConstraint, IVKalState &istate, double massConstraint) const =0
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
Trk::IVertexCascadeFitter::makeState
virtual std::unique_ptr< IVKalState > makeState() const
Definition: IVertexCascadeFitter.h:44
Trk::VxCascadeInfo
Definition: VxCascadeInfo.h:75
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
Trk::VertexID
int VertexID
Definition: IVertexCascadeFitter.h:23
Trk::IVertexCascadeFitter::startVertex
virtual VertexID startVertex(const std::vector< const xAOD::TrackParticle * > &list, std::span< const double > particleMass, IVKalState &istate, double massConstraint=0.) const =0
Trk::IVertexCascadeFitter
Definition: IVertexCascadeFitter.h:30
Trk::IVertexCascadeFitter::nextVertex
virtual VertexID nextVertex(const std::vector< const xAOD::TrackParticle * > &list, std::span< const double > particleMass, IVKalState &istate, double massConstraint=0.) const =0
Trk::IVertexCascadeFitter::makeState
virtual std::unique_ptr< IVKalState > makeState(const EventContext &ctx) const =0
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IVertexCascadeFitter::interfaceID
static const InterfaceID & interfaceID()
Definition: IVertexCascadeFitter.h:32
Trk::IVertexCascadeFitter::fitCascade
virtual VxCascadeInfo * fitCascade(IVKalState &istate, const Vertex *primVertex=0, bool FirstDecayAtPV=false) const =0
Trk::IVKalState
Definition: IVKalState.h:21
TrackParticleFwd.h
Trk::IVertexCascadeFitter::nextVertex
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