hep icon indicating copy to clipboard operation
hep copied to clipboard

user stories: 3D geometry description for detectors

Open decibelcooper opened this issue 7 years ago • 4 comments

@sbinet I'm not sure if this is exactly what you meant by filing an issue with "user stories". Please correct me if I'm doing it wrong, for there are more issues to come.

For the purpose of reconstructing events in tracking and calorimetry subsystems natively in go, I have need of a library capable of holding descriptions of a set of 3D volumes that make up a detector geometry in memory and providing efficient methods for calculating

  • whether or not points exist within volumes,
  • intersection of parameterized trajectories (straight line + helix?) with volume surfaces.

One should also be able to...

  • assign lineage to volumes
  • assign both translations and rotations to volumes within the parent volume.
  • assign volumes to assemblies
  • associate material properties with volumes (containing e.g. density, composition, radiation length, etc)

Volumes should be constructed with one of a set of common parameterized shapes. In particular, I have need of (this is a minimal list, more would be useful later on)...

  • Right circular cylinders
  • Right circular conic frusta
  • cuboids
  • extruded trapezoids (or perhaps rectangular frusta?)
  • boolean unions (this || that)
  • boolean intersections (this && that)
  • boolean subtractions (this && !that)

decibelcooper avatar Nov 27 '17 19:11 decibelcooper

Thanks. That's indeed what I meant.

sbinet avatar Nov 27 '17 21:11 sbinet

@aphecetche I was looking at your pigiron repo, and it seems to me that now it gets rid of the CGo scaffolding, the work I am actually pouring into go-hep/geo/gdml might be of interest for you/us :)

what do you think?

sbinet avatar Apr 10 '18 13:04 sbinet

@sbinet well I got the impression that GDML was meant to describe 3D geometries, right ? If that's the case, that's one extra dimension for my needs ;-) The core of my needs (as far as 2D "geometry" is concerned anyway) is btw rather modest : I mainly need to be able to compute the union of rectilinear polygons... Or maybe I'm just misunderstanding what GDML is...

aphecetche avatar Apr 10 '18 14:04 aphecetche

yeah... (and, of course, you're right: I am slowly plowing through pigiron... Simpsons' references? anybody?)

in that case: github.com/golang/geo/r2

sbinet avatar Apr 10 '18 15:04 sbinet