CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
GenericFunctions
CLHEP
GenericFunctions
CLHEP/GenericFunctions/AbsParameter.hh
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id: AbsParameter.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
3
#ifndef _AbsParameter_h_
4
#define _AbsParameter_h_
5
6
namespace
Genfun {
7
class
Parameter;
8
class
ParameterSum;
9
class
ParameterDifference;
10
class
ParameterProduct;
11
class
ParameterQuotient;
12
class
ParameterNegation;
13
class
ConstPlusParameter;
14
class
ConstMinusParameter;
15
class
ConstTimesParameter;
16
class
ConstOverParameter;
17
22
class
AbsParameter
{
23
24
public
:
25
26
// Default Constructor
27
AbsParameter
();
28
29
// Copy constructor:
30
AbsParameter
(
const
AbsParameter
&);
31
32
// Destructor
33
virtual
~AbsParameter
();
34
35
// Parameter value
36
virtual
double
getValue
()
const
=0;
37
38
// Every parameter must override this:
39
AbsParameter
*
clone
()
const
;
40
41
// Extra lingual type information:
42
virtual
Parameter
*
parameter
() {
return
0;}
43
virtual
const
Parameter
*
parameter
()
const
{
return
0;}
44
45
private
:
46
47
// Cannot assign an AbsParameter:
48
AbsParameter
& operator= (
const
AbsParameter
&);
49
50
virtual
AbsParameter
*_clone()
const
=0;
51
52
};
53
54
// Now for some additional operations:
55
56
57
ConstTimesParameter
operator *
(
double
c,
const
AbsParameter &op2);
58
ConstPlusParameter
operator +
(
double
c,
const
AbsParameter &op2);
59
ConstMinusParameter
operator -
(
double
c,
const
AbsParameter &op2);
60
ConstOverParameter
operator /
(
double
c,
const
AbsParameter &op2);
61
62
ConstTimesParameter
operator *
(
const
AbsParameter &op2,
double
c);
63
ConstPlusParameter
operator +
(
const
AbsParameter &op2,
double
c);
64
ConstPlusParameter
operator -
(
const
AbsParameter &op2,
double
c);
65
ConstTimesParameter
operator /
(
const
AbsParameter &op2,
double
c);
66
67
68
ParameterProduct
operator *
(
const
AbsParameter &op1,
const
AbsParameter &op2);
69
ParameterSum
operator +
(
const
AbsParameter &op1,
const
AbsParameter &op2);
70
ParameterDifference
operator -
(
const
AbsParameter &op1,
const
AbsParameter &op2);
71
ParameterQuotient
operator /
(
const
AbsParameter &op1,
const
AbsParameter &op2);
72
ParameterNegation
operator -
(
const
AbsParameter &op1);
73
74
typedef
const
AbsParameter
&
GENPARAMETER
;
75
76
}
// namespace Genfun
77
78
// Poor man's covariant return type:
79
#define PARAMETER_OBJECT_DEF(classname) \
80
public: \
81
classname *clone() const; \
82
private: \
83
virtual AbsParameter* _clone() const;
84
85
// Poor man's covariant return type:
86
#define PARAMETER_OBJECT_IMP(classname) \
87
classname *classname::clone () const { \
88
return (classname *) _clone(); \
89
} \
90
AbsParameter *classname::_clone () const { \
91
return new classname(*this); \
92
}
93
94
95
#include "
CLHEP/GenericFunctions/ParameterProduct.hh
"
96
#include "
CLHEP/GenericFunctions/ParameterSum.hh
"
97
#include "
CLHEP/GenericFunctions/ParameterDifference.hh
"
98
#include "
CLHEP/GenericFunctions/ParameterQuotient.hh
"
99
#include "
CLHEP/GenericFunctions/ParameterNegation.hh
"
100
#include "
CLHEP/GenericFunctions/ConstPlusParameter.hh
"
101
#include "
CLHEP/GenericFunctions/ConstMinusParameter.hh
"
102
#include "
CLHEP/GenericFunctions/ConstTimesParameter.hh
"
103
#include "
CLHEP/GenericFunctions/ConstOverParameter.hh
"
104
105
#endif
Generated on Mon May 6 2013 04:04:10 for CLHEP by
1.8.1.2