FunctionGradient.h

Go to the documentation of this file.
00001 // @(#)root/minuit2:$Id: FunctionGradient.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_FunctionGradient
00011 #define ROOT_Minuit2_FunctionGradient
00012 
00013 #include "Minuit2/MnRefCountedPointer.h"
00014 #include "Minuit2/BasicFunctionGradient.h"
00015 
00016 namespace ROOT {
00017 
00018    namespace Minuit2 {
00019 
00020 
00021 class FunctionGradient {
00022 
00023 private:
00024 
00025 public:
00026   
00027   explicit FunctionGradient(unsigned int n) : 
00028    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(n)))  {}
00029   
00030   explicit FunctionGradient(const MnAlgebraicVector& grd) : 
00031    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd))) {}
00032 
00033   FunctionGradient(const MnAlgebraicVector& grd, const MnAlgebraicVector& g2,
00034                    const MnAlgebraicVector& gstep) : 
00035    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd, g2, gstep))) {}
00036   
00037   ~FunctionGradient() {}
00038   
00039   FunctionGradient(const FunctionGradient& grad) : fData(grad.fData) {}
00040 
00041   FunctionGradient& operator=(const FunctionGradient& grad) {
00042     fData = grad.fData;
00043     return *this;
00044   }
00045 
00046   const MnAlgebraicVector& Grad() const {return fData->Grad();}
00047   const MnAlgebraicVector& Vec() const {return fData->Vec();}
00048   bool IsValid() const {return fData->IsValid();}
00049 
00050   bool IsAnalytical() const {return fData->IsAnalytical();}
00051   const MnAlgebraicVector& G2() const {return fData->G2();}
00052   const MnAlgebraicVector& Gstep() const {return fData->Gstep();}
00053 
00054 private:
00055 
00056   MnRefCountedPointer<BasicFunctionGradient> fData;
00057 };
00058 
00059   }  // namespace Minuit2
00060 
00061 }  // namespace ROOT
00062 
00063 #endif  // ROOT_Minuit2_FunctionGradient

Generated on Tue Jul 5 14:25:42 2011 for ROOT_528-00b_version by  doxygen 1.5.1