1 //--------------------------------------------------------------------------
4 // This software is part of the EvtGen package developed jointly
5 // for the BaBar and CLEO collaborations. If you use all or part
6 // of it, please give an appropriate acknowledgement.
8 // Copyright Information: See EvtGen/COPYRIGHT
9 // Copyright (C) 2001 Brunel University
11 // Module: EvtGen/EvtBtoXsgammaFermiUtil.hh
14 // Class to hold various fermi functions and their helper functions. The
15 // fermi functions are used in EvtBtoXsgammaKagan.
17 // Modification history:
19 // Jane Tinslay March 21, 2001 Module created
21 //------------------------------------------------------------------------
23 #ifndef EVTBTOXSGAMMAFERMIUTIL_HH
24 #define EVTBTOXSGAMMAFERMIUTIL_HH
28 class EvtBtoXsgammaFermiUtil {
30 //--------------------
31 // Instance Members --
32 //--------------------
37 EvtBtoXsgammaFermiUtil() { };
38 virtual ~EvtBtoXsgammaFermiUtil() { };
40 //Exponential function
41 static double FermiExpFunc(double var, const std::vector<double> &coeffs);
43 //Gaussian function and its helper functions
44 static double FermiGaussFunc(double, std::vector<double> const &coeffs);
45 static double FermiGaussFuncRoot(double, double, double, std::vector<double> &coeffs);
46 static double FermiGaussRootFcnA(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
47 static double FermiGaussRootFcnB(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
48 static double Gamma(double, const std::vector<double> &coeffs);
50 //Roman function and its helper functions
51 static double BesselI1(double);
52 static double BesselK1(double);
53 static double FermiRomanFuncRoot(double, double);
54 static double FermiRomanRootFcnA(double);
55 static double FermiRomanFunc(double, std::vector<double> const &coeffs);