ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
D3PDMaker
TrackD3PDMaker
src
TrackParticlePerigeePairAtOOAssociationTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// $Id$
13
14
15
#include "
TrackParticlePerigeePairAtOOAssociationTool.h
"
16
#include "
D3PDMakerInterfaces/IObjGetterTool.h
"
17
#include "
xAODTracking/TrackParticleContainer.h
"
18
#include "
Particle/TrackParticle.h
"
19
#include "
ParticleEvent/TrackParticleAssocs.h
"
20
#include "
TrkParameters/TrackParameters.h
"
21
#include "
AthenaKernel/errorcheck.h
"
22
23
24
namespace
D3PD
{
25
26
33
TrackParticlePerigeePairAtOOAssociationTool::TrackParticlePerigeePairAtOOAssociationTool
34
(
const
std::string&
type
,
35
const
std::string& name,
36
const
IInterface* parent)
37
:
Base
(
type
, name, parent),
38
m_assocGetter
(this)
39
{
40
declareProperty (
"AssocGetter"
,
m_assocGetter
,
41
"Getter for the association object."
);
42
}
43
44
48
StatusCode
TrackParticlePerigeePairAtOOAssociationTool::initialize
()
49
{
50
CHECK
( Base::initialize() );
51
if
(!
m_assocGetter
.empty()) {
52
CHECK
(
m_assocGetter
.retrieve() );
53
CHECK
(
m_assocGetter
->configureD3PD<
TrackParticleAssocs
> () );
54
}
55
return
StatusCode::SUCCESS;
56
}
57
58
65
const
D3PD::PerigeePair
*
66
TrackParticlePerigeePairAtOOAssociationTool::get
67
(
const
Rec::TrackParticle
& track)
68
{
69
const
Rec::TrackParticle
& oldtrack =
findOldtrack
(track);
70
return
new
D3PD::PerigeePair
(track.perigee(), oldtrack.
perigee
());
71
}
72
73
80
const
D3PD::PerigeePair
*
81
TrackParticlePerigeePairAtOOAssociationTool::get
82
(
const
xAOD::TrackParticle
& track)
83
{
84
static
const
SG::AuxElement::Accessor<ElementLink<xAOD::TrackParticleContainer> >
85
orig (
"originalTrackParticle"
);
86
if
(!orig.isAvailable(track) || !orig(track).
isValid
())
87
return
0;
88
89
return
new
D3PD::PerigeePair
(&track.perigeeParameters(),
90
&(*orig(track))->
perigeeParameters
());
91
}
92
93
98
void
TrackParticlePerigeePairAtOOAssociationTool::releaseObject
99
(
const
D3PD::PerigeePair
* p)
100
{
101
delete
p;
102
}
103
104
108
const
Rec::TrackParticle
&
109
TrackParticlePerigeePairAtOOAssociationTool::findOldtrack
110
(
const
Rec::TrackParticle
& track)
111
{
112
if
(track.info().trackFitter() !=
Trk::TrackInfo::GaussianSumFilter
)
113
return
track;
114
115
const
TrackParticleAssocs
* assocs =
m_assocGetter
->get<
TrackParticleAssocs
>();
116
if
(!assocs) {
117
REPORT_MESSAGE
(MSG::WARNING) <<
"Can't find GSF track association."
;
118
return
track;
119
}
120
121
TrackParticleAssocs::asso_iterator
beg = assocs->
beginAssociation
(&track);
122
TrackParticleAssocs::asso_iterator
end = assocs->
endAssociation
(&track);
123
const
Rec::TrackParticle
* ret = 0;
124
if
(beg != end && beg.isValid())
125
ret =
dynamic_cast<
const
Rec::TrackParticle
*
>
(*beg);
126
m_assocGetter
->releaseObject (assocs);
127
if
(!ret) {
128
REPORT_MESSAGE
(MSG::WARNING)
129
<<
"Can't find original track for GSF refitted track."
;
130
return
track;
131
}
132
133
return
*ret;
134
}
135
136
137
}
// namespace D3PD
isValid
bool isValid() const
Test to see if the link can be dereferenced.
errorcheck.h
Helpers for checking error return status codes and reporting errors.
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition
Control/AthenaKernel/AthenaKernel/errorcheck.h:365
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition
Control/AthenaKernel/AthenaKernel/errorcheck.h:422
TrackParticleContainer.h
IObjGetterTool.h
Abstract interface to get an object to put in the tuple.
TrackParticle.h
TrackParticleAssocs.h
TrackParticlePerigeePairAtOOAssociationTool.h
Associate from a TrackParticle to the default Perigees for both itself and the original track (if it ...
TrackParameters.h
AssociationMap::beginAssociation
asso_iterator beginAssociation(const object_type *objectPointer) const
begin iterator for associations
AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_iterator
AssociationVectorIterator asso_iterator
Definition
AssociationMap.h:81
AssociationMap::endAssociation
asso_iterator endAssociation(const object_type *objectPointer) const
end iterator for associations
D3PD::TrackParticlePerigeePairAtOOAssociationTool::findOldtrack
const Rec::TrackParticle & findOldtrack(const Rec::TrackParticle &track)
Find the original track corresponding to a possibly refitted track.
Definition
TrackParticlePerigeePairAtOOAssociationTool.cxx:110
D3PD::TrackParticlePerigeePairAtOOAssociationTool::releaseObject
virtual void releaseObject(const D3PD::PerigeePair *p)
Release an object retrieved from the association.
Definition
TrackParticlePerigeePairAtOOAssociationTool.cxx:99
D3PD::TrackParticlePerigeePairAtOOAssociationTool::get
virtual const D3PD::PerigeePair * get(const Rec::TrackParticle &p)
Return the target object.
Definition
TrackParticlePerigeePairAtOOAssociationTool.cxx:67
D3PD::TrackParticlePerigeePairAtOOAssociationTool::initialize
virtual StatusCode initialize()
Standard Gaudi initialize method.
Definition
TrackParticlePerigeePairAtOOAssociationTool.cxx:48
D3PD::TrackParticlePerigeePairAtOOAssociationTool::Base
SingleAssociationTool< Types< Rec::TrackParticle, xAOD::TrackParticle >, D3PD::PerigeePair > Base
Definition
TrackParticlePerigeePairAtOOAssociationTool.h:45
D3PD::TrackParticlePerigeePairAtOOAssociationTool::TrackParticlePerigeePairAtOOAssociationTool
TrackParticlePerigeePairAtOOAssociationTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition
TrackParticlePerigeePairAtOOAssociationTool.cxx:34
D3PD::TrackParticlePerigeePairAtOOAssociationTool::m_assocGetter
ToolHandle< IObjGetterTool > m_assocGetter
Property: Getter for the association object.
Definition
TrackParticlePerigeePairAtOOAssociationTool.h:89
Rec::TrackParticle
Definition
Reconstruction/Particle/Particle/TrackParticle.h:47
TrackParticleAssocs
Definition
TrackParticleAssocs.h:28
Trk::TrackInfo::GaussianSumFilter
@ GaussianSumFilter
Tracks from Gaussian Sum Filter.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:53
Trk::TrackParticleBase::perigee
const Perigee * perigee() const
Attempts to cast the definingParameters() to Perigee.
Definition
TrackParticleBase.h:263
D3PD
Block filler tool for noisy FEB information.
Definition
CaloCellDetailsFillerTool.cxx:29
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
D3PD::PerigeePair
Definition
PerigeePair.h:29
type
perigeeParameters
Definition
ExtrapolatorComparisonTest.h:44
Generated on
for ATLAS Offline Software by
1.17.0