CLHEP 2.0.4.7 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 _function(right._function->clone()), 00020 _parameter(right._parameter->clone()) 00021 {} 00022 00023 unsigned int FunctionTimesParameter::dimensionality() const { 00024 return _function->dimensionality(); 00025 } 00026 00027 FunctionTimesParameter::~FunctionTimesParameter() 00028 { 00029 delete _function; 00030 delete _parameter; 00031 } 00032 00033 00034 double FunctionTimesParameter::operator ()(double x) const 00035 { 00036 return _parameter->getValue() * (*_function)(x); 00037 } 00038 00039 00040 double FunctionTimesParameter::operator ()(const Argument & x) const 00041 { 00042 return _parameter->getValue() * (*_function)(x); 00043 } 00044 00045 00046 00047 00048 Derivative FunctionTimesParameter::partial(unsigned int index) const { 00049 const AbsFunction & fPrime = (*_parameter)*(_function->partial(index)); 00050 return Derivative(&fPrime); 00051 } 00052 00053 } // namespace Genfun