BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/VertexFit/VertexFit/VertexConstraints.h
Go to the documentation of this file.
1#ifndef Vertex_Constraints_H
2#define Vertex_Constraints_H
3
4//
5// Vertex constraints and related calculation
6// For each charged particl, there are two constraints:
7// 1) 0 = px * delta_y - py*delta_x -a/2*(delta_x^2 +delta_y^2)
8// 2) 0 = delta_z - pz/a*asin(a*(px*delta_x+py*delta_y)/pxy^2)
9// where, delta_x = Vx - x, etc.
10// a = -0.00299792458 * B * q, B in Tesla
11//
12// Author: K.L He date:10/31/2005, created
13//
14
15#include <vector>
16#include "CLHEP/Matrix/Matrix.h"
17#include "CLHEP/Matrix/SymMatrix.h"
18#include "CLHEP/Matrix/Vector.h"
19using CLHEP::HepMatrix;
20using CLHEP::HepSymMatrix;
21using CLHEP::HepVector;
22#include "CLHEP/Geometry/Point3D.h"
23#ifndef ENABLE_BACKWARDS_COMPATIBILITY
25#endif
26
27#include "VertexFit/VertexParameter.h"
28#include "VertexFit/WTrackParameter.h"
29
31{
32public:
33 // contructor & descontructir
37 void CommonVertexConstraints(std::vector<int> tlis);
38 void FixedVertexConstraints(std::vector<int> tlis);
39 void UpdateConstraints(VertexParameter vpar, std::vector<WTrackParameter> wlis);
40 void setCovax(const int i, const HepMatrix cov) {m_covax[i] = cov;}
41 void setLambda(const int i, const HepVector L) {m_lambda[i] = L;}
42 void setLambda0(const int i, const HepVector L0){m_lambda0[i] = L0;}
43 void setVD(const int i, const HepSymMatrix vd) {m_VD[i] = vd;}
44 void setEVDE(const int i, const HepSymMatrix evde) {m_EVDE[i] = evde;}
45 void setType(const int type){m_type = type;}
46
47 std::vector<HepMatrix> Ec() const {return m_Ec;}
48 std::vector<HepMatrix> Dc() const {return m_Dc;}
49 std::vector<HepVector> dc() const {return m_dc;}
50 std::vector<HepSymMatrix> VD() const{return m_VD;}
51 std::vector<HepSymMatrix> EVDE() const {return m_EVDE;}
52 std::vector<HepMatrix> covax() const {return m_covax;}
53 std::vector<HepVector> lambda0() const {return m_lambda0;}
54 std::vector<HepVector> lambda() const {return m_lambda;}
55 std::vector<int> Ltrk() const {return m_ltrk;}
56 int type() const {return m_type;}
57 int commonVertex() const {return CommonVertex;}
58 int fixedVertex() const {return FixedVertex;}
60
61private:
62 std::vector<HepMatrix> m_Ec;
63 std::vector<HepMatrix> m_Dc;
64 std::vector<HepVector> m_dc;
65 std::vector<HepSymMatrix> m_VD;
66 std::vector<HepSymMatrix> m_EVDE;
67 std::vector<HepMatrix> m_covax;
68 std::vector<HepVector> m_lambda0;
69 std::vector<HepVector> m_lambda;
70 std::vector<int> m_ltrk;
71 int m_type;
72 static const double Alpha;
73 static const int CommonVertex;
74 static const int FixedVertex;
75};
76
78{
79 m_Ec = vc.m_Ec;
80 m_Dc = vc.m_Dc;
81 m_dc = vc.m_dc;
82 m_VD = vc.m_VD;
83 m_EVDE = vc.m_EVDE;
84 m_covax = vc.m_covax;
85 m_lambda0 = vc.m_lambda0;
86 m_lambda = vc.m_lambda;
87 m_ltrk = vc.m_ltrk;
88 m_type = vc.m_type;
89}
90
92{
93 m_Ec = vc.m_Ec;
94 m_Dc = vc.m_Dc;
95 m_dc = vc.m_dc;
96 m_VD = vc.m_VD;
97 m_EVDE = vc.m_EVDE;
98 m_covax = vc.m_covax;
99 m_lambda0 = vc.m_lambda0;
100 m_lambda = vc.m_lambda;
101 m_ltrk = vc.m_ltrk;
102 m_type = vc.m_type;
103 return (*this);
104}
105#endif //Vertex_Constraints_H
106
HepGeom::Point3D< double > HepPoint3D
void setEVDE(const int i, const HepSymMatrix evde)
VertexConstraints & operator=(const VertexConstraints &)
void FixedVertexConstraints(std::vector< int > tlis)
void CommonVertexConstraints(std::vector< int > tlis)
void setVD(const int i, const HepSymMatrix vd)
void UpdateConstraints(VertexParameter vpar, std::vector< WTrackParameter > wlis)
VertexConstraints(const VertexConstraints &)