Line data Source code
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 :
29 : class EvtBtoXsgammaKagan : public EvtBtoXsgammaAbsModel {
30 :
31 : public:
32 :
33 0 : 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 :
51 : private:
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 :
|