ATLAS Offline Software
PhysicsAnalysis
D3PDMaker
TrackD3PDMaker
src
TrackParticlePerigeeAtPVAssociationTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
11
#include "
TrackParticlePerigeeAtPVAssociationTool.h
"
12
13
#include "
TrkParameters/TrackParameters.h
"
14
#include "
xAODTracking/VertexContainer.h
"
15
#include "
AthenaKernel/errorcheck.h
"
16
#include "
VxVertex/PrimaryVertexSelector.h
"
17
18
namespace
D3PD
{
19
26
TrackParticlePerigeeAtPVAssociationTool::TrackParticlePerigeeAtPVAssociationTool
27
(
const
std::string&
type
,
28
const
std::string&
name
,
29
const
IInterface*
parent
)
30
:
Base
(
type
,
name
,
parent
),
31
m_resolver (
"TrackParticlePerigeeAtPVAssociationTool"
,
32
evtStore(),
33
m_vxCandidate)
34
{
35
declareProperty (
"SGKey"
,
m_vxCandidate
=
"PrimaryVertices,VxPrimaryCandidate"
);
36
}
37
38
StatusCode
TrackParticlePerigeeAtPVAssociationTool::initialize
(){
39
40
CHECK
(
Base::initialize
() );
41
CHECK
(
m_trackToVertexTool
.retrieve() );
42
43
return
StatusCode::SUCCESS;
44
}
45
46
53
const
Trk::TrackParameters
*
54
TrackParticlePerigeeAtPVAssociationTool::get
(
const
xAOD::TrackParticle
&
track
)
55
{
56
m_resolver
.
initialize
<
xAOD::VertexContainer
>().
ignore
();
57
const
xAOD::VertexContainer
* vxContainer = 0;
58
StatusCode
sc
= evtStore()->retrieve(vxContainer,
m_resolver
.
key
());
59
if
(
sc
.isFailure() || !vxContainer) {
60
REPORT_MESSAGE
(MSG::WARNING) <<
"Could not retrieve primary vertex container: "
<<
m_vxCandidate
;
61
return
0;
62
}
63
64
if
(vxContainer->
size
()<1){
65
REPORT_MESSAGE
(MSG::WARNING) <<
"No primary vertices reconstructed"
;
66
return
0;
67
}
68
69
for
(
const
xAOD::Vertex
* vx : *vxContainer) {
70
if
(vx->vertexType() ==
xAOD::VxType::PriVtx
)
71
return
m_trackToVertexTool
->perigeeAtVertex(Gaudi::Hive::currentContext(),
track
, vx->position()).release();
72
}
73
74
REPORT_MESSAGE
(MSG::WARNING) <<
"No primary vertices reconstructed"
;
75
return
0;
76
}
77
78
88
void
TrackParticlePerigeeAtPVAssociationTool::releaseObject
(
const
Trk::TrackParameters
*
p
)
89
{
90
if
(
p
)
delete
p
;
91
}
92
93
}
// namespace D3PD
TrackParameters.h
D3PD::TrackParticlePerigeeAtPVAssociationTool::TrackParticlePerigeeAtPVAssociationTool
TrackParticlePerigeeAtPVAssociationTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition:
TrackParticlePerigeeAtPVAssociationTool.cxx:27
initialize
void initialize()
Definition:
run_EoverP.cxx:894
D3PD::SGKeyResolver::initialize
StatusCode initialize(CLID clid, const std::string &typname)
Initialize.
Definition:
SGKeyResolver.cxx:44
D3PD::SingleAssociationTool< Types< xAOD::TrackParticle >, Trk::TrackParameters >
python.CaloAddPedShiftConfig.type
type
Definition:
CaloAddPedShiftConfig.py:42
AthenaPoolTestRead.sc
sc
Definition:
AthenaPoolTestRead.py:27
D3PD::TrackParticlePerigeeAtPVAssociationTool::initialize
virtual StatusCode initialize() override
Definition:
TrackParticlePerigeeAtPVAssociationTool.cxx:38
DiTauMassTools::ignore
void ignore(T &&)
Definition:
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:58
TrackParticlePerigeeAtPVAssociationTool.h
Associate from a TrackParticle to its perigee at PV.
D3PD
Block filler tool for noisy FEB information.
Definition:
CaloCellDetailsFillerTool.cxx:29
python.utils.AtlRunQueryDQUtils.p
p
Definition:
AtlRunQueryDQUtils.py:209
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
D3PD::TrackParticlePerigeeAtPVAssociationTool::m_resolver
SGKeyResolver m_resolver
Definition:
TrackParticlePerigeeAtPVAssociationTool.h:71
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition:
TrackingPrimitives.h:572
D3PD::TrackParticlePerigeeAtPVAssociationTool::get
virtual const Trk::TrackParameters * get(const xAOD::TrackParticle &p) override
Return the target object.
Definition:
TrackParticlePerigeeAtPVAssociationTool.cxx:54
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition:
Control/AthenaKernel/AthenaKernel/errorcheck.h:422
Trk::ParametersBase
Definition:
ParametersBase.h:55
DataVector
Derived DataVector<T>.
Definition:
DataVector.h:794
D3PD::SGKeyResolver::key
std::string key()
Return the SG key we should use.
Definition:
SGKeyResolver.cxx:55
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:240
D3PD::TrackParticlePerigeeAtPVAssociationTool::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition:
TrackParticlePerigeeAtPVAssociationTool.h:68
errorcheck.h
Helpers for checking error return status codes and reporting errors.
D3PD::TrackParticlePerigeeAtPVAssociationTool::m_vxCandidate
std::string m_vxCandidate
Definition:
TrackParticlePerigeeAtPVAssociationTool.h:64
D3PD::TrackParticlePerigeeAtPVAssociationTool::releaseObject
virtual void releaseObject(const Trk::TrackParameters *p) override
Release an object retrieved from the association.
Definition:
TrackParticlePerigeeAtPVAssociationTool.cxx:88
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition:
Control/AthenaKernel/AthenaKernel/errorcheck.h:365
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition:
Vertex_v1.h:42
xAOD::track
@ track
Definition:
TrackingPrimitives.h:513
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition:
TrackParticle_v1.h:43
PrimaryVertexSelector.h
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
Generated on Tue Sep 2 2025 21:23:43 for ATLAS Offline Software by
1.8.18