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

From: Nick van Eijndhoven (Nick@phys.uu.nl)
Date: Mon Aug 10 1998 - 15:55:45 MEST


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
*----------------------------------------------------------------------*



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:36 MET