Skip to content
Snippets Groups Projects

Switch to updated Fatras from Core

Merged Moritz Kiehn requested to merge fatras_from_core into master

This bumps Acts Core to the latest master branch that contains the updated Fatras implementation with a concrete event data model. The previous SimHit and SimParticle types are replaced by ActsFatras::Hit and ActsFatras::Particle. All dependent code is updated accordingly e.g. to use the revised accessor names and new constructor calls. The Fatras tools are adapted to the new interfaces available in the Core.

Additional related modification:

  • SimVertex directly stores a four-position.
  • SimIdentifier now stores a set of indices to refer e.g. to truth particles within a container. Previously, pointers were used that tightly bound SimIdentifier to a specific truth model and required stable memory location guarantees.
  • All data containers are now consistently named ...Container.
  • Add a GroupBy<...> proxy to simplify grouped iteration over the flat data containers, e.g. all hits on each detector module in the hits container.
  • Fatras tools are now named ActsSimFatras... as discussed in #175.
  • Command line options for the Fatras tools have been extended and support input particle cuts and hit surface selection.
  • All Fatras-related code has been moved out of the common examples library into Examples/Fatras/Common.
  • Csv and ROOT I/O tools handle all the information previously introduced in !211 (merged).
  • Prepare CI jobs to have separate gen/sim/rec steps with interdependencies.

My apologies to whoever will review this. Because this changes the event data model, it touches almost everything in the code base. Doing this only partially would have resulted in a broken build. Thus, the changes can not be split into smaller MRs. This is not how a good MR should look like and I know it.

Depends on acts-core!782 (merged) and acts-core!783 (merged)

