implemented static Gauss and Lorentz KT LF functions. Removed some unnecessary output from PMusrCanvas

This commit is contained in:
nemu
2009-02-25 08:41:01 +00:00
parent bafe413d47
commit 41630d0945
3 changed files with 199 additions and 41 deletions

View File

@ -34,18 +34,11 @@
#include <TSystem.h>
#include <TString.h>
#include <TF1.h>
#include "PMusr.h"
#include "PMsrHandler.h"
#include "PUserFcnBase.h"
// #include <gsl_sf_hyperg.h>
//
// extern "C" {
// double gsl_sf_hyperg_1F1(double a, double b, double x);
// }
// --------------------------------------------------------
// function handling tags
// --------------------------------------------------------
@ -97,6 +90,9 @@
// number of available user functions
#define THEORY_MAX 20
// maximal number of parameters. Needed in the contents of LF
#define THEORY_MAX_PARAM 10
// deg -> rad factor
#define DEG_TO_RAD 0.0174532925199432955
// 2 pi
@ -224,13 +220,16 @@ class PTheory
virtual double Polynom(register double t, const PDoubleVector& paramValues, const PDoubleVector& funcValues) const;
virtual double UserFcn(register double t, const PDoubleVector& paramValues, const PDoubleVector& funcValues) const;
virtual void CalculateGaussLFIntegral(const double *val) const;
virtual void CalculateLorentzLFIntegral(const double *val) const;
virtual double GetLFIntegralValue(const double t) const;
// variables
bool fValid;
unsigned int fType;
vector<unsigned int> fParamNo; ///< holds the parameter numbers for the theory (including maps and functions, see constructor desciption)
unsigned int fNoOfParam;
PTheory *fAdd, *fMul;
TF1 *fStaticKTLFFunc;
TString fUserFcnClassName; ///< name of the user function class for within root
TString fUserFcnSharedLibName; ///< name of the shared lib to which the user function belongs
@ -238,6 +237,9 @@ class PTheory
mutable PDoubleVector fUserParam; ///< vector holding the resolved user function parameters, i.e. map and function resolved.
PMsrHandler *fMsrInfo;
mutable double fPrevParam[THEORY_MAX_PARAM]; ///< needed for LF-stuff
mutable PDoubleVector fLFIntegral; ///< needed for LF-stuff. Keeps the non-analytic integral values
};
#endif // _PTHEORY_H_