Logo ROOT  
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&) = default;
49 
50  MnCross& operator()(const MnCross& cross) {
51  fValue = cross.fValue;
52  fState = cross.fState;
53  fNFcn = cross.fNFcn;
54  fValid = cross.fValid;
55  fLimset = cross.fLimset;
56  fMaxFcn = cross.fMaxFcn;
57  fNewMin = cross.fNewMin;
58  return *this;
59  }
60 
61  double Value() const {return fValue;}
62  const MnUserParameterState& State() const {return fState;}
63  bool IsValid() const {return fValid;}
64  bool AtLimit() const {return fLimset;}
65  bool AtMaxFcn() const {return fMaxFcn;}
66  bool NewMinimum() const {return fNewMin;}
67  unsigned int NFcn() const {return fNFcn;}
68 
69 private:
70 
71  double fValue;
73  unsigned int fNFcn;
74  bool fValid;
75  bool fLimset;
76  bool fMaxFcn;
77  bool fNewMin;
78 };
79 
80  } // namespace Minuit2
81 
82 } // namespace ROOT
83 
84 #endif // ROOT_Minuit2_MnCross
ROOT::Minuit2::MnCross::Value
double Value() const
Definition: MnCross.h:61
ROOT::Minuit2::MnCross::MnCross
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossParLimit)
Definition: MnCross.h:38
ROOT::Minuit2::MnCross::NewMinimum
bool NewMinimum() const
Definition: MnCross.h:66
ROOT::Minuit2::MnCross::fState
MnUserParameterState fState
Definition: MnCross.h:72
ROOT::Minuit2::MnCross::NFcn
unsigned int NFcn() const
Definition: MnCross.h:67
ROOT::Minuit2::MnCross::~MnCross
~MnCross()
Definition: MnCross.h:44
MnUserParameterState.h
ROOT::Minuit2::MnCross::fNFcn
unsigned int fNFcn
Definition: MnCross.h:73
ROOT::Minuit2::MnCross::CrossNewMin
Definition: MnCross.h:26
ROOT::Minuit2::MnCross::operator=
MnCross & operator=(const MnCross &)=default
ROOT::Minuit2::MnCross::State
const MnUserParameterState & State() const
Definition: MnCross.h:62
ROOT::Minuit2::MnCross
Definition: MnCross.h:20
ROOT::Minuit2::MnCross::fValue
double fValue
Definition: MnCross.h:71
ROOT::Minuit2::MnCross::operator()
MnCross & operator()(const MnCross &cross)
Definition: MnCross.h:50
ROOT::Minuit2::MnCross::fMaxFcn
bool fMaxFcn
Definition: MnCross.h:76
ROOT::Minuit2::MnCross::fValid
bool fValid
Definition: MnCross.h:74
ROOT::Minuit2::MnCross::MnCross
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossFcnLimit)
Definition: MnCross.h:40
ROOT::Minuit2::MnCross::IsValid
bool IsValid() const
Definition: MnCross.h:63
ROOT::Minuit2::MnCross::MnCross
MnCross(unsigned int nfcn)
Definition: MnCross.h:32
ROOT::Minuit2::MnCross::CrossParLimit
Definition: MnCross.h:24
ROOT::Minuit2::MnCross::fLimset
bool fLimset
Definition: MnCross.h:75
ROOT::Minuit2::MnCross::MnCross
MnCross()
Definition: MnCross.h:30
ROOT::Minuit2::MnUserParameterState
class which holds the external user and/or internal Minuit representation of the parameters and error...
Definition: MnUserParameterState.h:34
ROOT::Minuit2::MnCross::MnCross
MnCross(const MnCross &cross)
Definition: MnCross.h:46
ROOT::Minuit2::MnCross::MnCross
MnCross(const MnUserParameterState &state, unsigned int nfcn)
Definition: MnCross.h:34
ROOT::Minuit2::MnCross::MnCross
MnCross(const MnUserParameterState &state, unsigned int nfcn, CrossNewMin)
Definition: MnCross.h:42
ROOT::Minuit2::MnCross::MnCross
MnCross(double value, const MnUserParameterState &state, unsigned int nfcn)
Definition: MnCross.h:36
ROOT::Minuit2::MnCross::fNewMin
bool fNewMin
Definition: MnCross.h:77
ROOT::Minuit2::MnCross::AtLimit
bool AtLimit() const
Definition: MnCross.h:64
ROOT::Minuit2::MnCross::CrossFcnLimit
Definition: MnCross.h:25
ROOT
VSD Structures.
Definition: StringConv.hxx:21
ROOT::Minuit2::MnCross::AtMaxFcn
bool AtMaxFcn() const
Definition: MnCross.h:65