CLHEP VERSION Reference Documentation
CLHEP Home Page CLHEP Documentation CLHEP Bug Reports |
00001 // -*- C++ -*- 00002 // $Id: FunctionTimesParameter.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $ 00003 #include "CLHEP/GenericFunctions/FunctionTimesParameter.hh" 00004 #include "CLHEP/GenericFunctions/Parameter.hh" 00005 00006 namespace Genfun { 00007 FUNCTION_OBJECT_IMP(FunctionTimesParameter) 00008 00009 FunctionTimesParameter::FunctionTimesParameter(const AbsParameter *parameter, const AbsFunction *function): 00010 _function(function->clone()), 00011 _parameter(parameter->clone()) 00012 { 00013 if (parameter->parameter() && _parameter->parameter()) { 00014 _parameter->parameter()->connectFrom(parameter->parameter()); 00015 } 00016 } 00017 00018 FunctionTimesParameter::FunctionTimesParameter(const FunctionTimesParameter & right) : 00019 AbsFunction(right), 00020 _function(right._function->clone()), 00021 _parameter(right._parameter->clone()) 00022 {} 00023 00024 unsigned int FunctionTimesParameter::dimensionality() const { 00025 return _function->dimensionality(); 00026 } 00027 00028 FunctionTimesParameter::~FunctionTimesParameter() 00029 { 00030 delete _function; 00031 delete _parameter; 00032 } 00033 00034 00035 double FunctionTimesParameter::operator ()(double x) const 00036 { 00037 return _parameter->getValue() * (*_function)(x); 00038 } 00039 00040 00041 double FunctionTimesParameter::operator ()(const Argument & x) const 00042 { 00043 return _parameter->getValue() * (*_function)(x); 00044 } 00045 00046 00047 00048 00049 Derivative FunctionTimesParameter::partial(unsigned int index) const { 00050 const AbsFunction & fPrime = (*_parameter)*(_function->partial(index)); 00051 return Derivative(&fPrime); 00052 } 00053 00054 } // namespace Genfun