31#include "AthLinks/ElementLink.h"
56 std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >
::const_iterator
57 vTPBegin=vectorOfTrackParticles.
begin();
59 std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >
::const_iterator
60 vTPEnd=vectorOfTrackParticles.
end();
62 for (std::vector<std::pair<const Trk::TrackParticleBase*,const Trk::TrackParticleBaseCollection*> >
::const_iterator
63 vTPIter=vTPBegin;vTPIter!=vTPEnd;++vTPIter) {
65 if ((*vTPIter).first!=0) {
72 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
73 temp_vector_tracksAtVertex.push_back(newVxTrack);
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;
90 std::vector<const Trk::TrackParticleBase*>::const_iterator vTPBegin=vectorOfTrackParticles.begin();
91 std::vector<const Trk::TrackParticleBase*>::const_iterator vTPEnd=vectorOfTrackParticles.end();
93 for (std::vector<const Trk::TrackParticleBase*>::const_iterator vTPIter=vTPBegin;vTPIter!=vTPEnd;++vTPIter) {
95 if (*vTPIter!=
nullptr) {
101 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
102 temp_vector_tracksAtVertex.push_back(newVxTrack);
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;
121 std::vector<std::pair<const Trk::Track*,const TrackCollection*> >
::const_iterator
122 vTBegin=vectorOfTracks.
begin();
124 std::vector<std::pair<const Trk::Track*,const TrackCollection*> >
::const_iterator
125 vTEnd=vectorOfTracks.
end();
127 for (std::vector<std::pair<const Trk::Track*,const TrackCollection*> >
::const_iterator
128 vTIter=vTBegin;vTIter!=vTEnd;++vTIter) {
130 if ((*vTIter).first!=0) {
137 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
138 temp_vector_tracksAtVertex.push_back(myPointer);
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;
160 std::vector<const Trk::Track*>::const_iterator vTBegin=vectorOfTracks.begin();
161 std::vector<const Trk::Track*>::const_iterator vTEnd=vectorOfTracks.end();
163 for (std::vector<const Trk::Track*>::const_iterator
164 vTIter=vTBegin;vTIter!=vTEnd;++vTIter) {
166 if (*vTIter!=
nullptr) {
172 std::vector<VxTrackAtVertex*> temp_vector_tracksAtVertex;
173 temp_vector_tracksAtVertex.push_back(myPointer);
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;
191 std::vector<Trk::VxTrackAtVertex*>::iterator tracksBegin=
m_vxTrackAtVertex.begin();
194 for (std::vector<Trk::VxTrackAtVertex*>::iterator tracksIter=tracksBegin;
195 tracksIter!=tracksEnd;++tracksIter) {
197 ITrackLink* IlinkTT=(*tracksIter)->trackOrParticleLink();
202 (*tracksIter)->setOrigTrack(linkTT);
210 std::vector<Trk::VxTrackAtVertex*>::iterator tracksBegin=
m_vxTrackAtVertex.begin();
213 for (std::vector<Trk::VxTrackAtVertex*>::iterator tracksIter=tracksBegin;
214 tracksIter!=tracksEnd;++tracksIter) {
216 ITrackLink* IlinkTT=(*tracksIter)->trackOrParticleLink();
221 (*tracksIter)->setOrigTrack(linkTT);
238 std::map<Trk::VxTrackAtVertex*,Trk::VxTrackAtVertex*> oldToNewPointer;
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) {
244 std::cout <<
" Pointer of one of the tracks of the object to copy is zero. PROBLEM! Skipping track " << std::endl;
248 oldToNewPointer[*itr]=newVxTrackPointer;
249 this->m_vxTrackAtVertex.push_back(newVxTrackPointer);
252 m_primaryVertex=(rhs.m_primaryVertex!=
nullptr) ?
new VxVertexOnJetAxis(*rhs.m_primaryVertex) : nullptr;
254 if (rhs.m_primaryVertex!=
nullptr) {
255 const std::vector<VxTrackAtVertex*> & primaryVectorTracks=rhs.m_primaryVertex->getTracksAtVertex();
257 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksBegin=primaryVectorTracks.begin();
258 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksEnd=primaryVectorTracks.end();
260 std::vector<VxTrackAtVertex*> primaryVectorNew;
262 for (std::vector<VxTrackAtVertex*>::const_iterator primaryVectorIter=primaryVectorTracksBegin;
263 primaryVectorIter!=primaryVectorTracksEnd;++primaryVectorIter) {
265 if (newTrackPointer!=
nullptr) {
266 primaryVectorNew.push_back(newTrackPointer);
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;
274 m_primaryVertex->setTracksAtVertex(std::move(primaryVectorNew));
277 std::cout <<
"VxJetCandidate EDM class: Warning in COPY: no primary vertex present" << std::endl;
281 std::vector<VxVertexOnJetAxis*>::const_iterator VtxBegin=rhs.m_verticesOnJetAxis.begin();
282 std::vector<VxVertexOnJetAxis*>::const_iterator VtxEnd=rhs.m_verticesOnJetAxis.end();
284 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
287 if (*VtxIter!=
nullptr) {
293 std::vector<VxTrackAtVertex*> vertexVectorNew;
295 const std::vector<VxTrackAtVertex*> & TracksAtVertex=(*VtxIter)->getTracksAtVertex();
297 const std::vector<VxTrackAtVertex*>::const_iterator TracksBegin=TracksAtVertex.begin();
298 const std::vector<VxTrackAtVertex*>::const_iterator TracksEnd=TracksAtVertex.end();
300 for (std::vector<VxTrackAtVertex*>::const_iterator TrackVectorIter=TracksBegin;
301 TrackVectorIter!=TracksEnd;++TrackVectorIter) {
303 if (newTrackPointer!=
nullptr) {
304 vertexVectorNew.push_back(newTrackPointer);
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;
311 newVertexOnJetAxis->setTracksAtVertex(std::move(vertexVectorNew));
312 m_verticesOnJetAxis.push_back(newVertexOnJetAxis);
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;
321 if (rhs.m_debugInfo!=
nullptr) {
329 m_clusteringTable=
nullptr;
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) {
357 for (std::vector<VxVertexOnJetAxis*>::const_iterator DelVtxIter=DelVtxBegin;DelVtxIter!=DelVtxEnd;
360 if (*DelVtxIter!=
nullptr) {
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;
374 std::map<Trk::VxTrackAtVertex*,Trk::VxTrackAtVertex*> oldToNewPointer;
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) {
380 std::cout <<
" Pointer of one of the tracks of the object to copy is zero. PROBLEM! Skipping track " << std::endl;
384 oldToNewPointer[*itr]=newVxTrackPointer;
393 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksBegin=primaryVectorTracks.begin();
394 const std::vector<VxTrackAtVertex*>::const_iterator primaryVectorTracksEnd=primaryVectorTracks.end();
396 std::vector<VxTrackAtVertex*> primaryVectorNew;
398 for (std::vector<VxTrackAtVertex*>::const_iterator primaryVectorIter=primaryVectorTracksBegin;
399 primaryVectorIter!=primaryVectorTracksEnd;++primaryVectorIter) {
401 if (newTrackPointer!=
nullptr) {
402 primaryVectorNew.push_back(newTrackPointer);
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;
413 std::cout <<
"VxJetCandidate EDM class: Warning in COPY: no primary vertex present" << std::endl;
420 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
423 if (*VtxIter!=
nullptr) {
429 std::vector<VxTrackAtVertex*> vertexVectorNew;
431 const std::vector<VxTrackAtVertex*> & TracksAtVertex=(*VtxIter)->getTracksAtVertex();
433 const std::vector<VxTrackAtVertex*>::const_iterator TracksBegin=TracksAtVertex.begin();
434 const std::vector<VxTrackAtVertex*>::const_iterator TracksEnd=TracksAtVertex.end();
436 for (std::vector<VxTrackAtVertex*>::const_iterator TrackVectorIter=TracksBegin;
437 TrackVectorIter!=TracksEnd;++TrackVectorIter) {
439 if (newTrackPointer!=
nullptr) {
440 vertexVectorNew.push_back(newTrackPointer);
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;
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;
486 for (std::vector<VxVertexOnJetAxis*>::const_iterator VtxIter=VtxBegin;VtxIter!=VtxEnd;
489 if (*VtxIter!=
nullptr) {
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;
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
const_iterator begin() const
const_iterator end() const
ElementLink implementation for ROOT usage.
bool setElement(ElementType element)
Set to point to an element.
bool setStorableObject(BaseConstReference data, bool replace=false, IProxyDict *sg=0)
Set link to point to a new container (storable).
An abstract class which is meant to represent an element link to the Trk::Track or Trk::TrackParticle...
AUTO - An Undocumented Tracking Object.
Trk::RecVertex inherits from Trk::Vertex.
VertexPositions class to represent and store a vertex.
std::vector< Trk::VxTrackAtVertex * > m_vxTrackAtVertex
Trk::RecVertex m_recVertex
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
virtual ~VxJetCandidate()
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