evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtVub.hh
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #ifndef EVTVUB_HH
22 #define EVTVUB_HH
23 
25 
27 
28 #include <memory>
29 #include <vector>
30 
31 class EvtParticle;
32 
33 // Description:
34 // Class to generate inclusive B to X_u l nu decays according to various
35 // decay models. Implemtented are ACCM, parton-model and a QCD model.
36 
37 class EvtVub : public EvtDecayIncoherent {
38  public:
39  std::string getName() override;
40 
41  EvtDecayBase* clone() override;
42 
43  void initProbMax() override;
44 
45  void init() override;
46 
47  void decay( EvtParticle* p ) override;
48 
49  private:
50  double _mb; // the b-quark pole mass in GeV (try 4.65 to 4.9)
51  double _a; // Parameter for the Fermi Motion (1.29 is good)
52  double _alphas; // Strong Coupling at m_b (around 0.24)
53  double _dGMax; // max dGamma*p2 value;
54  int _nbins;
56  std::vector<double> _masses;
57  std::vector<double> _weights;
58 
59  std::unique_ptr<EvtVubdGamma> _dGamma; // calculates the decay rate
60  double findPFermi();
61  std::vector<double> _pf;
62 };
63 
64 #endif
void initProbMax() override
Definition: EvtVub.cpp:159
double _alphas
Definition: EvtVub.hh:52
std::string getName() override
Definition: EvtVub.cpp:37
std::vector< double > _weights
Definition: EvtVub.hh:57
std::unique_ptr< EvtVubdGamma > _dGamma
Definition: EvtVub.hh:59
EvtDecayBase * clone() override
Definition: EvtVub.cpp:42
void init() override
Definition: EvtVub.cpp:47
void decay(EvtParticle *p) override
Definition: EvtVub.cpp:164
double _a
Definition: EvtVub.hh:51
double _dGMax
Definition: EvtVub.hh:53
double findPFermi()
Definition: EvtVub.cpp:376
int _storeQplus
Definition: EvtVub.hh:55
std::vector< double > _masses
Definition: EvtVub.hh:56
double _mb
Definition: EvtVub.hh:50
std::vector< double > _pf
Definition: EvtVub.hh:61
Definition: EvtVub.hh:37
int _nbins
Definition: EvtVub.hh:54