00001 // @(#)root/minuit2:$Id: MnCovarianceSqueeze.h 20880 2007-11-19 11:23:41Z rdm $ 00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT * 00007 * * 00008 **********************************************************************/ 00009 00010 #ifndef ROOT_Minuit2_MnCovarianceSqueeze 00011 #define ROOT_Minuit2_MnCovarianceSqueeze 00012 00013 #include "Minuit2/MnMatrix.h" 00014 00015 namespace ROOT { 00016 00017 namespace Minuit2 { 00018 00019 00020 class MnUserCovariance; 00021 class MinimumError; 00022 00023 /** 00024 class to reduce the covariance matrix when a parameter is fixed by 00025 removing the corresponding row and index 00026 */ 00027 class MnCovarianceSqueeze { 00028 00029 public: 00030 00031 MnCovarianceSqueeze() {} 00032 00033 ~MnCovarianceSqueeze() {} 00034 00035 MnUserCovariance operator()(const MnUserCovariance&, unsigned int) const; 00036 00037 MinimumError operator()(const MinimumError&, unsigned int) const; 00038 00039 MnAlgebraicSymMatrix operator()(const MnAlgebraicSymMatrix&, unsigned int) const; 00040 00041 private: 00042 00043 }; 00044 00045 } // namespace Minuit2 00046 00047 } // namespace ROOT 00048 00049 #endif // ROOT_Minuit2_MnCovarianceSqueeze