CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
FastVertexFit.h
Go to the documentation of this file.
1#ifndef VertexFit_FastVertexFit_H
2#define VertexFit_FastVertexFit_H
3
4#include "CLHEP/Vector/ThreeVector.h"
5#include "CLHEP/Matrix/SymMatrix.h"
6#include "CLHEP/Matrix/Matrix.h"
7using CLHEP::HepVector;
8using CLHEP::Hep3Vector;
9using CLHEP::HepMatrix;
10using CLHEP::HepSymMatrix;
11#include "CLHEP/Geometry/Point3D.h"
12#ifndef ENABLE_BACKWARDS_COMPATIBILITY
14#endif
15#include <vector>
17
19
20 public:
21
22 //constructor & deconstructor
23 static FastVertexFit * instance();
25
26 // initialization, must be called before fit
27 void init();
28
29 //void initVertex(); //FIXME need?
30
31 // add track information
32 void addTrack(const int number, const HepVector helix, const HepSymMatrix err);
33
34 // fit function
35 bool Fit();
36
37 // Output
38 double chisq() const {return m_chisq;}
39 VertexParameter vtx() const {return m_vtx_infit;}
40 HepVector Vx() const {return m_Vx;}
41 HepSymMatrix Evx() const {return m_Evx;}
42 HepVector Pull() const;
43
44 private:
45 void updateMatrices(const HepVector helix, const HepSymMatrix err);
46 //std::vector<HepVector> m_helix;
47 //std::vector<HepSymMatrix> m_err;
48 std::vector<HepMatrix> m_D;
49 std::vector<HepSymMatrix> m_W;
50 std::vector<HepSymMatrix> m_DTWD;
51 std::vector<HepVector> m_xp;
52
53 private:
54 double m_chisq; // chisq in fitting
55 VertexParameter m_vtx_infit; //updated vertex parameters
56 HepVector m_Vx; //updated vertex position
57 HepSymMatrix m_Evx; // coviance matrix of updated vertex
58
59 private:
60 FastVertexFit(); // constructor
61 static FastVertexFit *m_pointer; // pointer
62};
63
64#endif
HepGeom::Point3D< double > HepPoint3D
static FastVertexFit * instance()
HepVector Pull() const
double chisq() const
VertexParameter vtx() const
void addTrack(const int number, const HepVector helix, const HepSymMatrix err)
HepSymMatrix Evx() const
HepVector Vx() const