CMS 3D CMS Logo

TwoBodyDecayDerivatives.h
Go to the documentation of this file.
1 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayDerivatives_h
2 #define Alignment_TwoBodyDecay_TwoBodyDecayDerivatives_h
3 
5 
15 public:
16  enum { dimension = 6 };
17 
18  enum DerivativeParameterName { px = 1, py = 2, pz = 3, theta = 4, phi = 5, mass = 6 };
19 
20  TwoBodyDecayDerivatives(double mPrimary = 91.1876, double mSecondary = 0.105658);
22 
26  const std::pair<AlgebraicMatrix, AlgebraicMatrix> derivatives(const TwoBodyDecay &tbd) const;
27 
31  const std::pair<AlgebraicMatrix, AlgebraicMatrix> derivatives(const TwoBodyDecayParameters &param) const;
32 
36  const std::pair<AlgebraicMatrix, AlgebraicMatrix> selectedDerivatives(const TwoBodyDecay &tbd,
37  const std::vector<bool> &selector) const;
38 
42  const std::pair<AlgebraicMatrix, AlgebraicMatrix> selectedDerivatives(const TwoBodyDecayParameters &param,
43  const std::vector<bool> &selector) const;
44 
45 private:
49  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdpx(const TwoBodyDecayParameters &param) const;
50 
54  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdpy(const TwoBodyDecayParameters &param) const;
55 
59  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdpz(const TwoBodyDecayParameters &param) const;
60 
64  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdtheta(const TwoBodyDecayParameters &param) const;
65 
69  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdphi(const TwoBodyDecayParameters &param) const;
70 
74  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdm(const TwoBodyDecayParameters &param) const;
75 
76  const std::pair<AlgebraicMatrix, AlgebraicMatrix> dqsdzi(const TwoBodyDecayParameters &param,
77  const DerivativeParameterName &i) const;
78 
81 };
82 
83 #endif
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpz(const TwoBodyDecayParameters &param) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpy(const TwoBodyDecayParameters &param) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdphi(const TwoBodyDecayParameters &param) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdtheta(const TwoBodyDecayParameters &param) const
TwoBodyDecayDerivatives(double mPrimary=91.1876, double mSecondary=0.105658)
const std::pair< AlgebraicMatrix, AlgebraicMatrix > selectedDerivatives(const TwoBodyDecay &tbd, const std::vector< bool > &selector) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdm(const TwoBodyDecayParameters &param) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpx(const TwoBodyDecayParameters &param) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdzi(const TwoBodyDecayParameters &param, const DerivativeParameterName &i) const
const std::pair< AlgebraicMatrix, AlgebraicMatrix > derivatives(const TwoBodyDecay &tbd) const