ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEvent
VxSecVertex
src
VxSecVKalVertexInfo.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/****************************************
6
7
VxSecVertexInfo.h - Description
8
-------------------
9
10
begin: March 2007
11
authors: CSC vertexing note group members :-)
12
work started by: Giacinto Piacquadio (University of Freiburg)
13
e-mail: giacinto.piacquadio@physik.uni-freiburg.de
14
changes: new!
15
16
April 2014: Trk::VxCandidate is replaced by xAOD::Vertex
17
xAOD::IParticle is added to interface
18
19
********************************************/
20
21
#include "
VxSecVertex/VxSecVKalVertexInfo.h
"
22
23
namespace
Trk
{
24
25
VxSecVKalVertexInfo::VxSecVKalVertexInfo
() :
26
VxSecVertexInfo
(),
27
m_mass
(0.),
28
m_energyFraction
(0.),
29
m_energyTrkInJet
(0.),
30
m_dstToMatLayer
(1000.),
31
m_n2trackvertices
(0),
32
m_nBigImpTracks
(0),
33
m_pseudoVertex
(nullptr){}
34
35
VxSecVKalVertexInfo::VxSecVKalVertexInfo
(
const
std::vector<xAOD::Vertex*> &
vertices
,
36
double
mass
,
double
energyFraction
,
int
n2trackvertices
,
double
energyTrkInJet
,
37
const
std::vector<const Trk::TrackParticleBase*> & badTracks):
38
VxSecVertexInfo
(
vertices
),
39
m_mass
(
mass
),
40
m_energyFraction
(
energyFraction
),
41
m_energyTrkInJet
(
energyTrkInJet
),
42
m_dstToMatLayer
(1000.),
43
m_n2trackvertices
(
n2trackvertices
),
44
m_nBigImpTracks
(0),
45
m_pseudoVertex
(nullptr)
46
{
47
std::vector<const Trk::TrackParticleBase*>::const_iterator badTracksBegin=badTracks.begin();
48
std::vector<const Trk::TrackParticleBase*>::const_iterator badTracksEnd=badTracks.end();
49
50
for
(std::vector<const Trk::TrackParticleBase*>::const_iterator badTracksIter=badTracksBegin;
51
badTracksIter!=badTracksEnd;++badTracksIter) {
52
ElementLink<Trk::TrackParticleBaseCollection>
link;
53
link.setElement(*badTracksIter);
54
m_badTracksTP
.push_back(link);
55
}
56
}
57
58
59
VxSecVKalVertexInfo::VxSecVKalVertexInfo
(
const
std::vector<xAOD::Vertex*> &
vertices
,
60
double
mass
,
double
energyFraction
,
int
n2trackvertices
,
double
energyTrkInJet
,
61
const
std::vector<const xAOD::IParticle*> & badTracks):
62
VxSecVertexInfo
(
vertices
),
63
m_mass
(
mass
),
64
m_energyFraction
(
energyFraction
),
65
m_energyTrkInJet
(
energyTrkInJet
),
66
m_dstToMatLayer
(1000.),
67
m_n2trackvertices
(
n2trackvertices
),
68
m_nBigImpTracks
(0),
69
m_pseudoVertex
(nullptr)
70
{
71
std::vector<const xAOD::IParticle*>::const_iterator badTracksBegin=badTracks.begin();
72
std::vector<const xAOD::IParticle*>::const_iterator badTracksEnd=badTracks.end();
73
74
for
(std::vector<const xAOD::IParticle*>::const_iterator badTracksIter=badTracksBegin;
75
badTracksIter!=badTracksEnd;++badTracksIter) {
76
ElementLink<xAOD::IParticleContainer>
link;
77
link.setElement(*badTracksIter);
78
m_badTracksIP
.push_back(link);
79
}
80
81
}
82
83
VxSecVKalVertexInfo::VxSecVKalVertexInfo
(
const
xAOD::Vertex
*
vertex
,
84
double
mass
,
double
energyFraction
,
int
nBigImpTrk,
85
const
std::vector<const xAOD::IParticle*> & badTracks):
86
VxSecVertexInfo
(),
87
m_mass
(
mass
),
88
m_energyFraction
(
energyFraction
),
89
m_energyTrkInJet
(0.),
90
m_dstToMatLayer
(1000.),
91
m_n2trackvertices
(0),
92
m_nBigImpTracks
(nBigImpTrk),
93
m_pseudoVertex
(
vertex
)
94
{
95
std::vector<const xAOD::IParticle*>::const_iterator badTracksBegin=badTracks.begin();
96
std::vector<const xAOD::IParticle*>::const_iterator badTracksEnd=badTracks.end();
97
98
for
(std::vector<const xAOD::IParticle*>::const_iterator badTracksIter=badTracksBegin;
99
badTracksIter!=badTracksEnd;++badTracksIter) {
100
ElementLink<xAOD::IParticleContainer>
link;
101
link.setElement(*badTracksIter);
102
m_badTracksIP
.push_back(link);
103
}
104
105
}
106
107
VxSecVKalVertexInfo::VxSecVKalVertexInfo
(
const
VxSecVKalVertexInfo
& rhs) =
default
;
108
109
VxSecVKalVertexInfo
&
VxSecVKalVertexInfo::operator=
(
const
VxSecVKalVertexInfo
& rhs) {
110
111
if
(
this
!=&rhs) {
112
VxSecVertexInfo::operator=
(rhs);
113
m_mass
=rhs.
m_mass
;
114
m_energyFraction
=rhs.
m_energyFraction
;
115
m_energyTrkInJet
=rhs.
m_energyTrkInJet
;
116
m_dstToMatLayer
=rhs.
m_dstToMatLayer
,
117
m_n2trackvertices
=rhs.
m_n2trackvertices
;
118
m_nBigImpTracks
=rhs.
m_nBigImpTracks
;
119
m_badTracksTP
=rhs.
m_badTracksTP
;
120
m_badTracksIP
=rhs.
m_badTracksIP
;
121
m_pseudoVertex
=rhs.
m_pseudoVertex
;
122
}
123
return
*
this
;
124
}
125
126
// Would be nicer to use a unique_ptr here... but the ownership is too convoluted.
127
// cppcheck-suppress noCopyConstructor
128
VxSecVKalVertexInfo::~VxSecVKalVertexInfo
() {
if
(
m_pseudoVertex
&&
m_SVOwnership
) {
delete
m_pseudoVertex
;
129
}}
130
131
std::vector<const Trk::TrackParticleBase*>
VxSecVKalVertexInfo::badTracksTP
()
const
{
132
133
std::vector<const Trk::TrackParticleBase*> vectorOfTP;
134
135
std::vector<ElementLink<Trk::TrackParticleBaseCollection> >
::const_iterator
badTracksBegin=
m_badTracksTP
.begin();
136
std::vector<ElementLink<Trk::TrackParticleBaseCollection> >
::const_iterator
badTracksEnd=
m_badTracksTP
.end();
137
138
for
(std::vector<
ElementLink<Trk::TrackParticleBaseCollection>
>
::const_iterator
badTracksIter=badTracksBegin;
139
badTracksIter!=badTracksEnd;++badTracksIter) {
140
if
((*badTracksIter).isValid()) {
141
if
(**badTracksIter!=
nullptr
) {
142
vectorOfTP.push_back(**badTracksIter);
143
}
144
}
145
}
146
147
return
vectorOfTP;
148
}
149
150
std::vector<const xAOD::IParticle*>
VxSecVKalVertexInfo::badTracksIP
()
const
{
151
152
std::vector<const xAOD::IParticle*> vectorOfIP;
153
154
std::vector<ElementLink<xAOD::IParticleContainer> >
::const_iterator
badTracksBegin=
m_badTracksIP
.begin();
155
std::vector<ElementLink<xAOD::IParticleContainer> >
::const_iterator
badTracksEnd=
m_badTracksIP
.end();
156
157
for
(std::vector<
ElementLink<xAOD::IParticleContainer>
>
::const_iterator
badTracksIter=badTracksBegin;
158
badTracksIter!=badTracksEnd;++badTracksIter) {
159
if
((*badTracksIter).isValid()) {
160
if
(**badTracksIter!=
nullptr
) {
161
vectorOfIP.push_back(**badTracksIter);
162
}
163
}
164
}
165
166
return
vectorOfIP;
167
}
168
169
void
VxSecVKalVertexInfo::setTrackParticleOrigin
(
const
Trk::TrackParticleBaseCollection
* trkpartTES) {
170
171
172
std::vector<ElementLink<Trk::TrackParticleBaseCollection> >
::iterator
badTracksBegin=
m_badTracksTP
.begin();
173
std::vector<ElementLink<Trk::TrackParticleBaseCollection> >
::iterator
badTracksEnd=
m_badTracksTP
.end();
174
175
for
(std::vector<
ElementLink<Trk::TrackParticleBaseCollection>
>
::iterator
badTracksIter=badTracksBegin;
176
badTracksIter!=badTracksEnd;++badTracksIter) {
177
(*badTracksIter).setStorableObject(*trkpartTES);
178
}
179
}
180
181
void
VxSecVKalVertexInfo::setIParticleOrigin
(
const
xAOD::IParticleContainer
* ipartTES) {
182
183
184
std::vector<ElementLink<xAOD::IParticleContainer> >
::iterator
badTracksBegin=
m_badTracksIP
.begin();
185
std::vector<ElementLink<xAOD::IParticleContainer> >
::iterator
badTracksEnd=
m_badTracksIP
.end();
186
187
for
(std::vector<
ElementLink<xAOD::IParticleContainer>
>
::iterator
badTracksIter=badTracksBegin;
188
badTracksIter!=badTracksEnd;++badTracksIter) {
189
(*badTracksIter).setStorableObject(*ipartTES);
190
}
191
192
}
193
194
195
}
//end namespace
VxSecVKalVertexInfo.h
const_iterator
ElementLink
ElementLink implementation for ROOT usage.
Definition
A/AthLinks/ElementLink.h:40
Trk::VxSecVKalVertexInfo
Definition
VxSecVKalVertexInfo.h:45
Trk::VxSecVKalVertexInfo::badTracksTP
std::vector< const Trk::TrackParticleBase * > badTracksTP() const
Definition
VxSecVKalVertexInfo.cxx:131
Trk::VxSecVKalVertexInfo::energyFraction
double energyFraction() const
Definition
VxSecVKalVertexInfo.h:136
Trk::VxSecVKalVertexInfo::setIParticleOrigin
void setIParticleOrigin(const xAOD::IParticleContainer *iparticleTES)
Definition
VxSecVKalVertexInfo.cxx:181
Trk::VxSecVKalVertexInfo::~VxSecVKalVertexInfo
virtual ~VxSecVKalVertexInfo()
Definition
VxSecVKalVertexInfo.cxx:128
Trk::VxSecVKalVertexInfo::m_pseudoVertex
const xAOD::Vertex * m_pseudoVertex
Definition
VxSecVKalVertexInfo.h:127
Trk::VxSecVKalVertexInfo::m_badTracksIP
std::vector< ElementLink< xAOD::IParticleContainer > > m_badTracksIP
Definition
VxSecVKalVertexInfo.h:125
Trk::VxSecVKalVertexInfo::energyTrkInJet
double energyTrkInJet() const
Definition
VxSecVKalVertexInfo.h:140
Trk::VxSecVKalVertexInfo::n2trackvertices
int n2trackvertices() const
Definition
VxSecVKalVertexInfo.h:152
Trk::VxSecVKalVertexInfo::m_energyTrkInJet
double m_energyTrkInJet
Definition
VxSecVKalVertexInfo.h:120
Trk::VxSecVKalVertexInfo::m_energyFraction
double m_energyFraction
Definition
VxSecVKalVertexInfo.h:119
Trk::VxSecVKalVertexInfo::m_mass
double m_mass
Definition
VxSecVKalVertexInfo.h:118
Trk::VxSecVKalVertexInfo::m_n2trackvertices
int m_n2trackvertices
Definition
VxSecVKalVertexInfo.h:122
Trk::VxSecVKalVertexInfo::m_dstToMatLayer
double m_dstToMatLayer
Definition
VxSecVKalVertexInfo.h:121
Trk::VxSecVKalVertexInfo::setTrackParticleOrigin
void setTrackParticleOrigin(const Trk::TrackParticleBaseCollection *trkpartTES)
Definition
VxSecVKalVertexInfo.cxx:169
Trk::VxSecVKalVertexInfo::m_badTracksTP
std::vector< ElementLink< Trk::TrackParticleBaseCollection > > m_badTracksTP
Definition
VxSecVKalVertexInfo.h:124
Trk::VxSecVKalVertexInfo::badTracksIP
std::vector< const xAOD::IParticle * > badTracksIP() const
Definition
VxSecVKalVertexInfo.cxx:150
Trk::VxSecVKalVertexInfo::mass
double mass() const
Definition
VxSecVKalVertexInfo.h:132
Trk::VxSecVKalVertexInfo::operator=
VxSecVKalVertexInfo & operator=(const VxSecVKalVertexInfo &)
Definition
VxSecVKalVertexInfo.cxx:109
Trk::VxSecVKalVertexInfo::m_nBigImpTracks
int m_nBigImpTracks
Definition
VxSecVKalVertexInfo.h:123
Trk::VxSecVKalVertexInfo::VxSecVKalVertexInfo
VxSecVKalVertexInfo()
Definition
VxSecVKalVertexInfo.cxx:25
Trk::VxSecVertexInfo::vertices
const std::vector< xAOD::Vertex * > & vertices() const
Definition
VxSecVertexInfo.cxx:88
Trk::VxSecVertexInfo::m_SVOwnership
bool m_SVOwnership
Definition
VxSecVertexInfo.h:82
Trk::VxSecVertexInfo::operator=
VxSecVertexInfo & operator=(const VxSecVertexInfo &)
Definition
VxSecVertexInfo.cxx:64
Trk::VxSecVertexInfo::VxSecVertexInfo
VxSecVertexInfo()
Definition
VxSecVertexInfo.cxx:24
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::vertex
@ vertex
Definition
MeasurementType.h:21
Trk::TrackParticleBaseCollection
DataVector< TrackParticleBase > TrackParticleBaseCollection
Definition
TrackParticleBaseCollection.h:14
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition
Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
xAOD::IParticleContainer
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
Definition
xAOD/xAODBase/xAODBase/IParticleContainer.h:32
Generated on
for ATLAS Offline Software by
1.17.0