Back to home page

EIC code displayed by LXR

 
 

    


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 EVTVUBDGAMMA_HH
0022 #define EVTVUBDGAMMA_HH
0023 
0024 // Description:
0025 //    3                                         2                2
0026 //   d Gamma                 /   _      _ _2  mb           _2  mb
0027 //  ---------- = 12 Gamma   | (1+x-z)(z-x-p ) -- W  + (1-z+p ) -- W
0028 //         _ 2           0   \                 2  1             2  2
0029 //  dx dz dp                                   2
0030 //                                _   _  _2  mb                 2   \.
0031 //                             + [x(z-x)-p ] -- (W + 2mb W  + mb W ) |
0032 //                                            4   3       4       5 /
0033 //
0034 //   with
0035 //        2 E           2
0036 //           l    _2   p        2 v.p    _
0037 //   x = ------ , p = --- , z = ------ , x = 1-x
0038 //         mb           2         mb
0039 //                    mb
0040 //
0041 //   the triple differential decay rate according to
0042 //   hep-ph/9905351 v2
0043 
0044 class EvtVubdGamma final {
0045   public:
0046     // Constructors
0047 
0048     EvtVubdGamma( const double& alphas );
0049 
0050     // Operators
0051 
0052     // Selectors
0053 
0054     // Modifiers
0055 
0056     // Methods
0057 
0058     double getdGdxdzdp( const double& x, const double& z, const double& p2 );
0059 
0060   protected:
0061     // Helper functions
0062 
0063     double delta( const double& x, const double& xmin, const double& xmax );
0064 
0065     double getW1nodelta( const double& x, const double& z, const double& p2 );
0066 
0067     double getW2nodelta( const double& x, const double& z, const double& p2 );
0068 
0069     double getW3nodelta( const double& x, const double& z, const double& p2 );
0070 
0071     double getW4nodelta( const double& x, const double& z, const double& p2 );
0072 
0073     double getW5nodelta( const double& x, const double& z, const double& p2 );
0074 
0075     double getW1delta( const double& x, const double& z );
0076 
0077     double getW4plus5delta( const double& x, const double& z );
0078 
0079   private:
0080     // Friends
0081 
0082     // Data members
0083 
0084     double _alphas;
0085     double _epsilon1;
0086     double _epsilon2;
0087     double _epsilon3;
0088 };
0089 
0090 #endif    // EVTVUBDGAMMA_HH