]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh
AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtBtoXsgammaKagan.hh
CommitLineData
da0e9ce3 1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information:
9// Copyright (C) 2001 Brunel University, University of Wisconsin
10//
11// Module: EvtGen/EvtBtoXsgammaKagan.hh
12//
13// Description:
14// Implimentation of the Kagan-Neubert model for non-resonant
15// B->Xs,gamma decays.
16//
17// Modification history:
18//
19// Jane Tinslay, Francesca Di Lodovico March 27, 2001 Module created
20//
21//------------------------------------------------------------------------
22
23#ifndef EVTBTOXSGAMMAKAGAN_HH
24#define EVTBTOXSGAMMAKAGAN_HH
25
26#include <vector>
27#include "EvtGenModels/EvtBtoXsgammaAbsModel.hh"
28
29class EvtBtoXsgammaKagan : public EvtBtoXsgammaAbsModel {
30
31public:
32
33 EvtBtoXsgammaKagan() {}
34
35 virtual ~EvtBtoXsgammaKagan();
36
37 void init(int, double*);
38
39 void computeHadronicMass(int, double*);
40
41 void getDefaultHadronicMass();
42
43 double GetMass(int code);
44
45 double CalcAlphaS(double);
46
47 void CalcWilsonCoeffs();
48 void CalcDelta();
49 double Fz(double);
50
51private:
52
53 //Input parameters
54 double _mb;
55 double _mB;
56 double _delta;
57 double _nIntervalS;
58 double _nIntervalmH;
59 double _lambdabar;
60 double _lam1;
61 double _mHmin;
62 double _mHmax;
63 //Other parameters
64 double _r7;
65 double _gam77;
66 double _gam27;
67 double _gam87;
68 double _beta0;
69 double _beta1;
70 double _alphasmZ;
71 double _mZ;
72 double _z;
73 double _fz;
74 double _lam2;
75 double _kappabar;
76 double _rer2;
77 double _rer8;
78 double _kSLemmu;
79 double _mW;
80 double _mt;
81 double _ms;
82 double _mu;
83
84 double _c2mu;
85 double _c70mu;
86 double _c80mu;
87 double _c71mu;
88 double _c7emmu;
89
90 double _cDeltatot;
91
92 double _alpha;
93 double _alphasmW;
94 double _alphasmt;
95 double _alphasmu;
96 double _alphasmubar;
97 double _etamu;
98
99 std::vector<double> _mHVect;
100
101 static double ReG(double);
102 static double ImG(double);
103 static double s77(double);
104 static double s88(double, double, double);
105 static double s78(double);
106 static double s22Func(double var, const std::vector<double> &coeffs);
107 static double s27Func(double var, const std::vector<double> &coeffs);
108
109 static double Delta(double, double);
110 static double DeltaFermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2, const std::vector<double> &coeffs3);
111 static double s77FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
112 static double s88FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2, const std::vector<double> &coeffs3);
113 static double s78FermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2);
114 static double s22FermiFunc(double, std::vector<double> &coeffs);
115 static double s27FermiFunc(double, std::vector<double> &coeffs);
116 static double s28FermiFunc(double, std::vector<double> &coeffs);
117 static double GetArrayVal(double, double, double, double, std::vector<double>);
118 static double sFermiFunc(double, const std::vector<double> &coeffs1, const std::vector<double> &coeffs2,
119 const std::vector<double> &coeffs3, const std::vector<double> &coeffs4);
120 static double FermiFunc(double, const std::vector<double> &coeffs);
121 static double diLogFunc(double);
122 static double diLogMathematica(double);
123 double *massHad; double *brHad;
124 static double intervalMH;
125 static bool bbprod;
126};
127
128#endif
129
130
131