9 #ifndef ThePEG_Lorentz5Vector_H
10 #define ThePEG_Lorentz5Vector_H
15 #include "Lorentz5Vector.fh"
16 #include "ThePEG/Utilities/Maths.h"
17 #include "ThePEG/Utilities/Direction.h"
18 #include "ThePEG/Utilities/UnitIO.h"
19 #include "LorentzRotation.h"
23 template <
typename Value>
47 typedef typename BinaryOpTraits<Value,Value>::MulT
Value2;
54 Value z()
const {
return LorentzVector<Value>::z(); }
55 Value t()
const {
return LorentzVector<Value>::t(); }
202 t()*t() -
mass2())));
273 template <
typename OStream,
typename T,
typename UT>
280 template <
typename IStream,
typename T,
typename UT>
288 template <
typename T,
typename U>
289 struct BinaryOpTraits;
294 template <
typename T>
307 template <
typename U>
317 template <
typename T,
typename U>
330 template <
typename T,
typename U>
340 template <
typename T,
typename U>
344 typedef typename BinaryOpTraits<T,U>::MulT
MulT;
350 template <
typename T,
typename U>
354 typedef typename BinaryOpTraits<T,U>::MulT
MulT;
360 template <
typename T,
typename U>
364 typedef typename BinaryOpTraits<T,U>::MulT
MulT;
369 template <
typename ValueA,
typename ValueB>
370 inline typename BinaryOpTraits<ValueA,ValueB>::MulT
375 template <
typename ValueA,
typename ValueB>
376 inline typename BinaryOpTraits<ValueA,ValueB>::MulT
377 operator*(
const LorentzVector<ValueA> & a,
const Lorentz5Vector<ValueB> & b) {
381 template <
typename ValueA,
typename ValueB>
382 inline typename BinaryOpTraits<ValueA,ValueB>::MulT
383 operator*(
const Lorentz5Vector<ValueA> & a,
const LorentzVector<ValueB> & b) {
387 template <
typename Value>
388 inline typename BinaryOpTraits<Value,Value>::MulT
389 operator*(
const Lorentz5Vector<Value> & a,
const Lorentz5Vector<Value> & b) {