Switch to updated Fatras from Core
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 boundSimIdentifier
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)
Merge request reports
Activity
added Component - Fatras Component - Framework Improvement labels
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
Toggle commit list-
3a73d79f...ad9b4469 - 9 commits from branch
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
Toggle commit listadded 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
Toggle commit listadded 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
Toggle commit listassigned to @xai
@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?
- Resolved by Xiaocong Ai
- Resolved by Xiaocong Ai
- Resolved by Xiaocong Ai
- Resolved by Xiaocong Ai
- Resolved by 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?- Resolved by Xiaocong Ai