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,
TRefis usually more of a headache than helpful. - From my other issue about using
#includequotes : 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::Solvemember function should (ideally) beconst.