Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:20:06

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 EVTLAMBDAPBARGAMMA_HH
0022 #define EVTLAMBDAPBARGAMMA_HH
0023 
0024 #include "EvtGenBase/EvtComplex.hh"
0025 #include "EvtGenBase/EvtConst.hh"
0026 #include "EvtGenBase/EvtDecayAmp.hh"
0027 #include "EvtGenBase/EvtPDL.hh"
0028 #include "EvtGenBase/EvtParticle.hh"
0029 
0030 // Description:Implementation of the decay B- -> lambda p_bar gamma according to
0031 // Cheng, Yang; hep-ph/0201015
0032 
0033 class EvtLambdaP_BarGamma : public EvtDecayAmp {
0034   public:
0035     EvtLambdaP_BarGamma();
0036     ~EvtLambdaP_BarGamma() { ; }
0037 
0038     std::string getName() override;
0039     EvtDecayBase* clone() override;
0040     void decay( EvtParticle* p ) override;
0041     void init() override;
0042     void initProbMax() override;
0043 
0044   private:
0045     // some constants to make the code easier to read and maintain
0046     // these three should be constants... (implementation of getMass() prohibits this)
0047     double _mLambdab;    //  = 5.624;                          // Lambda_b mass
0048     double _mLambda0;    //  = 1.115684;                       // Lambda0 mass
0049     double _c7Eff;    //  = -0.31;                          // Wilson coefficient
0050     double _mb;       //  =  4.4;                           // running b mass
0051     double _mV;    //  =  5.42;                          // pole mass vector current
0052     double _mA;    //  =  5.86;                          // pole mass axial current
0053     double _GF;    //  =  1.166E-5;                      // Fermi constant
0054     double _gLambdab;    // =  16;                            // coupling constant Lambda_b -> B- p
0055     double _e0;    //  =  1;                             // electromagnetic coupling (+1)
0056     double _g1;    //  =  0.64;                          // heavy-light form factors at q_mSqare
0057     double _g2;            //  = -0.10;
0058     double _f1;            //  =  0.64;
0059     double _f2;            //  = -0.31;
0060     double _VtbVtsStar;    // = 0.038;                          // |V_tb V_ts^*|
0061 
0062     // user never needs to call this -> private
0063     // baryonic form factors f(p), g(p), at p=0
0064     double f0( const double f_qm,
0065                int n = 1 ) const;    // calculate f(0) with f(q_max)
0066     double g0( const double f_qm,
0067                int n = 1 ) const;    // calculate g(0) with g(q_max)
0068 
0069     // shorthand for constants a and b in the formula
0070     double constA() const;
0071     double constB() const;
0072 
0073     // initialize phasespace and calculate the amplitude for one (i=0,1) state of the photon
0074     EvtComplex calcAmpliude( const EvtParticle* p, const unsigned int polState );
0075 };
0076 
0077 #endif