Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
FunctionGradient.h
Go to the documentation of this file.
1 // @(#)root/minuit2:$Id$
2 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3 
4 /**********************************************************************
5  * *
6  * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7  * *
8  **********************************************************************/
9 
10 #ifndef ROOT_Minuit2_FunctionGradient
11 #define ROOT_Minuit2_FunctionGradient
12 
15 
16 namespace ROOT {
17 
18  namespace Minuit2 {
19 
20 
21 class FunctionGradient {
22 
23 private:
24 
25 public:
26 
27  explicit FunctionGradient(unsigned int n) :
28  fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(n))) {}
29 
30  explicit FunctionGradient(const MnAlgebraicVector& grd) :
31  fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd))) {}
32 
33  FunctionGradient(const MnAlgebraicVector& grd, const MnAlgebraicVector& g2,
34  const MnAlgebraicVector& gstep) :
35  fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd, g2, gstep))) {}
36 
37  ~FunctionGradient() {}
38 
39  FunctionGradient(const FunctionGradient& grad) : fData(grad.fData) {}
40 
41  FunctionGradient& operator=(const FunctionGradient& grad) {
42  fData = grad.fData;
43  return *this;
44  }
45 
46  const MnAlgebraicVector& Grad() const {return fData->Grad();}
47  const MnAlgebraicVector& Vec() const {return fData->Vec();}
48  bool IsValid() const {return fData->IsValid();}
49 
50  bool IsAnalytical() const {return fData->IsAnalytical();}
51  const MnAlgebraicVector& G2() const {return fData->G2();}
52  const MnAlgebraicVector& Gstep() const {return fData->Gstep();}
53 
54 private:
55 
56  MnRefCountedPointer<BasicFunctionGradient> fData;
57 };
58 
59  } // namespace Minuit2
60 
61 } // namespace ROOT
62 
63 #endif // ROOT_Minuit2_FunctionGradient