cms-sw/cmssw — pull request #5125 by ptcox (2014-09-01 13:25:45+00:00)
Title: Replace CLHEP matrices by root::SMatrix in segment fitter

This is the straight swap of CLHEP matrices by root::SMatrix in the least-squares fitting of CSC segments. Really the code needs a lot of factoring and general clean-up but I don't have the time - a good place to start would be to factor out the segment-fitting. (That would probably also help GEM since I think they also make use of the same code, by cut-and-paste from CSC.) I also fixed what I consider a bug where after manipulations apparently to improve the numerical robustness of covariance matrix handling, the symmetricity of the covariance matrix was not maintained. This leads to ~8% of segments receiving slightly difference local positions and directions.I decided not to change the ME1/1A max rechits in cluster from 24 to 20, as in the other chambers, even though in postls1 the channels are now unganged - it seems that would be more effort than it's worth (would required setting up separate pre- & post-ls1 configs, AND changing HLT configs to match.) Finally, I noticed there is something called a 'yweightPenaltyThreshold' that was not set for ME4/2. I used the same value as set for ME/2 and ME3/2. I made a lot of tests comparing the original code, the new code, the new code with general rather than explicitly symmetric SMatrix, and the old code with the bug-fix enforcing symmetric covariance matrices. Everything seems consistent. First results of modified code presented in CSC Meeting of 20-Aug-2014, https://indico.cern.ch/event/336061/. Since then I have also increased the study samples to 1000 events of run 1 SingleMu, giving 4500 segments, and everything still makes sense. The runTheMatrix reco test ran fine.