AmpTools
Parameter.h
Go to the documentation of this file.
1 #if !defined(MINUITINTERFACE_PARAMETER_H)
2 #define MINUITINTERFACE_PARAMETER_H
3 
4 // This file is a part of MinuitInterface - a front end for the Minuit minimization
5 // package (Minuit itself was authored by Fred James, of CERN)
6 //
7 //
8 // Copyright Cornell University 1993, 1996, All Rights Reserved.
9 //
10 // This software written by Lawrence Gibbons, Cornell University.
11 //
12 // Redistribution and use in source and binary forms, with or without
13 // modification, are permitted provided that the following conditions
14 // are met:
15 // 1. Redistributions of source code must retain the above copyright
16 // notice and author attribution, this list of conditions and the
17 // following disclaimer.
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice and author attribution, this list of conditions and the
20 // following disclaimer in the documentation and/or other materials
21 // provided with the distribution.
22 // 3. Neither the name of the University nor the names of its contributors
23 // may be used to endorse or promote products derived from this software
24 // without specific prior written permission.
25 //
26 // Creation of derivative forms of this software for commercial
27 // utilization may be subject to restriction; written permission may be
28 // obtained from Cornell University.
29 //
30 // CORNELL MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. By way
31 // of example, but not limitation, CORNELL MAKES NO REPRESENTATIONS OR
32 // WARRANTIES OF MERCANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
33 // THE USE OF THIS SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS,
34 // COPYRIGHTS, TRADEMARKS, OR OTHER RIGHTS. Cornell University shall not be
35 // held liable for any liability with respect to any claim by the user or any
36 // other party arising from use of the program.
37 //
38 
39 #include <string>
40 
42 
43 class Parameter : public MISubject
44 {
45 
46 public:
47 
48  Parameter( const std::string& name, double initialValue = 0, double initialError = 0 );
49  virtual ~Parameter();
50 
51  const std::string& name() const;
52 
53  void setValue( double newValue );
54  double value() const {return m_value;}
55  const double* constValuePtr() const { return &m_value; }
56  double* valuePtr() { return &m_value; }
57 
58  virtual void setError( double newError, bool notify = false );
59  virtual double error() const {return m_error;}
60 
61  void setValueError( double newValue, double newError );
62 
63 private:
64 
65  // ------------ member data ------------
66  std::string m_name;
67  double m_value;
68  double m_error;
69 };
70 #endif
double * valuePtr()
Definition: Parameter.h:56
double value() const
Definition: Parameter.h:54
void setValue(double newValue)
Definition: Parameter.cc:52
const double * constValuePtr() const
Definition: Parameter.h:55
void setValueError(double newValue, double newError)
Definition: Parameter.cc:73
virtual double error() const
Definition: Parameter.h:59
void notify()
Definition: MISubject.cc:60
virtual void setError(double newError, bool notify=false)
Definition: Parameter.cc:67
virtual ~Parameter()
Definition: Parameter.cc:49
const std::string & name() const
Definition: Parameter.cc:80
Parameter(const std::string &name, double initialValue=0, double initialError=0)
Definition: Parameter.cc:43