evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtBtoXsgammaFermiUtil.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef EVTBTOXSGAMMAFERMIUTIL_HH
22 #define EVTBTOXSGAMMAFERMIUTIL_HH
23 
24 #include <vector>
25 
26 // Description:
27 // Class to hold various fermi functions and their helper functions. The
28 // fermi functions are used in EvtBtoXsgammaKagan.
29 
31  //--------------------
32  // Instance Members --
33  //--------------------
34 
35  public:
36  //Exponential function
37  static double FermiExpFunc( double var, const std::vector<double>& coeffs );
38 
39  //Gaussian function and its helper functions
40  static double FermiGaussFunc( double, std::vector<double> const& coeffs );
41  static double FermiGaussFuncRoot( double, double, double,
42  std::vector<double>& coeffs );
43  static double FermiGaussRootFcnA( double, const std::vector<double>& coeffs1,
44  const std::vector<double>& coeffs2 );
45  static double FermiGaussRootFcnB( double, const std::vector<double>& coeffs1,
46  const std::vector<double>& coeffs2 );
47  static double Gamma( double, const std::vector<double>& coeffs );
48 
49  //Roman function and its helper functions
50  static double BesselI1( double );
51  static double BesselK1( double );
52  static double FermiRomanFuncRoot( double, double );
53  static double FermiRomanRootFcnA( double );
54  static double FermiRomanFunc( double, std::vector<double> const& coeffs );
55 };
56 
57 #endif
static double FermiRomanRootFcnA(double)
static double FermiRomanFunc(double, std::vector< double > const &coeffs)
static double FermiGaussRootFcnA(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2)
static double Gamma(double, const std::vector< double > &coeffs)
static double FermiRomanFuncRoot(double, double)
static double FermiGaussFunc(double, std::vector< double > const &coeffs)
static double FermiGaussFuncRoot(double, double, double, std::vector< double > &coeffs)
static double FermiExpFunc(double var, const std::vector< double > &coeffs)
static double BesselI1(double)
static double BesselK1(double)
static double FermiGaussRootFcnB(double, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2)