SPU problem explanation. [message #9525] |
Wed, 07 October 2009 12:58 |
Lia Lavezzi
Messages: 291 Registered: May 2007 Location: Torino
|
first-grade participant |
From: *pv.infn.it
|
|
Hi Christian,
as agreed at the EVO meeting, I explain here what the problem with spu was, so that you can tell me how you managed to fix it.
As I said, I was experiencing a problem due to the fact that spu is updated after each extrapolation and not just after the filtering step (as state and cov are).
Let me give a short explanation: while the state vector and covariance matrix which come out from the extrapolation are stored in statePred and covPred, the spu is not. There is not an spuPred and the spu of the track is updated just after the extrapolation. This is ok as long as we are doing the Kalman procedure, but creates problems in other occasions.
For example it is a problem in the getPos/Mom... functions.
I attach to this message a macro (checkspu.C) to explain this with an example: we have a track (state, cov, plane) described on a plane, call it splane. We want to know the momentum on a different plane, call it eplane and call getMom(eplane).
An extrapolation to eplane is performed and the function returns the momentum there.
The problem is that, if during this extrapolation SPU changes (e.g.: from +1 to -1), in the track representation it is set to -1 and if we re-perform the same getMom(eplane) again we' ll get a wrong result because this second extrapolation is wrong (since it starts with a wrong spu)!
This was my problem: if you solved it I would be very happy!
Ciao,
Lia.
-
Attachment: checkspu.C
(Size: 5.44KB, Downloaded 347 times)
|
|
|