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-2023 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 FittingInput &input,
78 const std::vector<const xAOD::TrackParticle* > &tracks,
79 VtxType vtx
80 ) = 0;
81
82 virtual std::unique_ptr<xAOD::Vertex> fitVertexWithSeed(
83 const FittingInput &input,
84 const std::vector<const xAOD::TrackParticle* > &tracks,
85 const Amg::Vector3D& seed,
86 VtxType vtxType
87 ) = 0;
88
89 virtual bool isValidVertex(const xAOD::Vertex *vtx) const = 0;
90 };
91}
92
93#endif
virtual bool isValidVertex(const xAOD::Vertex *vtx) const =0
virtual std::unique_ptr< xAOD::Vertex > fitVertexWithPrimarySeed(const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, VtxType vtx)=0
DeclareInterfaceID(Prompt::IVertexFittingTool, 1, 0)
virtual std::unique_ptr< xAOD::Vertex > fitVertexWithSeed(const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, const Amg::Vector3D &seed, VtxType vtxType)=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)