]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtVubHybrid.hh
If default parameters are allowed and runNumber is provided, search first for the...
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtVubHybrid.hh
CommitLineData
da0e9ce3 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
40class EvtParticle;
41class EvtVubdGamma;
42class RandGeneral;
43
44class EvtVubHybrid:public EvtDecayIncoherent {
45
46public:
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
65private:
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