CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

Parameter.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: Parameter.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $
4 
5 namespace Genfun {
6 PARAMETER_OBJECT_IMP(Parameter)
7 
8 Parameter::Parameter(std::string name, double value, double lowerLimit, double upperLimit):
9  _name(name),_value(value),_lowerLimit(lowerLimit),_upperLimit(upperLimit),_sourceParameter(NULL)
10 {
11 }
12 
14 }
15 
16 std::ostream & operator << ( std::ostream & o, const Parameter & p) {
17  return o << p.getName() << "\t" << " value = "
18  << p.getValue() << "\t" <<" limits: ["
19  << p.getLowerLimit() << ","
20  << p.getUpperLimit() << "]" << std::endl;
21 }
22 
23 const std::string & Parameter::getName() const {
24  return _name;
25 }
26 
27 double Parameter::getValue() const
28 {
29  if (_sourceParameter) {
30  return _sourceParameter->getValue();
31  }
32  else {
33  return _value;
34  }
35 }
36 
38 {
39  if (_sourceParameter) {
40  return -1E-100;
41  }
42  else {
43  return _lowerLimit;
44  }
45 }
46 
48 {
49  if (_sourceParameter) {
50  return 1E100;
51  }
52  else {
53  return _upperLimit;
54  }
55 }
56 
57 void Parameter::setValue(double value)
58 {
59  if (_sourceParameter) {
60  std::cerr
61  << "Warning: Parameter is connected. Function has no effect."
62  << std::endl;
63  }
64  else {
65  _value=value;
66  }
67 }
68 
69 void Parameter::setLowerLimit(double lowerLimit)
70 {
71  if (_sourceParameter) {
72  std::cerr
73  << "Warning: Parameter is connected. Function has no effect."
74  << std::endl;
75  }
76  else {
77  _lowerLimit=lowerLimit;
78  }
79 }
80 
81 void Parameter::setUpperLimit(double upperLimit)
82 {
83  if (_sourceParameter) {
84  std::cerr
85  << "Warning: Parameter is connected. Function has no effect."
86  << std::endl;
87  }
88  else {
89  _upperLimit=upperLimit;
90  }
91 }
92 
94 {
95  const Parameter *sp = source->parameter();
96  if (sp && sp->_sourceParameter) {
97  connectFrom(sp->_sourceParameter);
98  }
99  else {
100  _sourceParameter = source;
101  }
102 }
103 
104 
106  AbsParameter(right),
107  _name(right._name),
108  _value(right._value),
109  _lowerLimit(right._lowerLimit),
110  _upperLimit(right._upperLimit),
111  _sourceParameter(right._sourceParameter)
112 {
113 }
114 
115 const Parameter & Parameter::operator=(const Parameter &right) {
116  if (this != &right) {
117  _name=right._name;
118  _value=right._value;
119  _lowerLimit=right._lowerLimit;
120  _upperLimit=right._upperLimit;
121  _sourceParameter=right._sourceParameter;
122  }
123  return *this;
124 }
125 
126 } // namespace Genfun
Genfun::Parameter::getValue
virtual double getValue() const
Definition: Parameter.cc:27
Genfun::Parameter::setUpperLimit
void setUpperLimit(double upperLimit)
Definition: Parameter.cc:81
Parameter.hh
Genfun::Parameter::getUpperLimit
double getUpperLimit() const
Definition: Parameter.cc:47
Genfun::AbsParameter::getValue
virtual double getValue() const =0
PARAMETER_OBJECT_IMP
#define PARAMETER_OBJECT_IMP(classname)
Definition: CLHEP/GenericFunctions/AbsParameter.hh:86
Genfun::Parameter::setLowerLimit
void setLowerLimit(double lowerLimit)
Definition: Parameter.cc:69
Genfun::Parameter::getName
const std::string & getName() const
Definition: Parameter.cc:23
Genfun::operator<<
std::ostream & operator<<(std::ostream &os, const Argument &a)
Definition: CLHEP/GenericFunctions/Argument.hh:81
Genfun::AbsParameter
Definition: CLHEP/GenericFunctions/AbsParameter.hh:22
Genfun::Parameter::operator=
const Parameter & operator=(const Parameter &right)
Definition: Parameter.cc:115
Genfun::Parameter::connectFrom
void connectFrom(const AbsParameter *source)
Definition: Parameter.cc:93
Genfun::Parameter::getLowerLimit
double getLowerLimit() const
Definition: Parameter.cc:37
Genfun::Parameter::Parameter
Parameter(std::string name, double value, double lowerLimit=-1e100, double upperLimit=1e100)
Definition: Parameter.cc:8
Genfun::Parameter::~Parameter
virtual ~Parameter()
Definition: Parameter.cc:13
Genfun::Parameter
Definition: CLHEP/GenericFunctions/Parameter.hh:35
Genfun::Parameter::setValue
void setValue(double value)
Definition: Parameter.cc:57
name
user code seldom needs to call this function directly ZMerrno whether or not they are still recorded ZMerrno whether or not they are still since the user counter was last ZMerrno name() gives the(string) name of the latest recorded exception
Genfun::AbsParameter::parameter
virtual Parameter * parameter()
Definition: CLHEP/GenericFunctions/AbsParameter.hh:42
Genfun
Definition: CLHEP/GenericFunctions/Abs.hh:14