Eval Corrections

Thu Jan 8 2014
============

Rotation:
1. Track coming thru cylinder, in DEV Sti

a) 1st time
     When it happens first time, detector rotated and  Phi angle of new node  is chosen , to keep Ylocal = 0 and Xloc = radius of cylinder.
     It is good if opening angle of cylinder == 360  degrees. but if it is a sector, it is wrong, because we can not change
     local coordinate system of sector. It is defined +- openingAngle/2
     For old geometry it was OK, all the cylinder were full. In new geometry it leads to arbitrary and wron rotation
     of sector shape. In result energy loss is wrong.

b) Second time, Refit()
   Track parameters changed and Ylocal is non zero. But Xloc kept the same. As a result crossing point of track
   and detector not in a wall of cylinder but on the plane Xloc = const. So this point is outside of detector even
   for full cylinder. If this point is not too far it is OK. So it is unpredictable.
   If track is not crossing plane Xloc = const, then x = xloc and Yloc is the y of pont on track where sin(Phi)=1 and cos(Phi)=0
  So point is again not in a wall of cylinder but even not on the track, which is not good at all.
  For good track with a lot of hits this effect is negligible. For Bad tracks effect could be big, but this track anyway is bad.

2. Track coming thru cylinder, in EVAL Sti
 a) 1st time
     If detector if full cylinder, action is the same as in DEV. If it is sector, no rotation is happened.
     If it is sector, then Xloc is an x of crossing point and according Yloc. So it is similar to planar shape.

b) Second time, Refit()
   Track parameters changed and Ylocal is non zero.
    For full cylinder we rotated it again,rotated all error matrix etc.. So Yloc again is zero.
    For sector we do not rotate it and calculate correct Xloc and Yloc. In this point error matrix is calculated.
   If track missed volume, than we calulated the "nearest" point on track to the detector. Xloc,Yloc and errors
   calculated for this point. In contrary with DEV this point is on track. For good track no big difference but
   for bad ones, action is more correct.

3. Error matrix
    Error matrix on cylinder in both cases is projected not on the cylinder wall but on plane X = xLoc.
    If this cylinder is sensetive with the hits, it is wrong. But for dead material it does not matter.
    We do not have sensetive cylinders.

4. Energy loss.
a) In DEV
   if track is missing detector (after refit) energy loss calculated in the same way as it crossed it.
    For TPC it is not important, material the same. For non gas detectors it is wrong

b) In EVAL,
   if track is missed detector, energy loss accounted only for the gas.

=============================================================================================================
  5. inside & nudge

At the end of event,, when all tracks are created, added loop over all nodes and all points on node
moved along the track to be inside of according detector. It is made only for D.Smirnov application.
Physics is not affected. Those nodes which are outside of detector could be tested by new inside() method

6. In StiHit
   small bug fixed (Hao found). Results were not affected

7. In  StiKalmanTrackFinder
   getNormalRefAngle() ==> getLayerAngle()
   getNormalRadius()    ==> getLayerRadius()
  because sorting was made by Layer radius and angle.
 
8. Double search loop
     Double search loop is implemented. In first loop only active detectors was searche in second others, if
     it was no success in the first one

  9. Arcsin for small sin was calculated via few Tailor expantion members. But it was not accounted that this
     is correct only when cos >0. For cos <0 it is wrong. Fixed in EVAL

10. In DEV only TPC hits was used to create seed. In EVAL this limitation removed