00001 // @(#)root/minuit2:$Id: MnUserFcn.h 23654 2008-05-06 07:30:34Z moneta $ 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_MnUserFcn 00011 #define ROOT_Minuit2_MnUserFcn 00012 00013 #include "Minuit2/MnFcn.h" 00014 00015 namespace ROOT { 00016 00017 namespace Minuit2 { 00018 00019 00020 class MnUserTransformation; 00021 00022 /** 00023 Wrapper used by Minuit of FCN interface 00024 containing a reference to the transformation object 00025 */ 00026 class MnUserFcn : public MnFcn { 00027 00028 public: 00029 00030 MnUserFcn(const FCNBase& fcn, const MnUserTransformation& trafo, int ncall = 0) : 00031 MnFcn(fcn,ncall), fTransform(trafo) {} 00032 00033 ~MnUserFcn() {} 00034 00035 virtual double operator()(const MnAlgebraicVector&) const; 00036 00037 private: 00038 00039 const MnUserTransformation& fTransform; 00040 }; 00041 00042 } // namespace Minuit2 00043 00044 } // namespace ROOT 00045 00046 #endif // ROOT_Minuit2_MnUserFcn