]>
Commit | Line | Data |
---|---|---|
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 | ||
29 | class EvtBtoXsgammaKagan : public EvtBtoXsgammaAbsModel { | |
30 | ||
31 | public: | |
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 | ||
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 |