You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a3af20d
Browse filesBrowse the repository at this point in the historyBrowse files
This adds the --isMT mode, in which one sim process runs Geant4 with one transport thread per sim worker.
- Each Geant4 worker thread asks the primary server for its sub-events and sends its hits to the merger, as a worker process does.
- The VMC application is cloned per thread, with its own stack, random generator, external decayer and data channel.
- The threads share one request channel to the primary server.
- Their data channels are closed before the process exits, so that the merger receives all queued hits.
- A worker leaves its event loop once the server has no more work, after an empty event.
- Detector clones get their own hit buffers, and the worker volume map points at the worker's own modules.
- The media energy cuts and the worker-only Geant4 commands are applied on the worker threads.
- The cached magnetic field values are invalidated at the start of each track.
- ShmManager takes a mutex for its allocations, and the single sim process occupies the whole shared region.
- 16 detectors are enabled for MT; EMCAL, HMPID, ZDC, FOCAL, FT0 and FV0 needed fixes to their copy constructor or destructor.
- --isMT stops with an error for other engines, for Geant4 built without multithreading, for VecGeom navigation, and for detectors not yet enabled for it.
https://its.cern.ch/jira/browse/O2-7305vmc-project/geant4_vmc#92
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments