Friendly coding suggestions:
Here are some comments I have to make while briefly going through the code.
- ROOT's TObject is not really needed anymore.
- Avoid using ROOT specific-stuff unless it is really needed. Example from my experience,
TRef
is usually more of a headache than helpful. - From my other issue about using
#include
quotes : https://stackoverflow.com/a/3162067/13377601 - Avoid unnecessary inheritance. Example:
TObject -> TransientParticle -> {ChargedParticle, OpticalPhoton}
. I do not see any polymorphism in the interface so there is no need for inheritance at all here. - The code is hard to read with all the pre-processor defines and logic.
- The
IRT::Solve
member function should (ideally) beconst
.