MINT2
ZTgperp.h
Go to the documentation of this file.
1 #ifndef ZEMACH_GMUNU_PERPENDICULAR_HH
2 #define ZEMACH_GMUNU_PERPENDICULAR_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:13 GMT
5 
6 #include "TLorentzVector.h"
8 #include <iostream>
9 
10 class ZTgperp : public SymmLorentzMatrix{
11  public:
12  ZTgperp(const TLorentzVector& p, double mR_in = -9999){
13  // the "true" gmunu_perp should be with u = p/sqrt(p^2)
14  // however, often we use instead u = p/m_R where m_R is
15  // the "nominal" mass (at the peak) rather than
16  // the (off-shell) mass of the resonance.
17  // m_R < 0 uses sqrt(p^2), otherwise it's m_R
18 
19  double mR2 = (mR_in < 0 ? p.M2() : mR_in*mR_in);
20  SymmLorentzMatrix uu(p);
21  uu /= mR2;
22 
23  *this = (SymmLorentzMatrix::gmunu() - uu);
24  }
25 
27  for(int i=0; i<4; i++) _v[i] = other.v(i);
28  return *this;
29  }
30 
31 };
32 
33 #endif
34 //
ZTgperp & operator=(const SymmLorentzMatrix &other)
Definition: ZTgperp.h:26
TLorentzVector _v[4]
Definition: LorentzMatrix.h:9
static const SymmLorentzMatrix & gmunu()
const TLorentzVector & v(int i) const
Definition: LorentzMatrix.h:19
ZTgperp(const TLorentzVector &p, double mR_in=-9999)
Definition: ZTgperp.h:12