EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
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
28
29#include <vector>
30
31// Description: Routine to calculate W -> (n pi) + (m K) current
32// according to [Kuhn, Was, Acta.Phys.Polon B39 (2008) 147]
33
34class EvtWHad {
35 public:
36 EvtWHad();
37
38 EvtVector4C WCurrent( const EvtVector4R& q1 ) const;
39
40 EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2 ) const;
41
42 EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2,
43 const EvtVector4R& q3 ) const;
44
45 EvtVector4C WCurrent( const EvtVector4R& q1, const EvtVector4R& q2,
46 const EvtVector4R& q3, const EvtVector4R& q4,
47 const EvtVector4R& q5 ) const;
48
49 EvtVector4C WCurrent_5pi( const EvtVector4R& q1, const EvtVector4R& q2,
50 const EvtVector4R& q3, const EvtVector4R& q4,
51 const EvtVector4R& q5 ) const;
52
54 const EvtVector4R& pKminus,
55 const EvtVector4R& pPiPlus ) const;
56
58 const EvtVector4R& pPiPlus,
59 const EvtVector4R& pPiMinus ) const;
60
62 const EvtVector4R& pKplus ) const;
63
65 const EvtVector4R& pKminus,
66 const EvtVector4R& pPi1Plus,
67 const EvtVector4R& pPi2Plus,
68 const EvtVector4R& pPiMinus ) const;
69
70 // 1=pi+ 2=pi+ 3=pi+ 4=pi+ 5=pi- 6=pi- 7=pi- with symmetrization of the identical particles
71 EvtVector4C WCurrent_7pi( const EvtVector4R& p1, const EvtVector4R& p2,
72 const EvtVector4R& p3, const EvtVector4R& p4,
73 const EvtVector4R& p5, const EvtVector4R& p6,
74 const EvtVector4R& p7 ) const;
75
76 // 1=K+ 2 = pi+ 3 = pi+ 4 = pi- 5 = pi- with symmetrization
78 const EvtVector4R& p3, const EvtVector4R& p4,
79 const EvtVector4R& p5 ) const;
80
81 // a1 -> p+ p- pi+
83 const EvtVector4R& p2, const EvtDiracSpinor& sp2,
84 const EvtVector4R& k ) const;
85
86 protected:
87 EvtVector4C JB( const EvtVector4R& q1, const EvtVector4R& q2,
88 const EvtVector4R& q3, const EvtVector4R& q4,
89 const EvtVector4R& q5 ) const;
90 EvtComplex Den( double q, double mR, double gammaR, double gR ) const;
91
92 EvtComplex BWa( const EvtVector4R& q ) const;
93
94 EvtComplex BWf( const EvtVector4R& q ) const;
95
96 EvtComplex BWr( const EvtVector4R& q ) const;
97
98 EvtComplex BWKK( double s, int i ) const;
99
100 double pi3G( double Q2 ) const;
101
102 EvtComplex pcm( double s ) const;
103
104 EvtComplex BW( double s, double m, double gamma, double xm1,
105 double xm2 ) const;
106
108 const EvtVector4R& pKminus,
109 const EvtVector4R& pPi1Plus,
110 const EvtVector4R& pPi2Plus,
111 const EvtVector4R& pPiMinus ) const;
112
113 // a1 -> a1(1=pi+ 2=pi+ 3=pi+ 5=pi- 6=pi-) f0(4=pi+ 7=pi-) without symmetrization of the identical particles
115 const EvtVector4R& p3, const EvtVector4R& p4,
116 const EvtVector4R& p5, const EvtVector4R& p6,
117 const EvtVector4R& p7 ) const;
118
119 // a1 -> K*0 (1=K+ 4=pi-) a1(2=pi+ 3=pi+ 5=pi-)
121 const EvtVector4R& p2,
122 const EvtVector4R& p3,
123 const EvtVector4R& p4,
124 const EvtVector4R& p5 ) const;
125
126 private:
127 std::vector<double> m_mRho, m_gamma0, m_cK, m_mK, m_gammaK, m_gKRho, m_gKPi;
128 double m_mPi, m_mPiSq;
129};
130
131#endif
std::vector< double > m_mK
Definition EvtWHad.hh:127
EvtVector4C WCurrent_KKP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPiPlus) const
Definition EvtWHad.cpp:188
EvtComplex Den(double q, double mR, double gammaR, double gR) const
Definition EvtWHad.cpp:332
EvtVector4C WCurrent_KPP(const EvtVector4R &pKplus, const EvtVector4R &pPiPlus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:283
EvtVector4C WCurrent_K4pi(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
Definition EvtWHad.cpp:432
std::vector< double > m_mRho
Definition EvtWHad.hh:127
EvtComplex BWr(const EvtVector4R &q) const
Definition EvtWHad.cpp:367
std::vector< double > m_gKRho
Definition EvtWHad.hh:127
EvtComplex BWf(const EvtVector4R &q) const
Definition EvtWHad.cpp:358
EvtVector4C WCurrent_KKPPP_nosym(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:228
EvtComplex pcm(double s) const
Definition EvtWHad.cpp:117
EvtWHad()
Definition EvtWHad.cpp:26
EvtVector4C WCurrent_KSK(const EvtVector4R &pKS, const EvtVector4R &pKplus) const
Definition EvtWHad.cpp:108
EvtVector4C WCurrent_KKPPP(const EvtVector4R &pKplus, const EvtVector4R &pKminus, const EvtVector4R &pPi1Plus, const EvtVector4R &pPi2Plus, const EvtVector4R &pPiMinus) const
Definition EvtWHad.cpp:215
std::vector< double > m_cK
Definition EvtWHad.hh:127
EvtVector4C WCurrent(const EvtVector4R &q1) const
Definition EvtWHad.cpp:137
EvtVector4C WCurrent_ppPi(const EvtVector4R &p1, const EvtDiracSpinor &sp1, const EvtVector4R &p2, const EvtDiracSpinor &sp2, const EvtVector4R &k) const
Definition EvtWHad.cpp:461
std::vector< double > m_gammaK
Definition EvtWHad.hh:127
EvtVector4C WCurrent_K4pi_nosymm(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5) const
Definition EvtWHad.cpp:441
std::vector< double > m_gKPi
Definition EvtWHad.hh:127
std::vector< double > m_gamma0
Definition EvtWHad.hh:127
EvtVector4C WCurrent_7pi(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5, const EvtVector4R &p6, const EvtVector4R &p7) const
Definition EvtWHad.cpp:241
EvtComplex BW(double s, double m, double gamma, double xm1, double xm2) const
Definition EvtWHad.cpp:410
EvtComplex BWKK(double s, int i) const
Definition EvtWHad.cpp:82
double m_mPi
Definition EvtWHad.hh:128
double m_mPiSq
Definition EvtWHad.hh:128
EvtComplex BWa(const EvtVector4R &q) const
Definition EvtWHad.cpp:344
double pi3G(double Q2) const
Definition EvtWHad.cpp:377
EvtVector4C WCurrent_7pi_nosymm(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3, const EvtVector4R &p4, const EvtVector4R &p5, const EvtVector4R &p6, const EvtVector4R &p7) const
Definition EvtWHad.cpp:269
EvtVector4C JB(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
Definition EvtWHad.cpp:393
EvtVector4C WCurrent_5pi(const EvtVector4R &q1, const EvtVector4R &q2, const EvtVector4R &q3, const EvtVector4R &q4, const EvtVector4R &q5) const
Definition EvtWHad.cpp:179