LCFIVertex  0.7.2
vertex_lcfi/inc/vertex.h
1 #ifndef LCFIVERTEX_H
2 #define LCFIVERTEX_H
3 
4 #include "../util/inc/vector3.h"
5 #include "../util/inc/matrix.h"
6 #include <vector>
7 #include <map>
8 
9 namespace vertex_lcfi
10 {
11  namespace ZVTOP
12  {
13  class CandidateVertex;
14  }
15 
16  using namespace util;
17 
18  //Forward Declarations
19  class Track;
20  class Event;
21 
23 
28  class Vertex
29  {
30  public:
31 
33  Vertex() {}
34 
36 
43  Vertex(Event* Event, const std::vector<Track*> & Tracks, const Vector3 & Position, const SymMatrix3x3 & PosError, bool IsPrimary, double Chi2, double Probability, std::map<Track*,double> ChiTrack);
44 
46 
52  Vertex(Event* Event, const std::vector<Track*> & Tracks, const Vector3 & Position, const SymMatrix3x3 & PosError, bool IsPrimary, double Chi2, double Probability);
53 
55 
60 
62 
65  inline Event* event() const{return _Event;}
66 
68 
71  inline const std::vector<Track*> & tracks() const {return _Tracks;}
72 
74 
77  inline bool isPrimary() const {return _IsPrimary;}
79 
82  inline bool & isPrimary() {return _IsPrimary;}
83 
85 
89  inline void addTrack(Track* AddTrack) {_Tracks.push_back(AddTrack);}
90 
92 
97  bool removeTrack(Track* RTrack);
98 
100 
104  bool hasTrack(Track* HTrack) const;
105 
107 
111  double charge() const;
112 
114 
118  Vector3 momentum() const;
119 
121 
124  inline const Vector3 & position() const {return _Position;}
125 
126 
128 
131  inline const SymMatrix3x3 & positionError() const {return _PosError;}
132 
133 
135 
138  inline double chi2() const {return _Chi2;}
139 
141 
144  inline std::map<Track*,double> chi2OfTracks() const {return _ChiSquaredOfTrack;}
145 
147 
150  inline double probability() const {return _Probability;}
151 
153 
158  double radius(Projection Proj) const;
159 
161 
166  double radiusError(Projection Proj) const;
167 
169 
175  double distanceToVertex(Vertex* FarVertex,Projection Proj) const;
176 
178 
184  double distanceToVertexError(Vertex* FarVertex,Projection Proj) const;
185 
186 
187  private:
188  Event* _Event;
189  std::vector<vertex_lcfi::Track*> _Tracks;
190  Vector3 _Position;
191  SymMatrix3x3 _PosError;
192  bool _IsPrimary;
193  double _Chi2;
194  double _Probability;
195  std::map<Track*,double> _ChiSquaredOfTrack;
196  };
197 
198  }
199 #endif //LCFIVERTEX_H
200 
201 
const std::vector< Track * > & tracks() const
Get Tracks.
void addTrack(Track *AddTrack)
Add Track.
bool isPrimary() const
Is this vertex primary.
bool & isPrimary()
Is this vertex primary.
Vertex()
Default Constuctor.
A collection of TrackState objects with a fit and vertex function maximum.
Event * event() const
Event.
const Vector3 & position() const
Position.
double chi2() const
Chi Squared.
const SymMatrix3x3 & positionError() const
Position.
Unique Track representation.
double probability() const
Probability.
std::map< Track *, double > chi2OfTracks() const
Chi Squared Of Tracks.