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.
EvtBTo3hCP.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 EVTBTO3HCP_HH
22 #define EVTBTO3HCP_HH
23 
26 
27 class EvtParticle;
28 
29 class EvtBTo3hCP {
30  public:
31 
32  void EvtKpipi( double alpha, double beta, int iset, EvtVector4R& p_K_plus,
33  EvtVector4R& p_pi_minus, EvtVector4R& p_gamma_1,
34  EvtVector4R& p_gamma_2, double& Real_B0, double& Imag_B0,
35  double& Real_B0bar, double& Imag_B0bar );
36 
37  void Evt3pi( double alpha, int iset, EvtVector4R& p_K_plus,
38  EvtVector4R& p_pi_minus, EvtVector4R& p_gamma_1,
39  EvtVector4R& p_gamma_2, double& Real_B0, double& Imag_B0,
40  double& Real_B0bar, double& Imag_B0bar );
41 
42  void Evt3piMPP( double alpha, int iset, EvtVector4R& p_p1,
43  EvtVector4R& p_p2, EvtVector4R& p_p3, double& Real_B0,
44  double& Imag_B0, double& Real_B0bar, double& Imag_B0bar );
45 
46  void Evt3piP00( double alpha, int iset, EvtVector4R& p_p1,
47  EvtVector4R& p_p1_gamma1, EvtVector4R& p_p1_gamma2,
48  EvtVector4R& p_p2_gamma1, EvtVector4R& p_p2_gamma2,
49  double& Real_B0, double& Imag_B0, double& Real_B0bar,
50  double& Imag_B0bar );
51 
52  private:
53  void setConstants( double balpha, double bbeta );
55  double& real_B0, double& imag_B0, double& real_B0bar,
56  double& imag_B0bar, int set );
57  int compute3pi( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
58  double& real_B0, double& imag_B0, double& real_B0bar,
59  double& imag_B0bar, int set );
61  double& real_B0, double& imag_B0, double& real_B0bar,
62  double& imag_B0bar, int set );
64  double& real_B0, double& imag_B0, double& real_B0bar,
65  double& imag_B0bar, int set );
66 
67  // Modes are : 0 = Kpipi, 1 = 3pi, 2 = MPP, 3 = P00
68  void firstStep( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3, int mode );
69  void generateSqMasses_Kpipi( double& m12, double& m13, double& m23,
70  double MB2, double m1sq, double m2sq,
71  double m3sq );
72  void generateSqMasses_3pi( double& m12, double& m13, double& m23, double MB2,
73  double m1sq, double m2sq, double m3sq );
74  void generateSqMasses_3piMPP( double& m12, double& m13, double& m23,
75  double MB2, double m1sq, double m2sq,
76  double m3sq );
77  void generateSqMasses_3piP00( double& m12, double& m13, double& m23,
78  double MB2, double m1sq, double m2sq,
79  double m3sq );
80 
81  void rotation( EvtVector4R& p, int newRot );
82  void gammaGamma( EvtVector4R& p, EvtVector4R& pgamma1, EvtVector4R& pgamma2 );
84  int& ierr, double Mass = 0, double Width = 0 );
85  EvtComplex EvtRBW( double s, double Am2, double Gam, double Am2Min );
86  EvtComplex EvtCRhoF_W( double s );
87  EvtComplex EvtcBW_KS( double s, double Am2, double Gam );
88  EvtComplex EvtcBW_GS( double s, double Am2, double Gam );
89  double d( double AmRho2 );
90  double k( double s );
91  double Evtfs( double s, double AmRho2, double GamRho );
92  double h( double s );
93  double dh_ds( double s );
94 
97  NatKrho;
98  double alphaCP = 1.365;
99  double betaCP = 0.362;
100  double MA2 = 27.927981186;
101  double MB2 = 27.929242450;
102  double MC2 = 28.153482608;
103  double pi = 3.141592653;
104  double Mass_rho = 0.770;
105  double Gam_rho = 0.150;
106  double M_B = 5.2794;
107  double M_pip = 0.13957;
108  double M_pim = 0.13957;
109  double M_pi0 = 0.134976;
110  double M_Kp = 0.49368;
111  double Mass_Kstarp = 0.8916;
112  double Mass_Kstar0 = 0.8961;
113  double Gam_Kstarp = 0.0498;
114  double Gam_Kstar0 = 0.0505;
115 
116  double rotMatrix[3][3];
117  double factor_max = 1;
118 };
119 
120 #endif
EvtComplex Mat_S4
Definition: EvtBTo3hCP.hh:95
double Gam_rho
Definition: EvtBTo3hCP.hh:105
EvtComplex Nat_S4
Definition: EvtBTo3hCP.hh:95
EvtComplex MatKstar0
Definition: EvtBTo3hCP.hh:95
double MB2
Definition: EvtBTo3hCP.hh:101
double d(double AmRho2)
EvtComplex MatKstarp
Definition: EvtBTo3hCP.hh:95
EvtComplex EvtRBW(double s, double Am2, double Gam, double Am2Min)
double M_pip
Definition: EvtBTo3hCP.hh:107
void generateSqMasses_3piMPP(double &m12, double &m13, double &m23, double MB2, double m1sq, double m2sq, double m3sq)
Definition: EvtBTo3hCP.cpp:682
EvtComplex Mat_S5
Definition: EvtBTo3hCP.hh:95
EvtComplex Mat_S1
Definition: EvtBTo3hCP.hh:95
void Evt3piMPP(double alpha, int iset, EvtVector4R &p_p1, EvtVector4R &p_p2, EvtVector4R &p_p3, double &Real_B0, double &Imag_B0, double &Real_B0bar, double &Imag_B0bar)
Definition: EvtBTo3hCP.cpp:210
void rotation(EvtVector4R &p, int newRot)
Definition: EvtBTo3hCP.cpp:952
double h(double s)
double MA2
Definition: EvtBTo3hCP.hh:100
double Evtfs(double s, double AmRho2, double GamRho)
double Mass_Kstarp
Definition: EvtBTo3hCP.hh:111
void setConstants(double balpha, double bbeta)
Definition: EvtBTo3hCP.cpp:49
int compute3piP00(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, double &real_B0, double &imag_B0, double &real_B0bar, double &imag_B0bar, int set)
Definition: EvtBTo3hCP.cpp:868
EvtComplex BreitWigner(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, int &ierr, double Mass=0, double Width=0)
double M_Kp
Definition: EvtBTo3hCP.hh:110
double M_B
Definition: EvtBTo3hCP.hh:106
EvtComplex Nat_S2
Definition: EvtBTo3hCP.hh:95
void EvtKpipi(double alpha, double beta, int iset, EvtVector4R &p_K_plus, EvtVector4R &p_pi_minus, EvtVector4R &p_gamma_1, EvtVector4R &p_gamma_2, double &Real_B0, double &Imag_B0, double &Real_B0bar, double &Imag_B0bar)
Definition: EvtBTo3hCP.cpp:355
void generateSqMasses_Kpipi(double &m12, double &m13, double &m23, double MB2, double m1sq, double m2sq, double m3sq)
Definition: EvtBTo3hCP.cpp:551
EvtComplex Mat_S3
Definition: EvtBTo3hCP.hh:95
EvtComplex MatKrho
Definition: EvtBTo3hCP.hh:95
int computeKpipi(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, double &real_B0, double &imag_B0, double &real_B0bar, double &imag_B0bar, int set)
Definition: EvtBTo3hCP.cpp:902
void gammaGamma(EvtVector4R &p, EvtVector4R &pgamma1, EvtVector4R &pgamma2)
Definition: EvtBTo3hCP.cpp:989
double Mass_Kstar0
Definition: EvtBTo3hCP.hh:112
void firstStep(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, int mode)
Definition: EvtBTo3hCP.cpp:430
EvtComplex NatKrho
Definition: EvtBTo3hCP.hh:95
double dh_ds(double s)
double rotMatrix[3][3]
Definition: EvtBTo3hCP.hh:116
double M_pi0
Definition: EvtBTo3hCP.hh:109
EvtComplex Mat_S2
Definition: EvtBTo3hCP.hh:95
void generateSqMasses_3piP00(double &m12, double &m13, double &m23, double MB2, double m1sq, double m2sq, double m3sq)
Definition: EvtBTo3hCP.cpp:735
void Evt3pi(double alpha, int iset, EvtVector4R &p_K_plus, EvtVector4R &p_pi_minus, EvtVector4R &p_gamma_1, EvtVector4R &p_gamma_2, double &Real_B0, double &Imag_B0, double &Real_B0bar, double &Imag_B0bar)
Definition: EvtBTo3hCP.cpp:133
EvtComplex NatKstar0
Definition: EvtBTo3hCP.hh:95
int compute3piMPP(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, double &real_B0, double &imag_B0, double &real_B0bar, double &imag_B0bar, int set)
Definition: EvtBTo3hCP.cpp:834
double MC2
Definition: EvtBTo3hCP.hh:102
EvtComplex EvtCRhoF_W(double s)
double factor_max
Definition: EvtBTo3hCP.hh:117
double alphaCP
Definition: EvtBTo3hCP.hh:98
EvtComplex Nat_S5
Definition: EvtBTo3hCP.hh:95
double pi
Definition: EvtBTo3hCP.hh:103
double Gam_Kstarp
Definition: EvtBTo3hCP.hh:113
void generateSqMasses_3pi(double &m12, double &m13, double &m23, double MB2, double m1sq, double m2sq, double m3sq)
Definition: EvtBTo3hCP.cpp:619
double Gam_Kstar0
Definition: EvtBTo3hCP.hh:114
EvtComplex EvtcBW_GS(double s, double Am2, double Gam)
int compute3pi(EvtVector4R &p1, EvtVector4R &p2, EvtVector4R &p3, double &real_B0, double &imag_B0, double &real_B0bar, double &imag_B0bar, int set)
Definition: EvtBTo3hCP.cpp:787
EvtComplex Nat_S1
Definition: EvtBTo3hCP.hh:95
EvtComplex EvtcBW_KS(double s, double Am2, double Gam)
EvtComplex Nat_S3
Definition: EvtBTo3hCP.hh:95
double M_pim
Definition: EvtBTo3hCP.hh:108
double k(double s)
double betaCP
Definition: EvtBTo3hCP.hh:99
double Mass_rho
Definition: EvtBTo3hCP.hh:104
void Evt3piP00(double alpha, int iset, EvtVector4R &p_p1, EvtVector4R &p_p1_gamma1, EvtVector4R &p_p1_gamma2, EvtVector4R &p_p2_gamma1, EvtVector4R &p_p2_gamma2, double &Real_B0, double &Imag_B0, double &Real_B0bar, double &Imag_B0bar)
Definition: EvtBTo3hCP.cpp:279
EvtComplex NatKstarp
Definition: EvtBTo3hCP.hh:95