CMS 3D CMS Logo

helicityAngle.cc
Go to the documentation of this file.
1 // $Id: helicityAngle.cc,v 1.14 2007/12/11 08:42:53 hegner Exp $
5 #include <Math/VectorUtil.h>
6 using namespace reco;
7 using namespace std;
8 
9 double helicityAngle( const reco::Candidate & mother, const reco::Candidate & daughter) {
10  Particle::Vector boost = mother.p4().BoostToCM();
11  Particle::LorentzVector pdau = ROOT::Math::VectorUtil::boost( daughter.p4(), boost );
12  double h = ROOT::Math::VectorUtil::Angle( pdau, boost );
13  if ( h > M_PI / 2 ) h = M_PI - h;
14  return h;
15 }
16 
17 
18 double helicityAngle( const Candidate & cand ) {
19  assert( cand.numberOfDaughters() == 2 );
20  return helicityAngle( cand, *cand.daughter(0) );
21 }
22 
23 
Definition: CLHEP.h:16
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double helicityAngle(const reco::Candidate &mother, const reco::Candidate &daughter)
return the helicity angle for two particles.
Definition: helicityAngle.cc:9
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
#define M_PI
fixed size matrix
math::XYZVector Vector
point in the space
Definition: Particle.h:27
virtual size_type numberOfDaughters() const =0
number of daughters
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21