Rene Brun
Pasha Murat wrote:
>
> Hi Rooters,
> I finally got to looking at the updated TLorentzVector class and I have
> a few quick comments:
>
> - it would be very nice to have a TVector3::Pt() and TLorentzVector::Pt()
> methods - the name `Perp()' is not good enough for particle physics...
> Pt() was available in the previous version, why was it abandoned?
>
> - it would also be very nice if calculation of particle Pt would not require
> construction of a new 3-vector which `Perp' method does right now:
>
> inline Double_t TLorentzVector::Perp2() const { return TVector3(X(),Y(),Z()).Perp2(); }
>
> - the same holds for all the rotations, for example in the present
> implementation RotateUz looks as follows:
>
> inline void TLorentzVector::RotateUz(TVector3 &v) {
> TVector3 p( Vect() );
> p.RotateUz(v);
> SetVect( p );
> }
>
> so one needs to call a constructor for `p', then to rotate new vector,
> then to do backward assignment from `p' to `this' and finally to
> destruct `p'...
>
> - it looks like all these complications arize from the single design choice
> where LorentzVector doesn't know anything about its 3-vector. May be we
> need to discuss pro's and contra's of this design. It seems to me that
> having TLorentzVector inheriting from TVector3 simplifies many methods
> and improves their efficiency with respect to the current implementation.
>
> What do you think ? - Best, Pasha
>