ATLAS Offline Software
PhysicsAnalysis
AnalysisCommon
LeptonTaggers
LeptonTaggers
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.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 VERTEXMERGINGTOOL_H
8
#define VERTEXMERGINGTOOL_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
// Local
23
#include "
IVertexFittingTool.h
"
24
#include "
IVertexMergingTool.h
"
25
26
// Athena
27
#include "
AthenaBaseComps/AthAlgorithm.h
"
28
#include "
AthenaBaseComps/AthAlgTool.h
"
29
#include "GaudiKernel/ToolHandle.h"
30
31
// xAOD
32
#include "
xAODTracking/Vertex.h
"
33
#include "
xAODTracking/TrackParticle.h
"
34
35
namespace
Prompt
36
{
37
//
38
// Vertex Merging Tool
39
//
40
class
VertexMergingTool:
public
AthAlgTool
,
virtual
public
IVertexMergingTool
41
{
42
public
:
43
44
VertexMergingTool
(
const
std::string &
name
,
45
const
std::string &
type
,
46
const
IInterface *
parent
);
47
48
virtual
StatusCode
initialize
()
override
;
49
50
virtual
MergeResultNotOwner
mergeInitVertices
(
51
const
FittingInput
&
input
,
52
const
xAOD::TrackParticle
*tracklep,
53
std::vector<std::unique_ptr<xAOD::Vertex>> &init_vtxs,
54
const
std::vector<const xAOD::TrackParticle *> &selected_tracks
55
)
override
;
56
57
private
:
58
59
bool
passVertexSelection
(
const
xAOD::Vertex
*vtx)
const
;
60
61
bool
makeClusters
(
62
std::vector<std::unique_ptr<VtxCluster>> &
clusters
,
63
std::vector<xAOD::Vertex*> &init_vtxs
64
);
65
66
bool
matchVtxToCluster
(
const
VtxCluster
&cluster,
const
xAOD::Vertex
*vtx)
const
;
67
68
bool
addInitVtxToCluster
(
69
VtxCluster
&cluster,
xAOD::Vertex
* vtx
70
)
const
;
71
72
bool
fitVertexCluster
(
73
const
FittingInput
&
input
,
74
const
xAOD::TrackParticle
*tracklep,
75
VtxCluster
&cluster
76
);
77
78
double
getMinNormDistVtx
(
const
xAOD::Vertex
*vtx1,
const
xAOD::Vertex
*vtx2)
const
;
79
80
//
81
// Properties:
82
//
83
ServiceHandle<Prompt::IVertexFittingTool>
m_vertexFitterTool
{
84
this
,
"VertexFittingTool"
,
"Prompt::VertexFittingSvc/PromptVertexFittingSvc"
85
};
86
87
Gaudi::Property<bool>
m_useMinNormDist
{
this
,
"useMinNormDist"
,
false
};
88
89
Gaudi::Property<double>
m_minFitProb
{
this
,
"minFitProb"
, 0.01};
90
Gaudi::Property<double>
m_minDistanceClusterVtx
{
this
,
"minDistanceClusterVtx"
, 1.00};
91
};
92
}
93
94
#endif
Prompt
Definition:
DecoratePromptLeptonImproved.h:45
Prompt::VertexMergingTool::addInitVtxToCluster
bool addInitVtxToCluster(VtxCluster &cluster, xAOD::Vertex *vtx) const
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:249
Prompt::VertexMergingTool::matchVtxToCluster
bool matchVtxToCluster(const VtxCluster &cluster, const xAOD::Vertex *vtx) const
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:218
Prompt::VertexMergingTool::mergeInitVertices
virtual MergeResultNotOwner mergeInitVertices(const FittingInput &input, const xAOD::TrackParticle *tracklep, std::vector< std::unique_ptr< xAOD::Vertex >> &init_vtxs, const std::vector< const xAOD::TrackParticle * > &selected_tracks) override
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:35
IVertexFittingTool.h
Prompt::VertexMergingTool::fitVertexCluster
bool fitVertexCluster(const FittingInput &input, const xAOD::TrackParticle *tracklep, VtxCluster &cluster)
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:282
Prompt::FittingInput
Definition:
IVertexFittingTool.h:60
Prompt::VertexMergingTool::VertexMergingTool
VertexMergingTool(const std::string &name, const std::string &type, const IInterface *parent)
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:18
Prompt::VertexMergingTool::makeClusters
bool makeClusters(std::vector< std::unique_ptr< VtxCluster >> &clusters, std::vector< xAOD::Vertex * > &init_vtxs)
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:171
AthAlgorithm.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Prompt::VertexMergingTool::m_useMinNormDist
Gaudi::Property< bool > m_useMinNormDist
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h:107
PlotPulseshapeFromCool.input
input
Definition:
PlotPulseshapeFromCool.py:106
AthAlgTool.h
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
Prompt::VertexMergingTool::m_minDistanceClusterVtx
Gaudi::Property< double > m_minDistanceClusterVtx
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h:110
Prompt::VertexMergingTool::initialize
virtual StatusCode initialize() override
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:27
Vertex.h
Prompt::VertexMergingTool::m_vertexFitterTool
ServiceHandle< Prompt::IVertexFittingTool > m_vertexFitterTool
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h:103
Prompt::VtxCluster
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:47
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:192
Prompt::VertexMergingTool::passVertexSelection
bool passVertexSelection(const xAOD::Vertex *vtx) const
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:149
TrackParticle.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition:
Vertex_v1.h:42
Prompt::VertexMergingTool::getMinNormDistVtx
double getMinNormDistVtx(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2) const
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx:327
python.CaloScaleNoiseConfig.type
type
Definition:
CaloScaleNoiseConfig.py:78
RunTileMonitoring.clusters
clusters
Definition:
RunTileMonitoring.py:133
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition:
TrackParticle_v1.h:43
AthAlgTool
Definition:
AthAlgTool.h:26
IVertexMergingTool.h
Prompt::VertexMergingTool::m_minFitProb
Gaudi::Property< double > m_minFitProb
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h:109
ServiceHandle< Prompt::IVertexFittingTool >
Prompt::MergeResultNotOwner
Definition:
PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/IVertexMergingTool.h:69
Generated on Sun Jun 30 2024 21:32:17 for ATLAS Offline Software by
1.8.18