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 60e8cae
Browse filesBrowse the repository at this point in the historyBrowse files
authored
o2-sim: VecGeom navigation mode for Geant4 (#15865)
* Set up the VecGeom BVH navigator and safety estimators for every volume
This lets GeometryManager set up VecGeom for Geant4 navigation as well as for the material budget.
- buildVecGeomGeometry() converts once and takes the assembly flattening as a parameter; the
material budget keeps flattening.
- With a VecGeom that has BVHNavigatorV, volumes with more than two daughters get the BVH navigator
and level locator, and every volume gets an explicit safety estimator.
- Without it the VecGeom v2 setup is unchanged.
https://gitlab.cern.ch/VecGeom/VecGeom/-/merge_requests/1547
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add a VecGeom navigation mode to the Geant4 engine
This adds G4.navmode=kVecGeom, in which Geant4 answers every navigation query from VecGeom.
- The geometry, materials and touchables stay the ones g4root builds from TGeo.
- VecGeomG4Map pairs each VecGeom placement with the chain of g4root volumes it stands for, so
volume ids, copy numbers and CurrentVolOffID are unchanged.
- VecGeomG4Navigator relocates at the boundary locate, with the volume just left blocked for the
next step and the point pushed across the face by a small depth, as G4VecGeomNav's
TG4VecGeomNavigator does.
- G4.vecgeomCheckRays, vecgeomCheckLocation and vecgeomCheckVolumes compare VecGeom with TGeo
before transport.
- It is built only when TGeo2VecGeom and a VecGeom with BVHNavigatorV are found.
https://gitlab.cern.ch/VecGeom/g4vecgeomnav/-/merge_requests/25
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Add a lighter VecGeom navigator that adopts the propagated state
This adds G4.vecgeomNavigator=kPropagated, a second VecGeom navigator kept for comparison.
- It adopts the state VecGeom propagated during the step instead of relocating at the boundary.
- It returns zero safety for the step after a crossing and nudges stuck steps forward.
- The default navigator becomes G4.vecgeomNavigator=kRelocating.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Block the exited volume only as Geant4 does
This fixes tracks entering the volume they just left without seeing its boundary.
- Both VecGeom navigators kept the volume just left blocked for every following step, whatever the direction.
- A track turned back into it at the exit point, as by multiple scattering, crossed it unseen in the mother.
- In the hollow RB24 copper tubes this let shower electrons pass the wall and gave about 10 % more FDD-A hits.
- The volume is now blocked only in the first step after the exit, and only while the direction points away
from it, as in G4NormalNavigation. This follows the same fix in G4VecGeomNav.
https://gitlab.cern.ch/swenzel/g4vecgeomnav/-/tree/fix/block-and-reflection
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Please consider the following formatting changes
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
0 commit comments