New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace CLHEP matrices by root::SMatrix in segment fitter #5125
Conversation
A new Pull Request was created by @ptcox for CMSSW_7_2_X. Replace CLHEP matrices by root::SMatrix in segment fitter It involves the following packages: RecoLocalMuon/CSCSegment @cmsbuild, @nclopezo, @StoyanStoynev, @slava77 can you please review it and eventually sign? Thanks. |
Tested 2061bbf on top of CMSSW_7_2_X_2014-09-05-1400. The affect the STA and global fits: Again, in other wf ( ttbar events), changes - in particular MET - are invisible. |
+1 |
This pull request is fully signed and it will be integrated in one of the next CMSSW_7_2_X IBs unless changes (tests are also fine). |
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.