new ROOT LorentzVector class

From: Pasha Murat (murat@cdfsga.fnal.gov)
Date: Thu Jul 08 1999 - 05:05:56 MEST


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