I might be able to work on this if you could provide me with a small amount of help. Do you know if it's possible to directly get the overall bounding box for the specified geometry? If so, do you think it would be reasonable to use a sphere big enough to encompass the bounding box of the geometry?
The other question I had was why there are two radii. I looked into the GAtmoFlux class for a bit but couldn't determine what it is. Is the flux generation surface an ellipsoid?
Sorry, was away at a workshop. Added 2 new command line arguments in gevgen_atmo (in the master). They are: --flux-ray-generation-surface-distance and --flux-ray-generation-surface-radius. They allow you to set the parameters of the flux ray generation surface. No the surface is not an ellipsoid. For a given zenith \theta and azimuthal angle \phi, flux rays are produced within the area of a circle of radius Rt, which is tangetial to a point P on a sphere of radius Rl, centred at the detector. The point P has polar coordinates \theta and \phi. You specify Rt and Rl. Th eatteched plot might help understanding the setup
If you have some coding skills and want to contribute, I would like to invite you to help us with improving the efficiency of gevgen_atmo. It uses a full-blown geometry navigation driver (that we use for more complex simulation cases with accelerator based neutrinos close to the source) but this is an overkill for atmospheric neutrinos since all parts of the detector see the same beam. Some simplifications could make gengen_atmo run much faster.