ATLAS Offline Software
Loading...
Searching...
No Matches
IVertexFittingTool.h
Go to the documentation of this file.
1// This is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef LEPTONTAGGERS_IVertexFittingTool_H
8#define LEPTONTAGGERS_IVertexFittingTool_H
9
10/**********************************************************************************
11 * @Package: LeptonTaggers
12 * @Class : VertexFittingSvc
13 * @Author : Fudong He
14 * @Author : Rustem Ospanov
15 *
16 * @Brief :
17 *
18 * Fit the input ID tracks and produced the output vertex.
19 *
20 **********************************************************************************/
21
22// Athena
24#include "GaudiKernel/IInterface.h"
25#include "GaudiKernel/IService.h"
27
28// xAOD
30#include "xAODTracking/Vertex.h"
31
32// C++
33#include <string>
34#include <vector>
35
36namespace Prompt
37{
48
50 {
51 FittingInput() = default;
52
54 const xAOD::Vertex *priVtx_p,
55 const xAOD::Vertex *refittedPriVtx_p):
56 inDetTracks (inDetTracks_p),
57 priVtx (priVtx_p),
58 refittedPriVtx (refittedPriVtx_p){}
59
61 const xAOD::Vertex *priVtx{nullptr};
64
65 };
66
67 //
68 // Interface of Vertex Merging Tool
69 //
70 class IVertexFittingTool: public virtual IAlgTool
71 {
72 public:
73
75
76 virtual std::unique_ptr<xAOD::Vertex> fitVertexWithPrimarySeed(
77 const EventContext& ctx,
78 const FittingInput &input,
79 const std::vector<const xAOD::TrackParticle* > &tracks,
80 VtxType vtx
81 ) = 0;
82
83 virtual std::unique_ptr<xAOD::Vertex> fitVertexWithSeed(
84 const EventContext& ctx,
85 const FittingInput &input,
86 const std::vector<const xAOD::TrackParticle* > &tracks,
87 const Amg::Vector3D& seed,
88 VtxType vtxType
89 ) = 0;
90
91 virtual bool isValidVertex(const xAOD::Vertex *vtx) const = 0;
92 };
93}
94
95#endif
virtual std::unique_ptr< xAOD::Vertex > fitVertexWithPrimarySeed(const EventContext &ctx, const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, VtxType vtx)=0
virtual std::unique_ptr< xAOD::Vertex > fitVertexWithSeed(const EventContext &ctx, const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, const Amg::Vector3D &seed, VtxType vtxType)=0
virtual bool isValidVertex(const xAOD::Vertex *vtx) const =0
DeclareInterfaceID(Prompt::IVertexFittingTool, 1, 0)
Eigen::Matrix< double, 3, 1 > Vector3D
@ kTwoTrackVtxWithoutLepton
@ kRefittedPriVtxWithoutLep
@ kIterativeFitVtxWithoutLepton
Vertex_v1 Vertex
Define the latest version of the vertex class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
const xAOD::Vertex * refittedPriVtxWithoutLep
const xAOD::Vertex * refittedPriVtx
const xAOD::TrackParticleContainer * inDetTracks
const xAOD::Vertex * priVtx
FittingInput(const xAOD::TrackParticleContainer *inDetTracks_p, const xAOD::Vertex *priVtx_p, const xAOD::Vertex *refittedPriVtx_p)