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.
EvtbTosllAliFF.cpp
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 
22 
23 #include "EvtGenBase/EvtPDL.hh"
24 #include "EvtGenBase/EvtPatches.hh"
25 
26 #include <math.h>
27 
29 {
30 }
31 
32 void EvtbTosllAliFF::getScalarFF( EvtId parent, EvtId /*daught*/, double t,
33  double /*mass*/, double& fp, double& f0,
34  double& ft )
35 {
36  double m = EvtPDL::getMeanMass( parent );
37  //double md=EvtPDL::getMeanMass(daught);
38 
39  double shat = t / ( m * m );
40  double shat2 = shat * shat;
41  double shat3 = shat2 * shat;
42 
43  fp = 0.278 * exp( 1.568 * shat + 0.470 * shat2 + 0.885 * shat3 );
44  f0 = 0.278 * exp( 0.740 * shat + 0.080 * shat2 + 0.425 * shat3 );
45  ft = 0.300 * exp( 1.600 * shat + 0.501 * shat2 + 0.796 * shat3 );
46 }
47 
48 void EvtbTosllAliFF::getVectorFF( EvtId parent, EvtId /*daught*/, double t,
49  double /*mass*/, double& a1, double& a2,
50  double& a0, double& v, double& t1, double& t2,
51  double& t3 )
52 {
53  double m = EvtPDL::getMeanMass( parent );
54 
55  double shat = t / ( m * m );
56  double shat2 = shat * shat;
57 
58  //this is Ali 'minimum allowed form factors'
59  a1 = 0.294 * exp( 0.656 * shat + 0.456 * shat2 );
60  a2 = 0.246 * exp( 1.237 * shat + 0.822 * shat2 );
61  a0 = 0.412 * exp( 1.543 * shat + 0.954 * shat2 );
62  v = 0.399 * exp( 1.537 * shat + 1.123 * shat2 );
63 
64  t1 = 0.334 * exp( 1.575 * shat + 1.140 * shat2 );
65  t2 = 0.334 * exp( 0.562 * shat + 0.481 * shat2 );
66  t3 = 0.234 * exp( 1.230 * shat + 1.089 * shat2 );
67 }
void getVectorFF(EvtId parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3) override
const double a2
static double getMeanMass(EvtId i)
Definition: EvtPDL.cpp:314
const double a1
Definition: EvtId.hh:27
void getScalarFF(EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft) override
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:240