00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef PeriodicRectangular_h_
00010 #define PeriodicRectangular_h_ 1
00011 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00012 #include "CLHEP/GenericFunctions/Parameter.hh"
00013 namespace Genfun {
00014
00019 class PeriodicRectangular : public AbsFunction {
00020
00021 FUNCTION_OBJECT_DEF(PeriodicRectangular)
00022
00023
00024 public:
00025
00026
00027 PeriodicRectangular();
00028
00029
00030 PeriodicRectangular(const PeriodicRectangular &right);
00031
00032
00033 virtual ~PeriodicRectangular();
00034
00035
00036 virtual double operator ()(double argument) const;
00037 virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
00038
00039
00040 Parameter & a();
00041
00042
00043 Parameter & b();
00044
00045
00046 Parameter & height();
00047
00048
00049 Derivative partial (unsigned int) const;
00050
00051
00052 virtual bool hasAnalyticDerivative() const {return true;}
00053
00054 private:
00055
00056
00057 const PeriodicRectangular & operator=(const PeriodicRectangular &right);
00058
00059
00060 Parameter _a;
00061 Parameter _b;
00062 Parameter _height;
00063
00064 };
00065 }
00066 #endif