ATLAS Offline Software
Loading...
Searching...
No Matches
TIDAVertex.h
Go to the documentation of this file.
1/* emacs: this is -*- c++ -*- */
10
11
12#ifndef TIDA_VERTEX_H
13#define TIDA_VERTEX_H
14
15#include <iostream>
16#include <vector>
17
19
20
21namespace TIDA {
22
23class Vertex : public TObject {
24
25public:
26
27 Vertex( double x=0, double y=0, double z=0,
28 double dx=0, double dy=0, double dz=0,
29 int Ntracks=0, double c2=0, int dof=0,
30 const std::vector<TIDA::Track*>* tracks=0 );
31
32 // copy constructor
33 Vertex(const TIDA::Vertex& v);
34
35 // destructor
36 virtual ~Vertex() {}
37
38 // Tracks passed to addTracks() should belong to the vertex
39 void addTracks( const std::vector<TIDA::Track*>& tracks );
40
41 // Select tracks with specific ids from a track collection and add to vertex
42 void selectTracks( const std::vector<TIDA::Track*>& trackCollection,
43 const std::vector<unsigned long>& trackIds );
44
45 void selectTracks( const std::vector<TIDA::Track*>& trackCollection );
46
47 // vertex parameter accessors
48 const double* position() const { return m_x; }
49 double* position() { return m_x; }
50
51 double x() const { return m_x[0]; }
52 double y() const { return m_x[1]; }
53 double z() const { return m_x[2]; }
54
55 const double* error() const { return m_dx; }
56 double* error() { return m_dx; }
57
58 double dx() const { return m_dx[0]; }
59 double dy() const { return m_dx[1]; }
60 double dz() const { return m_dx[2]; }
61
62 int Ntracks() const { return m_Ntracks; }
63
64 double chi2() const { return m_chi2; }
65 int ndof() const { return m_ndof; }
66
67 const std::vector<TIDA::Track*>& tracks() const { return m_tracks; }
68
69 const std::vector<unsigned long>& ids() const { return m_ids; }
70
71 const TIDA::Track* operator[] ( const int i ) const {
72 if ( m_tracks.size() > 0 ) return m_tracks.at( i );
73 return nullptr; }
74
75private:
76
77 // internal track addition method
78 void addTrack( TIDA::Track* trk ) { m_tracks.push_back(trk); }
79
80 // vertex parameters
81 double m_x[3];
82 double m_dx[3];
83
85 double m_chi2;
86 int m_ndof;
87
88 // vertex tracks
89 std::vector<TIDA::Track*> m_tracks;
90 std::vector<unsigned long> m_ids;
91
92 ClassDef(TIDA::Vertex,3)
93
94};
95
96}
97
98inline std::ostream& operator<<( std::ostream& s, const TIDA::Vertex& t ) {
99 return s << "[ x=" << t.position()[0] << " +- " << t.error()[0]
100 << "\ty=" << t.position()[1] << " +- " << t.error()[1]
101 << "\tz=" << t.position()[2] << " +- " << t.error()[2]
102 << ";\tchi2=" << t.chi2() << "/" << t.ndof()
103 << "\tNtracks=" << t.Ntracks() << "\t]";
104}
105
106#endif // TIDA_VERTEX_H
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
std::ostream & operator<<(std::ostream &s, const TIDA::Vertex &t)
Definition TIDAVertex.h:98
const double * position() const
Definition TIDAVertex.h:48
double * position()
Definition TIDAVertex.h:49
double y() const
Definition TIDAVertex.h:52
Vertex(double x=0, double y=0, double z=0, double dx=0, double dy=0, double dz=0, int Ntracks=0, double c2=0, int dof=0, const std::vector< TIDA::Track * > *tracks=0)
int Ntracks() const
Definition TIDAVertex.h:62
std::vector< unsigned long > m_ids
Definition TIDAVertex.h:90
const TIDA::Track * operator[](const int i) const
Definition TIDAVertex.h:71
double z() const
Definition TIDAVertex.h:53
virtual ~Vertex()
Definition TIDAVertex.h:36
const std::vector< unsigned long > & ids() const
Definition TIDAVertex.h:69
double m_chi2
Definition TIDAVertex.h:85
int ndof() const
Definition TIDAVertex.h:65
double * error()
Definition TIDAVertex.h:56
std::vector< TIDA::Track * > m_tracks
Definition TIDAVertex.h:89
double x() const
Definition TIDAVertex.h:51
const std::vector< TIDA::Track * > & tracks() const
Definition TIDAVertex.h:67
double dx() const
Definition TIDAVertex.h:58
double m_x[3]
Definition TIDAVertex.h:81
const double * error() const
Definition TIDAVertex.h:55
double dy() const
Definition TIDAVertex.h:59
double dz() const
Definition TIDAVertex.h:60
double m_dx[3]
Definition TIDAVertex.h:82
void selectTracks(const std::vector< TIDA::Track * > &trackCollection, const std::vector< unsigned long > &trackIds)
void addTrack(TIDA::Track *trk)
Definition TIDAVertex.h:78
double chi2() const
Definition TIDAVertex.h:64
void addTracks(const std::vector< TIDA::Track * > &tracks)
Test for xAOD.