Edited by Xiaocong Ai

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Moritz Kiehn added 53 commits

    added 53 commits

    • 3a73d79f...ad9b4469 - 9 commits from branch master
    • 159bf608 - Sequencer: use just size_t
    • c903e939 - bump acts-core
    • 11477077 - Utilities: add GroupBy proxy
    • 28df0fef - EventData: split data containers into separate headers
    • ded30bcc - EventData: remove Barcode
    • 6afbdb44 - EventData: replace Hit/Particles with Fatras types
    • 0da385be - EventData: streamline SimVertex
    • 4c90ecf3 - EventData: fix geometry id accessor for container
    • 433f5297 - EventData: simplify SimIdentifier
    • 9a32c3c2 - EventData: adapt SimSourceLink to Fatras Hit
    • c1633f04 - EventData: more SimSourceLink fixes
    • 2f9003af - EventData: adapt truth track to SimSourceLink and Fatras Hit
    • ddf69a73 - adapt validation tools to new data types
    • 6cdecc4a - Detectors: remove obsolete bin members registration
    • 15212ca5 - Detectors: use correct identifier types
    • cd69431e - Io/Csv: update particle reader/writer to new edm
    • 49823ac4 - Io/Csv: update cluster reader/writer to new edm
    • b873e855 - Io/Perf: update to new edm
    • ea07ced3 - Io/Root: update particle writer to new edm
    • 3c42dd72 - Io/Root: update sim hit writer to new edm
    • 34d90afd - Io/Root: update planar cluster writer to new edm
    • 1e757879 - Io/Root: update trajectory writer to new edm
    • d3e95906 - Io/Root: update vertex and track to new edm and streamline
    • 10973ec2 - Generators: update event generator to new edm
    • f43debc7 - Generators: update flatten event to new edm
    • 7ac320af - Generators: update particle selector to new edm
    • acae9c57 - Generators: remove unused header include
    • 5c3d2201 - Generators: use particle data for parametric generator
    • c1a5a53c - ParticleGun: remove explicit charge/mass options
    • ded9eae7 - Pythia8: update generator to new edm
    • 04ca79d5 - Pythia8: use consistent option naming
    • 6a99ccf4 - Pythia8: update config variable names
    • bbf4cab3 - Printers: update to new edm and extend particle info
    • 4bfc6cbf - TruthTracking: fix includes and final usage
    • 5a70a989 - TruthTracking: update particle smearing to new edm
    • ecdb1ade - TruthTracking: adopt new edm
    • 613a8bc9 - Vertexing: adopt new edm
    • 416df607 - update vertexing examples
    • b27de354 - Fitting: adopt new edm and some core changes
    • c7bdc02d - Fatras: rewrite algorithm based on updated edm/interface
    • f0e32007 - EventData: add hit group-by helper
    • c5baece1 - Digitization: add digitization algorithm to new edm
    • 0f125d3d - Digitization: update hit smearing to new edm
    • 7f0d13d8 - concentrate Fatras-only files and clean up

    Compare with previous version

  • Moritz Kiehn added 1 commit

    added 1 commit

    Compare with previous version

  • Moritz Kiehn added 31 commits

    added 31 commits

    • b6ece2d6 - Detectors: use correct identifier types
    • c7faea50 - Io/Csv: update particle reader/writer to new edm
    • a291b26d - Io/Csv: update cluster reader/writer to new edm
    • 1431e294 - Io/Perf: update to new edm
    • 4c1fae0e - Io/Root: update particle writer to new edm
    • 575e2b45 - Io/Root: update sim hit writer to new edm
    • ee458d92 - Io/Root: update planar cluster writer to new edm
    • 2707b478 - Io/Root: update trajectory writer to new edm
    • fc337d72 - Io/Root: update vertex and track to new edm and streamline
    • 8bd1d7c6 - Generators: update event generator to new edm
    • 82466521 - Generators: update flatten event to new edm
    • 3b16ef5c - Generators: update particle selector to new edm
    • 60e31fc7 - Generators: remove unused header include
    • 7d49ecbe - Generators: use particle data for parametric generator
    • df8fbc90 - ParticleGun: remove explicit charge/mass options
    • 4340c1f8 - Pythia8: update generator to new edm
    • 849dce37 - Pythia8: use consistent option naming
    • 419a914d - Pythia8: update config variable names
    • 69a6edc8 - Printers: update to new edm and extend particle info
    • 8f7a4228 - TruthTracking: fix includes and final usage
    • 6221ead4 - TruthTracking: update particle smearing to new edm
    • 72a08056 - TruthTracking: adopt new edm
    • 4c2b32af - Vertexing: adopt new edm
    • 301891bd - update vertexing examples
    • 20e556bd - Fitting: adopt new edm and some core changes
    • 0a64c521 - Fatras: rewrite algorithm based on updated edm/interface
    • 663a7210 - EventData: add hit group-by helper
    • ee2cbef4 - Digitization: add digitization algorithm to new edm
    • 1cf92169 - Digitization: update hit smearing to new edm
    • 182509e0 - concentrate Fatras-only files and clean up
    • df1ca54d - update ci jobs

    Compare with previous version

  • Moritz Kiehn added 4 commits

    added 4 commits

    • d069c6f2 - concentrate Fatras-only files and clean up
    • d1536f0c - add missing geometry in truth tracking tool
    • edeb3cbd - update HepMC3 to new edm
    • f8b951e4 - update ci jobs

    Compare with previous version

  • Moritz Kiehn changed the description

    changed the description

  • Moritz Kiehn added 46 commits

    added 46 commits

    • b32cc0fe - bump acts-core
    • 1951db79 - Utilities: add GroupBy proxy
    • 6f6703b2 - EventData: split data containers into separate headers
    • 25d57244 - EventData: remove Barcode
    • 5ab35cda - EventData: replace Hit/Particles with Fatras types
    • a5793537 - EventData: streamline SimVertex
    • c9ac5b9e - EventData: fix geometry id accessor for container
    • 15bd842c - EventData: simplify SimIdentifier
    • b64fd0f8 - EventData: adapt SimSourceLink to Fatras Hit
    • 6d7ffa6f - EventData: more SimSourceLink fixes
    • f112a237 - EventData: adapt truth track to SimSourceLink and Fatras Hit
    • 523771b6 - adapt validation tools to new data types
    • 2b5ccddd - Detectors: remove obsolete bin members registration
    • f0bc3713 - Detectors: use correct identifier types
    • 2ea2cb65 - Io/Csv: update particle reader/writer to new edm
    • b93e5ea6 - Io/Csv: update cluster reader/writer to new edm
    • cec2ed6f - Io/Perf: update to new edm
    • 744a6260 - Io/Root: update particle writer to new edm
    • acc3dd61 - Io/Root: update sim hit writer to new edm
    • 5739436c - Io/Root: update planar cluster writer to new edm
    • 1132b887 - Io/Root: update trajectory writer to new edm
    • 3c68928f - Io/Root: update vertex and track to new edm and streamline
    • 8afc0507 - Generators: update event generator to new edm
    • 5ba2efd0 - Generators: update flatten event to new edm
    • 243cec25 - Generators: update particle selector to new edm
    • 0738653b - Generators: remove unused header include
    • 033ca6dd - Generators: use particle data for parametric generator
    • cf7ca198 - ParticleGun: remove explicit charge/mass options
    • 8f93fafa - Pythia8: update generator to new edm
    • a4544c04 - Pythia8: use consistent option naming
    • 2d74b77d - Pythia8: update config variable names
    • 91c54320 - Printers: update to new edm and extend particle info
    • aaa14d22 - TruthTracking: fix includes and final usage
    • 7e568c93 - TruthTracking: update particle smearing to new edm
    • da4e9ff9 - TruthTracking: adopt new edm
    • a169eeec - Vertexing: adopt new edm
    • bebc3c3b - update vertexing examples
    • 9689ae31 - Fitting: adopt new edm and some core changes
    • 76950c9a - Fatras: rewrite algorithm based on updated edm/interface
    • aca355c4 - EventData: add hit group-by helper
    • 0499786d - Digitization: add digitization algorithm to new edm
    • 314bc92c - Digitization: update hit smearing to new edm
    • e0430d95 - concentrate Fatras-only files and clean up
    • 21feef54 - add missing geometry in truth tracking tool
    • 0bf1b991 - update HepMC3 to new edm
    • 4f9365e0 - update ci jobs

    Compare with previous version

  • Moritz Kiehn changed the description

    changed the description

  • Moritz Kiehn added 50 commits

    added 50 commits

    • 430002e0 - bump acts-core
    • b755a664 - Utilities: add GroupBy proxy
    • a66690bf - Options: move implementations to source file
    • bba55cd0 - Options: add interval helper type
    • cc6f88b3 - EventData: split data containers into separate headers
    • 5b48e03f - EventData: remove Barcode
    • 26d9cedf - EventData: replace Hit/Particles with Fatras types
    • 8ac1bfcd - EventData: streamline SimVertex
    • 5ecd75a5 - EventData: fix geometry id accessor for container
    • 9cd28a33 - EventData: simplify SimIdentifier
    • 4d8bf481 - EventData: adapt SimSourceLink to Fatras Hit
    • c2719800 - EventData: more SimSourceLink fixes
    • be9b2bbb - EventData: adapt truth track to SimSourceLink and Fatras Hit
    • 534486de - adapt validation tools to new data types
    • 23833d3d - Detectors: remove obsolete bin members registration
    • ce87d418 - Detectors: use correct identifier types
    • acf7770b - Io/Csv: update particle reader/writer to new edm
    • 8dec04e2 - Io/Csv: update cluster reader/writer to new edm
    • 5d1da7d0 - Io/Perf: update to new edm
    • 8d8836d5 - Io/Root: update particle writer to new edm
    • c13842a5 - Io/Root: update sim hit writer to new edm
    • 3e961e0e - Io/Root: update planar cluster writer to new edm
    • bbd0e963 - Io/Root: update trajectory writer to new edm
    • 04d51656 - Io/Root: update vertex and track to new edm and streamline
    • e5da8a07 - Generators: update event generator to new edm
    • 9ddadb05 - Generators: remove unused header include
    • 50aa7f09 - Generators: use particle data for parametric generator
    • 5eca1787 - FlattenEvent: update flatten event to new edm
    • 46526970 - ParticleSelector: update particle selector to new edm
    • dca7f9a3 - ParticleSelector: extend config and add debug output
    • 2c7581ad - ParticleSelector: add user options
    • 9caac971 - ParticleGun: remove explicit charge/mass options
    • 2a51c355 - Pythia8: update generator to new edm
    • 04cdc256 - Pythia8: use consistent option naming
    • ac2ede20 - Pythia8: update config variable names
    • ab17d7ce - Printers: update to new edm and extend particle info
    • fd376f52 - TruthTracking: fix includes and final usage
    • 4a971067 - TruthTracking: update particle smearing to new edm
    • 77b08c6a - TruthTracking: adopt new edm
    • 8124587e - Vertexing: adopt new edm
    • e8033518 - update vertexing examples
    • 2abb34cf - Fitting: adopt new edm and some core changes
    • 614f6570 - Fatras: rewrite algorithm based on updated edm/interface
    • 8cba30a8 - EventData: add hit group-by helper
    • b0f4482a - Digitization: add digitization algorithm to new edm
    • 0f70e4ae - Digitization: update hit smearing to new edm
    • 0f59fbff - concentrate Fatras-only files and clean up
    • 67125a98 - add missing geometry in truth tracking tool
    • 950c4378 - update HepMC3 to new edm
    • ca02b9b5 - update ci jobs

    Compare with previous version

  • Moritz Kiehn changed the description

    changed the description

  • assigned to @xai

  • Author Maintainer

    @xai I added you as a reviewer. I'll leave the WIP setting for now since there is a bug in a CI job that I still need to investigate. The MR is feature-complete. I expect no more changes except bug-fixes. Feel free to start reviewing.

    @asalzbur The TGeo fatras jobs failed and it looks too me that it tries to load a root geometry file. If so, where could I find it?

  • Xiaocong Ai
  • Xiaocong Ai
  • Xiaocong Ai
  • Xiaocong Ai
  • Xiaocong Ai
  • @msmk , I have just minor comments. One more thing, perhaps it's because I missed some recent MRs, but have we already resolved the issue in terms of writing out (all) surface sequence for using DirectNavigator here or somewhere else?

  • Xiaocong Ai
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading