00001 #ifndef Alignment_TwoBodyDecay_TwoBodyDecay_h 00002 #define Alignment_TwoBodyDecay_TwoBodyDecay_h 00003 00004 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecayParameters.h" 00005 00015 class TwoBodyDecay 00016 { 00017 00018 public: 00019 00020 typedef TwoBodyDecayParameters::ParameterName ParameterName; 00021 00022 TwoBodyDecay( void ) : 00023 theDecayParameters(), theChi2( 0. ), theValidityFlag( false ) {} 00024 00025 TwoBodyDecay( TwoBodyDecayParameters param, double chi2, bool valid ) : 00026 theDecayParameters( param ), theChi2( chi2 ), theValidityFlag( valid ) {} 00027 00028 ~TwoBodyDecay( void ) {} 00029 00030 inline const TwoBodyDecayParameters & decayParameters( void ) const { return theDecayParameters; } 00031 00032 inline const AlgebraicVector & parameters( void ) const { return theDecayParameters.parameters(); } 00033 inline const AlgebraicSymMatrix & covariance( void ) const { return theDecayParameters.covariance(); } 00034 00036 inline const double operator[]( ParameterName name ) const { return theDecayParameters[name]; } 00037 00039 inline const double operator()( ParameterName name ) const { return theDecayParameters(name); } 00040 00041 inline const bool hasError( void ) const { return theDecayParameters.hasError(); } 00042 00043 inline const double chi2( void ) const { return theChi2; } 00044 00045 inline const bool isValid( void ) const { return theValidityFlag; } 00046 inline void setInvalid( void ) { theValidityFlag = false; } 00047 00048 private: 00049 00050 TwoBodyDecayParameters theDecayParameters; 00051 double theChi2; 00052 bool theValidityFlag; 00053 00054 }; 00055 00056 #endif