00001 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayModel_h 00002 #define Alignment_TwoBodyDecay_TwoBodyDecayModel_h 00003 00004 00013 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecay.h" 00014 00015 00016 class TwoBodyDecayModel 00017 { 00018 public: 00019 00020 TwoBodyDecayModel( double mPrimary = 91.1876, double mSecondary = 0.105658 ); 00021 ~TwoBodyDecayModel(); 00022 00025 AlgebraicMatrix rotationMatrix( double px, double py, double pz ); 00026 00030 AlgebraicMatrix curvilinearToCartesianJacobian( double rho, double theta, double phi, double zMagField ); 00031 00035 AlgebraicMatrix curvilinearToCartesianJacobian( AlgebraicVector curv, double zMagField ); 00036 00040 AlgebraicVector convertCurvilinearToCartesian( AlgebraicVector curv, double zMagField ); 00041 00044 const std::pair< AlgebraicVector, AlgebraicVector > cartesianSecondaryMomenta( const AlgebraicVector & param ); 00045 00048 const std::pair< AlgebraicVector, AlgebraicVector > cartesianSecondaryMomenta( const TwoBodyDecay & tbd ); 00049 00052 const std::pair< AlgebraicVector, AlgebraicVector > cartesianSecondaryMomenta( const TwoBodyDecayParameters & tbdparam ); 00053 00054 private: 00055 00056 double thePrimaryMass; 00057 double theSecondaryMass; 00058 00059 }; 00060 00061 00062 #endif