StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EvtBtoXsgammaKagan.hh
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 
30 
31 public:
32 
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