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
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:35 MET