]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh
adding task for subtracting background after jet finding, used for all clustering...
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / 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
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