00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of the EvtGen package developed jointly 00005 // for the BaBar and CLEO collaborations. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/COPYRIGHT 00009 // Copyright (C) 1998 Caltech, UCSB 00010 // 00011 // Module: EvtGen/EvtKine.hh 00012 // 00013 // Description:routines to calc. decay angles. 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD September 25, 1996 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 00021 #ifndef EVTKINE_HH 00022 #define EVTKINE_HH 00023 00024 class EvtVector4R; 00025 class EvtComplex; 00026 00027 double EvtDecayAngle(const EvtVector4R&, const EvtVector4R&, 00028 const EvtVector4R&); 00029 00030 double EvtDecayAngleChi(const EvtVector4R&, const EvtVector4R&, 00031 const EvtVector4R&, const EvtVector4R&, 00032 const EvtVector4R& ); 00033 00034 // 00035 // This routine calculates the cosine of the angle between 00036 // the normal of the decay plane and the flight direction of particle q 00037 // in the parent frame. 00038 // 00039 double EvtDecayPlaneNormalAngle(const EvtVector4R& p,const EvtVector4R& q, 00040 const EvtVector4R& d1,const EvtVector4R& d2); 00041 00042 00043 00044 // Added by AJB 00045 // 00046 // Calculate phi (between 0 and 2 pi) of the daughter given the 4-momentum of 00047 // the grandparent, parent, resonance and the daughter. g, p, q and d need to 00048 // be in the same rest frame. Note that for the first level of the tree there 00049 // is no grandparent and thus <0,0,0,1> should be passed in for g. When there 00050 // is no parent the angles need to be calculated by simply by calculating polar 00051 // and azymuthal angles in the rest frame of the resonance (since this will 00052 // generally be the root particle and is generally at rest the polar and 00053 // azymuthal angels can simply be calculated. 00054 // 00055 double EvtDecayAnglePhi( const EvtVector4R& g, const EvtVector4R& p, 00056 const EvtVector4R& q, const EvtVector4R& d ); 00057 00058 // Wigner big-D function in Jackson convention 00059 // 00060 // XXX NOTE XXX 00061 // - EvtDecayAngle returns the cos \theta and EvtdFunction requires theta 00062 // - In EvtdFunction j m1 and m2 are really 2 * j, 2 * m1, 2*m2 to deal with 00063 // spin 1/2 particles 00064 // 00065 EvtComplex wignerD( int j, int m1, int m2, double phi, double theta, 00066 double gamma ); 00067 00068 00069 #endif 00070 00071 00072 00073 00074 00075 00076