Logo ROOT   6.12/07
Reference Guide
MnCross.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_MnCross
11 #define ROOT_Minuit2_MnCross
12 
14 
15 namespace ROOT {
16 
17  namespace Minuit2 {
18 
19 
20 class MnCross {
21 
22 public:
23 
24  class CrossParLimit {};
25  class CrossFcnLimit {};
26  class CrossNewMin {};
27 
28 public:
29 
30  MnCross() : fValue(0.), fState(MnUserParameterState()), fNFcn(0), fValid(false), fLimset(false), fMaxFcn(false), fNewMin(false) {}
31 
32  MnCross(unsigned int nfcn) : fValue(0.), fState(MnUserParameterState() ), fNFcn(nfcn), fValid(false), fLimset(false), fMaxFcn(false), fNewMin(false) {}
33 
34  MnCross(const MnUserParameterState& state, unsigned int nfcn) : fValue(0.), fState(state), fNFcn(nfcn), fValid(false), fLimset(false), fMaxFcn(false), fNewMin(false) {}
35 
36  MnCross(double value, const MnUserParameterState& state, unsigned int nfcn) : fValue(value), fState(state), fNFcn(nfcn), fValid(true), fLimset(false), fMaxFcn(false), fNewMin(false) {}
37 
38  MnCross(const MnUserParameterState& state, unsigned int nfcn, CrossParLimit) : fValue(0.), fState(state), fNFcn(nfcn), fValid(true), fLimset(true), fMaxFcn(false), fNewMin(false) {}
39 
40  MnCross(const MnUserParameterState& state, unsigned int nfcn, CrossFcnLimit) : fValue(0.), fState(state), fNFcn(nfcn), fValid(false), fLimset(false), fMaxFcn(true), fNewMin(false) {}
41 
42  MnCross(const MnUserParameterState& state, unsigned int nfcn, CrossNewMin) : fValue(0.), fState(state), fNFcn(nfcn), fValid(false), fLimset(false), fMaxFcn(false), fNewMin(true) {}
43 
44  ~MnCross() {}
45 
46  MnCross(const MnCross& cross) : fValue(cross.fValue), fState(cross.fState), fNFcn(cross.fNFcn), fValid(cross.fValid), fLimset(cross.fLimset), fMaxFcn(cross.fMaxFcn), fNewMin(cross.fNewMin) {}
47 
48  MnCross& operator()(const MnCross& cross) {
49  fValue = cross.fValue;
50  fState = cross.fState;
51  fNFcn = cross.fNFcn;
52  fValid = cross.fValid;
53  fLimset = cross.fLimset;
54  fMaxFcn = cross.fMaxFcn;
55  fNewMin = cross.fNewMin;
56  return *this;
57  }
58 
59  double Value() const {return fValue;}
60  const MnUserParameterState& State() const {return fState;}
61  bool IsValid() const {return fValid;}
62  bool AtLimit() const {return fLimset;}
63  bool AtMaxFcn() const {return fMaxFcn;}
64  bool NewMinimum() const {return fNewMin;}
65  unsigned int NFcn() const {return fNFcn;}
66 
67 private:
68 
69  double fValue;
71  unsigned int fNFcn;
72  bool fValid;
73  bool fLimset;
74  bool fMaxFcn;
75  bool fNewMin;
76 };
77 
78  } // namespace Minuit2
79 
80 } // namespace ROOT
81 
82 #endif // ROOT_Minuit2_MnCross
unsigned int NFcn() const
Definition: MnCross.h:65
MnCross(const MnUserParameterState &state, unsigned int nfcn)
Definition: MnCross.h:34
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossParLimit)
Definition: MnCross.h:38
bool NewMinimum() const
Definition: MnCross.h:64
bool AtLimit() const
Definition: MnCross.h:62
MnCross(double value, const MnUserParameterState &state, unsigned int nfcn)
Definition: MnCross.h:36
MnUserParameterState fState
Definition: MnCross.h:70
const MnUserParameterState & State() const
Definition: MnCross.h:60
bool IsValid() const
Definition: MnCross.h:61
bool AtMaxFcn() const
Definition: MnCross.h:63
MnCross & operator()(const MnCross &cross)
Definition: MnCross.h:48
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossNewMin)
Definition: MnCross.h:42
class which holds the external user and/or internal Minuit representation of the parameters and error...
MnCross(unsigned int nfcn)
Definition: MnCross.h:32
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossFcnLimit)
Definition: MnCross.h:40
unsigned int fNFcn
Definition: MnCross.h:71
double Value() const
Definition: MnCross.h:59
MnCross(const MnCross &cross)
Definition: MnCross.h:46