ATLAS Offline Software
TrackParticlePerigeeAtPVAssociationTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
12 
17 
18 namespace D3PD {
19 
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 
39 
41  CHECK( m_trackToVertexTool.retrieve() );
42 
43  return StatusCode::SUCCESS;
44 }
45 
46 
55 {
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 
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.