BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
DstMdcKalTrack.cxx
Go to the documentation of this file.
1/*
2* @class : MdcTrack
3*
4* this class models "Kalman Track" from Mdc
5*
6* ********************************************************/
7
8#include "DstEvent/DstMdcKalTrack.h"
9
11
13{
14 HepVector za(5,0);
15 HepSymMatrix zea(5,0);
16 HepPoint3D poca(0,0,0);
17 m_trackId = -1;
18 for(int pid=0; pid<5; pid++) {
19 m_zhelixs.push_back(za);
20 m_zerrors.push_back(zea);
21 m_fhelixs.push_back(za);
22 m_ferrors.push_back(zea);
23 m_pocas.push_back(poca);
24 m_mass[pid] = 1;
25 m_charge[pid] = 1;
26 m_stat[0][pid] = 0;
27 m_stat[1][pid] = 0;
28
29 m_ndf[0][pid] = 0;
30 m_ndf[1][pid] = 0;
31 m_nster[0][pid] = 0;
32 m_nster[1][pid] = 0;
33 m_nlayer[pid] = 0;
34 m_firstLayer[0][pid] = 0;
35 m_firstLayer[1][pid] = 0;
36 m_lastLayer[0][pid] = 0;
37 m_lastLayer[1][pid] = 0;
38 m_pxy[pid] = 0;
39 m_px[pid] = 0;
40 m_py[pid] = 0;
41 m_pz[pid] = 0;
42 m_p[pid] = 0;
43 m_theta[pid] = 0;
44 m_phi[pid] = 0;
45 m_x[pid] = 0;
46 m_y[pid] = 0;
47 m_z[pid] = 0;
48 m_r[pid] = 0;
49 m_stat[0][pid] = 0;
50 m_stat[1][pid] = 0;
51 m_chisq[0][pid] = 0;
52 m_chisq[1][pid] = 0;
53 m_ndf[0][pid] = 0;
54 m_ndf[1][pid] = 0;
55
56 }
57}
58
59
61 :m_trackId(other.m_trackId),
62 m_pocas(other.m_pocas),
63 m_zhelixs(other.m_zhelixs),
64 m_zerrors(other.m_zerrors),
65 m_fhelixs(other.m_fhelixs),
66 m_ferrors(other.m_ferrors)
67{
68 for(int i=0;i<5;i++){
69 m_charge[i] = other.m_charge[i];
70 m_stat[0][i] = other.m_stat[0][i];
71 m_stat[1][i] = other.m_stat[1][i];
72 m_nster[0][i] = other.m_nster[0][i];
73 m_nster[1][i] = other.m_nster[1][i];
74 m_nlayer[i] = other.m_nlayer[i];
75 m_firstLayer[0][i] = other.m_firstLayer[0][i];
76 m_firstLayer[1][i] = other.m_firstLayer[1][i];
77 m_lastLayer[0][i] = other.m_lastLayer[0][i];
78 m_lastLayer[1][i] = other.m_lastLayer[1][i];
79 m_mass[i] = other.m_mass[i];
80
81 m_pxy[i] = other.m_pxy[i];
82 m_px[i] = other.m_px[i];
83 m_py[i] = other.m_py[i];
84 m_pz[i] = other.m_pz[i];
85 m_p[i] = other.m_p[i];
86 m_theta[i] = other.m_theta[i];
87 m_phi[i] = other.m_phi[i];
88 m_x[i] = other.m_x[i];
89 m_y[i] = other.m_y[i];
90 m_z[i] = other.m_z[i];
91 m_r[i] = other.m_r[i];
92 m_chisq[0][i] = other.m_chisq[0][i];
93 m_chisq[1][i] = other.m_chisq[1][i];
94 m_ndf[0][i] = other.m_ndf[0][i];
95 m_ndf[1][i] = other.m_ndf[1][i];
96 m_nhits[i] = other.m_nhits[i];
97 }
98}
99
101 if(&other != this){
102 m_trackId = other.m_trackId;
103 m_pocas = other.m_pocas;
104 m_zhelixs = other.m_zhelixs;
105 m_zerrors = other.m_zerrors;
106 m_fhelixs = other.m_fhelixs;
107 m_ferrors = other.m_ferrors;
108 for(int i=0;i<5;i++){
109 m_charge[i] = other.m_charge[i];
110 m_stat[0][i] = other.m_stat[0][i];
111 m_stat[1][i] = other.m_stat[1][i];
112 m_nster[0][i] = other.m_nster[0][i];
113 m_nster[1][i] = other.m_nster[1][i];
114 m_nlayer[i] = other.m_nlayer[i];
115 m_firstLayer[0][i] = other.m_firstLayer[0][i];
116 m_firstLayer[1][i] = other.m_firstLayer[1][i];
117 m_lastLayer[0][i] = other.m_lastLayer[0][i];
118 m_lastLayer[1][i] = other.m_lastLayer[1][i];
119 m_mass[i] = other.m_mass[i];
120 m_chisq[0][i] = other.m_chisq[0][i];
121 m_chisq[1][i] = other.m_chisq[1][i];
122 m_pxy[i] = other.m_pxy[i];
123 m_px[i] = other.m_px[i];
124 m_py[i] = other.m_py[i];
125 m_pz[i] = other.m_pz[i];
126 m_p[i] = other.m_p[i];
127 m_theta[i] = other.m_theta[i];
128 m_phi[i] = other.m_phi[i];
129 m_x[i] = other.m_x[i];
130 m_y[i] = other.m_y[i];
131 m_z[i] = other.m_z[i];
132 m_r[i] = other.m_r[i];
133 //m_chi2[i] = other.m_chi2[i];
134 m_ndf[0][i] = other.m_ndf[0][i];
135 m_ndf[1][i] = other.m_ndf[1][i];
136 m_nhits[i] = other.m_nhits[i];
137 }
138 }
139 return *this;
140}
141
142
144
145 }
146
147
148const HepLorentzVector DstMdcKalTrack::p4() const{
149 const HepLorentzVector p_LV( px(), py(), pz(), sqrt(pow(mass(),2)+pow(p(),2)) );
150 return p_LV;
151}
152
153
154const HepLorentzVector DstMdcKalTrack::p4(double v_mass) const{
155 const HepLorentzVector p_LV( px(), py(), pz(), sqrt(pow(v_mass,2)+pow(p(),2)) );
156 return p_LV;
157}
158
159const Hep3Vector DstMdcKalTrack::p3() const {
160 const Hep3Vector p3( px(), py(), pz() );
161 return p3;
162}
163
166}
HepGeom::Point3D< double > HepPoint3D
DstMdcKalTrack & operator=(const DstMdcKalTrack &)
const HepPoint3D x3() const
const Hep3Vector p3() const
const HepLorentzVector p4() const