ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
LeptonTaggers
LeptonTaggers
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
23
#include "
TrkVertexFitterInterfaces/IVertexFitter.h
"
24
#include "GaudiKernel/IInterface.h"
25
#include "GaudiKernel/IService.h"
26
#include "
AthenaBaseComps/AthService.h
"
27
28
// xAOD
29
#include "
xAODTracking/TrackParticleContainer.h
"
30
#include "
xAODTracking/Vertex.h
"
31
32
// C++
33
#include <string>
34
#include <vector>
35
36
namespace
Prompt
37
{
38
enum
VtxType
{
39
kTwoTrackVtx
= 1,
40
kSimpleMergedVtx
= 2,
41
kDeepMergedVtx
= 3,
42
kIterativeFitVtx
= 4,
43
kTwoTrackVtxWithoutLepton
= 5,
44
kIterativeFitVtxWithoutLepton
= 6,
45
kRefittedPriVtx
= 7,
46
kRefittedPriVtxWithoutLep
= 8
47
};
48
49
struct
FittingInput
50
{
51
FittingInput
() =
default
;
52
53
FittingInput
(
const
xAOD::TrackParticleContainer
*inDetTracks_p,
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
60
const
xAOD::TrackParticleContainer
*
inDetTracks
{
nullptr
};
61
const
xAOD::Vertex
*
priVtx
{
nullptr
};
62
const
xAOD::Vertex
*
refittedPriVtx
{
nullptr
};
63
const
xAOD::Vertex
*
refittedPriVtxWithoutLep
{
nullptr
};
64
65
};
66
67
//
68
// Interface of Vertex Merging Tool
69
//
70
class
IVertexFittingTool
:
public
virtual
IAlgTool
71
{
72
public
:
73
74
DeclareInterfaceID
(
Prompt::IVertexFittingTool
, 1, 0 );
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
AthService.h
TrackParticleContainer.h
Vertex.h
IVertexFitter.h
Prompt::IVertexFittingTool
Definition
IVertexFittingTool.h:71
Prompt::IVertexFittingTool::fitVertexWithPrimarySeed
virtual std::unique_ptr< xAOD::Vertex > fitVertexWithPrimarySeed(const EventContext &ctx, const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, VtxType vtx)=0
Prompt::IVertexFittingTool::fitVertexWithSeed
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
Prompt::IVertexFittingTool::isValidVertex
virtual bool isValidVertex(const xAOD::Vertex *vtx) const =0
Prompt::IVertexFittingTool::DeclareInterfaceID
DeclareInterfaceID(Prompt::IVertexFittingTool, 1, 0)
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Prompt
Definition
DecoratePLIT.h:29
Prompt::VtxType
VtxType
Definition
IVertexFittingTool.h:38
Prompt::kTwoTrackVtxWithoutLepton
@ kTwoTrackVtxWithoutLepton
Definition
IVertexFittingTool.h:43
Prompt::kTwoTrackVtx
@ kTwoTrackVtx
Definition
IVertexFittingTool.h:39
Prompt::kRefittedPriVtx
@ kRefittedPriVtx
Definition
IVertexFittingTool.h:45
Prompt::kIterativeFitVtx
@ kIterativeFitVtx
Definition
IVertexFittingTool.h:42
Prompt::kRefittedPriVtxWithoutLep
@ kRefittedPriVtxWithoutLep
Definition
IVertexFittingTool.h:46
Prompt::kDeepMergedVtx
@ kDeepMergedVtx
Definition
IVertexFittingTool.h:41
Prompt::kSimpleMergedVtx
@ kSimpleMergedVtx
Definition
IVertexFittingTool.h:40
Prompt::kIterativeFitVtxWithoutLepton
@ kIterativeFitVtxWithoutLepton
Definition
IVertexFittingTool.h:44
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition
Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
Prompt::FittingInput
Definition
IVertexFittingTool.h:50
Prompt::FittingInput::refittedPriVtxWithoutLep
const xAOD::Vertex * refittedPriVtxWithoutLep
Definition
IVertexFittingTool.h:63
Prompt::FittingInput::FittingInput
FittingInput()=default
Prompt::FittingInput::refittedPriVtx
const xAOD::Vertex * refittedPriVtx
Definition
IVertexFittingTool.h:62
Prompt::FittingInput::inDetTracks
const xAOD::TrackParticleContainer * inDetTracks
Definition
IVertexFittingTool.h:60
Prompt::FittingInput::priVtx
const xAOD::Vertex * priVtx
Definition
IVertexFittingTool.h:61
Prompt::FittingInput::FittingInput
FittingInput(const xAOD::TrackParticleContainer *inDetTracks_p, const xAOD::Vertex *priVtx_p, const xAOD::Vertex *refittedPriVtx_p)
Definition
IVertexFittingTool.h:53
Generated on
for ATLAS Offline Software by
1.17.0