File indexing completed on 2026-08-06 09:20:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTBTO3HCP_HH
0022 #define EVTBTO3HCP_HH
0023
0024 #include "EvtGenBase/EvtDecayAmp.hh"
0025 #include "EvtGenBase/EvtVector4R.hh"
0026
0027 class EvtParticle;
0028
0029 class EvtBTo3hCP {
0030 public:
0031
0032 void EvtKpipi( double alpha, double beta, int iset, EvtVector4R& p_K_plus,
0033 EvtVector4R& p_pi_minus, EvtVector4R& p_gamma_1,
0034 EvtVector4R& p_gamma_2, double& Real_B0, double& Imag_B0,
0035 double& Real_B0bar, double& Imag_B0bar );
0036
0037 void Evt3pi( double alpha, int iset, EvtVector4R& p_K_plus,
0038 EvtVector4R& p_pi_minus, EvtVector4R& p_gamma_1,
0039 EvtVector4R& p_gamma_2, double& Real_B0, double& Imag_B0,
0040 double& Real_B0bar, double& Imag_B0bar );
0041
0042 void Evt3piMPP( double alpha, int iset, EvtVector4R& p_p1,
0043 EvtVector4R& p_p2, EvtVector4R& p_p3, double& Real_B0,
0044 double& Imag_B0, double& Real_B0bar, double& Imag_B0bar );
0045
0046 void Evt3piP00( double alpha, int iset, EvtVector4R& p_p1,
0047 EvtVector4R& p_p1_gamma1, EvtVector4R& p_p1_gamma2,
0048 EvtVector4R& p_p2_gamma1, EvtVector4R& p_p2_gamma2,
0049 double& Real_B0, double& Imag_B0, double& Real_B0bar,
0050 double& Imag_B0bar );
0051
0052 private:
0053 void setConstants( double balpha, double bbeta );
0054 int computeKpipi( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
0055 double& real_B0, double& imag_B0, double& real_B0bar,
0056 double& imag_B0bar, int set );
0057 int compute3pi( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
0058 double& real_B0, double& imag_B0, double& real_B0bar,
0059 double& imag_B0bar, int set );
0060 int compute3piMPP( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
0061 double& real_B0, double& imag_B0, double& real_B0bar,
0062 double& imag_B0bar, int set );
0063 int compute3piP00( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
0064 double& real_B0, double& imag_B0, double& real_B0bar,
0065 double& imag_B0bar, int set );
0066
0067
0068 void firstStep( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3, int mode );
0069 void generateSqMasses_Kpipi( double& m12, double& m13, double& m23,
0070 double MB2, double m1sq, double m2sq,
0071 double m3sq );
0072 void generateSqMasses_3pi( double& m12, double& m13, double& m23, double MB2,
0073 double m1sq, double m2sq, double m3sq );
0074 void generateSqMasses_3piMPP( double& m12, double& m13, double& m23,
0075 double MB2, double m1sq, double m2sq,
0076 double m3sq );
0077 void generateSqMasses_3piP00( double& m12, double& m13, double& m23,
0078 double MB2, double m1sq, double m2sq,
0079 double m3sq );
0080
0081 void rotation( EvtVector4R& p, int newRot );
0082 void gammaGamma( EvtVector4R& p, EvtVector4R& pgamma1, EvtVector4R& pgamma2 );
0083 EvtComplex BreitWigner( EvtVector4R& p1, EvtVector4R& p2, EvtVector4R& p3,
0084 int& ierr, double Mass = 0, double Width = 0 );
0085 EvtComplex EvtRBW( double s, double Am2, double Gam, double Am2Min );
0086 EvtComplex EvtCRhoF_W( double s );
0087 EvtComplex EvtcBW_KS( double s, double Am2, double Gam );
0088 EvtComplex EvtcBW_GS( double s, double Am2, double Gam );
0089 double d( double AmRho2 );
0090 double k( double s );
0091 double Evtfs( double s, double AmRho2, double GamRho );
0092 double h( double s );
0093 double dh_ds( double s );
0094
0095 EvtComplex Mat_S1, Mat_S2, Mat_S3, Mat_S4, Mat_S5, Nat_S1, Nat_S2, Nat_S3,
0096 Nat_S4, Nat_S5, MatKstarp, MatKstar0, MatKrho, NatKstarp, NatKstar0,
0097 NatKrho;
0098 double alphaCP = 1.365;
0099 double betaCP = 0.362;
0100 double MA2 = 27.927981186;
0101 double MB2 = 27.929242450;
0102 double MC2 = 28.153482608;
0103 double pi = 3.141592653;
0104 double Mass_rho = 0.770;
0105 double Gam_rho = 0.150;
0106 double M_B = 5.2794;
0107 double M_pip = 0.13957;
0108 double M_pim = 0.13957;
0109 double M_pi0 = 0.134976;
0110 double M_Kp = 0.49368;
0111 double Mass_Kstarp = 0.8916;
0112 double Mass_Kstar0 = 0.8961;
0113 double Gam_Kstarp = 0.0498;
0114 double Gam_Kstar0 = 0.0505;
0115
0116 double rotMatrix[3][3];
0117 double factor_max = 1;
0118 };
0119
0120 #endif