ATLAS Offline Software
Loading...
Searching...
No Matches
VxJetCandidate.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/***************************************************************************
6 VxJetCandidate.cxx - Description
7 -------------------
8 begin : Autumn 2006
9 authors : Giacinto Piacquadio (Freiburg University)
10 Christian Weiser (Freiburg University)
11 email : giacinto.piacquadio@physik.uni-freiburg.de
12 christian.weiser@cern.ch
13 changes : new!
14
15 ***************************************************************************/
16
17
19
21
26
27#include "TrkTrack/Track.h"
30
31#include "AthLinks/ElementLink.h"
32
33namespace Trk {
34
40
42 const std::vector<Trk::VxTrackAtVertex*>& vxTrackAtVertex):
44 m_primaryVertex(nullptr),
45 m_debugInfo(nullptr),
46 m_clusteringTable(nullptr) { }
47
48
49VxJetCandidate::VxJetCandidate(const std::vector<std::pair<const Trk::TrackParticleBase*,
50 const Trk::TrackParticleBaseCollection*> > & vectorOfTrackParticles):
52 m_primaryVertex(nullptr),
53 m_debugInfo(nullptr),
54 m_clusteringTable(nullptr) {
55
56 std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >::const_iterator
57 vTPBegin=vectorOfTrackParticles.begin();
58
59 std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >::const_iterator
60 vTPEnd=vectorOfTrackParticles.end();
61
62 for (std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >::const_iterator
63 vTPIter=vTPBegin;vTPIter!=vTPEnd;++vTPIter) {
64
65 if ((*vTPIter).first!=0) {
67 link.setElement((*vTPIter).first);
69 linkTT->setStorableObject(*((*vTPIter).second));
70 VxTrackAtVertex* newVxTrack=new VxTrackAtVertex(linkTT);
71 m_vxTrackAtVertex.push_back(newVxTrack);
72 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
73 temp_vector_tracksAtVertex.push_back(newVxTrack);
74 m_verticesOnJetAxis.push_back(new VxVertexOnJetAxis(temp_vector_tracksAtVertex));
75 //every track is added at the beginning to a new additional vertex (all vertices have only 1 track at the beginning)
76 } else {
77 std::cout << "************************************ ------------- *********************************************" << std::endl;
78 std::cout << "ERROR in VxJetCandidate constructor: inconsistency in VxTrackAtVertex tracks. Skipping track..." << std::endl;
79 std::cout << "************************************ ------------- *********************************************" << std::endl;
80 }
81 }
82 }
83
84VxJetCandidate::VxJetCandidate(const std::vector<const Trk::TrackParticleBase*> & vectorOfTrackParticles):
86 m_primaryVertex(nullptr),
87 m_debugInfo(nullptr),
88 m_clusteringTable(nullptr) {
89
90 std::vector<const Trk::TrackParticleBase*>::const_iterator vTPBegin=vectorOfTrackParticles.begin();
91 std::vector<const Trk::TrackParticleBase*>::const_iterator vTPEnd=vectorOfTrackParticles.end();
92
93 for (std::vector<const Trk::TrackParticleBase*>::const_iterator vTPIter=vTPBegin;vTPIter!=vTPEnd;++vTPIter) {
94
95 if (*vTPIter!=nullptr) {
97 link.setElement(*vTPIter);
99 VxTrackAtVertex* newVxTrack=new VxTrackAtVertex(linkTT);
100 m_vxTrackAtVertex.push_back(newVxTrack);
101 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
102 temp_vector_tracksAtVertex.push_back(newVxTrack);
103 m_verticesOnJetAxis.push_back(new VxVertexOnJetAxis(temp_vector_tracksAtVertex));
104 //every track is added at the beginning to a new additional vertex (all vertices have only 1 track at the beginning)
105 } else {
106 std::cout << "************************************ ------------- *********************************************" << std::endl;
107 std::cout << "ERROR in VxJetCandidate constructor: inconsistency in VxTrackAtVertex tracks. Skipping track..." << std::endl;
108 std::cout << "************************************ ------------- *********************************************" << std::endl;
109 }
110
111 }
112 }
113
114
115VxJetCandidate::VxJetCandidate(const std::vector<std::pair<const Track*,const TrackCollection*> > & vectorOfTracks):
116 VxCandidate(),
117 m_primaryVertex(nullptr),
118 m_debugInfo(nullptr),
119 m_clusteringTable(nullptr) {
120
121 std::vector<std::pair<const Trk::Track*,const TrackCollection*> >::const_iterator
122 vTBegin=vectorOfTracks.begin();
123
124 std::vector<std::pair<const Trk::Track*,const TrackCollection*> >::const_iterator
125 vTEnd=vectorOfTracks.end();
126
127 for (std::vector<std::pair<const Trk::Track*,const TrackCollection*> >::const_iterator
128 vTIter=vTBegin;vTIter!=vTEnd;++vTIter) {
129
130 if ((*vTIter).first!=0) {
132 link.setElement((*vTIter).first);
133 LinkToTrack * linkTT = new LinkToTrack(link);
134 linkTT->setStorableObject(*(*vTIter).second);
135 VxTrackAtVertex* myPointer=new VxTrackAtVertex(linkTT);
136 m_vxTrackAtVertex.push_back(myPointer);
137 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
138 temp_vector_tracksAtVertex.push_back(myPointer);
139 VxVertexOnJetAxis* myVertexOnJetAxis=new VxVertexOnJetAxis(temp_vector_tracksAtVertex);
140 // myVertexOnJetAxis->setLinearizationPosition(0.);//should already be zero
141 //HERE
142 m_verticesOnJetAxis.push_back(myVertexOnJetAxis);
143 //every track is added at the beginning to a new additional vertex (all vertices have only 1 track at the beginning)
144 } else {
145 std::cout << "************************************ ------------- *********************************************" << std::endl;
146 std::cout << "ERROR in VxJetCandidate constructor: inconsistency in VxTrackAtVertex tracks. Skipping track..." << std::endl;
147 std::cout << "************************************ ------------- *********************************************" << std::endl;
148 }
149 }
150
151 }
152
153
154VxJetCandidate::VxJetCandidate(const std::vector<const Track*> & vectorOfTracks):
155 VxCandidate(),
156 m_primaryVertex(nullptr),
157 m_debugInfo(nullptr),
158 m_clusteringTable(nullptr) {
159
160 std::vector<const Trk::Track*>::const_iterator vTBegin=vectorOfTracks.begin();
161 std::vector<const Trk::Track*>::const_iterator vTEnd=vectorOfTracks.end();
162
163 for (std::vector<const Trk::Track*>::const_iterator
164 vTIter=vTBegin;vTIter!=vTEnd;++vTIter) {
165
166 if (*vTIter!=nullptr) {
168 link.setElement(*vTIter);
169 LinkToTrack * linkTT = new LinkToTrack(link);
170 VxTrackAtVertex* myPointer=new VxTrackAtVertex(linkTT);
171 m_vxTrackAtVertex.push_back(myPointer);
172 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
173 temp_vector_tracksAtVertex.push_back(myPointer);
174 VxVertexOnJetAxis* myVertexOnJetAxis=new VxVertexOnJetAxis(temp_vector_tracksAtVertex);
175 // myVertexOnJetAxis->setLinearizationPosition(0.);//should already be zero
176 //HERE
177 m_verticesOnJetAxis.push_back(myVertexOnJetAxis);
178 //every track is added at the beginning to a new additional vertex (all vertices have only 1 track at the beginning)
179 } else {
180 std::cout << "************************************ ------------- *********************************************" << std::endl;
181 std::cout << "ERROR in VxJetCandidate constructor: inconsistency in VxTrackAtVertex tracks. Skipping track..." << std::endl;
182 std::cout << "************************************ ------------- *********************************************" << std::endl;
183 }
184
185 }
186
187 }
188
190
191 std::vector<Trk::VxTrackAtVertex*>::iterator tracksBegin=m_vxTrackAtVertex.begin();
192 std::vector<Trk::VxTrackAtVertex*>::iterator tracksEnd=m_vxTrackAtVertex.end();
193
194 for (std::vector<Trk::VxTrackAtVertex*>::iterator tracksIter=tracksBegin;
195 tracksIter!=tracksEnd;++tracksIter) {
196
197 ITrackLink* IlinkTT=(*tracksIter)->trackOrParticleLink();
198 LinkToTrack* linkTT=dynamic_cast<LinkToTrack*>(IlinkTT);
199 if(linkTT) {
200 linkTT->setStorableObject(*trackTES);
201 }
202 (*tracksIter)->setOrigTrack(linkTT);
203
204 }
205
206}
207
209
210 std::vector<Trk::VxTrackAtVertex*>::iterator tracksBegin=m_vxTrackAtVertex.begin();
211 std::vector<Trk::VxTrackAtVertex*>::iterator tracksEnd=m_vxTrackAtVertex.end();
212
213 for (std::vector<Trk::VxTrackAtVertex*>::iterator tracksIter=tracksBegin;
214 tracksIter!=tracksEnd;++tracksIter) {
215
216 ITrackLink* IlinkTT=(*tracksIter)->trackOrParticleLink();
217 LinkToTrackParticleBase* linkTT=dynamic_cast<LinkToTrackParticleBase*>(IlinkTT);
218 if(linkTT) {
219 linkTT->setStorableObject(*trackParticleTES);
220 }
221 (*tracksIter)->setOrigTrack(linkTT);
222
223 }
224
225}
226
228 : VxCandidate(rhs)
232{
233
235
236 //you need this map to update all the VxVertexOnJetAxis which only have
237 //pointers to the objects... (with persistency it will be a mess anyway)
238 std::map<Trk::VxTrackAtVertex*,Trk::VxTrackAtVertex*> oldToNewPointer;
239
240 std::vector<Trk::VxTrackAtVertex*>::const_iterator RhsVxTracksEnd=rhs.m_vxTrackAtVertex.end();
241 for (std::vector<Trk::VxTrackAtVertex*>::const_iterator itr = rhs.m_vxTrackAtVertex.begin();
242 itr != RhsVxTracksEnd; ++itr) {
243 if (*itr==nullptr) {
244 std::cout << " Pointer of one of the tracks of the object to copy is zero. PROBLEM! Skipping track " << std::endl;
245 continue;
246 }
247 Trk::VxTrackAtVertex* newVxTrackPointer=(*itr)->clone();
248 oldToNewPointer[*itr]=newVxTrackPointer;
249 this->m_vxTrackAtVertex.push_back(newVxTrackPointer);
250 }
251
252 m_primaryVertex=(rhs.m_primaryVertex!=nullptr) ? new VxVertexOnJetAxis(*rhs.m_primaryVertex) : nullptr;
253
254 if (rhs.m_primaryVertex!=nullptr) {
255 const std::vector<VxTrackAtVertex*> & primaryVectorTracks=rhs.m_primaryVertex->getTracksAtVertex();
256
257 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksBegin=primaryVectorTracks.begin();
258 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksEnd=primaryVectorTracks.end();
259
260 std::vector<VxTrackAtVertex*> primaryVectorNew;
261
262 for (std::vector<VxTrackAtVertex*>::const_iterator primaryVectorIter=primaryVectorTracksBegin;
263 primaryVectorIter!=primaryVectorTracksEnd;++primaryVectorIter) {
264 VxTrackAtVertex* newTrackPointer=oldToNewPointer[*primaryVectorIter];
265 if (newTrackPointer!=nullptr) {
266 primaryVectorNew.push_back(newTrackPointer);
267 } else {
268 std::cout << "************************************ ---------------------------- ********************************" << std::endl;
269 std::cout << "Not able to copy old pointer to new one when inizializing tracks of primary vertex to new pointers" << std::endl;
270 std::cout << "************************************ ---------------------------- ********************************" << std::endl;
271 }
272 }
273
274 m_primaryVertex->setTracksAtVertex(std::move(primaryVectorNew));
275
276 } else {
277 std::cout << "VxJetCandidate EDM class: Warning in COPY: no primary vertex present" << std::endl;
278 }
279
280 //copying over m_verticesOnJetAxis
281 std::vector<VxVertexOnJetAxis*>::const_iterator VtxBegin=rhs.m_verticesOnJetAxis.begin();
282 std::vector<VxVertexOnJetAxis*>::const_iterator VtxEnd=rhs.m_verticesOnJetAxis.end();
283
284 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
285 ++VtxIter) {
286
287 if (*VtxIter!=nullptr) {
288
289 VxVertexOnJetAxis* newVertexOnJetAxis=new VxVertexOnJetAxis(**VtxIter);
290
291 //now you still need to attach the new pointers...
292
293 std::vector<VxTrackAtVertex*> vertexVectorNew;
294
295 const std::vector<VxTrackAtVertex*> & TracksAtVertex=(*VtxIter)->getTracksAtVertex();
296
297 const std::vector<VxTrackAtVertex*>::const_iterator TracksBegin=TracksAtVertex.begin();
298 const std::vector<VxTrackAtVertex*>::const_iterator TracksEnd=TracksAtVertex.end();
299
300 for (std::vector<VxTrackAtVertex*>::const_iterator TrackVectorIter=TracksBegin;
301 TrackVectorIter!=TracksEnd;++TrackVectorIter) {
302 VxTrackAtVertex* newTrackPointer=oldToNewPointer[*TrackVectorIter];
303 if (newTrackPointer!=nullptr) {
304 vertexVectorNew.push_back(newTrackPointer);
305 } else {
306 std::cout << "************************************ ---------------------------- **********************(((((***********" << std::endl;
307 std::cout << "Not able to copy old pointer to new one when inizializing tracks of vertices on jet axis to new pointers" << std::endl;
308 std::cout << "************************************ ---------------------------- **************************************" << std::endl;
309 }
310 }
311 newVertexOnJetAxis->setTracksAtVertex(std::move(vertexVectorNew));
312 m_verticesOnJetAxis.push_back(newVertexOnJetAxis);
313
314 } else {
315 std::cout << "************************************ ------------- *********************************************" << std::endl;
316 std::cout << "ERROR in copy constructor of VxJetCandidate: one of the VxVertexOnJetAxis is an empty pointer..." << std::endl;
317 std::cout << "************************************ ------------- *********************************************" << std::endl;
318 }
319 }
320
321 if (rhs.m_debugInfo!=nullptr) {
322 m_debugInfo=new VxJetFitterDebugInfo(*rhs.m_debugInfo);
323 } else {
324 m_debugInfo=nullptr;
325 }
326
327 // if (rhs.m_clusteringTable!=0) {
328 // std::cout << "Warning: during copy of VxJetCandidate the clusteringTable is not copied over" << std::endl;
329 m_clusteringTable=nullptr;//new VxClusteringTable(*rhs.m_clusteringTable);
330 // } else {
331 // m_clusteringTable=0;
332 // }
333}
334
335VxJetCandidate& VxJetCandidate::operator= (const VxJetCandidate& rhs)
336{
337 if (this!=&rhs)
338 {
339 // this->operator=(rhs);
340 // delete objects where pointers pointed to
341 // (otherwise -> memory leak)
342 std::vector<Trk::VxTrackAtVertex*>::iterator VxTracksEnd=this->m_vxTrackAtVertex.end();
343 for (std::vector<Trk::VxTrackAtVertex*>::iterator i = this->m_vxTrackAtVertex.begin();
344 i !=VxTracksEnd ; ++i) {
345 delete (*i);
346 (*i) = 0;
347 }
348
349 // and clear the vector
350 this->m_vxTrackAtVertex.clear();
351
352 //deleting m_verticesOnJetAxis
353
354 std::vector<VxVertexOnJetAxis*>::const_iterator DelVtxBegin=m_verticesOnJetAxis.begin();
355 std::vector<VxVertexOnJetAxis*>::const_iterator DelVtxEnd=m_verticesOnJetAxis.end();
356
357 for (std::vector<VxVertexOnJetAxis*>::const_iterator DelVtxIter=DelVtxBegin;DelVtxIter!=DelVtxEnd;
358 ++DelVtxIter) {
359
360 if (*DelVtxIter!=nullptr) {
361 delete *DelVtxIter;
362 } else {
363 std::cout << "************************************ ---------------------------- ***********************************************" << std::endl;
364 std::cout << "ERROR in constructor of VxJetCandidate when deleting: one of the VxVertexOnJetAxis is already an empty pointer..." << std::endl;
365 std::cout << "************************************ ---------------------------- ***********************************************" << std::endl;
366 }
367 }
368
369 m_verticesOnJetAxis.clear();//you own them... you need to delete them
370
371
372 //you need this map to update all the VxVertexOnJetAxis which only have
373 //pointers to the objects... (with persistency it will be a mess anyway)
374 std::map<Trk::VxTrackAtVertex*,Trk::VxTrackAtVertex*> oldToNewPointer;
375
376 std::vector<Trk::VxTrackAtVertex*>::const_iterator RhsVxTracksEnd=rhs.m_vxTrackAtVertex.end();
377 for (std::vector<Trk::VxTrackAtVertex*>::const_iterator itr = rhs.m_vxTrackAtVertex.begin();
378 itr != RhsVxTracksEnd; ++itr) {
379 if (*itr==nullptr) {
380 std::cout << " Pointer of one of the tracks of the object to copy is zero. PROBLEM! Skipping track " << std::endl;
381 continue;
382 }
383 Trk::VxTrackAtVertex* newVxTrackPointer=(*itr)->clone();
384 oldToNewPointer[*itr]=newVxTrackPointer;
385 this->m_vxTrackAtVertex.push_back(newVxTrackPointer);
386 }
387
388 m_primaryVertex=(rhs.m_primaryVertex!=nullptr) ? new VxVertexOnJetAxis(*rhs.m_primaryVertex) : nullptr;
389
390 if (rhs.m_primaryVertex!=nullptr) {
391 const std::vector<VxTrackAtVertex*> & primaryVectorTracks=rhs.m_primaryVertex->getTracksAtVertex();
392
393 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksBegin=primaryVectorTracks.begin();
394 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksEnd=primaryVectorTracks.end();
395
396 std::vector<VxTrackAtVertex*> primaryVectorNew;
397
398 for (std::vector<VxTrackAtVertex*>::const_iterator primaryVectorIter=primaryVectorTracksBegin;
399 primaryVectorIter!=primaryVectorTracksEnd;++primaryVectorIter) {
400 VxTrackAtVertex* newTrackPointer=oldToNewPointer[*primaryVectorIter];
401 if (newTrackPointer!=nullptr) {
402 primaryVectorNew.push_back(newTrackPointer);
403 } else {
404 std::cout << "************************************ ---------------------------- ********************************" << std::endl;
405 std::cout << "Not able to copy old pointer to new one when inizializing tracks of primary vertex to new pointers" << std::endl;
406 std::cout << "************************************ ---------------------------- ********************************" << std::endl;
407 }
408 }
409
410 m_primaryVertex->setTracksAtVertex(std::move(primaryVectorNew));
411
412 } else {
413 std::cout << "VxJetCandidate EDM class: Warning in COPY: no primary vertex present" << std::endl;
414 }
415
416 //copying over m_verticesOnJetAxis
417 std::vector<VxVertexOnJetAxis*>::const_iterator VtxBegin=rhs.m_verticesOnJetAxis.begin();
418 std::vector<VxVertexOnJetAxis*>::const_iterator VtxEnd=rhs.m_verticesOnJetAxis.end();
419
420 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
421 ++VtxIter) {
422
423 if (*VtxIter!=nullptr) {
424
425 VxVertexOnJetAxis* newVertexOnJetAxis=new VxVertexOnJetAxis(**VtxIter);
426
427 //now you still need to attach the new pointers...
428
429 std::vector<VxTrackAtVertex*> vertexVectorNew;
430
431 const std::vector<VxTrackAtVertex*> & TracksAtVertex=(*VtxIter)->getTracksAtVertex();
432
433 const std::vector<VxTrackAtVertex*>::const_iterator TracksBegin=TracksAtVertex.begin();
434 const std::vector<VxTrackAtVertex*>::const_iterator TracksEnd=TracksAtVertex.end();
435
436 for (std::vector<VxTrackAtVertex*>::const_iterator TrackVectorIter=TracksBegin;
437 TrackVectorIter!=TracksEnd;++TrackVectorIter) {
438 VxTrackAtVertex* newTrackPointer=oldToNewPointer[*TrackVectorIter];
439 if (newTrackPointer!=nullptr) {
440 vertexVectorNew.push_back(newTrackPointer);
441 } else {
442 std::cout << "************************************ ---------------------------- **********************(((((***********" << std::endl;
443 std::cout << "Not able to copy old pointer to new one when inizializing tracks of vertices on jet axis to new pointers" << std::endl;
444 std::cout << "************************************ ---------------------------- **************************************" << std::endl;
445 }
446 }
447 newVertexOnJetAxis->setTracksAtVertex(std::move(vertexVectorNew));
448 m_verticesOnJetAxis.push_back(newVertexOnJetAxis);
449
450 } else {
451 std::cout << "************************************ ------------- *********************************************" << std::endl;
452 std::cout << "ERROR in copy constructor of VxJetCandidate: one of the VxVertexOnJetAxis is an empty pointer..." << std::endl;
453 std::cout << "************************************ ------------- *********************************************" << std::endl;
454 }
455 }
456
457 if (rhs.m_debugInfo!=nullptr) {
459 } else {
460 m_debugInfo=nullptr;
461 }
462
463 // if (rhs.m_clusteringTable!=0) {
464 // std::cout << "Warning: during copy of VxJetCandidate the clusteringTable is not copied over" << std::endl;
465 m_clusteringTable=nullptr;//new VxClusteringTable(*rhs.m_clusteringTable);
466 // } else {
467 // m_clusteringTable=0;
468 // }
469 }
470 return *this;
471}
472
474{
475
476 if (m_primaryVertex!=nullptr) {
477 delete m_primaryVertex;
478 m_primaryVertex=nullptr;
479 }
480
481
482 //deleting m_verticesOnJetAxis
483 std::vector<VxVertexOnJetAxis*>::const_iterator VtxBegin=m_verticesOnJetAxis.begin();
484 std::vector<VxVertexOnJetAxis*>::const_iterator VtxEnd=m_verticesOnJetAxis.end();
485
486 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
487 ++VtxIter) {
488
489 if (*VtxIter!=nullptr) {
490 delete *VtxIter;
491 } else {
492 std::cout << "************************************ ------------- ***********************************************" << std::endl;
493 std::cout << "ERROR in destructor of VxJetCandidate: one of the VxVertexOnJetAxis is already an empty pointer..." << std::endl;
494 std::cout << "************************************ ------------- ***********************************************" << std::endl;
495 }
496 }
497
498 if (m_debugInfo!=nullptr) {
499 delete m_debugInfo;
500 m_debugInfo=nullptr;
501 }
502
503 if (m_clusteringTable!=nullptr) {
504 delete m_clusteringTable;
505 m_clusteringTable=nullptr;
506 }
507
508}
512
516
518 m_fittedPositions=newPositions;
519}
520
524
528
532
533const std::vector<VxVertexOnJetAxis*> & VxJetCandidate::getVerticesOnJetAxis(void) const {
534 return m_verticesOnJetAxis;
535}
536
537void VxJetCandidate::setVerticesOnJetAxis(const std::vector<VxVertexOnJetAxis*> & newVertices) {
538 m_verticesOnJetAxis=newVertices;
539}
540
544
546 return m_primaryVertex;
547}
548
550 if (m_primaryVertex!=nullptr) { delete m_primaryVertex;
551}
552 m_primaryVertex=new VxVertexOnJetAxis(*newPrimary);
553}
554
558
562
566
570
574
575
576
577}//end of namespace definitions
578
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
const_iterator begin() const
const_iterator end() const
AUTO - An Undocumented Tracking Object.
Definition LinkToTrack.h:20
Trk::RecVertex inherits from Trk::Vertex.
Definition RecVertex.h:44
VertexPositions class to represent and store a vertex.
std::vector< Trk::VxTrackAtVertex * > m_vxTrackAtVertex
Trk::RecVertex m_recVertex
Definition VxCandidate.h:99
std::vector< Trk::VxTrackAtVertex * > * vxTrackAtVertex(void)
Unconst pointer to the vector of tracks Required by some of the vertex fitters.
const Trk::RecVertex & recVertex(void) const
Returns a reference to reconstructed vertex.
VxCandidate()
Default constructor for persistency.
Trk::VxJetFitterDebugInfo * m_debugInfo
Trk::VxClusteringTable *& getClusteringTable(void)
void setLinearizationVertexPositions(const Trk::VertexPositions &)
void setTracksOrigin(const TrackCollection *)
Trk::RecVertexPositions m_constraintPositions
Trk::VertexPositions m_linearizationPositions
const Trk::VertexPositions & getLinearizationVertexPositions() const
Trk::VxVertexOnJetAxis * m_primaryVertex
Trk::VxClusteringTable * m_clusteringTable
void setTrackParticlesOrigin(const Trk::TrackParticleBaseCollection *)
void setVerticesOnJetAxis(const std::vector< VxVertexOnJetAxis * > &)
const std::vector< VxVertexOnJetAxis * > & getVerticesOnJetAxis(void) const
const Trk::RecVertexPositions & getConstraintVertexPositions() const
void setPrimaryVertex(const VxVertexOnJetAxis *)
const VxVertexOnJetAxis * getPrimaryVertex(void) const
void setConstraintVertexPositions(const Trk::RecVertexPositions &)
Trk::VxJetFitterDebugInfo *& getDebugInfo(void)
std::vector< VxVertexOnJetAxis * > m_verticesOnJetAxis
const Trk::RecVertexPositions & getRecVertexPositions() const
void setRecVertexPositions(const Trk::RecVertexPositions &)
Trk::RecVertexPositions m_fittedPositions
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
virtual VxTrackAtVertex * clone() const
Clone method.
VxVertexOnJetAxis inherits from Vertex.
void setTracksAtVertex(std::vector< VxTrackAtVertex * > tracksAtVertex)
set Tracks At Vertex Method
const std::vector< VxTrackAtVertex * > & getTracksAtVertex(void) const
get Tracks At Vertex Method
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< TrackParticleBase > TrackParticleBaseCollection