Re: Physics vectors ( was Re: vector classes predefined?)

Nick van Eijndhoven (Nick@phys.uu.nl)
Mon, 10 Aug 1998 15:55:45 +0200


Pasha Murat wrote:
>
>
> Hi Rooters,
>
> 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

Hi Pasha,
Indeed people have already started to make their own Lorentz boost
facilities.
The approach I used in my physics analysis (and which I introduced
into the Alice reconstruction prototypes RALICE) was simply to make
a class Lorbo. Via one of the member functions you can set the
Lorentz boost parameters and another member function you can feed
just any 4-element array (representing a 4-vector) which can then
be boosted.
Example :

Lorbo q;
float beta[3]={0,0,0.1}; // boost of 0.1c in z-direction
float p[4]={20,1,2,1}; // 4-momentum (E,px,py,pz) in Gev units
float pprime[4];
q.Boost(p,pprime); // pprime now contains the bossted 4-momentum
// q.Inverse would do the inverse boost

In this way there is no need to introduce a special Lorentz vector;
one only has to stick to the component convention of the 4-vector
ang of the metric g_mu_nu. For that I used the convention as in
"Classical Electrodynamics" by J.D.Jackson.
For Alice we have also introduced a direct treatment of our
Tracks and Jets, but the procedure is actually the same.
Hope this info will be of any use to you.

-- 

Cheers,

_/_/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/

*----------------------------------------------------------------------* Dr. Nick van Eijndhoven Department of Subatomic Physics email : nick@phys.uu.nl Utrecht University / NIKHEF tel. +31-30-2532331 (direct) P.O. Box 80.000 tel. +31-30-2531492 (secr.) NL-3508 TA Utrecht fax. +31-30-2518689 The Netherlands WWW : http://www.phys.uu.nl/~nick Office : Ornstein lab. 172 ---------------------------------------------------------------------- tel. +41-22-7679751 (direct) CERN PPE Division / ALICE exp. tel. +41-22-7675857 (secr.) CH-1211 Geneva 23 fax. +41-22-7679480 Switzerland CERN beep : 13+7294 Office : B 160 1-012 *----------------------------------------------------------------------*