Skip to content
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

mkFit external integration #36546

Merged
merged 1 commit into from
Feb 21, 2022
Merged

Commits on Feb 15, 2022

  1. Import mkFit from trackreco/mkFit to cmssw.

    This commit is squashed from many commits made during the code review.
    Below is a list of changes (in addition to overall cleanup):
    
    - Build subdirs of MkFitCore/src/, put Ice source back in Ice/. Move CMS-2017 geom test to MkFitCMS.
    
    - Move files with stand-alone steering code out of attic/.
    
    - Use std::aligned_alloc in place of _mm_malloc.
    
    - Reenable standalone quality and root-based validation.
      So far ohnly works for standalone runBtpCe_MultiIter() - MIMI
      even though the modifications have also been made in legacy
      best-hit, standard, and clone-engine steering functions.
    
    - Remove standalone externals from MkFitCore.
    
    - Remove RecoTracker/MkFitCore/standalone/dust-chest/ directory that contained nlohmann and
      SMatrix externals.
    
    - Move them to a new github repo: trackreco/mkFit-external
    
    - In standalone configure, clone the mkFit-external repo into buld directory.
    
    - Modify Makefiles to include from this new directory instead of dusty-chest/.
    
    - Make Pool<T> to return unique_ptr directly, and reduce public
      interface, follow CMS' naming convention, aling naming a bit closer
      to edm::ReusableObjectHolder.
    
    - refactor LayerNumberConverter
    
    - Remove std::vector inheritance of CombCandidate - use a std::vector member.
    
    - Switch to regular std::clamp
    
    - Significant cleanup of Config.h/cc
    
    - Split Config.h/cc into standalone/ConfigStandalone.h/cc
      Move as much standalone stuff as possible.
    
    - Move TrackExtra class out of Track.h/cc into standalone/TrackExtra.h/cc
    
    - Move Conformal-fit stuff into standalone as well.
    
    - Makefiles -- distclean removes libs and executables.
    
    - Remove some more Config variables related to standalone sim.
    
    - Remove usage of unnamed union/struct for bitfield initialization.
    
    - LayerNumberConverter.h private data
    
    - Rename most functions to start with a lower-case letter.
    
    - HitStructures: classes LayerOfHits and EventOfHits
      - make all members private
      - proper pub/priv order
      - remove commented code
      - improve comments
    
    - Remove unused Track::clone()
    
    - HitStructures: classes TrackCand, CombCandidate, EventOfCombCandidates
      - make all members private, write accessors as needed
      - proper pub/priv order
      - remove commented code
      - improve comments
    
    - Mostly miscellaneous review followup:
      - commented out code cleanup
      - drop const in returned values
      - enum-> constexpr in Matriplex.h
      - costexpr for 1620
    
    - Remove more standalone vars, typedefs, includes from Config.h.
    
    - include CMS_SA_ALLOW, with support for MKFIT_STANDALONE
    
    - Move Matriplex/test to standalone/test, move define ASSUME_ALIGNED to MatriplexCommon.h
    
    - Fixup CandCloner
      - remove unused code
      - move impl of begin/end funcs to .cc, use dprint
      - make members private
    
    - Remove MkFitCMS/standalone/CMS-2017/. This contained data and code
      to generate CMS-2017.acc geometry description.
    
    - Move plugin loader from TrackerInfo to ConfigStandalone
    
    - Do not dlclose geometry/config plugin library.
    
    - Move standalone auto-generated files of out cmssw repo (to trackreco/mkFit-external).
    
    - Move material constants to class MaterialEffects, make a const global instance of it namespace Config.
    
    - LayerInfo privatization + related changes and removal of some members obsoleted by layer-plan (sibling/next layer).
    
    - TrackerInfo privatization.
    
    - Use unique_ptr for JSON object, and remove release_json() as
      unnecessary
    
    - default LayerInfo::m_is_stereo = false
    
    - Split Config in Const / Config, remove unused useCMSGeom and
      nParams. Config now has to be turned into a class, some variables
      would be better off being put into IterationConfig or similar.
    
    - Remove Config::nTotalLayers, build writeMemoryFile.
    
    - Put propagation-flags into PropagationConfig class. Access through
      const& singleton pattern.
    
    - Move Config::json_verbose to standalone, put json functions into
      JsonConfig class.
    
    - Move Config::silent to standalone and a member of MkBuilder.
    
    - Final cleanup of Config.h
      - add ool argument to PropagationConfig::set_as_default(bool force)
      - move includePCA to ConfigStandalone (for cmd-line option processing) and
        introduce new member bool PropagationConfig::backward_fit_to_pca
      - if-def MKFIT_STANDALONE numThreadsFinder numThreadsEvents numSeedsPerTask
    
    - if-def MKFIT_STANDALONE bool removeDuplicates and useHitsForDuplicates
    
    - use edm::isFinite with non-standalone build
    
    - Fixofy MkBase / MkFitter / MkFinder
      - members use m_ prefix
      - privatize/protectify data members, put them to the end
      - remove some comments
    
    - On Slava's request remove from backward-fit outlier/nan-fit hit
      rejection proto-code and discussion about why it should be
      implemented the way it was and what to do with overlaps when primary
      hit gets rejected.
    
    - drop cmsDeltaRad and related commented-out code for rough
      propagation window from nominal r/z to the actual expected hit (this
      was set up for the CMS geometry and was replaced by the per-layer
      windows; we are not going back from this setup)
    
    - use TrackAlgorithm instead of literals
    
    - Code cleanup:
      - move some aged standalone code out of StdStandaloneSeqs.cc
      - remove unneeded 1.02 alocation scale in LayerOfHits
      - remove unused eta regions from TrackerInfo - superseeded by
        seed-partitioning function, layer-plan and steering-params.
    osschar authored and makortel committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    a96a2c7 View commit details
    Browse the repository at this point in the history