1 |
#ifndef Alignment_TwoBodyDecay_TwoBodyDecayParameters_h
|
2 |
#define Alignment_TwoBodyDecay_TwoBodyDecayParameters_h
|
3 |
|
4 |
/** /class TwoBodyDecayParameters
|
5 |
*
|
6 |
* This class provides the definition and a container for the parameters
|
7 |
* describing a two-body decay.
|
8 |
*
|
9 |
* /author Edmund Widl
|
10 |
*/
|
11 |
|
12 |
#include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
|
13 |
|
14 |
|
15 |
class TwoBodyDecayParameters
|
16 |
{
|
17 |
|
18 |
public:
|
19 |
|
20 |
/// Define order of parameters
|
21 |
enum ParameterName { x = 0, y = 1, z = 2, px = 3, py = 4, pz = 5, theta = 6, phi = 7, mass = 8 };
|
22 |
|
23 |
enum { dimension = 9 };
|
24 |
|
25 |
TwoBodyDecayParameters( void ) :
|
26 |
theParameters( AlgebraicVector() ), theCovariance( AlgebraicSymMatrix() ) {}
|
27 |
|
28 |
TwoBodyDecayParameters( const AlgebraicVector & param, const AlgebraicSymMatrix & cov ) :
|
29 |
theParameters( param ), theCovariance( cov ) {}
|
30 |
|
31 |
TwoBodyDecayParameters( AlgebraicVector param ) :
|
32 |
theParameters( param ), theCovariance( AlgebraicSymMatrix() ) {}
|
33 |
|
34 |
TwoBodyDecayParameters( const TwoBodyDecayParameters & other ) :
|
35 |
theParameters( other.parameters() ), theCovariance( other.covariance() ) {}
|
36 |
|
37 |
~TwoBodyDecayParameters( void ) {}
|
38 |
|
39 |
/// Get decay parameters.
|
40 |
inline const AlgebraicVector & parameters( void ) const { return theParameters; }
|
41 |
|
42 |
/// Get error matrix.
|
43 |
inline const AlgebraicSymMatrix & covariance( void ) const { return theCovariance; }
|
44 |
|
45 |
/// Get specified decay parameter.
|
46 |
inline const double operator[]( ParameterName name ) const { return theParameters[name]; }
|
47 |
|
48 |
/// Get specified decay parameter.
|
49 |
inline const double operator()( ParameterName name ) const { return theParameters[name]; }
|
50 |
|
51 |
/// Get specified range of decay parameters.
|
52 |
inline const AlgebraicVector sub( ParameterName first, ParameterName last ) const { return theParameters.sub( first+1, last+1 ); }
|
53 |
|
54 |
inline const bool hasError( void ) const { return ( theCovariance.num_row() != 0 ); }
|
55 |
|
56 |
private:
|
57 |
|
58 |
AlgebraicVector theParameters;
|
59 |
AlgebraicSymMatrix theCovariance;
|
60 |
|
61 |
};
|
62 |
|
63 |
#endif
|