]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenModels/EvtVubHybrid.hh
add set and getter for neutral energy fraction
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtVubHybrid.hh
1 //--------------------------------------------------------------------------
2 //
3 // Environment:
4 //      This software is part of the EvtGen package developed jointly
5 //      for the BaBar and CLEO collaborations.  If you use all or part
6 //      of it, please give an appropriate acknowledgement.
7 //
8 // Copyright Information: See EvtGen/COPYRIGHT
9 //      Copyright (C) 1998      Caltech, UCSB
10 // 
11 // Module: EvtGen/EvtVubHybrid.hh
12 //
13 // Description:
14 // Class to generate inclusive B to X_u l nu decays.
15 // This class is based on EvtVub by Sven Menke with an update to
16 // generate the inclusive decays in such a way that the right
17 // mix of inclusive and exclusive decays is obtained:
18 // "Hybrid Model" by Dominique Fortin.
19 // NOTE:
20 // - A set of weights (for bins in the kinematic variables mX, q2, El)
21 //   is read from DECAY.DEC. This set of weights must be consistent
22 //   with the other parameters specified (excl. BF, non-res BF, mb, a).
23 // - If no binning/weights are specified in DECAY.DEC the hybrid
24 //   reweighting is not activated
25 //
26 // Modification history:
27 //
28 //   Jochen Dingfelder February 1, 2005  Created Module as update of
29 //                                       the module EvtVub including
30 //                                       hybrid model.
31 //------------------------------------------------------------------------
32
33 #ifndef EVTVUBHYBRID_HH
34 #define EVTVUBHYBRID_HH
35
36 #include "EvtGenBase/EvtDecayIncoherent.hh"
37
38 #include <vector>
39
40 class EvtParticle;
41 class EvtVubdGamma;
42 class RandGeneral;
43
44 class EvtVubHybrid:public  EvtDecayIncoherent  {
45
46 public:
47   
48   EvtVubHybrid();
49   virtual ~EvtVubHybrid();
50
51   std::string getName();
52
53   EvtDecayBase* clone();
54
55   void initProbMax();
56
57   void init();
58
59   void decay(EvtParticle *p); 
60
61   void readWeights(int startArg=0);
62
63   double getWeight(double mX, double q2, double El);
64
65 private:
66   double findPFermi();
67
68   enum { nParameters = 3, nVariables = 3 };
69   
70   bool _noHybrid;
71   bool _storeQplus;
72
73   double _mb;     // the b-quark pole mass in GeV (try 4.65 to 4.9)
74   double _a;      // Parameter for the Fermi Motion (1.29 is good)
75   double _alphas; // Strong Coupling at m_b (around 0.24)
76   double _dGMax;  // max dGamma*p2 value;
77   int    _nbins_mX;
78   int    _nbins_q2;
79   int    _nbins_El;
80   int    _nbins;
81   double _masscut;
82   double * _bins_mX;
83   double * _bins_q2;
84   double * _bins_El;
85   double * _weights;
86   EvtVubdGamma *_dGamma; // calculates the decay rate
87   std::vector<double> _pf;
88 };
89
90 #endif
91