ATLAS Offline Software
Loading...
Searching...
No Matches
VxSecVKalVertexInfo.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 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
22
23namespace Trk {
24
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):
39 m_mass(mass),
42 m_dstToMatLayer(1000.),
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) {
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):
63 m_mass(mass),
66 m_dstToMatLayer(1000.),
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) {
77 link.setElement(*badTracksIter);
78 m_badTracksIP.push_back(link);
79 }
80
81 }
82
84 double mass,double energyFraction,int nBigImpTrk,
85 const std::vector<const xAOD::IParticle*> & badTracks):
87 m_mass(mass),
90 m_dstToMatLayer(1000.),
92 m_nBigImpTracks(nBigImpTrk),
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) {
101 link.setElement(*badTracksIter);
102 m_badTracksIP.push_back(link);
103 }
104
105 }
106
108
125
128
129 std::vector<const Trk::TrackParticleBase*> VxSecVKalVertexInfo::badTracksTP() const {
130
131 std::vector<const Trk::TrackParticleBase*> vectorOfTP;
132
133 std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::const_iterator badTracksBegin=m_badTracksTP.begin();
134 std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::const_iterator badTracksEnd=m_badTracksTP.end();
135
136 for (std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::const_iterator badTracksIter=badTracksBegin;
137 badTracksIter!=badTracksEnd;++badTracksIter) {
138 if ((*badTracksIter).isValid()) {
139 if (**badTracksIter!=nullptr) {
140 vectorOfTP.push_back(**badTracksIter);
141 }
142 }
143 }
144
145 return vectorOfTP;
146 }
147
148 std::vector<const xAOD::IParticle*> VxSecVKalVertexInfo::badTracksIP() const {
149
150 std::vector<const xAOD::IParticle*> vectorOfIP;
151
152 std::vector<ElementLink<xAOD::IParticleContainer> >::const_iterator badTracksBegin=m_badTracksIP.begin();
153 std::vector<ElementLink<xAOD::IParticleContainer> >::const_iterator badTracksEnd=m_badTracksIP.end();
154
155 for (std::vector<ElementLink<xAOD::IParticleContainer> >::const_iterator badTracksIter=badTracksBegin;
156 badTracksIter!=badTracksEnd;++badTracksIter) {
157 if ((*badTracksIter).isValid()) {
158 if (**badTracksIter!=nullptr) {
159 vectorOfIP.push_back(**badTracksIter);
160 }
161 }
162 }
163
164 return vectorOfIP;
165 }
166
168
169
170 std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::iterator badTracksBegin=m_badTracksTP.begin();
171 std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::iterator badTracksEnd=m_badTracksTP.end();
172
173 for (std::vector<ElementLink<Trk::TrackParticleBaseCollection> >::iterator badTracksIter=badTracksBegin;
174 badTracksIter!=badTracksEnd;++badTracksIter) {
175 (*badTracksIter).setStorableObject(*trkpartTES);
176 }
177 }
178
180
181
182 std::vector<ElementLink<xAOD::IParticleContainer> >::iterator badTracksBegin=m_badTracksIP.begin();
183 std::vector<ElementLink<xAOD::IParticleContainer> >::iterator badTracksEnd=m_badTracksIP.end();
184
185 for (std::vector<ElementLink<xAOD::IParticleContainer> >::iterator badTracksIter=badTracksBegin;
186 badTracksIter!=badTracksEnd;++badTracksIter) {
187 (*badTracksIter).setStorableObject(*ipartTES);
188 }
189
190 }
191
192
193}//end namespace
std::vector< const Trk::TrackParticleBase * > badTracksTP() const
void setIParticleOrigin(const xAOD::IParticleContainer *iparticleTES)
const xAOD::Vertex * m_pseudoVertex
std::vector< ElementLink< xAOD::IParticleContainer > > m_badTracksIP
void setTrackParticleOrigin(const Trk::TrackParticleBaseCollection *trkpartTES)
std::vector< ElementLink< Trk::TrackParticleBaseCollection > > m_badTracksTP
std::vector< const xAOD::IParticle * > badTracksIP() const
VxSecVKalVertexInfo & operator=(const VxSecVKalVertexInfo &)
const std::vector< xAOD::Vertex * > & vertices() const
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< TrackParticleBase > TrackParticleBaseCollection
Vertex_v1 Vertex
Define the latest version of the vertex class.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.