ATLAS Offline Software
PhysicsAnalysis
AnalysisCommon
LeptonTaggers
LeptonTaggers
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.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 PROMPT_IVERTEXMERGINGTOOL_H
8
#define PROMPT_IVERTEXMERGINGTOOL_H
9
10
/**********************************************************************************
11
* @Package: LeptonTaggers
12
* @Class : VertexMergingTool
13
* @Author : Fudong He
14
* @Author : Rustem Ospanov
15
*
16
* @Brief :
17
*
18
* Merge the input vertices and output merged vertices.
19
*
20
**********************************************************************************/
21
22
// Athena
23
#include "
AthenaBaseComps/AthAlgorithm.h
"
24
#include "
AthenaBaseComps/AthAlgTool.h
"
25
#include "GaudiKernel/ToolHandle.h"
26
27
// xAOD
28
#include "
xAODTracking/Vertex.h
"
29
#include "
xAODTracking/TrackParticle.h
"
30
31
namespace
Prompt
32
{
33
//======================================================================================================
34
// Vertex cluster helper class
35
//
36
struct
VtxCluster
37
{
38
VtxCluster
():
vtxMerged
(nullptr) {}
39
40
std::vector<xAOD::Vertex*>
vtxsInit
;
41
std::vector<xAOD::Vertex *>
vtxsFittedBad
;
42
43
std::vector<const xAOD::TrackParticle *>
trksInit
;
44
std::vector<const xAOD::TrackParticle *>
trksCurr
;
45
46
std::unique_ptr<xAOD::Vertex>
vtxMerged
;
47
};
48
49
//======================================================================================================
50
struct
MergeResult
51
{
52
std::vector<std::unique_ptr<xAOD::Vertex>>
vtxsNewMerged
;
53
54
std::vector<std::unique_ptr<xAOD::Vertex>>
vtxsInitPassed
;
55
std::vector<std::unique_ptr<xAOD::Vertex>>
vtxsInitPassedNotMerged
;
56
};
57
58
struct
MergeResultNotOwner
59
{
60
std::vector<std::unique_ptr<xAOD::Vertex>>
vtxsNewMerged
;
61
62
std::vector<xAOD::Vertex*>
vtxsInitPassed
;
63
std::vector<std::unique_ptr<xAOD::Vertex>>
vtxsInitPassedNotMerged
;
64
};
65
66
struct
FittingInput
;
67
68
//======================================================================================================
69
// Interface of Vertex Merging Tool
70
//
71
class
IVertexMergingTool
:
public
virtual
IAlgTool
72
{
73
public
:
74
DeclareInterfaceID
(
Prompt::IVertexMergingTool
, 1, 0);
75
76
virtual
MergeResultNotOwner
mergeInitVertices
(
77
const
FittingInput
&
input
,
78
const
xAOD::TrackParticle
*tracklep,
79
std::vector<std::unique_ptr<xAOD::Vertex>> &initVtxs,
80
const
std::vector<const xAOD::TrackParticle *> &selectedTracks
81
) = 0;
82
};
83
}
84
85
#endif
Prompt::VtxCluster::vtxsInit
std::vector< xAOD::Vertex * > vtxsInit
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:60
Prompt::VtxCluster::vtxsFittedBad
std::vector< xAOD::Vertex * > vtxsFittedBad
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:61
Prompt::MergeResultNotOwner::vtxsInitPassed
std::vector< xAOD::Vertex * > vtxsInitPassed
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:72
Prompt
Definition:
DecoratePromptLeptonImproved.h:45
Prompt::MergeResult
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:61
Prompt::FittingInput
Definition:
IVertexFittingTool.h:60
Prompt::IVertexMergingTool::DeclareInterfaceID
DeclareInterfaceID(Prompt::IVertexMergingTool, 1, 0)
Prompt::MergeResult::vtxsInitPassedNotMerged
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsInitPassedNotMerged
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:65
AthAlgorithm.h
Prompt::MergeResultNotOwner::vtxsInitPassedNotMerged
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsInitPassedNotMerged
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:73
Prompt::VtxCluster::VtxCluster
VtxCluster()
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:58
Prompt::IVertexMergingTool::mergeInitVertices
virtual MergeResultNotOwner mergeInitVertices(const FittingInput &input, const xAOD::TrackParticle *tracklep, std::vector< std::unique_ptr< xAOD::Vertex >> &initVtxs, const std::vector< const xAOD::TrackParticle * > &selectedTracks)=0
PlotPulseshapeFromCool.input
input
Definition:
PlotPulseshapeFromCool.py:106
AthAlgTool.h
Vertex.h
Prompt::IVertexMergingTool
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:82
Prompt::VtxCluster::trksInit
std::vector< const xAOD::TrackParticle * > trksInit
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:63
Prompt::VtxCluster::vtxMerged
std::unique_ptr< xAOD::Vertex > vtxMerged
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:66
Prompt::MergeResult::vtxsInitPassed
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsInitPassed
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:64
TrackParticle.h
Prompt::VtxCluster::trksCurr
std::vector< const xAOD::TrackParticle * > trksCurr
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:64
Prompt::MergeResultNotOwner::vtxsNewMerged
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsNewMerged
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:70
Prompt::MergeResult::vtxsNewMerged
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsNewMerged
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:62
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition:
TrackParticle_v1.h:43
Prompt::MergeResultNotOwner
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:69
Generated on Tue Jul 2 2024 21:18:13 for ATLAS Offline Software by
1.8.18