93 int trkID_loc=trkID;
if(trkID_loc<0)trkID_loc=0;
96 double vX=RefEnd[0];
double vY=RefEnd[1];
double vZ=RefEnd[2];
98 Amg::Vector3D endPointG( vX + state.m_refFrameX, vY + state.m_refFrameY, vZ + state.m_refFrameZ);
102 std::vector<double> PerigeeIni( ParOld, ParOld+5 );
103 std::vector<double> CovPerigeeIni( 15, 0. );
104 if( CovOld !=
nullptr) {
106 std::copy(CovOld,CovOld+15,CovPerigeeIni.begin() );
109 CovPerigeeIni[0]=1.e6;CovPerigeeIni[2]=1.e6;CovPerigeeIni[5]=1.;CovPerigeeIni[9]=1.;CovPerigeeIni[14]=fabs(PerigeeIni[4]);
118 double fx,fy,BMAG_FIXED;
119 state.m_fitField.getMagFld(vX,vY,vZ,fx,fy,BMAG_FIXED);
130 if( endPer ==
nullptr ) {
131 ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
132 delete inpPer;
return;
136 AmgVector(5) VectPerig; VectPerig.setZero();
139 VectPerig = mPer->parameters();
140 CovMtx = mPer->covariance();
143 VectPerig =
Line->parameters();
144 CovMtx =
Line->covariance();
146 if( (Line==
nullptr && mPer==
nullptr) || CovMtx==
nullptr ){
147 ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
148 delete inpPer;
return;
151 if((*CovMtx)(0,0)<=0. || (*CovMtx)(1,1)<=0.){
152 ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
153 delete inpPer;
delete endPer;
156 double CovVertTrk[15];
157 long int locCharge=Charge;
158 CovVertTrk[ 0] =(*CovMtx)(0,0);
159 CovVertTrk[ 1] =(*CovMtx)(1,0);
160 CovVertTrk[ 2] =(*CovMtx)(1,1);
161 CovVertTrk[ 3] =(*CovMtx)(2,0);
162 CovVertTrk[ 4] =(*CovMtx)(2,1);
163 CovVertTrk[ 5] =(*CovMtx)(2,2);
164 CovVertTrk[ 6] =(*CovMtx)(3,0);
165 CovVertTrk[ 7] =(*CovMtx)(3,1);
166 CovVertTrk[ 8] =(*CovMtx)(3,2);
167 CovVertTrk[ 9] =(*CovMtx)(3,3);
168 CovVertTrk[10] =(*CovMtx)(4,0);
169 CovVertTrk[11] =(*CovMtx)(4,1);
170 CovVertTrk[12] =(*CovMtx)(4,2);
171 CovVertTrk[13] =(*CovMtx)(4,3);
172 CovVertTrk[14] =(*CovMtx)(4,4);
177 if(CovNew !=
nullptr) {
179 VectPerig(2), VectPerig(3), VectPerig(4), CovVertTrk,
180 locCharge, &ParNew[0] , &CovNew[0]);
182 double CovVertTrkTmp[15];
184 VectPerig(2), VectPerig(3), VectPerig(4), CovVertTrk,
185 locCharge, &ParNew[0] , CovVertTrkTmp);
187 delete inpPer;
delete endPer;