I guess this could be an intresting issue for public discussion:
Yves Schutz writes:
>
> Does a class "Lorentz vector" also exist ?
>
To the moment ROOT doesn't include classes for physics-oriented
(2D-, 3D- and Lorentz) vectors. I'd consider it as an important piece
which is still missing. One could think about several possibilities of
how to fill this "hole":
- recently Stefan Kluth reported on his success in generating rootcint
dictionaries for CLHEP classes. (Great job, Stefan!)
In principle, one could take CLHEP classes as a starting point. The major
problem with CLHEP as I see it is that currently it doesn't seem to be
supported.
Moreover, physics vectors seem to be the least developed part of CLHEP, the
classes are missing quite a few very useful methods and it is not clear
what to do if we need these methods to be added:
- to ask somebody (whom?) to add missing methods (like pseudorapidity of
a 3-vector or delta(phi) between 2 2(3)-vectors) to CLHEP?
- to branch ROOT flavor of CLHEP ?
And definitely one'd like physics vectors to "know" about ROOT's TMatrix
class, whereas CLHEP vectors do not deal with ROOT TMatrices. So it seems
that even if we start from CLHEP, ROOT "flavor" of CLHEP will immediately
evolve into an independent package and it is necessary to understand all the
consequences of this step.
- an alternative approach could be to start from another, different from CLHEP,
physics vectors package (preferably - non-templated) and iterate
on it to make it useful for everybody. This seems to be a relatively modest
job - for example, I'm using a simple package of myself which is pretty much
complete with the exception of several methods like Lorentz rotations / boosts
which is trivial to add. I implemented it for the only reason that CLHEP
classes didn't have methods I needed ...
I'd also expect that many other people have similar packages - it is much
more easy to implement them than to wait for somebody to do it...
Anyway, as we already have a community of people actively using ROOT, I believe
that
a) it is clear that we need physics vectors classes to be added to ROOT and
b) that it makes a lot of sense to discuss what exactly we want from these
classes before going into implementation - here we facing a situation where
it is more difficult to decide on what is the right thing to do than to
implement it.
Any opinions? - Pasha