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.
EvtWHad.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 EvtWHad_HH
22 #define EvtWHad_HH
23 
24 #include "EvtGenBase/EvtComplex.hh"
27 
28 #include <vector>
29 
30 // Description: Routine to calculate W -> (n pi) + (m K) current
31 // according to [Kuhn, Was, Acta.Phys.Polon B39 (2008) 147]
32 
33 class EvtWHad {
34  public:
35  EvtWHad();
36 
37  EvtVector4C WCurrent( const EvtVector4R& q1 ) const;
38 
39  EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2 ) const;
40 
41  EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2,
42  const EvtVector4R& q3 ) const;
43 
44  EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2,
45  const EvtVector4R& q3, const EvtVector4R& q4,
46  const EvtVector4R& q5 ) const;
47 
48  EvtVector4C WCurrent_KKP( const EvtVector4R& pKplus,
49  const EvtVector4R& pKminus,
50  const EvtVector4R& pPiPlus ) const;
51 
52  EvtVector4C WCurrent_KPP( const EvtVector4R& pKplus,
53  const EvtVector4R& pPiPlus,
54  const EvtVector4R& pPiMinus ) const;
55 
57  const EvtVector4R& pKplus ) const;
58 
59  protected:
60  EvtVector4C JB( const EvtVector4R& q1, const EvtVector4R& q2,
61  const EvtVector4R& q3, const EvtVector4R& q4,
62  const EvtVector4R& q5 ) const;
63 
64  EvtComplex BWa( const EvtVector4R& q ) const;
65 
66  EvtComplex BWf( const EvtVector4R& q ) const;
67 
68  EvtComplex BWr( const EvtVector4R& q ) const;
69 
70  EvtComplex BWKK( double s, int i ) const;
71 
72  double pi3G( double Q2 ) const;
73 
74  EvtComplex pcm( double s ) const;
75 
76  private:
77  std::vector<double> mRho_, gamma0_, cK_;
78 };
79 
80 #endif
std::vector< double > cK_
Definition: EvtWHad.hh:77
std::vector< double > mRho_
Definition: EvtWHad.hh:77
EvtVector4C WCurrent(const EvtVector4R &q1) const
Definition: EvtWHad.cpp:106
EvtComplex BWf(const EvtVector4R &q) const
Definition: EvtWHad.cpp:251
EvtComplex BWKK(double s, int i) const
Definition: EvtWHad.cpp:51
EvtComplex pcm(double s) const
Definition: EvtWHad.cpp:86
EvtWHad()
Definition: EvtWHad.cpp:26
EvtVector4C JB(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
Definition: EvtWHad.cpp:311
std::vector< double > gamma0_
Definition: EvtWHad.hh:77
EvtComplex BWa(const EvtVector4R &q) const
Definition: EvtWHad.cpp:238
EvtVector4C WCurrent_KPP(const EvtVector4R &pKplus, const EvtVector4R &pPiPlus, const EvtVector4R &pPiMinus) const
Definition: EvtWHad.cpp:178
EvtVector4C WCurrent_KKP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPiPlus) const
Definition: EvtWHad.cpp:150
double pi3G(double Q2) const
Definition: EvtWHad.cpp:294
EvtVector4C WCurrent_KSK(const EvtVector4R &pKS, const EvtVector4R &pKplus) const
Definition: EvtWHad.cpp:77
EvtComplex BWr(const EvtVector4R &q) const
Definition: EvtWHad.cpp:260