39 int n6,
int n7,
int n8 );
41 int n6,
int n7,
int n8,
int n9 );
43 int n6,
int n7,
int n8,
int n9,
int n10 );
45 int n6,
int n7,
int n8,
int n9,
int n10,
int n11 );
47 int n6,
int n7,
int n8,
int n9,
int n10,
int n11,
int n12 );
55 void setChisqCut(
const double chicut = 1000,
const double chiter = 1.0e-3 ) {
60 double factor()
const {
return m_factor; }
78 double chisq()
const {
return m_chi; }
79 double chisq(
int n )
const {
return m_chisq[
n]; }
84 bool pull(
int n,
int itk, HepVector& p );
94 HepVector
cpu()
const {
return m_cpu; }
98 HepVector
Vx(
int n )
const {
return m_vpar_infit[
n].Vx(); }
99 HepSymMatrix
Evx(
int n )
const {
return m_vpar_infit[
n].Evx(); }
100 double errorVx(
int n,
int i )
const {
return sqrt( ( m_vpar_infit[
n].
Evx() )[i][i] ); }
111 void fitVertex(
int n );
113 void vertexCovMatrix(
int n );
115 void swimVertex(
int n );
117 void fitBeam(
int n );
118 void swimBeam(
int n );
121 std::vector<VertexParameter> m_vpar_origin;
123 std::vector<VertexParameter> m_vpar_infit;
125 std::vector<VertexConstraints> m_vc;
127 std::vector<double> m_chisq;
131 std::vector<WTrackParameter> m_virtual_wtrk;
136 HepSymMatrix m_xcovOrigin;
137 HepSymMatrix m_xcovOriginInversed;
138 inline HepVector xOrigin()
const {
return m_xOrigin; }
139 inline void setXOrigin(
const HepVector&
x ) { m_xOrigin =
x; }
140 inline HepSymMatrix xcovOrigin()
const {
return m_xcovOrigin; }
141 inline void setXCovOrigin(
const HepSymMatrix&
v ) { m_xcovOrigin =
v; }
142 inline HepSymMatrix xcovOriginInversed()
const {
return m_xcovOriginInversed; }
143 inline void setXCovOriginInversed(
const HepSymMatrix&
v ) { m_xcovOriginInversed =
v; }
147 HepSymMatrix m_xcovInfit;
148 HepSymMatrix m_xcovInfitInversed;
149 inline HepVector xInfit()
const {
return m_xInfit; }
150 inline void setXInfit(
const HepVector&
x ) { m_xInfit =
x; }
151 inline HepSymMatrix xcovInfit()
const {
return m_xcovInfit; }
152 void setXCovInfit(
const HepSymMatrix&
v ) { m_xcovInfit =
v; }
153 inline HepSymMatrix xcovInfitInversed()
const {
return m_xcovInfitInversed; }
154 void setXCovInfitInversed(
const HepSymMatrix&
v ) { m_xcovInfitInversed =
v; }
158 HepSymMatrix m_pcovOrigin;
159 inline HepVector pOrigin(
int i )
const {
160 return m_pOrigin.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR );
162 inline void setPOrigin(
int i,
const HepVector& p ) { m_pOrigin.sub( i * NTRKPAR + 1, p ); }
163 inline HepSymMatrix pcovOrigin(
int i )
const {
164 return m_pcovOrigin.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR );
166 inline void setPCovOrigin(
int i,
const HepSymMatrix&
v ) {
167 m_pcovOrigin.sub( i * NTRKPAR + 1,
v );
172 HepSymMatrix m_pcovInfit;
173 inline HepVector pInfit(
int i )
const {
174 return m_pInfit.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR );
176 inline void setPInfit(
int i,
const HepVector& p ) { m_pInfit.sub( i * NTRKPAR + 1, p ); }
177 inline HepSymMatrix pcovInfit(
int i )
const {
178 return m_pcovInfit.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR );
180 inline void setPCovInfit(
int i,
const HepSymMatrix&
v ) {
181 m_pcovInfit.sub( i * NTRKPAR + 1,
v );
186 inline HepMatrix vfB(
int i )
const {
187 return m_B.sub( i * NCONSTR + 1, ( i + 1 ) * NCONSTR, 1, NVTXPAR );
189 inline void setB(
int i,
const HepMatrix& e ) { m_B.sub( i * NCONSTR + 1, 1, e ); }
192 inline HepMatrix vfBT(
int i )
const {
193 return m_BT.sub( 1, NVTXPAR, i * NCONSTR + 1, ( i + 1 ) * NCONSTR );
195 inline void setBT(
int i,
const HepMatrix& e ) { m_BT.sub( 1, i * NCONSTR + 1, e ); }
198 inline HepMatrix vfA(
int i )
const {
199 return m_A.sub( i * NCONSTR + 1, ( i + 1 ) * NCONSTR, i * NTRKPAR + 1,
200 ( i + 1 ) * NTRKPAR );
202 inline void setA(
int i,
const HepMatrix& d ) {
203 m_A.sub( i * NCONSTR + 1, i * NTRKPAR + 1, d );
207 inline HepMatrix vfAT(
int i )
const {
208 return m_AT.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR, i * NCONSTR + 1,
209 ( i + 1 ) * NCONSTR );
211 inline void setAT(
int i,
const HepMatrix& d ) {
212 m_AT.sub( i * NTRKPAR + 1, i * NCONSTR + 1, d );
216 inline HepMatrix vfKQ(
int i )
const {
217 return m_KQ.sub( 1, NVTXPAR, i * NCONSTR + 1, ( i + 1 ) * NCONSTR );
219 inline void setKQ(
int i,
const HepMatrix& d ) { m_KQ.sub( 1, i * NCONSTR + 1, d ); }
222 inline HepVector vfG(
int i )
const {
223 return m_G.sub( i * NCONSTR + 1, ( i + 1 ) * NCONSTR );
225 inline void setG(
int i,
const HepVector& p ) { m_G.sub( i * NCONSTR + 1, p ); }
228 inline HepSymMatrix vfW(
int i )
const {
229 return m_W.sub( i * NCONSTR + 1, ( i + 1 ) * NCONSTR );
231 inline void setW(
int i, HepSymMatrix& m ) { m_W.sub( i * NCONSTR + 1, m ); }
234 inline HepMatrix vfE(
int i )
const {
235 return m_E.sub( i * NTRKPAR + 1, ( i + 1 ) * NTRKPAR, 1, NVTXPAR );
237 inline void setE(
int i,
const HepMatrix& p ) { m_E.sub( i * NTRKPAR + 1, 1, p ); }
243 HepVector Convert67(
const double&
mass,
const HepVector& p );
246 HepVector Convert76(
const HepVector& p );
250 static VertexFit* m_pointer;
258 static const int NTRKPAR;
259 static const int NVTXPAR;
260 static const int NCONSTR;