void HHV4Vector::Rotate(const HHV4Vector & q) { Double_t ex, ey, ez, en; Double_t a, b, c, d, px1, py1, pz1, px2, py2, pz2, px3, py3, pz3; px1 = Px(); py1 = Py(); pz1 = Pz(); ex = q.Px(); ey = q.Py(); ez = q.Pz(); en = sqrt(ex * ex + ey * ey + ez * ez); ex = ex / en; ey = ey / en; ez = ez / en; // cout << "Rotate e: " << ex << " " << ey << " " << ez << endl; a = ez; b = sqrt(1. - a * a); c = ex / b; d = -ey / b; px2 = a * px1 + b * pz1; // rotation around y-axis py2 = py1; pz2 = -b * px1 + a * pz1; // cout << "Rotate p2: " << px2 << " " << py2 << " " << pz2 << endl; px3 = c * px2 + d * py2; // rotation around z-axis py3 = -d * px2 + c * py2; pz3 = pz2; // cout << "Rotate p3: " << px3 << " " << py3 << " " << pz3 << endl; SetPxPyPzE(px3, py3, pz3, E()); }
void HHV4Vector::Subtract(const HHV4Vector & q1, const HHV4Vector & q2) { Double_t Etemp = q1.E() - q2.E(); Double_t Pxtemp = q1.Px() - q2.Px(); Double_t Pytemp = q1.Py() - q2.Py(); Double_t Pztemp = q1.Pz() - q2.Pz(); SetPxPyPzE(Pxtemp, Pytemp, Pztemp, Etemp); }
HHKinFit2::HHLorentzVector& HHKinFit2::HHLorentzVector::operator=(const HHLorentzVector& other) { SetPxPyPzE(other.Px(), other.Py(), other.Pz(), other.E() ); return *this; }