File indexing completed on 2024-04-06 11:57:29
0001 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayModel_h
0002 #define Alignment_TwoBodyDecay_TwoBodyDecayModel_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecay.h"
0014
0015 class TwoBodyDecayModel {
0016 public:
0017 TwoBodyDecayModel(double mPrimary = 91.1876, double mSecondary = 0.105658);
0018 ~TwoBodyDecayModel();
0019
0020
0021
0022
0023 AlgebraicMatrix rotationMatrix(double px, double py, double pz);
0024
0025
0026
0027
0028 AlgebraicMatrix curvilinearToCartesianJacobian(double rho, double theta, double phi, double zMagField);
0029
0030
0031
0032
0033 AlgebraicMatrix curvilinearToCartesianJacobian(const AlgebraicVector &curv, double zMagField);
0034
0035
0036
0037
0038 AlgebraicVector convertCurvilinearToCartesian(const AlgebraicVector &curv, double zMagField);
0039
0040
0041
0042 const std::pair<AlgebraicVector, AlgebraicVector> cartesianSecondaryMomenta(const AlgebraicVector ¶m);
0043
0044
0045
0046 const std::pair<AlgebraicVector, AlgebraicVector> cartesianSecondaryMomenta(const TwoBodyDecay &tbd);
0047
0048
0049
0050 const std::pair<AlgebraicVector, AlgebraicVector> cartesianSecondaryMomenta(const TwoBodyDecayParameters &tbdparam);
0051
0052 private:
0053 double thePrimaryMass;
0054 double theSecondaryMass;
0055 };
0056
0057 #endif