Home » PANDA » PandaRoot » Tracking » LSLTrackrep covariances are zero
LSLTrackrep covariances are zero [message #8540] |
Wed, 13 May 2009 11:03 |
asanchez
Messages: 350 Registered: March 2006
|
first-grade participant |
From: *gsi.de
|
|
Dear Christian, i was for a while not not
working with the tracking.
Today i have seen that there is some problems
during the fitting
if one uses the LSLtrack representation as it is now.
The main point is that when the Kalman is calling the routine
ProcessHit at line 219 (Kalman.cxx)
the covariance elements returned by rep->extrapolate(pl,state,cov);
are zero.
Then the kalman is trowing the following error message
if(cov[0][0]<1.E-50){
228 FitterException exc(COVEXC,__LINE__,__FILE__);
229 throw exc;
230 }
I wonder this actual situation because it was working fine.
I was investigating by myself
and i realized that
at LSLTrackrep.cxx the cov elements are not
filled anymore.
(Ofcourse if one uses the geanetrackrep
than the covariance matrix are filled by geane.)
So i did the following check, i have modified the routine
extrapolate(const DetPlane& pl,
TMatrixT<double>& statePred,
TMatrixT<double>& covPred)
of LSLtrackrep.cxx as follows (by adding red marked text
and commenting out the blue text):
extrapolate(const DetPlane& pl,
TMatrixT<double>& statePred,
TMatrixT<double>& covPred)
{
TMatrixT<double> jacobian;
//std::cout << "Extr from To: " << s << " " << sExtrapolateTo << std::endl;
double l=extrapolate(pl,statePred);
// covPred=JCovJ^T with J being Jacobian
jacobian.ResizeTo(5,5);
Jacobian(pl,statePred,jacobian);
TMatrixT<double> dummy(cov,TMatrixT<double>::kMultTranspose,jacobian);
covPred=jacobian*dummy;
covPred=cov;
return l;
}
And after this modifications it works again fine.
best regrads
ALicia S.
|
|
|
Goto Forum:
Current Time: Sun Dec 01 11:30:20 CET 2024
Total time taken to generate the page: 0.00724 seconds
|