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.
EvtLambdaP_BarGamma.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 EVTLAMBDAPBARGAMMA_HH
22 #define EVTLAMBDAPBARGAMMA_HH
23 
24 #include "EvtGenBase/EvtComplex.hh"
25 #include "EvtGenBase/EvtConst.hh"
27 #include "EvtGenBase/EvtPDL.hh"
29 
30 // Description:Implementation of the decay B- -> lambda p_bar gamma according to
31 // Cheng, Yang; hep-ph/0201015
32 
34  public:
37 
38  std::string getName() override;
39  EvtDecayBase* clone() override;
40  void decay( EvtParticle* p ) override;
41  void init() override;
42  void initProbMax() override;
43 
44  private:
45  // some constants to make the code easier to read and maintain
46  // these three should be constants... (implementation of getMass() prohibits this)
47  double _mLambdab; // = 5.624; // Lambda_b mass
48  double _mLambda0; // = 1.115684; // Lambda0 mass
49  double _c7Eff; // = -0.31; // Wilson coefficient
50  double _mb; // = 4.4; // running b mass
51  double _mV; // = 5.42; // pole mass vector current
52  double _mA; // = 5.86; // pole mass axial current
53  double _GF; // = 1.166E-5; // Fermi constant
54  double _gLambdab; // = 16; // coupling constant Lambda_b -> B- p
55  double _e0; // = 1; // electromagnetic coupling (+1)
56  double _g1; // = 0.64; // heavy-light form factors at q_mSqare
57  double _g2; // = -0.10;
58  double _f1; // = 0.64;
59  double _f2; // = -0.31;
60  double _VtbVtsStar; // = 0.038; // |V_tb V_ts^*|
61 
62  // user never needs to call this -> private
63  // baryonic form factors f(p), g(p), at p=0
64  double f0( const double f_qm,
65  int n = 1 ) const; // calculate f(0) with f(q_max)
66  double g0( const double f_qm,
67  int n = 1 ) const; // calculate g(0) with g(q_max)
68 
69  // shorthand for constants a and b in the formula
70  double constA() const;
71  double constB() const;
72 
73  // initialize phasespace and calculate the amplitude for one (i=0,1) state of the photon
74  EvtComplex calcAmpliude( const EvtParticle* p, const unsigned int polState );
75 };
76 
77 #endif
void decay(EvtParticle *p) override
EvtDecayBase * clone() override
EvtComplex calcAmpliude(const EvtParticle *p, const unsigned int polState)
double f0(const double f_qm, int n=1) const
double g0(const double f_qm, int n=1) const
std::string getName() override