ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/Alignment/TwoBodyDecay/interface/TwoBodyDecayDerivatives.h
Revision: 1.1
Committed: Fri Nov 25 17:10:51 2011 UTC (13 years, 5 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: TBD2011, TBD_2011, HEAD
Log Message:
TwoBodyDecay modif

File Contents

# Content
1 #ifndef Alignment_TwoBodyDecay_TwoBodyDecayDerivatives_h
2 #define Alignment_TwoBodyDecay_TwoBodyDecayDerivatives_h
3
4 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecay.h"
5
6 /** /class TwoBodyDecayDerivatives
7 *
8 * This class provides the derivatives matrices need by the class TwoBodyDecayEstimator.
9 *
10 * /author Edmund Widl
11 */
12
13
14 class TwoBodyDecayDerivatives
15 {
16
17 public:
18
19 enum { dimension = 6 };
20
21 enum DerivativeParameterName { px = 1, py = 2, pz = 3, theta = 4, phi = 5, mass = 6 };
22
23 TwoBodyDecayDerivatives( double mPrimary = 91.1876, double mSecondary = 0.105658 );
24 ~TwoBodyDecayDerivatives();
25
26 /**Derivatives of the lab frame momenta (in cartesian representation) of the secondaries
27 * w.r.t. z=(px,py,pz,theta,phi,m).
28 */
29 const std::pair< AlgebraicMatrix, AlgebraicMatrix > derivatives( const TwoBodyDecay & tbd ) const;
30
31 /**Derivatives of the lab frame momenta (in cartesian representation) of the secondaries
32 * w.r.t. z=(px,py,pz,theta,phi,m).
33 */
34 const std::pair< AlgebraicMatrix, AlgebraicMatrix > derivatives( const TwoBodyDecayParameters & param ) const;
35
36 /**Derivatives of the lab frame momenta (in cartesian representation) of the secondaries
37 * w.r.t. the selected parameters.
38 */
39 const std::pair< AlgebraicMatrix, AlgebraicMatrix > selectedDerivatives( const TwoBodyDecay & tbd,
40 const std::vector< bool > & selector ) const;
41
42 /**Derivatives of the lab frame momenta (in cartesian representation) of the secondaries
43 * w.r.t. the selected parameters.
44 */
45 const std::pair< AlgebraicMatrix, AlgebraicMatrix > selectedDerivatives( const TwoBodyDecayParameters & param,
46 const std::vector< bool > & selector ) const;
47
48 private:
49
50 /**Derivatives of the lab frame momenta of the secondaries w.r.t. px of the primary particle.
51 */
52 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpx( const TwoBodyDecayParameters & param ) const;
53
54 /**Derivatives of the lab frame momenta of the secondaries w.r.t. py of the primary particle.
55 */
56 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpy( const TwoBodyDecayParameters & param ) const;
57
58 /**Derivatives of the lab frame momenta of the secondaries w.r.t. pz of the primary particle.
59 */
60 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdpz( const TwoBodyDecayParameters & param ) const;
61
62 /**Derivatives of the lab frame momenta of the secondaries w.r.t. the decay angle theta in the primary's rest frame.
63 */
64 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdtheta( const TwoBodyDecayParameters & param ) const;
65
66 /**Derivatives of the lab frame momenta of the secondaries w.r.t. the decay angle phi in the primary's rest frame.
67 */
68 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdphi( const TwoBodyDecayParameters & param ) const;
69
70 /**Derivatives of the lab frame momenta of the secondaries w.r.t. the mass of the primary
71 */
72 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdm( const TwoBodyDecayParameters & param ) const;
73
74 const std::pair< AlgebraicMatrix, AlgebraicMatrix > dqsdzi( const TwoBodyDecayParameters & param, const DerivativeParameterName & i ) const;
75
76 double thePrimaryMass;
77 double theSecondaryMass;
78
79 };
80
81 #endif