ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
TIDAVertexBuilder Class Reference

#include <TIDAVertexBuilder.h>

Collaboration diagram for TIDAVertexBuilder:

Public Member Functions

 TIDAVertexBuilder ()
 
 ~TIDAVertexBuilder ()
 

Static Public Member Functions

static std::vector< TIDA::Vertexselect (const xAOD::VertexContainer *xAODVertices, const std::vector< TIDA::Track * > *trackCollection=0, bool useType0=false, bool require_tracks=true)
 
static std::vector< TIDA::Vertexselect (xAOD::VertexContainer::const_iterator itr, xAOD::VertexContainer::const_iterator enditr, const std::vector< TIDA::Track * > *trackCollection=0, bool useType0=false, bool require_tracks=true)
 

Static Private Member Functions

static TIDA::Vertex selectVertex (const xAOD::Vertex *v)
 
static unsigned long getTrackId (const xAOD::TrackParticle *track)
 

Detailed Description

Definition at line 22 of file TIDAVertexBuilder.h.

Constructor & Destructor Documentation

◆ TIDAVertexBuilder()

TIDAVertexBuilder::TIDAVertexBuilder ( )
inline

Definition at line 27 of file TIDAVertexBuilder.h.

27 { }

◆ ~TIDAVertexBuilder()

TIDAVertexBuilder::~TIDAVertexBuilder ( )
inline

Definition at line 30 of file TIDAVertexBuilder.h.

30 { }

Member Function Documentation

◆ getTrackId()

unsigned long TIDAVertexBuilder::getTrackId ( const xAOD::TrackParticle track)
staticprivate

Definition at line 111 of file TIDAVertexBuilder.cxx.

111  {
112  unsigned long id = (unsigned long)track;
113  return id;
114 }

◆ select() [1/2]

std::vector< TIDA::Vertex > TIDAVertexBuilder::select ( const xAOD::VertexContainer xAODVertices,
const std::vector< TIDA::Track * > *  trackCollection = 0,
bool  useType0 = false,
bool  require_tracks = true 
)
static

Definition at line 13 of file TIDAVertexBuilder.cxx.

17  {
18 
19  std::vector<TIDA::Vertex> vertices;
20 
21  xAOD::VertexContainer::const_iterator vtxitr = xAODVertices->begin();
22 
23  for ( ; vtxitr != xAODVertices->end(); ++vtxitr ) {
24 
25  if ( require_tracks && (*vtxitr)->nTrackParticles()==0 ) continue;
26 
27  if ( (*vtxitr)->vertexType()!=0 || useType0 ) {
28  TIDA::Vertex vertex = selectVertex( *vtxitr );
29 
30  if ( trackCollection ) {
31  std::vector< unsigned long > trackIds;
32 
33  const std::vector< ElementLink< xAOD::TrackParticleContainer > >& xAODtracks = (*vtxitr)->trackParticleLinks();
34 
35  for ( const auto& track : xAODtracks ) {
36  unsigned long id = 0;
37  if (track.isValid()) id = getTrackId( *track );
38  trackIds.push_back( id );
39  }
40 
41  vertex.selectTracks( *trackCollection, trackIds );
42  }
43 
44  vertices.push_back( vertex );
45  }
46  }
47 
48  return vertices;
49 }

◆ select() [2/2]

std::vector< TIDA::Vertex > TIDAVertexBuilder::select ( xAOD::VertexContainer::const_iterator  itr,
xAOD::VertexContainer::const_iterator  enditr,
const std::vector< TIDA::Track * > *  trackCollection = 0,
bool  useType0 = false,
bool  require_tracks = true 
)
static

Definition at line 52 of file TIDAVertexBuilder.cxx.

57  {
58 
59  std::vector<TIDA::Vertex> vertices;
60 
62 
63  for ( ; vtxitr!=enditr; ++vtxitr ) {
64 
65  if ( require_tracks && (*vtxitr)->nTrackParticles()==0 ) continue;
66 
67  if ( (*vtxitr)->vertexType()!=0 || useType0 ) {
68 
69  TIDA::Vertex vertex = selectVertex( *vtxitr );
70 
71  if( trackCollection ) {
72  std::vector< unsigned long > trackIds;
73 
74  const std::vector< ElementLink< xAOD::TrackParticleContainer > >& xAODtracks = (*vtxitr)->trackParticleLinks();
75 
76  for( const auto& track : xAODtracks ) {
77  unsigned long id = getTrackId( *track );
78  trackIds.push_back( id );
79  }
80 
81  vertex.selectTracks( *trackCollection, trackIds );
82  }
83 
84  vertices.push_back( vertex );
85  }
86  }
87 
88  return vertices;
89 }

◆ selectVertex()

TIDA::Vertex TIDAVertexBuilder::selectVertex ( const xAOD::Vertex v)
staticprivate

variances

quality

Definition at line 92 of file TIDAVertexBuilder.cxx.

92  {
93 
94  // convert xAOD::Vertex into TIDA::Vertex
95  TIDA::Vertex tidav( v->x(),
96  v->y(),
97  v->z(),
99  v->covariancePosition()(Trk::x,Trk::x),
100  v->covariancePosition()(Trk::y,Trk::y),
101  v->covariancePosition()(Trk::z,Trk::z),
102  v->nTrackParticles(),
104  v->chiSquared(),
105  v->numberDoF() );
106 
107  return tidav;
108 }

The documentation for this class was generated from the following files:
Trk::y
@ y
Definition: ParamDefs.h:62
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:63
TIDAVertexBuilder::getTrackId
static unsigned long getTrackId(const xAOD::TrackParticle *track)
Definition: TIDAVertexBuilder.cxx:111
TIDA::Vertex
Definition: TIDAVertex.h:23
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
python.PyAthena.v
v
Definition: PyAthena.py:157
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::x
@ x
Definition: ParamDefs.h:61
TIDAVertexBuilder::selectVertex
static TIDA::Vertex selectVertex(const xAOD::Vertex *v)
Definition: TIDAVertexBuilder.cxx:92
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.