...
The API for the analysis should be as high-level as possible. I would therefore very much appreciate if classes for the vectors and shapes and track parameters could be added. No, they don't need Draw(), Rotate(), Pt() and Streamer components
The Track Interface
getTrackParameters() should return a small class that contains accessors by name.
You might consider this nitpicking, but there should be a naming convention. The function name getTrackParameters is unnecessarily long. Of course it returns Track Parameters. It's a Track Interface. This redundancy does not clarify the code and should therefore be removed. track.parameters() is sufficient in my view. Of course, if you give your variables names like fltTrkLstArray or similar obscurities, get Track Parameters would save you. But then you ought to be shot anyway.
There ought to be also a consistent use of get XXX() vs xxx()
getReferencePoint() should return a SpacePoint.
I could actually not find a class that implements the Track interface. event.getTracks clearly returns a List<Track> however. Which Track class is one supposed to use ?
Same thing goes for the Particles. I had a hard time so far finding an implementation.
Status codes
The Java language was awarded such a nice enum class. Is there really a performance issue in using ints for status bits or types ?
...