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

# User Rev Content
1 econte 1.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