Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:20:05

0001 
0002 /***********************************************************************
0003 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors       *
0004 *                                                                      *
0005 * This file is part of EvtGen.                                         *
0006 *                                                                      *
0007 * EvtGen is free software: you can redistribute it and/or modify       *
0008 * it under the terms of the GNU General Public License as published by *
0009 * the Free Software Foundation, either version 3 of the License, or    *
0010 * (at your option) any later version.                                  *
0011 *                                                                      *
0012 * EvtGen is distributed in the hope that it will be useful,            *
0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
0015 * GNU General Public License for more details.                         *
0016 *                                                                      *
0017 * You should have received a copy of the GNU General Public License    *
0018 * along with EvtGen.  If not, see <https://www.gnu.org/licenses/>.     *
0019 ***********************************************************************/
0020 
0021 #ifndef EvtBsMuMuKK_HH
0022 #define EvtBsMuMuKK_HH
0023 
0024 #include "EvtGenBase/EvtComplex.hh"
0025 #include "EvtGenBase/EvtDecayAmp.hh"
0026 
0027 #include <string>
0028 
0029 class EvtParticle;
0030 
0031 // Description: Routine to implement Bs -> J/psi KK
0032 
0033 class EvtBsMuMuKK : public EvtDecayAmp {
0034   public:
0035     std::string getName() override;
0036     EvtDecayBase* clone() override;
0037 
0038     void init() override;
0039     void initProbMax() override;
0040 
0041     void decay( EvtParticle* p ) override;
0042 
0043   protected:
0044     EvtComplex Flatte( const double m0, const double m ) const;
0045 
0046     EvtComplex GetRho( const double m0, const double m ) const;
0047 
0048     EvtComplex Breit_Wigner( const double Gamma0, const double m0,
0049                              const double m, const int J, const double q0,
0050                              const double q ) const;
0051 
0052     double Integral( const double Gamma0, const double m0, const int JR,
0053                      const int JB, const double q0, const double M_KK_ll,
0054                      const double M_KK_ul, const int fcntype ) const;
0055 
0056     double X_J( const int J, const double q, const int isB ) const;
0057 
0058     double Wignerd( int J, int l, int alpha, double theta ) const;
0059 
0060     EvtComplex AngularDist( int J, int l, int alpha, double cK, double cL,
0061                             double chi ) const;
0062 
0063     EvtComplex AmpTime( const int q, const EvtComplex& gplus,
0064                         const EvtComplex& gminus, const double delta,
0065                         const double lambda_abs, const double Amp,
0066                         const double phis, const int eta ) const;
0067 
0068   private:
0069     double MBs, MJpsi, Mf0, Mphi, Mf2p, MKp, MKm, MK0, Mpip, Mpi0, Mmu;
0070     double Gamma0phi, Gamma0f2p;
0071     double kin_lower_limit, kin_upper_limit, kin_middle;
0072     double p30Kp_mid_CMS, p30Kp_ll_CMS, p30Kp_phi_CMS, p30Kp_f2p_CMS;
0073     double p30Jpsi_mid_CMS, p30Jpsi_ll_CMS, p30Jpsi_phi_CMS, p30Jpsi_f2p_CMS;
0074     double int_const_NR, int_Flatte_f0, int_BW_phi, int_BW_f2p;
0075     double f_S_NR, f_f0, f_phi, f_f2p, f_phi_0, f_phi_perp, f_f2p_0, f_f2p_perp;
0076     double A_S_NR, A_f0, A_phi_0, A_phi_perp, A_phi_par, A_f2p_0, A_f2p_perp;
0077     double A_f2p_par;
0078     double delta_S_NR, delta_f0, delta_phi_0, delta_phi_perp, delta_phi_par;
0079     double delta_f2p_0, delta_f2p_perp, delta_f2p_par;
0080     double phis_S_NR, phis_f0, phis_phi_0, phis_phi_perp, phis_phi_par;
0081     double phis_f2p_0, phis_f2p_perp, phis_f2p_par;
0082     double lambda_S_NR_abs, lambda_f0_abs, lambda_phi_0_abs, lambda_phi_perp_abs;
0083     double lambda_phi_par_abs, lambda_f2p_0_abs, lambda_f2p_perp_abs;
0084     double lambda_f2p_par_abs;
0085     double Gamma, deltaGamma, ctau, deltaMs;
0086 };
0087 
0088 #endif