|
|
|||
File indexing completed on 2026-08-06 09:20:08
0001 0002 /*********************************************************************** 0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors * 0004 * * 0005 * This file is part of EvtGen. * 0006 * * 0007 * EvtGen is free software: you can redistribute it and/or modify * 0008 * it under the terms of the GNU General Public License as published by * 0009 * the Free Software Foundation, either version 3 of the License, or * 0010 * (at your option) any later version. * 0011 * * 0012 * EvtGen is distributed in the hope that it will be useful, * 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0015 * GNU General Public License for more details. * 0016 * * 0017 * You should have received a copy of the GNU General Public License * 0018 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. * 0019 ***********************************************************************/ 0020 0021 #ifndef EVTVUBHYBRID_HH 0022 #define EVTVUBHYBRID_HH 0023 0024 #include "EvtGenBase/EvtDecayIncoherent.hh" 0025 0026 #include "EvtGenModels/EvtVubdGamma.hh" 0027 0028 #include <memory> 0029 #include <vector> 0030 0031 class EvtParticle; 0032 class RandGeneral; 0033 0034 // Description: 0035 // Class to generate inclusive B to X_u l nu decays. 0036 // This class is based on EvtVub by Sven Menke with an update to 0037 // generate the inclusive decays in such a way that the right 0038 // mix of inclusive and exclusive decays is obtained: 0039 // "Hybrid Model" by Dominique Fortin. 0040 // NOTE: 0041 // - A set of weights (for bins in the kinematic variables mX, q2, El) 0042 // is read from DECAY.DEC. This set of weights must be consistent 0043 // with the other parameters specified (excl. BF, non-res BF, mb, a). 0044 // - If no binning/weights are specified in DECAY.DEC the hybrid 0045 // reweighting is not activated 0046 0047 class EvtVubHybrid : public EvtDecayIncoherent { 0048 public: 0049 std::string getName() override; 0050 0051 EvtDecayBase* clone() override; 0052 0053 void initProbMax() override; 0054 0055 void init() override; 0056 0057 void decay( EvtParticle* p ) override; 0058 0059 void readWeights( int startArg = 0 ); 0060 0061 double getWeight( double mX, double q2, double El ); 0062 0063 private: 0064 double findPFermi(); 0065 0066 enum 0067 { 0068 nParameters = 3, 0069 nVariables = 3 0070 }; 0071 0072 bool _noHybrid = 0073 false; // _noHybrid will be set TRUE if the DECAY.DEC file has no binning or weights 0074 bool _storeQplus = 0075 true; // _storeQplus should alwasy be TRUE: writes out Fermi motion parameter 0076 0077 double _mb = 4.62; // the b-quark pole mass in GeV (try 4.65 to 4.9) 0078 double _a = 2.27; // Parameter for the Fermi Motion (1.29 is good) 0079 double _alphas = 0.22; // Strong Coupling at m_b (around 0.24) 0080 double _dGMax = 3.; // max dGamma*p2 value; 0081 int _nbins = 0; 0082 double _masscut = 0.28; 0083 std::vector<double> _bins_mX; 0084 std::vector<double> _bins_q2; 0085 std::vector<double> _bins_El; 0086 std::vector<double> _weights; 0087 std::unique_ptr<EvtVubdGamma> _dGamma; // calculates the decay rate 0088 std::vector<double> _pf; 0089 }; 0090 0091 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|